1. Szukamy:
perk_gracza[33],
wartosc_perku_gracza[33];
zmieniamy na:
perk_gracza[2][33],
wartosc_perku_gracza[2][33];
2. Do public plugin_init() dodajemy:
register_clcmd("say /perk2", "KomendaOpisPerku2");
register_clcmd("say /drop2", "WyrzucPerk2");
register_clcmd("say /wyrzuc2", "WyrzucPerk2");
register_clcmd("useperk2", "UzyjPerku2");
register_clcmd("radio2", "UzyjPerku2");
i szukamy w nim:
perk_zmieniony = CreateMultiForward("cod_perk_changed", ET_CONTINUE, FP_CELL, FP_CELL, FP_CELL);
zmieniamy na:
perk_zmieniony = CreateMultiForward("cod_perk_changed", ET_CONTINUE, FP_CELL, FP_CELL, FP_CELL, FP_CELL);
3. Szukamy w public plugin_natives():
register_native("cod_get_user_perk", "PobierzPerk", 1);
zmieniamy na:
register_native("cod_get_user_perk", "PobierzPerk");
4. Szukamy w public UstawNowaKlase(id):
UstawPerk(id, perk_gracza[id], wartosc_perku_gracza[id], 0);
usuwamy i dodajemy:
UstawPerk(id, perk_gracza[0][id], wartosc_perku_gracza[0][id], 0, 0);
UstawPerk(id, perk_gracza[1][id], wartosc_perku_gracza[1][id], 0, 1);
5. Szukamy w public SmiercGraczaPost(id, attacker, shouldgib):
if(!perk_gracza[attacker])
UstawPerk(attacker, -1, -1, 1);
zamieniamy na:
if(!perk_gracza[0][attacker])
UstawPerk(attacker, -1, -1, 1, 0);
else if(!perk_gracza[1][attacker])
UstawPerk(attacker, -1, -1, 1, 1);
6. Szuakmy w public UsunUmiejetnosci(id):
UstawPerk(id, 0, 0, 0);
usuwamy i dodajemy:
UstawPerk(id, 0, 0, 0, 0);
UstawPerk(id, 0, 0, 0, 1);
7. Szukamy public KomendaOpisPerku(id) usuwamy cały public i dodajemy zamiast tego:
public KomendaOpisPerku(id)
OpisPerku(id, perk_gracza[0][id], wartosc_perku_gracza[0][id]);
public KomendaOpisPerku2(id)
OpisPerku(id, perk_gracza[1][id], wartosc_perku_gracza[1][id]);
8. Szuakmy public UzyjPerku(id) usuwamy cały public i dodajemy zamiast tego:
public UzyjPerku(id)
return UzyjPerki(id, 0);
public UzyjPerku2(id)
return UzyjPerki(id, 1);
public UzyjPerki(id, lp)
{
if(!is_user_alive(id))
return PLUGIN_HANDLED;
new forward_handle = forward_handle = CreateOneForward(pluginy_perkow[perk_gracza[lp][id]], "cod_perk_used", FP_CELL);
ExecuteForward(forward_handle, id, id);
DestroyForward(forward_handle);
return PLUGIN_HANDLED;
}
9. Szukamy public WyrzucPerk(id) usuwamy cały public i dodajemy zamiast tego:
public WyrzucPerk(id)
DropPerka(id, 0)
public WyrzucPerk2(id)
DropPerka(id, 1)
public DropPerka(id, lp)
{
if(perk_gracza[lp][id])
{
client_print(id, print_chat, "[COD:MW] Wyrzuciles %s.", nazwy_perkow[perk_gracza[lp][id]]);
UstawPerk(id, 0, 0, 0, lp);
}
else
client_print(id, print_chat, "[COD:MW] Nie masz zadnego perku.");
}
10. Szukamy public PokazInformacje(id) usuwamy cały public i dodajemy zamiast tego:
public PokazInformacje(id)
{
id -= ZADANIE_POKAZ_INFORMACJE;
if(!is_user_connected(id))
{
remove_task(id+ZADANIE_POKAZ_INFORMACJE);
return PLUGIN_CONTINUE;
}
if(!is_user_alive(id))
{
new target = pev(id, pev_iuser2);
if(!target)
return PLUGIN_CONTINUE;
set_hudmessage(255, 255, 255, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2);
ShowSyncHudMsg(id, SyncHudObj, "Klasa : %s^nDoswiadczenie : %i / %i^nPoziom : %i^nPerk : %s^nPerk2 : %s", nazwy_klas[klasa_gracza[target]], doswiadczenie_gracza[target], PobierzDoswiadczeniePoziomu(poziom_gracza[target]), poziom_gracza[target], nazwy_perkow[perk_gracza[0][target]], nazwy_perkow[perk_gracza[1][target]]);//
return PLUGIN_CONTINUE;
}
set_hudmessage(0, 255, 0, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0);
ShowSyncHudMsg(id, SyncHudObj, "[Klasa : %s]^n[Doswiadczenie : %i / %i]^n[Poziom : %i]^n[Perk : %s]^n[Perk2 : %s]", nazwy_klas[klasa_gracza[id]], doswiadczenie_gracza[id], PobierzDoswiadczeniePoziomu(poziom_gracza[id]), poziom_gracza[id], nazwy_perkow[perk_gracza[0][id]], nazwy_perkow[perk_gracza[1][id]]);
return PLUGIN_CONTINUE;
}
11. Szukamy public UstawPerk(id, perk, wartosc, pokaz_info) usuwamy cały public i dodajemy zamiast tego:
public UstawPerk(id, perk, wartosc, pokaz_info, lp)
{
if(!ilosc_perkow)
return PLUGIN_CONTINUE;
static obroty[33];
if(obroty[id]++ >= 5)
{
obroty[id] = 0;
UstawPerk(id, 0, 0, 0, lp);
return PLUGIN_CONTINUE;
}
perk = (perk == -1)? random_num(1, ilosc_perkow): perk;
if(perk == perk_gracza[!lp][id] && perk)
{
UstawPerk(id, perk, wartosc, pokaz_info, lp);
return PLUGIN_CONTINUE;
}
wartosc = (wartosc == -1 || min_wartosci_perkow[perk] > wartosc || wartosc > max_wartosci_perkow[perk])? random_num(min_wartosci_perkow[perk], max_wartosci_perkow[perk]): wartosc;
new ret;
new forward_handle = CreateOneForward(pluginy_perkow[perk_gracza[lp][id]], "cod_perk_disabled", FP_CELL, FP_CELL);
ExecuteForward(forward_handle, ret, id, perk);
DestroyForward(forward_handle);
perk_gracza[lp][id] = 0;
forward_handle = CreateOneForward(pluginy_perkow[perk], "cod_perk_enabled", FP_CELL, FP_CELL, FP_CELL);
ExecuteForward(forward_handle, ret, id, wartosc, perk);
DestroyForward(forward_handle);
if(ret == 4)
{
UstawPerk(id, -1, -1, 1, lp);
return PLUGIN_CONTINUE;
}
ExecuteForward( perk_zmieniony, ret, id, perk, wartosc, lp);
if(ret == 4)
{
UstawPerk(id, -1, -1, 1, lp);
return PLUGIN_CONTINUE;
}
obroty[id] = 0;
if(pokaz_info && perk)
client_print(id, print_chat, "[COD:MW] Zdobyles %s.", nazwy_perkow[perk]);
perk_gracza[lp][id] = perk;
wartosc_perku_gracza[lp][id] = wartosc;
return PLUGIN_CONTINUE;
}
12. Szukamy public PobierzPerk(id, &wartosc) usuwamy cały public i dodajemy zamiast tego:
public PobierzPerk(plugin, params)
{
if(params != 3)
return 0;
new id = get_param(1), lp = get_param(3);
set_param_byref(2, wartosc_perku_gracza[lp][id]);
return perk_gracza[lp][id];
}
Kompilujemy i dodajemy na serwer