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()
}