北大侠客行MUD论坛

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

学习mush中遇见个问题请教

[复制链接]
发表于 2011-9-9 16:59:11 | 显示全部楼层 |阅读模式
由于新学不知道如何下手,所有找了个别人的简单代码自己改着看
昨天下载了个学习的机器。
其中有一段是这样
--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[id])
Send("do 10 learn "..booklist[id].." from "..master.." for 50")
Send("do 10 learn "..booklist[id].." from "..master.." for 50")
Send("do 10 learn "..booklist[id].." from "..master.." for 50")
Send("do 10 learn "..booklist[id].." from "..master.." for 50")
Send("do 10 learn "..booklist[id].." 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[id]..")")
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
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2011-9-9 17:27:51 | 显示全部楼层
啊。大写就解决问题了吗。。?
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2011-9-9 17:52:27 | 显示全部楼层
原帖由 istillsun 于 2011-9-9 05:29 PM 发表

然后呢,在AddAlias("gosleep_alias", "gosleep", "4se3s2ws(sleep)", alias_flag.Enabled, ""后面试试这句:

SetAliasOption("gosleep_alias","send","4se3s2ws(sleep)aaaaaaa"

这个语句是这样用的:

SetAlias ...


你的意思是我在前面把SetVariable改成AddAlias,,然后在这个AddAlias下面一行写SetAliasOption?
我觉得既然已经做好了Alias,那我后面是不是可以直接引用就行了。后面那个GetVariable直接改成GetAlias是不是就可以?
我不懂,自己想的

[ 本帖最后由 selfmud 于 2011-9-9 05:59 PM 编辑 ]
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2011-9-9 19:55:06 | 显示全部楼层
偷窥美女高手~
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2011-9-9 20:16:20 | 显示全部楼层
其实MUSH中,应用变量也是两大类的,一个是MUSH客户端带的命令是SetVariable,一个是Lua的赋值语句。
SetVariable是把变量存储到MUSH变量列表里。lua赋值语句是存到lua变量中,重新载入lua会重置。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2011-9-9 21:06:56 | 显示全部楼层
原帖由 littleknife 于 2011-9-9 08:16 PM 发表

其实MUSH中,应用变量也是两大类的,一个是MUSH客户端带的命令是SetVariable,一个是Lua的赋值语句。

SetVariable是把变量存储到MUSH变量列表里。lua赋值语句是存到lua变量中,重新载入lua会重置。



举例说明
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2011-9-9 22:27:04 | 显示全部楼层
首先呢...然后呢...

技术流美眉随便说个话都这么可爱, 唉, 好吧, 我花痴了的说...
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2011-9-10 18:26:31 | 显示全部楼层
8楼是正解,注释掉是为了不如每次重载的时候覆盖掉你自己设置的变量。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2011-9-11 06:17:09 | 显示全部楼层

谢谢
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 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,估计要用得改成上面的形式。自己试试吧。


北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 06:25 AM , Processed in 0.011330 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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