Nie mogę skompilować pluginu
Neshi
30.03.2014
Witam.
Mam problem, nie mogę skomilować pluginu QTM_CodMod (nowy)
Dodawałem ograniczenie rozdawania statystyk było max 10k inta to zmniejszyłem do max 5k, ale żeby to działało to trzbea skompilować ten plik .sma i nie daje rady wywala takie coś (przy każdym kompilatorze):
Welcome to the AMX Mod X 1.8.1-300 Compiler. Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team QTM_CodMod.sma(302) : error 017: undefined symbol "UstawPerk" QTM_CodMod.sma(304) : error 017: undefined symbol "WczytajDane" QTM_CodMod.sma(316) : error 017: undefined symbol "fm_give_item" QTM_CodMod.sma(321) : error 017: undefined symbol "fm_give_item" QTM_CodMod.sma(337) : error 017: undefined symbol "PobierzWytrzymalosc" QTM_CodMod.sma(339) : error 017: undefined symbol "PobierzZdrowie" QTM_CodMod.sma(341) : error 017: undefined symbol "PobierzKondycje" QTM_CodMod.sma(354) : error 017: undefined symbol "Display_Fade" QTM_CodMod.sma(399) : error 017: undefined symbol "SprawdzPoziom" QTM_CodMod.sma(417) : error 017: undefined symbol "UstawPerk" QTM_CodMod.sma(421) : error 017: undefined symbol "SprawdzPoziom" QTM_CodMod.sma(453) : error 017: undefined symbol "ZapiszDane" QTM_CodMod.sma(476) : error 017: undefined symbol "UstawPerk" QTM_CodMod.sma(509) : error 017: undefined symbol "SprawdzPoziom" QTM_CodMod.sma(608) : error 017: undefined symbol "WczytajDane" QTM_CodMod.sma(613) : error 017: undefined symbol "WczytajDane" QTM_CodMod.sma(748) : error 029: invalid expression, assumed zero 17 Errors. Could not locate output file QTM_CodMod.amxx (compile failed).
Podaje tutaj mój kod sma QTM_CodMod
#include <amxmodx> #include <amxmisc> #include <cstrike> #include <fakemeta> #include <hamsandwich> #include <nvault> #define PLUGIN "Call of Duty: MW Mod" #define VERSION "1.0-3" #define AUTHOR "QTM_Peyote" #define MAX_WIELKOSC_NAZWY 32 #define MAX_WIELKOSC_OPISU 256 #define MAX_ILOSC_PERKOW 120 #define MAX_ILOSC_KLAS 100 #define STANDARDOWA_SZYBKOSC 250.0 #define ZADANIE_POKAZ_INFORMACJE 672 #define ZADANIE_POKAZ_REKLAME 768 #define ZADANIE_USTAW_SZYBKOSC 832 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 MsgScreenfade; new vault; new SyncHudObj, SyncHudObj2; 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], pluginy_klas[MAX_ILOSC_KLAS+1], ilosc_klas; new bronie_druzyny[] = {0, 1<<CSW_GLOCK18, 1<<CSW_USP}, bronie_dozwolone = 1<<CSW_KNIFE | 1<<CSW_C4; new bool:freezetime = true; 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 /item", "Pomoc"); register_clcmd("say /przedmiot", "OpisPerku"); register_clcmd("say /drop", "WyrzucPerk"); register_clcmd("say /wyrzuc", "WyrzucPerk"); register_clcmd("say /reset", "KomendaResetujPunkty"); register_clcmd("say /statystyki", "PrzydzielPunkty"); register_clcmd("say /staty", "PrzydzielPunkty"); register_clcmd("say /pomoc", "Pomoc"); 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_message(get_user_msgid("Health"),"MessageHealth"); 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(); SyncHudObj2 = 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(); } public plugin_precache() { precache_sound("QTM_CodMod/select.wav"); precache_sound("QTM_CodMod/start.wav"); precache_sound("QTM_CodMod/start2.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 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]) { WybierzKlase(id); return PLUGIN_CONTINUE; } DajBronie(id); ZastosujAtrybuty(id); if(punkty_gracza[id] > 0) PrzydzielPunkty(id); return PLUGIN_CONTINUE; } 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))); maksymalne_zdrowie_gracza[id] = 100.0+PobierzZdrowie(id, 1, 1, 1); szybkosc_gracza[id] = STANDARDOWA_SZYBKOSC+PobierzKondycje(id, 1, 1, 1)*1.3; 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; Display_Fade(id, 1<<9, 1<<9, 1<<12, 0, 255, 70, 100); set_task(0.1, "UstawSzybkosc", id+ZADANIE_USTAW_SZYBKOSC); switch(get_user_team(id)) { case 1: client_cmd(id, "spk QTM_CodMod/start2"); case 2: client_cmd(id, "spk QTM_CodMod/start"); } } } 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 doswiadczenie_za_zabojstwo = get_pcvar_num(cvar_doswiadczenie_za_zabojstwo); new nowe_doswiadczenie = get_pcvar_num(cvar_doswiadczenie_za_zabojstwo); if(poziom_gracza[id] > poziom_gracza[attacker]) nowe_doswiadczenie += (poziom_gracza[id]-poziom_gracza[attacker])*(doswiadczenie_za_zabojstwo/10); if(!perk_gracza[attacker]) UstawPerk(attacker, -1, -1, 1); doswiadczenie_gracza[attacker] += nowe_doswiadczenie; } SprawdzPoziom(attacker); return HAM_IGNORED; } public MessageHealth(msg_id, msg_dest, msg_entity) { static health; health = get_msg_arg_int(1); if (health < 256) return; if (!(health % 256)) set_pev(msg_entity, pev_health, pev(msg_entity, pev_health)-1); set_msg_arg_int(1, get_msg_argtype(1), 255); } public client_authorized(id) { UsunUmiejetnosci(id); get_user_name(id, nazwa_gracza[id], 63); UsunZadania(id); set_task(10.0, "PokazReklame", id+ZADANIE_POKAZ_REKLAME); } public client_disconnect(id) { ZapiszDane(id); UsunUmiejetnosci(id); UsunZadania(id); } 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; client_print(id, print_chat, "[COD:MW] Dostales %i doswiadczenia za wygrana runde.", 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); client_print(id, print_chat, "Perk: %s.", nazwy_perkow[perk]); client_print(id, print_chat, "Opis: %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 menu = menu_create("Wybierz klase:", "OpisKlasy_Handle"); for(new i=1; i <= ilosc_klas; i++) menu_additem(menu, nazwy_klas[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 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), "\yKlasa: \w%s^n\yInteligencja: \w%i^n\yZdrowie: \w%i^n\yWytrzymalosc: \w%i^n\yKondycja: \w%i^n\yBronie:\w%s^n\yDodatkowy opis: \w%s^n%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); return PLUGIN_CONTINUE; } public WybierzKlase(id) { new menu = menu_create("Wybierz klase:", "WybierzKlase_Handle"); new klasa[50]; for(new i=1; i <= ilosc_klas; i++) { WczytajDane(id, i); format(klasa, charsmax(klasa), "%s \yPoziom: %i", nazwy_klas[i], poziom_gracza[id]); menu_additem(menu, klasa); } 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]) client_print(id, print_chat, "[COD:MW] Klasa zostanie zmieniona w nastepnej rundzie."); else { UstawNowaKlase(id); DajBronie(id); ZastosujAtrybuty(id); } return PLUGIN_CONTINUE; } public PrzydzielPunkty(id) { new inteligencja[65]; new zdrowie[60]; new wytrzymalosc[60]; new kondycja[60]; new tytul[25]; new allkondycja[60]; new allinteligencja[60]; new allwytrzymalosc[60]; new allzdrowie[60]; new kondycjaa[60]; new wytrzymalosca[60]; new zdrowiea[60]; new inteligencjaa[60]; format(inteligencja, charsmax(inteligencja), "Inteligencja: \r%i \y(Zwieksza sile przedmiotow i umiejetnosci klasy)", inteligencja_gracza[id]); format(zdrowie, charsmax(zdrowie), "Zdrowie: \r%i \y(Zwieksza zdrowie)", zdrowie_gracza[id]); format(wytrzymalosc, charsmax(wytrzymalosc), "Wytrzymalosc: \r%i \y(Zmniejsza obrazenia)", wytrzymalosc_gracza[id]); format(kondycja, charsmax(kondycja), "Kondycja: \r%i \y(Zwieksza tempo chodu)", kondycja_gracza[id]); format(tytul, charsmax(tytul), "Przydziel Punkty(%i):", punkty_gracza[id]); format(allinteligencja, charsmax(allinteligencja), "Dodaj wszystko w inteligencje"); format(allkondycja, charsmax(allkondycja), "Dodaj wszystko w kondycje"); format(allzdrowie, charsmax(allzdrowie), "Dodaj wszystko w zdrowie"); format(allwytrzymalosc, charsmax(allwytrzymalosc), "Dodaj wszystko w wytrzymalosc"); format(kondycjaa, charsmax(kondycjaa), "Dodaj 10 punktow w kondycje"); format(zdrowiea, charsmax(zdrowiea), "Dodaj 10 punktow w zdrowie"); format(inteligencjaa, charsmax(inteligencjaa), "Dodaj 10 punktow w inteligencje"); format(wytrzymalosca, charsmax(wytrzymalosca), "Dodaj 10 punktow w wytrzymalosc"); new menu = menu_create(tytul, "PrzydzielPunkty_Handler"); menu_additem(menu, inteligencja); menu_additem(menu, zdrowie); menu_additem(menu, wytrzymalosc); menu_additem(menu, kondycja); menu_additem(menu, inteligencjaa); menu_additem(menu, zdrowiea); menu_additem(menu, wytrzymalosca); menu_additem(menu, kondycjaa); menu_additem(menu, allinteligencja); menu_additem(menu, allzdrowie); menu_additem(menu, allwytrzymalosc); menu_additem(menu, allkondycja); menu_setprop(menu, MPROP_EXITNAME, "Wyjdz"); menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona"); menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona"); menu_display(id, menu); #if defined BOTY if(is_user_bot2(id)) PrzydzielPunkty_Handler(id, menu, random_num(8, 11)); #endif } 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 limit_int, limit_kon, limit_wyt, limit_zdr; limit_int = 5000; limit_kon = 500; limit_wyt = 10000; limit_zdr = 10000; switch(item) { case 0: { if(inteligencja_gracza[id] < limit_int) { inteligencja_gracza[id]++; punkty_gracza[id]--; } else client_print(id, print_chat, "[COD:MW] Maksymalny poziom inteligencji osiagniety"); } case 1: { if(zdrowie_gracza[id] < limit_zdr) { zdrowie_gracza[id]++; punkty_gracza[id]--; } else client_print(id, print_chat, "[COD:MW] Maksymalny poziom zdrowia osiagniety"); } case 2: { if(wytrzymalosc_gracza[id] < limit_wyt) { wytrzymalosc_gracza[id%
Jeżeli dacie radę to proszę o skompilowanie tego do pliku amxx, lub ewentualnie poprawienie błędów.
W załączniku daje mój plik sma
Załączone pliki
Qunir
30.03.2014
Ten silnik który posiadasz jest ucięty w połowie wiele rzeczy zostało skasowane które są potrzebne do kompilacji prawidłowej.
Neshi
30.03.2014
a mógłbym prosić o taki nowy QTM z całym silnikiem? + jeszcze chciałbym mieć dodane rozdawanie statystyk np po 10,100,1000
Maniek974
30.03.2014
Trzymaj czysty silnik + szybkie rozdawanie statystyk.
Resztę plików pobierzesz z tego tematu:
http://amxx.pl/topic...-mw-mod-update/
Załączone pliki
Qunir
30.03.2014
Proszę bardzo silnik: http://amxx.pl/topic...-mw-mod-update/
Z dodanym na rozdawaniem statystyk: 1, 10, 20, 50, 100, 200
QTM_CodMod.sma 39,51 KB
100 Ilość pobrań
Neshi
30.03.2014
ok wielkie dzięki lecą +, tutaj już się wszystko powinno skompilować jak należy?
ps: czy jakieś inne pliki z wyjątkiem QTM_CodMod sma i amxx będą potrzebne czy tylko te 2 wgrać i już?
Użytkownik Neshi edytował ten post 30.03.2014 18:36
Neshi
30.03.2014
aaa i jeszcze powiedzcie jak tutaj ustawić limit statystyk czyli np żeby nie było max 10k inta tylko 5k
Qunir
30.03.2014
aaa i jeszcze powiedzcie jak tutaj ustawić limit statystyk czyli np żeby nie było max 10k inta tylko 5k
Przepraszam źle zrozumiałem twoje zdanie. Chcesz aby jeszcze dodać maksymalną możliwość dodania PKT do inteligencji, wytrzymałość i tak dalej?
Użytkownik Qunir edytował ten post 30.03.2014 19:16
Neshi
30.03.2014
teraz na tym czystym silniku mogę dawać nielimitowaną ilość inta w grze itd, a chciałbym to ograniczyć do powiedzmy 5k max i gdy osiągnę 5k inta to żeby wywalał napis że maxymalny poziom inteligencji został osągnięty mogło by to wyglądać tak
limit hp 10k
limit inta 5k
limit kondycji 500
limit wytrzymalosci 10k
tak mają wyglądać maxymalne statystyki w grze tzn żeby nie dało się dać więcej niż 5k inta, więcej niż 10k hp itd
Użytkownik Neshi edytował ten post 30.03.2014 19:23
Qunir
31.03.2014
Proszę bardzo. Dodatkowo będziesz mógł sam ustawić sobie cvar co jaką ma mieć max w dodaniu. Nie miałem czasy tylko przetestować w razie czego napiszesz jakby coś nie działało, lecz wszystko powinno być dobrze:
Cvar:
cod_limit_int 150 cod_limit_kon 150 cod_limit_wyt 150 cod_limit_zdr 150
QTM_CodMod.sma 40,15 KB
85 Ilość pobrań