
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