Oto kod poprawiony trochę przez Muzzi:
#include <amxmodx> #include <amxmisc> #define PLUGIN "Poprawne Rate" #define VERSION "1.1" #define AUTHOR "hiroshima" #define LEVEL_ADMIN ADMIN_IMMUNITY public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /dziupla", "dziupla", ADMIN_RESERVATION, "Ustawia rate") register_clcmd("say_team /dziupla", "dziupla", ADMIN_RESERVATION, "Ustawia rate") } public dziupla(id) { new name[64], iPlayers[32], iNum; if (get_user_flags(id) & LEVEL_ADMIN) { client_print(id, print_chat, "Zmiana ustawien Ciebie nie obejmuje...") return PLUGIN_HANDLED; } client_cmd(0,"rate ^"25000^""); client_cmd(0,"cl_cmdrate ^"101^""); client_cmd(0,"cl_updaterate ^"101^""); client_cmd(0,"developer ^"0^""); client_cmd(0,"ex_interp ^"0.01^""); get_players(iPlayers, iNum) for(new i=0; i<iNum; i++) { if(!(get_user_flags(iPlayers[i]) & LEVEL_ADMIN)) { get_user_name(iPlayers[i],name,charsmax(name)); client_print(iPlayers[i],print_chat,"Gracz %s Przeladowal Ustawienia",name); } } return PLUGIN_HANDLED; }
Teraz do rzeczy. Co chcę poprawić:
Otóż ten kod działa na takiej zasadzie, po wpisaniu w sayu "/dziupla" poprawia wszystkim ustawienia rate itp.
Lecz gdy admin ma immunited to zatrzymuje działanie pluginu, a chcę aby tylko jemu nie zmieniło ustawień ale wszystkim innym graczom ZMIENIŁO.
Druga sprawa to powiadomienie o zmianie. U każdego gracza pokazuje się info "Gracz (jego nick) przeładował ustawienia",
a chcę by te info było widoczne tylko dla adminów i tylko nick gracza/ admina który zmienił te ustawienia, żeby gracze w ogóle nie wiedzieli że któryś admin zmienił ustawienia.
W skrócie opiszę jak powinien ten kod chodzić (na jakiej zasadzie):
1. Pluginu mogą używać tylko Admini, czyli gracz po wpisaniu w sayu tej komendy dostanie info w konsoli że nie może użyć tej komendy.
2. Plugin ma nie zmieniać ustawień tylko ADMINOM z Immunitetem czyli flagą "A" - reszcie graczy i adminom ma zmienić.
3. Gdy komendy użyje Admin z flagą A (immu) to jemu nie zmieni ustawień ale reszcie ZMIENI, a w tym kodzie zatrzymuje działanie.
4. Informacje:
a ) Gdy dany admin zmieni ustawienia to na say_team@ (Admin SAY) pojawi się info który Admin to wykonał.
b ) Gdy admin użyje tej komendy to dodatkowo Adminowi z IMMUNITETEM (f.A) pojawi się informacja, że Jego to nie obowiązuje.
Proszę o POMOC. Są to drobne poprawki kodu, lecz ja nie potrafię z tym sobie poradzić. Dla pomocnych będą plusy oczywiście i gwiazdka na profilu;p
Czy taki kod jak samemu poprawiłem będzie chodził na takich zasadach jakich oczekuję?
#include <amxmodx> #include <amxmisc> #define PLUGIN "Poprawne Rate" #define VERSION "1.1" #define AUTHOR "hiroshima" #define LEVEL_ADMIN ADMIN_IMMUNITY ADMIN_BAN public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /dziupla", "dziupla", ADMIN_BAN, "Ustawia rate") register_clcmd("say_team /dziupla", "dziupla", ADMIN_BAN, "Ustawia rate") } public dziupla(id) { new name[64], iPlayers[32], iNum; if ((get_user_flags(id) & ADMIN_IMMUNITY)) { remove_task(id) client_print(id, print_chat, "Masz Immunitet. Zmiana ustawien wstrzymana") return PLUGIN_HANDLED } client_cmd(0,"rate ^"25000^""); client_cmd(0,"cl_cmdrate ^"101^""); client_cmd(0,"cl_updaterate ^"101^""); client_cmd(0,"developer ^"0^""); client_cmd(0,"ex_interp ^"0.01^""); get_players(iPlayers, iNum) for(new i=0; i<iNum; i++) { if(!(get_user_flags(id) & ADMIN_BAN)) { get_user_name(iPlayers[i],name,charsmax(name)); client_print(iPlayers[i],print_chat,"Gracz %s Przeladowal Ustawienia",name); } } return PLUGIN_HANDLED; }
Odświeżam...
Nie ma nikogo kto potrafi coś takiego?
Użytkownik T.I.G.E.R edytował ten post 30.12.2011 12:35