Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Chrupek2352 - zdjęcie

Chrupek2352

Rejestracja: 14.05.2016
Aktualnie: Nieaktywny
Poza forum Ostatnio: 08.06.2016 15:52
-----

Moje tematy

Proglem z nagrywaniem dema (serwer pada)

27.05.2016 11:20

Witam,

 

Mam dość nietypowy problem... otóż chodzi o to, że gdy jestem na swoim serwerze i próbuję nagrać demo komendą "record nazwa dema" to serwer automatycznie sie crashuje.. nie wiem czym jest to spowodowane, nie mam bladego pojęcia.

 

Logi:

 

L 05/27/2016 - 12:13:25: Function "pokaz_info" was not found
L 05/27/2016 - 12:13:25: [AMXX] Run time error 19 (plugin "cennik.amxx") - debug not enabled!
L 05/27/2016 - 12:13:25: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
L 05/27/2016 - 12:13:27: Start of error session.
L 05/27/2016 - 12:13:27: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20160527.log")
L 05/27/2016 - 12:13:27: Function "pokaz_info" was not found
L 05/27/2016 - 12:13:27: [AMXX] Run time error 19 (plugin "cennik.amxx") - debug not enabled!
L 05/27/2016 - 12:13:27: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
L 05/27/2016 - 12:13:47: Start of error session.
L 05/27/2016 - 12:13:47: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20160527.log")
L 05/27/2016 - 12:13:47: Function "pokaz_info" was not found
L 05/27/2016 - 12:13:47: [AMXX] Run time error 19 (plugin "cennik.amxx") - debug not enabled!
L 05/27/2016 - 12:13:47: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
L 05/27/2016 - 12:14:08: Start of error session.
L 05/27/2016 - 12:14:08: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20160527.log")
L 05/27/2016 - 12:14:08: Function "pokaz_info" was not found
L 05/27/2016 - 12:14:08: [AMXX] Run time error 19 (plugin "cennik.amxx") - debug not enabled!
L 05/27/2016 - 12:14:08: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
L 05/27/2016 - 12:14:28: Start of error session.
L 05/27/2016 - 12:14:28: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20160527.log")
L 05/27/2016 - 12:14:28: Function "pokaz_info" was not found
L 05/27/2016 - 12:14:28: [AMXX] Run time error 19 (plugin "cennik.amxx") - debug not enabled!
L 05/27/2016 - 12:14:28: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
L 05/27/2016 - 12:14:49: Start of error session.
L 05/27/2016 - 12:14:49: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20160527.log")
L 05/27/2016 - 12:14:49: Function "pokaz_info" was not found
L 05/27/2016 - 12:14:49: [AMXX] Run time error 19 (plugin "cennik.amxx") - debug not enabled!
L 05/27/2016 - 12:14:49: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
L 05/27/2016 - 12:15:09: Start of error session.
L 05/27/2016 - 12:15:09: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20160527.log")
L 05/27/2016 - 12:15:09: Function "pokaz_info" was not found
L 05/27/2016 - 12:15:09: [AMXX] Run time error 19 (plugin "cennik.amxx") - debug not enabled!
L 05/27/2016 - 12:15:09: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
L 05/27/2016 - 12:15:58: Start of error session.
L 05/27/2016 - 12:15:58: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20160527.log")
L 05/27/2016 - 12:15:58: Function "pokaz_info" was not found
L 05/27/2016 - 12:15:58: [AMXX] Run time error 19 (plugin "cennik.amxx") - debug not enabled!
L 05/27/2016 - 12:15:58: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
L 05/27/2016 - 12:16:19: Start of error session.
L 05/27/2016 - 12:16:19: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20160527.log")
L 05/27/2016 - 12:16:19: Function "pokaz_info" was not found
L 05/27/2016 - 12:16:19: [AMXX] Run time error 19 (plugin "cennik.amxx") - debug not enabled!
L 05/27/2016 - 12:16:19: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
L 05/27/2016 - 12:16:39: Start of error session.
L 05/27/2016 - 12:16:39: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20160527.log")
L 05/27/2016 - 12:16:39: Function "pokaz_info" was not found
L 05/27/2016 - 12:16:39: [AMXX] Run time error 19 (plugin "cennik.amxx") - debug not enabled!
L 05/27/2016 - 12:16:39: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).

Darmowy VIP od godziny nie działa z VIP'em z generatora.

20.05.2016 23:35

Witam,

 

Posiadam na swoim serwerze VIP'a z generatora VIP. Wgrałem plugin na darmowego vipa od danej godziny, lecz wyczytałem, że te pluginy nie będą działać z vipem z generatora i tak jest. Więc proszę Was o pomoc w przerobieniu tego, by to działało, lub by znaleźć inne rozwiązanie.

 

Zmieniałem public client_authorized(id) na putinserver ale to nic nie dało.

 

Plugin na darmowego VIP'a:

 

#include <amxmodx>

#define OD_GODZINY 23
#define DO_GODZINY 9
#define FLAGA_VIP ADMIN_LEVEL_H

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

new bool:g_bDarmowyVip;

public plugin_init()
{
    new szGodzina[4], iGodzina;
    
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    get_time("%H", szGodzina, 3);
    iGodzina = str_to_num(szGodzina);
    
    if(OD_GODZINY <= iGodzina || iGodzina <= DO_GODZINY)
        g_bDarmowyVip = true;
}

public client_authorized(id)
    if(g_bDarmowyVip)
        set_user_flags(id, get_user_flags(id) | ADMIN_LEVEL_H);

Problem z dodaniem nowych klas na serwer

17.05.2016 18:10

Witam,

 

Mam taki problem, aczkolwiek nie mogę dodać nowych klas na serwer... obecnie na serwerze jest 21 klas (3 strony, 2 strony zwyklych, 1 strona darmowych) i to wygląda tak, że gdy dodam nową klasę, ona w ogóle nie wyświetla się na serwerze.. moim zdaniem gdzieś w silniku coda jest dodany limit na ilość klas, lub ilość stron klas. Proszę, aby ktoś przejrzał kod silnika i jakby się dało to poprawił to bym mógł mieć więcej klas.

P.S. Zmiana definów nic nie dała.

 

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <nvault>
#include <engine>
#include <colorchat>

#define PLUGIN "Call of Duty: MW Mod"
#define VERSION "1.0-3"
#define AUTHOR "QTM_Peyote OstRY edit Bojan"

#define MAX_WIELKOSC_NAZWY 32
#define MAX_WIELKOSC_PREMIUM 34
#define MAX_WIELKOSC_OPISU 400
#define MAX_ILOSC_PERKOW 120
#define MAX_ILOSC_KLAS 1000

#define STANDARDOWA_SZYBKOSC 250.0

#define ZADANIE_POKAZ_INFORMACJE 672
#define ZADANIE_POKAZ_REKLAME 768
#define ZADANIE_USTAW_SZYBKOSC 832
#define VAULT_EXPIREDAYS 30


native cod_get_user_coins(id);
native cod_get_bank_orders(id);
native cod_set_user_coins(id, ilosc);
native get_klangracza(id, Return[], len)
    
new const maxAmmo[31] = {0, 52, 0, 90, 1, 31, 1, 100, 90, 1, 120, 100, 100, 90, 90, 90, 100, 120, 30, 120, 200, 31, 90, 120,
90, 2, 35, 90, 90,0, 100};
new const co_ile[] = { 1, 5, 10, 20, 50 }
new szybkosc_rozdania[33];

new MsgScreenfade;

new vault;

new SyncHudObj;

new cvar_doswiadczenie_za_zabojstwo,
cvar_doswiadczenie_za_obrazenia,
cvar_doswiadczenie_za_wygrana,
cvar_typ_zapisu,
cvar_limit_poziomu,
cvar_proporcja_poziomu,
cvar_blokada_broni;


new perk_zmieniony,
klasa_zmieniona;


new nazwy_perkow[MAX_ILOSC_PERKOW+1][MAX_WIELKOSC_NAZWY+1],
opisy_perkow[MAX_ILOSC_PERKOW+1][MAX_WIELKOSC_OPISU+1],
max_wartosci_perkow[MAX_ILOSC_PERKOW+1],
min_wartosci_perkow[MAX_ILOSC_PERKOW+1],
pluginy_perkow[MAX_ILOSC_PERKOW+1],
ilosc_perkow;


new nazwa_gracza[33][64],
klasa_gracza[33],
nowa_klasa_gracza[33],
poziom_gracza[33],
doswiadczenie_gracza[33],
perk_gracza[33],
wartosc_perku_gracza[33];

new Float:maksymalne_zdrowie_gracza[33],
Float:szybkosc_gracza[33],
Float:redukcja_obrazen_gracza[33];

new punkty_gracza[33],
zdrowie_gracza[33],
inteligencja_gracza[33],
wytrzymalosc_gracza[33],
kondycja_gracza[33];

new bool:gracz_ma_tarcze[33],
bool:gracz_ma_noktowizor[33];     

new bonusowe_bronie_gracza[33],
bonusowe_zdrowie_gracza[33],
bonusowa_inteligencja_gracza[33],
bonusowa_wytrzymalosc_gracza[33],
bonusowa_kondycja_gracza[33];

new bronie_klasy[MAX_ILOSC_KLAS+1],
zdrowie_klas[MAX_ILOSC_KLAS+1],
kondycja_klas[MAX_ILOSC_KLAS+1],
inteligencja_klas[MAX_ILOSC_KLAS+1],
wytrzymalosc_klas[MAX_ILOSC_KLAS+1],
nazwy_klas[MAX_ILOSC_KLAS+1][MAX_WIELKOSC_NAZWY+1],
opisy_klas[MAX_ILOSC_KLAS+1][MAX_WIELKOSC_OPISU+1],
premium_klas[MAX_ILOSC_KLAS+1][MAX_WIELKOSC_PREMIUM+1],
pluginy_klas[MAX_ILOSC_KLAS+1],
ilosc_klas;


