【热血传奇】 脚本开发之初识命令

随便找个npc的功能代码
【热血传奇】 脚本开发之初识命令_第1张图片
上图可见,这个功能文件里面包含了三个代码段。

  • [@main] 表示主函数(主代码段),也就是点击npc第一个执行的代码段
  • []传奇脚本是以中括号的形式来定义代码段的。
  • \ 表示换行 有几个换几行
  • <> 用来表示按钮,按钮中的 /@SY 表示点击按钮执行的代码段
  • / 转义符 如果直接 写@SY 那他就是普通的文字 ,而/@SY 表示代码段SY
  • ; 注释符号
  • 脚本自带了一些函数 例如@exit 表示关闭弹窗

[@j] 代码段讲解

#IF 					//if判断开始标识
checkitem 金条 1		//判断玩家是否有1个金条
#ACT					//上面的判断如果成立(true)执行下面的操作
take 金条 1				//拿走玩家身上的金条
TimeRecall 60			//限时60分钟,超时传送到原来位置
mapmove B101			//将玩家移动到B101地图
break 					//执行结束
#ELSESAY 				//如果判断不成立(false)显示下面的内容
你没有钱!\				//弹出窗上显示的文字
<取消/@exit>\			//显示取消按钮

步骤讲解

点击npc时,会自动执行[@main]中的代码
也就是弹出弹窗显示内容和按钮
【热血传奇】 脚本开发之初识命令_第2张图片
当我点击 打听圣域的消息 时,会执行[@SY]代码段
也就是在弹窗显示新的内容。点击关闭 调用@exit 会关闭弹窗
【热血传奇】 脚本开发之初识命令_第3张图片
当我点击 的时候会执行[@j] 代码段,进行一系列的操作,根据是否有金币,觉得是执行#ACT还是#ELSESAY
当然了,我没有钱,执行了#ELSESAY
【热血传奇】 脚本开发之初识命令_第4张图片

常用代码

指令 含义
#IF if判断
#ACT 执行代码
#ELSEACT 执行代码
break 结束命令,不再向下执行了
#SAY 在弹窗上显示内容
#ELSESAY 在弹窗上显示内容
close 关闭对话框
#call 调用子程序命令。例#CALL [\商人\杂货铺.txt] @杂货铺 表示: D:\MirServer\Mir200\Envir\QuestDiary\商人
goto @段 跳转到指定段,开始执行相当于B中的语句

#call详解:#CALL [\商人\杂货铺.txt] @杂货铺
表示:调用 D:\MirServer\Mir200\Envir\QuestDiary\商人\杂货铺.txt 文件中的 @杂货铺 代码段

【热血传奇】 脚本开发之初识命令_第5张图片


