zhangsheng 发表于 2008-6-21 23:06:48

请教下关于模型hlsdk_const函数判断问题

这段时间研究了下hlsdk_const.inc模型函数表
发现一个问题如果使用entity_set_model函数来判断模型名称以后.如果模型中带有动态的效果就无法实现.那么就要增加2个新的函数例如
entity_set_int(gEnt, EV_INT_solid, 要调用的函数名称)
entity_set_int(gEnt, EV_INT_movetype, 要调用的函数名称)
如果一个模型中有很多种效果该如何判断?

// pev(entity, pev_movetype) values
#define        MOVETYPE_NONE                   0         // Never moves
#define        MOVETYPE_WALK                   3         // Player only - moving on the ground
#define        MOVETYPE_STEP                   4         // Gravity, special edge handling -- monsters use this
#define        MOVETYPE_FLY                  5         // No gravity, but still collides with stuff
#define        MOVETYPE_TOSS                   6         // Gravity/Collisions
#define        MOVETYPE_PUSH                   7         // No clip to world, push and crush
#define        MOVETYPE_NOCLIP               8         // No gravity, no collisions, still do velocity/avelocity
#define        MOVETYPE_FLYMISSILE             9         // Extra size to monsters
#define        MOVETYPE_BOUNCE               10          // Just like Toss, but reflect velocity when contacting surfaces
#define MOVETYPE_BOUNCEMISSILE          11          // Bounce w/o gravity
#define MOVETYPE_FOLLOW               12          // Track movement of aiment
#define        MOVETYPE_PUSHSTEP               13          // BSP model that needs physics/world collisions (uses nearest hull for world collision)

// pev(entity, pev_solid) values
// NOTE: Some movetypes will cause collisions independent of SOLID_NOT/SOLID_TRIGGER when the entity moves
// SOLID only effects OTHER entities colliding with this one when they move - UGH!
#define        SOLID_NOT                     0         // No interaction with other objects
#define        SOLID_TRIGGER                   1         // Touch on edge, but not blocking
#define        SOLID_BBOX                      2         // Touch on edge, block
#define        SOLID_SLIDEBOX                  3         // Touch on edge, but not an onground
#define        SOLID_BSP                     4         // BSP clip, touch on edge, block

Rulzy 发表于 2008-6-21 23:53:46

回复: 请教下关于模型hlsdk_const函数判断问题

你前半部分说的就不对……

zhangsheng 发表于 2008-6-22 00:09:25

回复: 请教下关于模型hlsdk_const函数判断问题

难得Rulzy版主在啊.我就想请教你下关于你做的掉钱插件代码
我原来把掉出来的钱换成了足球模型以后.只能实现跳动的效果.无法判断出模型中滚动的效果.还得请教下你要注册什么函数
Rulzy版主你掉钱代码中的
entity_set_int(gEnt, EV_INT_solid, SOLID_TRIGGER)
entity_set_int(gEnt, EV_INT_movetype, MOVETYPE_TOSS)
我看了hlsdk_const.inc调用表以后把代码改为
entity_set_int (gEnt, EV_INT_solid, SOLID_BBOX)
entity_set_int (gEnt, EV_INT_movetype, MOVETYPE_BOUNCE)
足球可以实现跳动效果.就是没有滚动的效果.如何做到金钱满的玩家碰到球体以后可以滚.

Rulzy 发表于 2008-6-22 00:52:33

回复: 请教下关于模型hlsdk_const函数判断问题

足球的那个滚动,应该是模型本身的带的动画效果吧?如果是,设置其帧率,好像是这个吧:
entity_set_float(gEnt, EV_FL_animtime, 1.0)
entity_set_float(gEnt, EV_FL_framerate, 1.0)

其中EV_FL_framerate后面的1.0为帧率,用于调节动画快慢的。
另外,还有相关的几个值:
EV_FL_frame 设置为第几帧
EV_INT_sequence 设置为哪个场景(即哪个动作)。

zhangsheng 发表于 2008-6-22 01:39:49

回复: 请教下关于模型hlsdk_const函数判断问题

感谢Rulzy版主的回答.我按照你说的代码增加
entity_set_float(gEnt, EV_FL_animtime, 1.0)
entity_set_float(gEnt, EV_FL_framerate, 1.0)
好象足球还是只会在地上跳.没有滚动效果.
足球模型我发出来麻烦你帮忙看看是不是模型有问题!还是插件代码没写对.

另外,还有相关的几个值:
EV_FL_frame 设置为第几帧
EV_INT_sequence 设置为哪个场景(即哪个动作)。
Rulzy版主你说的后面这2个是用entity_set_float来判断吗?

Rulzy 发表于 2008-6-22 04:58:50

回复: 请教下关于模型hlsdk_const函数判断问题

这样试试:
entity_set_int(gEnt, EV_INT_sequence, 3) //或改成2试试,我忘了是从0开始还是1开始了
entity_set_float(gEnt, EV_FL_animtime, 1.0)
entity_set_float(gEnt, EV_FL_framerate, 1.0)

EV_INT_ 打头的使用 entity_set_int,EV_FL_ 打头的使用 entity_set_float。

jim_yang 发表于 2008-6-22 13:01:27

回复: 请教下关于模型hlsdk_const函数判断问题

刚看了一下模型
关跳是0
边跳边转是1
滚动是2

zhangsheng 发表于 2008-6-22 13:40:07

回复: 请教下关于模型hlsdk_const函数判断问题

2位前辈.我试着把代码改为以下可以实现滚动效果.但是它只能在原地跳着滚不能落地.汗!
entity_set_int (gEnt, EV_INT_solid, SOLID_BBOX)
entity_set_int (gEnt, EV_INT_movetype, MOVETYPE_BOUNCE)
entity_set_int(gEnt, EV_INT_sequence, 2)
entity_set_float(gEnt, EV_FL_animtime, 1.0)
entity_set_float(gEnt, EV_FL_framerate, 1.0)

zhangsheng 发表于 2008-6-22 13:46:28

回复: 请教下关于模型hlsdk_const函数判断问题

jim_yang说的很对.足球金钱模型里面到是有3种效果.原地跳、跳着滚、慢滚.
难道是我这里代码写错了吗?
entity_set_int (gEnt, EV_INT_solid, SOLID_BBOX)
entity_set_int (gEnt, EV_INT_movetype, MOVETYPE_BOUNCE)
还得请教下版主.麻烦你看看是不是这段代码后面调用的函数不对.谢谢了
页: [1]
查看完整版本: 请教下关于模型hlsdk_const函数判断问题