new Players[33][32]; // LISTA Z GRACZAMI

new bronie_druzyny[] = {0, 1<<CSW_KNIFE, 1<<CSW_KNIFE},
bronie_dozwolone = 1<<CSW_KNIFE | 1<<CSW_C4;


new bool:freezetime = true;
new weaponname[22];

new const Enty[][] = {
    "rocket",
    "medkit",
    "mine"
}

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    
    cvar_doswiadczenie_za_zabojstwo = register_cvar("cod_killxp", "10");
    cvar_doswiadczenie_za_obrazenia = register_cvar("cod_damagexp", "1"); // ilosc doswiadczenia za 20 obrazen
    cvar_doswiadczenie_za_wygrana = register_cvar("cod_winxp", "50");
    cvar_typ_zapisu = register_cvar("cod_savetype", "2");  // 1-Nick; 2-SID dla Steam; 3-IP
    cvar_limit_poziomu = register_cvar("cod_maxlevel", "200");
    cvar_proporcja_poziomu = register_cvar("cod_levelratio", "35");
    cvar_blokada_broni = register_cvar("cod_weaponsblocking", "1");
    
    register_clcmd("say /klasa", "WybierzKlase");
    register_clcmd("say /class", "WybierzKlase");
    register_clcmd("say /klasy", "OpisKlasy");
    register_clcmd("say /classinfo", "OpisKlasy");
    register_clcmd("say /perk", "KomendaOpisPerku");
    register_clcmd("say /perki", "OpisPerkow");
    register_clcmd("say /perks", "OpisPerkow");
    register_clcmd("say /przedmiot", "OpisPerku");
    register_clcmd("say /drop", "WyrzucPerk");
    register_clcmd("say /wyrzuc", "WyrzucPerk");
    register_clcmd("say /ip", "ip_serwera");
    register_clcmd("say /serwer", "ip_serwera");
    register_clcmd("say /kontakt", "kontakt");
    register_clcmd("say /gracze", "Gracze");
    register_clcmd("say /server", "ip_serwera");
    register_clcmd("say /reset", "KomendaResetujPunkty");
    register_clcmd("say /statystyki", "PrzydzielPunkty");
    register_clcmd("say /menu", "Menu");
    register_clcmd("say /staty", "PrzydzielPunkty");
    register_clcmd("useperk", "UzyjPerku");
    register_clcmd("radio3", "UzyjPerku");
    register_clcmd("fullupdate", "BlokujKomende");
    
    register_menucmd(register_menuid("Klasa:"), 1023, "OpisKlasy");
    
    RegisterHam(Ham_TakeDamage, "player", "Obrazenia");
    RegisterHam(Ham_TakeDamage, "player", "ObrazeniaPost", 1);
    RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
    RegisterHam(Ham_Killed, "player", "SmiercGraczaPost", 1);
    
    RegisterHam(Ham_Touch, "armoury_entity", "DotykBroni");
    RegisterHam(Ham_Touch, "weapon_shield", "DotykTarczy");
    RegisterHam(Ham_Touch, "weaponbox", "DotykBroni");
    
    register_forward(FM_CmdStart, "CmdStart");
    register_forward(FM_EmitSound, "EmitSound");
    
    register_logevent("PoczatekRundy", 2, "1=Round_Start");
    
    register_event("SendAudio", "WygranaTerro" , "a", "2&%!MRAD_terwin");
    register_event("SendAudio", "WygranaCT", "a", "2&%!MRAD_ctwin");
    register_event("CurWeapon","CurWeapon","be", "1=1");
    register_event("HLTV", "NowaRunda", "a", "1=0", "2=0");
    
    vault = nvault_open("CodMod");
    
    MsgScreenfade = get_user_msgid("ScreenFade");
    
    SyncHudObj = CreateHudSyncObj();
    
    perk_zmieniony = CreateMultiForward("cod_perk_changed", ET_CONTINUE, FP_CELL, FP_CELL, FP_CELL);
    klasa_zmieniona = CreateMultiForward("cod_class_changed", ET_CONTINUE, FP_CELL, FP_CELL);
    
    copy(nazwy_perkow[0], MAX_WIELKOSC_NAZWY, "Brak");
    copy(opisy_perkow[0], MAX_WIELKOSC_OPISU, "Zabij kogos, aby otrzymac przedmiot");
    copy(nazwy_klas[0], MAX_WIELKOSC_NAZWY, "Brak");
    
    set_task(1.0, "plugin_cfg");
}        

public plugin_cfg()
{
    new lokalizacja_cfg[33];
    get_configsdir(lokalizacja_cfg, charsmax(lokalizacja_cfg));
    server_cmd("exec %s/codmod.cfg", lokalizacja_cfg);
    server_exec();
    if(vault != INVALID_HANDLE)
        nvault_prune(vault, 0, get_systime()-(86400*VAULT_EXPIREDAYS));
}


public plugin_precache()
{    
    precache_sound("QTM_CodMod/select.wav");
    precache_sound("QTM_CodMod/levelup.wav");
}

public plugin_natives()
{
    register_native("cod_set_user_xp", "UstawDoswiadczenie", 1);
    register_native("cod_set_user_class", "UstawKlase", 1);
    register_native("cod_set_user_perk", "UstawPerk", 1);
    register_native("cod_set_user_bonus_health", "UstawBonusoweZdrowie", 1);
    register_native("cod_set_user_bonus_intelligence", "UstawBonusowaInteligencje", 1);
    register_native("cod_set_user_bonus_trim", "UstawBonusowaKondycje", 1);
    register_native("cod_set_user_bonus_stamina", "UstawBonusowaWytrzymalosc", 1);
    
    register_native("cod_points_to_health", "PrzydzielZdrowie", 1);    
    register_native("cod_points_to_intelligence", "PrzydzielInteligencje", 1);    
    register_native("cod_points_to_trim", "PrzydzielKondycje", 1);    
    register_native("cod_points_to_stamina", "PrzydzielWytrzymalosc", 1);    
    
    register_native("cod_get_user_xp", "PobierzDoswiadczenie", 1);
    register_native("cod_get_user_level", "PobierzPoziom", 1);
    register_native("cod_get_user_points", "PobierzPunkty", 1);
    register_native("cod_get_user_class", "PobierzKlase", 1);
    register_native("cod_get_user_perk", "PobierzPerk", 1);
    register_native("cod_get_user_health", "PobierzZdrowie", 1);
    register_native("cod_get_user_intelligence", "PobierzInteligencje", 1);
    register_native("cod_get_user_trim", "PobierzKondycje", 1);
    register_native("cod_get_user_stamina", "PobierzWytrzymalosc", 1);
    
    register_native("cod_get_level_xp", "PobierzDoswiadczeniePoziomu", 1);
    
    register_native("cod_get_perkid", "PobierzPerkPrzezNazwe", 1);
    register_native("cod_get_perks_num", "PobierzIloscPerkow", 1);
    register_native("cod_get_perk_name", "PobierzNazwePerku", 1);
    register_native("cod_get_perk_desc", "PobierzOpisPerku", 1);
    
    register_native("cod_get_classid", "PobierzKlasePrzezNazwe", 1);
    register_native("cod_get_classes_num", "PobierzIloscKlas", 1);
    register_native("cod_get_class_name", "PobierzNazweKlasy", 1);
    register_native("cod_get_class_desc", "PobierzOpisKlasy", 1);
    
    register_native("cod_get_class_health", "PobierzZdrowieKlasy", 1);
    register_native("cod_get_class_intelligence", "PobierzInteligencjeKlasy", 1);
    register_native("cod_get_class_trim", "PobierzKondycjeKlasy", 1);
    register_native("cod_get_class_stamina", "PobierzWytrzymaloscKlasy", 1);
    
    register_native("cod_give_weapon", "DajBron", 1);
    register_native("cod_take_weapon", "WezBron", 1);
    register_native("cod_set_user_shield", "UstawTarcze", 1);
    register_native("cod_set_user_nightvision", "UstawNoktowizor", 1);
    
    register_native("cod_inflict_damage", "ZadajObrazenia", 1);
    
    register_native("cod_register_perk", "ZarejestrujPerk");
    register_native("cod_register_class", "ZarejestrujKlase");
}
public ip_serwera(id)
{
    ColorChat(id, RED, "[Call OF Duty]^x01 IP:^x04 91.224.117.70:27085^x01 Zapisz do ulubionych !");
}
public kontakt(id)
{
    show_menu(id, 2023, "\yKontakt z administratorem:^n\yNick: \wChrupek^n\yNr GG: 50654146^n\ySteam:\w Chrupek # CsUltimatum.pl^n^n\yForum:\w CsUltimatum.pl", -1, "Kontakt");
}
public CmdStart(id, uc_handle)
{        
    if(!is_user_alive(id))
        return FMRES_IGNORED;
    
    new Float: velocity[3];
    pev(id, pev_velocity, velocity);
    new Float: speed = vector_length(velocity);
    if(szybkosc_gracza[id] > speed*1.8)
        set_pev(id, pev_flTimeStepSound, 300);
    
    return FMRES_IGNORED;
}

public Odrodzenie(id)
{
    
    if(!task_exists(id+ZADANIE_POKAZ_INFORMACJE))
        set_task(0.1, "PokazInformacje", id+ZADANIE_POKAZ_INFORMACJE, _, _, "b");
    
    if(nowa_klasa_gracza[id])
        UstawNowaKlase(id);
    
    if(!klasa_gracza[id])
    {
        Start_menu(id);
        return HAM_IGNORED;
    }
    new kasa = cs_get_user_money(id);
    
    if(kasa >= 16000)
    {
        new exp = cod_get_user_coins(id);
        new losowy = random_num(5, 5);
        cs_set_user_money(id, kasa-16000);
        cod_set_user_coins(id, exp+losowy)
        ColorChat(id, GREEN, "[Call OF Duty]^x01 Zamienilem^x04 16000 $^x01 na^x4 5^x01 monet. ");
    }
    DajBronie(id);
    ZastosujAtrybuty(id);
    
    if(punkty_gracza[id] > 0)
        PrzydzielPunkty(id);
    
    return HAM_IGNORED;
}

