Witam!
W tym poradniku chcę wam przedstawić jak ustawić ograniczenie kupna danego extra itemu na rundę.
Postaram się w jak najprostszy sposób wam to pokazać i wyjaśnić co dane parametry oznaczają.
1. Otwieramy nasz extra item (plik .sma)
2. Pod bibliotekami (tu: #include) dodajemy:
new iBuyCount[33] const iMaxBuy = 4 // <=ile razy mozna kupic extra item na runde
3. Następnie rejestrujemy nową rundę (w plugin_init)
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
4. Dodajemy całą funkcje, najlepiej na sam koniec:
public event_round_start() for(new i = 1; i <= 33; i++) iBuyCount[i] = 0
Publik resetuje nam ilość naszego kupna. Jeśli kupiliśmy ex item 4 razy, w nowej rundzie zostanie on zmieniony na 0, więc jeśli mieliśmy ogranicznik ustawiony na 4 to będziemy znowu mogli kupować item 4 razy, w przeciwnym wypadku nasza ilość nie zostanie zresetowana i dalsze kupno będzie niemożliwe.
5. I tu zaczyna się tak "trochę ciężej dla zielonych". Radzę uważnie czytać.
Public zp_extra_item_selected przeważnie wygląda tak:
public zp_extra_item_selected(player, itemid)
{
if (itemid == g_itemid1)
{
client_print(player, print_chat, "[ZP] Kupiles EXTRA ITEM!") // opis
moc[player] = true // zmienna włączająca dany skill/moc/atrybut
give_item(player, "weapon_hegrenade") // i tam dla bajeru, dostaje się granata
}
}
Ten przykładowy ex item musimy przerobić na ograniczenie.
Wystarczy, że przed naszymi dodatkami z ex itemu, czyli:
client_print(player, print_chat, "[ZP] Kupiles EXTRA ITEM!") // opis moc[player] = true // zmienna włączająca dany skill/moc/atrybut give_item(player, "weapon_hegrenade") // i tam dla bajeru, dostaje się granata
Dodajemy:
if(iBuyCount[player] >= iMaxBuy)
{
client_print(player, print_chat, "[ZP] Przepraszamy, ale juz nie mozesz tego kupowac!")
return ZP_PLUGIN_HANDLED;
}
iBuyCount[player]++
I do if (itemid == g_itemid1) zwrócimy wartość PLUGIN_CONTINUE.
Czyli nasz publik powinien wyglądać tak:
public zp_extra_item_selected(player, itemid)
{
if (itemid == g_itemid1)
{
if(iBuyCount[player] >= iMaxBuy)
{
client_print(player, print_chat, "[ZP] Przepraszamy, ale juz nie mozesz tego kupowac!")
return ZP_PLUGIN_HANDLED;
}
iBuyCount[player]++
client_print(player, print_chat, "[ZP] Kupiles EXTRA ITEM!")
moc[player] = true
give_item(player, "weapon_hegrenade")
}
return PLUGIN_CONTINUE;
}
Od teraz gracz, który kupił dany extra item 4 razy nie będzie mógł kupować go dalej. Dopiero od nowej rundy.
Niżej przykładowy extra item.
Poradnik piszę "sam z głowy", nie kieruje się innym poradnikiem, lecz przeanalizowałem plugin, przetestowałem i dzielę się z wami.
I to by było na tyle, bye.
Użytkownik Drago36 edytował ten post 15.09.2014 16:08


Dodatki SourceMod














