设为首页收藏本站新闻投稿

MOD中国同盟社

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 618|回复: 2

[求助] set_pdata_float BOT无视问题 [复制链接]

Rank: 7Rank: 7Rank: 7

帖子
565
精华
0
声望
2971 点
金币
52 Mold
被赞许
36 次
注册时间
2010-2-13
发表于 2011-4-19 20:30:18 |显示全部楼层
本帖最后由 DSHGFHDS 于 2011-4-19 20:30 编辑

只能说又来打搅各位大大,本人实在是大菜鸟.之前大江给我个幽灵插件,BOT能无视幽灵(大概是BOT的反应延迟吧).我想把它改成仿L4D的对抗僵尸选择性复活插件.就是一复活就会进入重身模式,BOT看不见.不能攻击.这里就牵扯到了关闭和启动的条件了
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>
#define PLUGIN "New Plugin"
#define VERSION "1.0"
#define AUTHOR "Author"
const m_flNextAttack = 88
new open_death[33]
public plugin_init()
{
        register_plugin(PLUGIN, VERSION, AUTHOR)
        register_forward(FM_TraceLine, "fw_TraceLine", 1)
        register_forward(FM_CmdStart, "forward_cmdstart")
        register_forward(FM_UpdateClientData, "UpdateClientData_Post", 1)
}
public zp_user_infected_post(id)
{
  open_death[id] = true
}
public zp_user_humanized_post(id)
{
open_death[id] = false
}
public forward_cmdstart(id, uc_handle, seed)
{
        if(!is_user_alive(id))
        return PLUGIN_HANDLED

        if(!zp_get_user_zombie(id))
          return PLUGIN_HANDLED

        static button
        button = get_uc(uc_handle, UC_Buttons)
        if(open_death[id])
       {
        if(button & IN_ATTACK)
        {
        button &= ~IN_ATTACK
        set_uc(uc_handle, UC_Buttons, button)
        open_death[id] = false
        }
        if(button & IN_ATTACK2)
        {
        button &= ~IN_ATTACK2
        set_uc(uc_handle, UC_Buttons, button)
        }
       }
        return PLUGIN_CONTINUE
}
public UpdateClientData_Post( id, sendweapons, cd_handle )
{
        if(!is_user_alive(id) || !zp_get_user_zombie(id))
                return PLUGIN_HANDLED
       
        if(open_death[id])
        {      
                set_cd(cd_handle, CD_ID, 0);
        }
       
        return PLUGIN_CONTINUE
}
public fw_TraceLine(Float:vecStart[3], vecEnd[3], iNoMonsters, iAttacker, iTr)
{
        if (!pev_valid(iAttacker))
        return FMRES_IGNORED

        if (!is_user_connected(iAttacker) || !is_user_alive(iAttacker))
                return FMRES_IGNORED
               
        if (!is_user_bot(iAttacker))
        return FMRES_IGNORED

        new iVictim = get_tr2(iTr, TR_pHit)

        if (!is_user_connected(iVictim))
        return FMRES_IGNORED

        if (!is_user_alive(iVictim))
        return FMRES_IGNORED

        if (open_death[iVictim])
             set_pdata_float(iAttacker, m_flNextAttack, 10.0)
        else
        if (!open_death[iVictim])
        set_pdata_float(iAttacker, m_flNextAttack, 0.1)
               
        return FMRES_IGNORED
}
本来不加if (open_death[iVictim])时set_pdata_float(iAttacker, m_flNextAttack, 10.0)是有效的,但加了if (open_death[iVictim])条件之后则不行了,但按道理是可以的.因为我已经在zp_user_infected_post(id)里表明了open_death[id] = true.但还是没效果.
所以我怀疑是不是open_death[iVictim])和open_death[id]不存在关系的.本人实在菜,搞了挺久都搞不了.所以请哪位大大能帮帮我
欢迎加入讨论群 164384320

使用道具 举报

Rank: 7Rank: 7Rank: 7

帖子
863
精华
0
声望
2462 点
金币
584 Mold
被赞许
7 次
注册时间
2010-5-7
发表于 2011-4-19 22:55:57 |显示全部楼层
回复 DSHGFHDS 的帖子

        button &= ~IN_ATTACK
        set_uc(uc_handle, UC_Buttons, button)
        open_death[id] = false
你懂得

使用道具 举报

Rank: 7Rank: 7Rank: 7

帖子
565
精华
0
声望
2971 点
金币
52 Mold
被赞许
36 次
注册时间
2010-2-13
发表于 2011-4-20 11:59:01 |显示全部楼层
本帖最后由 DSHGFHDS 于 2011-4-20 12:00 编辑

但我并没有按攻击键,攻击键是为了关闭重生模式
欢迎加入讨论群 164384320

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

回顶部