public UstawNowaKlase(id)
{
    new ret;
    
    new forward_handle = CreateOneForward(pluginy_klas[klasa_gracza[id]], "cod_class_disabled", FP_CELL, FP_CELL);
    ExecuteForward(forward_handle, ret, id, klasa_gracza[id]);
    DestroyForward(forward_handle);
    
    forward_handle = CreateOneForward(pluginy_klas[nowa_klasa_gracza[id]], "cod_class_enabled", FP_CELL, FP_CELL);
    ExecuteForward(forward_handle, ret, id, nowa_klasa_gracza[id]);
    DestroyForward(forward_handle);
    
    
    if(ret == 4)    
    {
        klasa_gracza[id] = 0;
        return PLUGIN_CONTINUE;
    }
    
    ExecuteForward(klasa_zmieniona, ret, id, klasa_gracza[id]);
    
    if(ret == 4)    
    {
        klasa_gracza[id] = 0;
        return PLUGIN_CONTINUE;
    }
    
    klasa_gracza[id] = nowa_klasa_gracza[id];
    nowa_klasa_gracza[id] = 0;
    UstawPerk(id, perk_gracza[id], wartosc_perku_gracza[id], 0);
    
    WczytajDane(id, klasa_gracza[id]);
    return PLUGIN_CONTINUE;
}

public DajBronie(id)
{
    for(new i=1; i < 32; i++)
    {
        if((1<<i) & (bronie_klasy[klasa_gracza[id]] | bonusowe_bronie_gracza[id]))
        {
            new weaponname[22];
            get_weaponname(i, weaponname, 21);
            fm_give_item(id, weaponname);
        }
    }
    
    if(gracz_ma_tarcze[id])
        fm_give_item(id, "weapon_shield");
    
    if(gracz_ma_noktowizor[id])
        cs_set_user_nvg(id, 1);
    
    new weapons[32];
    new weaponsnum;
    get_user_weapons(id, weapons, weaponsnum);
    for(new i=0; i<weaponsnum; i++)
        if(is_user_alive(id))
        if(maxAmmo[weapons[i]] > 0)
        cs_set_user_bpammo(id, weapons[i], maxAmmo[weapons[i]]);
}

public ZastosujAtrybuty(id)
{
    redukcja_obrazen_gracza[id] = 0.7*(1.0-floatpower(1.1, -0.112311341*PobierzWytrzymalosc(id, 1, 1, 1)*0.5));
    
    maksymalne_zdrowie_gracza[id] = 100.0+PobierzZdrowie(id, 1, 1, 1);
    
    szybkosc_gracza[id] = STANDARDOWA_SZYBKOSC+PobierzKondycje(id, 1, 1, 1)*1;
    
    set_pev(id, pev_health, maksymalne_zdrowie_gracza[id]);
}

public PoczatekRundy()    
{
    freezetime = false;
    for(new id=0;id<=32;id++)
    {
        if(!is_user_alive(id))
            continue;
        
        set_task(0.1, "UstawSzybkosc", id+ZADANIE_USTAW_SZYBKOSC);
    }
}

public NowaRunda()
    freezetime = true;

public Obrazenia(this, idinflictor, idattacker, Float:damage, damagebits)
{
    if(!is_user_alive(idattacker))
        return HAM_IGNORED;
    
    if(get_user_team(this) == get_user_team(idattacker))
        return HAM_IGNORED;
    
    if(get_user_health(this) <= 1)
        return HAM_IGNORED;
    
    SetHamParamFloat(4, damage*(1.0-redukcja_obrazen_gracza[this]));
    
    return HAM_IGNORED;
}

public ObrazeniaPost(id, idinflictor, attacker, Float:damage, damagebits)
{
    if(!is_user_connected(attacker) || !klasa_gracza[attacker])
        return HAM_IGNORED;
    
    if(get_user_team(id) != get_user_team(attacker))
    {
        new doswiadczenie_za_obrazenia = get_pcvar_num(cvar_doswiadczenie_za_obrazenia);
        while(damage>20)
        {
            damage -= 20;
            doswiadczenie_gracza[attacker] += doswiadczenie_za_obrazenia;
        }
    }
    SprawdzPoziom(attacker);
    return HAM_IGNORED;
}

public SmiercGraczaPost(id, attacker, shouldgib)
{    
    if(!is_user_connected(attacker))
        return HAM_IGNORED;
    
    if(get_user_team(id) != get_user_team(attacker) && klasa_gracza[attacker])
    {
        new nowe_doswiadczenie = get_pcvar_num(cvar_doswiadczenie_za_zabojstwo);
        doswiadczenie_gracza[attacker] += poziom_gracza[id]+nowe_doswiadczenie;
        
        if(!perk_gracza[attacker])
            UstawPerk(attacker, -1, -1, 1);
        doswiadczenie_gracza[attacker] += nowe_doswiadczenie;
    }
    
    SprawdzPoziom(attacker);
    
    return HAM_IGNORED;
}



public client_authorized(id)
{
    UsunUmiejetnosci(id);
    
    get_user_name(id, nazwa_gracza[id], 63);
    
    UsunZadania(id);
    
}

public client_disconnect(id)
{
    ZapiszDane(id);
    UsunUmiejetnosci(id);
    UsunZadania(id);
    UsunEnty(id);
}
stock UsunEnty(id = 0)
{
    new iEnt, idEnt, iSizeEnt = sizeof(Enty);
    for(iEnt=0; iEnt<iSizeEnt; ++iEnt)
    {
        idEnt = -1;
        while((idEnt = find_ent_by_class(idEnt, Enty[iEnt])))
        {
            if(id && entity_get_edict(idEnt, EV_ENT_owner) != id)
                continue;
            
            remove_entity(idEnt);
        }
    }
}

public UsunUmiejetnosci(id)
{
    nowa_klasa_gracza[id] = 0;
    UstawNowaKlase(id);
    klasa_gracza[id] = 0;
    poziom_gracza[id] = 0;
    doswiadczenie_gracza[id] = 0;
    punkty_gracza[id] = 0;
    zdrowie_gracza[id] = 0;
    inteligencja_gracza[id] = 0;
    wytrzymalosc_gracza[id] = 0;
    kondycja_gracza[id] = 0;
    bonusowe_zdrowie_gracza[id] = 0;
    bonusowa_wytrzymalosc_gracza[id] = 0;
    bonusowa_inteligencja_gracza[id] = 0;
    bonusowa_kondycja_gracza[id] = 0;
    maksymalne_zdrowie_gracza[id] = 0.0;
    szybkosc_gracza[id] = 0.0;
    UstawPerk(id, 0, 0, 0);
}

public UsunZadania(id)
{
    remove_task(id+ZADANIE_POKAZ_INFORMACJE);
    remove_task(id+ZADANIE_POKAZ_REKLAME);    
    remove_task(id+ZADANIE_USTAW_SZYBKOSC);
}

public WygranaTerro()
    WygranaRunda("TERRORIST");

public WygranaCT()
    WygranaRunda("CT");

public WygranaRunda(const Team[])
{
    new Players[32], playerCount, id;
    get_players(Players, playerCount, "aeh", Team);
    new doswiadczenie_za_wygrana = get_pcvar_num(cvar_doswiadczenie_za_wygrana);
    
    if(get_playersnum() < 3)
        return;
    
    for (new i=0; i<playerCount; i++)
    {
        id = Players[i];
        if(!klasa_gracza[id])
            continue;
        
        doswiadczenie_gracza[id] += doswiadczenie_za_wygrana;
        ColorChat(id, GREY, "^x04[Call OF Duty]^x01 Wygrana druzyna otrzymuje nagrode w postaci^x04 %i^x01 doswiadczenia !", doswiadczenie_za_wygrana);
        SprawdzPoziom(id);
    }
}

public KomendaOpisPerku(id)
    OpisPerku(id, perk_gracza[id], wartosc_perku_gracza[id]);

public OpisPerku(id, perk, wartosc)
{
    new opis_perku[MAX_WIELKOSC_OPISU];
    new losowa_wartosc[15];
    if(wartosc > -1)
        num_to_str(wartosc, losowa_wartosc, 14);
    else
        format(losowa_wartosc, charsmax(losowa_wartosc), "%i-%i", min_wartosci_perkow[perk], max_wartosci_perkow[perk]);
    
    format(opis_perku, charsmax(opis_perku), opisy_perkow[perk]);
    replace_all(opis_perku, charsmax(opis_perku), "LW", losowa_wartosc);
    
    ColorChat(id, GREY, "^x04[Call OF Duty]^x01 Perk:^x04 %s.", nazwy_perkow[perk]);
    ColorChat(id, GREY, "^x04[Call OF Duty]^x01 Opis:^x04 %s.", opis_perku);
}

public OpisPerkow(id)
{
    new menu = menu_create("Wybierz Perk:", "OpisPerkow_Handle");
    for(new i=1; i <= ilosc_perkow; i++)
        menu_additem(menu, nazwy_perkow[i]);
    menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
    menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
    menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
    menu_display(id, menu);
    client_cmd(id, "spk QTM_CodMod/select");
}

