北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 13834|回复: 37

MUSH菜鸟问题

[复制链接]
发表于 2010-5-11 07:16:21 | 显示全部楼层 |阅读模式
在触发里面,我想把一个变量加一,怎么做啊?
用SetVariable和a=a+1之类的方法都试过了,全都报错。。无语了,这么小的问题都困扰了我好久,求高人们帮助。。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-5-11 07:33:35 | 显示全部楼层
原帖由 ljyinvader 于 2010-5-11 07:16 AM 发表
在触发里面,我想把一个变量加一,怎么做啊?
用SetVariable和a=a+1之类的方法都试过了,全都报错。。无语了,这么小的问题都困扰了我好久,求高人们帮助。。


看看setvariable的返回代码是多少。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2010-5-11 07:36:39 | 显示全部楼层
报错了怎么看返回啊。。我写成SetVariable("step",step+1)的时候,报下面的错
[string "触发器: "]:1: attempt to perform arithmetic on global 'step' (a nil value)
stack traceback:
        [string "触发器: "]:1: in main chunk
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2010-5-11 07:38:20 | 显示全部楼层
我现在找到一种解决办法,把变量读到lua里面,然后在lua里面修改,不过我觉得这么做太傻了,有没有直接的方法啊。。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-5-11 08:09:48 | 显示全部楼层
应该不行吧.本身就没zmud方便,已经是发送到lua解析了.脚本里写个也不麻烦.
坐等帝德来回答.
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-5-11 09:08:07 | 显示全部楼层
你取的那个变量需要转为数值型,有一个函数可以做到,具体可以搜索一下论坛.

还有一个简单办法

a = a*1 + 1

这样就可以了.
lua里的数值型很奇怪,好象一定要激活,或者转换一下才可以.很怪异
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-5-11 09:13:58 | 显示全部楼层
a=parseInt(a)+1
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-5-11 09:22:45 | 显示全部楼层
原帖由 ljyinvader 于 2010-5-11 07:36 AM 发表
报错了怎么看返回啊。。我写成SetVariable("step",step+1)的时候,报下面的错
[string "触发器: "]:1: attempt to perform arithmetic on global 'step' (a nil value)
stack traceback:
        [string "触发器: "]:1: ...



试试step = step + 1,发送到脚本。
学mush,要慢慢的去体会,这是和zmud很不同的mud客户端,变量就是其一。
变量,分为mush本身的变量,和脚本的变量。此两种变量有不同的优势,不要一味的只运用其中一种。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-5-11 09:36:32 | 显示全部楼层
这里就要看你怎么理解Variable在MUSH里的概念了。

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

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

最好楼主还是把Trigger的具体内容发上来看看。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2010-5-11 09:38:43 | 显示全部楼层
原帖由 lzkd 于 2010-5-11 09:08 AM 发表
你取的那个变量需要转为数值型,有一个函数可以做到,具体可以搜索一下论坛.

还有一个简单办法

a = a*1 + 1

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

6楼7楼你们好像误会我的意思了。。在lua里面加我会,但是不会在触发里面直接加,我是觉得为了把变量加一还要写个函数有点多余,我又弄了一下,感觉MUSH里面的变量实际上只有字符串形式的,没有数字,所以读到lua里面得计算一下才会转成数字,用tonumber也可以。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-24 11:12 PM , Processed in 0.010196 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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