Oto kod który zrobiłem:
1. public UstawPerk
Spoiler
public UstawPerk(id, perk, wartosc, pokaz_info, lp)
{
if(!ilosc_perkow)
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
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;
}2. public PokazInformacje
Spoiler
public PokazInformacje(id)
{
id -= ZADANIE_POKAZ_INFORMACJE;
new bool:pytajvip = bool:(get_user_flags(id) & ADMIN_LEVEL_H);
if(!is_user_connected(id))
{
remove_task(id+ZADANIE_POKAZ_INFORMACJE);
return PLUGIN_CONTINUE;
}
if(!is_user_alive(id))
{
new Time[9];
new forum[32];
new target = pev(id, pev_iuser2);
new bool:pytajvipnoalive = bool:(get_user_flags(target) & ADMIN_LEVEL_H);
new hp2 = get_user_health(target);
get_user_name(target, name, 31);
get_time("%H:%M:%S",Time,8);
get_pcvar_string(cvar_forum, forum, 31);
if(!target)
return PLUGIN_CONTINUE;
new ileMa = doswiadczenie_gracza[target],ilePotrzeba = PobierzDoswiadczeniePoziomu(poziom_gracza[target]),ilePotrzebaBylo = poziom_gracza[target]-1 >= 0 ? PobierzDoswiadczeniePoziomu(poziom_gracza[target]-1) : 0;
new Float:fProcent = 0.0;
fProcent = (float((ileMa - ilePotrzebaBylo)) / float((ilePotrzeba - ilePotrzebaBylo))) * 100.0;
if(!HudGraczaO[id][Typ])
if(get_user_flags(target) & ADMIN_LEVEL_A)
{
set_hudmessage(HudGraczaO[id][R], HudGraczaO[id][G], HudGraczaO[id][B], float(HudGraczaO[id][X])/100,float(HudGraczaO[id][Y])/100, 0, 0.0, 0.3, 0.0, 0.0);
ShowSyncHudMsg(id, SyncHudObj, "Godzina : %s^nNick : %s^nKlasa : %s^nDoswiadczenie : %i / %i (%0.1f%%)^nPoziom : %i^nPerk : %s^nPerk2 : %s^nZdrowie : %d^nKillStreak : x%d^nDeathStreak : x%d^nMonety : %i^nForum : %s^nVIP: %s",
Time, name, nazwy_klas[klasa_gracza[target]], doswiadczenie_gracza[target], PobierzDoswiadczeniePoziomu(poziom_gracza[target]), fProcent, poziom_gracza[target], nazwy_perkow[perk_gracza[0][target]],
nazwy_perkow[perk_gracza[1][target]], hp2, licznik_zabiccod[target], licznik_smiercicod[target], player_coins[target], forum, pytajvipnoalive ? "TAK" : "NIE");
}
else
{
set_hudmessage(HudGraczaO[id][R], HudGraczaO[id][G], HudGraczaO[id][B], float(HudGraczaO[id][X])/100,float(HudGraczaO[id][Y])/100, 0, 0.0, 0.3, 0.0, 0.0);
ShowSyncHudMsg(id, SyncHudObj, "Godzina : %s^nNick : %s^nKlasa : %s^nPoziom : %i (%0.1f%%)^nPerk : %s^nPerk2 : %s^nZdrowie : %d^nMonety : %i^nVIP: %s",
Time, name, nazwy_klas[klasa_gracza[target]], poziom_gracza[target], fProcent, nazwy_perkow[perk_gracza[0][target]],nazwy_perkow[perk_gracza[1][target]], hp2, player_coins[target], pytajvipnoalive ? "TAK" : "NIE");
}
return PLUGIN_CONTINUE;
}
new Time[9];
new forum[32];
new hp = get_user_health(id);
get_time("%H:%M:%S",Time,8);
get_pcvar_string(cvar_forum, forum, 31);
new ileMa = doswiadczenie_gracza[id],ilePotrzeba = PobierzDoswiadczeniePoziomu(poziom_gracza[id]),ilePotrzebaBylo = poziom_gracza[id]-1 >= 0 ?PobierzDoswiadczeniePoziomu(poziom_gracza[id]-1) : 0
new Float:fProcent = 0.0;
fProcent = (float((ileMa - ilePotrzebaBylo)) / float((ilePotrzeba - ilePotrzebaBylo))) * 100.0;
if(!HudGracza[id][Typ])
{
set_hudmessage(HudGracza[id][R], HudGracza[id][G], HudGracza[id][B], float(HudGracza[id][X])/100,float(HudGracza[id][Y])/100, 0, 0.0, 0.3, 0.0, 0.0);
ShowSyncHudMsg(id, SyncHudObj, "[Godzina : %s]^n[Klasa : %s]^n[Doswiadczenie : %i / %i (%0.1f%%)]^n[Poziom : %i]^n[Perk : %s]^n[Perk2 : %s]^n[Zdrowie : %d]^n[KillStreak : x%d]^n[DeathStreak : x%d]^n[Monety : %i]^n[Forum : %s]^n[VIP: %s]",
Time, nazwy_klas[klasa_gracza[id]], doswiadczenie_gracza[id], PobierzDoswiadczeniePoziomu(poziom_gracza[id]), fProcent, poziom_gracza[id], nazwy_perkow[perk_gracza[0][id]], get_user_flags(id) > ADMIN_LEVEL_H ? nazwy_perkow[perk_gracza[1][id]] : "VIP Only", hp, licznik_zabiccod[id], licznik_smiercicod[id], player_coins[id], forum, pytajvip ? "TAK" : "NIE");
}
else
{
set_hudmessage(HudGracza[id][R], HudGracza[id][G], HudGracza[id][B], float(HudGracza[id][X])/100,float(HudGracza[id][Y])/100, 0, 0.0, 0.3, 0.0, 0.0);
ShowSyncHudMsg(id, SyncHudObj, "[Klasa : %s]^n[Poziom : %i (%0.1f%%)]^n[Perk : %s]^n[Perk2 : %s]^n[Zdrowie : %d]^n[Monety : %i]^n[VIP: %s]",
nazwy_klas[klasa_gracza[id]], poziom_gracza[id], fProcent, nazwy_perkow[perk_gracza[0][id]], get_user_flags(id) > ADMIN_LEVEL_H ? nazwy_perkow[perk_gracza[1][id]] : "VIP Only", hp, player_coins[id], pytajvip ? "TAK" : "NIE");
}
return PLUGIN_CONTINUE;
}I potrzebuje pomocy czy gdzieś o czymś zapomniałem lub coś źle zrobiłem ? Może ktoś mnie naprowadzi... Dodam że żadnych errorów nie mam lecz owy skrypt nie działa jak należy ponieważ Perki i tak dodaje każdemu, a piszę że Vip only.
Użytkownik Werex edytował ten post 09.01.2016 16:58


Dodatki SourceMod














