wlczx 发表于 2020-4-7 19:15:48

报错,大侠看看哪里有问题?(掌上mud)

要实现发现什么书就读什么书:

触发语句:
你找到一本易经,欣喜若狂。
触发指令:
local shu = %1
If %1 == "易经" then
shu = "yi jing"
elseIf %1 == "推背图" then
shu = "tuibei tu"
elseIf %1 == "洛书" then
shu = "luo shu"
elseIf %1 == "河图" then
shu = "he tu"
esleif %1 == "奇门遁甲” then
shu = "qimen dunjia"
end
execute("du"..%1.."for 1")

报错:
> :2: unexpected symbol near '<\226>'

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

xurufeng 发表于 2020-4-7 22:03:25

本帖最后由 xurufeng 于 2020-4-7 02:05 PM 编辑

Execute("du "..%1.." for 1")
或者
Execute("du "..shu.." for 1")
注意空格,以及大小写

nrm 发表于 2020-4-8 08:10:17

回复 1# wlczx


    1、你要是想用%1赋值,需要你的触发语句里有变量提取通配符。
         例如:你找到一本(\S+),欣喜若狂。
    2、你想要把%1赋值成为字符串形式,你需要用引号括起来。
         例如:local shu="%1"
    3、既然你的变量shu是用来表示物品id,那上一条语句等于废话。
    4、想把变量%1与字符串做对比,也需要用引号括起来。
         例如:if “%1”==“易经" then
   
    不知道我说明白了没有

nrm 发表于 2020-4-8 08:21:37

另外二楼说得对
execute不等于Execute ,大小写不能错

%1抓取的是汉字,即便你语句写正确了
你输出的也是"du 易经 for 1"
是不是很蛋疼
因为你基本逻辑没搞清
看来是没什么编程经验
多练练就好了

yyzq 发表于 2020-4-8 17:37:13

local shu = ""
if "%1" == "易经" then
shu = "yi jing"
elseif "%1" == "推背图" then
shu = "tuibei tu"
elseif "%1" == "洛书" then
shu = "luo shu"
elseif "%1" == "河图" then
shu = "he tu"
elseif "%1" == "奇门遁甲” then
shu = "qimen dunjia"
end
Execute("du "..shu.." for 1")

wlczx 发表于 2020-4-11 14:54:32

回复 2# xurufeng


   大小写确实是个问题{:7_280:}

wlczx 发表于 2020-4-11 14:56:09

回复 4# nrm


    完全没学过编程啊~~问题指的很对,已经解决,谢啦

wlczx 发表于 2020-4-11 14:57:00

回复 5# yyzq


    到位,谢
页: [1]
查看完整版本: 报错,大侠看看哪里有问题?(掌上mud)