Run time error 10: native error <native "pev">

Home Home
引用 | 編輯 glay2005
2015-06-23 21:17
樓主
推文 x0
複製程式
    register_forward(FM_Touch, "NPC_Touch")

public NPC_Touch(id, ent)
{
       if(!is_user_alive(id))
        {
              return PLUGIN_HANDLED;
        }
        else
        {
        static npc_classname[32]
        pev(ent, pev_classname, npc_classname, sizeof (npc_classname) - 1)

              if(equali(npc_classname, "sale_npc"))
              {

                     if (get_gametime() - g_soundTime[id] < 5)
                            return PLUGIN_HANDLED;

                     choose_item_npc(id)
                     g_soundTime[id] = get_gametime()
              }
              else if(equali(npc_classname, "skill_npc"))
              {

                     if (get_gametime() - g_soundTime[id] < 5)
                     return PLUGIN_HANDLED;

                     choose_skill_npc(id)
                     g_soundTime[id] = get_gametime()
              }
       }
       return FMRES_IGNORED;
}
我在地圖內寫入了一個NPC
不過在控制台不定時出現提示Run time error 10: native error <native "pev">
但是遊戲內測試沒問題的說..

問題代碼就是這一行 pev(ent, pev_classname, npc_classname, sizeof (npc_classname) - 1)
求高人解答表情

獻花 x0
引用 | 編輯 弒血
2015-06-23 21:31
1樓
  
