红鹰论坛

 找回密码
 立即注册
查看: 2177|回复: 15

脚本优化—新手GM必看

[复制链接]

75

主题

24

回帖

696

积分

三级GM

Rank: 4

积分
696
发表于 2014-12-22 23:23:16 | 显示全部楼层 |阅读模式
应该说很多坛友们都碰到过脚本死循环的例子。除了很意外的错误之外,一般的解决方法都是修改setup文件里的goto循环次数,可是这个方法有时候并不能彻底解决问题,往往是看似解决了但是M2会不定时的出现脚本死循环,此时M2应该是一种假死的状态,对报错的脚本应该是无法执行了,我们此时按照路径去查找怎么看都看不出哪里出错了。包括脚本的一些逻辑什么的都很正确,这该怎么办呢?这就需要我们平时编写的时候养成一个良好的习惯,也可以说是一个良好的手法!下面我会举例说明!


首先来看一段转生的脚本,这是我之前玩传奇写过的,因为平时没事了我们几个朋友都会聚一块儿玩内服,租个便宜简单的服务器或者自己电脑开一个

[@一转]
#IF
CHECKLEVELEX > 54
#ACT
goto @一转一
#ELSESAY
哦!你的等级还没有55级哦!先升级再说吧

[@一转一]
#IF
CHECKRENEWLEVEL < 1
#ACT
goto @一转二
#ELSESAY
哦!你都进行过一转了还来干吗?

[@一转二]
#IF
CHECKGAMEGOLD > 999
#ACT
gamegold - 1000
RENEWLEVEL 1 0 100
#CALL [\封号系统\封号系统.txt] @封号系统
#CALL [\封号系统\名字变色.txt] @名字变色
SendCenterMsg 253 180 恭喜<$USERNAME>一转成功,奖励可自由分配属性点100个!
#ELSESAY
哦!你连1000个元宝都没有!等凑足了元宝再说吧!


[@二转]
#IF
CHECKLEVELEX > 59
#ACT
goto @二转一
#ELSESAY
哦!你的等级还没有60级哦!先升级再说吧

[@二转一]
#IF
CHECKRENEWLEVEL = 1
#ACT
goto @二转二
#ELSESAY
哦!你还没进行一转就来二转呀!先一转了再说吧!

[@二转二]
#IF
CHECKRENEWLEVEL > 1
#ACT
Messagebox 错误:你都进行过二转了还来干吗?有病呀你!
#ELSEACT
goto @二转三

[@二转三]
#IF
CHECKGAMEGOLD > 1999
#ACT
gamegold - 2000
RENEWLEVEL 1 0 200
#CALL [\封号系统\封号系统.txt] @封号系统
#CALL [\封号系统\名字变色.txt] @名字变色
SendCenterMsg 253 180 恭喜<$USERNAME>二转成功,奖励可自由分配属性点200个!
#ELSESAY
哦!你连2000个元宝都没有!等凑足了元宝再说吧!


大家有木有发现这个脚本有什么漏洞,一般来说没什么问题,各种逻辑什么的都是正确的,但是这里用到了5个goto,因为一转要符合55级以上加1000个元宝,二转要符合60级以上加2000个元宝,并且都要一级级来转,5个goto就代表了5个检测条件,思路很正确,但是何必要用5个goto呢?一定程度上加大了引擎的负荷以及为死循环创造了条件!因为还有另外一种方式,看看是不是更简单一些

[@一转]
#IF
CHECKLEVELEX < 55
#ACT
Messagebox:哦!你的等级还没有55级哦!先升级再说吧
break

#IF
CHECKRENEWLEVEL > 0
#ACT
Messagebox:哦!你都进行过一转了还来干吗?
break

#IF
CHECKGAMEGOLD > 999
#ACT
gamegold - 1000
RENEWLEVEL 1 0 100
#CALL [\封号系统\封号系统.txt] @封号系统
#CALL [\封号系统\名字变色.txt] @名字变色
SendCenterMsg 253 180 恭喜<$USERNAME>一转成功,奖励可自由分配属性点100个!
#ELSESAY
哦!你连1000个元宝都没有!等凑足了元宝再说吧!


[@二转]
#IF
CHECKLEVELEX < 60
#ACT
Messagebox:哦!你的等级还没有60级哦!先升级再说吧
break

#IF
CHECKRENEWLEVEL > 1
#ACT
Messagebox 错误:你都进行过二转了还来干吗?有病呀你!
break

#IF
CHECKGAMEGOLD < 2000
#ACT
Messagebox:哦!你连2000个元宝都没有!等凑足了元宝再说吧!
break

