想学传奇脚本技术,拿到一个脚本文件看不懂,或者自己想动手改点东西不知道用什么命令。这事说穿了就是两样东西没搞清楚:一是脚本的结构段怎么跳转,二是每个命令具体管什么事。这篇把所有常用脚本命令按功能拆开,从最基础的跳转、给东西,到变量运算、条件判断,再到各种检测命令、功能命令,全给你摆明白。不用管引擎版本是GOM还是GEE还是老Hero,绝大多数命令通用。
**脚本基础结构与流程控制命令**
脚本文件打开,第一眼看到的通常是[@main]这类带方括号的东西,这叫段标签。脚本执行靠的就是在这些段之间跳来跳去。
|命令|功能说明|示例|
|------|----------|------|
|[@段名]|定义一个脚本段,段名用英文或数字表示|[@main]|
|goto@段名|跳转到指定段执行|goto@main|
|#say|后面跟要显示的文字内容|#say你好啊冒险家|
|#act|后面跟要执行的命令|#actgive金条1|
|#if|条件判断的开始|#ifchecklevel50|
|#elseact|条件不成立时执行|#elseactgoto@main|
|#elsesay|条件不成立时显示内容|#elsesay你等级不够|
|break|中断当前命令执行|break|
|close|关闭当前对话窗口|close|
|#call|调用QuestDiary文件夹下的子程序|#call[\功能脚本\测试.txt]@段名|
goto命令最常用,比如点某个选项就跳去执行对应的功能段。if和act配合是实现脚本逻辑的核心,if后面写条件,成立就走act,不成立走elseact。
**物品与金币操作命令**
NPC最基本的功能就是给东西、收东西,这些命令必须烂熟于心。
|命令|功能说明|示例|
|------|----------|------|
|give物品名数量|给玩家指定物品|give裁决之杖1|
|take物品名数量|拿走玩家身上物品|take金条5|
|givegold数量|给金币|givegold100000|
|takegold数量|扣金币|takegold5000|
|give物品名数量是否强化|给带强化属性的物品|give屠龙11|
|takew物品名|直接从身上脱下并回收装备|takew圣战戒指|
|clearitem物品名|清除背包里的指定物品|clearitem矿泉水|
|takecheckitem|收取前面用checkitem检测过的物品|takecheckitem|
注意takew和take的区别,take只能回收背包里的,takew可以直接把身上穿着的装备扒下来回收。
**地图移动相关命令**
传送、刷怪、清怪都靠这批命令。
|命令|功能说明|示例|
|------|----------|------|
|map地图名|移动到指定地图随机坐标|map3|
|mapmove地图名XY|移动到指定地图的精确坐标|mapmove0330330|
|mapmove地图名XY范围|在指定坐标范围内随机移动|mapmove0150505|
|TimeRecall分钟数|设置进入地图后的停留时间,超时传回|TimeRecall30|
|BreakTimeRecall|中断时间限制|BreakTimeRecall|
|monclear地图名|清空指定地图的所有怪物|monclear3|
|Param1地图名|刷怪命令第一参数:地图|Param13|
|Param2X坐标|刷怪命令第二参数:横坐标|Param2150|
|Param3Y坐标|刷怪命令第三参数:纵坐标|Param3150|
|MonGen怪物名数量时间|配合上面三个参数刷怪|MonGen白野猪160|
|ExchangeMap地图名|和指定地图里的人交换位置|ExchangeMap0150|
mapmove后面不写坐标就是随机传送,写了坐标就是定点,再加个范围就是在那个点周围随机飘。
**变量定义与运算命令**
脚本里要计数、要随机、要记录状态,离不开变量。常用的变量类型分三种:
P0-P9:临时变量,只在当前NPC对话有效,关了对话框就清零。
D0-D9:私人变量,下线清零,在线时全局NPC通用。
N0-N9:整数变量,用法和P、D类似。
S0-S9:字符串变量,存文字用的。
G0-G9:全局变量,整个服务器通用,所有玩家共享。
A-Z:全局字符串变量。
|命令|功能说明|示例|
|------|----------|------|
|mov变量数值|给变量赋值|movN1100|
|inc变量数值|变量加指定数值|incN150|
|dec变量数值|变量减指定数值|decN130|
|mul变量数值|变量乘指定数值|mulN12|
|div变量数值|变量整除指定数值|divN15|
|movr变量数值|给变量赋0到数值之间的随机数|movrN110|
|sum变量A变量B|变量求和,需要配合MOV0使用|MOVN00\nSUMN1N2\nSUMN3|
|random数值|随机概率判断,数值几就是几分之一几率|random3|
|<$STR(变量)>|把变量的值显示出来|#say你的积分是<$STR(N1)>|
sum命令用法有点绕,先要把结果变量清0,然后每写一行sum就加一个数进去。
**条件检测命令大全**
#if后面跟的检测命令,种类最多,挑常用的列出来。
等级职业类:
|命令|功能说明|示例|
|------|----------|------|
|CHECKLEVELEX(><=)等级|检测人物等级|CHECKLEVELEX>50|
|CHECKJOB职业|检测职业,职业用Warr/Wizard/Taos|CHECKJOBWarr|
|CHECKEXP(><=)经验值|检测当前经验值|CHECKEXP>1000000|
|CHECKGENDER性别|检测性别,Man男Woman女|CHECKGENDERMan|
背包装备类:
|命令|功能说明|示例|
|------|----------|------|
|CHECKITEM物品名数量|检测背包里是否有指定数量物品|CHECKITEM疗伤药5|
|CHECKITEMW物品名|检测身上是否佩戴指定物品|CHECKITEMW传送戒指|
|CHECKGOLD数量|检测金币是否大于等于指定数量|CHECKGOLD50000|
|CHECKBAGGAGE|检测背包是否已满|CHECKBAGGAGE|
|CHECKBAGSIZE空格数|检测背包空格数量是否达标|CHECKBAGSIZE5|
|CHECKUSEITEM位置|检测指定位置是否戴了东西|CHECKUSEITEM1|
人物状态类:
|命令|功能说明|示例|
|------|----------|------|
|CHECKPKPOINT(><=)数值|检测PK值|CHECKPKPOINT>100|
|CHECKLUCKYPOINT(><=)数值|检测幸运值|CHECKLUCKYPOINT>5|
|CHECKCREDITPOINT(><=)数值|检测声望值|CHECKCREDITPOINT>200|
|CHECKGAMEGOLD(><=)数量|检测元宝数量|CHECKGAMEGOLD>1000|
地图人数类:
|命令|功能说明|示例|
|------|----------|------|
|CHECKHUM地图名(><=)数量|检测指定地图的人数|CHECKHUM3<10|
|CHECKMON地图名(><=)数量|检测指定地图的怪物数量|CHECKMON3>50|
|CHECKRANGEMONCOUNT地图XY范围数量|检测坐标范围内怪物数|CHECKRANGEMONCOUNT315015010>5|
列表检测类:
|命令|功能说明|示例|
|------|----------|------|
|CHECKNAMELIST文件名.txt|检测名字是否在名单里|CHECKNAMELIST封号名单.txt|
|CHECKIPLIST文件名.txt|检测IP是否在名单里|CHECKIPLIST禁止IP.txt|
|CHECKACCOUNTLIST文件名.txt|检测账号是否在名单里|CHECKACCOUNTLIST会员账号.txt|
其他常用检测:
|命令|功能说明|示例|
|------|----------|------|
|ISADMIN|检测是否为管理员|ISADMIN|
|HAVEGUILD|检测是否有行会|HAVEGUILD|
|ISCASTLEMASTER|检测是否为沙城主|ISCASTLEMASTER|
|ISNEWHUMAN|检测是否为新人(首次登录)|ISNEWHUMAN|
|CHECKSLAVECOUNT(><=)数量|检测宝宝数量|CHECKSLAVECOUNT>3|
|CHECKSKILL技能名(><=)等级|检测技能修炼等级|CHECKSKILL魔法盾=3|
**功能执行命令**
条件成立后,在#act或#elseact后面执行的叫功能命令。
人物属性调整类:
|命令|功能说明|示例|
|------|----------|------|
|CHANGEEXP(+-=)数值|调整经验值|CHANGEEXP+50000|
|CHANGELEVEL(+-=)等级|调整等级|CHANGELEVEL+1|
|CHANGEPKPOINT(+-=)点数|调整PK值|CHANGEPKPOINT-50|
|GAMEGOLD(+-=)数量|调整元宝|GAMEGOLD+1000|
|CREDITPOINT(+-=)数量|调整声望|CREDITPOINT+10|
|CHANGENAMECOLOR数值|改名字颜色|CHANGENAMECOLOR253|
|HAIRSTYLE数值|改发型|HAIRSTYLE2|
技能类命令:
|命令|功能说明|示例|
|------|----------|------|
|ADDSKILL技能名等级|学习技能|ADDSKILL召唤神兽3|
|DELSKILL技能名|删除技能|DELSKILL烈火剑法|
|SKILLLEVEL技能名(=+-)等级|调整技能等级|SKILLLEVEL冰咆哮+1|
|DELNOJOBSKILL|删除所有非本职业技能|DELNOJOBSKILL|
宝宝类命令:
|命令|功能说明|示例|
|------|----------|------|
|RECALLMOB怪物名宝宝等级叛变分钟变色固定颜色|召唤宝宝|RECALLMOB神兽7600|
|KILLSLAVE|杀死所有宝宝|KILLSLAVE|
|CHANGESLAVELEVEL(+-=)等级|调整宝宝等级|CHANGESLAVELEVEL+1|
称号与行会类:
|命令|功能说明|示例|
|------|----------|------|
|SETRANKLEVELNAME%s称号|设置人物封号|SETRANKLEVELNAME%s天下第一|
|ADDGUILDLIST文件名.txt|将行会加入列表|ADDGUILDLIST攻城行会.txt|
|DELGUILDLIST文件名.txt|将行会移出列表|DELGUILDLIST攻城行会.txt|
|ADDNAMELIST文件名.txt|将名字加入列表|ADDNAMELIST会员名单.txt|
|DELNAMELIST文件名.txt|将名字移出列表|DELNAMELIST会员名单.txt|
消息与服务器类:
|命令|功能说明|示例|
|------|----------|------|
|SENDMSG信息类型消息内容|发送公告,类型0全服1自己2身边3全服弹窗|SENDMSG0恭喜%s获得屠龙|
|CLEARMAPMON地图名|清除地图内所有怪物|CLEARMAPMON3|
|KICK|将当前玩家踢下线|KICK|
|KILL数值|杀死当前玩家|KILL1|
**变量与系统常量**
写脚本时经常需要显示一些动态内容,比如玩家名字、当前行会、沙巴克信息,这些用系统常量直接调。
|常量|含义|
|------|------|
|<$USERNAME>|当前玩家名字|
|<$LEVEL>|当前玩家等级|
|<$JOB>|职业|
|<$GENDER>|性别|
|<$PKPOINT>|PK值|
|<$HP>|当前血量|
|<$MP>|当前魔法值|
|<$MAXHP>|最大血量|
|<$MAXMP>|最大魔法值|
|<$GOLDCOUNT>|背包金币数|
|<$GAMEGOLD>|元宝数|
|<$CREDITPOINT>|声望值|
|<$USERWEAPON>|手里拿的武器名称|
|<$OWNERGUILD>|沙巴克行会名称|
|<$LORD>|沙城主名字|
|<$CASTLEGOLD>|沙巴克总金币|
|<$DATETIME>|当前服务器时间|
这些常量用在#say后面,可以直接把数值显示出来。比如写#say尊敬的<$USERNAME>,你的等级是<$LEVEL>。
**NPC对话功能开关**
NPC脚本开头经常会看到%100、+40这种数字,这些是定义NPC功能类型的。
|代码|功能|
|------|------|
|%100|标准买卖价格(不加倍)|
|%200|双倍价格|
|+0|买药水类|
|+1|卖肉|
|+3|买书|
|+4|卖书|
|+5|修武器/买武器|
|+6|卖武器|
|+10|买衣服|
|+11|修衣服|
|+15|头盔类|
|+19+20+21|项链类|
|+22|买戒指|
|+23|卖戒指|
|+24|买手镯|
|+26|修手镯|
|+40|买肉|
|+42|卖药水|
|+43|武器相关|
这些代码写在脚本最开头,决定点开NPC后默认弹出什么功能界面。
**脚本符号使用规则**
写脚本还得搞懂几个符号的用法:
[]方括号括起来的表示段标签,比如[@main]。
<>尖括号括起来的表示可点击的选项,里面用/分隔显示文字和跳转段。比如<购买/@buy>,玩家点“购买”就跳去[@buy]段。
\反斜杠表示换行。
;分号放行首表示这一行是注释,不执行。
空格命令和参数之间通常用空格隔开,具体看引擎要求。
/斜杠在选项里分隔显示文本和跳转目标。
写一个最简单的NPC对话例子:
[@main]
#say
欢迎光临我的小店。\
你可以进行以下操作:\
<购买药品/@buy>\
<修理装备/@repair>\
<没什么事/@exit>
[@buy]
#say
你需要买什么?\
<强效金疮药/@buy_hp>\
<强效魔法药/@buy_mp>
[@buy_hp]
#act
give强效金疮药5
#say
给你5瓶药。
这个例子里用到了段跳转、say显示、act执行命令,是最基础的脚本框架。
**脚本基础结构与流程控制命令**
脚本文件打开,第一眼看到的通常是[@main]这类带方括号的东西,这叫段标签。脚本执行靠的就是在这些段之间跳来跳去。
|命令|功能说明|示例|
|------|----------|------|
|[@段名]|定义一个脚本段,段名用英文或数字表示|[@main]|
|goto@段名|跳转到指定段执行|goto@main|
|#say|后面跟要显示的文字内容|#say你好啊冒险家|
|#act|后面跟要执行的命令|#actgive金条1|
|#if|条件判断的开始|#ifchecklevel50|
|#elseact|条件不成立时执行|#elseactgoto@main|
|#elsesay|条件不成立时显示内容|#elsesay你等级不够|
|break|中断当前命令执行|break|
|close|关闭当前对话窗口|close|
|#call|调用QuestDiary文件夹下的子程序|#call[\功能脚本\测试.txt]@段名|
goto命令最常用,比如点某个选项就跳去执行对应的功能段。if和act配合是实现脚本逻辑的核心,if后面写条件,成立就走act,不成立走elseact。
**物品与金币操作命令**
NPC最基本的功能就是给东西、收东西,这些命令必须烂熟于心。
|命令|功能说明|示例|
|------|----------|------|
|give物品名数量|给玩家指定物品|give裁决之杖1|
|take物品名数量|拿走玩家身上物品|take金条5|
|givegold数量|给金币|givegold100000|
|takegold数量|扣金币|takegold5000|
|give物品名数量是否强化|给带强化属性的物品|give屠龙11|
|takew物品名|直接从身上脱下并回收装备|takew圣战戒指|
|clearitem物品名|清除背包里的指定物品|clearitem矿泉水|
|takecheckitem|收取前面用checkitem检测过的物品|takecheckitem|
注意takew和take的区别,take只能回收背包里的,takew可以直接把身上穿着的装备扒下来回收。
**地图移动相关命令**
传送、刷怪、清怪都靠这批命令。
|命令|功能说明|示例|
|------|----------|------|
|map地图名|移动到指定地图随机坐标|map3|
|mapmove地图名XY|移动到指定地图的精确坐标|mapmove0330330|
|mapmove地图名XY范围|在指定坐标范围内随机移动|mapmove0150505|
|TimeRecall分钟数|设置进入地图后的停留时间,超时传回|TimeRecall30|
|BreakTimeRecall|中断时间限制|BreakTimeRecall|
|monclear地图名|清空指定地图的所有怪物|monclear3|
|Param1地图名|刷怪命令第一参数:地图|Param13|
|Param2X坐标|刷怪命令第二参数:横坐标|Param2150|
|Param3Y坐标|刷怪命令第三参数:纵坐标|Param3150|
|MonGen怪物名数量时间|配合上面三个参数刷怪|MonGen白野猪160|
|ExchangeMap地图名|和指定地图里的人交换位置|ExchangeMap0150|
mapmove后面不写坐标就是随机传送,写了坐标就是定点,再加个范围就是在那个点周围随机飘。
**变量定义与运算命令**
脚本里要计数、要随机、要记录状态,离不开变量。常用的变量类型分三种:
P0-P9:临时变量,只在当前NPC对话有效,关了对话框就清零。
D0-D9:私人变量,下线清零,在线时全局NPC通用。
N0-N9:整数变量,用法和P、D类似。
S0-S9:字符串变量,存文字用的。
G0-G9:全局变量,整个服务器通用,所有玩家共享。
A-Z:全局字符串变量。
|命令|功能说明|示例|
|------|----------|------|
|mov变量数值|给变量赋值|movN1100|
|inc变量数值|变量加指定数值|incN150|
|dec变量数值|变量减指定数值|decN130|
|mul变量数值|变量乘指定数值|mulN12|
|div变量数值|变量整除指定数值|divN15|
|movr变量数值|给变量赋0到数值之间的随机数|movrN110|
|sum变量A变量B|变量求和,需要配合MOV0使用|MOVN00\nSUMN1N2\nSUMN3|
|random数值|随机概率判断,数值几就是几分之一几率|random3|
|<$STR(变量)>|把变量的值显示出来|#say你的积分是<$STR(N1)>|
sum命令用法有点绕,先要把结果变量清0,然后每写一行sum就加一个数进去。
**条件检测命令大全**
#if后面跟的检测命令,种类最多,挑常用的列出来。
等级职业类:
|命令|功能说明|示例|
|------|----------|------|
|CHECKLEVELEX(><=)等级|检测人物等级|CHECKLEVELEX>50|
|CHECKJOB职业|检测职业,职业用Warr/Wizard/Taos|CHECKJOBWarr|
|CHECKEXP(><=)经验值|检测当前经验值|CHECKEXP>1000000|
|CHECKGENDER性别|检测性别,Man男Woman女|CHECKGENDERMan|
背包装备类:
|命令|功能说明|示例|
|------|----------|------|
|CHECKITEM物品名数量|检测背包里是否有指定数量物品|CHECKITEM疗伤药5|
|CHECKITEMW物品名|检测身上是否佩戴指定物品|CHECKITEMW传送戒指|
|CHECKGOLD数量|检测金币是否大于等于指定数量|CHECKGOLD50000|
|CHECKBAGGAGE|检测背包是否已满|CHECKBAGGAGE|
|CHECKBAGSIZE空格数|检测背包空格数量是否达标|CHECKBAGSIZE5|
|CHECKUSEITEM位置|检测指定位置是否戴了东西|CHECKUSEITEM1|
人物状态类:
|命令|功能说明|示例|
|------|----------|------|
|CHECKPKPOINT(><=)数值|检测PK值|CHECKPKPOINT>100|
|CHECKLUCKYPOINT(><=)数值|检测幸运值|CHECKLUCKYPOINT>5|
|CHECKCREDITPOINT(><=)数值|检测声望值|CHECKCREDITPOINT>200|
|CHECKGAMEGOLD(><=)数量|检测元宝数量|CHECKGAMEGOLD>1000|
地图人数类:
|命令|功能说明|示例|
|------|----------|------|
|CHECKHUM地图名(><=)数量|检测指定地图的人数|CHECKHUM3<10|
|CHECKMON地图名(><=)数量|检测指定地图的怪物数量|CHECKMON3>50|
|CHECKRANGEMONCOUNT地图XY范围数量|检测坐标范围内怪物数|CHECKRANGEMONCOUNT315015010>5|
列表检测类:
|命令|功能说明|示例|
|------|----------|------|
|CHECKNAMELIST文件名.txt|检测名字是否在名单里|CHECKNAMELIST封号名单.txt|
|CHECKIPLIST文件名.txt|检测IP是否在名单里|CHECKIPLIST禁止IP.txt|
|CHECKACCOUNTLIST文件名.txt|检测账号是否在名单里|CHECKACCOUNTLIST会员账号.txt|
其他常用检测:
|命令|功能说明|示例|
|------|----------|------|
|ISADMIN|检测是否为管理员|ISADMIN|
|HAVEGUILD|检测是否有行会|HAVEGUILD|
|ISCASTLEMASTER|检测是否为沙城主|ISCASTLEMASTER|
|ISNEWHUMAN|检测是否为新人(首次登录)|ISNEWHUMAN|
|CHECKSLAVECOUNT(><=)数量|检测宝宝数量|CHECKSLAVECOUNT>3|
|CHECKSKILL技能名(><=)等级|检测技能修炼等级|CHECKSKILL魔法盾=3|
**功能执行命令**
条件成立后,在#act或#elseact后面执行的叫功能命令。
人物属性调整类:
|命令|功能说明|示例|
|------|----------|------|
|CHANGEEXP(+-=)数值|调整经验值|CHANGEEXP+50000|
|CHANGELEVEL(+-=)等级|调整等级|CHANGELEVEL+1|
|CHANGEPKPOINT(+-=)点数|调整PK值|CHANGEPKPOINT-50|
|GAMEGOLD(+-=)数量|调整元宝|GAMEGOLD+1000|
|CREDITPOINT(+-=)数量|调整声望|CREDITPOINT+10|
|CHANGENAMECOLOR数值|改名字颜色|CHANGENAMECOLOR253|
|HAIRSTYLE数值|改发型|HAIRSTYLE2|
技能类命令:
|命令|功能说明|示例|
|------|----------|------|
|ADDSKILL技能名等级|学习技能|ADDSKILL召唤神兽3|
|DELSKILL技能名|删除技能|DELSKILL烈火剑法|
|SKILLLEVEL技能名(=+-)等级|调整技能等级|SKILLLEVEL冰咆哮+1|
|DELNOJOBSKILL|删除所有非本职业技能|DELNOJOBSKILL|
宝宝类命令:
|命令|功能说明|示例|
|------|----------|------|
|RECALLMOB怪物名宝宝等级叛变分钟变色固定颜色|召唤宝宝|RECALLMOB神兽7600|
|KILLSLAVE|杀死所有宝宝|KILLSLAVE|
|CHANGESLAVELEVEL(+-=)等级|调整宝宝等级|CHANGESLAVELEVEL+1|
称号与行会类:
|命令|功能说明|示例|
|------|----------|------|
|SETRANKLEVELNAME%s称号|设置人物封号|SETRANKLEVELNAME%s天下第一|
|ADDGUILDLIST文件名.txt|将行会加入列表|ADDGUILDLIST攻城行会.txt|
|DELGUILDLIST文件名.txt|将行会移出列表|DELGUILDLIST攻城行会.txt|
|ADDNAMELIST文件名.txt|将名字加入列表|ADDNAMELIST会员名单.txt|
|DELNAMELIST文件名.txt|将名字移出列表|DELNAMELIST会员名单.txt|
消息与服务器类:
|命令|功能说明|示例|
|------|----------|------|
|SENDMSG信息类型消息内容|发送公告,类型0全服1自己2身边3全服弹窗|SENDMSG0恭喜%s获得屠龙|
|CLEARMAPMON地图名|清除地图内所有怪物|CLEARMAPMON3|
|KICK|将当前玩家踢下线|KICK|
|KILL数值|杀死当前玩家|KILL1|
**变量与系统常量**
写脚本时经常需要显示一些动态内容,比如玩家名字、当前行会、沙巴克信息,这些用系统常量直接调。
|常量|含义|
|------|------|
|<$USERNAME>|当前玩家名字|
|<$LEVEL>|当前玩家等级|
|<$JOB>|职业|
|<$GENDER>|性别|
|<$PKPOINT>|PK值|
|<$HP>|当前血量|
|<$MP>|当前魔法值|
|<$MAXHP>|最大血量|
|<$MAXMP>|最大魔法值|
|<$GOLDCOUNT>|背包金币数|
|<$GAMEGOLD>|元宝数|
|<$CREDITPOINT>|声望值|
|<$USERWEAPON>|手里拿的武器名称|
|<$OWNERGUILD>|沙巴克行会名称|
|<$LORD>|沙城主名字|
|<$CASTLEGOLD>|沙巴克总金币|
|<$DATETIME>|当前服务器时间|
这些常量用在#say后面,可以直接把数值显示出来。比如写#say尊敬的<$USERNAME>,你的等级是<$LEVEL>。
**NPC对话功能开关**
NPC脚本开头经常会看到%100、+40这种数字,这些是定义NPC功能类型的。
|代码|功能|
|------|------|
|%100|标准买卖价格(不加倍)|
|%200|双倍价格|
|+0|买药水类|
|+1|卖肉|
|+3|买书|
|+4|卖书|
|+5|修武器/买武器|
|+6|卖武器|
|+10|买衣服|
|+11|修衣服|
|+15|头盔类|
|+19+20+21|项链类|
|+22|买戒指|
|+23|卖戒指|
|+24|买手镯|
|+26|修手镯|
|+40|买肉|
|+42|卖药水|
|+43|武器相关|
这些代码写在脚本最开头,决定点开NPC后默认弹出什么功能界面。
**脚本符号使用规则**
写脚本还得搞懂几个符号的用法:
[]方括号括起来的表示段标签,比如[@main]。
<>尖括号括起来的表示可点击的选项,里面用/分隔显示文字和跳转段。比如<购买/@buy>,玩家点“购买”就跳去[@buy]段。
\反斜杠表示换行。
;分号放行首表示这一行是注释,不执行。
空格命令和参数之间通常用空格隔开,具体看引擎要求。
/斜杠在选项里分隔显示文本和跳转目标。
写一个最简单的NPC对话例子:
[@main]
#say
欢迎光临我的小店。\
你可以进行以下操作:\
<购买药品/@buy>\
<修理装备/@repair>\
<没什么事/@exit>
[@buy]
#say
你需要买什么?\
<强效金疮药/@buy_hp>\
<强效魔法药/@buy_mp>
[@buy_hp]
#act
give强效金疮药5
#say
给你5瓶药。
这个例子里用到了段跳转、say显示、act执行命令,是最基础的脚本框架。