public OpisPerkow_Handle(id, menu, item)
{
    if(item++ == MENU_EXIT)
    {
        menu_destroy(menu);
        return PLUGIN_CONTINUE;
    }
    OpisPerku(id, item, -1);
    OpisPerkow(id);
    return PLUGIN_CONTINUE;
}

    
    public OpisKlasy(id)
    {
        new menu2 = menu_create("Wybierz klase:", "OpisKlasy_Handle");
        
        new klasa[50],szTmp[5];
        for(new i=1; i <= ilosc_klas; i++)
        {
                format(klasa, charsmax(klasa), "%s %s", nazwy_klas[i], premium_klas[i]);
                num_to_str(i,szTmp,charsmax(szTmp));
                menu_additem(menu2, klasa,szTmp);
        }
        
        menu_setprop(menu2, MPROP_EXITNAME, "Wyjdz");
        menu_setprop(menu2, MPROP_BACKNAME, "Poprzednia strona");
        menu_setprop(menu2, MPROP_NEXTNAME, "Nastepna strona");
        menu_display(id, menu2);
        
        client_cmd(id, "spk QTM_CodMod/select");
        
        return PLUGIN_CONTINUE;
    }

public OpisKlasy_Handle(id, menu, item)
{
    client_cmd(id, "spk QTM_CodMod/select");
    
    if(item++ == MENU_EXIT)
    {
        menu_destroy(menu);
        return PLUGIN_CONTINUE;
    }
    
    new bronie[320];
    for(new i=1, n=1; i <= 32; i++)
    {
        if((1<<i) & bronie_klasy[item])
        {
            new weaponname[22];
            get_weaponname(i, weaponname, 21);
            replace_all(weaponname, 21, "weapon_", " ");
            if(n > 1)    
                add(bronie, charsmax(bronie), ",");
            add(bronie, charsmax(bronie), weaponname);
            n++;
        }
    }
    
    new opis[416+MAX_WIELKOSC_OPISU];
    format(opis, charsmax(opis), "\y[Call OF Duty]^n -------> [\r%s\y]^n^nStatystyki:^n\yINT:  \r| \yZDR:  \r| \yWYT:  \r| \yKON:^n     \w%i       \w%i       \w%i       \w%i^n^n\yBronie: \w%s^n\yOpis: \w%s %s",
    nazwy_klas[item], inteligencja_klas[item], zdrowie_klas[item], wytrzymalosc_klas[item], kondycja_klas[item], bronie, opisy_klas[item], opisy_klas[item][79]);
    show_menu(id, 1023, opis);
    
        menu = menu_create(opis, "OpisF1")
        menu_additem(menu, "\yWroc do wyboru klasy", "1", 0);
        menu_setprop(menu, MPROP_EXITNAME, "\wWyjdz");
        menu_display(id, menu);
        return PLUGIN_CONTINUE;
    }
    public OpisF1(id, menu, item)
    {
        if(item == MENU_EXIT)
        {
            menu_destroy(menu);
            return PLUGIN_CONTINUE;
        }
        switch(item)
        {
            case 0:
            {
                OpisKlasy(id)
            }
        }
        return PLUGIN_CONTINUE;
    }

public WybierzKlase(id)
{
    new menu = menu_create("Wybierz klase:", "WybierzKlase_Handle");
    new class[80];
    for(new i=1; i <= ilosc_klas; i++)
    {
        WczytajDane(id, i);
        format(class, charsmax(class), "%s %s \yPoziom: \r%i", nazwy_klas[i], premium_klas[i], poziom_gracza[id]);
        menu_additem(menu, class);
        
    }
    
    WczytajDane(id, klasa_gracza[id]);
    
    menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
    menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
    menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
    menu_display(id, menu);
    
    client_cmd(id, "spk QTM_CodMod/select");
}

public WybierzKlase_Handle(id, menu, item)
{
    client_cmd(id, "spk QTM_CodMod/select");
    
    if(item++ == MENU_EXIT)
    {
        menu_destroy(menu);
        return PLUGIN_CONTINUE;
    }    
    
    if(item == klasa_gracza[id] && !nowa_klasa_gracza[id])
        return PLUGIN_CONTINUE;
    
    nowa_klasa_gracza[id] = item;
    
    if(klasa_gracza[id])
        ColorChat(id, GREY, "^x04[Call OF Duty]^x01 Twoja klasa zostania zmieniona w nastepnej rundzie...");
    else
    {
        UstawNowaKlase(id);
        DajBronie(id);
        ZastosujAtrybuty(id);
    }
    
    return PLUGIN_CONTINUE;
}




public PrzydzielPunkty(id)
{
    new szybkosc[60];
    new inteligencja[65];
    new zdrowie[60];
    new wytrzymalosc[60];
    new kondycja[60];
    new tytul[25];
    
    format(szybkosc, charsmax(szybkosc), "Ile dodawac: \r%d \y(Ile pkt dodac do statow)", co_ile[szybkosc_rozdania[id]]);
    format(inteligencja, charsmax(inteligencja), "Inteligencja: \y%i\w/\y100 \r(Zwieksza sile perkow i umiejetnosci klasy)", inteligencja_gracza[id]);
    format(zdrowie, charsmax(zdrowie), "Zdrowie: \y%i\w/\y100 \r(Zwieksza zdrowie)", zdrowie_gracza[id]);
    format(wytrzymalosc, charsmax(wytrzymalosc), "Wytrzymalosc: \y%i\w/\y100 \r(Zmniejsza obrazenia)", wytrzymalosc_gracza[id]);
    format(kondycja, charsmax(kondycja), "Kondycja: \y%i\w/\y100 \r(Zwieksza tempo chodu)", kondycja_gracza[id]);
    format(tytul, charsmax(tytul), "Przydziel Punkty(%i):", punkty_gracza[id]);
    new menu = menu_create(tytul, "PrzydzielPunkty_Handler");
    menu_additem(menu, szybkosc);
    menu_addblank(menu, 0);
    menu_additem(menu, inteligencja);
    menu_additem(menu, zdrowie);
    menu_additem(menu, wytrzymalosc);
    menu_additem(menu, kondycja);
    menu_setprop(menu, MPROP_EXIT, 0);
    menu_display(id, menu);
}

public PrzydzielPunkty_Handler(id, menu, item) {
    client_cmd(id, "spk QTM_CodMod/select");
    
    if(item == MENU_EXIT) {
        menu_destroy(menu);
        return PLUGIN_CONTINUE;
    }
    
    if(punkty_gracza[id] < 1)
        return PLUGIN_CONTINUE;
    
    
    new ilosc = (co_ile[szybkosc_rozdania[id]] > punkty_gracza[id]) ? punkty_gracza[id] : co_ile[szybkosc_rozdania[id]]
    new limit_int, limit_zdr, limit_wyt, limit_kon;
    limit_int = 100;
    limit_zdr = 100;
    limit_wyt = 100;
    limit_kon = 100;
    switch(item) {
        case 0: {
            if(szybkosc_rozdania[id] < charsmax(co_ile)) szybkosc_rozdania[id]++;
            else szybkosc_rozdania[id] = 0;
        }
        case 1: {
            if(inteligencja_gracza[id]+ilosc <= limit_int) {
                inteligencja_gracza[id]+=ilosc;
                punkty_gracza[id]-=ilosc;
            } else ColorChat(id, GREY, "^x04[Call OF Duty]^x01 Maxymalny poziom inteligencji osiagniety");
        }
        case 2: {
            if(zdrowie_gracza[id]+ilosc <= limit_zdr) {
                zdrowie_gracza[id]+=ilosc;
                punkty_gracza[id]-=ilosc;
            } else ColorChat(id, GREY, "^x04[Call OF Duty]^x01 Maxymalny poziom sily osiagniety");
        }
        case 3: {
            if(wytrzymalosc_gracza[id]+ilosc <= limit_wyt) {
                wytrzymalosc_gracza[id]+=ilosc;
                punkty_gracza[id]-=ilosc;
            } else ColorChat(id, GREY, "^x04[Call OF Duty]^x01 Maxymalny poziom zrecznosci osiagniety");
        }
        case 4: {
            if(kondycja_gracza[id]+ilosc <= limit_kon) {
                kondycja_gracza[id]+=ilosc;
                punkty_gracza[id]-=ilosc;
            } else ColorChat(id, GREY, "^x04[Call OF Duty]^x01 Maxymalny poziom kondycji osiagniety");
        }
    }
    
    if(punkty_gracza[id] > 0)
        PrzydzielPunkty(id);
    
    return PLUGIN_CONTINUE;
}
public KomendaResetujPunkty(id)
{    
    
    ResetujPunkty(id);
}

public ResetujPunkty(id)
{
    punkty_gracza[id] = (poziom_gracza[id]-1)*1;
    inteligencja_gracza[id] = 0;
    zdrowie_gracza[id] = 0;
    kondycja_gracza[id] = 0;
    wytrzymalosc_gracza[id] = 0;
    
    if(punkty_gracza[id])
        PrzydzielPunkty(id);
}

public CurWeapon(id)
    
{

if(!is_user_connected(id))
    
    return;
    
    
    
    new team = get_user_team(id);
    
    
    
    if(team > 2)
        
    return;
    
    
    
    new bron = read_data(2);
    
    
    
    new bronie = (bronie_klasy[klasa_gracza[id]] | bonusowe_bronie_gracza[id] | bronie_druzyny[team] | bronie_dozwolone);
    
    
    
    if(!(1<<bron & bronie))
        
{
    
    new param[2];
    
    param[0] = id;
    
    param[1] = bron;
    
    set_task(0.1, "Strip", _, param, 2);
    
}



if(cs_get_user_shield(id) && !gracz_ma_tarcze[id])
    
    engclient_cmd(id, "drop", "weapon_shield");    
    
    
    
    UstawSzybkosc(id);
    
}

public Strip(param[2])
    