#IF
CHECKRENEWLEVEL = 1
#ACT
gamegold - 2000
RENEWLEVEL 1 0 200
#CALL [\封号系统\封号系统.txt] @封号系统
#CALL [\封号系统\名字变色.txt] @名字变色
SendCenterMsg 253 180 恭喜<$USERNAME>二转成功,奖励可自由分配属性点200个!
#ELSESAY
哦!你都还没一转呢,一转了再来吧!


好了来看看这样是不是很简单,一个goto都没有又少了很多个段落,当然这是一个很简单的例子,但是他的实际用途是非常广泛的,这里尤其要是注意的是在一些每秒执行的定时器或者机器人脚本里面这么来写非常重要,每秒执行的脚本如果goto太多的话对引擎的负荷是很明显的,也是最容易出现脚本死循环的地方!包括站里我以前发的一些脚本或者最近有坛友也提出这么个问题,毕竟我也是一腔热血嘛!希望用到之前脚本的来看看这个帖子!

最后我们来总结一下,要简化一个脚本应该注意什么!我认为我的脑袋瓜子应该是挺好使的undefined!但是真的我文采不好,说不出个一二三来,我也只能说如果检测条件多的话难检测的条件应该是在最上面的,因为脚本都是一级一级往下执行的!同时要善于运用break,少用#ELSEACT+@goto!希望碎痕斑斑和walk斑斑或者站内的高手们能补充一下




上一篇:传奇私服跨时代佩戴指定装备获取封号脚本
下一篇:传送员精简美化脚本,适合各类版本,Leg引擎
版本修改,漏洞修复,脚本订做。QQ775251969 个性脚本站
www.wu79.com
回复

举报

1

主题

193

回帖

206

积分

二级GM

Rank: 3Rank: 3

积分
206
发表于 2014-12-23 13:02:37 | 显示全部楼层
好好 学习了 确实不错

0

主题

240

回帖

227

积分

二级GM

Rank: 3Rank: 3

积分
227
发表于 2014-12-23 14:27:31 | 显示全部楼层
纯粹路过,没任何兴趣,仅仅是看在老用户份上回复一下

1

主题

200

回帖

329

积分

二级GM

Rank: 3Rank: 3

积分
329
发表于 2014-12-23 21:53:25 | 显示全部楼层
沙发???

0

主题

452

回帖

420

积分

二级GM

Rank: 3Rank: 3

积分
420
发表于 2014-12-24 02:08:50 | 显示全部楼层
这么强,支持楼主,佩服

0

主题

357

回帖

354

积分

二级GM

Rank: 3Rank: 3

积分
354
发表于 2014-12-24 04:59:49 | 显示全部楼层
不错 支持下。。。

0

主题

288

回帖

267

积分

二级GM

Rank: 3Rank: 3

积分
267
发表于 2014-12-24 12:25:29 | 显示全部楼层
看帖回帖是美德!

1

主题

184

回帖

184

积分

一级GM

Rank: 2

积分
184
发表于 2014-12-24 17:22:41 | 显示全部楼层
沙发???

0

主题

588

回帖

547

积分

三级GM

Rank: 4

积分
547
发表于 2014-12-24 20:54:50 | 显示全部楼层
非常好,顶一下

0

主题

507

回帖

612

积分

三级GM

Rank: 4

积分
612
发表于 2014-12-25 05:26:10 | 显示全部楼层
珍爱生命,果断回帖。

0

主题

445

回帖

417

积分

二级GM

Rank: 3Rank: 3

积分
417
发表于 2014-12-25 20:17:54 | 显示全部楼层
前排,哇咔咔

0

主题

364

回帖

467

积分

二级GM

Rank: 3Rank: 3

积分
467
发表于 2014-12-25 22:46:17 | 显示全部楼层
好,很好,非常好!

0

主题

628

回帖

603

积分

三级GM

Rank: 4

积分
603
发表于 2014-12-26 03:00:56 | 显示全部楼层
支持支持再支持

1

主题

383

回帖

352

积分

二级GM

Rank: 3Rank: 3

积分
352
发表于 2014-12-26 08:40:59 | 显示全部楼层
高手云集 果断围观

0

主题

287

回帖

269

积分

二级GM

Rank: 3Rank: 3

积分
269
发表于 2014-12-26 09:23:31 | 显示全部楼层
看帖回帖是美德!

0

主题

415

回帖

375

积分

二级GM

Rank: 3Rank: 3

积分
375
发表于 2014-12-27 06:38:10 | 显示全部楼层
发发呆,回回帖,工作结束~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

新手推荐上一条 /1 下一条

传奇服务端|传奇一条龙|站点地图|手机版|gm基地|红鹰论坛 ( 冀ICP备2023015431号-1 )|网站地图

GMT+8, 2024-9-20 10:18

Powered by 传奇版本 X3.4

本站于2013年2月28日成立,至今运行: 天。本站所有资源均来自网络,严禁商业使用,请于24小时内删除!
快速回复 返回顶部 返回列表