fw_PlayerPreThink是什么意思?

Home Home
引用 | 编辑 eric512
2013-07-22 22:29
楼主
推文 x0
fw_PlayerPreThink的PlayerPreThink是不是指玩家持续性插件?
fw是什么?我参考了一些SMA,为什么SMA里的public fw_PlayerPreThink(id)里,几乎都是fm_xxxxxxxx
请大大解说
复制程式
public fw_PlayerPreThink(id)
{
    if (!is_user_alive(id))
        return FMRES_IGNORED;
    if (fm_cs_get_user_team(id) != 1)
        return FMRES_IGNORED;
    if (has_custom_weapons(id, PRIMARY_WEAPONS_BIT_SUM) || has_custom_weapons(id, SECONDARY_WEAPONS_BIT_SUM))
    {
        fm_strip_user_weapons(id)
        fm_give_item(id, "weapon_knife")
    }
    return FMRES_IGNORED;
}


献花 x0
引用 | 编辑 ak47klo
2013-07-22 22:37
1楼
  
看你下面怎么定义啰!

献花 x0
引用 | 编辑 八云の橙猫
2013-07-22 23:16
2楼
  
fm_xxx_xxx 之类的函数 没意外的话拉到底应该会有stock

fw_PlayerPreThink 意思上来说 是指玩家的思考 可以侦测出玩家在每0.0001秒中做的任何事情
比较常见的是拿来放置持续性hud之类的讯息


也可以拿来设定一些持续性的对象
像楼主上面放的函数应该是拿来侦测对象是否持有武器
不过侦测速度很快的关系 可以搭配
复制程式
new test[33]


...


if(get_gametime() - test[id] >= 某时间)
{
     //something
}


test[id] = get_gametime()



来做每次侦测的间隔

献花 x0
引用 | 编辑 Gamesbrok
2013-07-22 23:18
3楼
  
PreThink 是依据玩家的 FPS 来计算,例如你有 60FPS,那每一秒会运行 60次。

fw_ 只是一个命名方式。

献花 x0
引用 | 编辑 andyt0621
2013-07-23 10:58
4楼
  
FM_PlayerPreThink是个会不断运行的forward(应该是这样叫)
至于为什么是fw_xxxxx..
纯粹因为hook的时候人们用惯这名子..即:
register_forward(FM_PlayerPreThink, "fw_PlayerPreThink")
你喜欢的话..设成这也可以
register_forward(FM_PlayerPreThink, "abc")
public abc(id)
只是单单看这public会比较难清楚是FM_PlayerPreThink

献花 x0
引用 | 编辑 eric512
2013-07-23 11:05
5楼
  
哦,我已明白了,谢谢各位大大的解说

献花 x0