{

if(is_user_alive(param[0]) && ( 1 <= param[1] <= 30) )
    
{
    
    get_weaponname(param[1], weaponname, 21);
    
    ham_strip_weapon(param[0], weaponname);
    
}

}
public EmitSound(id, iChannel, szSound[], Float:fVol, Float:fAttn, iFlags, iPitch )
{
if(!is_user_alive(id))
    return FMRES_IGNORED;
    
    if(equal(szSound, "common/wpn_denyselect.wav"))
    {
        new forward_handle = CreateOneForward(pluginy_klas[klasa_gracza[id]], "cod_class_skill_used", FP_CELL);
        ExecuteForward(forward_handle, id, id);
        DestroyForward(forward_handle);
        return FMRES_SUPERCEDE;
    }
    
    if(equal(szSound, "items/ammopickup2.wav"))
    {
        cs_set_user_armor(id, 0, CS_ARMOR_NONE);
        return FMRES_SUPERCEDE;
    }
    
    if(equal(szSound, "items/equip_nvg.wav") && !gracz_ma_noktowizor[id])
    {
        cs_set_user_nvg(id, 0);
        return FMRES_SUPERCEDE;
    }
    
    return FMRES_IGNORED;
}

public UzyjPerku(id)
{
    if(!is_user_alive(id))
        return PLUGIN_HANDLED;
    
    new forward_handle = CreateOneForward(pluginy_perkow[perk_gracza[id]], "cod_perk_used", FP_CELL);
    ExecuteForward(forward_handle, id, id);
    DestroyForward(forward_handle);
    return PLUGIN_HANDLED;
}

public ZapiszDane(id)
{
    if(!klasa_gracza[id] || doswiadczenie_gracza[id] < 1 || vault == INVALID_HANDLE)
        return PLUGIN_CONTINUE;
    
    new vaultkey[128],vaultdata[256], identyfikator[64];
    format(vaultdata, charsmax(vaultdata),"%i %i %i %i %i %i", doswiadczenie_gracza[id], poziom_gracza[id], inteligencja_gracza[id], zdrowie_gracza[id], wytrzymalosc_gracza[id], kondycja_gracza[id]);
    
    new typ_zapisu = get_pcvar_num(cvar_typ_zapisu);
    
    switch(typ_zapisu)
    {
        case 1: copy(identyfikator, charsmax(identyfikator), nazwa_gracza[id]);
            case 2: get_user_authid(id, identyfikator, charsmax(identyfikator));
            case 3: get_user_ip(id, identyfikator, charsmax(identyfikator));
        }
    
    format(vaultkey, charsmax(vaultkey),"%s-%s-%i-cod", identyfikator, nazwy_klas[klasa_gracza[id]], typ_zapisu);
    nvault_set(vault,vaultkey,vaultdata);
    
    return PLUGIN_CONTINUE;
}

public WczytajDane(id, klasa)
{
    if(vault == INVALID_HANDLE)
        return PLUGIN_CONTINUE;
    
    new vaultkey[128],vaultdata[256], identyfikator[64];
    
    new typ_zapisu = get_pcvar_num(cvar_typ_zapisu);
    
    switch(typ_zapisu)
    {
        case 1: copy(identyfikator, charsmax(identyfikator), nazwa_gracza[id]);
            case 2: get_user_authid(id, identyfikator, charsmax(identyfikator));
            case 3: get_user_ip(id, identyfikator, charsmax(identyfikator));
        }
    
    format(vaultkey, charsmax(vaultkey),"%s-%s-%i-cod", identyfikator, nazwy_klas[klasa], typ_zapisu);
    new wczytaj/*, wersjaz*/;
    
    if(!(wczytaj = nvault_get(vault,vaultkey,vaultdata,255))) // Jezeli nie ma danych gracza sprawdza stary zapis.
    {
        format(vaultkey, charsmax(vaultkey), "%s-%i-cod", nazwa_gracza[id], klasa);
        wczytaj = nvault_get(vault,vaultkey,vaultdata,255);
        //wersjaz = 1;
    }
    
    if(wczytaj) {
        new danegracza[6][16];
        parse(vaultdata, danegracza[0], 15, danegracza[1], 15, danegracza[2], 15, danegracza[3], 15, danegracza[4], 15, danegracza[5], 15);
        
        doswiadczenie_gracza[id] = str_to_num(danegracza[0]);
        poziom_gracza[id] = str_to_num(danegracza[1]);
        inteligencja_gracza[id] = str_to_num(danegracza[2]);
        zdrowie_gracza[id] = str_to_num(danegracza[3]);
        wytrzymalosc_gracza[id] = str_to_num(danegracza[4]);
        kondycja_gracza[id] = str_to_num(danegracza[5]);
        punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id];
        
        nvault_touch(vault, vaultkey);
        
        /*for(new i=1; i<=ilosc_klas; ++i) {
        if(i != klasa) {
            if(wersjaz == 1)
                format(vaultkey, charsmax(vaultkey), "%s-%i-cod", nazwa_gracza[id], i);
            else
                format(vaultkey, charsmax(vaultkey),"%s-%s-%i-cod", identyfikator, nazwy_klas[i], typ_zapisu);
            
            if(nvault_get(vault,vaultkey,vaultdata,2))
                nvault_touch(vault, vaultkey);
        }
    }*/
}
else {
    doswiadczenie_gracza[id] = 0;
    poziom_gracza[id] = 1;
    inteligencja_gracza[id] = 0;
    zdrowie_gracza[id] = 0;
    wytrzymalosc_gracza[id] = 0;
    kondycja_gracza[id] = 0;
    punkty_gracza[id] = 0
}

return PLUGIN_CONTINUE;
}


public WyrzucPerk(id)
{
if(perk_gracza[id])
{
    ColorChat(id, GREY, "^x04[Call OF Duty]^x01 Wyrzuciles %s.", nazwy_perkow[perk_gracza[id]]);
    UstawPerk(id, 0, 0, 0);
}
else
    ColorChat(id, GREY, "^x04[Call OF Duty]^x01 Nie masz zadnego perku.");
}


public SprawdzPoziom(id)
{    
if(!is_user_connected(id))
    return;

new limit_poziomu = get_pcvar_num(cvar_limit_poziomu);

new bool:zdobyl_poziom = false, bool:stracil_poziom = false;

while(doswiadczenie_gracza[id] >= PobierzDoswiadczeniePoziomu(poziom_gracza[id]) && poziom_gracza[id] < limit_poziomu)
{
    poziom_gracza[id]++;
    punkty_gracza[id] = (poziom_gracza[id]-1)*1-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id];
    zdobyl_poziom = true;
}

while(doswiadczenie_gracza[id] < PobierzDoswiadczeniePoziomu(poziom_gracza[id]-1))
{
    poziom_gracza[id]--;
    stracil_poziom = true;
}

if(poziom_gracza[id] > limit_poziomu)
{
    poziom_gracza[id] = limit_poziomu;
    ResetujPunkty(id);
}

if(stracil_poziom)
{
    ResetujPunkty(id);
}
else if(zdobyl_poziom)
{
    punkty_gracza[id] = (poziom_gracza[id]-1)*1-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id];
}


ZapiszDane(id);
}

