public UstawPerk(id, perk, wartosc, pokaz_info)
{
if(!ilosc_perkow)
return PLUGIN_CONTINUE;
 
static obroty[33];
 
if(obroty[id]++ >= 5)
{
UstawPerk(id, 0, 0, 0);
obroty[id] = 0;
return PLUGIN_CONTINUE;
}
 
perk = (perk == -1)? random_num(1, ilosc_perkow): perk;
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[id]], "cod_perk_disabled", FP_CELL, FP_CELL);
ExecuteForward(forward_handle, ret, id, perk);
DestroyForward(forward_handle);
 
perk_gracza[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);
return PLUGIN_CONTINUE;
}
 
ExecuteForward(perk_zmieniony, ret, id, perk, wartosc);
 
if(ret == 4)
{
UstawPerk(id, -1, -1, 1);
return PLUGIN_CONTINUE;
}
 
perk_gracza[id] = perk; 
wartosc_perku_gracza[id] = wartosc;
 
obroty[id] = 0;
 
if(pokaz_info && perk_gracza[id]) 
		ColorChat(id, RED, "[COD:MW3]^x04 Zdobyles^x03 %s", nazwy_perkow[perk_gracza[id]]);
 
return PLUGIN_CONTINUE;
}
Jak można ten kod zoptymalizować?
Zależy mi na tym, bo serwer się crashuje, logi:


 
Dodatki SourceMod





				
				






