传奇服务端脚本错误,哪位高手帮我看下。加入新的脚本后变量不对

2024-11-12 22:11:49
推荐回答(1个)
回答(1):

我不知道你的端怎么样的,但有一个前提就是有很多端都是变量只到99的,比如A99,G99什么的,所以你的端可能不支持到500以上的变量。。你可以自己声明几个共公变量,很简单,但要注意一定要在MF里设置哦!

还有就是刚看了你发的这个脚本,是无忧网络的对吧,不知道是谁做的,思路不错,但错误和累赘的地方还真多。。。。。
比如:
[@买下]
#IF
CHECKGAMEGOLD > 10
CHECKGAMEGOLD > <$str(g55)>
#ACT
mov g56 2
gamegold - <$str(g55)>
gamegold - 10

上面这个脚本发现没有,完全是个错误的判断,首先他判断了如果元宝大于10并且大于G55(这里还有个小错误:<$STR(g55)>里面的g必须是大写的,要不系统不认识!),那么执行G56等于2,减元宝G55个,再减元宝10个。。。。。看懂没?前面说如果大于10并大于G55,也就是说需要大于10的基础上大于G55就可以执行减元宝G55+10的命令。。那么这里的G55假设一下等于任意一个数,比如50,那也就是说在大于10的基础上再大于50就可以减去60。。。。多操。蛋的算法。。。。

你将它改成这样就OK了:
[@买下]
#act
mov N99 <$STR(G55)>
inc N99 10
goto @判断完毕
[@判断完毕]
#IF
CHECKGAMEGOLD > <$STR(N99)>
#ACT
mov g56 2
gamegold - <$STR(N99)>

还有呵,下面的脚本段里完全没必要用两个脚本段来实现,一个就够了:
[@管理领地]
#IF
#ACT
MOV S97 <$USERNAME>
GOTO @领主检测8
[@领主检测8]
#IF
EQUAL S97 <$str(A451)>
#SAY
你好!在这里你可以自由的管理你的领地\ \
<设置进入元宝数/@设置进入>
#ELSEACT
MESSAGEBOX 【提示】:抱歉,您不是该地图的主人!

看到了吗?它把用户名的值赋给S97然后再判断S97与A451的大小,这真的很蛋儿疼,直接判断用户名和A451的大小不就得了。。。。。如下:
[@管理领地]
#IF
EQUAL A451 <$USERNAME>
#SAY
你好!在这里你可以自由的管理你的领地\ \
<设置进入元宝数/@设置进入>
#ELSEACT
MESSAGEBOX 【提示】:抱歉,您不是该地图的主人!