rki 发表于 2014-3-9 03:11:37

mush多次颜色触发的问题

在论坛里看到大神们关于颜色触发的帖子后,自己做了个wd炼丹quest的脚本。结果连续弹出第二次报了这样错误。这应该怎么解决呢?多谢啦

log:
Run-time error
World: rki
Immediate execution
:1: attempt to call global 'lu_color' (a number value)
stack traceback:
      :1: in main chunk


以下是tri和脚本
<triggers>
<trigger
   enabled="y"
   group="liandan"
   match=".*\^{5}.*"
   regexp="y"
   send_to="12"
   sequence="100"
>
<send>lu_color()</send>
</trigger>
</triggers>

function lu_color (name, line, wildcards, styles)
      local line_num = GetLinesInBufferCount()
      local styles_num = GetLineInfo(line_num,11)
      for i = 1,styles_num do
          if GetStyleInfo(line_num,i,1) == "^" then
             lu_color = GetStyleInfo(line_num,i,14)
             lu_color_ch = RGBColourToName (lu_color)
             print("Lu的颜色是:"..lu_color_ch..",代码是:"..lu_color)
               break
         end
      end
end

北大侠客行MUD,中国最好的MUD

hahh 发表于 2014-3-9 07:27:04

函数名和里面的变量名重复,机器傻了

rki 发表于 2014-3-9 12:09:58

问题是第一次触发是成功的,第二次就开始报错了。

rki 发表于 2014-3-9 12:10:03

问题是第一次触发是成功的,第二次就开始报错了。

madder 发表于 2014-3-9 13:21:32

回复 4# rki


    第一次触发成功后那个数值型lu_color覆盖了函数型lu_color,第二次调用当然就不灵光了。要养成编程的好习惯:
1不要用重名变量(lua里的函数好像也算变量吧)
2 能用局部变量的地方不要用全局变量

rki 发表于 2014-3-10 20:20:41

已经改出来了。谢谢大家啊!!!!
页: [1]
查看完整版本: mush多次颜色触发的问题