注册 登录
MOD中国同盟社 返回首页

编程爱好者 http://www.modchina.com/?25792 [收藏] [复制] [分享] [RSS] 空间主要记录一些AMXX代码

日志

向目标发出一条射线(侦测)

热度 1已有 1433 次阅读2011-7-7 11:11 |个人分类:Amxx调试

做到侦测子弹的decal位置
public make_tracer(id) // 只是视觉方向发出一射线
{
static Float:vecOrigin[33][3],Float:vecViewOfs[33][3],Float:vecAngle[33][3]
pev(id,pev_view_ofs,vecViewOfs[id])
pev( id, pev_origin, vecOrigin[id] ); 
xs_vec_add(vecOrigin[id],vecViewOfs[id],vecOrigin[id])

pev( id, pev_v_angle, vecAngle[id] ); 
angle_vector( vecAngle[id], ANGLEVECTOR_FORWARD, vecAngle[id] );
xs_vec_mul_scalar( vecAngle[id], 9999.0, vecAngle[id] ); 

xs_vec_add( vecOrigin[id], vecAngle[id], vecAngle[id] ); 

engfunc( EngFunc_TraceLine, vecOrigin[id], vecAngle[id], DONT_IGNORE_MONSTERS, id, 0 );     
get_tr2( 0, TR_vecEndPos, vecAngle[id] );

message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_SHOWLINE)
engfunc(EngFunc_WriteCoord,vecOrigin[id][0])
engfunc(EngFunc_WriteCoord,vecOrigin[id][1])
engfunc(EngFunc_WriteCoord,vecOrigin[id][2])
engfunc(EngFunc_WriteCoord,vecAngle[id][0])
engfunc(EngFunc_WriteCoord,vecAngle[id][1])
engfunc(EngFunc_WriteCoord,vecAngle[id][2])
message_end()  
}

关于子弹的位置
new vec1[3], vec2[3]
get_user_origin(id, vec1, 1) // origin; your camera point.//包括了View_Ofs
get_user_origin(id, vec2, 4) // termina; where your bullet goes (4 is cs-only)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_SHOWLINE)
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2])
write_coord(vec2[0])
write_coord(vec2[1])
write_coord(vec2[2])
message_end()
注意:可以看到
engfunc(EngFunc_WriteCoord,vecOrigin[id][0])用的是浮点数
write_coord(vec1[0])用的是整数



路过

鸡蛋
1

鲜花

握手

雷人

刚表态过的朋友 (1 人)

收藏 分享 转发到开心网 举报

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册
验证问答 换一个 验证码 换一个

回顶部