[ROZWIĄZANE] [PROBLEM] Plugin dający deagl...
7keN
11.07.2013
Witam.
Napisalem plugin ktory ma dawać deagle określonemu graczowy. Pierw ma wyświetlać liste graczy na serwerze, a później ma sie wyświetlić menu pokazujące ile ten deagle ma mieć amunicji, ale mam problem ponieważ mimo, że wybieram gracza to zawsze daje tą broń mi i daje 7 ammo zawsze a nie tyle co ustawiłem. Co zrobić zeby było dobrze? Pomóżcie!
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #include <cstrike> #include <fun> #include <engine> #define PLUGIN "Deagle" #define VERSION "1.0" #define AUTHOR "asd" #define MAX 31 new Players[MAX+1][64]; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /deagle", "menu") } public menu(id, level, cid) { new menu = menu_create("Wybierz Gracza:","menu_broni"); new name[64], num; for(new i=1; i<=32; i++) { if(is_user_connected(i)) { Players[id][num] = i; num++; get_user_name(i, name, charsmax(name)); menu_additem(menu, name); } } menu_setprop(menu, MPROP_BACKNAME, "Wroc"); menu_setprop(menu, MPROP_NEXTNAME, "Dalej"); menu_setprop(menu, MPROP_EXITNAME, "Wyjscie"); menu_display(id, menu); return PLUGIN_HANDLED; } public menu_broni(id) { if (get_user_team(id) == 2) { new menu = menu_create("\rMenu Broni", "wybieranie") menu_additem(menu, "\wDeagle bez ammo", "1", 0) menu_additem(menu, "\wDeagle z 1 ammo", "2", 0) menu_additem(menu, "\wDeagle z 3 ammo", "3", 0) menu_additem(menu, "\wDeagle z pelnym magazynkiem", "4", 0) menu_setprop(menu, MPROP_EXIT, MEXIT_ALL) menu_display(id, menu, 0) } else { client_print(id, print_chat, "Nie masz do tego dostepu Ziomus!") return PLUGIN_HANDLED } return PLUGIN_HANDLED; } public wybieranie(id, menu, item) { if (item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } new data[6], iName[64] new acces, callback menu_item_getinfo(menu, item, acces, data,5, iName, 63, callback) new key = str_to_num(data) new dgl_id = find_ent_by_owner(-1, "weapon_deagle", id) switch(key) { case 1:{ give_item(id, "weapon_deagle"); if(dgl_id){ cs_set_weapon_ammo(dgl_id, 0); } menu_destroy(menu) return PLUGIN_HANDLED } case 2:{ give_item(id, "weapon_deagle"); if(dgl_id){ cs_set_weapon_ammo(dgl_id, 1); } menu_destroy(menu) return PLUGIN_HANDLED } case 3:{ give_item(id, "weapon_deagle"); if(dgl_id){ cs_set_weapon_ammo(dgl_id, 3); } menu_destroy(menu) return PLUGIN_HANDLED } case 4:{ give_item(id, "weapon_deagle"); if(dgl_id){ cs_set_weapon_ammo(dgl_id, 35); } menu_destroy(menu) return PLUGIN_HANDLED } } menu_destroy(menu) return PLUGIN_HANDLED }
7keN
11.07.2013
nie
edit:
czy nikt tu nie potrafi pomóc?
Użytkownik 7keN edytował ten post 11.07.2013 17:46
O'Zone
11.07.2013
Jak możesz szukać broni, skoro gracz jeszcze jej nie ma?
new dgl_id = find_ent_by_owner(-1, "weapon_deagle", id)
Daj to po każdym:
give_item(id, "weapon_deagle");
I powinno działać.
Użytkownik O'Zone edytował ten post 11.07.2013 18:03
7keN
11.07.2013
Przeciez to tworzy DGL_ID ktore uzywam po kazdym
give_item(id, "weapon_deagle");
blagam niech ktos to napisze tak jak ma byc.. a nie strzelacie i sami nie wiecie..
Użytkownik 7keN edytował ten post 11.07.2013 18:19
O'Zone
11.07.2013
Szukasz funkcją broni, gdy gracz nie ma jej jeszcze przydzielonej. Mówię o:
new dgl_id = find_ent_by_owner(-1, "weapon_deagle", id)
Późniejsze sprawdzanie zmiennej
if(dgl_id){
nie wywołuje ponownie sprawdzania broni, a wartość zmiennej została przypisana wcześniej, więc warunek nigdy nie zajdzie.
Zrób więc to, co napisałem w poprzednim poście i ciesz się działającym pluginem
7keN
11.07.2013
Zrobilem i daje juz dobrze ammo, ale nadal daje bron tylko mi, mimo ze wybieram kogo innego.
Jak to naprawic?
O'Zone
11.07.2013
Kod menu wybieranie ewidentnie przypisuje broń graczowi, który akurat z menu korzysta.
Jeśli chcesz, by broń dostawał gracz przez ciebie wybrany, trzeba wprowadzić drobne zmiany.
Sprawdź plugin z załącznika:
Załączone pliki
dasiek
12.07.2013
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