找回密码
 成为主人

QQ登录

只需一步,快速开始

查看: 5865|回复: 1

传奇脚本错误提示:不存在的NPC触发字段,明明存在的啊

[复制链接]

201

主题

181

回帖

1973

积分

管理员

积分
1973
发表于 2018-12-24 16:06:35 | 显示全部楼层 |阅读模式
不知道你有遇到过这样的情况吗?明明是存在的NPC触发字段,M2里总是提示:不存在的NPC触发字段,而且确实点击没有效果。这就涉及到写传奇脚本中特别要注意的一点,可能很多人都没有注意到这一点,看一下这个例子:
  1. [@多余的古籍残片]
  2. 如果你不想要你身上的古籍残片(小),那就给我吧,\
  3. 我对于这些散落的信息非常感兴趣,作为感谢,我给你1个火龙珠。\
  4. \ \
  5. <给你古籍残片(小)/@给你古籍残片(小)>\
  6. \ \
  7. <返回/@main>

  8. [@给你古籍残片(小)]
  9. #if
  10. checkitem 古籍残片(小) 1
  11. #ACT
  12. take 古籍残片(小) 1
  13. give 火龙珠 1
  14. goto @main
  15. #elsesay
  16. 你没有足够的古籍残片(小)啊!
复制代码

看起来是没有问题的,但实际运行的时候,总是会提示:“不存在的NPC触发字段: @给你古籍残片(小)”,这是什么原因呢?明明是有这个触发字段啊?

答案其实是这样的,在触发字段中,小括号中的内容会被引擎看成是参数。所以在上例中,你以为引擎会找@给你古籍残片(小),实际上引擎把括号里的(小)看成是参数,它找的是@给你古籍残片,从而导致了错误提示。
在GeeM2引擎中是这样的,其它引擎不确定。


希望遇到这样的问题的,注意不要小括号在做为触发字段的最后一个字符,上面的例子,我们可改为:
  1. [@多余的古籍残片]
  2. 如果你不想要你身上的古籍残片(小),那就给我吧,\
  3. 我对于这些散落的信息非常感兴趣,作为感谢,我给你1个火龙珠。\
  4. \ \
  5. <给你古籍残片(小)/@给你古籍残片(小)片>\
  6. \ \
  7. <返回/@main>

  8. [@给你古籍残片(小)片]
  9. #if
  10. checkitem 古籍残片(小) 1
  11. #ACT
  12. take 古籍残片(小) 1
  13. give 火龙珠 1
  14. goto @main
  15. #elsesay
  16. 你没有足够的古籍残片(小)啊!
复制代码


这样加了一个“片”字在触发字段的最后,就不会出错了,试试看吧!当然还有一个修改的办法是把后面要执行的触发代码字段名字的(小)去掉,写成[@给你古籍残片],也是可以的,但这个办法破坏了代码的可读性,不推荐这样修改。


回复

使用道具 举报

201

主题

181

回帖

1973

积分

管理员

积分
1973
 楼主| 发表于 2019-1-14 14:47:34 | 显示全部楼层
有不明白的请在下方回复!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 成为主人

本版积分规则

QQ|Archiver|手机版|小黑屋|无语西风——公益传奇 ( 豫ICP备14021580号 )

GMT+8, 2024-12-22 12:09 , Processed in 0.025498 second(s), 9 queries , MemCache On.

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表