new oddaj_id[33]; new bool:dostal_przedmiot[33]; public OddajPrzedmiot(id) { new menu = menu_create("Oddaj przedmiot", "OddajPrzedmiot_Handle"); new cb = menu_makecallback("OddajPrzedmiot_Callback"); new numer_przedmiotu; for(new i=0; i<=32; i++) { if(!is_user_connected(i)) continue; oddaj_id[numer_przedmiotu++] = i; menu_additem(menu, nazwa_gracza[i], "0", 0, cb); } menu_display(id, menu); } public OddajPrzedmiot_Handle(id, menu, item) { if(!is_user_connected(oddaj_id[item])) { client_print(id, print_chat, "Nie odnaleziono zadanego gracza."); return PLUGIN_CONTINUE; } if(dostal_przedmiot[id]) { client_print(id, print_chat, "Musisz poczekac 1 runde."); return PLUGIN_CONTINUE; } if(!informacje_przedmiotu_gracza[id][0]) { client_print(id, print_chat, "Nie masz zadnego przedmiotu."); return PLUGIN_CONTINUE; } if(informacje_przedmiotu_gracza[oddaj_id[item]][0]) { client_print(id, print_chat, "Ten gracz ma juz przedmiot."); return PLUGIN_CONTINUE; } dostal_przedmiot[oddaj_id[item]] = true; DajPrzedmiot(oddaj_id[item], informacje_przedmiotu_gracza[id][0]); informacje_przedmiotu_gracza[oddaj_id[item]][1] = informacje_przedmiotu_gracza[id][1]; client_print(id, print_chat, "Przekazales %s graczowi %s.",nazwy_przedmiotow[informacje_przedmiotu_gracza[id][0]] , nazwa_gracza[oddaj_id[item]]); client_print(oddaj_id[item], print_chat, "Dostales %s od gracza %s.",nazwy_przedmiotow[informacje_przedmiotu_gracza[id][0]] , nazwa_gracza[id]); UsunPrzedmiot(id); return PLUGIN_CONTINUE; } public OddajPrzedmiot_Callback(id, menu, item) { if(oddaj_id[item] == id) return ITEM_DISABLED; return ITEM_ENABLED; }
Komenda działa do pierwszego oddania itemu, przy każdej kolejnej próbie przez resztę mapy wyskakuje "musisz poczekac 1 runde",
jeśli ktoś wie co jest nie tak z tym kodem to proszę o poprawienie.