W tym tutorialu postaram się przedstawić w jaki sposób możemy dodać automatyczny wybór klasy dla gracza po określonym przez nas czasie.
Na początku dodajemy nowe zmienne globalne:
new auto_klasa_gracza[65], Float:time_klasa_gracza[65];
teraz do public Action:UsunUmiejetnosci(client) dodajemy ich resetowanie a więc:
auto_klasa_gracza[client] = 0; time_klasa_gracza[client] = 0.0;
następnie przechodzimy do public Action:PokazInformacje(Handle:timer, any:client) i zamieniamy go na:
public Action:PokazInformacje(Handle:timer, any:client) { if(!IsValidClient(client)) return; if(IsPlayerAlive(client)) { WybierzAutoKlase(client); if(auto_klasa_gracza[client]) PrintHintText(client, "<font color='#008000'>[Klasa: <b>%s</b> (<b>%is</b>)]\n[Xp: <b>%i</b> | Lv: <b>%i</b>]\n[Item: <b>%s</b> [<b>%i%%</b>]]</font>", nazwy_klas[klasa_gracza[client]], auto_klasa_gracza[client], doswiadczenie_gracza[client], poziom_gracza[client], nazwy_itemow[item_gracza[client]], wytrzymalosc_itemu_gracza[client]); else PrintHintText(client, "<font color='#008000'>[Klasa: <b>%s</b>]\n[Xp: <b>%i</b> | Lv: <b>%i</b>]\n[Item: <b>%s</b> [<b>%i%%</b>]]</font>", nazwy_klas[klasa_gracza[client]], doswiadczenie_gracza[client], poziom_gracza[client], nazwy_itemow[item_gracza[client]], wytrzymalosc_itemu_gracza[client]); } else { new spect = GetEntProp(client, Prop_Send, "m_iObserverMode"); if(spect == 4 || spect == 5) { new target = GetEntPropEnt(client, Prop_Send, "m_hObserverTarget"); if(target != -1 && IsValidClient(target)) PrintHintText(client, "<font color='#FFFFFF'>[Klasa: <b>%s</b>]\n[Xp: <b>%i</b> | Lv: <b>%i</b>]\n[Item: <b>%s</b> [<b>%i%%</b>]]</font>", nazwy_klas[klasa_gracza[target]], doswiadczenie_gracza[target], poziom_gracza[target], nazwy_itemow[item_gracza[target]], wytrzymalosc_itemu_gracza[target]); } } hud_task[client] = CreateTimer(0.5, PokazInformacje, client, TIMER_FLAG_NO_MAPCHANGE); }
oraz gdzieś na dole pluginu dodajemy:
public Action:WybierzAutoKlase(client) { new Float:gametime = GetGameTime(); if(gametime > time_klasa_gracza[client]+1.0) { if(!klasa_gracza[client]) { if(!auto_klasa_gracza[client]) auto_klasa_gracza[client] = IsFakeClient(client)? 3: 30; // czas wyboru klasy przez bota 3 sekundy, przez gracza 30; if(wczytane_dane[client] && !freezetime) { if(auto_klasa_gracza[client] > 1) auto_klasa_gracza[client] --; else { nowa_klasa_gracza[client] = GetRandomInt(1, ilosc_klas); UstawNowaKlase(client); ZastosujAtrybuty(client); DajBronie(client); PrintToChat(client, "[COD:MW] Twoja klasa zostala wybrana automatycznie."); } } } else if(auto_klasa_gracza[client]) auto_klasa_gracza[client] = 0; time_klasa_gracza[client] = gametime; } return Plugin_Continue; }
teraz wystarczy już zapisać i ponownie skompilować silnik by cieszyć się dodatkiem.
Silnik wraz z paczką modyfikacji, można nabyć wyłącznie poprzez kontakt ze mną. Więcej o tym w sygnaturze.