[ROZWIĄZANE] Informacja na czacie po użyci...
IntelCom
27.12.2014
Witam,
Mam taki kod, i jak zrobić by po użyciu komendy /dodajhp po raz 2++ w rundzie na say'u pojawiała się informacja "Niestety uzyles juz tego polecenia, bedziesz mogl go uzyc ponownie w kolejnej rundzie".
#include <amxmodx> #include <fun> #define PLUGIN "PLUG" #define VERSION "1.0" #define AUTHOR "Dawid" new uzyl[33] public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /dodajhp","hp") register_event("HLTV", "NowaRunda", "a", "1=0", "2=0"); } public client_connect(id) { uzyl[id]=false } public hp(id) { if(is_user_alive(id) && is_user_connected(id) && !uzyl[id]) { set_user_health(id, 150) client_print(id, print_chat, "Ustawiono Ci 150hp"); uzyl[id]=true } else client_print(id,print_chat, "Niestety, ale jestes niezywy i nie mozesz uzyc tej komendy"); } public NowaRunda() { for(new id = 1; id <= get_maxplayers(); id++) { uzyl[id] = false } }
Bo w tym momencie wyświetlany się komunikat "Niestety, ale jestes niezywy i nie mozesz uzyc tej komendy".Tak ma zostać, ale tylko dla gracza, który jest nie żywy.
Z góry dzięki za pomoc
Użytkownik IntelCom edytował ten post 27.12.2014 15:53
Wielkie Jol
27.12.2014
Jeżeli sprawdzasz, czy gracz żyje, nie musisz sprawdzać, czy jest połączony z serwerem, bo nie może być nie połączony a zarazem żywy.
IntelCom
27.12.2014
Zrobiłem to w ten sposób jednak, plugin nie chce się skompilować.
#include <amxmodx> #include <fun> #define PLUGIN "PLUG" #define VERSION "1.0" #define AUTHOR "Dawid" new uzyl[33] public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /dodajhp","hp") register_event("HLTV", "NowaRunda", "a", "1=0", "2=0"); } public client_connect(id) { uzyl[id]=false } public hp(id) { if(is_user_alive(id) && !uzyl[id]) { set_user_health(id, 150) client_print(id, print_chat, "Ustawiono Ci 150hp"); uzyl[id]=true } else if(!is_user_alive(id)) client_print(id,print_chat, "Niestety, ale jestes niezywy i nie mozesz uzyc tej komendy"); } if(uzyl[id]) client_print(id,print_chat, "Niestety uzyles juz tego polecenia, bedziesz mogl go uzyc ponownie w kolejnej rundzie"); public NowaRunda() { for(new id = 1; id <= get_maxplayers(); id++) { uzyl[id] = false } }
Wielkie Jol
27.12.2014
2. Sprawdź czy gracz użył komendy, jeżeli tak, wstrzymaj działanie.
3. Wszystko ok, gracz spełnia warunki, teraz możesz mu przyznać bonusy.
IntelCom
27.12.2014
Poprawiłem, niestety nadal plugin się nie kompiluje.
#include <amxmodx> #include <fun> #define PLUGIN "PLUG" #define VERSION "1.0" #define AUTHOR "Dawid" new uzyl[33] public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /dodajhp","hp") register_event("HLTV", "NowaRunda", "a", "1=0", "2=0"); } public client_connect(id) { uzyl[id]=false } public hp(id) { if(!is_user_alive(id)) { client_print(id, print_chat, "Niestety, ale jestes niezywy i nie mozesz uzyc tej komendy"); return PLUGIN_CONTINUE; } if(uzyl[id]) { client_print(id,print_chat, "Niestety uzyles juz tego polecenia, bedziesz mogl go uzyc ponownie w kolejnej rundzie"); return PLUGIN_CONTINUE; } if(is_user_alive(id) && !uzyl[id]) { set_user_health(id, 150) client_print(id,print_chat, "Dodano Ci 150HP!"); uzyl[id]=true } public NowaRunda() { for(new id = 1; id <= get_maxplayers(); id++) { uzyl[id] = false } }
grankee
27.12.2014
1.nie zamknales funkcji hp
2.uzywaj tabulatorów, bo to co tutaj podałeś trąci nieczytelnością mimo zaledwie niecałych 50 linijek kodu
3.po co sprawdzasz dwa razy to samo? przeczytaj komentarz w kodzie
#include <amxmodx> #include <fun> #define PLUGIN "PLUG" #define VERSION "1.0" #define AUTHOR "Dawid" new uzyl[33] public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /dodajhp","hp") register_event("HLTV", "NowaRunda", "a", "1=0", "2=0"); } public client_connect(id) { uzyl[id]=false } public hp(id) { if(!is_user_alive(id)) { client_print(id, print_chat, "Niestety, ale jestes niezywy i nie mozesz uzyc tej komendy"); return PLUGIN_CONTINUE; } if(uzyl[id]) { client_print(id,print_chat, "Niestety uzyles juz tego polecenia, bedziesz mogl go uzyc ponownie w kolejnej rundzie"); return PLUGIN_CONTINUE; } if(is_user_alive(id) && !uzyl[id])//po co Ci to? sprawdzałeś już wyżej, gdyby nie były te warunki spełnione to by kod nie doszedł do tego miejsca { set_user_health(id, 150) client_print(id,print_chat, "Dodano Ci 150HP!"); uzyl[id]=true } } public NowaRunda() { for(new id = 1; id <= get_maxplayers(); id++) { uzyl[id] = false } }
IntelCom
27.12.2014
grankee
27.12.2014
w ogóle nie potrzeba tam warunku, czytaj i myśl
#include <amxmodx> #include <fun> #define PLUGIN "PLUG" #define VERSION "1.0" #define AUTHOR "Dawid" new uzyl[33] public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /dodajhp","hp") register_event("HLTV", "NowaRunda", "a", "1=0", "2=0"); } public client_connect(id) { uzyl[id]=false } public hp(id) { if(!is_user_alive(id))//sprawdzasz czy gracz jest martwy { client_print(id, print_chat, "Niestety, ale jestes niezywy i nie mozesz uzyc tej komendy"); return PLUGIN_CONTINUE;//gracz byl martwy wiec tym przerywasz wykonywanie tego kodu, wszystko co jest w tej funkcji ponizej nie zostanie juz wykonane }//jezeli gracz jest martwy to kod nie dojdzie do tego miejsca, czyli musi byc zywy jesli kod jeszcze sie tutaj wykonuje if(uzyl[id])//jezeli uzyl juz w tej rundzie... { client_print(id,print_chat, "Niestety uzyles juz tego polecenia, bedziesz mogl go uzyc ponownie w kolejnej rundzie"); return PLUGIN_CONTINUE; //gracz juz uzyl wiec tym przerywasz wykonywanie tego kodu, wszystko co jest w tej funkcji ponizej nie zostanie juz wykonane }//jezeli uzyl juz w tej rundzie to kod nie dojdzie do tego miejsca //tutaj robisz już co chcesz bez warunków, bo skoro program jest w tym miejscu kodu to znaczy, że nie został wcześniej przerwany z powodu "bo gracz nie zyje" albo "bo gracz użył" set_user_health(id, 150) client_print(id,print_chat, "Dodano Ci 150HP!"); uzyl[id]=true } public NowaRunda() { for(new id = 1; id <= get_maxplayers(); id++) { uzyl[id] = false } }
radim
28.12.2014
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL