廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 5065 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為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.107438 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言