Otóż próbowałem przerobić vipa, dodać kilka innych profesji, aż do momentu gdy przy profesji Trucizna wyskoczyły błędy oraz przy regeneracji HP
Oto .sma:
/* Changelog: 19.02.2012r. 1.0 beta 13.03.2012r. 1.1 beta - dodanie możliwości zapisu wybranej opcji (nvault) i upiększenie menu */ #include <amxmodx> #include <amxmisc> #include <hamsandwich> #include <cstrike> #include <fun> #include <fakemeta> #include <engine> #include <colorchat> #include <nvault> #include <fakemeta_util> #define PLUGIN "Vip JailBreak" #define VERSION "1.1" #define AUTHOR "KreC!K" #define ZADANIE_WSKRZES 6240 #define VIPS #define GRAWITACJA 0.5 #define FLAGA ADMIN_LEVEL_G //#define ZAPIS #define MAX 32 //Max number of valid player entities #pragma tabsize 0 #if defined VIPS new maxplayers #endif #if defined ZAPIS new vault #endif new wybor_gracza[33] new skoki2[33] new freeze[33] new zamrozenie[33] new morfina[33] new niewidzialnosc[33] new odbicie[33] new wartosc_odbicia[33] new regeneracja[33] new g_msg_screenfade #define TASK_ID 128000 #define CZAS_LADOWANIA 10 // Jak dlugo ma sie ladowac moc w s new moc_zaladowana[33] new zatrucie[33] new msg_bartime new player_b_eye[33] = 0 //Ability to place camera new sprite_line = 0 enum { Brak = 0, Grawitacja, Regeneracja, Skoki, Morfina, Zamrozenie, Duszek, Gumowy, Trucizna, Kamera } public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /vip_menu", "menu_cmd") #if defined VIPS maxplayers = get_maxplayers() register_clcmd("say /vips", "print_vips", 0); register_clcmd("say /vipy", "print_vips", 0); register_clcmd("say /vipinfo", "MOTD") #endif RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1) RegisterHam(Ham_TakeDamage, "player", "TakeDamage", 1) RegisterHam(Ham_Killed, "player", "Killed", 1); register_forward(FM_CmdStart, "CmdStart"); register_forward(FM_PlayerPreThink, "client_PreThink"); register_forward(FM_PlayerPreThink, "regeneration_health", 1); register_event("CurWeapon", "CurWeapon", "be", "1=1"); register_event("ResetHUD", "ResetHUD", "abe"); register_event("Damage", "Damage", "be", "2!0", "3=0", "4!0"); register_think("PlayerCamera","Think_PlayerCamera"); msg_bartime = get_user_msgid("BarTime"); g_msg_screenfade = get_user_msgid("ScreenFade"); #if defined ZAPIS vault=nvault_open("Menu") if (vault == INVALID_HANDLE) set_fail_state( "Nie moge otworzyc pliku :/"); #endif } #if defined ZAPIS public client_connect(id) { load_wybor(id) } #endif public menu_cmd(id) { if(get_user_flags(id) & ADMIN_LEVEL_G) { if(cs_get_user_team(id) == CS_TEAM_T) { new tytul[128], name[32], wybor[128] if(wybor_gracza[id] == Brak) format(wybor, 127, "\ybrak.") if(wybor_gracza[id] == Grawitacja) format(wybor, 127, "\ygrawitacja.") if(wybor_gracza[id] == Skoki) format(wybor, 127, "\ypodwojny skok.") if(wybor_gracza[id] == Duszek) format(wybor, 127, "\yniewidzialnosc.") if(wybor_gracza[id] == Gumowy) format(wybor, 127, "\ygumowy pancerz.") if(wybor_gracza[id] == Trucizna) format(wybor, 127, "\yzatruwasz.") get_user_name(id, name, 31) format(tytul, 127, "\y%s, \rwitaj w menu do zarzadzania Vip'em\d by KreC!K^n\wTwoja aktualnie uzyta opcja to: %s", name, wybor) new menu = menu_create(tytul, "menu_tt") menu_additem(menu, "Grawitacja") // item = 0 menu_additem(menu, "Podwojny skok") // item = 1 menu_additem(menu, "Widzialnosc [10/255] gdy sie nie ruszasz") // item = 2 menu_additem(menu, "Gumowy Pancerz [1/5] na odbicie pocisku") // item = 3 menu_additem(menu, "Po zaladowaniu noza [10s],[1/6],[8dmg/5s] na zatrucie") // item = 4 #if defined ZAPIS menu_additem(menu, "\rZapisz swoja wybrana opcje\d(bedzie ona wczytana przy kazdym polaczeniu z serwerem [mozna zmienic])") #endif menu_display(id, menu, 0) } else if(cs_get_user_team(id) == CS_TEAM_CT) { new tytul[128], name[32], wybor[128] if(wybor_gracza[id] == Brak) format(wybor, 127, "\ybrak.") if(wybor_gracza[id] == Grawitacja) format(wybor, 127, "\ygrawitacja.") if(wybor_gracza[id] == Regeneracja) format(wybor, 127, "\yregeneracja.") if(wybor_gracza[id] == Skoki) format(wybor, 127, "\ypodwojny skok.") if(wybor_gracza[id] == Morfina) format(wybor, 127, "\ymorfina.") if(wybor_gracza[id] == Zamrozenie) format(wybor, 127, "\yzamrozenie.") if(wybor_gracza[id] == Kamera) format(wybor, 127, "\ykamera.") get_user_name(id, name, 31) format(tytul, 127, "\y%s, \rwitaj w menu do zarzadzania Vip'em\d by KreC!K^n\wTwoja aktualnie uzyta opcja to: %s", name, wybor) new menu = menu_create(tytul, "menu_ct") menu_additem(menu, "Grawitacja") // item = 0 menu_additem(menu, "Regeneracja HP na kucaniu z nozem [do 100HP]") // item = 0 menu_additem(menu, "Podwojny skok") // item = 1 menu_additem(menu, "Morfina [1/2]") // item = 2 menu_additem(menu, "Zamrozenie [1/4]") // item = 3 menu_additem(menu, "Kamera [E]") // item = 4 #if defined ZAPIS menu_additem(menu, "\rZapisz swoja wybrana opcje\d(bedzie ona wczytana przy kazdym polaczeniu z serwerem [mozna zmienic])") #endif menu_display(id, menu, 0) } } else client_print(id, print_chat, "[Vip] Nie masz dostepu do tej uslugi.") return 0 } public menu_tt(id, menu, item) { switch(item) { case 0:{ wybor_gracza[id] = Grawitacja ColorChat(id, BLUE, "^x04[^x03Vip^x04] ^x01Wybrales ^x04grawitacje^x01. Opcja ta bedzie dostepna w ^x03nastepnej rundzie.") } case 1:{ wybor_gracza[id] = Skoki ColorChat(id, BLUE, "^x04[^x03Vip^x04] ^x01Wybrales ^x04podwojny skok^x01. Opcja ta bedzie dostepna w ^x03nastepnej rundzie.") } case 2:{ wybor_gracza[id] = Duszek ColorChat(id, BLUE, "^x04[^x03Vip^x04] ^x01Wybrales ^x04duszka, nie ruszaj sie by utrzymac niska widzialnosc!^x01. Opcja ta bedzie dostepna w ^x03nastepnej rundzie.") } case 3:{ wybor_gracza[id] = Gumowy ColorChat(id, BLUE, "^x04[^x03Vip^x04] ^x01Wybrales ^x04gumowy pancerz 1/5 na odbicie pocisku^x01. Opcja ta bedzie dostepna w ^x03nastepnej rundzie.") } case 4:{ wybor_gracza[id] = Trucizna ColorChat(id, BLUE, "^x04[^x03Vip^x04] ^x01Wybrales ^x04Trucizne i po zaladowaniu noza(10s) masz 1/6 na zabranie 8dmg co 5sek po trafieniu w straznika^x01. Opcja ta bedzie dostepna w ^x03nastepnej rundzie.") } #if defined ZAPIS case 5:{ save_wybor(id) ColorChat(id, BLUE, "^x04[^x03Vip^x04] ^x01Wlasnie zapisano ^x04Twoj ^x03wybor.") } #endif } } public menu_ct(id, menu, item) { switch(item) { case 0:{ wybor_gracza[id] = Grawitacja ColorChat(id, BLUE, "^x04[^x03Vip^x04] ^x01Wybrales ^x04grawitacje^x01. Opcja ta bedzie dostepna w ^x03nastepnej rundzie.") } case 1:{ wybor_gracza[id] = Regeneracja ColorChat(id, BLUE, "^x04[^x03Vip^x04] ^x01Wybrales ^x04 regeneracje, kucnij z nozem zeby zregenerowac do 100HP^x01. Opcja ta bedzie dostepna w ^x03nastepnej rundzie.") } case 2:{ wybor_gracza[id] = Skoki ColorChat(id, BLUE, "^x04[^x03Vip^x04] ^x01Wybrales ^x04podwojny skok^x01. Opcja ta bedzie dostepna w ^x03nastepnej rundzie.") } case 3:{ wybor_gracza[id] = Morfina ColorChat(id, BLUE, "^x04[^x03Vip^x04] ^x01Wybrales ^x04morfine^x01. Opcja ta bedzie dostepna w ^x03nastepnej rundzie.") } case 4:{ wybor_gracza[id] = Zamrozenie ColorChat(id, BLUE, "^x04[^x03Vip^x04] ^x01Wybrales ^x04zamrozenie^x01. Opcja ta bedzie dostepna w ^x03nastepnej rundzie.") } case 5:{ wybor_gracza[id] = Kamera ColorChat(id, BLUE, "^x04[^x03Vip^x04] ^x01Wybrales ^x04kamere, stawiasz na (E) i potem widok kamera/normal na (E)^x01. Opcja ta bedzie dostepna w ^x03nastepnej rundzie.") } #if defined ZAPIS case 6:{ save_wybor(id) ColorChat(id, BLUE, "^x04[^x03Vip^x04] ^x01Wlasnie zapisano ^x04Twoj ^x03wybor.") } #endif } } public Odrodzenie(id) { if(wybor_gracza[id] == Grawitacja && (get_user_flags(id) & ADMIN_LEVEL_G)) set_user_gravity(id, GRAWITACJA) set_user_rendering(id, kRenderFxNone, 255,0,0, kRenderTransAlpha, 999) if(wybor_gracza[id] == Regeneracja && cs_get_user_team(id) == CS_TEAM_CT && (get_user_flags(id) & ADMIN_LEVEL_G)) if(is_user_alive(id)) set_user_rendering(id, kRenderFxNone, 0,0,0, kRenderTransAlpha, 999) if(wybor_gracza[id] == Zamrozenie && cs_get_user_team(id) == CS_TEAM_CT && (get_user_flags(id) & ADMIN_LEVEL_G)) set_user_rendering(id, kRenderFxNone, 0,0,0, kRenderTransAlpha, 999) if(wybor_gracza[id] == Morfina && cs_get_user_team(id) == CS_TEAM_CT && (get_user_flags(id) & ADMIN_LEVEL_G)) if(wybor_gracza[id] == Duszek && cs_get_user_team(id) == CS_TEAM_T && (get_user_flags(id) & ADMIN_LEVEL_G)) if(wybor_gracza[id] == Gumowy && cs_get_user_team(id) == CS_TEAM_T && (get_user_flags(id) & ADMIN_LEVEL_G)) wartosc_odbicia[id] = 3; if(wybor_gracza[id] == Trucizna && cs_get_user_team(id) == CS_TEAM_T && (get_user_flags(id) & ADMIN_LEVEL_G)) if(wybor_gracza[id] == Kamera && cs_get_user_team(id) == CS_TEAM_CT && (get_user_flags(id) & ADMIN_LEVEL_G)) //////////////do skoków if(wybor_gracza[id] == Skoki && (get_user_flags(id) & ADMIN_LEVEL_G)) skoki2[id] = 1 if(wybor_gracza[id] != Skoki) skoki2[id] = 0 ////////////// i koniec //////////////do freeza if(wybor_gracza[id] == Zamrozenie && (get_user_flags(id) & ADMIN_LEVEL_G)) freeze[id] = 1 if(wybor_gracza[id] != Zamrozenie) freeze[id] = 0 ////////////// i koniec //////////////do morfiny if(wybor_gracza[id] == Morfina && (get_user_flags(id) & ADMIN_LEVEL_G)) morfina[id] = 1 if(wybor_gracza[id] != Morfina) morfina[id] = 0 ////////////// i koniec //////////////do duszka if(wybor_gracza[id] == Duszek && (get_user_flags(id) & ADMIN_LEVEL_G)) niewidzialnosc[id] = 1 if(wybor_gracza[id] != Duszek) niewidzialnosc[id] = 0 ////////////// i koniec //////////////do gumowego pancerza if(wybor_gracza[id] == Gumowy && (get_user_flags(id) & ADMIN_LEVEL_G)) odbicie[id] = 1 if(wybor_gracza[id] != Duszek) odbicie[id] = 0 ////////////// i koniec //////////////do trucizny if(wybor_gracza[id] == Trucizna && (get_user_flags(id) & ADMIN_LEVEL_G)) zatrucie[id] = 1 if(wybor_gracza[id] != Trucizna) zatrucie[id] = 0 ////////////// i koniec //////////////do trucizny if(wybor_gracza[id] == Kamera && (get_user_flags(id) & ADMIN_LEVEL_G)) player_b_eye[id] = 1 if(wybor_gracza[id] != Kamera) player_b_eye[id] = 0 ////////////// i koniec //////////////do regeneracji if(wybor_gracza[id] == Regeneracja && (get_user_flags(id) & ADMIN_LEVEL_G)) regeneracja[id] = 1 if(wybor_gracza[id] != Regeneracja) regeneracja[id] = 0 ////////////// i koniec } public plugin_precache() { precache_model("models/rpgrocket.mdl") sprite_line = precache_model("sprites/dot.spr") } public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { new liczba = random_num(1, 4) if(!is_user_connected(idattacker)) return HAM_IGNORED; if(!freeze[idattacker]) return HAM_IGNORED; if(freeze[idattacker] && damage>0 && !zamrozenie[this] && liczba==4){ fm_set_rendering(this, kRenderFxGlowShell, 0,0,255, kRenderGlow, 60) zamrozenie[this] = true set_pev(this, pev_flags, FL_FROZEN) set_task(5.0, "Odmroz", this) } if(zamrozenie[this]) return HAM_SUPERCEDE return HAM_IGNORED } public Odmroz(id) { set_pev(id, pev_flags, FL_CLIENT) fm_set_rendering(id, kRenderFxGlowShell, 0,0,0, kRenderGlow, 100) zamrozenie[id] = false } public CmdStart(id, uc_handle) { static moze_skoczyc; if(!is_user_alive(id) || !(get_user_flags(id) & ADMIN_LEVEL_G)) return FMRES_IGNORED; if(skoki2[id] == 1 && (get_user_flags(id) & ADMIN_LEVEL_H)) { new button = get_uc(uc_handle, UC_Buttons); new oldbutton = pev(id, pev_oldbuttons); new flags = pev(id, pev_flags); if((button & IN_JUMP) && !(flags & FL_ONGROUND) && !(oldbutton & IN_JUMP) && moze_skoczyc & (1<<id)) { moze_skoczyc &= ~(1<<id) new Float:velocity[3]; pev(id, pev_velocity, velocity); velocity[2] = random_float(265.0,285.0); set_pev(id, pev_velocity, velocity); } else if(flags & FL_ONGROUND){ moze_skoczyc |= (1<<id) } } return FMRES_IGNORED; } #if defined VIPS public print_vips(user) { new adminnames[33][32] new message[256] new id, count, x, len for(id = 1 ; id <= maxplayers ; id++) if(is_user_connected(id)) if(get_user_flags(id) & FLAGA) get_user_name(id, adminnames[count++], 31) len = format(message, 255, "^x04 VIPY ONLINE: ") if(count > 0) { for(x = 0 ; x < count ; x++) { len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"") if(len > 96 ) { ColorChat(user, GREEN, "%s", message); len = format(message, 255, "^x04 ") } } ColorChat(user, GREEN, "%s", message); } else { len += format(message[len], 255-len, "Brak Vipow ONLINE") ColorChat(user, GREEN, "%s", message); } } #endif public MOTD( id,level,cid ) { if ( !cmd_access(id,level,cid,1) ) return PLUGIN_CONTINUE show_motd( id,"vip.txt","Informacje VIP." ); return PLUGIN_CONTINUE } public client_disconnect(id){ wybor_gracza[id] = Brak } #if defined ZAPIS public plugin_end() nvault_close(vault) public load_wybor(id) { new name[35] get_user_name(id,name,34) new vaultkey[64],vaultdata[256] format(vaultkey,63,"%s-wybor",name) format(vaultdata,255,"%d",wybor_gracza[id]) nvault_get(vault,vaultkey,vaultdata,255) new wybortemp[33] parse(vaultdata,wybortemp, 32) wybor_gracza[id]=str_to_num(wybortemp) return PLUGIN_CONTINUE } public save_wybor(id){ new name[35] get_user_name(id,name,34) new vaultkey[64],vaultdata[256] format(vaultkey,63,"%s-wybor",name) format(vaultdata,255,"%d", wybor_gracza[id]) nvault_set(vault,vaultkey,vaultdata) return PLUGIN_CONTINUE } #endif public Killed(id) { if(morfina[id] && random_num(1,3) == 1) set_task(0.1, "Wskrzes", id+ZADANIE_WSKRZES); } public Wskrzes(id) ExecuteHamB(Ham_CS_RoundRespawn, id-ZADANIE_WSKRZES); public client_PreThink ( id ) { //USE Button actives USEMAGIC if (pev(id,pev_button) & IN_USE ) Use_Spell(id) return; new button2 = get_user_button(id); //USE Button actives forward\backward\left\right if (niewidzialnosc[id] && get_entity_flags(id) & FL_ONGROUND && (!(button2 & (IN_FORWARD+IN_BACK+IN_MOVELEFT+IN_MOVERIGHT)) && is_user_alive(id))) { set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 10); } else set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255); return; if(!task_exists(id+TASK_ID)) return; if(pev(id, pev_button) & (IN_MOVELEFT+IN_MOVERIGHT+IN_FORWARD+IN_BACK+IN_JUMP+IN_DUCK)) { change_task(id+TASK_ID, CZAS_LADOWANIA.0); set_bartime(id, CZAS_LADOWANIA); } } public CurWeapon(id) { if(get_user_weapon(id) == CSW_KNIFE && !moc_zaladowana[id] && zatrucie[id]) { set_task(CZAS_LADOWANIA.0, "MocZaladowana", id+TASK_ID); set_bartime(id, CZAS_LADOWANIA); } else { remove_task(id+TASK_ID); set_bartime(id, 0); } } stock set_bartime(id, czas) { message_begin((id)?MSG_ONE:MSG_ALL, msg_bartime, _, id) write_short(czas); message_end(); } public MocZaladowana(id) { id -= TASK_ID; if(!zatrucie[id]) return; moc_zaladowana[id] = true; client_print(id, print_center, "Umiejetnosc zostala aktywowana!"); CurWeapon(id); } public ResetHUD(id) moc_zaladowana[id] = false; #define TASK_ZATRUCIE 64000 new zatruwajacy[33]; public Damage(id) { new attacker = get_user_attacker(id); if(!is_user_alive(attacker)) return; if(!moc_zaladowana[attacker]) return; zatruwajacy[id] = attacker; if(!task_exists(id+TASK_ZATRUCIE)) set_task(1.0, "Zatruj", id+TASK_ZATRUCIE, _, _, "a", 5); new idattacker = get_user_attacker(id); if(!is_user_connected(idattacker) || get_user_team(id) == get_user_team(idattacker)) return; if(odbicie[idattacker] && random_num(1, wartosc_odbicia[idattacker]) == 1) Display_Fade(id, 1<<14, 1<<14 ,1<<16, 0, 255, 0, 230); return; } stock Display_Fade(id,duration,holdtime,fadetype,red,green,blue,alpha) { message_begin( MSG_ONE, g_msg_screenfade,{0,0,0},id ); write_short( duration ); write_short( holdtime ); write_short( fadetype ); write_byte ( red ); write_byte ( green ); write_byte ( blue ); write_byte ( alpha ); message_end(); } public Zatruj(id) { id -= TASK_ZATRUCIE; client_print(id, print_center, "Zostales zatruty!!"); ExecuteHamB(!zatruwajacy[id], id, 8.0, 0.0); } public Use_Spell(id) { if (player_b_eye[id] != 0) item_eye(id) return PLUGIN_HANDLED } public item_eye(id) { if (player_b_eye[id] == -1) { //place camera new Float:playerOrigin[3] entity_get_vector(id,EV_VEC_origin,playerOrigin) new ent = create_entity("info_target") entity_set_string(ent, EV_SZ_classname, "PlayerCamera") entity_set_int(ent, EV_INT_movetype, MOVETYPE_NOCLIP) entity_set_int(ent, EV_INT_solid, SOLID_NOT) entity_set_edict(ent, EV_ENT_owner, id) entity_set_model(ent, "models/rpgrocket.mdl") //Just something entity_set_origin(ent,playerOrigin) entity_set_int(ent,EV_INT_iuser1,0) //Viewing through this camera set_rendering (ent,kRenderFxNone, 0,0,0, kRenderTransTexture,0) entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.01) player_b_eye[id] = ent } else { //view through camera or stop viewing new ent = player_b_eye[id] if (!is_valid_ent(ent)) { attach_view(id,id) return PLUGIN_HANDLED } new viewing = entity_get_int(ent,EV_INT_iuser1) if (viewing) { entity_set_int(ent,EV_INT_iuser1,0) attach_view(id,id) } else { entity_set_int(ent,EV_INT_iuser1,1) attach_view(id,ent) } } return PLUGIN_HANDLED } /* ==================================================================================================== */ //Called when PlayerCamera thinks public Think_PlayerCamera(ent) { new id = entity_get_edict(ent,EV_ENT_owner) //Check if player is still having the item and is still online if (!is_valid_ent(id) || player_b_eye[id] == 0 || !is_user_connected(id)) { //remove entity if (is_valid_ent(id) && is_user_connected(id)) attach_view(id,id) remove_entity(ent) } else { //Dont use cpu when not alive anyway or not viewing if (!is_user_alive(id)) { entity_set_float(ent,EV_FL_nextthink,halflife_time() + 3.0) return PLUGIN_HANDLED } if (!entity_get_int(ent,EV_INT_iuser1)) { entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.5) return PLUGIN_HANDLED } entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.01) //Find nearest player to camera new Float:pOrigin[3],Float:plOrigin[3],Float:ret[3] entity_get_vector(ent,EV_VEC_origin,plOrigin) new Float:distrec = 2000.0, winent = -1 for (new i=0; i<MAX; i++) { if (is_user_connected(i) && is_user_alive(i)) { entity_get_vector(i,EV_VEC_origin,pOrigin) pOrigin[2]+=10.0 if (trace_line ( 0, plOrigin, pOrigin, ret ) == i && vector_distance(pOrigin,plOrigin) < distrec) { winent = i distrec = vector_distance(pOrigin,plOrigin) } } } //Traceline and updown is still revresed if (winent > -1) { new Float:toplayer[3], Float:ideal[3],Float:pOrigin[3] entity_get_vector(winent,EV_VEC_origin,pOrigin) pOrigin[2]+=10.0 toplayer[0] = pOrigin[0]-plOrigin[0] toplayer[1] = pOrigin[1]-plOrigin[1] toplayer[2] = pOrigin[2]-plOrigin[2] vector_to_angle ( toplayer, ideal ) ideal[0] = ideal[0]*-1 entity_set_vector(ent,EV_VEC_angles,ideal) } } return PLUGIN_CONTINUE } public Create_Line(id,origin1[3],origin2[3],bool:draw) { if (draw) { message_begin(MSG_ONE,SVC_TEMPENTITY,{0,0,0},id) write_byte(0) write_coord(origin1[0]) // starting pos write_coord(origin1[1]) write_coord(origin1[2]) write_coord(origin2[0]) // ending pos write_coord(origin2[1]) write_coord(origin2[2]) write_short(sprite_line) // sprite index write_byte(1) // starting frame write_byte(5) // frame rate write_byte(2) // life write_byte(3) // line width write_byte(0) // noise write_byte(255) // RED write_byte(50) // GREEN write_byte(50) // BLUE write_byte(155) // brightness write_byte(5) // scroll speed message_end() } new Float:ret[3],Float:fOrigin1[3],Float:fOrigin2[3] //So we dont hit ourself origin1[2]+=50 IVecFVec(origin1,fOrigin1) IVecFVec(origin2,fOrigin2) new hit = trace_line ( 0, fOrigin1, fOrigin2, ret ) return hit } //Przy kucaniu public regeneration_health(id) { if((!regeneracja[id]) && is_user_alive(id)) return; new button = get_user_button(id); if( button & IN_DUCK && get_user_weapon(id) == CSW_KNIFE) { if(get_user_health(id) > 100+cod_get_user_health( id, 1, 1, 1 )) return; else give_max_hp(id) } } public give_max_hp(id) set_user_health(id,get_user_health(id)+1)
A oto wyskakujące błędy podczas kompilacji:
Welcome to the AMX Mod X 1.8.1-300 Compiler. Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team abc.sma(478) : warning 225: unreachable code abc.sma(490) : warning 225: unreachable code abc.sma(599) : warning 213: tag mismatch abc.sma(764) : error 017: undefined symbol "cod_get_user_health" 1 Error. Could not locate output file abc.amxx (compile failed).
Wiadomo niektóre profesje a praktycznie większość są brane z perków/klas ale w większości nie było z tym problemu i działało (kwestia zmiany z new bool:ma_perk[33] na np. new zatrucie[33] ale z powyższymi błędami nie potrafię sobie poradzić i stąd proszę o pomoc
Nie wiem czy w dobrym dziale, myślę, że tak
Oczywiście zasłużony "+" dla osoby której uda się z tym uporać