MUSH菜鸟问题
在触发里面,我想把一个变量加一,怎么做啊?用SetVariable和a=a+1之类的方法都试过了,全都报错。。无语了,这么小的问题都困扰了我好久,求高人们帮助。。 原帖由 ljyinvader 于 2010-5-11 07:16 AM 发表 http://pkuxkx.com/forum/images/common/back.gif
在触发里面,我想把一个变量加一,怎么做啊?
用SetVariable和a=a+1之类的方法都试过了,全都报错。。无语了,这么小的问题都困扰了我好久,求高人们帮助。。
看看setvariable的返回代码是多少。 报错了怎么看返回啊。。我写成SetVariable("step",step+1)的时候,报下面的错
:1: attempt to perform arithmetic on global 'step' (a nil value)
stack traceback:
:1: in main chunk 我现在找到一种解决办法,把变量读到lua里面,然后在lua里面修改,不过我觉得这么做太傻了,有没有直接的方法啊。。 应该不行吧.本身就没zmud方便,已经是发送到lua解析了.脚本里写个也不麻烦.
坐等帝德来回答. 你取的那个变量需要转为数值型,有一个函数可以做到,具体可以搜索一下论坛.
还有一个简单办法
a = a*1 + 1
这样就可以了.
lua里的数值型很奇怪,好象一定要激活,或者转换一下才可以.很怪异 a=parseInt(a)+1 原帖由 ljyinvader 于 2010-5-11 07:36 AM 发表 http://pkuxkx.com/forum/images/common/back.gif
报错了怎么看返回啊。。我写成SetVariable("step",step+1)的时候,报下面的错
:1: attempt to perform arithmetic on global 'step' (a nil value)
stack traceback:
:1: ...
试试step = step + 1,发送到脚本。
学mush,要慢慢的去体会,这是和zmud很不同的mud客户端,变量就是其一。
变量,分为mush本身的变量,和脚本的变量。此两种变量有不同的优势,不要一味的只运用其中一种。 这里就要看你怎么理解Variable在MUSH里的概念了。
在ZMUD里变量就是一个数值或字符,而在MUSH里,变量只是一个存储器,它的作用是在LUA(或其它语言)不方便直接使用被调用数值或字符时,暂时存储进去。所以有SetVariable()和GetVariable(),使用的时候用GetVariable()调用。
另外说一点:SetVariable()和GetVariable()以字符类型存储数字。
最好楼主还是把Trigger的具体内容发上来看看。 原帖由 lzkd 于 2010-5-11 09:08 AM 发表 http://edu.pkuxkx.com:8082/forum/images/common/back.gif
你取的那个变量需要转为数值型,有一个函数可以做到,具体可以搜索一下论坛.
还有一个简单办法
a = a*1 + 1
这样就可以了.
lua里的数值型很奇怪,好象一定要激活,或者转换一下才可以.很怪异
6楼7楼你们好像误会我的意思了。。在lua里面加我会,但是不会在触发里面直接加,我是觉得为了把变量加一还要写个函数有点多余,我又弄了一下,感觉MUSH里面的变量实际上只有字符串形式的,没有数字,所以读到lua里面得计算一下才会转成数字,用tonumber也可以。