广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 5041 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
弑血
个人头像
个人文章 个人相簿 个人日记 个人地图
社区建设奖 特殊贡献奖 创作大师奖
小有名气
级别: 小有名气 该用户目前不上站
推文 x108 鲜花 x240
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[1.6][插件] NPC出现问题!!
上次 请教了 husano&HsK大大他们 BOT攻击NPC问题之后~

问题出现了,我也不知道 怎么去解,请求大大帮我一把表情 谢谢表情

       new id = -1
       new Float:vec[3]
       new ent = find_ent_by_class(-1, "demon_ai")
       pev(ent, pev_origin, vec)
       while((id = engfunc(EngFunc_FindEntityInSphere,id,vec,9999.0)))
       {
           new classname[32]
           pev(ent,pev_classname,classname,31)
           if (equal(classname, "demon_ai"))
           {
           //使BOT面向NPC的指令
           new Float:angle[3]
           aim_at_origin(id, vec, angle)
           angle[0] = 0.0
           entity_set_vector(id, EV_VEC_angles, angle)
        }
我用此设定给BOT 可是...NPC周围的建筑物,会朝着NPC移动..(傻眼)!!!

有没有什么办法? 让target不会朝着NPC。
我也试着使用 is_user_alive(id)过。可是...每当有人死亡的时候。BOT并不再继续面向NPC!!!
救救我!!!表情




目前传授教学&有兴趣者可以问我
BOT瞄准攻击NPC&模仿事件触发计算出场&新增地图重生位置等等
已修复entity的attachment错误问题,开始尝试写出各种npc_boss成品
按这里检视影片,登入论坛可以直接观看
按这里检视影片,登入论坛可以直接观看
按这里检视影片,登入论坛可以直接观看
按这里检视影片,登入论坛可以直接观看
献花 x0 回到顶端 [楼 主] From:台湾中华电信股份有限公司 | Posted:2012-09-23 11:47 |
HsK 手机 会员卡
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 优秀管理员勋章
头衔:CCN@HsKCCN@HsK
版主
级别: 版主 该用户目前不上站
版区: CS插件区
推文 x1701 鲜花 x1108
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

上次给你那段应该没太大问题的..


HsK-Dev Blog By CCN
献花 x0 回到顶端 [1 楼] From:未知地址 | Posted:2012-09-23 13:35 |
HsK 手机 会员卡
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 优秀管理员勋章
头衔:CCN@HsKCCN@HsK
版主
级别: 版主 该用户目前不上站
版区: CS插件区
推文 x1701 鲜花 x1108
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

new ent, Float:botOrigin[3], Float:view_ofs[3];  
pev(id, pev_origin, botOrigin);
pev(id, pev_view_ofs, view_ofs);
xs_vec_add(botOrigin, view_ofs, botOrigin); // 取得bot眼部 origin

while ((pev_valid(ent = fm_find_ent_by_class(ent, "npc_classname")))) // 取得 npc_classname id
{
  new Float:origin[3];
  pev(ent, pev_origin, origin); // 取得 npc origin

  engfunc(EngFunc_TraceLine, botOrigin, origin, 1, id, 0); // bot眼部origin 和 npc origin 的一线直线
  new Float:fraction;
  get_tr2(0, TR_flFraction, fraction);
  if (fraction == 1.0 || get_tr2(0, TR_pHit) == ent) // 如果 bot 可看到 npc
  {
      get_tr2(0, TR_vecEndPos, origin); // origin 为看到 npc 的最终 origin
      //执行攻击指令
      break;
  }
  else // 如果 bot 不可从npc origin看到 npc, 进行小量修复
  {
      for (new i = 0; i < 5; i++)
      {
          new Float:mins[3], Float:maxs[3];
          pev(ent, pev_mins, mins);
          pev(ent, pev_maxs, maxs);
          pev(ent, pev_origin, origin);

          // 随机看看 npc entity 的其他点
          origin[0] += random_float (mins[0], maxs[0]);
          origin[1] += random_float (mins[1], maxs[1]);
          origin[2] += random_float (mins[2], maxs[2]);    

          engfunc(EngFunc_TraceLine, botOrigin, origin, 1, id, 0);    
          get_tr2(0, TR_flFraction, fraction);
          if (fraction >= 1.0 && get_tr2(0, TR_pHit) == ent) // 如果 bot 可看到 npc
          {
              get_tr2(0, TR_vecEndPos, origin);
              //执行攻击指令
              break;
          }
      }
  }
}


HsK-Dev Blog By CCN
献花 x0 回到顶端 [2 楼] From:未知地址 | Posted:2012-09-23 13:42 |
弑血
个人头像
个人文章 个人相簿 个人日记 个人地图
社区建设奖 特殊贡献奖 创作大师奖
小有名气
级别: 小有名气 该用户目前不上站
推文 x108 鲜花 x240
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

HsK大大
抱歉喔 表情
你的我有加入了,可是 没有效果。
不知道 为什么 表情



目前传授教学&有兴趣者可以问我
BOT瞄准攻击NPC&模仿事件触发计算出场&新增地图重生位置等等
已修复entity的attachment错误问题,开始尝试写出各种npc_boss成品
按这里检视影片,登入论坛可以直接观看
按这里检视影片,登入论坛可以直接观看
按这里检视影片,登入论坛可以直接观看
按这里检视影片,登入论坛可以直接观看
献花 x0 回到顶端 [3 楼] From:台湾中华电信股份有限公司 | Posted:2012-09-23 16:13 |
HsK 手机 会员卡
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 优秀管理员勋章
头衔:CCN@HsKCCN@HsK
版主
级别: 版主 该用户目前不上站
版区: CS插件区
推文 x1701 鲜花 x1108
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 s8720419 于 2012-09-23 16:13 发表的 : 到引言文
HsK大大
抱歉喔 表情
你的我有加入了,可是 没有效果。
不知道 为什么 表情




上次说过


未test
有错自己修复......




这只是概念 xDD''


HsK-Dev Blog By CCN
献花 x1 回到顶端 [4 楼] From:未知地址 | Posted:2012-09-23 16:37 |
弑血
个人头像
个人文章 个人相簿 个人日记 个人地图
社区建设奖 特殊贡献奖 创作大师奖
小有名气
级别: 小有名气 该用户目前不上站
推文 x108 鲜花 x240
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

修改完成 表情

此文章被评分,最近评分记录
财富:0 (by Hatsuyuki)



目前传授教学&有兴趣者可以问我
BOT瞄准攻击NPC&模仿事件触发计算出场&新增地图重生位置等等
已修复entity的attachment错误问题,开始尝试写出各种npc_boss成品
按这里检视影片,登入论坛可以直接观看
按这里检视影片,登入论坛可以直接观看
按这里检视影片,登入论坛可以直接观看
按这里检视影片,登入论坛可以直接观看
献花 x0 回到顶端 [5 楼] From:台湾中华电信股份有限公司 | Posted:2012-09-24 11:04 |
husano896 手机
个人头像
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x79 鲜花 x138
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 s8720419 于 2012-09-23 11:47 发表的 NPC出现问题!!: 到引言文
(吃)




new id = -1
new Float:vec[3]
new ent = find_ent_by_class(-1, "demon_ai")
pev(ent, pev_origin, vec)
while((id = engfunc(EngFunc_FindEntityInSphere,id,vec,9999.0)))
嗯...这段看的出来是以NPC为主 下去让在NPC周围的BOT侦测




但是有个小问题 ent的ID根本未改变 所以只要NPC存在
if (equal(classname, "demon_ai")) 这段判定式百分之百成立


写法应该是


复制程式
while((id = engfunc(EngFunc_FindEntityInSphere,id,vec,9999.0)))
{
 if (is_user_connected(id) && is_user_bot(id) && is_user_alive(id))
 {
  //使转头的指令(指令的使用目标为ent)
 }
}


这边流动率真的挺低的'w' 但我是有在看的哦w
也许哪天被我乱入也说不定(!?

按这里检视影片,登入论坛可以直接观看
*ZP*没爆头回合不结束

↓吃浏览数长大的龙:)
献花 x1 回到顶端 [6 楼] From:台湾中华电信股份有限公司 | Posted:2012-09-26 18:00 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.015249 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言