1.Revenant Fire
- | Afiseaza codul
L 11/05/2014 - 16:43:46: Start of error session. L 11/05/2014 - 16:43:46: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20141105.log") L 11/05/2014 - 16:43:46: [HAMSANDWICH] Function fw_Weapon_Deploy_Post not found. L 11/05/2014 - 16:43:46: [AMXX] Displaying debug trace (plugin "azp_class_revenant_fire.amxx") L 11/05/2014 - 16:43:46: [AMXX] Run time error 10: native error (native "RegisterHam") L 11/05/2014 - 16:43:46: [AMXX] [0] azp_class_revenant_fire.sma::plugin_init (line 80)
- | Afiseaza codul
L 11/05/2014 - 16:42:43: Start of error session. L 11/05/2014 - 16:42:43: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20141105.log") L 11/05/2014 - 16:42:43: [ENGINE] Invalid entity 115 L 11/05/2014 - 16:42:43: [AMXX] Displaying debug trace (plugin "azp_class_revenant_ice.amxx") L 11/05/2014 - 16:42:43: [AMXX] Run time error 10: native error (native "entity_set_float") L 11/05/2014 - 16:42:43: [AMXX] [0] azp_class_revenant_ice.sma::ball_think (line 223)
Revenant Fire:
- | Afiseaza codul
#include <amxmodx> #include <engine> #include <fakemeta> #include <hamsandwich> #include <zombieplague> #include <cstrike> #include <fun> #include <xs> new const ball_name[] = "dragon_ball" new const ball_model[] = "models/w_hiddentail.mdl" new const ball_firespritemdl[] = "sprites/flame2.spr" new const ball_spriteexplodemdl[] = "sprites/zerogxplode.spr" new const zclass_name[] = { "Revenant Fire" } // name new const zclass_info[] = { "\r[ADMIN]" } // description new const zclass_model[] = { "zombie_revenant_fire" } // model new const zclass_clawmodel[] = { "v_knife_revenant_fire.mdl" } // claw model const zclass_health = 12000 // health const zclass_speed = 270 // speed const Float:zclass_gravity = 0.8 // gravity const Float:zclass_knockback = 0.10 // knockback //new const v_zombie_bomb_model[64] = "revenant" //new g_CurWeapon[33]//, g_bombmodelwpn[64] #define OFFSET_MODELINDEX 491 #define OFFSET_LINUX 5 new index, defaultindex new sprFlame, sprSmoke new g_zclassdragon new cvar_dragondmg, cvar_dragondelay, cvar_dragonvelocity, cvar_dragonballhealth, cvar_dragonballradius, cvar_dragonballpower, cvar_burndmg, cvar_burntime, cvar_burn new g_msgScreenShake, g_smoke, sTrail, ball_firesprite, ball_spriteexplode, g_explode[512], g_can[33], g_msgScoreInfo, g_roundend, bool:g_AlreadyBurn[33], Time[33] new const WeaponNames[][] = { "", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10", "weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550", "weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249", "weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552", "weapon_ak47", "weapon_knife", "weapon_p90" } public plugin_init() { register_plugin("[ZP] Zombie Class: Dragon Zombie", "0.1", "=), LARS-BLOODLIKER") cvar_dragondelay = register_cvar("zp_classdragon_delay","15") cvar_dragondmg = register_cvar("zp_classdragonball_dmg","30.0") cvar_dragonvelocity = register_cvar("zp_classdragonball_velocity","1200") cvar_dragonballhealth = register_cvar("zp_classdragonball_health","1.0") cvar_dragonballradius = register_cvar("zp_classdragonball_radius","300.0") cvar_dragonballpower = register_cvar ( "zp_classdragonball_power", "800" ) cvar_burn = register_cvar ( "zp_classdragonball_enable", "1" ) cvar_burntime = register_cvar ( "zp_classdragonball_burntime", "5" ) cvar_burndmg = register_cvar ( "zp_classdragonball_burndmg", "2" ) register_touch(ball_name, "worldspawn", "touchWorld") register_touch(ball_name, "func_wall", "touchWorld") register_touch(ball_name, "func_door", "touchWorld") register_touch(ball_name, "func_door_rotating", "touchWorld") register_touch(ball_name, "func_wall_toggle", "touchWorld") register_touch(ball_name, "func_breakable", "touchWorld") register_think(ball_name,"ball_think") register_clcmd("drop","dragon_cmd") register_event("HLTV", "event_round_start", "a", "1=0", "2=0") RegisterHam(Ham_Killed, "player", "fw_PlayerKilled") g_msgScoreInfo = get_user_msgid("ScoreInfo") g_msgScreenShake = get_user_msgid("ScreenShake") //register_event("CurWeapon", "Event_CurrentWeapon", "be", "1=1") for(new i = 1; i < sizeof WeaponNames; i++) if(WeaponNames[0]) RegisterHam(Ham_Item_Deploy, WeaponNames, "fw_Weapon_Deploy_Post", 1) RegisterHam(Ham_Player_Duck, "player", "Player_Duck", 1) } public plugin_precache() { precache_model(ball_model) g_smoke = precache_model("sprites/steam1.spr") sTrail = precache_model("sprites/laserbeam.spr") ball_firesprite = precache_model(ball_firespritemdl) ball_spriteexplode = precache_model(ball_spriteexplodemdl) sprFlame = precache_model("sprites/flame.spr") sprSmoke = precache_model("sprites/black_smoke3.spr") g_zclassdragon = zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback) //formatex(g_bombmodelwpn, charsmax(g_bombmodelwpn), "models/zombie_plague/v_bomb_%s.mdl", v_zombie_bomb_model) //engfunc(EngFunc_PrecacheModel, g_bombmodelwpn) index = precache_model("models/player/zombie_revenant_fire/zombie_revenant_fire.mdl") defaultindex = precache_model("models/player.mdl") } public dragon_cmd( id ) { if(!is_user_alive(id) || !zp_get_user_zombie(id) || zp_get_user_zombie_class(id) != g_zclassdragon || zp_get_user_nemesis(id)) return PLUGIN_CONTINUE if(g_can[id]) { client_print(id,print_center,"You cannot use ability now. Wait %d sec.",g_can[id]) return PLUGIN_HANDLED } static Float:origin[3], Float:angles[3], Float:v_forward[3], Float:v_right[3], Float:v_up[3], Float:gun_position[3], Float:player_origin[3], Float:player_view_offset[3]; static Float:OriginX[3] pev(id, pev_v_angle, angles) pev(id, pev_origin, OriginX) engfunc(EngFunc_MakeVectors, angles) global_get(glb_v_forward, v_forward) global_get(glb_v_right, v_right) global_get(glb_v_up, v_up) pev(id, pev_origin, player_origin) pev(id, pev_view_ofs, player_view_offset) xs_vec_add(player_origin, player_view_offset, gun_position) xs_vec_mul_scalar(v_forward, 13.0, v_forward) xs_vec_mul_scalar(v_right, 0.0, v_right) xs_vec_mul_scalar(v_up, 5.0, v_up) xs_vec_add(gun_position, v_forward, origin) xs_vec_add(origin, v_right, origin) xs_vec_add(origin, v_up, origin) new Float:StartOrigin[3] StartOrigin[0] = origin[0] StartOrigin[1] = origin[1] StartOrigin[2] = origin[2] new Float:fVelocity[3] , Float:flOrigin[3] , Float:flAngle[3] pev(id,pev_origin,flOrigin) pev(id,pev_angles,flAngle) new ball = create_entity("info_target") if(!ball) return PLUGIN_HANDLED g_explode[ball] = 0 entity_set_string(ball, EV_SZ_classname, ball_name) entity_set_model(ball, ball_model) entity_set_origin(ball, StartOrigin) entity_set_vector(ball, EV_VEC_angles, flAngle) new Float:MinBox[3] = {-1.0, -1.0, -1.0} new Float:MaxBox[3] = {1.0, 1.0, 1.0} entity_set_vector(ball, EV_VEC_mins, MinBox) entity_set_vector(ball, EV_VEC_maxs, MaxBox) entity_set_int(ball, EV_INT_solid, SOLID_SLIDEBOX) entity_set_int(ball, EV_INT_movetype, MOVETYPE_TOSS) entity_set_edict(ball, EV_ENT_owner, id) entity_set_int(ball, EV_INT_effects, EF_BRIGHTLIGHT) VelocityByAim(id, get_pcvar_num(cvar_dragonvelocity), fVelocity) entity_set_vector(ball , EV_VEC_velocity, fVelocity) message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_BEAMFOLLOW) // Temporary entity ID write_short(ball) // Entity write_short(sTrail) // Sprite index write_byte(10) // Life write_byte(3) // Line width write_byte(255) // Red write_byte(150) // Green write_byte(20) // Blue write_byte(255) // Alpha message_end() entity_set_int(id, EV_INT_sequence, 10) //UTIL_PlayPlayerAnimation(id,10) UTIL_PlayWeaponAnimation(id,8) g_can[id] = get_pcvar_num(cvar_dragondelay) set_task(1.0,"ability_zero",id) entity_set_float(ball, EV_FL_health , get_pcvar_float(cvar_dragonballhealth)) entity_set_float(ball, EV_FL_nextthink, get_gametime() + 0.1) return PLUGIN_HANDLED } public touchWorld(ball, world) { new Float:v[3] entity_get_vector(ball, EV_VEC_velocity, v) v[0] = (v[0] * 0.85) v[1] = (v[1] * 0.85) v[2] = (v[2] * 0.85) entity_set_vector(ball, EV_VEC_velocity, v) return PLUGIN_HANDLED } public event_round_start() { new iEnt = FM_NULLENT while((iEnt = engfunc(EngFunc_FindEntityByString, iEnt, "classname", ball_name)) > 0) { engfunc(EngFunc_RemoveEntity,iEnt) } for(new i;i<=32;i++) { remove_task(i) g_can = 0 Time = 0 g_AlreadyBurn = false } g_roundend = 0 } public ball_think(ball) { if(!is_valid_ent(ball)) return new Float:oldangles[3],Float:angles[3] pev(ball,pev_angles,oldangles) angles[0] = oldangles[0] + random_float(20.0,100.0) angles[1] = oldangles[1] + random_float(10.0,80.0) angles[2] = oldangles[2] + random_float(10.0,80.0) set_pev(ball,pev_angles,angles) new Float:v[3] entity_get_vector(ball, EV_VEC_velocity, v) if(v[2] < 40.0 && v[1] < 40.0 && v[0] < 40.0) { if(!g_explode[ball]) { set_task(0.5,"firesprite_ball",ball) g_explode[ball] = 1 } entity_set_float(ball, EV_FL_health, entity_get_float(ball,EV_FL_health) - 0.2) if(entity_get_float(ball,EV_FL_health) <= 0.0) { ball_explode(ball) remove_entity(ball) g_explode[ball] = 0 return; } } entity_set_float(ball, EV_FL_nextthink, get_gametime() + 0.1) } public firesprite_ball(ball) { if(!is_valid_ent(ball)) return new Float:flOrigin[3] pev(ball,pev_origin,flOrigin) engfunc ( EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, flOrigin, 0 ) write_byte ( TE_SPRITE ) engfunc ( EngFunc_WriteCoord, flOrigin [ 0 ] ) engfunc ( EngFunc_WriteCoord, flOrigin [ 1 ] ) engfunc ( EngFunc_WriteCoord, flOrigin [ 2 ] + 45.0 ) write_short ( ball_firesprite ) write_byte ( 5 ) write_byte ( 185 ) message_end ( ) message_begin( MSG_BROADCAST, SVC_TEMPENTITY ) write_byte( TE_SMOKE ); engfunc ( EngFunc_WriteCoord, flOrigin [ 0 ] ) engfunc ( EngFunc_WriteCoord, flOrigin [ 1 ] ) engfunc ( EngFunc_WriteCoord, flOrigin [ 2 ] + 45.0 ) write_short( g_smoke ); write_byte( 10 ); write_byte( 10 ); message_end(); if(entity_get_float(ball,EV_FL_health) >= 1.0) set_task(0.5,"firesprite_ball",ball) } public ball_explode ( Entity ) { if ( Entity < 0 ) return static Float:flOrigin [ 3 ] pev ( Entity, pev_origin, flOrigin ) message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_EXPLOSION) // Temporary entity ID engfunc(EngFunc_WriteCoord, flOrigin[0]) // engfunc because float engfunc(EngFunc_WriteCoord, flOrigin[1]) engfunc(EngFunc_WriteCoord, flOrigin[2]) write_short(ball_spriteexplode) // Sprite index write_byte(50) // Scale write_byte(15) // Framerate write_byte(0) // Flags message_end() new iOwner = entity_get_edict ( Entity, EV_ENT_owner ) for ( new i = 1; i <= 32 ; i++ ) { if ( !is_user_alive ( i ) || zp_get_user_zombie( i )) continue new Float:flVictimOrigin [ 3 ] pev ( i, pev_origin, flVictimOrigin ) new Float:flDistance = get_distance_f ( flOrigin, flVictimOrigin ) if ( flDistance <= get_pcvar_float(cvar_dragonballradius) ) { static Float:flSpeed flSpeed = get_pcvar_float ( cvar_dragonballpower ) static Float:flNewSpeed flNewSpeed = flSpeed * ( 1.0 - ( flDistance / get_pcvar_float(cvar_dragonballradius) ) ) static Float:flVelocity [ 3 ] get_speed_vector ( flOrigin, flVictimOrigin, flNewSpeed, flVelocity ) set_pev ( i, pev_velocity,flVelocity ) message_begin(MSG_ONE, g_msgScreenShake, {0,0,0}, i) write_short(1<<14) // Amount write_short(1<<14) // Duration write_short(1<<14) // Frequency message_end() radius_damage_ab( flVictimOrigin, flOrigin , i , iOwner) if(!g_AlreadyBurn[ i ] && get_pcvar_num(cvar_burn ) == 1 ) { // Burn / ON g_AlreadyBurn[ i ] = true // Set burn time Time[ i ] = get_pcvar_num(cvar_burntime) // Burn victim Burn( i ) } } } } public radius_damage_ab(Float:originF[3] , Float:flOrigin[3] , iVictim , iAttacker) { if(g_roundend || !is_user_connected(iAttacker) || !is_user_connected(iVictim)) return; new Float:dist = get_distance_f(originF, flOrigin); new Float:dmg = get_pcvar_float(cvar_dragondmg) - ( get_pcvar_float(cvar_dragondmg) / get_pcvar_float(cvar_dragonballradius) ) * dist; if(pev(iVictim,pev_health) - dmg <= 0) { new headshot if(dist < 20.0) headshot = 1 if(dist >= 20.0) headshot = 0 message_begin( MSG_ALL, get_user_msgid("DeathMsg"),{0,0,0},0) write_byte(iAttacker) write_byte(iVictim) write_byte(headshot) write_string("dragon") message_end() user_silentkill(iVictim) set_pev(iAttacker, pev_frags, float(pev(iAttacker, pev_frags) + 1)) zp_set_user_ammo_packs(iAttacker, zp_get_user_ammo_packs(iAttacker) + 1) fm_cs_set_user_deaths(iVictim, cs_get_user_deaths(iVictim) + 1) message_begin(MSG_BROADCAST, g_msgScoreInfo) write_byte(iAttacker) // id write_short(pev(iAttacker, pev_frags)) // frags write_short(cs_get_user_deaths(iAttacker)) // deaths write_short(0) // class? write_short(fm_cs_get_user_team(iAttacker)) // team message_end() message_begin(MSG_BROADCAST, g_msgScoreInfo) write_byte(iVictim) // id write_short(pev(iVictim, pev_frags)) // frags write_short(cs_get_user_deaths(iVictim)) // deaths write_short(0) // class? write_short(fm_cs_get_user_team(iVictim)) // team message_end() }else{ if(dmg > 0) set_pev(iVictim , pev_health , pev(iVictim,pev_health) - dmg) if(dmg <= 0) set_pev(iVictim , pev_health , pev(iVictim,pev_health) + dmg) } } public remove_values(id) { remove_task(id) g_can[id] = 0 } public ability_zero(id) { g_can[id] -= 1 if(!g_can[id]) client_print(id,print_center,"Fire Ball Active!") if(g_can[id]) set_task(1.0,"ability_zero",id) } public Burn( victim ) { // Get user origin static Origin[ 3 ] ; get_user_origin( victim, Origin ) // If burn time is over or victim are in water if( Time[ victim ] <= 0 || get_entity_flags( victim ) & FL_INWATER ) { // Show Smoke sprite message_begin( MSG_PVS, SVC_TEMPENTITY, Origin ) write_byte( TE_SMOKE ) // TE id write_coord( Origin[0] ) // x write_coord( Origin[1] ) // y write_coord( Origin[2]-50 ) // z write_short( sprSmoke ) // sprite write_byte( random_num(15, 20) ) // scale write_byte( random_num(10, 20) ) // framerate message_end( ) // Delay to allow burn again set_task( float(get_pcvar_num(cvar_burntime)), "Stop", victim ) // Exit return } else { // Flame sprite message_begin( MSG_PVS, SVC_TEMPENTITY, Origin ) write_byte( TE_SPRITE ) // TE id write_coord( Origin[0]+random_num(-5, 5) ) // x write_coord( Origin[1]+random_num(-5, 5) ) // y write_coord( Origin[2]+random_num(-10, 10) ) // z write_short( sprFlame ) // sprite write_byte( random_num(5, 10) ) // scale write_byte( 200 ) // brightness message_end( ) // Decrease Time Time[ victim ]-- // Decrease life (random) if(get_user_health(victim) - get_pcvar_num(cvar_burndmg) > 0) set_user_health( victim, get_user_health( victim ) - get_pcvar_num(cvar_burndmg)) // Stop fire if health <= min health. if( get_user_health( victim ) <= get_pcvar_num(cvar_burndmg)) { g_AlreadyBurn[ victim ] = false return } // Repeat set_task( 0.5, "Burn", victim ) } } public Stop( victim ) g_AlreadyBurn[ victim ] = false // Allow burn again public zp_user_humanized_post(id) { fm_set_user_model_index(id, defaultindex) remove_values(id) } public fw_PlayerKilled(id, attacker, shouldgib) remove_values(id) public client_connect(id) remove_values(id) public zp_round_ended() g_roundend = 1 public zp_user_infected_post(id) { //set_wpnmodel(id) if((zp_get_user_zombie_class(id) == g_zclassdragon) && (zp_get_user_zombie(id))) { fm_set_user_model_index(id, index) } Time[ id ] = 0 g_AlreadyBurn[ id ] = false remove_task(id) } public zp_user_infected_pre(id) { if(!(get_user_flags(id) & ADMIN_LEVEL_G)) { if(zp_get_user_next_class(id) == g_zclassdragon) { zp_set_user_zombie_class(id, 0) client_print(id, print_chat, "This Class Is ONLY ADMIN. For ADMIN add [email protected]") } } } stock UTIL_PlayWeaponAnimation(const Player, const Sequence) { set_pev(Player, pev_weaponanim, Sequence) message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player) write_byte(Sequence) write_byte(pev(Player, pev_body)) message_end() } stock UTIL_PlayPlayerAnimation(const id, const Sequence , Float:frame = 1.0 , Float:framerate = 1.0) { entity_set_int(id, EV_INT_sequence, Sequence) entity_set_int(id, EV_INT_gaitsequence, 1) entity_set_float(id, EV_FL_frame, frame) entity_set_float(id, EV_FL_framerate, framerate) } stock get_speed_vector(const Float:origin1[3],const Float:origin2[3],Float:speed, Float:new_velocity[3]) { new_velocity[0] = origin2[0] - origin1[0] new_velocity[1] = origin2[1] - origin1[1] new_velocity[2] = origin2[2] - origin1[2] new Float:num = floatsqroot(speed*speed / (new_velocity[0]*new_velocity[0] + new_velocity[1]*new_velocity[1] + new_velocity[2]*new_velocity[2])) new_velocity[0] *= num new_velocity[1] *= num new_velocity[2] *= num return 1; } stock fm_cs_set_user_deaths(id, value) { set_pdata_int(id, 444, value, 5) } stock fm_cs_get_user_team(id) { return get_pdata_int(id, 114, 5); } /* public Event_CurrentWeapon(id) g_CurWeapon[id] = read_data(2) public fw_Weapon_Deploy_Post(weapon_ent) { static id; id = get_pdata_cbase(weapon_ent, 41, 4) static weaponid ; weaponid = cs_get_weapon_id(weapon_ent) g_CurWeapon[id] = weaponid replace_weapon_models(id, weaponid) } */ public Player_Duck(id) { if (zp_get_user_zombie_class(id) == g_zclassdragon && zp_get_user_zombie(id)) { static button, ducking button = pev(id, pev_button) ducking = pev(id, pev_flags) & (FL_DUCKING | FL_ONGROUND) == (FL_DUCKING | FL_ONGROUND) if (button & IN_DUCK || ducking) { set_pev(id, pev_view_ofs, {0.0, 0.0, 20.0}) } } } /* set_wpnmodel(id) { if (!is_user_alive(id)) return new wpn = get_user_weapon(id) if (wpn == CSW_HEGRENADE || wpn == CSW_FLASHBANG || wpn == CSW_SMOKEGRENADE) { set_pev(id, pev_viewmodel2, g_bombmodelwpn) } } replace_weapon_models(id, weaponid) { if (zp_get_user_zombie_class(id) == g_zclassdragon && zp_get_user_zombie(id)) { switch(weaponid) { case CSW_HEGRENADE: { set_pev(id, pev_viewmodel2, g_bombmodelwpn) } case CSW_SMOKEGRENADE: { set_pev(id, pev_viewmodel2, g_bombmodelwpn) } case CSW_FLASHBANG: { set_pev(id, pev_viewmodel2, g_bombmodelwpn) } } } } */ stock fm_set_user_model_index(id, value) { set_pdata_int(id, OFFSET_MODELINDEX, value, OFFSET_LINUX) } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par } */
Revenant Ice:
- | Afiseaza codul
#include <amxmodx> #include <engine> #include <fakemeta> #include <hamsandwich> #include <zombieplague> #include <cstrike> #include <xs> new const ball_name[] = "paralize_ball" new const ball_model[] = "models/w_hiddentail2.mdl" new const ball_soundtouch[] = { "warcraft3/frostnova.wav" } new const zclass_name[] = { "Revenant Ice" } // name new const zclass_info[] = { "\r[VIP]" } // description new const zclass_model[] = { "zombie_revenant_ice" } // model new const zclass_clawmodel[] = { "v_knife_revenant_ice.mdl" } // claw model const zclass_health = 9000 // health const zclass_speed = 245 // speed const Float:zclass_gravity = 0.7 // gravity const Float:zclass_knockback = 1.0 // knockback #define OFFSET_MODELINDEX 491 #define OFFSET_LINUX 5 new index, defaultindex new g_zclassparalize new cvar_paralizedelay , cvar_paralizevelocity , cvar_paralizeballhealth , cvar_paralizeballparalizetime new sTrail , g_touchs[512] , g_can[33] , g_paralizen[33] public plugin_init() { register_plugin("[ZP] Zombie Class: Paralize Zombie", "0.1", "=), LARS-BLOODLIKER") cvar_paralizedelay = register_cvar("zp_classparalize_delay","15") cvar_paralizevelocity = register_cvar("zp_classparalizeball_velocity","1300") cvar_paralizeballhealth = register_cvar("zp_classparalizeball_health","5") cvar_paralizeballparalizetime = register_cvar ( "zp_classparalizeball_paralizetime", "7.0" ) register_touch(ball_name, "worldspawn", "touchWorld") register_touch(ball_name, "func_wall", "touchWorld") register_touch(ball_name, "func_door", "touchWorld") register_touch(ball_name, "func_door_rotating", "touchWorld") register_touch(ball_name, "func_wall_toggle", "touchWorld") register_touch(ball_name, "func_breakable", "touchWorld") register_touch(ball_name, "player", "touchPlayer") register_think(ball_name,"ball_think") register_clcmd("drop","paralize_cmd") register_event("HLTV", "event_round_start", "a", "1=0", "2=0") register_forward(FM_PlayerPreThink, "fw_PreThink") RegisterHam(Ham_Killed, "player", "fw_PlayerKilled") RegisterHam(Ham_Player_Duck, "player", "Player_Duck", 1) } public plugin_precache() { precache_model(ball_model) sTrail = precache_model("sprites/laserbeam.spr") g_zclassparalize = zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback) index = precache_model("models/player/zombie_revenant_ice/zombie_revenant_ice.mdl") defaultindex = precache_model("models/player.mdl") } public paralize_cmd( id ) { if( !is_user_alive(id) || !zp_get_user_zombie(id) || zp_get_user_zombie_class(id) != g_zclassparalize || zp_get_user_nemesis(id) ) return PLUGIN_CONTINUE; if(g_can[id]) { client_print(id,print_center,"You cannot use ability now. Wait %d sec.",g_can[id]) return PLUGIN_HANDLED; } static Float:origin[3], Float:angles[3], Float:v_forward[3], Float:v_right[3], Float:v_up[3], Float:gun_position[3], Float:player_origin[3], Float:player_view_offset[3]; static Float:OriginX[3] pev(id, pev_v_angle, angles); pev(id, pev_origin, OriginX); engfunc(EngFunc_MakeVectors, angles); global_get(glb_v_forward, v_forward); global_get(glb_v_right, v_right); global_get(glb_v_up, v_up); //m_pPlayer->GetGunPosition( ) = pev->origin + pev->view_ofs pev(id, pev_origin, player_origin); pev(id, pev_view_ofs, player_view_offset); xs_vec_add(player_origin, player_view_offset, gun_position); xs_vec_mul_scalar(v_forward, 13.0, v_forward); xs_vec_mul_scalar(v_right, 0.0, v_right); xs_vec_mul_scalar(v_up, 5.0, v_up); xs_vec_add(gun_position, v_forward, origin); xs_vec_add(origin, v_right, origin); xs_vec_add(origin, v_up, origin); new Float:StartOrigin[3] StartOrigin[0] = origin[0]; StartOrigin[1] = origin[1]; StartOrigin[2] = origin[2]; new Float:fVelocity[3] , Float:flOrigin[3] , Float:flAngle[3] pev(id,pev_origin,flOrigin) pev(id,pev_angles,flAngle) new ball = create_entity("info_target") if (!ball) return PLUGIN_HANDLED g_touchs[ball] = 0 entity_set_string(ball, EV_SZ_classname, ball_name) entity_set_model(ball, ball_model) entity_set_origin(ball, StartOrigin) entity_set_vector(ball, EV_VEC_angles, flAngle) new Float:MinBox[3] = {-1.0, -1.0, -1.0} new Float:MaxBox[3] = {1.0, 1.0, 1.0} entity_set_vector(ball, EV_VEC_mins, MinBox) entity_set_vector(ball, EV_VEC_maxs, MaxBox) entity_set_int(ball, EV_INT_solid, SOLID_SLIDEBOX) entity_set_int(ball, EV_INT_movetype, MOVETYPE_BOUNCEMISSILE) entity_set_edict(ball, EV_ENT_owner, id) entity_set_int(ball, EV_INT_effects, EF_BRIGHTLIGHT) VelocityByAim(id, get_pcvar_num(cvar_paralizevelocity ), fVelocity) entity_set_vector(ball , EV_VEC_velocity, fVelocity) fm_set_rendering(ball, kRenderFxGlowShell,255, 255, 255, kRenderNormal, 16) message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_BEAMFOLLOW) // Temporary entity ID write_short(ball) // Entity write_short(sTrail) // Sprite index write_byte(10) // Life write_byte(3) // Line width write_byte(100) // Red write_byte(255) // Green write_byte(255) // Blue write_byte(255) // Alpha message_end() UTIL_PlayPlayerAnimation(id,10) UTIL_PlayWeaponAnimation(id,8) g_can[id] = get_pcvar_num(cvar_paralizedelay) set_task(1.0,"ability_zero",id) entity_set_float(ball, EV_FL_health , get_pcvar_float(cvar_paralizeballhealth)) entity_set_float(ball, EV_FL_nextthink, get_gametime() + 0.1) return PLUGIN_HANDLED; } public touchWorld(ball, world) { emit_sound(ball, CHAN_WEAPON, ball_soundtouch, 1.0, ATTN_NORM, 0, PITCH_NORM) g_touchs[ball] += 1 if(g_touchs[ball] == get_pcvar_num(cvar_paralizeballhealth)) remove_entity(ball) return PLUGIN_HANDLED } public touchPlayer(ball, player) { client_print(0,print_chat,"touch %d",player) remove_task(player) paralize(player) //set_task(get_pcvar_float(cvar_paralizeballparalizetime),"unparalize_player",player) return PLUGIN_HANDLED } public event_round_start() { new iEnt = FM_NULLENT; while( (iEnt = engfunc(EngFunc_FindEntityByString, iEnt, "classname", ball_name)) > 0 ) { engfunc(EngFunc_RemoveEntity,iEnt) } for(new i;i<=32;i++) { if(g_paralizen) fm_set_rendering(i) g_can = 0 g_paralizen = 0 remove_task(i) } } public ball_think(ball) { if(!is_valid_ent(ball)) return; new Float:oldangles[3],Float:angles[3] pev(ball,pev_angles,oldangles) angles[0] = oldangles[0] + random_float(20.0,100.0) angles[1] = oldangles[1] + random_float(10.0,80.0) angles[2] = oldangles[2] + random_float(10.0,80.0) set_pev(ball,pev_angles,angles) new Float:Velocity[3] pev(ball,pev_velocity,Velocity) if(Velocity[0] < 1.0 && Velocity[2] < 1.0 && Velocity[1] < 1.0) remove_entity(ball) entity_set_float(ball, EV_FL_nextthink, get_gametime() + 0.1) } public paralize(id) { if(!is_user_alive(id) || zp_get_user_zombie(id)) return; g_paralizen[id] = 1 fm_set_rendering(id, kRenderFxGlowShell,100, 255, 255, kRenderNormal, 16) set_task(get_pcvar_float(cvar_paralizeballparalizetime),"unparalize_player",id) } public unparalize_player(id) { if(!is_user_alive(id) || zp_get_user_zombie(id)) return; g_paralizen[id] = 0 fm_set_rendering(id) } public remove_values(id) { remove_task(id) g_can[id] = 0 } public ability_zero(id) { g_can[id] -= 1 if(!g_can[id]) client_print(id,print_center,"Now you can use ability!") if(g_can[id]) set_task(1.0,"ability_zero",id) } public fw_PreThink(id) { if( !is_user_alive(id) || zp_get_user_zombie(id) || !g_paralizen[id]) return PLUGIN_CONTINUE; set_pev( id, pev_button, pev(id,pev_button) & ~IN_ATTACK ); set_pev(id, pev_maxspeed, 0.0) new Float:vel[3] set_pev(id,pev_velocity,vel) return PLUGIN_HANDLED } public zp_user_humanized_post(id) { fm_set_user_model_index(id, defaultindex) remove_values(id) } public fw_PlayerKilled(id, attacker, shouldgib) remove_values(id) public client_connect(id) remove_values(id) public zp_user_infected_post(id) { if((zp_get_user_zombie_class(id) == g_zclassparalize) && (zp_get_user_zombie(id))) { fm_set_user_model_index(id, index) } remove_values(id) } public zp_user_infected_pre(id) { if(!(get_user_flags(id) & ADMIN_LEVEL_H)) { if(zp_get_user_next_class(id) == g_zclassparalize) { zp_set_user_zombie_class(id, 0) client_print(id, print_chat, "This Class Is ONLY VIP. For VIP add [email protected]") } } } stock fm_set_rendering(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16) { static Float:color[3] color[0] = float(r) color[1] = float(g) color[2] = float(b) set_pev(entity, pev_renderfx, fx) set_pev(entity, pev_rendercolor, color) set_pev(entity, pev_rendermode, render) set_pev(entity, pev_renderamt, float(amount)) } stock UTIL_PlayWeaponAnimation(const Player, const Sequence) { set_pev(Player, pev_weaponanim, Sequence) message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player) write_byte(Sequence) write_byte(pev(Player, pev_body)) message_end() } stock UTIL_PlayPlayerAnimation(const id, const Sequence , Float:frame = 1.0 , Float:framerate = 1.0) { entity_set_int(id, EV_INT_sequence, Sequence) entity_set_int(id, EV_INT_gaitsequence, 1) entity_set_float(id, EV_FL_frame, frame) entity_set_float(id, EV_FL_framerate, framerate) } stock get_speed_vector(const Float:origin1[3],const Float:origin2[3],Float:speed, Float:new_velocity[3]) { new_velocity[0] = origin2[0] - origin1[0] new_velocity[1] = origin2[1] - origin1[1] new_velocity[2] = origin2[2] - origin1[2] new Float:num = floatsqroot(speed*speed / (new_velocity[0]*new_velocity[0] + new_velocity[1]*new_velocity[1] + new_velocity[2]*new_velocity[2])) new_velocity[0] *= num new_velocity[1] *= num new_velocity[2] *= num return 1 } stock fm_cs_set_user_deaths(id, value) { set_pdata_int(id, 444, value, 5) } stock fm_cs_get_user_team(id) { return get_pdata_int(id, 114, 5); } public Player_Duck(id) { if(zp_get_user_zombie_class(id) == g_zclassparalize && zp_get_user_zombie(id)) { static button, ducking button = pev(id, pev_button) ducking = pev(id, pev_flags) & (FL_DUCKING | FL_ONGROUND) == (FL_DUCKING | FL_ONGROUND) if(button & IN_DUCK || ducking) { set_pev(id, pev_view_ofs, {0.0, 0.0, 20.0}) } } } stock fm_set_user_model_index(id, value) { set_pdata_int(id, OFFSET_MODELINDEX, value, OFFSET_LINUX) } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par } */