条件命令(用于#IF后面的校验)

指令 含义 示例
CHECKITEM 物品名 数量 检测当前人物所带物品及数量
CHECKGOLD 数量 检测当前人物所带金币数量
CHECKLEVELEX (>,<,=) 等级数 检测当前人物等级
CHECKCREDITPOINT (>,<,=) 声望数 检测当前人物声望
CHECKJOB (Warrior,Wizard,Taoist) 检测当前人物所属职业
CHECKHUM 地图名 数量 检测指定地图的玩家数量
CHECKITEMW 物品名 数量 检测当前人物是否佩带指定物品
CHECKDURAEVA 物品名 数值 检测当前人物所带矿物等物品的品质
CHECKBAGGAGE 检测当前人物的背包是否已满
ONLINELONGMIN (>,<,=) 时长 检测当前人物在线时长
CHECKCASTLEDOOR (损坏,开启,关闭) 检测沙城城门状态
CASTLEWARAY (>,<,=) 天数 检测上次攻城到现在的天数
CASTLECHANGEDAY (>,<,=) 天数 检测沙巴克占领天数
CHECKOFGUILD 行会名称 检测当前人物行会名称
CHECKNAMELIST 角色名列表.txt 检测当前人物角色名是否在列表中
CHECKGUILDLIST 行会列表.txt 检测当前人物行会是否在列表中
CHECKACCOUNTLIST 帐号列表.txt 检测当前人物帐号是否在列表中
CHECKIPLIST IP列表.txt 检测当前人物IP是否在列表中
CHECKACCOUNTIPLIST 帐号和IP列表.txt 检测当前人物登录帐号与IP是否与列表中匹配
CHECKNAMEIPLIST 角色名和IP列表.txt 检测当前人物角色名称与IP是否与列表中匹配
ISADMIN 检测当前人物是否为管理员
HAVEGUILD 检测当前人物是否加入行会
ISCASTLEGUILD 检测当前人物是否为沙城成员
ISCASTLEMASTER 检测当前人物是否为沙城老大
ISGUILDMASTER 检测当前人物是否为行会老大
ISNEWHUMAN 检测当前人物是否为新人
CHECKSLAVECOUNT (>,<,=) 数量 检测当前人物所带宠物的数量
CHECKSLAVELEVEL (>,<,=) 等级数(7) 检测当前人物所带宠物的等级
CHECKEXP (>,<,=) 经验值 检测当前人物经验值
CHECKPOSELEVEL (>,<,=) 等级数 检测当前人物对面人物的等级
CHECKPOSEGENDER 性别(男,女) 检测当前人物对面人物的性别
CHECKMEMBERLEVEL 类型 (>,<,=) 等级数 检测当前人物的会员等级
CHECKMEMBERTYPE (=,>,<) 类型数 检测当前人物的会员类型
CHECKRENEWLEVEL (=,>,<) 转生次数 检测当前人物的转生次数
CheckBagSize 数量 检测当前人物背包空格数
CHECKDC (=,>,<) 攻击下限 (=,>,<) 攻击上限 检测当前人物攻击力的上限及下限值
CHECKMC (=,>,<) 魔法下限 (=,>,<) 魔法上限 检测当前人物魔法力的上限及下限值
CHECKSC (=,>,<) 道术下限 (=,>,<) 道术上限 检测当前人物道术力的上限及下限值
CHECKHP (=,>,<) HP下限 (=,>,<) HP上限 检测当前人物HP值的上限及下限值
CHECKMP (=,>,<) MP下限 (=,>,<) MP上限 检测当前人物MP值的上限及下限值
CHECKUSEITEM 物品位置 检测当前人物身上指定位置是否戴物品
CHECKITEMTYPE 物品位置 物品类型 检测当前人物身上指定位置戴的物品是否为指定类型
CHECKGAMEPOINT 活力值 检测当前人物活力值
ISLOCKPASSWORD 检测当前人物的仓库是否解锁
PASSWORDERRORCOUNT (=,>,<) 次数 检测当前人物输入仓库密码错误次数
CheckRangeMonCount 地图号 X Y 范围 (=,>,<) 数量 检测一个坐标范围内怪物数量
CheckMonMap 地图号 数量 检测一个指定地图内的怪物数量
CHECKMON 数量 检测当前人物所在地图内的怪物数量
CHECKSKILL 技能名称 (=,>,<) 修炼等级 检测当前人物已学技能

功能命令(一般用于 #ACT,#ELSEACT 后面)

指令 含义 示例
MAP 地图名 将当前人物移动到指定地图
give 物品名 数量 给物及数量
take 物品名 数量 拿走物及数量
MOVEMAP 地图名 X Y 将当前人物移动到指定地图的指定坐标
TIMERECALL 时间值 指定当前人物到达多少时间后被传回这里
BREAKTIMERECALL 中断指定人物达多少时间后被传回这里
RECALLMOB 怪物名称 宝宝等级(最高为 7) 叛变时间(分钟) 是否自动变色(0、1)固定颜色(1-7) 给予当前人物指定怪物为宝宝
setautogetexp 命令 时间 经验 是否安全区(0为任何地方) 地图号(任何地图请不用填) 指定当前人物在线泡经验(直接得到经验)
GAMEGOLD (=,+,-) 数量 调整当前人物的元宝数量
SETRANKLEVELNAME 封号 调整当前人物的封号
ADDGUILDLIST 行会列表.txt 将当前人物行会名加入列表
DELGUILDLIST 行会列表.txt 将当前人物行会名从列表删除
ADLNAMELIST 角色名列表.txt 将当前人物角色名加入列表
DELNAMELIST 角色名列表.txt 将当前人物角色名从列表删除
CLEARNAMELIST 列表.txt 清除列表内的所有信息
HAIRSTYLE 数值 调整当前人物的发型
CHANGENAMECOLOR 数值 调整当前人物的名字颜色
CHANGEJOB 职业名称(Warrior,Wizard,Taoist) 调整当前人物的所属职业
CHANGEGENDER 数值 调整当前人物的所属性别
ADDSKILL 技能名称 技能等级 给予当前人物添加指定技能
DELSKILL 技能名称 删除当前人物的指定技能
SKILLLEVEL 技能名称 (=,+,-) 技能等级 调整当前人物的指定技能为指定等级
DELNOJOBSKILL 删除当前人物非本职业的所有技能
CLEARSKILL 删除当前人物的所有技能
GAMEPOINT (=,+,-) 数量 调整当前人物的活力值
CREDITPOINT (=,+,-) 数量 调整当前人物的声望点数
SETMEMBERLEVEL (=,+,-) 等级数 调整当前人物的会员等级
SETMEMBERTYPE (=,+,-) 等级数 调整当前人物的会员类型
CHANGELEVEL (=,+,-) 等级数 调整当前人物的等级
CHANGEPKPOINT (=,+,-) 点数 调整当前人物的PK点数
CHANGEEXP (=,+,-) 经验值 调整当前人物的经验值
CHANGEMODE 模式类型(1管理模式、2无敌模式、3隐身模式) 开关(1为开,0为关) 调整当前人物的游戏模式
CHANGEPERMISSION 权限等级 调整当前人物的权限等级
KILLMONEXPRATE 倍率 有效时间 调整当前人物的杀怪经验倍率
POWERRATE 倍率 有效时间 调整当前人物的攻击力倍率
KICK 将当前人物踢下线
KILL 数值 将当前人物杀死,并设置杀死类型
KILLSLAVE 将当前人物的宝宝全部杀死
CLEARPASSWORD 清除当前人物的仓库密码
RestRenewLevel 将人物的转生次数复位为零,即未转生
DELMARRY 清除当前人物的结婚信息
DELMASTER 清除当前人物的拜师信息
RENEWLEVEL 转次数 转后等级 0 将当前人物转生,并设置转生次数以及转生后人物等级跳到多少级
SENDMSG 信息类型代码 %s信息内容%d 发送文字信息
CLEARMAPMON 地图号 清除指定地图的所有怪物
RESTBONUSPOINT 清除当前人物的属性点
PARAM1 地图 NPC指定刷怪地图
PARAM2 横坐标 NPC刷怪X坐标
PARAM3 纵坐标 NPC刷怪Y坐标
MONGEN 怪物名称 数量 时间 NPC刷怪命令+怪物+数量+时间
OpenBigDialogBox 打开大的弹出层
GuildNoticeMsg 发送自定义颜色的文字信息
MESSAGEBOX 弹出带有确定按钮的提示文字对话框
GetRandomText 从文件中随机获取一行字符串 GetRandomText 文件路径 变量(S0–S99) 指定行(0-10000)
SetNewItemValue 给装备附加新属性 SetNewItemValue 位置(0-12) 属性(0-5) 操作符(+,-,=) 值(1-100)
AutoTakeOnItem 自动穿装备 装备名称 位置(0-16)
AutoTakeOffItem 自动脱装备 装备名称 位置(0-16)

内置变量

指令 含义
<$USERNAME> 人物名称
<$GUILDNAME> 行会名称
<$RANKNAME> 行会职位名称
<$LEVEL> 等级
<$HP> 生命值
<$AC> 防御力
<$MAXAC> 最高防御力
<$MAC> 魔法防御力
<$MAXMAC> 最高魔法防御力
<$DC> 物理攻击力
<$MAXDC> 最高物理攻击力
<$MC> 魔法力
<$MAXMC> 最高魔法力
<$SC> 道术
<$MAXSC> 最高道术
<$EXP> 当前经验值
<$MAXEXP> 升级经验值
<$PKPOINT> PK点数
<$CREDITPOINT> 声望点数
<$GOLDCOUNT> 金币数量
<$GAMEGOLD> 游戏币数
<$GAMEPOINT> 游戏点数
<$HW> 腕力
<$MAXHW> 最高腕力
<$BW> 背包重量
<$MAXBW> 最高背包重量
<$WW> 负重力
<$MAXWW> 最高负重
<$HUNGER> 饥饿程度
<$LOGINTIME> 登录时间
<$LOGINLONG> 登录时长
<$DRESS> 衣服
<$WEAPON> 武器
<$RIGHTHAND> 蜡烛
<$HELMET> 头盔
<$NECKLACE> 项链
<$RING_R> 右戒指
<$RING_L> 右戒指
<$ARMRING_R> 右手镯
<$ARMRING_L> 左手镯
<$BUJUK> 护身符
<$BELT> 腰带
<$BOOTS> 鞋子
<$CHARM> 宝石
<$CASTLENAME> 沙城名称

服务器活动变量

指令 含义
<$SERVERNAME> 服务器名字
<$SERVERIP> 服务器IP地址
<$WEBSITE> 游戏网址
<$BBSSITE> 论坛网址
<$CLIENTDOWNLOAD> 客户端程序下载地址
<$QQ> 联系QQ号
<$PHONE> 联系电话号码
<$BANKACCOUNT0> 银行帐号信息
<$BANKACCOUNT1> 银行帐号信息
<$BANKACCOUNT2> 银行帐号信息
<$BANKACCOUNT3> 银行帐号信息
<$BANKACCOUNT4> 银行帐号信息
<$BANKACCOUNT5> 银行帐号信息
<$BANKACCOUNT6> 银行帐号信息
<$BANKACCOUNT7> 银行帐号信息
<$BANKACCOUNT8> 银行帐号信息
<$BANKACCOUNT9> 银行帐号信息
<$GAMEGOLDNAME> 游戏币名称
<$USERCOUNT> 在线人数
<$DATETIME> 当前日期时间
<$GAMEGOLDNAME> 游戏币名称
<$HIGHLEVELINFO> 最高等人物信息
<$HIGHPKINFO> 最高PK点数人物信息
<$HIGHDCINFO> 最高攻击力人物信息
<$HIGHMCINFO> 最高魔法力人物信息
<$HIGHSCINFO> 最高道术人物信息

变量命名规则

P0-P9 私人变量(数字型) 不可保存 命令: MOV INC DEC MUL equal small large
G0-G499 全局变量(数字型) 可保存 命令: MOV INC DEC MUL equal small large
M0-M99 私人变量(数字型) 不可保存 命令: MOV INC DEC MUL equal small large
I0-I99 全局变量(数字型) 不可保存 命令: MOV INC DEC MUL equal small large
D0-D9 私人变量(数字型) 不可保存 命令: MOV INC DEC MUL equal small large
N0-N99 私人变量(数字型) 不可保存 命令: MOV INC DEC MUL equal small large
S0-S99 私人变量(字符型)(自定义输入@@InPutString) 不可保存 命令: MOV INC DEC MUL equal small large
A0-A499 全局变量(字符型)(自定义输入@@InPutInteger) 可保存 命令: MOV INC DEC MUL equal small large


操作变量

指令 含义
RANDOM 随机数 一般用在#IF语句中作为触发#IF机率
EQUAL 变量名 数值 检测变量是否等于指定数值
LARGE 变量名 数值 检测变量是否大于指定数值
SMALL 变量名 数值 检测变量是否小于指定数值
MOV 变量名 数值 给予变量赋于指定值
INC 变量名 数值 给予变量加上指定值
DEC 变量名 数值 给予变量减去指定值
SUM 变量名A 变量名B 将两个变量相加
MOVR 数值 变量赋予小于指定数值的随机非负数
$STR(变量)> 把变量转为字符串
SET [变量名] 数值 定义变量
RESET [变量名] 连续数字 变量清零,reset [100] 7 就是把100 101 102 103 104 105 106这7个变量赋值为0
CHECK [变量数值] 数值 检测变量是否等于指定数值

你可能感兴趣的:(【热血传奇】,游戏开发)