public PokazInformacje(id)
{
id -= ZADANIE_POKAZ_INFORMACJE;

if(!is_user_connected(id))
{
    remove_task(id+ZADANIE_POKAZ_INFORMACJE);
    return PLUGIN_CONTINUE;
}
new today_str[8]
get_time("%H",today_str,8)
new today = str_to_num(today_str)
if(!is_user_alive(id))
{
    new target = pev(id, pev_iuser2);
    
    if(!target)
        return PLUGIN_CONTINUE;
    if ((today >= 18) || (today < 8)){
        new szKlan[33];
        get_klangracza(target, szKlan, 32);
        if(!equali(szKlan,"")){
        }else szKlan = "Brak"
        new ileMa = doswiadczenie_gracza[target],ilePotrzeba = PobierzDoswiadczeniePoziomu(poziom_gracza[target]),ilePotrzebaBylo = PobierzDoswiadczeniePoziomu(poziom_gracza[target]-1)
        new Float:fProcent = 0.0;
        fProcent = (float((ileMa - ilePotrzebaBylo)) / float((ilePotrzeba - ilePotrzebaBylo))) * 100.0;
        new max_hp = (100+PobierzZdrowie(target, 1, 1, 1));
        set_hudmessage(0, 255, 0, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2);
        ShowSyncHudMsg(id, SyncHudObj, "Nocny EXP: ON^n^n^nKlan: %s^nKlasa: %s^nPoziom: %i (%0.1f%%)^nZdrowie: %d/%i^nPerk: %s^nMonety: %i (%i w banku)^n", szKlan, nazwy_klas[klasa_gracza[target]], poziom_gracza[target], fProcent, get_user_health(target), max_hp, nazwy_perkow[perk_gracza[target]], cod_get_user_coins(target), cod_get_bank_orders(target));
    }
    else if ((today >= 8) || (today < 18)){
        new szKlan[33];
        get_klangracza(target, szKlan, 32);
        if(!equali(szKlan,"")){
        }else szKlan = "Brak"
        new ileMa = doswiadczenie_gracza[target],ilePotrzeba = PobierzDoswiadczeniePoziomu(poziom_gracza[target]),ilePotrzebaBylo = PobierzDoswiadczeniePoziomu(poziom_gracza[target]-1)
        new Float:fProcent = 0.0;
        fProcent = (float((ileMa - ilePotrzebaBylo)) / float((ilePotrzeba - ilePotrzebaBylo))) * 100.0;
        new max_hp = (100+PobierzZdrowie(target, 1, 1, 1));
        set_hudmessage(255, 255, 255, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2);
        ShowSyncHudMsg(id, SyncHudObj, "Nocny EXP: OFF^n^nKlan: %s^nKlasa: %s^nPoziom: %i (%0.1f%%)^nZdrowie: %d/%i^nPerk: %s^nMonety: %i (%i w banku)", szKlan, nazwy_klas[klasa_gracza[target]], poziom_gracza[target], fProcent, get_user_health(target), max_hp, nazwy_perkow[perk_gracza[target]], cod_get_user_coins(target), cod_get_bank_orders(target));
    }
    return PLUGIN_CONTINUE;
}

if ((today >= 20) || (today < 8)){
    new szKlan[33];
    get_klangracza(id, szKlan, 32);
    if(!equali(szKlan,"")){
    }else szKlan = "Brak"
    new ileMa = doswiadczenie_gracza[id],ilePotrzeba = PobierzDoswiadczeniePoziomu(poziom_gracza[id]),ilePotrzebaBylo = PobierzDoswiadczeniePoziomu(poziom_gracza[id]-1)
    new Float:fProcent = 0.0;
    fProcent = (float((ileMa - ilePotrzebaBylo)) / float((ilePotrzeba - ilePotrzebaBylo))) * 100.0;
    new max_hp = (100+PobierzZdrowie(id, 1, 1, 1));
    set_hudmessage(255, 255, 0, 0.02, 0.12, 0, 0.0, 0.3, 0.0, 0.0);
    ShowSyncHudMsg(id, SyncHudObj, "[Nocny EXP: ON, skonczymy o 8:00]^n[Klan: %s]^n[Klasa: %s]^n[Poziom: %i (%0.1f%%)]^n[Zdrowie: %d/%i]^n[Monety: %i (%i w banku)]^n[Perk: %s]", szKlan, nazwy_klas[klasa_gracza[id]], poziom_gracza[id], fProcent, get_user_health(id), max_hp, cod_get_user_coins(id),cod_get_bank_orders(id),nazwy_perkow[perk_gracza[id]]);
}
else if ((today >= 8) || (today < 20)){
    new szKlan[33];
    get_klangracza(id, szKlan, 32);
    if(!equali(szKlan,"")){
    }else szKlan = "Brak"
    new ileMa = doswiadczenie_gracza[id],ilePotrzeba = PobierzDoswiadczeniePoziomu(poziom_gracza[id]),ilePotrzebaBylo = PobierzDoswiadczeniePoziomu(poziom_gracza[id]-1)
    new Float:fProcent = 0.0;
    fProcent = (float((ileMa - ilePotrzebaBylo)) / float((ilePotrzeba - ilePotrzebaBylo))) * 100.0;
    new max_hp = (100+PobierzZdrowie(id, 1, 1, 1));
    set_hudmessage(0, 255, 0, 0.02, 0.12, 0, 0.0, 0.3, 0.0, 0.0);
    ShowSyncHudMsg(id, SyncHudObj, "[Nocny EXP: OFF, startujemy o 18:00]^n[Klan: %s]^n[Klasa: %s]^n[Poziom: %i (%0.1f%%)]^n[Zdrowie: %d/%i]^n[Monety: %i (%i w banku)]^n[Perk: %s]", szKlan, nazwy_klas[klasa_gracza[id]], poziom_gracza[id], fProcent, get_user_health(id), max_hp, cod_get_user_coins(id),cod_get_bank_orders(id), nazwy_perkow[perk_gracza[id]]);
}
return PLUGIN_CONTINUE;
}

public UstawSzybkosc(id)
{
id -= id>32? ZADANIE_USTAW_SZYBKOSC: 0;

if(klasa_gracza[id] && !freezetime)
    set_pev(id, pev_maxspeed, szybkosc_gracza[id]);
}

public DotykBroni(weapon, id)
{
if(get_pcvar_num(cvar_blokada_broni) < 1)
    return HAM_IGNORED;

if(!is_user_connected(id))
    return HAM_IGNORED;

new model[23];
pev(weapon, pev_model, model, 22);
if (pev(weapon, pev_owner) == id || containi(model, "w_backpack") != -1)
    return HAM_IGNORED;
return HAM_SUPERCEDE;
}

public DotykTarczy(weapon, id)
{
if(get_pcvar_num(cvar_blokada_broni) < 1)
    return HAM_IGNORED;

if(!is_user_connected(id))
    return HAM_IGNORED;

if(gracz_ma_tarcze[id])
    return HAM_IGNORED;

return HAM_SUPERCEDE;
}

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, GREY, "^x04[Call OF Duty]^x01 Zdobyles^x04 %s", nazwy_perkow[perk_gracza[id]]);

return PLUGIN_CONTINUE;
}

public UstawDoswiadczenie(id, wartosc)
{
doswiadczenie_gracza[id] = wartosc;
SprawdzPoziom(id);
}

public UstawKlase(id, klasa, zmien)
{
nowa_klasa_gracza[id] = klasa;
if(zmien)
{
    UstawNowaKlase(id);
    DajBronie(id);
    ZastosujAtrybuty(id);
}
}

public UstawTarcze(id, wartosc)
{
if((gracz_ma_tarcze[id] = (wartosc > 0)))
    fm_give_item(id, "weapon_shield");
}

public UstawNoktowizor(id, wartosc)
{
if((gracz_ma_noktowizor[id] = (wartosc > 0)))
    cs_set_user_nvg(id, 1);
}

public DajBron(id, bron)
{
bonusowe_bronie_gracza[id] |= (1<<bron);
new weaponname[22];
get_weaponname(bron, weaponname, 21);
return fm_give_item(id, weaponname);
}

public WezBron(id, bron)
{
bonusowe_bronie_gracza[id] &= ~(1<<bron);

if((1<<bron) & (bronie_dozwolone | bronie_klasy[get_user_team(id)] | bronie_klasy[klasa_gracza[id]]))
    return;

new weaponname[22];
get_weaponname(bron, weaponname, 21);
if(!((1<<bron) & (1<<CSW_HEGRENADE | 1<<CSW_SMOKEGRENADE | 1<<CSW_FLASHBANG)))
    engclient_cmd(id, "drop", weaponname);
}

public UstawBonusoweZdrowie(id, wartosc)
bonusowe_zdrowie_gracza[id] = wartosc;


public UstawBonusowaInteligencje(id, wartosc)
bonusowa_inteligencja_gracza[id] = wartosc;


public UstawBonusowaKondycje(id, wartosc)
bonusowa_kondycja_gracza[id] = wartosc;


public UstawBonusowaWytrzymalosc(id, wartosc)
bonusowa_wytrzymalosc_gracza[id] = wartosc;

public PrzydzielZdrowie(id, wartosc)
{
new max_statystyka = get_pcvar_num(cvar_limit_poziomu)/2;
wartosc = min(min(punkty_gracza[id], wartosc), max_statystyka-zdrowie_gracza[id]);

punkty_gracza[id] -= wartosc;
zdrowie_gracza[id] += wartosc;
}

public PrzydzielInteligencje(id, wartosc)
{
new max_statystyka = get_pcvar_num(cvar_limit_poziomu)/2;
wartosc = min(min(punkty_gracza[id], wartosc), max_statystyka-inteligencja_gracza[id]);

punkty_gracza[id] -= wartosc;
inteligencja_gracza[id] += wartosc;
}

public PrzydzielKondycje(id, wartosc)
{
new max_statystyka = get_pcvar_num(cvar_limit_poziomu)/2;
wartosc = min(min(punkty_gracza[id], wartosc), max_statystyka-kondycja_gracza[id]);

punkty_gracza[id] -= wartosc;
kondycja_gracza[id] += wartosc;
}

public PrzydzielWytrzymalosc(id, wartosc)
{
new max_statystyka = get_pcvar_num(cvar_limit_poziomu)/2;
wartosc = min(min(punkty_gracza[id], wartosc), max_statystyka-wytrzymalosc_gracza[id]);

punkty_gracza[id] -= wartosc;
wytrzymalosc_gracza[id] += wartosc;
}

public PobierzPerk(id, &wartosc)
{
wartosc = wartosc_perku_gracza[id];
return perk_gracza[id];
}

public PobierzIloscPerkow()
return ilosc_perkow;


public PobierzNazwePerku(perk, Return[], len)
{
if(perk <= ilosc_perkow)
{
    param_convert(2);
    copy(Return, len, nazwy_perkow[perk]);
}
}

public PobierzOpisPerku(perk, Return[], len)
{
if(perk <= ilosc_perkow)
{
    param_convert(2);
    copy(Return, len, opisy_perkow[perk]);
}
}

public PobierzPerkPrzezNazwe(const nazwa[])
{
param_convert(1);
for(new i=1; i <= ilosc_perkow; i++)
    if(equal(nazwa, nazwy_perkow[i]))
    return i;
return 0;
}

public PobierzDoswiadczeniePoziomu(poziom)
return power(poziom, 2)*get_pcvar_num(cvar_proporcja_poziomu);

public PobierzDoswiadczenie(id)
return doswiadczenie_gracza[id];

public PobierzPunkty(id)
return punkty_gracza[id];

public PobierzPoziom(id)
return poziom_gracza[id];

public PobierzZdrowie(id, zdrowie_zdobyte, zdrowie_klasy, zdrowie_bonusowe)
{
new zdrowie;

if(zdrowie_zdobyte)
    zdrowie += zdrowie_gracza[id];
if(zdrowie_bonusowe)
    zdrowie += bonusowe_zdrowie_gracza[id];
if(zdrowie_klasy)
    zdrowie += zdrowie_klas[klasa_gracza[id]];

return zdrowie;
}

public PobierzInteligencje(id, inteligencja_zdobyta, inteligencja_klasy, inteligencja_bonusowa)
{
new inteligencja;

if(inteligencja_zdobyta)
    inteligencja += inteligencja_gracza[id];
if(inteligencja_bonusowa)
    inteligencja += bonusowa_inteligencja_gracza[id];
if(inteligencja_klasy)
    inteligencja += inteligencja_klas[klasa_gracza[id]];

return inteligencja;
}

