传奇版本中脚本详解,一篇知晓传奇脚本逻辑
技能献祭,Get 新技能:传奇技能——脚本语言逻辑跟航家学技能,用干货带你飞,现学现用,底部有配套学习资源
传奇这款游戏的脚本,是航家已知的,最简单的脚本语言,它直接写在以.txt为后缀的文本中。
本篇目录:
一、几个关键脚本及路径(位置)
二、脚本语言写法格式
三、常用变量
四、具体实例
准备工具:GOM引擎帮助文档.chm,在提供学习资源的[常用工具]中有。用以查解脚本命令。
一、几个关键脚本及路径(位置)
讲脚本语言之前,先来认识下主要有哪些常用到的脚本文本,以及如何找到它们。
对版本的修改重塑,基本在这个文件夹下:Mir200,也就是前面章节讲到的M2,见下图
下图注明的几个关键内容,带Log的是平常操作的日志记录,Gate是各种网关。因免费提供的基础版本,是与本系列教程章节内容是配套的,所以当你下载好服务端,看到的MirServer下也是这些文件,一个不多一个不少。如果用的别的版本,关键内容不变。
网站:用于展示装备;
DBServer,合区时主要合这里面的东西;
Mud2,初次安装DBE2000数据库时,创建的HeroDB,保存的路径,就是这个文件夹的DB
Mir200,简称M2,经常操作的几个脚本内容:
路径(位置):D:\MirServer\Mir200\Envir ,在Envir文件夹下,见下图选中的几个主要文件夹
MapQuest_Def,任务型脚本,指的是:QManage.txt,这个脚本文本;用于执行角色登录数据(如:获得的称号,属性点,回收勾选记录以及私人变量等)、活动任务、计时任务、地图加、减价等任务。
Market_Def,NPC脚本文本默认存放路径(前面章节有讲);触发类脚本,指的是:QFunction-0.txt,这个脚本文本,它也是功能脚本,因它触发类较多,为方便区分叫它触发类脚本。
如,改变发型颜色,转职变性,会员福利,个人商店创建,过滤信息等,均属功能型;而达到指定等级自动穿戴装备,是否在安全区判定,人物死亡增加PK值,双击烟花效果,打开大红包等都属触发类。
QuestDiary,功能脚本默认存放处,意思是:当没有指定完整关联路径时,程序会自动寻找此文件夹下的脚本文本,没有则提示不存在。
如,【#CALL [\游戏功能\实物回收.txt] @实物回收】,程序会自动寻找,功能文件夹:QuestDiary下的【游戏功能\实物回收.txt】文本;如果将【游戏功能】文件夹,剪切到:Market_Def,文件夹下,就会提示找不到。
Robot_def,此文件夹下,有两个脚本文本:AutoRunRobot.txt,RobotManage.txt
AutoRunRobot.txt,机器人自动执行控制脚本;
脚本格式:#AutoRun NPC 时间单位 值 执行内容
时间单位有:HOUR(小时),RUNONDAY(每天执行),MIN(分钟),SEC(秒)
示例:
#AutoRun NPC HOUR 4 @清空天下第一;意为:每4小时清空天下第一
#AutoRun NPC RUNONDAY 7:00 @早上提示;意为:每天早上七点,执行提示内容
#AutoRun NPC MIN 2 @秒修装备;意为:每2分钟,修理一次装备
#AutoRun NPC SEC 1 @光环效果;意为:安全区框定区域的光环效果,每秒执行一次
RobotManage.txt,机器人任务内容脚本;
它与AutoRunRobot,协作使用,AutoRunRobot,负责控制执行时间,RobotManage,负责执行内容的书写和存放。@秒修装备,就是写在RobotManage.txt,脚本文本中的。
完成执行过程,还需要一个动作,写在任务类脚本文本:Qmanage.txt,中;
故,[@秒修装备],机器人自动执行的完整过程,举一例,如下:
第一步,AutoRunRobot.txt,文本中写:
#AutoRun NPC MIN 2 @秒修装备
第二步,RobotManage.txt,文本中写:
[@秒修装备]
#If
#Act
GMEXECUTE 开始提问 @秒修装备1
第三步,Qmanage.txt,文本中写:
[@秒修装备1]
#IF
#ACT
ACTREPAIRALL
解析:第一步,机器人每2分钟,执行一次秒修装备;第二步,执行内容:执行GM脚本命令;第三步,执行任务,修理装备。至此,秒修装备完成一次自动执行。因第一步,控制时间为2分钟一次,所以每2分钟会重复一次这个过程。
解释两个命令:GMEXECUTE,意为,执行GM脚本命令;ACTREPAIRALL,意为,修理装备。可以通过工具,GOM引擎帮助文档.chm,来查看命令功能和格式。接触到脚本语言会经常用到这个帮助文档。其中,GMEXECUTE,命令为帮助文档中未公开的一个命令。
二、脚本语言写法格式
这里只简单介绍下,脚本语言的基本写法格式,也是脚本段的主体内容,后续的实例内容中,将根据项目需要实现的功能,在实际解决问题的过程中深入学习这门脚本语言。
基本格式:
#IF
;检测段,检测条件,定义变量
#ACT
;执行段,检测条件为真,执行此段内容
#ELSEACT
;否则段,检测条件为假,则执行此段内容
BREAK
解析:所有脚本功能的实现,都是通过此基本格式来实现,当检测条件#IF为空时,可以不写条件#IF,直接写执行内容#ACT,BREAK,意为一个完整脚本段的结束。
注:检测段的内容不能写在执行段和否则段,同样的执行段的内容也不能写在检测段,否则一定会出错。某些脚本段的错误会导致小退再登陆黑屏,进不了游戏,所以每写完一个脚本,注意重新加载,运行一次,看M2,是否出现错误提示。
三、常用变量
在GOMX引擎帮助文档.chm,中输入:程序变量,查找查看详细说明。
P0-P99 (私人变量,数字型) 关闭对话框重置为0。
D0-D99 (私人变量,数字型) 下线不保存.摇筛子变量.
M0-M99 (私人变量,数字型) 下线不保存.切换地图清空.
N0-N99 (私人变量,数字型) 下线不保存.小退归0.
S0-S99 (私人变量,字符型) 下线不保存.小退归0.
I0-I99 (全局变量,数字型) 下线不保存.小退归0.
G0-G499 (全局变量,数字型) 可保存。(存放在Mir200/GlobalVal.ini文件里面)
A0-A499 (全局变量,字符型) 可保存。(存放在Mir200/GlobalVal.ini文件里面)
U0-U49 (私人变量,数字型) 可保存。(存放在人物数据库Mir.db里面)
T0-T49 (私人变量,字符型) 可保存。(存放在人物数据库Mir.db里面)
注意: 自定义变量名称不要以P、D、M、N、S、I、G、A开头
变量应用场景:如,冲级奖励只能领一取,领取会员后不能再次领取,开狂爆头顶图标与死亡图标的消失,首爆奖励只能触发一次,升官爵,称号等等。
四、具体实例
下面以免费领取至尊会员,为例,来具体化功能脚本的应用。
先来观查下,它在游戏中显示的样子:
再来看下上图显示内容的脚本段:
解析:[@main]表示,主体内容;"\"表示换行,两个表示换两行;"<>",是成对出现的,用以实现脚本功能,对于纯文字,也可以不用"<>",直接写文字;"/AUTOCOLOR=253",用以定义文字显示的颜色。
<领取至尊/@至尊>,此为功能段脚本,用以实现某功能,取决于“[@至尊]”脚本段内容。它不用定义颜色,默认显示黄色。
<领取至尊/@至尊>,意为,点击“领取至尊”,执行脚本段“@至尊”,会在此文本中,寻找用中括号“[@至尊]”框起来的脚本段。如图
解析:[@至尊],为点击“领取会员”,执行的内容;equal u22 4,意为:定义私人变量:u22=4,也可以理解为:当u22=4,时...。equal,等于。拓展:large,大于;small,小于。
MESSAGEBOX,是跳出对话框,提示信息,脚本命令;当领取过会员,再次点击,如下图
与之相似的有:SENDMSG,聊天框内发送,提示信息,脚本命令。可以通过GOM引擎帮助文档,查看具体功能和应用。
gender man,检测角色性别,男;gender woman,检测角色性别,女。
MOV U22 4,给变量赋值,意为:将值4赋给U22,相当于U22=4;这里注意与#IF段区别,#IF段是条件检测,#ACT段是执行赋值。
GIVE 天精岩五转 3,给物品“天精岩五转”,3个;GIVE,给。
[@至尊]功能段脚本内容,是作为程序内部执行的内容,是不显示给玩家看的。以上实例便是,免费领取至尊会员的显示内容、显示内容的脚本段,以及脚本执行内容的完整展示。
当然,看似简单的脚本语言,事实上并非这么简单,它的难点在于功能脚本命令数量,常用变量以及自定义变量的应用。但这并不妨碍我们从它的脚本基本执行格式中理解它的执行逻辑,抓住主体,修枝剪叶,记几个主体脚本命令,其他熟悉下即可。
页:
[1]