selfmud 发表于 2011-9-9 16:59:11

学习mush中遇见个问题请教

由于新学不知道如何下手,所有找了个别人的简单代码自己改着看
昨天下载了个学习的机器。
其中有一段是这样
--setVariable("gosleep","4se3s2ws(sleep)")
说明里面写的是gosleep就是从师傅到睡觉的地方的路径,但是代码里面这句前面加了--,因此是不起作用的,我想叫这句起作用,结果去掉了--,结果报错
后来我又把这句改成了alias,做成gosleep代表后面的路径,结果发现还是不对
我在代码的后面发现了引用gosleep的地方
function gosleep()
local gosleep = GetVariable("gosleep")
local master = GetVariable("master")
local bookvar = GetVariable("skilllist")
local booklist = split(bookvar,",")
local id = GetVariable("bookid")
id=id+0
print(booklist)
Send("do 10 learn "..booklist.." from "..master.." for 50")
Send("do 10 learn "..booklist.." from "..master.." for 50")
Send("do 10 learn "..booklist.." from "..master.." for 50")
Send("do 10 learn "..booklist.." from "..master.." for 50")
Send("do 10 learn "..booklist.." from "..master.." for 50")
wait.make(function()
wait.time(1)
local zhu = GetVariable("zhuok")*1
if(zhu==1) then
DoAfterSpeedWalk(0.1,"(ask zhu about question)")
wait.time(2)
SetVariable("zhuok",0)
end
DoAfterSpeedWalk(0.1,"(verify "..booklist..")")
DoAfterSpeedWalk(1.1,gosleep)
end)
end

我现在的问题是:
1、setVariable("gosleep","4se3s2ws(sleep)")   这句话,给gosleep赋值,是这样做的吗?错在哪里?
2、如果我把这里的gosleep赋值这句话改成alias,比如改成AddAlias("gosleep_alias", "gosleep", "4se3s2ws(sleep)", alias_flag.Enabled, ""),如果我这样做了,后面咋修改





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

selfmud 发表于 2011-9-9 17:27:51

啊。大写就解决问题了吗。。?

selfmud 发表于 2011-9-9 17:52:27

原帖由 <i>istillsun</i> 于 2011-9-9 05:29 PM 发表 <a href="http://pkuxkx.net/forum/redirect.php?goto=findpost&pid=283443&ptid=23341" target="_blank"><img src="http://pkuxkx.net/forum/images/common/back.gif" border="0"   alt="" /></a><br />
然后呢,在AddAlias("gosleep_alias", "gosleep", "4se3s2ws(sleep)", alias_flag.Enabled, ""<img src="images/smilies/default/wink.gif" smilieid="4" border="0" alt="" />后面试试这句:<br />
SetAliasOption("gosleep_alias","send","4se3s2ws(sleep)aaaaaaa"<img src="images/smilies/default/wink.gif" smilieid="4" border="0" alt="" /><br />
这个语句是这样用的:<br />
SetAlias ... <br />
你的意思是我在前面把SetVariable改成AddAlias,,然后在这个AddAlias下面一行写SetAliasOption?
我觉得既然已经做好了Alias,那我后面是不是可以直接引用就行了。后面那个GetVariable直接改成GetAlias是不是就可以?
我不懂,自己想的

[ 本帖最后由 selfmud 于 2011-9-9 05:59 PM 编辑 ]

silveralex 发表于 2011-9-9 19:55:06

偷窥美女高手~

littleknife 发表于 2011-9-9 20:16:20

其实MUSH中,应用变量也是两大类的,一个是MUSH客户端带的命令是SetVariable,一个是Lua的赋值语句。
SetVariable是把变量存储到MUSH变量列表里。lua赋值语句是存到lua变量中,重新载入lua会重置。hz5

selfmud 发表于 2011-9-9 21:06:56

原帖由 <i>littleknife</i> 于 2011-9-9 08:16 PM 发表 <a href="http://pkuxkx.net/forum/redirect.php?goto=findpost&pid=283494&ptid=23341" target="_blank"><img src="http://pkuxkx.net/forum/images/common/back.gif" border="0" onclick="zoom(this)" onload="attachimg(this, 'load')" alt="" /></a><br />
其实MUSH中,应用变量也是两大类的,一个是MUSH客户端带的命令是SetVariable,一个是Lua的赋值语句。<br />
SetVariable是把变量存储到MUSH变量列表里。lua赋值语句是存到lua变量中,重新载入lua会重置。<img src="images/smilies/monkey/5.gif" smilieid="111" border="0" alt="" /> <br />

举例说明

basara 发表于 2011-9-9 22:27:04

首先呢...然后呢...

技术流美眉随便说个话都这么可爱, 唉, 好吧, 我花痴了的说...

fantom 发表于 2011-9-10 18:26:31

8楼是正解,注释掉是为了不如每次重载的时候覆盖掉你自己设置的变量。

selfmud 发表于 2011-9-11 06:17:09


谢谢

littleknife 发表于 2011-9-11 22:36:17

我现在的问题是:
1、setVariable("gosleep","4se3s2ws(sleep)")   这句话,给gosleep赋值,是这样做的吗?错在哪里?
2、如果我把这里的gosleep赋值这句话改成alias,比如改成AddAlias("gosleep_alias", "gosleep", "4se3s2ws(sleep)", alias_flag.Enabled, ""),如果我这样做了,后面咋修改



1. SetVariable,就是MUSH自己客户端的一个函数,它的作用是向MUSH自带的变量列表里写入内容。
你执行了:SetVariable("gosleep","4se3s2ws(sleep)")   ,就会发现变量列表里多了一个变量,名称是gosleep,内容是4se3s2ws(sleep)
若想用这个变量作为alias使用,需用DoAfterSpecial(time,gosleep,11),把gosleep当成快速行走来解释即可。

---------------------------------------------------------------------------------------------------------------------
若你直接用赋值语句,gosleep="4se3s2ws(sleep)",其实就是在内存中存储了一个变量gosleep,只要你不重新载入脚本,它都可以使用,当然得是全局变量,若前面带local,就不成了。
---------------------------------------------------------------------------------------------------------------------



2.AddAlias(),也是MUSH内部函数,它的作用就是用函数的方式建立一个Alias:

long AddAlias(BSTR AliasName, BSTR MatchText, BSTR ResponseText, long Flags, BSTR ScriptName);

AddAlias("gosleep_alias", "gosleep", "4se3s2ws(sleep)", alias_flag.AliasSpeedWalk, ""),

没直接用Addalias做Speedwalk的Alias,估计要用得改成上面的形式。自己试试吧。


页: [1] 2
查看完整版本: 学习mush中遇见个问题请教