public PobierzKondycje(id, kondycja_zdobyta, kondycja_klasy, kondycja_bonusowa)
{
new kondycja;

if(kondycja_zdobyta)
    kondycja += kondycja_gracza[id];
if(kondycja_bonusowa)
    kondycja += bonusowa_kondycja_gracza[id];
if(kondycja_klasy)
    kondycja += kondycja_klas[klasa_gracza[id]];

return kondycja;
}

public PobierzWytrzymalosc(id, wytrzymalosc_zdobyta, wytrzymalosc_klasy, wytrzymalosc_bonusowa)
{
new wytrzymalosc;

if(wytrzymalosc_zdobyta)
    wytrzymalosc += wytrzymalosc_gracza[id];
if(wytrzymalosc_bonusowa)
    wytrzymalosc += bonusowa_wytrzymalosc_gracza[id];
if(wytrzymalosc_klasy)
    wytrzymalosc += wytrzymalosc_klas[klasa_gracza[id]];

return wytrzymalosc;
}

public PobierzKlase(id)
return klasa_gracza[id];

public PobierzIloscKlas()
return ilosc_klas;

public PobierzNazweKlasy(klasa, Return[], len)
{
if(klasa <= ilosc_klas)
{
    param_convert(2);
    copy(Return, len, nazwy_klas[klasa]);
}
}

public PobierzOpisKlasy(klasa, Return[], len)
{
if(klasa <= ilosc_klas)
{
    param_convert(2);
    copy(Return, len, opisy_klas[klasa]);
}
}

public PobierzKlasePrzezNazwe(const nazwa[])
{
param_convert(1);
for(new i=1; i <= ilosc_klas; i++)
    if(equal(nazwa, nazwy_klas[i]))
    return i;
return 0;
}

public PobierzZdrowieKlasy(klasa)
{
if(klasa <= ilosc_klas)
    return zdrowie_klas[klasa];
return -1;
}

public PobierzInteligencjeKlasy(klasa)
{
if(klasa <= ilosc_klas)
    return inteligencja_klas[klasa];
return -1;
}

public PobierzKondycjeKlasy(klasa)
{
if(klasa <= ilosc_klas)
    return kondycja_klas[klasa];
return -1;
}

public PobierzWytrzymaloscKlasy(klasa)
{
if(klasa <= ilosc_klas)
    return wytrzymalosc_klas[klasa];
return -1;
}

public ZadajObrazenia(atakujacy, ofiara, Float:obrazenia, Float:czynnik_inteligencji, byt_uszkadzajacy, dodatkowe_flagi)
ExecuteHam(Ham_TakeDamage, ofiara, byt_uszkadzajacy, atakujacy, obrazenia+PobierzInteligencje(atakujacy, 1, 1, 1)*czynnik_inteligencji, (1<<31) | dodatkowe_flagi);

public ZarejestrujPerk(plugin, params)
{
if(params != 4)
    return PLUGIN_CONTINUE;

if(++ilosc_perkow > MAX_ILOSC_PERKOW)
    return -1;

pluginy_perkow[ilosc_perkow] = plugin;
get_string(1, nazwy_perkow[ilosc_perkow], MAX_WIELKOSC_NAZWY);
get_string(2, opisy_perkow[ilosc_perkow], MAX_WIELKOSC_OPISU);
min_wartosci_perkow[ilosc_perkow] = get_param(3);
max_wartosci_perkow[ilosc_perkow] = get_param(4);

return ilosc_perkow;
}

public ZarejestrujKlase(plugin, params)
{
if(params != 8)
    return PLUGIN_CONTINUE;

if(++ilosc_klas > MAX_ILOSC_KLAS)
    return -1;

pluginy_klas[ilosc_klas] = plugin;

get_string(1, nazwy_klas[ilosc_klas], MAX_WIELKOSC_NAZWY);
get_string(2, opisy_klas[ilosc_klas], MAX_WIELKOSC_OPISU);
get_string(3, premium_klas[ilosc_klas], MAX_WIELKOSC_PREMIUM);

bronie_klasy[ilosc_klas] = get_param(4);
zdrowie_klas[ilosc_klas] = get_param(5);
kondycja_klas[ilosc_klas] = get_param(6);
inteligencja_klas[ilosc_klas] = get_param(7);
wytrzymalosc_klas[ilosc_klas] = get_param(8);

return ilosc_klas;
}

stock ham_strip_weapon(id, weapon[])
{
if(!equal(weapon, "weapon_", 7) ) return 0
new wId = get_weaponid(weapon)
if(!wId) return 0
new wEnt
while( (wEnt = engfunc(EngFunc_FindEntityByString,wEnt,"classname", weapon) ) && pev(wEnt, pev_owner) != id) {}
if(!wEnt) return 0

if(get_user_weapon(id) == wId) ExecuteHamB(Ham_Weapon_RetireWeapon, wEnt)

if(!ExecuteHamB(Ham_RemovePlayerItem, id, wEnt)) return 0
ExecuteHamB(Ham_Item_Kill ,wEnt)

set_pev(id, pev_weapons, pev(id, pev_weapons) & ~(1<<wId) )
return 1
}

stock Display_Fade(id,duration,holdtime,fadetype,red,green,blue,alpha)
{
message_begin( MSG_ONE, MsgScreenfade,{0,0,0},id );
write_short( duration );    // Duration of fadeout
write_short( holdtime );    // Hold time of color
write_short( fadetype );    // Fade type
write_byte ( red );        // Red
write_byte ( green );        // Green
write_byte ( blue );        // Blue
write_byte ( alpha );    // Alpha
message_end();
}

stock fm_give_item(index, const item[]) {
if (!equal(item, "weapon_", 7) && !equal(item, "ammo_", 5) && !equal(item, "item_", 5) && !equal(item, "tf_weapon_", 10))
    return 0;

new ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, item));
if (!pev_valid(ent))
    return 0;

new Float:origin[3];
pev(index, pev_origin, origin);
set_pev(ent, pev_origin, origin);
set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN);
dllfunc(DLLFunc_Spawn, ent);

new save = pev(ent, pev_solid);
dllfunc(DLLFunc_Touch, ent, index);
if (pev(ent, pev_solid) != save)
    return ent;

engfunc(EngFunc_RemoveEntity, ent);

return -1;
}
public Start_menu(id)
{
new menu, text [222]
formatex(text, charsmax(text), "\y[Call OF Duty]\r Menu")
menu = menu_create(text, "startmenu_Handler")
menu_additem(menu, "\wWybierz klase", "1", 0);
menu_additem(menu, "\wSprawdz opis klas", "1", 0);
menu_additem(menu, "\wMenu serwera", "2", 0);

menu_addtext(menu, "^n^n\wWitaj na serwerze Call Of Duty !^n\ySpodobal ci sie serwer? \wWpisz \y/ip^n^n\wKontakt z administratorem \y/kontakt");
menu_setprop(menu, MPROP_EXITNAME, "\wWyjdz");
menu_display(id, menu);
}

public startmenu_Handler(id, menu, item)
{

if(item == MENU_EXIT)
{
    menu_destroy(menu);
    return PLUGIN_CONTINUE;
}
menu_display(id, menu);
switch(item)
{
    case 0:
    {
        WybierzKlase(id)
        
    }
    case 1:
    {
        
        OpisKlasy(id)    
    }
    case 2:
    {
        Menu(id)
        
    }
    
}
return PLUGIN_CONTINUE;
}
public Gracze(id) {
new menu = menu_create("Gracze","WyborGracza");
new name[64], num;
for(new i=1; i<=32; i++) {
    if(is_user_connected(i)) {
        Players[id][num] = i;
        num++;
        get_user_name(i, name, charsmax(name));
        menu_additem(menu, name);
    }
}
menu_setprop(menu, MPROP_BACKNAME, "Wroc");
menu_setprop(menu, MPROP_NEXTNAME, "Dalej");
menu_setprop(menu, MPROP_EXITNAME, "Wyjscie");
menu_display(id, menu);

}

public WyborGracza(id, menu, item) {
if(item == MENU_EXIT) {
    menu_destroy(menu);
    return PLUGIN_HANDLED;
    
}
new id2 = Players[id][item];
new imie[64];
get_user_name(id2, imie, charsmax(imie));
new szKlan[33];
get_klangracza(id2, szKlan, 32);
if(!equali(szKlan,"")){
}else szKlan = "Brak"

new tempstring[800];
new motd[2048];
formatex(motd,charsmax(motd),"<html><center><body bgcolor=^"00000^"><font size=^"2^" face=^"verdana^" color=^"FFFFFF^"><strong><b>Informacje o graczu:<br>%s</strong></b></center><br><br>", imie);
formatex(tempstring,charsmax(tempstring), "<center><br>Klasa: %s [ Poziom: %i / 401 ]<br>Perk: %s<br>Ilosc monet: %i<br>Klan: %s<br><br>*** Statystyki ***<br><br>Inteligencja: %i<br>Zdrowie: %i<br>Wytrzymalosc: %i<br>Kondycja: %i",
nazwy_klas[klasa_gracza[id2]], poziom_gracza[id2], nazwy_perkow[perk_gracza[id2]], cod_get_user_coins(id2), szKlan, inteligencja_gracza[id2], zdrowie_gracza[id2], wytrzymalosc_gracza[id2], kondycja_gracza[id2]);
add(motd,charsmax(motd),tempstring);

add(motd,charsmax(motd),"</font></body></html>");

show_motd(id,motd,"Informacje na temat gracza");

menu_destroy(menu);

return PLUGIN_HANDLED;

}
public Menu(id)
{
new menu, text [222]
formatex(text, charsmax(text), "\y[Call OF Duty]\r Menu")
menu = menu_create(text, "Menu_Handler")
menu_additem(menu, "\wWybierz klase \y(klasa)", "1", 0);
menu_additem(menu, "\wOpisy klas \y(/klasy)", "1", 0);
menu_additem(menu, "\wLista perkow \y(/perki)", "2", 0);
menu_additem(menu, "\wOpis perku \y(/perk)", "3", 0);
menu_additem(menu, "\wWyrzuc perk \y(/drop)", "4", 0);
menu_additem(menu, "\wRynek \y(rynek)", "5", 0);
menu_additem(menu, "\wSklep \y(/sklep)", "6", 0);
menu_additem(menu, "\wOddaj perk \y(/oddaj)", "7", 0);
menu_additem(menu, "\wZamien perk \y(/zamien)", "8", 0);
menu_additem(menu, "\wBank \y(/bank)", "9", 0);
menu_additem(menu, "\wRank \y(/rank)", "10", 0);
menu_additem(menu, "\wTOP15 -rank/lvl \y(/top15)", "11", 0);
menu_additem(menu, "\wKontakt \y(/kontakt)", "11", 0);
menu_additem(menu, "\wGracze \y(/gracze)", "11", 0);

menu_setprop(menu, MPROP_EXITNAME, "\wWyjdz");
menu_display(id, menu);
}