下面是引用 glay2005 於 2015-06-23 21:17 發表的 Run time error 10: native error <native "pev">: 到引言文
[code]    register_forward(FM_Touch, "NPC_Touch")
public NPC_Touch(id, ent)
{
     if(!is_user_alive(id))
.......



equali

改成

equal 試看看


還有 在pev 上面 新增一個 if (!pev_valid(ent)) return FMRES_IGNORED;

獻花 x1
引用 | 編輯 glay2005
2015-06-23 21:41
2樓
  
下面是引用 s8720419 於 2015-06-23 21:31 發表的 : 到引言文




equali

改成

equal 試看看
感謝 已經不會出現錯誤提示了!
另外還有一個問題

        set_pev(AlienBoss, pev_classname, "AlienBossV1")
        set_pev(AlienBoss, pev_solid, SOLID_BBOX)
        set_pev(AlienBoss, pev_movetype, MOVETYPE_PUSHSTEP)
        set_pev(AlienBoss, pev_takedamage, DAMAGE_YES)
        set_pev(AlienBoss, pev_health, float(hp))
        set_pev(AlienBoss, pev_deadflag, DEAD_NO)
        set_pev(AlienBoss, pev_gravity, 1.0)
        set_pev(AlienBoss, pev_maxspeed, boss_speed)

是否有其他寫法給NPC取名讓Sypb Bot判定攻擊NPC呢?
把NPC ID寫入sypb_entity.cfg內好像Sypb Bot不會判定NPC的樣子..

獻花 x0
引用 | 編輯 弒血
2015-06-23 22:11
3樓
  
下面是引用 glay2005 於 2015-06-23 21:41 發表的 : 到引言文

感謝 已經不會出現錯誤提示了!
另外還有一個問題
        set_pev(AlienBoss, pev_classname, "AlienBossV1")
        set_pev(AlienBoss, pev_solid, SOLID_BBOX)
.......



那些是在敘述設定NPC的生成結構


BOT攻擊NPC好像要從BOT自動瞄準方面下手..我也還在研究這個

獻花 x1
引用 | 編輯 glay2005
2015-06-23 22:14
4樓
  
下面是引用 s8720419 於 2015-06-23 22:11 發表的 : 到引言文




那些是在敘述設定NPC的生成結構


BOT攻擊NPC好像要從BOT自動瞄準方面下手..我也還在研究這個
原來如此 看來只能打消這個念頭了 感謝解答^^

獻花 x0
引用 | 編輯 弒血
2015-06-23 22:20
5樓
  
下面是引用 glay2005 於 2015-06-23 22:14 發表的 : 到引言文

原來如此 看來只能打消這個念頭了 感謝解答^^



話說 sypb_entity.cfg 裡面都敘述什麼啊?


比較好奇 想知道一下 方便提供嗎

獻花 x0
引用 | 編輯 glay2005
2015-06-23 22:32
6樓
  
下面是引用 s8720419 於 2015-06-23 22:20 發表的 : 到引言文




話說 sypb_entity.cfg 裡面都敘述什麼啊?


比較好奇 想知道一下 方便提供嗎

// ------------------------------------------------------------------------
// This file is part of Strengthen Yet another POD-Bot Configuration Files.
// Copyright (c) 2003-2013, by HsK. All rights Reserved.
//
// Please check out the documentation files, before altering config files.
//
// $Id$
// ------------------------------------------------------------------------

// Demo Setting
npc_sionzom | 1, 1
lunatic_gift | 0, 3

// CSBTE Setting
d_bazooka | 0, 2
d_m79 | 0, 2
d_m32 | 0, 2
d_janus1 | 0, 2
d_fglauncher | 0, 2
d_at4 | 0, 2
d_at4cs | 0, 2
bte_supplybox | 2, 3

內容就這樣而已~
這是sypb_entity.cfg 使用教學: http://sypbbot.blog.fc2.com/blog-entry-16.html

獻花 x0
引用 | 編輯 glay2005
2015-06-23 22:43
7樓
  
下面是引用 s8720419 於 2015-06-23 22:20 發表的 : 到引言文




話說 sypb_entity.cfg 裡面都敘述什麼啊?


比較好奇 想知道一下 方便提供嗎
對了忽然想到一個問題
是否有辦法回合時間無限跟其中一個隊伍全員死亡或沒人像CT:0 T:5警察沒有人的狀態下不會導致回合結束呢?
想讓在NPC模式內不會因為上述原因而被限制
而且目前我是把NPC模式加進了ZP裡面

獻花 x0
引用 | 編輯 弒血
2015-06-24 00:00
8樓
  
下面是引用 glay2005 於 2015-06-23 22:43 發表的 : 到引言文

對了忽然想到一個問題
是否有辦法回合時間無限跟其中一個隊伍全員死亡或沒人像CT:0 T:5警察沒有人的狀態下不會導致回合結束呢?
想讓在NPC模式內不會因為上述原因而被限制
而且目前我是把NPC模式加進了ZP裡面



這個嗎. 防止回合結束模塊


http://bbs.mychat.to/reads.php?tid=921626&keyword=%E6%A8%A1%E5%A1%8A

獻花 x1
引用 | 編輯 glay2005
2015-06-24 08:01
9樓
  
下面是引用 s8720419 於 2015-06-24 00:00 發表的 : 到引言文




這個嗎. 防止回合結束模塊


http://bbs.mychat.to/reads.php?tid=921626&keyword=%E6%A8%A1%E5%A1%8A
這個或許可行 不過好像沒有時間無限~


複製程式
public SK(param[3])
{
       new ent = create_entity("info_target")
       if (ent == 0) return;
       
       // set entity's status
       entity_set_string(ent,EV_SZ_classname,"SK")
       entity_set_int(ent,EV_INT_movetype,MOVETYPE_FLY)
       entity_set_int(ent,EV_INT_solid,SOLID_BBOX)
       entity_set_int(ent,EV_INT_sequence,1)

       // set entity's model
       entity_set_model(ent,SK_Model)
       
       // set entity's size
       entity_set_size(ent,Float:{0.0, 0.0, -5.0},Float:{20.0, 20.0, 5.0})
       
       // get player's origin and set entity's origin
       new Float:origin[3]
       pev(param[0], pev_origin, origin)
       origin[2] =  float(param[2])+40.0
       entity_set_origin(ent, origin)
        
       set_pev(ent, pev_iuser1, param[1])
       
       if(sb[param[1]] > 1)
       {
              blast(origin, random_num(0, 100), random_num(0, 100), 255, 200)
                            
              new Distance
              for (new i = 1; i <= get_maxplayers(); i++)
              {
                     if (is_user_alive(i) && g_zombie[i]&& !hit[i])
                     {
                            Distance = get_entity_distance(i, ent)
                            if (Distance <= sb[param[1]]*60) 
                            {
                                   make_damage[i] = true
                                   make_damage_value[i] = float(10 + (sb[param[1]])*5)
                                   ExecuteHamB(Ham_TakeDamage, i, 1, param[1], 0.0, (DMG_SLASH|(1<<25)))
                                   
                            }
                     }
              }
       }
 }

又發現了其他地方有相同的Error

pev(param[0], pev_origin, origin)

這一行也出現Run time error 10: native error <native "pev">
求解

獻花 x0
引用 | 編輯 弒血
2015-06-24 12:39
10樓
  
下面是引用 glay2005 於 2015-06-24 08:01 發表的 : 到引言文

這個或許可行 不過好像沒有時間無限~

[code]public SK(param[3])
.......



用一樣的方法試看看


if (!pev_valid(param[0])) //這個是在檢察param[0]內的值 是否有效..
return;
pev(param[0], pev_origin, origin)

獻花 x1
引用 | 編輯 glay2005
2015-06-24 15:40
11樓
  
下面是引用 s8720419 於 2015-06-24 12:39 發表的 : 到引言文




用一樣的方法試看看


if (!pev_valid(param[0])) //這個是在檢察param[0]內的值 是否有效..
return;
pev(param[0], pev_origin, origin)
OK 已經解決了

獻花 x0