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


Dodatki SourceMod












