找回密码
 立即注册

[其他] 田野传世版本架设攻略之npc脚本的自行流程说明

[复制链接]
antyvfl 发表于 2022-10-9 00:53:36 | 显示全部楼层 |阅读模式
昨天小编和大家分享过一篇关于传奇世界私服游戏npc的攻略,在那篇攻略中小编详细给大家说明了目前游戏中npc对于玩家对于服务器的重要性。攻略发出之后很多gm提出了相关的疑问,其中大部分人对于npc脚本的执行流程表示有很多不明白的地方。这个问题其实并不怪大家主要是因为小编没有能够提前考虑到,今天这篇攻略小编就详细的给大家分享一下目前传世各个版本的npc脚本执行流程。

NPC脚本的执行流程主要由以下组成:

每一个NPC脚本都有由一个[@main]脚本标签开始脚本执行,相当于一个MAIN函数头一样,在此脚本下的主要语句有:

#IF 本文来自织梦

#ACT (#SAY) //ACT与SAY是并列执行的

#ELSEACT (#ELSESAY) //ELSEACT与ELSESAY是并列执行的

#SAY
#ELSESAY

Break //中断脚本流程执行

GOTO @标签名 //跳转到指定标签段

-------------------------------
#IF //假设条件语句,如果的意思

#ACT //如果条件成立就执行

#SAY //如果条件成立就显示,SAY语句作用是在客户端显示对话信息 织梦内容管理系统

#ELSEACT //如果条件不成立就执行

#ELSESAY //如果条件不成立就显示,ELSESAY语句作用是在客户端显示对话信息


范例:


[@main]
#IF
checkjob Warr //检测是否是战士职业
#ACT
SENDMSG 5 你的职业是战士
#SAY
你的职业是战士
#ELSEACT
SENDMSG 5 你不是战士职业
#ELSESAY
你不是战士职业


//ACT与SAY是并列执行的

//ELSEACT与ELSESAY是并列执行的



也可以这样:


[@main]
#IF
checkjob Warr //检测是否是战士职业
#ACT
SENDMSG 5 你的职业是战士
#ELSEACT
SENDMSG 5 你不是战士职业



[@main]
#IF
checkjob Warr //检测是否是战士职业
#SAY
你的职业是战士
#ELSESAY
你不是战士职业



-------------------------------

下面来看 Break //中断脚本流程执行功能
很多时候,脚本的某一个功能,都是由很多条件假设构成,当我们要同时检查多个并列的条件时,就需要用到脚本“Break中断”了,当然,如果不用中断写法,肯定就要用到GOTO跳转了,但为了降低资源和优化效率,一般是采用break中断写法,尽量不使用GOTO跳转。
比如:我要检查当前指定脚本的玩家等级是否有50级,是否是女性,是否是战士职业,是否有50个元宝?如何来实现这个功能呢?我们分两种写法来说明Break中断的作用!



范例1:(使用传统的GOTO跳转来实现)



[@传统写法]
#IF
CHECKLEVELEX > 49
#ACT
GOTO @检测性别
#ELSESAY
你的等级不足50级\\
<离开>



[@检测性别]
#IF
gender WOMAN
#ACT
GOTO @检测职业
#ELSESAY
你不是女性玩家\\
<离开>



[@检测职业]
#IF
checkjob Warr
#ACT
GOTO @检测元宝
#ELSESAY
你不是战士职业\\
<离开>



[@检测元宝]
#IF
CHECKGAMEGOLD > 49
#SAY
你满足条件,你的元宝有50个!\
你是女性,50级,战士职业玩家!\
<离开>
#ELSESAY
你的元宝不足50个\\
<离开>


本文来自织梦

范例2:(使用Break中断写法来实现)



[@中断写法]
#IF
CHECKLEVELEX < 50
#SAY
你的等级不足50级\\
<离开>
#ACT
break
#IF
gender WOMAN
#ELSESAY
你不是女性玩家\\
<离开>
#ELSEACT
break
#IF
checkjob Warr
#ELSESAY
你不是战士职业\\
<离开>
#ELSEACT
break
#IF
CHECKGAMEGOLD > 49
#SAY
你满足条件,你的元宝有50个!\
你是女性,50级,战士职业玩家!\
<离开>
#ELSESAY
你的元宝不足50个\\
<离开>



//以上两种写法的执行结果一样,但从中可以看出使用break中断写法可以节省很多代码和不必要的跳转,能降低脚本在执行过程中的资源占用率。

break中断功能的作用就是,假设条件不成,就中断脚本继续执行,也就是break后面的脚本就不执行了,执行流程结束!第2种写法中,如果没有break,那么所有的判断都将按照从上到下的执行流程进行顺序执行,不管是否成立与否,都将一直执行到最后,大家可以把它取消了自己试试就知道了。
        小编在准备这篇攻略前对目前市场上的十个版本做了调查,在这些版本中基本上都是按照上面的方法来执行npc脚本的。到这里小编的这篇传世游戏架设引擎教材之合成碎片脚本高级攻略就全部分享结束了,如果您发现小编的攻略中有错误的地方或者是您有新的方案请第一时间联系我们。

ddfjhj 发表于 2022-10-9 05:40:18 | 显示全部楼层
感恩无私的分享与奉献
回复

使用道具 举报

nickal 发表于 2022-10-11 15:08:20 | 显示全部楼层
我只是路过打酱油的。
回复

使用道具 举报

叛逆牛仔 发表于 2022-10-13 21:39:33 | 显示全部楼层
太生气了,无法HOLD啦 >_<......
回复

使用道具 举报

sxmnwk 发表于 2022-10-14 14:25:38 | 显示全部楼层
楼主加油,我们都看好你哦。
回复

使用道具 举报

ggjute 发表于 2022-10-17 09:33:07 | 显示全部楼层
真是被感动的痛哭流涕……
回复

使用道具 举报

ranyi170 发表于 2022-10-17 17:50:13 | 显示全部楼层
激动人心,无法言表!
回复

使用道具 举报

hdsj6268 发表于 2022-10-19 05:49:01 | 显示全部楼层
激动人心,无法言表!
回复

使用道具 举报

hisbee 发表于 2022-10-20 14:35:12 | 显示全部楼层
看到这帖子真是高兴!
回复

使用道具 举报

847112737 发表于 2022-10-24 02:48:59 | 显示全部楼层
真是难得给力的帖子啊。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|游戏淘宝湾

GMT+8, 2024-11-21 18:32 , Processed in 0.059790 second(s), 53 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024, Oddpp Cloud.

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