public Menu_Handler(id, menu, item)
{

if(item == MENU_EXIT)
{
    menu_destroy(menu);
    return PLUGIN_CONTINUE;
}
menu_display(id, menu);
switch(item)
{
    case 0:
    {
        WybierzKlase(id)
        
    }
    case 1:
    {
        
        OpisKlasy(id)    
    }
    case 2:
    {
        OpisPerkow(id)
        
    }
    case 3:
    {
        KomendaOpisPerku(id)
        
    }
    case 4:
    {
        WyrzucPerk(id)
        
    }
    case 5:
    {
        client_cmd(id, "say /rynek");
        
    }
    case 6:
    {
        client_cmd(id, "say /sklep");
        
    }
    case 7:
    {
        client_cmd(id, "say /daj");
        
    }
    case 8:
    {
        client_cmd(id, "say /zamien");
        
    }
    case 9:
    {
        client_cmd(id, "say /bank");
        
    }
    case 10:
    {
        client_cmd(id, "say /rank");
        
    }
    case 11:
    {
        client_cmd(id, "say /top15");
        
    }
    case 12:
    {
        client_cmd(id, "say /kontakt");
    }
    case 13:
    {
        client_cmd(id, "say /gracze");
    }
    
}
return PLUGIN_CONTINUE;
}
public BlokujKomende()
return PLUGIN_HANDLED;

Problem ze zmianą map na serwerze

16.05.2016 16:18

Witam,

 

Mam dość nietypowy problem.. a mianowicie chodzi o to, że coś się popsuło przy zmianach map, aczkolwiek mam ustawiony mp_timelimit na 25, przychodzi czas, gdy ma być wybrana mapa (2 minuty przed końcem mapy) wszyscy wybiorą ładnie mapę, pokazuje, która została wygrana, no i gramy dalej przez te 2 minuty.. skończą się 2 minuty, mapa się nie zmienia, wpisuję timeleft w say i wyskakuje że do końca mapy pozostało 30 minut i czas na nowo leci... o co chodzi? Co jest tego powodem?

 

Dodam jeszcze, że gdy ustawiłem czas mapy na 3 minuty, po wpisaniu nextmap wyskoczyła mapa (przykładowo cs_assault) potem wyskoczyło vote na mapy, została wybrana np (de_rats_1337) pisze ładnie.. głosowanie zakończone, wybrana mapa cs_assault_1337, przychodzi czas zmiany mapy i zmienia na tą która była w nextmap, czyli cs_assault

 

Tak na zmiane te błędy się pokazują.. jak to naprawić??

 

Proszę mój config z server.cfg

 

// Use this file to configure your DEDICATED server.
// This config file is executed on server start.

// disable autoaim
sv_aim 0

// disable clients' ability to pause the server
pausable 0

// default server name. Change to "Bob's Server", etc.
hostname "xxxxxxx (zmienione)"
sv_password ""

// maximum client movement speed
sv_maxspeed 320

mp_timelimit "25"

sv_cheats 0

// load ban files
exec listip.cfg
exec banned.cfg
rcon exec server.cfg

sv_rcon_banpenalty 720 //Czas bana (720 = 12 godzin)
sv_rcon_minfailures 2 // Liczba nieudanych prób potrzebnych do zbanowania
sv_rcon_minfailuretime 30 // Odstęp czasowy(w minutach) dopuszczający pomyłkę

sv_maxupdaterate 100

sv_downloadurl "http://w70.1shot1kill.pl/FD/srv38012/cstrike"

allow_spectators "1"
mp_c4timer "0.40"
mp_logdetail "0"
mp_logmessages "1"
mp_consistency "1"
mp_autokick "0"
mp_autoteambalance "1"
mp_c4timer "35"
mp_flashlight "0"
mp_footsteps "1"
mp_forcechasecam "0"
mp_freezetime "4"
mp_friendlyfire "0"
mp_limitteams "2"
mp_hostagepenalty "2"
mp_roundtime "2.20"
mp_tkpunish "1"
mp_startmoney "800"
mp_chattime "0"
sv_maxspeed "320"
sv_cheats "0"
decalfrequency "60"
sv_lan "0"
secure "1"
sv_aim "0"
pausable "0"
sv_allowupload "1"
sv_allowdownload "1"
sv_voicequality "3"
sv_voiceenable "1"
sv_voicecodec "voice_speex"
sv_alltalk "0"
sv_proxies "1"
sv_allow_dlfile "0"

 

Oraz plugins.ini

 

; AMX Mod X plugins
amxbans_main.amxx
amxbans_core.amxx
; Admin Base - Always one has to be activated
;admin.amxx        ; admin base (required for any admin-related)
;admin_sql.amxx        ; admin base - SQL version (comment admin.amxx)

; Basic
admincmd.amxx        ; basic admin console commands
adminhelp.amxx        ; help command for admin console commands
adminslots.amxx        ; slot reservation
multilingual.amxx    ; Multi-Lingual management

; Menus
menufront.amxx        ; front-end for admin menus
cmdmenu.amxx        ; command menu (speech, settings)
reasonkicker.amxx
plmenu.amxx        ; players menu (kick, ban, client cmds.)
;telemenu.amxx        ; teleport menu (Fun Module required!)
mapsmenu.amxx        ; maps menu (vote, changelevel)
pluginmenu.amxx        ; Menus for commands/cvars organized by plugin

; Chat / Messages
adminchat.amxx        ; console chat commands
antiflood.amxx        ; prevent clients from chat-flooding the server
scrollmsg.amxx        ; displays a scrolling message
;imessage.amxx        ; displays information messages
adminvote.amxx        ; vote commands
inf_smierc.amxx         ; Info po smierci

; Map related
nextmap.amxx        ; displays next map in mapcycle
timeleft.amxx        ; displays time left on map
mapchooser.amxx

; Configuration
pausecfg.amxx        ; allows to pause and unpause some plugins
statscfg.amxx        ; allows to manage stats plugins via menu and commands

; Counter-Strike
;restmenu.amxx        ; restrict weapons menu
statsx.amxx        ; stats on death or round end (CSX Module required!)
;miscstats.amxx        ; bunch of events announcement for Counter-Strike
;stats_logging.amxx    ; weapons stats logging (CSX Module required!)

abd.amxx
afkbombtransfer.amxx
flash.amxx
kill_assist.amxx debug
najlepszy.amxx
resetscore.amxx
dontsayips.amxx
mutemenu.amxx
emptyserver2.amxx
anty_reklama.amxx
;galileo.amxx
Automaticknifeduel.amxx
RoundSound.amxx debug
ultimate_sounds_PL.amxx
Allow_round_finish.amxx
polski_cs.amxx
autoreloadadmins.amxx
;Map_Spawns_Editor.amxx
admin_spec_esp.amxx
Voices_Management.amxx
G_block_name_change.amxx
gamenamechanger.amxx
show_ip.amxx debug
odblokuj.amxx
mapchooser4.amxx

;weaponicon.amxx
;hpk.amxx


; Enable to use AMX Mod plugins
;amxmod_compat.amxx    ; AMX Mod backwards compatibility layer

; Custom - Add 3rd party plugins here

Errory w silniku COD'a m.in. Run time error 4: index out of bounds

14.05.2016 10:51

Witam,
 
Mam problem z silnikiem swojego coda, od wczoraj sypie mi dziwnymi errorami, z którymi nie mogę sobie poradzić, więc postanowiłem zaczerpnąć pomocy z tej strony.
 
Oto logi

 

L 05/13/2016 - 20:02:14: [AMXX] Displaying debug trace (plugin "QTM_CodMod.amxx")
L 05/13/2016 - 20:02:14: [AMXX] Run time error 3: stack error
L 05/13/2016 - 20:02:14: [AMXX]    [0] QTM_CodMod.sma::CurWeapon (line 797)
L 05/13/2016 - 20:02:20: [AMXX] Displaying debug trace (plugin "QTM_CodMod.amxx")
L 05/13/2016 - 20:02:20: [AMXX] Run time error 3: stack error
L 05/13/2016 - 20:02:20: [AMXX]    [0] QTM_CodMod.sma::CurWeapon (line 797)
L 05/13/2016 - 20:51:18: Start of error session.
L 05/13/2016 - 20:51:18: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20160513.log")
L 05/13/2016 - 20:51:18: [AMXX] Displaying debug trace (plugin "QTM_CodMod.amxx")
L 05/13/2016 - 20:51:18: [AMXX] Run time error 4: index out of bounds
L 05/13/2016 - 20:51:18: [AMXX]    [0] QTM_CodMod.sma::WezBron (line 1166)
L 05/13/2016 - 20:51:18: Unhandled dynamic native error
L 05/13/2016 - 20:51:18: [AMXX] Run time error 10 (plugin "codperk_awpsnajper.amxx") (native "cod_take_weapon") - debug not enabled!
L 05/13/2016 - 20:51:18: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).