|
Veteran Member
|

01-27-2007
, 13:40
Crashed on explosion
|
#1
|
I cant figure out why it is randomly crashing after the grenade has exploded.
PHP Code:
public grenade_throw(id, ent, wid) { if(fm_is_valid_ent(ent) && wid == CSW_HEGRENADE) { set_pev(ent, pev_iuser1, 1) set_pev(ent, pev_iuser2, get_user_team(id)) } }
public fwd_touch(ent, id) { if(!fm_is_valid_ent(ent) || !is_user_alive(id)) return FMRES_IGNORED new classname[STR_T] pev(ent, pev_classname, classname, (STR_T-1)) if(equali(classname, "grenade")) { if(pev(ent, pev_iuser1) != 1) return FMRES_IGNORED if(get_user_team(id) == pev(ent, pev_iuser2)) return FMRES_IGNORED set_pev(ent, pev_iuser1, 0) set_pev(ent, pev_aiment, id) set_pev(ent, pev_movetype, MOVETYPE_FOLLOW) set_pev(ent, pev_sequence, 0) } return FMRES_IGNORED }
public fwd_think(ent) { if(!fm_is_valid_ent(ent)) return FMRES_IGNORED new classname[STR_T] pev(ent, pev_classname, classname, (STR_T-1)) if(equali(classname, "grenade")) { if(pev(ent, pev_iuser1) != 1) return FMRES_IGNORED if(pev(ent, pev_flags) & FL_ONGROUND) return FMRES_IGNORED static Float:nadeorigin[3] pev(ent, pev_origin, nadeorigin) static players[32], num get_players(players, num, "a") for(new i = 0; i < num; ++i) { new id = players[i]
if(get_user_team(id) == pev(ent, pev_iuser2)) continue if(!fm_is_ent_visible(ent, id)) continue
static Float:origin[3] pev(id, pev_origin, origin) new Float:maxdistance = get_pcvar_float(cvar_maxdis) new Float:distance = get_distance_f(origin, nadeorigin) if(distance < maxdistance) { message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_BEAMFOLLOW) write_short(ent) write_short(sprite_trail) write_byte(30) write_byte(10) write_byte(255) write_byte(0) write_byte(0) write_byte(100) message_end() entity_set_follow(ent, id, float(fm_get_speed(ent))) } } } return FMRES_IGNORED }
stock entity_set_follow(entity, target, Float:speed) { if(!fm_is_valid_ent(entity) || !fm_is_valid_ent(target)) return 0
new Float:entity_origin[3], Float:target_origin[3] pev(entity, pev_origin, entity_origin) pev(target, pev_origin, target_origin)
new Float:diff[3] diff[0] = target_origin[0] - entity_origin[0] diff[1] = target_origin[1] - entity_origin[1] diff[2] = target_origin[2] - entity_origin[2]
new Float:length = floatsqroot(floatpower(diff[0], 2.0) + floatpower(diff[1], 2.0) + floatpower(diff[2], 2.0))
new Float:velocity[3] velocity[0] = diff[0] * (speed / length) velocity[1] = diff[1] * (speed / length) velocity[2] = diff[2] * (speed / length)
set_pev(entity, pev_velocity, velocity)
return 1 }
__________________
HDD fried, failed to backup files. Sorry folks, just don't have free time anymore. This is goodbye.
|
|