waiwai 发表于 2018-1-8 20:35:21

请教 MUSH 里面的变量间运算

RT
想请教下 MUSH 里的 变量是怎么计算的 命令是什么

比如 ZMUD 里的 #math可以做四则运算

在MUSH里是怎么实现的

比如我想做一个打坐机器人,已经提取了4个变量变量qi maxqi neili maxneili

我想运算    maxneili*2-neili+1   然后设置成临时变量,是怎么实现的

local dz1=GetVariable("maxneili")*2+1;
local dz2=GetVariable("qi")/10*9;

现在只会写成这样,就不会了

请各位大侠不吝赐教,谢谢

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

creat 发表于 2018-1-8 23:40:13

首先,在获取的时候没有必要用SetVariable,直接赋值就好了。这种消耗型的变量没有写进mcl变量的价值
比如neili,maxneili,qi,maxqi="%1","%2","%3","%4"以上是一个示例,不记得顺序了
其次,运算的时候直接用符号运算就可以
比如local dz1=maxneili*2+1
local dz2=qi/10*9
local skillslevel=(exp*10)^(1/3)

waiwai 发表于 2018-1-9 11:38:00

回复 2# creat

首先谢谢知道

现在写成这样,变量和计算得到指导都没问题 ,

下面的判断还是搞不懂怎么写,总是错,求指导,谢谢

exp,pot,maxneili,neili,maxjingli,jinli,maxqi,qi,maxjing,jing="%1","%2","%3","%4","%5","%6","%8","%9","%<11>","%<12>"

local dz1=maxneili*2+1-neili
local dz2=qi/10*9

if dz1<=dz2 then Send ("dazuo "..dz1)

elesif dz1 <= 10 then Send ("dazuo 10")

eles Send ("dazuo "..dz2)

end

creat 发表于 2018-1-9 12:12:14

逻辑和语法上没错,只是拼写错误
另外推荐用一个Send来处理,否则容易引起后续维护上的麻烦local act1
if dz1<=dz2 then act1="dazuo "..dz1
elseif dz1 <= 10 then act1="dazuo 10"
else act1="dazuo "..dz2
end
print (act1)

waiwai 发表于 2018-1-9 12:45:58

回复 4# creat


谢谢 搞定了这个弄懂了就能搞定一堆初级的东西了
页: [1]
查看完整版本: 请教 MUSH 里面的变量间运算