北大侠客行MUD论坛

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

请教 MUSH 里面的变量间运算

[复制链接]
发表于 2018-1-8 20:35:21 | 显示全部楼层 |阅读模式
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
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2018-1-8 23:40:13 | 显示全部楼层
首先,在获取的时候没有必要用SetVariable,直接赋值就好了。这种消耗型的变量没有写进mcl变量的价值
比如
  1. neili,maxneili,qi,maxqi="%1","%2","%3","%4"
复制代码
以上是一个示例,不记得顺序了
其次,运算的时候直接用符号运算就可以
比如
  1. local dz1=maxneili*2+1
  2. local dz2=qi/10*9
  3. local skillslevel=(exp*10)^(1/3)
复制代码
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 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
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2018-1-9 12:12:14 | 显示全部楼层
逻辑和语法上没错,只是拼写错误
另外推荐用一个Send来处理,否则容易引起后续维护上的麻烦
  1. local act1
  2. if dz1<=dz2 then act1="dazuo "..dz1
  3. elseif dz1 <= 10 then act1="dazuo 10"
  4. else act1="dazuo "..dz2
  5. end
  6. print (act1)
复制代码
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2018-1-9 12:45:58 | 显示全部楼层
回复 4# creat


谢谢 搞定了  这个弄懂了  就能搞定一堆初级的东西了
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-20 08:02 PM , Processed in 0.009317 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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