ljyinvader 发表于 2010-5-11 07:16:21

MUSH菜鸟问题

在触发里面,我想把一个变量加一,怎么做啊?
用SetVariable和a=a+1之类的方法都试过了,全都报错。。无语了,这么小的问题都困扰了我好久,求高人们帮助。。

zzyb 发表于 2010-5-11 07:33:35

原帖由 ljyinvader 于 2010-5-11 07:16 AM 发表 http://pkuxkx.com/forum/images/common/back.gif
在触发里面,我想把一个变量加一,怎么做啊?
用SetVariable和a=a+1之类的方法都试过了,全都报错。。无语了,这么小的问题都困扰了我好久,求高人们帮助。。

看看setvariable的返回代码是多少。

ljyinvader 发表于 2010-5-11 07:36:39

报错了怎么看返回啊。。我写成SetVariable("step",step+1)的时候,报下面的错
:1: attempt to perform arithmetic on global 'step' (a nil value)
stack traceback:
        :1: in main chunk

ljyinvader 发表于 2010-5-11 07:38:20

我现在找到一种解决办法,把变量读到lua里面,然后在lua里面修改,不过我觉得这么做太傻了,有没有直接的方法啊。。

muxiao 发表于 2010-5-11 08:09:48

应该不行吧.本身就没zmud方便,已经是发送到lua解析了.脚本里写个也不麻烦.
坐等帝德来回答.

lzkd 发表于 2010-5-11 09:08:07

你取的那个变量需要转为数值型,有一个函数可以做到,具体可以搜索一下论坛.

还有一个简单办法

a = a*1 + 1

这样就可以了.
lua里的数值型很奇怪,好象一定要激活,或者转换一下才可以.很怪异

sure 发表于 2010-5-11 09:13:58

a=parseInt(a)+1

hba 发表于 2010-5-11 09:22:45

原帖由 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本身的变量,和脚本的变量。此两种变量有不同的优势,不要一味的只运用其中一种。

ddid 发表于 2010-5-11 09:36:32

这里就要看你怎么理解Variable在MUSH里的概念了。

在ZMUD里变量就是一个数值或字符,而在MUSH里,变量只是一个存储器,它的作用是在LUA(或其它语言)不方便直接使用被调用数值或字符时,暂时存储进去。所以有SetVariable()和GetVariable(),使用的时候用GetVariable()调用。

另外说一点:SetVariable()和GetVariable()以字符类型存储数字。

最好楼主还是把Trigger的具体内容发上来看看。

ljyinvader 发表于 2010-5-11 09:38:43

原帖由 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也可以。
页: [1] 2 3 4
查看完整版本: MUSH菜鸟问题