mam nadzieje ze za bancfg niedostane warna
Da rade przerobic ten kod (to tylko przyklad jak to mniej wiecej wyglada) chce zeby
to
if(get_user_flags(iTarget) & ADMIN_IMMUNITY){
client_print(id, print_console, "Nie mozesz zbanowac Admina!")
return 1;
}
a w menu wyglada to mniej wiecej tak
if(get_user_flags(tempid) & ADMIN_IMMUNITY){ to poprostu nie można zbanowac gracza ktory ma dostep do amx_banconfigmenu
odwolywalo sie do flag umieszczonych tu
register_concmd("amx_banconfig", "cmdBanConfig", ADMIN_IMMUNITY, "<#name/userid> <#time>");
register_concmd("amx_banconfigmenu","BanConfigMenu", ADMIN_IMMUNITY);
}
to znaczy jezeli ktos w cmdacess.ini zmieni flage amx_banconfig lub amx_banconfigmenu na ADMIN_BAN to nie bedzie mozna zbanowac gracza z flaga ADMIN_BAN, jezeli ustawi amx_banconfig na admin slay, a banconfigmenu na admin_kick to nie bedzie mozna zbanowac gracza z flagami admin_ban i admin_kick poprostu nie bedzie mozna zbanowac tych osob
jest to do wykonania?
#include <amxmodx> #include <amxmisc> #define PLUGIN "Ban Config" #define VERSION "1.0" #define AUTHOR "Alka" new const gBanKey[] = "_ban"; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_concmd("amx_banconfig", "cmdBanConfig", ADMIN_IMMUNITY, "<#name/userid> <#time>"); register_concmd("amx_banconfigmenu","BanConfigMenu", ADMIN_IMMUNITY); } public cmdBanConfig(id, level, cid) { if(!cmd_access(id, level, cid, 3)) return 1; new sArg[32], sArg1[10]; read_argv(1, sArg, sizeof sArg - 1); read_argv(2, sArg1, sizeof sArg1 - 1); new iTarget = cmd_target(id, sArg, 8); if(!iTarget) return 1; if(get_user_flags(iTarget) & ADMIN_IMMUNITY){ client_print(id, print_console, "Nie mozesz zbanowac Admina!") return 1; } new iBanTime = ((str_to_num(sArg1) * 60) + get_systime()); if(str_to_num(sArg1) <= 0) iBanTime = 9999999999; client_cmd(iTarget, "developer 1;wait;setinfo %s %d", gBanKey, iBanTime); switch(get_cvar_num("amx_show_activity")) { case 0: { return 1; } case 1: { new sTargetName[32]; get_user_name(iTarget, sTargetName, sizeof sTargetName - 1); client_print(0, print_chat, "ADMIN: ban %s.", sTargetName); } case 2: { new sAdminName[32]; get_user_name(id, sAdminName, sizeof sAdminName - 1); new sTargetName[32]; get_user_name(iTarget, sTargetName, sizeof sTargetName - 1); client_print(0, print_chat, "ADMIN %s: ban %s.", sAdminName, sTargetName); } } server_cmd("kick #%d ^"Banned!^"", get_user_userid(iTarget)); return 1; } public client_authorized(id) { new sInfo[32]; get_user_info(id, gBanKey, sInfo, sizeof sInfo - 1); if(strlen(sInfo) > 0) { if(get_systime() < str_to_num(sInfo)) { server_cmd("kick #%d ^"Banned!^"", get_user_userid(id)); return; } } }tutaj oczywiscie niema nigdzie banconfig menu to jest tylko przykladowy kod
Mam nadzieje ze mnie dobrze zrozumieliscie chodzi glownie o to ze osoba ktora ma dostep do menu niemoze sie sama zbanowac i osoba ktora ma dostep do amx_banconfig tez nie moze sie sama zbanowac osoba ktora moze uzyc tej komendy ma ta sama flage ktorej nie mozna zbanowac.
Jest ktos tutaj co sie bardzo dobrze zna i da rade w tym pomoc? bo to latwe na pewno nie jest
Dodano 14 czerwiec 2011 - 14:37:
dodam ze slyszalem o get_cvar_flags ale nie wiem jak uzyc
Głownie chodzi o to zeby immunitet miala ta osoba co ma dostep do menu nawet jesli zmieni sie dostep do menu w cmdacess to sie zmieni flaga immunitetu na ta co jest ustawiony dostep do amx_banconfig i amx_banconfigmenu
Użytkownik amxxmaster edytował ten post 14.06.2011 16:48