View Single Post
Author Message
JuanitoAlimana
Senior Member
Join Date: Aug 2021
Old 03-09-2024 , 21:46   Problem with SuperAdmin 4.1
Reply With Quote #1

Hey. Everytime I try to select the ban times or the slap damages the key is stuck and I cannot select between "Permanently" or "5" ,"60", etc and the console shows "Client with that name or userid not found". How can I solve this?

Thank you very much!



PHP Code:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Super Admin"
#define VERSION "4.1"
#define AUTHOR "[R]ak"

#define ShowSuperAdmin (get_pcvar_num(Pointer) == 2)

const MENU_OPTION = -4
const TASKMENU 2708

enum _
:Menu_Name_Data {
    
AMXSUPERMENU,
    
SADMIN,
    
KICK,
    
BAN,
    
BANIP,
    
SLAY,
    
SLAP
}

enum _:Menu_Data {
    
COMMANDMENU,
    
COMMAND,
    
MENU_NAME,
    
MENU_OPTION_PREFIX,
    
DATA1,
    
DATA2,
    
DATA3,
    
DATA4
}

new const 
Menu_Name[Menu_Name_Data][Menu_Data][] = {
    { 
"amxsupermenu""""Amx Super Menu""""""""""" },
    { 
"amx_addsuperadmin_menu""amx_addsuperadmin""Amx Add Super Admin Menu""""""""""" },
    { 
"amx_super_kickmenu""amx_super_kick""Amx Super Kick Menu""""""""""" },
    { 
"amx_super_banmenu""amx_super_ban""Amx Super Ban Menu""Ban""Permanente""5""15""60" },
    { 
"amx_super_banipmenu""amx_super_banip""Amx Super Banip Menu""Banip""Permanente""5""15""60" },
    { 
"amx_super_slaymenu""amx_super_slay""Amx Super Slay Menu""""""""""" },
    { 
"amx_super_slapmenu""amx_super_slap""Amx Super Slap Menu""Slap""0""1""5""99" }
}

new 
PointerTrie:SuperAdminsg_RegisterID[Menu_Name_Data], g_MenuMaing_MenuCallBack

public plugin_init() {
    
    
register_dictionary("common.txt")
    
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_concmd(Menu_Name[KICK][COMMAND], "Super_Kick"_"<target|#userid> <reason>")
    
register_concmd(Menu_Name[BAN][COMMAND], "Super_Ban"_"<target|#userid> <time> <reason>")
    
register_concmd(Menu_Name[BANIP][COMMAND], "Super_Banip"_"<target|#userid> <time> <reason>")
    
register_concmd(Menu_Name[SLAY][COMMAND], "Super_Slay"_"<target|#userid>")
    
register_concmd(Menu_Name[SLAP][COMMAND], "Super_Slap"_"<target|#userid> <damage>")
    
register_concmd(Menu_Name[SADMIN][COMMAND], "Super_AddAdmin"_"<target|#userid|steamid>")
    
    for(new 
isizeof Menu_Namei++)
        
g_RegisterID[i] = register_clcmd(Menu_Name[i][COMMANDMENU], "cmdSuperMenu")
    
    
Pointer get_cvar_pointer("amx_show_activity")
    
    
g_MenuCallBack menu_makecallback("CheckAlive")
}

public 
plugin_cfg() {
    
SuperAdmins TrieCreate()
    new 
ConfigDir[64]
    
get_configsdir(ConfigDircharsmax(ConfigDir))
    
    
format(ConfigDircharsmax(ConfigDir), "%s/SuperAdmin.ini"ConfigDir
    
    if(!
file_exists(ConfigDir))
        
create_file(ConfigDir)
    
    new 
Data[37], File fopen(ConfigDir"rt")
        
    while (!
feof(File)) {
        
fgets(FileDatacharsmax(Data))
            
        
trim(Data)
            
        if (
Data[0] == ';' || !Data[0]) 
            continue;
            
        
remove_quotes(Data)
        
TrieSetCell(SuperAdminsDatatrue)  
    }
        
    
fclose(File)
    
    
create_menu_main()
}

public 
cmdSuperMenu(idlevelcid) {
    
    if(
cid == g_RegisterID[AMXSUPERMENU])
        
show_menu_main(id)
    else if(
cid == g_RegisterID[KICK])
        
show_menu_custom(idKICK)
    else if(
cid == g_RegisterID[BAN])
        
show_menu_custom(idBAN)
    else if(
cid == g_RegisterID[BANIP])
        
show_menu_custom(idBANIP)
    else if(
cid == g_RegisterID[SLAY])
        
show_menu_custom(idSLAY)
    else if(
cid == g_RegisterID[SLAP])
        
show_menu_custom(idSLAP)
    else
        
show_menu_custom(idSADMIN)
    
    return 
PLUGIN_HANDLED
    
}

show_menu_main(id)
    
menu_display(idg_MenuMain)
    
show_menu_custom(idTypeMenuKey 0page 0) {
    
    new 
Item[4], Name[32], PlayerPlayer_NumPlayers[32], Menu_Item_Option[32], AddOptionMenu menu_create(Menu_Name[Type][MENU_NAME], "menu_custom_handler")
    
    
AddOption = (Type != KICK && Type != SLAY && Type != SADMIN)
    
    
Item[1] = Type
    Item
[2] = MenuKey
    Item
[3] = 0
    
    
if(AddOption)
        
formatex(Menu_Item_Optioncharsmax(Menu_Item_Option), "%s: %s"Menu_Name[Type][MENU_OPTION_PREFIX], Menu_Name[Type][MenuKey+DATA1])
    
    
get_players(PlayersPlayer_Num)
    
    for(new 
iPlayer_Numi++) {
        
        if(
&& !(6) && AddOption) {
            
Item[0] = MENU_OPTION
            menu_additem
(MenuMenu_Item_OptionItem)
        }
        
        
Player Item[0] = Players[i]
        
        
get_user_name(PlayerNamecharsmax(Name))
                
        
menu_additem(MenuNameItem, .callback = (Type >= SLAY) ? g_MenuCallBack : -1)
    }
    
    if(
AddOption) {
        
        
Item[0] = MENU_OPTION
    
        menu_additem
(MenuMenu_Item_OptionItem)
        
    }
    
    
menu_setprop(MenuMPROP_EXITMEXIT_ALL)
    
menu_display(idMenupage)
    
}

public 
menu_main_handler(idmenuitem) {
    
    if(
item == MENU_EXIT)
        return
    
    
show_menu_custom(iditem+1)
    
}

public 
menu_custom_handler(idmenuitem) {
    
    if(
item == MENU_EXIT) {
        
menu_destroy(menu)
        return
    }
    
    new 
Data[5], AccessCallback
    
    menu_item_getinfo
(menuitemAccessDatacharsmax(Data), __Callback)
    
    if(
Data[0] == MENU_OPTION) {    
        if((++
Data[2] + DATA1) > DATA4)
            
Data[2] = 0
    
}
    else {
        
        new 
type Data[1], victim Data[0]
    
        
client_cmd(id"%s #%d %s"Menu_Name[type][COMMAND], get_user_userid(victim), Menu_Name[type][Data[2]+DATA1])
    
    }
    
    new 
pagenewmenuoldmenu
    player_menu_info
(idoldmenunewmenupage)
    
    
Data[0] = id
    Data
[3] = page
    
    set_task
(0.1"TaskShowMenu"TASKMENUDatasizeof Data)
    
    
menu_destroy(menu)
    
}

public 
TaskShowMenu(Args[])
    
show_menu_custom(Args[0], Args[1], Args[2], Args[3])

public 
CheckAlive(idmenuitem) {
    
    new 
Data[4], AccessCallbackName[32]
    
    
menu_item_getinfo(menuitemAccessDatacharsmax(Data), Namecharsmax(Name), Callback)
    
    return (
is_user_alive(Data[0])) ? ITEM_ENABLED ITEM_DISABLED
    
}

public 
Super_Kick(idlevelcid) {
    if(!
Is_SuperAdmin(idcid2))
        return 
PLUGIN_HANDLED;
    
    new 
Name[32], Reason[32]
    
    
read_argv(1Namecharsmax(Name))
    
read_argv(2Reasoncharsmax(Reason))
    
remove_quotes(Reason)
    
    new 
player get_target(idName)
    
    if(!
player)
        return 
PLUGIN_HANDLED
    
    
if(Reason[0])
        
server_cmd("kick #%d ^"%s^""get_user_userid(player), Reason)
    else
        
server_cmd("kick #%d"get_user_userid(player))
        
    new 
Super_Admin[32], Victim[32]
    
    
get_user_name(idSuper_Admincharsmax(Super_Admin))
    
get_user_name(playerVictimcharsmax(Victim))
    
    if(
get_pcvar_num(Pointer))
        
client_print(0print_chat"[AMXX] Admin %s kick %s"ShowSuperAdmin Super_Admin ""Victim)
    
    return 
PLUGIN_HANDLED
}

public 
Super_Ban(idlevelcid) {
    if(!
Is_SuperAdmin(idcid3))
        return 
PLUGIN_HANDLED;
        
    new 
Name[32], Time[7] ,Reason[32]
    
    
read_argv(1Namecharsmax(Name))
    
read_argv(2Timecharsmax(Time))
    
read_argv(3Reasoncharsmax(Reason))
    
remove_quotes(Reason)
    
    new 
player get_target(idName)
    
    if (!
player)
        return 
PLUGIN_HANDLED
    
    
new Authid[35], Time_BanShow_Time[20]
    
    
get_user_authid(playerAuthidcharsmax(Authid))
    
Time_Ban str_to_num(Time)
    
    if(!
Time_Ban)
        
formatex(Show_Timecharsmax(Show_Time), "Permanently")
    else
        
formatex(Show_Timecharsmax(Show_Time), "%d Min"Time_Ban)
    
    if (
Reason[0])
        
server_cmd("kick #%d ^"%Banned Time:%s)^";wait;banid ^"%s^" %s;wait;writeid"get_user_userid(player), ReasonShow_TimeTime_BanAuthid)
    else
        
server_cmd("kick #%d ^"Banned Time:%s)^";wait;banid ^"%s^" %s;;wait;writeid"get_user_userid(player), Show_TimeTime_BanAuthid)

    new 
Super_Admin[32], Victim[32]
    
    
get_user_name(idSuper_Admincharsmax(Super_Admin))
    
get_user_name(playerVictimcharsmax(Victim))
    
    if(
get_pcvar_num(Pointer))
        
client_print(0print_chat"[AMXX] Admin %s Ban %s for %s"ShowSuperAdmin Super_Admin ""VictimShow_Time)
    
    return 
PLUGIN_HANDLED
}

public 
Super_Banip(idlevelcid) {
    if(!
Is_SuperAdmin(idcid3))
        return 
PLUGIN_HANDLED;
        
    new 
Name[32], Time[7] ,Reason[32]
    
    
read_argv(1Namecharsmax(Name))
    
read_argv(2Timecharsmax(Time))
    
read_argv(3Reasoncharsmax(Reason))
    
remove_quotes(Reason)
    
    new 
player get_target(idName)
    
    if (!
player)
        return 
PLUGIN_HANDLED
    
    
new Ip[20], Time_BanShow_Time[20]
    
    
get_user_ip(playerIpcharsmax(Ip), 1)
    
Time_Ban str_to_num(Time)
    
    if(!
Time_Ban)
        
formatex(Show_Timecharsmax(Show_Time), "Permanently")
    else
        
formatex(Show_Timecharsmax(Show_Time), "%d Min"Time_Ban)
    
    if (
Reason[0])
        
server_cmd("kick #%d ^"%Banned Time:%s)^";wait;addip ^"%s^" ^"%s^";wait;writeip"get_user_userid(player), ReasonShow_TimeTime_BanIp)
    else
        
server_cmd("kick #%d ^"Banned Time:%s)^";wait;addip ^"%s^" ^"%s^";wait;writeip"get_user_userid(player), Show_TimeTime_BanIp)

    new 
Super_Admin[32], Victim[32]
    
    
get_user_name(idSuper_Admincharsmax(Super_Admin))
    
get_user_name(playerVictimcharsmax(Victim))
    
    if(
get_pcvar_num(Pointer))
        
client_print(0print_chat"[AMXX] Admin %s Ban %s for %s"ShowSuperAdmin Super_Admin ""VictimShow_Time)
    
    return 
PLUGIN_HANDLED
}

public 
Super_Slay(idlevelcid) {
    if(!
Is_SuperAdmin(idcid2))
        return 
PLUGIN_HANDLED;
    
    new 
Name[32]
    
    
read_argv(1Namecharsmax(Name))
    
    new 
player get_target(idNametrue)
    
    if (!
player)
        return 
PLUGIN_HANDLED
    
    user_kill
(player)
    
    new 
Super_Admin[32], Victim[32]
    
    
get_user_name(idSuper_Admincharsmax(Super_Admin))
    
get_user_name(playerVictimcharsmax(Victim))
    
    if(
get_pcvar_num(Pointer))
        
client_print(0print_chat"[AMXX] Admin %s Slay %s"ShowSuperAdmin Super_Admin ""Victim)
        
    return 
PLUGIN_HANDLED
}

public 
Super_Slap(idlevelcid) {
    if(!
Is_SuperAdmin(idcid2))
        return 
PLUGIN_HANDLED;
        
    new 
Name[32], Power[32]
    
    
read_argv(1Namecharsmax(Name))
    
read_argv(2Powercharsmax(Power))
    
    new 
player get_target(idNametrue)
    
    if (!
player)
        return 
PLUGIN_HANDLED

    user_slap
(playerstr_to_num(Power))
    
    new 
Super_Admin[32], Victim[32]
    
    
get_user_name(idSuper_Admincharsmax(Super_Admin))
    
get_user_name(playerVictimcharsmax(Victim))
    
    if(
get_pcvar_num(Pointer))
        
client_print(0print_chat"[AMXX] Admin %s Slap %s with %d damage"ShowSuperAdmin Super_Admin ""Victimstr_to_num(Power))
        
    return 
PLUGIN_HANDLED
}

public 
Super_AddAdmin(idlevelcid) {
    
    if(!
Is_SuperAdmin(idcid2))
        return 
PLUGIN_HANDLED;
    
    new 
Steam[37]
    
    
read_argv(1Steamcharsmax(Steam))
    
remove_quotes(Steam)
    
    if(
Steam[0] != 'S' || Steam[4] != 'M' || Steam[7] != ':' || Steam[9] != ':') {
        
        new 
player get_target(idSteam)
    
        if(!
player)
            return 
PLUGIN_HANDLED
        
        get_user_authid
(playerSteamcharsmax(Steam))
    }
    
    if(
TrieKeyExists(SuperAdminsSteam)) {
        
console_print(id"The steamid %s is already in SuperAdmin File"Steam)
        return 
PLUGIN_HANDLED
    
}
    
    new 
ConfigDir[64]
    
    
get_configsdir(ConfigDircharsmax(ConfigDir))
    
    
format(ConfigDircharsmax(ConfigDir), "%s/SuperAdmin.ini"ConfigDir
    
    new 
File fopen(ConfigDir"at")
        
    if (!
File
        return 
PLUGIN_HANDLED
        
    fprintf
(File"^n^"%s^""Steam)
        
    
fclose(File)
    
    
TrieSetCell(SuperAdminsSteamtrue)
    
    
console_print(id"Steam: %s is now a SuperAdmin"Steam)
    
    return 
PLUGIN_HANDLED
}

create_menu_main() {
    
    new 
buffer[64]
    
    
formatex(buffercharsmax(buffer), "[R]ak Acme Inc.- %s"Menu_Name[AMXSUPERMENU][MENU_NAME])
    
    
g_MenuMain menu_create(buffer"menu_main_handler")
    
    for(new 
1sizeof Menu_Namei++)
        
menu_additem(g_MenuMainMenu_Name[i][MENU_NAME])
        
}

Is_SuperAdmin(idcidArgs) {
    new 
Authid[35]
    
    
get_user_authid(idAuthidcharsmax(Authid));
    
    if(
TrieKeyExists(SuperAdminsAuthid) || id == 0) {
        
        if (
read_argc() < Args) {
        
            new 
cmd[32], info[128], flag
        
            get_concmd
(cidcmdcharsmax(cmd), flaginfocharsmax(info), -1)

            
console_print(id,"%L: %s %s"id"USAGE"cmdinfo)
        
            return 
false
        
}
        
        return 
true
    
}
        
    return 
false
}

get_target(idArg[], CheckAlive false) {
    
    new 
player find_player("bl"Arg)
    
    if(
player) {
        
        if(
player != find_player("blj"Arg)) {
        
            
console_print(id"%L"id"MORE_CL_MATCHT")
            
            return 
false
        
}
    }
    else if((
player find_player("c"Arg)) == && Arg[0] == '#' && Arg[1])
        
player find_player("k"str_to_num(Arg[1]))
    
    if(!
player)
        
console_print(id"%L"id"CL_NOT_FOUND")
    else if(
CheckAlive && !is_user_alive(player)) {
        
        new 
sName[32]
        
        
get_user_name(playersNamecharsmax(sName))
        
        
console_print(id"%L"id"CANT_PERF_DEAD"sName)
        
        return 
false
        
    
}
    
    return 
player
    
}

create_file(ConfigDir[]) {
    
    new 
File fopen(ConfigDir"wt")
    
    
fprintf(File"; SuparAdmin By [R]ak Acme Inc.-^n; File location: $moddir/addons/amxmodx/configs/SuperAdmin.ini^n^n; Line starting with ; is a comment^n^n; Example of SuparAdmin account:^n; ^"STEAM_0:0:123456^"^n^n^n;Enjoy")
    
    
fclose(File)
}

public 
plugin_end()
    
TrieDestroy(SuperAdmins

Last edited by JuanitoAlimana; 03-13-2024 at 06:00.
JuanitoAlimana is offline