AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Argh! Trying to make this admin-only (https://forums.alliedmods.net/showthread.php?t=6839)

Mr. Satan 10-16-2004 11:48

Argh! Trying to make this admin-only
 
I have been trying to edit this plugin to make it so ONLY admins can glow but so far no luck...

Code:
// AMX Mod script - Advanced Glow by Shawn #include <amxmod> #include <amxmisc> new MenuPage[33] public plugin_init() {     register_plugin("Advanced_Glow","0.6","Shawn")     //register_concmd("say","handle_say",ADMIN_KICK)     register_clcmd("say glow", "handle_say", ADMIN_LEVEL_H, "- say glow and select an option")     register_menucmd(register_menuid("Glow Menu"),(1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9),"glow_menu")     register_logevent("glowing_bots",2,"0=World triggered","1=Round_Start")     register_logevent("glowing_humans",2,"0=World triggered","1=Round_Start")     register_clcmd("amx_glowx", "menu_aglowing", ADMIN_MENU, "- Admin Menu: Configuration Menu")     register_menucmd(register_menuid("Admin Menu"), (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<9), "aglow_menu")     register_cvar("amx_gbots", "1")     register_cvar("amx_ghumans", "1")     register_cvar("amx_gteams", "1")     register_cvar("amx_gsfx", "1")     register_cvar("amx_gchat", "1")     register_cvar("amx_gghost", "1")     loadini("addons/amxmodx/glow.ini")     server_cmd("exec addons/amxmodx/glow.ini") } public plugin_precache() {     precache_sound("tentacle/te_alert1.wav")     precache_sound("turret/tu_die.wav") } public handle_say(id,key) {     if(get_cvar_num("amx_ghumans") == 0){     new said[31]     new cmd[9]     read_args(said,30)     replace(said,30,"^"","")     parse(said,cmd,8,key,21)     if (equal(cmd,"glow",8)){     if (is_user_alive(id) == 1){     menu_glowing(id)     }     else     client_print(id,print_chat,"[AMX] You Can't Glow when you are dead.")     }     return PLUGIN_CONTINUE     }     return PLUGIN_HANDLED } public glow_menu(id,key) {     new name[32]     get_user_name(id,name,31)     switch(key){     case 0:     {         remove_task(id)         if(get_cvar_num("amx_gghost") == 0){         set_user_rendering(id,kRenderFxGlowShell,255,0,0,kRenderNormal,16)         }         else if(get_cvar_num("amx_gghost") == 1){         set_user_rendering(id,kRenderFxGlowShell,255,0,0,kRenderTransAdd,16)         }         emit_sound(id,CHAN_ITEM,"tentacle/te_alert1.wav",VOL_NORM,ATTN_NORM,0,PITCH_NORM)         if(get_cvar_num("amx_gchat") == 1){         client_print(0,print_chat,"[AMX] %s is glowing red",name)         }         if(get_cvar_num("amx_gsfx") == 1){         message_begin(MSG_ONE,get_user_msgid("ScreenFade"),{0,0,0},id)         write_short(1<<12) // fade lasts this long duration         write_short(1<<8) // fade lasts this long hold time         write_short(1<<1) // fade type OUT         write_byte(255) // fade red         write_byte(0) // fade green         write_byte(0) // fade blue         write_byte(200) // fade alpha         message_end()         }     }     case 1:     {         remove_task(id)         if(get_cvar_num("amx_gghost") == 0){         set_user_rendering(id,kRenderFxGlowShell,0,0,255,kRenderNormal,16)         }         else if(get_cvar_num("amx_gghost") == 1){         set_user_rendering(id,kRenderFxGlowShell,0,0,255,kRenderTransAdd,16)         }         emit_sound(id,CHAN_ITEM,"tentacle/te_alert1.wav",VOL_NORM,ATTN_NORM,0,PITCH_NORM)         if(get_cvar_num("amx_gchat") == 1){         client_print(0,print_chat,"[AMX] %s is glowing blue",name)         }         if(get_cvar_num("amx_gsfx") == 1){         message_begin(MSG_ONE,get_user_msgid("ScreenFade"),{0,0,0},id)         write_short(1<<12)         write_short(1<<8)         write_short(1<<1)         write_byte(0)         write_byte(0)         write_byte(255)         write_byte(200)         message_end()         }     }     case 2:     {         remove_task(id)         if(get_cvar_num("amx_gghost") == 0){         set_user_rendering(id,kRenderFxGlowShell,0,255,0,kRenderNormal,16)         }         else if(get_cvar_num("amx_gghost") == 1){         set_user_rendering(id,kRenderFxGlowShell,0,255,0,kRenderTransAdd,16)         }         emit_sound(id,CHAN_ITEM,"tentacle/te_alert1.wav",VOL_NORM,ATTN_NORM,0,PITCH_NORM)         if(get_cvar_num("amx_gchat") == 1){         client_print(0,print_chat,"[AMX] %s is glowing green",name)         }         if(get_cvar_num("amx_gsfx") == 1){         message_begin(MSG_ONE,get_user_msgid("ScreenFade"),{0,0,0},id)         write_short(1<<12)         write_short(1<<8)         write_short(1<<1)         write_byte(0)         write_byte(255)         write_byte(0)         write_byte(200)         message_end()         }     }     case 3:     {         remove_task(id)         if(get_cvar_num("amx_gghost") == 0){         set_user_rendering(id,kRenderFxGlowShell,128,255,255,kRenderNormal,16)         }         else if(get_cvar_num("amx_gghost") == 1){         set_user_rendering(id,kRenderFxGlowShell,128,255,255,kRenderTransAdd,16)         }         emit_sound(id,CHAN_ITEM,"tentacle/te_alert1.wav",VOL_NORM,ATTN_NORM,0,PITCH_NORM)         if(get_cvar_num("amx_gchat") == 1){         client_print(0,print_chat,"[AMX] %s is glowing like ice",name)         }         if(get_cvar_num("amx_gsfx") == 1){         message_begin(MSG_ONE,get_user_msgid("ScreenFade"),{0,0,0},id)         write_short(1<<12)         write_short(1<<8)         write_short(1<<1)         write_byte(128)         write_byte(255)         write_byte(255)         write_byte(200)         message_end()         }     }     case 4:     {         remove_task(id)         if(get_cvar_num("amx_gghost") == 0){         set_user_rendering(id,kRenderFxGlowShell,255,255,0,kRenderNormal,16)         }         else if(get_cvar_num("amx_gghost") == 1){         set_user_rendering(id,kRenderFxGlowShell,255,255,0,kRenderTransAdd,16)         }         emit_sound(id,CHAN_ITEM,"tentacle/te_alert1.wav",VOL_NORM,ATTN_NORM,0,PITCH_NORM)         if(get_cvar_num("amx_gchat") == 1){         client_print(0,print_chat,"[AMX] %s is glowing yellow",name)         }         if(get_cvar_num("amx_gsfx") == 1){         message_begin(MSG_ONE,get_user_msgid("ScreenFade"),{0,0,0},id)         write_short(1<<12)         write_short(1<<8)         write_short(1<<1)         write_byte(255)         write_byte(255)         write_byte(0)         write_byte(200)         message_end()         }     }     case 5:     {         remove_task(id)         if(get_cvar_num("amx_gghost") == 0){         set_user_rendering(id,kRenderFxGlowShell,255,128,255,kRenderNormal,16)         }         else if(get_cvar_num("amx_gghost") == 1){         set_user_rendering(id,kRenderFxGlowShell,255,128,255,kRenderTransAdd,16)         }         emit_sound(id,CHAN_ITEM,"tentacle/te_alert1.wav",VOL_NORM,ATTN_NORM,0,PITCH_NORM)         if(get_cvar_num("amx_gchat") == 1){         client_print(0,print_chat,"[AMX] %s is glowing pink",name)         }         if(get_cvar_num("amx_gsfx") == 1){         message_begin(MSG_ONE,get_user_msgid("ScreenFade"),{0,0,0},id)         write_short(1<<12)         write_short(1<<8)         write_short(1<<1)         write_byte(255)         write_byte(128)         write_byte(255)         write_byte(200)         message_end()         }     }     case 6:     {         remove_task(id)         if(get_cvar_num("amx_gghost") == 0){         set_user_rendering(id,kRenderFxGlowShell,128,0,255,kRenderNormal,16)         }         else if(get_cvar_num("amx_gghost") == 1){         set_user_rendering(id,kRenderFxGlowShell,128,0,255,kRenderTransAdd,16)         }         emit_sound(id,CHAN_ITEM,"tentacle/te_alert1.wav",VOL_NORM,ATTN_NORM,0,PITCH_NORM)         if(get_cvar_num("amx_gchat") == 1){         client_print(0,print_chat,"[AMX] %s is glowing purple",name)         }         if(get_cvar_num("amx_gsfx") == 1){         message_begin(MSG_ONE,get_user_msgid("ScreenFade"),{0,0,0},id)         write_short(1<<12)         write_short(1<<8)         write_short(1<<1)         write_byte(128)         write_byte(0)         write_byte(255)         write_byte(200)         message_end()         }     }     case 7:     {         remove_task(id)         if(get_cvar_num("amx_gghost") == 0){         set_user_rendering(id,kRenderFxGlowShell,random_num(0,255),random_num(0,255),random_num(0,255),kRenderNormal,16)         }         else if(get_cvar_num("amx_gghost") == 1){         set_user_rendering(id,kRenderFxGlowShell,random_num(0,255),random_num(0,255),random_num(0,255),kRenderTransAdd,16)         }         set_task(5.0,"irandom",id,"",0,"b")         emit_sound(id,CHAN_ITEM,"tentacle/te_alert1.wav",VOL_NORM,ATTN_NORM,0,PITCH_NORM)         if(get_cvar_num("amx_gchat") == 1){         client_print(0,print_chat,"[AMX] %s is glowing a random color",name)         }     }     case 8:     {         remove_task(id)         set_user_rendering(id,kRenderFxNone,0,0,0,kRenderNormal,16)         emit_sound(id,CHAN_ITEM,"turret/tu_die.wav",VOL_NORM,ATTN_NORM,0,PITCH_NORM)         if(get_cvar_num("amx_gchat") == 1){         client_print(0,print_chat,"[AMX] %s is not glowing anymore",name)         }         }     }     return PLUGIN_HANDLED } public menu_glowing(id) {     new menu_body[512]     copy(menu_body,511,"Glow Menu^n^n1. Glow Red^n2. Glow Blue^n3. Glow Green^n4. Glow Ice^n5. Gow Yellow^n6. Glow Pink^n7. Glow Purple^n8. Glow Random^n9. Glow Off^n^n0. Exit")     show_menu(id,(1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9),menu_body)     return PLUGIN_HANDLED } public irandom(id) { if (is_user_alive(id) == 1){ if(get_cvar_num("amx_gghost") == 0){ set_user_rendering(id,kRenderFxGlowShell,random_num(0,255),random_num(0,255),random_num(0,255),kRenderNormal,16) } else if(get_cvar_num("amx_gghost") == 1){ set_user_rendering(id,kRenderFxGlowShell,random_num(0,255),random_num(0,255),random_num(0,255),kRenderTransAdd,16) } } else if (is_user_alive(id) == 0){ remove_task(id) } return PLUGIN_CONTINUE } public glowing_bots() {     if(get_cvar_num("amx_gbots") == 1){     new players[32], inum     new tplayers[32], tinum     if(get_cvar_num("amx_gteams") == 1){     get_players(players,inum,"dae","CT")     for(new a=0;a<inum;++a)     if(get_cvar_num("amx_gghost") == 0){     set_user_rendering(players[a],kRenderFxGlowShell,0,0,255,kRenderNormal,16)     }     else if(get_cvar_num("amx_gghost") == 1){     set_user_rendering(players[a],kRenderFxGlowShell,0,0,255,kRenderTransAdd,16)     }     get_players(tplayers,tinum,"dae","TERRORIST")     for(new i=0;i<tinum;++i)     if(get_cvar_num("amx_gghost") == 0){     set_user_rendering(tplayers[i],kRenderFxGlowShell,255,0,0,kRenderNormal,16)     }     else if(get_cvar_num("amx_gghost") == 1){     set_user_rendering(tplayers[i],kRenderFxGlowShell,255,0,0,kRenderTransAdd,16)     }     if(get_cvar_num("amx_gchat") == 1){     if(inum>0 && tinum>0){     client_print(0,print_chat,"[AMX] All bots are glowing according to there colors teams")     }     }     }     if(get_cvar_num("amx_gteams") == 0){     get_players(players,inum,"da")     for(new a=0;a<inum;++a)     if(get_cvar_num("amx_gghost") == 0){     set_user_rendering(players[a],kRenderFxGlowShell,random_num(0,255),random_num(0,255),random_num(0,255),kRenderNormal,16)     }     else if(get_cvar_num("amx_gghost") == 1){     set_user_rendering(players[a],kRenderFxGlowShell,random_num(0,255),random_num(0,255),random_num(0,255),kRenderTransAdd,16)     }     if(get_cvar_num("amx_gchat") == 1){     if(inum>0){     client_print(0,print_chat,"[AMX] All bots are glowing a random color")     }     }     }     return PLUGIN_HANDLED     }     return PLUGIN_HANDLED } public glowing_humans() {     if(get_cvar_num("amx_ghumans") == 1){     new players[32], inum     new tplayers[32], tinum     if(get_cvar_num("amx_gteams") == 1){     get_players(players,inum,"cae","CT")     for(new a=0;a<inum;++a)     if(get_cvar_num("amx_gghost") == 0){     set_user_rendering(players[a],kRenderFxGlowShell,0,0,255,kRenderNormal,16)     }     else if(get_cvar_num("amx_gghost") == 1){     set_user_rendering(players[a],kRenderFxGlowShell,0,0,255,kRenderTransAdd,16)     }     get_players(players,inum,"cae","CT")     for(new s=0;s<inum;++s)     emit_sound(players[s],CHAN_ITEM,"tentacle/te_alert1.wav",VOL_NORM,ATTN_NORM,0,PITCH_NORM)     get_players(tplayers,tinum,"cae","TERRORIST")     for(new i=0;i<tinum;++i)     if(get_cvar_num("amx_gghost") == 0){     set_user_rendering(tplayers[i],kRenderFxGlowShell,255,0,0,kRenderNormal,16)     }     else if(get_cvar_num("amx_gghost") == 1){     set_user_rendering(tplayers[i],kRenderFxGlowShell,255,0,0,kRenderTransAdd,16)     }     get_players(tplayers,tinum,"cae","TERRORIST")     for(new s=0;s<tinum;++s)     emit_sound(tplayers[s],CHAN_ITEM,"tentacle/te_alert1.wav",VOL_NORM,ATTN_NORM,0,PITCH_NORM)     if(get_cvar_num("amx_gchat") == 1){     if(inum>0 && tinum>0){     client_print(0,print_chat,"[AMX] All humans are glowing according to there colors teams")     }     }     }     if(get_cvar_num("amx_gteams") == 0){     get_players(players,inum,"ca")     for(new a=0;a<inum;++a)     if(get_cvar_num("amx_gghost") == 0){     set_user_rendering(players[a],kRenderFxGlowShell,random_num(0,255),random_num(0,255),random_num(0,255),kRenderNormal,16)     }     else if(get_cvar_num("amx_gghost") == 1){     set_user_rendering(players[a],kRenderFxGlowShell,random_num(0,255),random_num(0,255),random_num(0,255),kRenderTransAdd,16)     }     get_players(players,inum,"ca")     for(new s=0;s<inum;++s)     emit_sound(players[s],CHAN_ITEM,"tentacle/te_alert1.wav",VOL_NORM,ATTN_NORM,0,PITCH_NORM)     if(get_cvar_num("amx_gchat") == 1){     if(inum>0){     client_print(0,print_chat,"[AMX] All humans are glowing a random color")     }     }     }     return PLUGIN_HANDLED     }     return PLUGIN_HANDLED } public menu_aglowing(id, level, cid) {     if(!cmd_access(id, level, cid, 1))         return PLUGIN_HANDLED     MenuPage[id] = 1     show_menu_set(id)     return PLUGIN_HANDLED } show_menu_set(id) {     new menuoption[10][64], smenu[64], menubody[512]     new keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9)     for(new z = 0; z < 10; ++z) menuoption[z][0] = 0 // clear string         switch(MenuPage[id])     {         case 1:         {             format(smenu, 63, "")             format(menuoption[0], 63, "1. Auto-Bots Glow %s^n", get_cvar_num("amx_gbots") ? "ON" : "OFF")             format(menuoption[1], 63, "2. Auto-Humans Glow %s^n", get_cvar_num("amx_ghumans") ? "ON" : "OFF")             format(menuoption[2], 63, "3. Teams Color Glow %s^n", get_cvar_num("amx_gteams") ? "ON" : "OFF")             format(menuoption[3], 63, "4. Specials Effects %s^n", get_cvar_num("amx_gsfx") ? "ON" : "OFF")             format(menuoption[4], 63, "5. Chat Events %s^n", get_cvar_num("amx_gchat") ? "ON" : "OFF")             format(menuoption[5], 63, "6. Ghost Mode %s^n", get_cvar_num("amx_gghost") ? "ON" : "OFF")             format(menuoption[9], 63, "0. Exit")         }     }     format(menubody, 511, "Admin Menu %s:^n^n%s%s%s%s%s%s%s", smenu,         menuoption[0], menuoption[1], menuoption[2], menuoption[3], menuoption[4], menuoption[5], menuoption[9])     show_menu(id, keys, menubody)     return PLUGIN_HANDLED } public aglow_menu(id, key) {     if(MenuPage[id] == 1)     {         switch(key)           {     case 0:     {         get_cvar_num("amx_gbots") ? set_cvar_num("amx_gbots", 0) : set_cvar_num("amx_gbots", 1)         if(get_cvar_num("amx_gbots") == 1){         client_print(0,print_chat,"[AMX] Bots are glowing")         write_file("addons/amxmodx/glow.ini","amx_gbots 1",1)         }         else if(get_cvar_num("amx_gbots") == 0){         client_print(0,print_chat,"[AMX] Bots aren't glowing anymore")         write_file("addons/amxmodx/glow.ini","amx_gbots 0",1)         }     }     case 1:     {         get_cvar_num("amx_ghumans") ? set_cvar_num("amx_ghumans", 0) : set_cvar_num("amx_ghumans", 1)         if(get_cvar_num("amx_ghumans") == 1){         client_print(0,print_chat,"[AMX] Humans are glowing")         write_file("addons/amxmodx/glow.ini","amx_ghumans 1",2)         }         else if(get_cvar_num("amx_ghumans") == 0){         client_print(0,print_chat,"[AMX] Humans aren't glowing anymore")         write_file("addons/amxmodx/glow.ini","amx_ghumans 0",2)         }     }     case 2:     {         get_cvar_num("amx_gteams") ? set_cvar_num("amx_gteams", 0) : set_cvar_num("amx_gteams", 1)         if(get_cvar_num("amx_gteams") == 1){         client_print(0,print_chat,"[AMX] The glow are now set according to teams colors")         write_file("addons/amxmodx/glow.ini","amx_gteams 1",3)         }         else if(get_cvar_num("amx_gteams") == 0){         client_print(0,print_chat,"[AMX] The glow are now set randomly")         write_file("addons/amxmodx/glow.ini","amx_gteams 0",3)         }     }     case 3:     {         get_cvar_num("amx_gsfx") ? set_cvar_num("amx_gsfx", 0) : set_cvar_num("amx_gsfx", 1)         if(get_cvar_num("amx_gsfx") == 1){         client_print(0,print_chat,"[AMX] Specials Glow Effects are ON")         write_file("addons/amxmodx/glow.ini","amx_gsfx 1",4)         }         else if(get_cvar_num("amx_gsfx") == 0){         client_print(0,print_chat,"[AMX] Specials Glow Effects are OFF")         write_file("addons/amxmodx/glow.ini","amx_gsfx 0",4)         }     }     case 4:     {         get_cvar_num("amx_gchat") ? set_cvar_num("amx_gchat", 0) : set_cvar_num("amx_gchat", 1)         if(get_cvar_num("amx_gchat") == 1){         client_print(0,print_chat,"[AMX] All glowing events will now be reported in the chat")         write_file("addons/amxmodx/glow.ini","amx_gchat 1",5)         }         else if(get_cvar_num("amx_gchat") == 0){         client_print(0,print_chat,"[AMX] All glowing events will not be reported anymore")         write_file("addons/amxmodx/glow.ini","amx_gchat 0",5)         }     }     case 5:     {         get_cvar_num("amx_gghost") ? set_cvar_num("amx_gghost", 0) : set_cvar_num("amx_gghost", 1)         if(get_cvar_num("amx_gghost") == 1){         client_print(0,print_chat,"[AMX] Ghost Mode is ON")         write_file("addons/amxmodx/glow.ini","amx_gghost 1",6)         }         else if(get_cvar_num("amx_gghost") == 0){         client_print(0,print_chat,"[AMX] Ghost Mode is OFF")         write_file("addons/amxmodx/glow.ini","amx_gghost 0",6)         }     }             case 9:             {                 // Menu Fix (Popup)                 MenuPage[id] = 0                 return PLUGIN_HANDLED             }         }         // Bypass Update System         show_menu_set(id)         return PLUGIN_HANDLED     }     update_menu()     return PLUGIN_HANDLED } update_menu() {     new admins[32], inum     get_players(admins, inum)     for(new i = 0; i < inum; ++i)         if(MenuPage[admins[i]] > 0)             show_menu_set(admins[i]) } loadini(filename[]) {     if(file_exists(filename))     {         new readdata[64]         new set[16], val[16], len         for(new i = 0; i < 64 && read_file(filename, i, readdata, 63, len); ++i)         {             parse(readdata, set, 15, val, 15)             if(equal(set, "amx_gbots")) if(equal(val, "1")) set_cvar_num("amx_gbots", 1)             if(equal(set, "amx_ghumans")) if(equal(val, "1")) set_cvar_num("amx_ghumans", 1)             if(equal(set, "amx_gteams")) if(equal(val, "1")) set_cvar_num("amx_gteams", 1)             if(equal(set, "amx_gsfx")) if(equal(val, "1")) set_cvar_num("amx_gchat", 1)             if(equal(set, "amx_gchat")) if(equal(val, "1")) set_cvar_num("amx_gchat", 1)             if(equal(set, "amx_gghost")) if(equal(val, "1")) set_cvar_num("amx_gghost", 1)             if(equal(set, "amx_gbots")) if(!equal(val, "1")) set_cvar_num("amx_gbots", 0)             if(equal(set, "amx_ghumans")) if(!equal(val, "1")) set_cvar_num("amx_ghumans", 0)             if(equal(set, "amx_gteams")) if(!equal(val, "1")) set_cvar_num("amx_gteams", 0)             if(equal(set, "amx_gsfx")) if(!equal(val, "1")) set_cvar_num("amx_gchat", 0)             if(equal(set, "amx_gchat")) if(!equal(val, "1")) set_cvar_num("amx_gchat", 0)             if(equal(set, "amx_gghost")) if(!equal(val, "1")) set_cvar_num("amx_gghost", 0)         }     }     return PLUGIN_HANDLED }

Le Wolf 10-16-2004 20:04

Code:
public handle_say(id,key) {     if (!(get_user_flags(id)&ADMIN_LEVEL_H))         return PLUGIN_HANDLED     if(get_cvar_num("amx_ghumans") == 0){     new said[31]     new cmd[9]     read_args(said,30)     replace(said,30,"^"","")     parse(said,cmd,8,key,21)     if (equal(cmd,"glow",8)){     if (is_user_alive(id) == 1){     menu_glowing(id)     }     else     client_print(id,print_chat,"[AMX] You Can't Glow when you are dead.")     }     return PLUGIN_CONTINUE     }     return PLUGIN_HANDLED }

Ingram 10-16-2004 23:52

Code:
if (!(get_user_flags(id)&key))         return PLUGIN_HANDLED
i think it should be key to allow for changes in the level

Mr. Satan 10-17-2004 19:02

Now regular players cant use chat >_>

Nevermind, I just moved the above section to a different thing


All times are GMT -4. The time now is 17:12.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.