Dodajemy zmienne logiczne które będą informowały plugin jaki item obecnie posiada gracz.
new bool:ma_rakiety[33]; new bool:ma_miny[33];
przed switch(klasa_gracza[id]) zerujemy co aktualnie posiada
ma_miny[id]=false; ma_rakiety[id]=false;
Nasza Klasa Kaboom będzie miałą dodatkowo deagla i p90. Dodajemy jej 3 rakiety i 3 miny i ustawiamy by na początku rundy korzystała z rakiet
case Kaboom: { give_item(id,"weapon_deagle"); give_item(id,"weapon_p90") ma_rakiety[id] = true; ilosc_rakiet_gracza[id] = 3; ilosc_min_gracza[id] = 3; }
do plugin_init dodajemy klawisz zmiany na radio3 ( o ile wczesniej nie był zbindowany - klawisz x)
register_clcmd("radio3", "Zmiana");
i dodajemy funkcje Zmiana
public Zmiana(id) { if (klasa_gracza[id] == Kaboom) // jesli klasa to Kaboom { set_hudmessage(255, 212, 0, 0.75, 0.33, 1, 6.0, 4.0); if(ma_rakiety[id]) // i ma rakiety { ma_miny[id] = true; // ustaw miny ma_rakiety[id] = false; ShowSyncHudMsg(id, SyncHudObj2, "Item:Miny"); } else // jeśli nie ma rakiet { ma_rakiety[id] = true; // to je ustaw ma_miny[id] = false; ShowSyncHudMsg(id, SyncHudObj2, "Item:Rakieta"); } } return PLUGIN_HANDLED; // zastopuj zeby nie wyskoczylo menu radia }
i ulepszamy UzyjPrzedmiotu(id). polega ono na sprawdzeniu czy gracz aktualnie korzysata z min czy rakiet.
zmieniamy z
if(ilosc_rakiet_gracza[id]>0) StworzRakiete(id); if(ilosc_min_gracza[id]>0) PostawMine(id);
na
if(ma_rakiety[id]) StworzRakiete(id); if(ma_miny[id]) PostawMine(id);
Funkcje Tworzące minę i rakiete posiadają już sprawdzenie czy graczowi się nie skończyły.
UWAGA! Jeśli dodasz tak miny i rakiety musisz dodać do wszystkich klas posiadających miny ma_mine[id] = true; a do klas posiadających rakiety ma_rakiety[id] = true;
PORADA - u mnie na serwerze działa również opcja z apteczkami w wskrzeszaniem. Można dowolnie łączyć ze sobą itemy na podobnych zasadach.
W razie Gdyby coś było nie tak - napisać. U mnie na serwerze hula to od dobrego pół roku.
miłego.