Miért van az, hogy ettől a plugintól befagy a szerver ha engedélyezem ? ( bbe-s windowsos szervergépen próbáltam ) Feladata, hogy ha valaki kiviszi a mapot akkor egy jutalom listát dob amiből lehet választani, hookot vagy pedig ezt...de ettől befagy.
Kód: #include <amxmodx> #include <fakemeta> #include <hamsandwich> #include <kzarg>
#define PLUGINNAME "KZ Jetpack Reward" #define VERSION "1.0" #define AUTHOR "KleeneX / Connor" // FYI KleeneX is DevCones
#define MAX_PLAYERS 32
#define message_begin_f(%1,%2,%3,%4) engfunc(EngFunc_MessageBegin,%1,%2,%3,%4) #define write_coord_f(%1) engfunc(EngFunc_WriteCoord,%1) #define AllocString(%1) engfunc(EngFunc_AllocString,%1)
#define max_f(%1,%2) %1 > %2 ? %1 : %2
#define m_pPlayer 41 #define m_flNextPrimaryAttack 46 #define m_flNextSecondaryAttack 47 #define m_flTimeWeaponIdle 48
new g_bHasJet[MAX_PLAYERS+1], g_rewarditem, g_iFlameSprite, g_iExploSprite, g_iTrailSprite, g_pCvarSpeed, g_pCvarRocketDelay, g_pCvarRocketSpeed, g_iVModel, g_iPModel
public plugin_precache() { precache_model("models/p_egon.mdl") precache_model("models/v_egon.mdl") precache_model("models/rpgrocket.mdl") precache_sound("weapons/rocketfire1.wav") g_iExploSprite = precache_model( "sprites/zerogxplode.spr") g_iTrailSprite = precache_model( "sprites/smoke.spr") g_iFlameSprite = precache_model( "sprites/xfireball3.spr") }
public plugin_init() { register_plugin(PLUGINNAME, VERSION, AUTHOR)
register_cvar("kz_jetpack", "v1.1", FCVAR_SERVER)
g_pCvarSpeed = register_cvar("jp_speed", "800") g_pCvarRocketDelay = register_cvar("jp_rocket_delay", "15.0") g_pCvarRocketSpeed = register_cvar("jp_rocket_speed", "1000")
RegisterHam(Ham_Touch, "info_target", "InfoTarget_Touch") RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_knife", "Knife_PrimaryAttack") RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_knife", "Knife_SecondaryAttack")
RegisterHam(Ham_Item_Deploy, "weapon_knife", "Knife_Deploy", 1) g_iVModel = AllocString("models/v_egon.mdl") g_iPModel = AllocString("models/p_egon.mdl")
g_rewarditem = kz_rewards_item_register("JetPack", "") }
public client_putinserver(id) { g_bHasJet[id] = 0 }
public kz_itemrewardsmenu(id, item, page) { if( item == g_rewarditem ) g_bHasJet[id] = 1 }
public kz_prestartclimb(id) { g_bHasJet[id] = 0 }
public Knife_PrimaryAttack( iEnt ) { static id ; id = get_pdata_cbase(iEnt, m_pPlayer, 4)
if(!g_bHasJet[id]) { return HAM_IGNORED }
kz_cheat_detection(id, "AutoBhop")
static Float:fVelocity[3]
velocity_by_aim(id , get_pcvar_num(g_pCvarSpeed) , fVelocity)
set_pev(id, pev_velocity, fVelocity) set_pev(id, pev_gaitsequence, 6)
Smoke_Effect(id)
if( pev(id, pev_weaponanim) ) { SendWeaponAnim(id, 0) }
set_pdata_float(iEnt, m_flNextPrimaryAttack, 0.1, 4) set_pdata_float(iEnt, m_flTimeWeaponIdle, 20.0, 4)
return HAM_SUPERCEDE }
public Knife_SecondaryAttack( iEnt ) { static id ; id = get_pdata_cbase(iEnt, m_pPlayer, 4)
if(!g_bHasJet[id]) { return HAM_IGNORED }
static iInfoTarget if( !iInfoTarget ) { iInfoTarget = AllocString("info_target") } new iRocket = engfunc(EngFunc_CreateNamedEntity, iInfoTarget) if(!pev_valid(iRocket)) return HAM_SUPERCEDE
engfunc(EngFunc_SetModel, iRocket, "models/rpgrocket.mdl") ExecuteHam(Ham_Spawn, iRocket)
set_pev(iRocket, pev_message, "jp_rocket")
set_pev(iRocket, pev_movetype, MOVETYPE_FLY) set_pev(iRocket, pev_solid, SOLID_BBOX)
new Float:flOrigin[3] pev(id, pev_origin, flOrigin)
new Float:Aim[3] velocity_by_aim(id, 64, Aim)
flOrigin[0] += Aim[0] flOrigin[1] += Aim[1] engfunc(EngFunc_SetOrigin, iRocket, flOrigin)
new Float:velocity[3], Float:angles[3] velocity_by_aim(id, get_pcvar_num(g_pCvarRocketSpeed), velocity)
set_pev(iRocket, pev_velocity, velocity) vector_to_angle(velocity, angles) set_pev(iRocket, pev_angles, angles) set_pev(iRocket, pev_owner, id) set_pev(iRocket, pev_takedamage, 1.0)
Make_Trail(iRocket)
emit_sound(iRocket, CHAN_WEAPON, "weapons/rocketfire1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
SendWeaponAnim(id, 1)
set_pdata_float(iEnt, m_flNextPrimaryAttack, 2.0, 4) set_pdata_float(iEnt, m_flNextSecondaryAttack, max_f(2.0, get_pcvar_float(g_pCvarRocketDelay)), 4) set_pdata_float(iEnt, m_flTimeWeaponIdle, 20.0, 4) return HAM_SUPERCEDE }
public Knife_Deploy(iEnt) { new id = get_pdata_cbase(iEnt, m_pPlayer, 4) if(g_bHasJet[id]) { set_pev(id, pev_viewmodel, g_iVModel) set_pev(id, pev_weaponmodel, g_iPModel) SendWeaponAnim(id, 9) } }
SendWeaponAnim(id, iAnim) { set_pev(id, pev_weaponanim, iAnim)
message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, _, id) write_byte(iAnim) write_byte(pev(id,pev_body)) message_end() }
public InfoTarget_Touch(iRocket, iEnt) { static classname[11] pev(iRocket, pev_message, classname, 10)
if( !equal(classname, "jp_rocket") ) return
static Float:fOrigin[3] pev(iRocket, pev_origin, fOrigin)
message_begin_f(MSG_BROADCAST, SVC_TEMPENTITY, fOrigin, 0) write_byte(TE_EXPLOSION) write_coord_f(fOrigin[0]) write_coord_f(fOrigin[1]) write_coord_f(fOrigin[2]) write_short(g_iExploSprite) write_byte(30) write_byte(15) write_byte(0) message_end()
engfunc(EngFunc_RemoveEntity, iRocket) }
Make_Trail(iEnt) { message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_BEAMFOLLOW) write_short(iEnt) write_short(g_iTrailSprite) write_byte(10) write_byte(2) write_byte(255) write_byte(150) write_byte(55) write_byte(255) message_end() }
Smoke_Effect(id) { static iOrigin[3] get_user_origin(id, iOrigin)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_SPRITE) write_coord(iOrigin[0]) write_coord(iOrigin[1]) write_coord(iOrigin[2]-10) write_short(g_iFlameSprite) write_byte(10) write_byte(115) message_end() }
|