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