引擎介绍
_____ _
__ __
__ _____ _______
/ ___| |
| /
/
| \ / | |__ __| | __
\
| / |
|_/
/ | \ / | | |
| |__| |
| \____ |
/ |——| | |
\/ |
| | | | ___ /
\___ \ |
|\ \ |——|
| | | | |
| | | \ \
____/ | | |
\
\ | | | | _| |_
| | \ \
|______/ |_|
\_\
|_| |_| |_____|
|_| \_\
———————————————————————
欢迎使用本引擎!
1.
这是一款新式三端互通3D游戏引擎:
—
PC端人物走路及PK和PC引擎一样,适应端游玩家
— 手机端(安卓+苹果)采用原生C语言开发,手机运行不卡顿不发烫,人物走路PK丝滑流畅
2. 引擎服务端(M2)使用C语言编写,运行速度极快、占用内存极少(M2运行不挑服务器,几十块的服务器也能流畅运行)
3.
提供大量灵活的扩展命令,可让GM跳出老式引擎的条条框框,做出真正独特的、好玩的版本
4. 支持3D素材,可做出3D地图、怪物、NPC等
5. 支持各类自家SDK接入,玩家资源掌握在开服人手中
6. 脚本命令和开发概念兼容市面其它引擎,GM无需重新学习,上手即会.
便捷操作
| 操作 | 说明 |
| Ctrl+ 双击面板 | 打开面板脚本,编辑完保存直接生效,不用重启M2 |
| Alt + 双击面板 | 打开面板UI文件 |
| Alt + R | 呼出UI编辑器 (或Ctrl+F10) |
| 私聊打cmd |
游戏聊天框私聊频道输入cmd进命令频道,可执行任意脚本命令 |
提示:
修改数据表、脚本、素材偏移等操作,自动刷新,不用重启登录器和M2
注意:
本书明说中搜不到的命令或功能,不表示没有,可查看其它引擎说明书, 后面会陆续完善,以便开发人员查阅.
更新日志
更新日志
[V138_sp29 更新说明] 2026-1-11 (最新版本)
————————————————————————-
[BUG修复]
1. 手机版摇杆偶尔粘连不回中
2. 各种回城后仍然按住摇杆移动人物走路会卡顿,松开一下摇杆再跑才能好
3. 技能指示器初始没有锁定目标
4. 修复手机端快捷栏单击不吃药问题
5. 进出门点偶尔不流畅,还偶尔出现回弹
6.
挂机使用野蛮导致空气墙出现几率大幅增加
7. 修复苹果输入法不好用及异常问题
8. 修复一些界面提示错误
9.
修复逐日剑法(线形类技能)稍微判定不准确的问题
10.修复手机端部分设置项不保存问题
11.修复挂机中被空气墙卡住的问题
12.修复客户端多处细小显示错误
M2修复
1.修复人物宝宝莫名锁定物品导致休息
2.修复人物挂机攻击物品
3.修复开服务器离线挂机导致M2卡死
仍在修复中的问题:
[V138_sp28 更新说明] 2025-10-30
————————————————————————-
[BUG修复]
1.
修复地图创建时极小几率卡死报错的问题
2.
修复怪物小几率攻击物品的问题
3. 修复小几率技能入场位置错误的问题
4. 修复挂机中无故使用背包第1格物品
5.
修复PC端Shift强攻释放刺杀技能有几率关闭刺杀的问题
[V138_sp25 更新说明] 2025-10-13
————————————————————————-
修复已知BUG
[V138_sp18 更新说明] 2024-03
————————————————————————-
[BUG修复]
1.
修复在机械硬盘中运行大几率出现日志锁卡死问题
2. 修复1处因内存管理问题导致服务端程序崩溃的严重问题
[新增]
1.
新增安卓、PC热更新功能(苹果暂不支持),点击查看:
热更新
2.
增加新属性:拾取绑定(ATTR_PICKBIND),此值用于控制人物拾取物品进背包后如何绑定,取值参考: 物品绑定标志
[调整]
1. 游戏数据库表格目录由原来位置 “Mir200/数据库”迁移到
“Mir200/Envir/data”目录里
同时,数据库表格编译结果static_data也同步迁移到Mir200/Envir目录下.
以上调整,由引擎自动完成,无需手动干预.
2.
M变量调整到64位.因本引擎货币是64位,为适应部分货币操作将参数保存到M变量,将M变量调整到64位.
[V138_sp17 更新说明] 2024-03-01
————————————————————————-
[BUG修复]
1.修复脚本大对话框UI设置对齐不起作用的问题
2.修复属性”攻击倍数”增加后,攻击力不及时刷新显示的问题
3.修复runscript_on_obj不起效的问题
4.修复定时器等全局脚本无法操作大对话层中UI的问题
5.修复套装属性失效问题
6.修复段内连续DelayGoto无法停止问题
7.修复脚本传回的到本地面板上的UI,在UI编辑器中被保存的问题
8.修复UI编辑器保存<Effect>不记录effectid的问题
9.修复登录器最小化或改变窗口大小后,脚本UI丢失问题
10.修复容器内UI不能隐藏的问题
11.修复SetIcon有时不能取消顶戴的问题
12.修复人物改名后用SetRankLevelName设置的名字不及时刷新问题
13.修复自定义属性(ATTR_GMDEF)映射到其它属性失效的问题
[新增]
1. 新增装备属性面板特效设置功能
SetItemWindowEffectIndex 物品位置 特效位置(1-8) 特效编号(0为关闭)
2. 快捷栏扩充到12格,PC端快捷键为1-9 ,0、-、+
3. 增加容器边距翻滚提示
4.
兼容<Img>九宫拉伸
5.
增加特效表九宫拉伸设置,现在可以设置边框类特效九宫拉伸,特效边框放大缩小仍然保持清晰明亮
关于如何设置特效九宫拉伸,请查看:数据库详解-> 特效.csv
6. 增加全身装备强化次数附加属性触发,请查看:
设置全身强化附加
7. 增加物品在包裹最大数量限制设置,请查看:
物品在包裹数量限制
8.
增加变量下发到客户端功能,可以在装备备注中使用<$STR(变量名)>来取变量值,请查看:
变量下发
9.
增加怪物采集操作,请查看: 怪物采集
10.增加阵营系统,请查看:阵营
11.增加人形怪、心魔挑战功能:人物分身
12.增加每天第1次登录触发[@SetDay]和每周第1次登录触发[@SetWeek]
[优化]
1.
优化飘血效果,现在可以能过表”Mir200/数据库/更多/动作和特效/飘血设置.csv”来设置自定义飘血图片
2. 增加UI tips富文本数据段长度,可以在UI中填写更多、更复杂的tips
3.
装备极品属性、升级属性、升星属性总个数,扩充到最大255条,详细请看:装备属性
4.
简化client_data\ui目录下的UI文件处理,一个面板对应一个UI文件
[调整]
1. 一行UI脚本中有重复字段的,调整为最后字段有效. 在实际写UI时,应避免重复字段出现,以免带来不必要的麻烦.
2. 自定义货币最大数值扩充到64位(约922亿亿)
[V138_sp16 过渡版本]
[V138_sp15 更新说明] 2023-09-09
————————————————————————-
[BUG修复]
1.修复AddObjBuff加带属性BUFF时属性加不上的问题
2.修复脚本召唤宝宝的召唤标志在M2重启后没有保存问题
3.修复两个<ItemShow>靠太近鼠标指向时会不显示属性面板问题
4.修复排在第1个的任务无法检测获取的问题
5.修复在选择角色界面删除2D人物后残留且变小的问题
6.发现并修复一处可能会造成空气墙的问题
[新增]
1.
增加技能特殊破坏几率对人和对怪分别设置,技能表特殊破坏几率填写格式:对人几率#对怪几率
2. 新增漩飞、连发、裂神符、万剑决等技能模式
3. 增加计时器<Timer>设置以终止时间计时模式
4.
增加自定义制造来源,SetThrowItemLy参数1可自定义,在”基础设置.txt”中[制造来源]中设置
5. 增加”霸凌伤害”、”霸凌伤害几率”、”满血首刀几率”、””满血首刀伤害”、”满血首刀抵抗”5个新属性
注意:需要更新”属性.csv”
6.
增加属性”持续状态”的”原样隐身”属性值,可以使人物处对怪隐身状态,但不半透明显示
7.
增加AddClockScript和RemoveClockScript命令,提供在当天指定时间运行指定脚本
[数据调整]
1. 回血速度、回蓝速度值的填写,由之前的数字档调整为更自然的周期时间表示,即:
多长时间恢复一次
更新时,sdmaker.exe会自动对数据表中所有填回血速度的地方进行了正确换算,GM不用做任何处理
[优化]
1. 优化快刀速飘血显示
2. <Text>不写颜色时默认为白色
[V138_sp14 更新说明] 2023-07-29
————————————————————————-
[BUG修复]
1.
修复空白任务被接后不在任务列表中显示的问题
2. 修复编辑器查看部分wzl素材不显示图像问题
3.
修复地图表中最后一个地图无法创建镜像地图的问题
4.
修复脚本召宝宝叛变后人物下线再上线宝宝多出问题
[优化完善]
1.
免NPC大对话框”隐藏原框”标志设置,现在,引擎会根据NPC脚本自动设置隐藏原框,减少GM负担
2.
免NPC定时器生效需首次点击NPC,现在,引擎会自动打开有定时器NPC所在地图,并且预加载NPC脚本,GM无需过多设置
[V138_sp13
更新说明] 2023-07-25
————————————————————————-
[BUG修复]
1.
修复M2异常提示新加怪物爆率文件已存在问题
2. 修复客户端人物被怪物围住后手动操作不攻击问题
3.
修复部分兼容命令异常问题
[新增兼容]
1. 兼容<$RecallRemainingTime>
2.
兼容机器人脚本中对多级脚本命令和常量的支持
[V138_sp10 更新说明] 2023-07-18
————————————————————————-
[BUG修复]
1.
修复读取OK框物品信息异常问题
[V138_sp7
更新说明] 2023-07-03
————————————————————————-
[BUG修复]
1.
修复Alt+R查看大对话框名在#CALL调用后显示不一致的问题
2. 修复编辑器最小化和调整窗口大小时报错的问题
3.
修复邮件指引偶尔失效的问题
4. 修复修改物品名字异常问题
5. 修复在时装面板移动鼠标会显示装备面板装备属性的问题
[新增]
1.
增加Navigation全套指引功能,具体用法看”引擎说明书/功能示例/指引系统.txt”
2. 增加任务列表字符过长自动滚动功能
3.
增加职业初始挂机躲避系数设置(在”Mir200/Envir/角色出生设置.txt”中设置)
;
各职业初始挂机躲避系数
;
============================================================================
; 挂机躲避(战士): 2.5
; 挂机躲避(法师): 1.2
; 挂机躲避(道士):
1.5
4. 增加脚本命令控制飞入拾取,具体操作方法见”说明书/功能示例/地面装备飞入包裹设置.txt”
[调整]
1.
人物升级经验表”Mir200/数据库/更多/角色/角色升级经验.csv”中的每级级验由42亿扩充到9223372036854775807(约922亿亿)
2.
技能升级经验表”Mir200/数据库/更多/技能/技能升级经验.csv”每级级验由42亿扩充到9223372036854775807(约922亿亿)
[优化]
1. 优化技能条、技能网格、技能环设置
[V138_sp6i 更新说明] 2023-06-09
————————————————————————-
1.
完善行会触发
2. SETRANKLEVELNAME增加人物多行名字富文本支持,可以对一行中每个字的颜色及变色独立控制
3.
修复邮件系统小问题
4. 服务器G变量I变量存储文件位置由原来的Mir200/GlobalVal_G.ini 转移到
Mir200/Envir/GlobalVal_G.ini之前在Mir200/目录下的G变量文件不再使用
5.
修复滑动包裹显示未开启字样异常问题
6. 修复脚本加载第2仓库异常问题
7. 增加寻路脚印显示
*重要调整说明:
底板资源文件做了调整,之前res1到600以内的全部删除,用这次更新的res1,
引擎只占用前200号资源ID
详细请看”引擎说明书/引擎资源文件说明.txt”
[V138_sp5
更新说明] 2023-05-20
————————————————————————-
[BUG修复]
1.
修复BUFF人物跨地图异常问题
2. 修复纯2D模式部分素材黑底问题
3. 修复纯2D模式怪物尸体遮挡异常问题
4.
修复纯2D模式地图遮挡异常问题
5. 修复血球扣血时异常闪烁的问题
6.
修复SendCenterMsg同一发送ID不覆盖及透明显示异常问题
7. 修复装备特效顺序异常问题
[V138_sp4 更新说明] 2023-05-16
————————————————————————-
[新增]
1.
增加强化次数在装备栏中显示(引擎支持的清晰字体)
2.
增加怪物每级名字颜色设置,在”Mir200/数据库/更多/基础设置.txt”中增加一项”怪物每级名字颜色变化ID:”,其值设置颜色变化表中的ID
3.
增加角色最高升级等设置,在”Mir200/数据库/更多/基础设置.txt”中增加一项”最高限制等级:xx”
玩家达到最高限制等级后,经验该加加,不会升级,一旦限制放开根据当前经验该多少级就多少级
4. 增加BUFF展示UI
<BuffShow>,详细使用说明见:sk新增UI.xlsx
5.
增加BuffCD时间设置命令:SetBuffCDTime、<$BUFFCDTIME>、<$BUFFCDTIMEMAX>,使用说明见sk脚本命令.xlsx
6.
增加BUFF图标鼠标指向说明提示
7. 增加装备固有BUFF设置(和自动显示),固有BUFF设置方法见:sk物品表填写.xlsx
8.
增加对杀怪物品落地前修改功能,方法见:”引擎说明书\功能示例\装备物品\修改掉落物品属性.txt”
9.
增加”Mir200/数据库/属性/属性品质.csv”中对升级、升星以及第几条属性的设置
[BUG修复]
1. 修复定时器异常问题
2. 修复任务系统异常问题
3.
修复SetRankLevelName名字变色%s不在放前不显示的问题
4. 修复人物数据超过64K上线失败的问题
[优化]
1.
优化静态数据表无需第一行空数据占位(有效数据可以直接从第一行开始,以前需要设置一个空行占位)
[V138_sp3 更新说明] 2023-05-05
————————————————————————-
[重要变更]
注意:所有物品操作命令统一使用装备位置或MakeID,之前物品源和genID的方式已废止!
(如果有用过物品源和genID,则需要在改成makeID)
[新增]
1.
增加装备动态BUFF功能,配套新命令见:sk脚本命令.xlsx中的AddItemBuff等
2. 增加角色翻页数量设置,可以设置一次翻1个角色
3.
增加物品表附加名称”</>”识别, 这样写表示不在包裹中显示附加名称
4. 增加动态BUFF图标、动态属性图标、动态刀魂进度图显示,
设置方法:在图标列中追加数据: 图标名称/帧数/每帧毫秒
5. 增加滚动文字起始滚动设置,在<Text|scroll_start=xx>,
其中xx=0.0从最左边开始滚动 xx=1.0从最右边开始滚动, xx=0.5从中间开始滚动
6.
增加多行滚动文字(最多32行同时滚动)
7. 增加播放屏幕特效命令Screffects,最多可以同时叠加屏幕特效128个
8.
增加TakeBagItem命令回收标志参数,详细见”sk脚本命令.xlsx”
[BUG修复]
1. 修复滑动背包不显示装备属性问题
2. 修复升级跳级加血、跳级触发等问题
3.
修复普通对话框中放置OK框触发消失的问题
4. 修复Alt+R编辑UI时点到大地图异常问题
5. 修复大话框调整X负坐标不起效问题
6.
修复NPC放置表Mir200/Envir/NPC.csv中有出复NPCID卡死的问题
7.
修复删除地图静态数据后执行sdmaker.exe异常问题
8. 修复复古NPC对话框关闭按钮鼠标指上不显示的问题
[优化]
1.
优化物品掉落叠加问题,通过在”Mir200/数据库/更多/基础设置.txt”中增加配置项设置防叠加:
物品掉落防叠加扩展圈数 : 8
(最多以掉落中心向外扩展8圈)
[V138_sp2 更新说明] 2023-04-19
————————————————————————-
1.
修复镜像地图小地图名字未更新问题;
2. 修复客户端在加载角色选择界面时偶现错误角色名的问题
3.
修复文本标签在设置变色时不能取消渐变色的问题
4. 修复登录器配置误删文件问题,同时优化登录器打包功能
(需要更新Mir200\client_data\ui\common\Layers\clientcfg.layer文件)
[V138_sp1
更新说明] 2023-04-17
————————————————————————-
1.
完善SendCenterMsg命令,扩充参数见sk脚本命令.xlsx
2. 完善SENDDELAYMSG命令,扩充参数见sk脚本命令.xlsx
3.
增加镜像地图全套命令支持
4. 调整ISNEWHUMAN判断策略,调整为:在第一次判断是新人后就不再是新人
5.
修复其它一些小问题
[V137_sp8
更新说明] 2023-03-16
————————————————————————-
1. 增加切割值可设置是否计入吸血设置,默认不计入。
如要计入可在”区服启动文件.txt”中加入设置项”切割计入吸血:1″
2.
修复人物死亡后血球异常显示
3. 修复怪物掉落装备封印属性直接解封问题
4.
增加SENDTOPCHATBOARDMSG,并扩展滚动速度参数
5. 修复其它小问题
[V137_sp7 更新说明] 2023-03-12
————————————————————————-
1.
增加虚拟摇杆UI在模拟器上设置WASD移动匹配
2. 优化复古 开场界面 和人物选择界面
3.
增加VIP3自动回收和自动拾取(自动回收需要在”Mir200/数据库/更多/基本设置.txt”中设置回收档次,参考底版设置)
4.
增加幸运效果自定义(在Mir200/数据库/更多/基础设置.txt中定义)
5. 修复一些已知bug
[V137_sp6 更新说明] 2023-02-28
————————————————————————-
1.
增加登录器配置打包功能
2. 修复一些已知bug
[V137_sp5
更新说明] 2023-02-21
————————————————————————-
1.
增加离线挂机功能
2. 增加物品掉落来源记录
3. 增加装备自定义描述(最多8行)
4.
增加submit命令,用于提交之前已写的脚本,当脚本太长,出现缓冲区不足时,
可在导致不足的地方使用submit命令
5.
修复一些已知bug
[V137 更新说明]
2023-02-14
————————————————————————-
重大功能完善:
实现完整的UI编辑、保存功能,可以直接能过Alt+R编辑UI,不再需要操作UI文件。
修复一些已知的BUG
[V136_sp11
更新说明] 2023-01-30
————————————————————————-
1.
增加移除任务列表项命令:RemoveMissionListItem,可以将已完成的或完结的任务立即移除掉
2.
增加设置任务列表项置顶显示命令:SetMissionListItemTop,可以调整任务项显示顺序
3. 增加在线时间任务达成条件支持
4.
增加打开界面任务达成条件支持
5. 提高跑酷任务时间计时精度
6.
增加UI父项不约束子项相对其位置和大小的标志:UI_FLAG_DONOTREFCHILD
[V136_sp6-sp10 更新说明] 2023-01-12
———————————————————————
1.
增加SetMissionFinish命令(可直接设置任务完成状态)
2. 增加ui.SetUIPos命令,可以通过命令设置指定UI位置
3.
扩展MESSAGEBOX命令,可以设置自定义确定取消按钮文本
用法示例:
MessageBox
第1行\第2行\第3行 [xxx]@onok [yyy]@oncancel
其中xxx是确定按钮文本,yyy是取消按钮文本
4. 修复一些BUG
[V136_sp5
更新说明] 2023-01-07
———————————————————————
1.
修复底版复古界面
2. 修复<$BOXITEM[X].NAME>在OK框中没有物品时不为空的问题
[V136_sp4 更新说明]
2022-12-30
———————————————————————
1.
完善全套任务命令,增加左上角命令列表点击到QF触发
2. 修复一些其它BUG
[V136_sp3
更新说明] 2022-12-15
———————————————————————
1.
增加自动更新静态数据和服务器动态数据表结构功能,以后再有表结构变化时,无需手动在Excel中加减数据列
2. 修复一些BUG
[V136_sp2
更新说明] 2022-12-9
———————————————————————
放开自定义字符串资源
、自定义Wav音频资源功能
[V136_sp1
更新说明] 2022-12-6
———————————————————————
1.
增加列表容器滚动操作命令:
ui.ScrollToSubUI
滚动到子UI
ui.ScrollToItem
滚动到项
ui.ScrollToPos 滚动到位置
2. 增加背包遍历命令
GetBagItemMakeIDs 和
<$BAGITEMMAKEIDS>
3.增加血球红蓝半球分离设置功能:<BR> uitype=bloodball,红半球=图像/帧数/每帧毫秒/X偏移/Y偏移/X缩放/Y缩放,蓝半球=图像/帧数/每帧毫秒/X偏移/Y偏移/X缩放/Y缩放,
4. 优化列表容器特性,在列表容器再次加载时,继续保持上一次的滚动位置
若要在列表加载时滚动到开始位置,可以使用ScrollToPos等命令滚动
5. 增加修改代理号密码命令:
ChangeAgentPassword ①当前密码
②新密码
6. 增加自定义游戏类型全套命令
AddGameType ①类型名 ②类型描述
③图标资源名
DelGameType
①类型名
SetGameTypeShoworder ①类型名
②数字顺序
SetGameTypeDesc ①类型名
②描述文本
SetGameTypeLogo ①类型名
②图标资源名
[V0.0.136 更新说明]
2022-6-17
———————————————————————
1.
新增兼容以下命令:
OPENNPCSHOWEX
CreateNPC
CheckItenNameColor
ChangeItemNameColor
AddMapGate
CLEARITEMMAP
2. 新增数据表列”Mir200\Envir\Npcs.csv”
此表第2列“NPC代码”右侧增加一例:“NPCID”,修改完后NPC刷新表总列数为10(Excel列标J)
此ID是调用OPENNPCSHOWEX、CreateNPC等命仅中传入的ID
3. “Mir200\数据库\更多\属性和buff\属性.csv”
增加”属性代码”列写格式(老写法兼容)
“属性代码”列增加新的写法:
属性代码#等价属性代码(选填)
如果加了等价属性,则该属性功效等价于所写的属性,等价属性代码必须写ATTR_打头的英文代码
4. “Mir200\数据库\更多\属性和buff\属性.csv”
GM自定义属性扩展到14个,请把更新包中属性表的最后几行复制到自己的表中
5.
增加装备自定义特效功能,每件装备可以自定义4个包裹特效和4个装备特效(装备原有特效还是在物品.csv表中加)
使用SETITEMEFFECT命令加装备特效(此命令在SK中已作扩展,详细用法见”sk扩展命令.csv”)
6. 增加新的装备属性显示部位
<DescText|part=21> 装备评分
<DescText|part=22> 第6组属性
7. 增加怪物归属触发,详细用法见”星空引擎说明书\功能示例\怪物击杀归属.txt”
[V0.0.111
更新说明] 2022-5-28
———————————————————————
[BUG修复]
1.
修复法师挂机不打BOSS的问题
2. 修复手机版在镶嵌宝石界面不能放置宝石的问题
3. 修复设置里没有自动喝修复选项的问题
4.
修复武器不能开第4个孔的问题
5. 修复在部分机型上,角色在移动时受到攻击偶尔出现应用闪退的问题
[优化]
1.
优化在自己界面看其它人增加移速度后的视觉效果(移除看其它人快速移动时一卡一卡的现象)
2.
优化部分超宽屏手机在NPC买东西时看不到界面底部按钮的问题
3. 增加包裹、仓库等物品拖拽功能,优化物品放置体验
[新增]
1.
增加战士开天斩击飞效果(一定几率出现,技能等级越高击飞高度越高,击飞几率越大)
2.
增加法师灭天火击飞效果(满级技能100%击飞,其它等级一定几率击飞)
(击飞说明:击飞仅作为一种视觉效果,不是控制技能,击飞后的对象仍可以释放技能和移动)
[V0.0.102 更新说明]
2022-4-3
———————————————————————
1.
增加了更加丝滑的平滑移动体验,人物跑起来非常灵敏和舒服
2.
增加了镜头偏移功能,可以拖动屏幕看到屏幕以外的怪物、玩家动向。此功能默认开启,不需要的在设置->操作->下一页中关闭
3.
新版本已完美适配所有手机、平板机型,以及最新的折叠手机。iPad平板玩家将获得全新的无拉伸变形的游戏界面体验。
4.
增加了NPC快捷访问功能,当靠近NPC时,在右手非常舒服位置显示访问NPC按钮,直接点击即可访问NPC
5.
优化了点击NPC界面文本体验,新版本在点击NPC文本响应上更加灵敏
6.
增加BOSS方向提醒,当周围特别时屏幕外有危险BOSS时,人物头顶将出现警告,并告知BOSS方向
7.
增加斗笠提醒,当屏幕范围内有带斗笠玩家出现时,人物头顶将出现警告
[BUG修复]
1. 修复在玛雅等地图下线后复制宝宝的问题
2.
修复设置低血量保护偶尔失效的问题
[V0.0.96 更新说明]
2022-1-1
———————————————————————
[BUG修复]
1.
修复不自动喝修复油的问题
2. 修复挖矿问题
[V0.0.94 更新说明]
2021-11-24
———————————————————————
[BUG修复]
1.
修复订单置顶后单价显示为0问题
2. 修复包裹满后不捡金币问题
3. 修复大地图不显示队员和行会成员位置的问题
4.
修复道士可以同时召唤神兽和骷髅的异常问题(正常情况,只有拿了逍遥扇才可以同时招神兽和骷髅)
5. 修复每日限购过零点不重置的问题
6.
修复PC端不显示语音聊天人列表项的问题
7. 修复勾选了自动吃书但还是不自动吃书的问题
8.
修复部分武器元素属性升级异常的问题(更新后,所有超标升级值将恢复)
9. 修复行会有时不能加人问题
[功能优化]
1. 增加挂机回城途中拾取物品行为(避免错过重要物品)
2.
解决移动中遇到障碍疯狂卡步的问题
[V0.0.89 更新说明] 2021-8-1
———————————————————————
[BUG修复]
1. 修复挂单系统显示不全的问题
2.
修复领取奖励时包裹满的问题,现在只要包裹不够领,会提示腾出包裹
3. 修复进入幻境之家、进入英雄争霸之地等地图没有完成活越度的问题
4.
优化空气墙问题,进一步减少空气墙发生几率
5. 优化已接任务列表字体过大问题
6. 修复登录异常提示在其它服务器已登录的问题
7.
修复赤血魔剑吸血吸蓝失效问题
8. 修复掉线后在下线飞出地图不飞出的问题,以及由此问题引发的卡多个宝宝问题
[V0.0.55 更新说明]
2021-7-18
———————————————————————
[新增]
1.
增加实时语音聊天功能
[V0.0.53 更新说明]
2021-7-2
———————————————————————
[BUG修复]
1.
修复扔东西偶尔闪退的问题
2. 修复限时怪物被召唤后无限存在的问题
[V0.0.52 更新说明]
2021-6-29
———————————————————————
[BUG修复]
1.
修复太阳水等大药拾取问题,在新的版本中,在自选拾取列表中勾选要捡的大药就捡,不勾的大药不捡,
设置捡的大药还可以再设置是否捡起就喝,注意:由于喝大药CD时间问题,若连续捡多瓶大药,即时设置了捡起就喝,
后面捡的大药也可能因上一次喝的CD时间未冷却而不会喝,从而导致占包裹。要避免此问题,可以不捡此大药或买对应
的捆绳放在包裹里,这样会自己动捆扎。
2.
修复不勾随机保护或下线保护还依然保护的问题,在新的版本中,不勾保护就不保护
提示:挂机状态下,无论是否勾选保护都会保护角色
3.
修复设置了挂机禁用技能断线重连后又设置重置的问题,现在,当禁用一个挂机技能后,只要不大退,会一直保持禁用
4. 修复挖不到满持久矿的问题
5.
修复宝宝在休息状态下死亡后尸体永久存在的问题
6. 修复在非安全地区英雄币不足会弹出跳转充值页面的问题
7.
修复法师宝宝休息后过门点即可战斗的问题
8. 修复道士武器道术下限没加上的问题
9.
修复在练功房等有时间限制的地图中断线重连后停留时间显示不及时的问题
[新增]
1.
增加万里传音道具,可以将喊话内容传递到所有服务器
[V0.0.51 更新说明]
2021-5-28
———————————————————————
[BUG修复]
1.
修复套装显示问题(需新客端,不必强制下载)
2. 恢复疗伤药捆绳出售
[V0.0.50 更新说明]
2021-5-26
———————————————————————
[BUG修复]
1.
修复地图遗落丛林里的咒碑在消失后又迅速出现的问题
2. 修复金钢石、祝福罐等物品卖入商店再买出数量归1的问题
3.
修复断线重连后英雄之力和每日捐献特效消失问题
4. 修复人物带斗笠后,其它玩家设置低效果阴影仍能显示的问题
[V0.0.47 更新说明]
2021-4-29
———————————————————————
[BUG修复]
1.
修复因移动中断线重连导致出现”空气墙”的问题
[新增]
1.
增加书包功能(打怪经验自动转化成书页,需要英雄币开启获取书页)
[V0.0.41 更新说明]
2021-4-13
———————————————————————
[BUG修复]
1.
修复人物上线摊位还在的问题
2. 修复人物在跨越地图时有极小几率出现下属增多的问题
3. 修复断线重连后魔法盾、红绿毒状态不同步的问题
(需最新客户端v0.0.41)
4. 修复”财神勋章”漏加风系伤害属性的问题
[新增]
1. 增加卖东西金币超限提示
2.
增加服务器重启保留摊位功能
3. 增加奖励自助补领功能
4. 增加沙巴克商铺,仅沙巴克行会成员购买,有一定优惠
5.
增加幸运项链合成功能
6. 增加幸运项链兑换祝福油功能,在装备回收处兑换
7. 在商铺增加每日捐献入口(需最新客户端v0.0.41)
8.
增加每日捐献第一名特效 (需最新客户端v0.0.41)
9. 增加第三阶英雄之力图标显示 (需最新客户端v0.0.41)
[V0.0.40 更新说明]
2021-3-25
———————————————————————
[BUG修复]
1.
修复极品技能书卖到商店再买不是原极品书的问题
2. 修复收摊致周围角色卡顿的问题
3.
修复药水连续解包和手动吃药有时不上快捷栏的问题
[新增]
1. 增加掉线自动重连功能(重连成功不退地图,不掉队伍)
2.
增加服务器重起后下属自动恢复功能
3. 聚灵珠在摊位上显示聚集白分比
4. 挤号不退出当前地图、不掉队伍
(红手指玩家,现在可以直接用真机挤幻境里的角色,真机接管操作完成后,
再用红手指挤真机,角色会一直在幻境。注意:中途始终不要下线)
——————————————————————–
[BUG修复]
1. 修复药水连续解包和手动吃药有时不上快捷栏的问题
——————————————————————–
[BUG修复]:
1. 修复比奇跑任务偶尔出现不能完成的问题
2. 修复同一个角色可在多个区服同时登录的问题
3. 修复在下线飞出地图飞出可能导致的挂机时间重置、任务打怪数量重置及卡出多个下属的问题
4. 修复重大系统安全漏洞
1. 增加高价值物品在丢弃、拾取、交易等全环节流通公示与记录
[V0.0.36 更新说明]
2021-1-30
———————————————————————
[BUG修复]
1.
修复超级聚灵珠报错问题
2. 修复部分玩家在线支付失败的问题
[新增]
1. 增加沃玛、祖玛单件回收
2.
增加人物和部分高级装备暴击抗性属性
3. 增加上次登录区服记忆功能
——————————————————————–
1. 修复不能升级武器的问题
2. 增加NPC快速售卖功能
——————————————————————–
1. 修复了一些小问题
2. 增加幸运项链合成NPC
3. 增加微信、支付宝支付功能
[V0.0.33 更新说明] 2022-12-30
——————————————————————–
[BUG修复]
1. 修复魔法盾连续重开的问题
2. 修复部分地图到点无法进入的问题
1. 增加书页直接合成技能经验的功能(免除中间兑书再吃书环节)
[V0.0.32 更新说明] 2020-12-18
——————————————————————–
[BUG修复]
1. 修复刺杀刀光飞出和10级狗吐飞火出攻击安全区的问题
2. 修复战士攻击偶尔出现明明可以打到目标还进行无效走位的问题
3. 修复摆摊极小几率卡人问题
4. 修复使用探测项链获得目标坐标后点击不传送的问题
5. 修复圣言术、诱惑之光、狮子吼等技能对玩家下属无效的问题
6. 修复大刀令召唤大刀带到BOSS地图下线后无限认领的问题
7. 修复挖矿矿石不进第2包裹的问题
8. 修复弓箭手射箭在某些角度不命中目标的问题
9. 修复大刀卫士偶尔无限距离追砍的问题
[操作优化]:
1. 手机端长按技能键持续释放技能后,再点击NPC或摊位时不中断
2. 优化挂机拾取金币和药水(优先打怪,在空隙时间拾取金币和药水)
3. 优化传送到目标点有占位情况(优化后会传送到占位点附近,而不是提示有占位)
[V0.0.30 更新说明] 2020-12-5
——————————————————————–
1. 修复点击探测坐标不传送的问题(以及在大地图双击偶尔不传送的问题)
2. 增加在附近怪物列表点击摊位直接打开摊位浏览功能
[V0.0.29 更新说明] 2020-11-30
——————————————————————–
[BUG修复]:
1. 修复经验回档问题(此问题系客户端显示异常,实际经验保存在服务器上,没有减少)
2. 修复神兽及部分BOSS移动速度异常的问题
3. 修复经验之晶打破魔法盾的问题
4. 修复挂机有时不拾取物品的问题
[新增]:
1. 增加机关再开启时间提醒(当你去开一个已开过的机关时,就会得到提醒)
2. 增加附近玩家列表功能,可在此列表中选中并锁定玩家
3. 增加转职业功能
[V0.0.28 更新说明]
2020-11-12
———————————————————————
[BUG修复]
1.
改善隐形墙出现的问题
2. 修复乱吃飞天卷的问题
3. 修复PC端PK释放技能鼠标悬停在物品上放不出技能的问题
4.
修复挂机卷小概率不续吃的问题
5. 修复大药自动解包的问题
[操作优化]
1.
各类捆药绳现在可以跨包裹捆药,也可将捆药绳放在快捷栏捆药更方便
2. 自动技能(如:自动魔法盾)等在挂机时有效并自动释放
[新增]
1. 增加自选挂机拾取物品功能
2.
增加战士新技能疾影步,此技能增加人物移动速度,有帮于追击目标,需要练满技能才有突出效果
3. 增加BOSS刷新时刻查看功能
4.
增加战士更高级刺杀技能,4级以上刺杀有一定几率飞出刺杀刀光
———————————————————————
[BUG修复]
1. 改善隐形墙出现的问题
2. 修复乱吃飞天卷的问题
3. 修复PC端PK释放技能鼠标悬停在物品上放不出技能的问题
1. 增加自选挂机拾取物品功能
1. 各类捆药绳现在可以跨包裹捆药,也可将捆药绳放在快捷栏捆药更方便
———————————————————————
[BUG修复]
1. 修复客户端PK偶尔卡屏无响应的问题
2. 修复电脑端修改贵重物品拾取列表设置相同物品后客户端出错的问题
1. 道士防魔若锁定敌对目标则给自己加,若锁定盟友给盟友加,不锁定任何目标给自己加。
PC端按Esc取消锁定后,防魔鼠标指哪打哪
2. 增加战士PK免Shift和刀刀刺杀功能(设置->操作->PK免Shift)
3. 道士毒物、防魔再施加于目标后重新计时(这将避免错过毒物时间导致BOSS目标迅速回血)
1. 挂机时间到会自动飞回城(前提是包裹里要有可以回城的东西,如:各种回城石、回城卷、飞天卷等,否则人物原地不动)
2. 增加自动吃挂机卷功能(在剩余挂机时间少于3分钟时,自动吃包裹里的挂机卷)
3. 修复偶尔出现的挂机卡物品问题(再出现人物站物品上不动时,稍等一会即可自动解除)
———————————————————————
[BUG修复]:
修复客户端PK偶尔卡屏的问题
[V0.0.24 更新说明] 2020-9-3
———————————————————————
[漏洞修复]
1. 修复绑定物品交易漏洞
2. 修复法师带魔法盾进传送门导致服务器掉线漏洞
[V0.0.22 更新说明] 2020-8-19
———————————————————————
1. 修复部分物品卖1金币的问题
2. 修复包裹负重BUG(会导致挂机站在物品上一直不捡)
[V0.0.20 更新说明] 2020-7-8
———————————————————————
[操作优化]:
1. 点击各类门点光柱会先锁定它,再点直接跑过去,改变之前点击就上去攻击的问题
2. 增加战士开天斩和火焰刺杀攻击长度,以便逐日剑法后,有更大几率连上开天斩
3. PC版按Shift键点人直接攻击,改变之前点人看装备导致PK不便的问题
4. 增加组队挂机队员不跟队长设置(在不需要跟队长的情形,打开设置->挂机->勾选”不跟队长”)
[V0.0.19 更新说明] 2020-5-27
———————————————————————
[BUG修复]
1. 修复各类圣火在安全区烧人的问题(现在圣火进安全区攻击无效)
2. 修复狐狸不攻击部分怪物的问题(现在法师招的狐狸下属攻击所有目标)
3. 修复设置了不自动吃书但仍然吃书的问题(现在勾选自动吃书,则拾取到书就吃,不勾选不吃)
4. 修复吃双倍经验卷后带斗笠再拿下来经验倍数丢失的问题
———————————————————————
[BUG修复]
1. 修复跨地图后玩法查看队伍成员位置的问题
[新增]:
1. 新增部分地图和怪物说明功能。当在聊天框中出现带有下划线的地图或怪物名称时,
可以点击查看说明,后期会补全所有地图和怪物说明,以及所有技能的说明
2. 新增窗口范围内怪物状态查看功能,可以看到怪物中毒剩余时间等信息,点击屏幕
左上角”怪”按钮可以打开
3. 增加技能自动释放功能,可在设置中开启
[优化]
1. 进一步优化挂机时人物卡住处理方案,当人物被卡住几秒后,会尝试随机,没有随机会下线再上线,
以减少挂机故障率,保证长时间可顺利挂机。
[V0.0.17 更新说明] 2020-3-29
———————————————————————
[BUG修复]:
1. 修复安卓手机聊天打字不弹输入法的问题(以前需要点下空白再点聊天框才弹输入法,现在直接点聊天框弹)
1. 优化手机多点触摸机制,快速操作界面更流畅,可以边移动虚拟摇杆边做其它操作
[V0.0.16 更新说明] 2020-3-16
———————————————————————
[BUG修复]:
1. 修复手机端同时按虚拟摇杆和技能后摇杆粘滞问题
2. 修复传送窗口在过地图门点被快捷栏遮挡的问题
[V0.0.15 更新说明] 2020-3-7
———————————————————————
[BUG修复]:
1. 修复道士无极真气加在怪物身上的问题
2. 修复安卓系统注册密码不显示的问题
[*** PC版更新说明]
———————————————————————
本游戏PC版是直接运行在电脑上的客户端,无需模拟器。
PC版按照韩服传奇标准制作,同时兼顾经典传奇设置:
1. 技能释放F1 – F8,鼠标右键主界面右下角技能区图标直接设置按键
鼠标悬停锁定目标,指哪打哪,方便快捷
道士F1治愈术、F2灵魂火符、F3施毒术…
2. F9包裹、F10人物装备、F11技能、F12呼出设置
3. Ctrl+H更改攻击模式
4. Ctrl+D设置下属行动或休息,鼠标悬停下属按Ctrl+D可单独控制下属行动
5. Ctrl+鼠标右键玩家查看Ta装备
6. Ctrl+Z 开始/暂停挂机
7. Alt+E 悬停选中玩家组Ta;
8. Alt+X 快速小退;
9. 鼠标左键走,右键跑,走位更精准,抢宝更迅速
10. 鼠标悬停选中物品,点击抬起物品,再点放下物品,
这是标准PC端传奇操作,模拟器或手机玩家刚上手可能会不适应
———————————————————————
[BUG修复]
1. 修复包裹放置按钮显示错乱问题
2. 修复群体治愈术等技能不能作用自己的问题
3. 修复PC版本初始化声音模块(XAudio)的问题
———————————————————————
[BUG修复]
1. 修复部分物品进包裹偶尔出现比例失调的问题
2. 修复自动寻路被攻击后中断的问题(现在寻路被攻击后可继续正常寻路)
3. 修复捆绳在包裹时,解包疗伤药后又捆的问题(现在,解包疗伤药不会再捆,拾取疗伤药会自动捆)
1. 优化挂机路线,减少在一条路径上往返跑动的情况(后期将增加自选挂机点功能)
2. 优化技能持续释放功能:当一个技能正在持续释放时,可以再使用其它技能,之后会自动
持续释放先前的技能(这样可以方便道士攻击目标中途上毒更便捷,以及其它类似这样的场合)
3. 优化下属攻击控制功能,新的版本可以单独控制每个下属休息与行动的功能,以方便玩家对下属更细致的控制。
PC端鼠标悬停选中下属按Ctrl+D即可单独控制选中下属休息与行动;
手机端先点击要控制的下属(出现红色选中框),然后按下属控制按钮即可单独控制
如果没有任何下属选中,执行下属控制对所有下属一起生效。
[新增功能]:
1. 大地图实时更新显示队员位置,免除手动刷新
2. 增加人物第2包裹
3. 增加玩家包裹和仓库查询功能
普通红药蓝药不可叠加使用,要连续使用,必须等上一个药的血或蓝加完,如果强制连续使用
会收到使用过快的提示。若需要快速回血或回蓝,现在必须使用太阳水或疗伤药等
[V0.0.12 更新说明] 2019-12-2
———————————————————————
[BUG修复]
1. touch down UI激活其它弹出层后,本层无法再响应touch up
2. 修复总是提示技能满的问题
———————————————————————
[BUG修复]
1. 修复山谷矿区挖不到银矿和金矿的问题
2. 修复特定极品套组合加错属性的问题
3. 修复物品上快捷栏偶尔出现比例失调问题
[新增功能]
1. 新增仓库叠加物品”整存零取”功能
2. 新增技能长按持续释放功能
3. 新增私聊留言功能
[V0.0.10 更新说明] 2019-11-04
———————————————————————
[BUG修复]
修复上线提示框看不清、点私聊人列表崩溃等问题
修复苹果手机无法输入拼音问题
[V0.0.9 更新说明] 2019-10-28
———————————————————————
[BUG修复]
1. 修复道士宝宝练不满级的问题
2. 修复回城偶儿卡机问题
3. 修复魔法盾在跑动时显示抖动问题
4. 修复战士半月刀光错乱问题
5. 修复战士半月正对方攻击位置破防问题(此bug修复后,半月正对方不再破防,半月边缘依然破防)
6. 修复战士刺杀剑术上下两个方向不破防的问题
7. 修复战士野蛮冲撞无效的问题
8. 修复全身极品装备的额外属性没有加到角色身上的问题
9. 修复疗伤药不能捆装问题
10.修复组队和行会模式下攻击同盟玩家宝宝的问题
11.修复玩家宝宝杀死怪物或玩家不提示的问题
12.修复部分苹果手机打字不能输入汉字的问题
[调整]
1. 极品物品掉落在地上时名字不被遮挡
[优化]
1. 进一步优化挂机拾取,药品按需拾取,吃了药就捡不吃药不捡
2. 进一步优化组队挂机
1. 开通行会战功能
2. 开通元宝交易功能(修复油、捆绳、祝福罐等物品需要用元宝购买)
———————————————————————
[BUG修复]
1. 修复过门点偶而卡机问题
2. 修复等级经验显示错乱问题
3. 修复无行会聊天记录问题,更改行会聊天文本颜色
4. 修复宝宝经验倍率问题(宝宝随主号经验倍率)
5. 修复组队拾取问题
6. 修复战士挂机狮子吼一直释放问题
7. 修复摆摊金币不到账的问题
8. 修复先攻击怪物,诱惑成宝宝后无法挂机问题
1. 优化挂机拾取
2. 优化挂机寻怪,只打就近怪,不择怪
3. 小幅优化组队挂机
标志大全
数据表格、脚本参数中需要填写某某标志的,都可以在此搜索查看
[混合模式]
————————————————————-
中文值
数字值
说明
======================================
无混合
0 /* 不进行任何混合
*/
Alpha混合
1 /* Alpha混合(PNG图片使用)
*/
反向Alpha混合 2 /* alpha反向透明
*/
AlphaMix
3 /* alpha混合
*/
叠加
4 /* 叠加混合(去黑底)
*/
乌化
5 /* 乌化
*/
浊色
6 /* 浊色混合
*/
Effect1
7
Effect2
8
颜色相加 9
颜色相乘
10
空值
/* 自动混合(根据图片类型自动混合) */
[BUFF标志](可用|组合)
————————————————————-
闪烁
/* buff具有闪烁特效 */
走动移除 /*
一旦走动,buff移除 */
跑动移除 /* 一旦跑动,buff移除
*/
冻结动作 /* buff导致动作冻结在当前帧(如:麻痹)
*/
死亡不显 /* 对象死亡,移除buff动画
*/
不提示 /*
不在聊天框中显示buff产生及BUFF属性
*/
给自己 /* BUFF给自已(技能设置BUFF时,技能释放时给BUFF,若想技能命中后给,用标志“技能判定后给自已”)
*/
隐藏属性 /* 在BUFF提示上隐藏属性显示
*/
同技能时间 /* buff持续时间随释放技能存续时间
*/
不轮换显示 /* buff不轮回显示(一直显示)
*/
攻击移除 /* 一旦攻击,buff移除
*/
不保存 /* 下线不保存buff状态
*/
摆摊不计时 /* 摆摊时不更新buff时间
*/
下线保存 /* 下线时总是保存buff
*/
检查覆盖 /*
检查相同buff是否需要覆盖(不设buff总是被覆盖) */
死后不存
/* 死亡时buff不保存 */
不叠加 /*
buff总是不重叠 */
上方时间 /*
在buff图标上方显示buff时间 */
时间延长 /*
相同buff再增加时延长时间 */
总是叠加 /*
相同buff在属性和时间上叠加 */
总是覆盖 /*
相同buff总是覆盖(无论新buff值是低是高) */
总是传输 /*
在传输时总是打包这个buff(一般不用)
*/
只能走 /*
BUFF导致对象只能走(如:蛛网) */
不恢复属性 /*
BUFF结束后不重置属性值,如直接加减血BUFF */
不移除特效 /*
BUFF结束后不移除特效 */
无图标 /*
不显示BUFF图标 */
不作用死亡对象 /* BUFF不作用于死亡对象(buff特效还在,只是不在有buff功能)
*/
死亡移除 /*
死亡后buff立即移除 */
间歇立即生效
/* 间歇性BUFF生成后立即起效 */
技能判定后给自已 /*
当技能中给BUFF时,此标志表示在技能判定命中后才给自已,如果是“给自已”标志,则是在技能释放时给
*/
更新增量提示 /* 当BUFF属性被叠加时,在界面是提示叠加量(而不是总量)
*/
无头顶飘字 /*
获得BUFF时不显示头顶飘字 */
[对齐方式]
————————————————————-
ALIGN_NONE
0 /* 无对齐 */
ALIGN_CENTER
1 /* 中心居中 */
ALIGN_HORI_CENTER
2 /* 水平居中 */
ALIGN_VERT_CENTER
3 /* 坚直居中 */
ALIGN_TOP
4 /* 上对齐 */
ALIGN_TOP_LEFT
5 /* 左上对齐 */
ALIGN_TOP_CENTER
6 /* 中上对齐 */
ALIGN_TOP_RIGHT
7 /* 右上对齐 */
ALIGN_BOTTOM
8 /* 下对齐 */
ALIGN_BOTTOM_LEFT
9 /* 左下对齐 */
ALIGN_BOTTOM_CENTER
10 /* 中下对齐 */
ALIGN_BOTTOM_RIGHT
11 /* 右下对齐 */
ALIGN_LEFT
12 /* 左对齐 */
ALIGN_LEFT_TOP
13 /* 左上对齐 */
ALIGN_LEFT_CENTER
14 /* 左中对齐 */
ALIGN_LEFT_BOTTOM
15 /* 左下对齐 */
ALIGN_RIGHT
16 /* 右对齐 */
ALIGN_RIGHT_TOP
17 /* 右上对齐 */
ALIGN_RIGHT_CENTER
18 /* 右中对齐 */
ALIGN_RIGHT_BOTTOM
19 /* 右下对齐 */
ALIGN_RIGHT_NEXT
20 /* 右侧排放 */
ALIGN_RIGHT_NEXT_TOP
21 /* 右侧排放上对齐 */
ALIGN_RIGHT_NEXT_VCENTER
22 /* 右侧排放居中 */
ALIGN_RIGHT_NEXT_BOTTOM
23 /* 右侧排放下对齐 */
ALIGN_BOTTOM_NEXT
24 /*
下侧排放 */
ALIGN_BOTTOM_NEXT_HCENTER
25 /* 下侧排放居中 */
ALIGN_BOTTOM_NEXT_LEFT
26 /* 下侧排放左对齐 */
ALIGN_LEFT_BOTTOM_NEXT
27 /* 左侧排放下对齐 */
ALIGN_TOP_NEXT
28 /*
上侧排放 */
ALIGN_TOP_NEXT_LEFT
29 /* 上侧排放左对齐 */
ALIGN_TOP_NEXT_RIGHT
30 /* 上侧排放右对齐 */
ALIGN_TOP_NEXT_CENTER
31 /* 上侧排放居中 */
ALIGN_LEFT_NEXT
32 /* 左侧排放 */
ALIGN_LEFT_NEXT_VCENTER
33 /* 左侧排放居中 */
[对象类型]
————————————————————-
1 /* 玩家对象
*/
2 /* 怪物对象
*/
3 /* NPC对象
*/
4 /* 物品对象
*/
5 /* 技能对象
*/
6 /* 光源对象
*/
7 /* 摊位对象 */
[无敌
属性取值](可组合)
————————————————————-
穿身 /*
无障碍任意移动(穿墙穿人穿怪) */
不可见 /*
对象对所有其它对象隐身 */
不受攻击 /* 对象不受任何攻击
*/
无限血量 /*
无限血量
*/
无限蓝量 /*
无限魔法
*/
免限 /* 没有任何限制(无视穿戴需求
技能学习需求等) */
BUFF免疫 /*
buff免疫
*/
固封移动 /* 可在不可移动的区域里移动 */
[特殊功能
属性取值](可组合)
————————————————————-
自身传送 /*
地图任意传送(如:传送戒指) */
队员传送
/* 拉人到自己身边(天地合一) */
怪物叛变 /* 可以发动全区怪物叛变 */
复活
/* 死亡后原地满血满蓝复活 */
护身
/* 受到攻击将扣血量转化成扣蓝 */
隐身
/* 人物隐身,怪物看不到自己,其它人物可以看到自己 */
瞬移追击 /*
追身攻击,可以瞬移到目标对象身边 */
探测
/* 可探测玩家和怪物位置 */
修炼技能
/* 对于设置不可修炼的技能在释放技能时可增加技能点 */
隐藏提示 /* 隐藏人物上线、进图等提示信息
*/
穿身
/* 穿人和怪,不能穿墙 */
地图全亮
/* 在黑暗环境中地图全亮 */
锁定攻模
/* 锁定攻击模式,人物不能更改攻击模式(负增益) */
死亡不爆 /* 自己被击杀死亡什么都不爆
*/
杀怪不爆
/* 杀死怪物不爆东西(负增益) */
[单元格标志](可组合)
————————————————————-
CELL_FLAG_TEXTUNDERLING
/* 下划线 */
CELL_FLAG_DRAWREDDOT
/* 红点 */
CELL_FLAG_CLICKABLE
/* 可点击响应 */
CELL_FLAG_FLASH
/* 闪烁 */
CELL_FLAG_RIGHTBORDER
/* 绘制右侧边框 */
CELL_FLAG_FREEIMAGESIZE
/* 图像比例随设置的单元边距自由拉伸 */
[列表标志 设置在list_flags=](可组合)
————————————————————-
LIST_FLAG_AUTOCLEARSELECTIONS
/* 自动清除选中 */
LIST_FLAG_MULTISELECT
/* 可多选 */
LIST_FLAG_DONOTZOOM
/* 按Ctrl+滚轮时不缩放列表项 */
LIST_FLAG_TOUCHUPRESPONSE
/* 按下列表项松开后再响应 */
LIST_FLAG_SELHILIT
/* 选中高亮 */
LIST_FLAG_DONOTDRAWITEMBKCLR
/* 不绘制列表项背景色 */
LIST_FLAG_DONOTDRAWOVERSELBK
/* 不绘制鼠标悬停选中背景色 */
LIST_FLAG_DONOTDRAWSELBK
/* 不绘制选中背景色 */
LIST_FLAG_TOUCHDOWNSEL
/* 按下时选中 */
LIST_FLAG_SHOWCELLBORDER
/* 显示列表单元格边框 */
LIST_FLAG_NOTOUCHITEM_NOEAT
/* 没有选中项的话穿透点击 */
[Buff来源 用在技能表、物品表、Buff命令]
————————————————————-
BUFF_SRC_NONE
0 /* 无
*/
BUFF_SRC_DAMAGE
1 /* 由技能破坏力造成的buff
*/
BUFF_SRC_ITEM
2 /* 由使用物品造成的buff
*/
BUFF_SRC_DAMAGE1
3 /* 由技能破坏力1造成的buff
*/
BUFF_SRC_DAMAGE2
4 /* 由技能破坏力2造成的buff
*/
BUFF_SRC_DAMAGE3
5 /* 由技能破坏力3造成的buff
*/
BUFF_SRC_DAMAGE4
6 /* 由技能破坏力4造成的buff
*/
BUFF_SRC_DAMAGE5
7 /* 由技能破坏力5造成的buff
*/
BUFF_SRC_DAMAGE6
8 /* 由技能破坏力6造成的buff
*/
BUFF_SRC_DAMAGE7
9 /* 由技能破坏力7造成的buff
*/
BUFF_SRC_DAMAGE8
10 /* 由技能破坏力8造成的buff
*/
BUFF_SRC_WEARSUIT
11 /* 穿戴套装造成的buff
*/
BUFF_SRC_UDLATTR
12 /* buff来自下属对主人的属性影响
*/
BUFF_SRC_SCRIPT
13 /* 由脚本命令设置的buff
*/
BUFF_SRC_GEN
14 /* 生成时所具有的buff
*/
BUFF_SRC_UNIQUE
15 /* 从不叠加的BUFF使用此来源
*/
BUFF_SRC_VIP
16 /* VIP信息中获得的buff
*/
BUFF_SRC_ALLSTAR
17 /* 全身星极装备获得的buff
*/
BUFF_SRC_SCRIPT1
18 /* 由脚本命令设置的buff
*/
BUFF_SRC_SCRIPT2
19
BUFF_SRC_SCRIPT3
20
BUFF_SRC_SCRIPT4
21
BUFF_SRC_SCRIPT5
22
BUFF_SRC_SCRIPT6
23
BUFF_SRC_SCRIPT7
24
BUFF_SRC_SCRIPT8
25
BUFF_SRC_SCRIPT9
26
BUFF_SRC_SCRIPT10
27
[刷怪标志
用在MonGen.txt](可叠加)
————————————————————-
MONGEN_FLAG_WORLDTIP
/* 怪物刷新时全区提示 */
MONGEN_FLAG_WALLCLOCKTIME
/* 固定时间刷怪,格式 小时:分(24小时制) */
MONGEN_FLAG_DIECOUNTERDOWN /* 从怪物死亡后开始计时刷新
*/
MONGEN_FLAG_DONOTSHOW_GENLIST /* 不在引擎内置的怪物刷新列表中显示 */
[装备穿戴标志 用在物品表look字段](可叠加)
————————————————————-
隐藏武器内观 /*
穿戴后隐藏武器内观 */
隐藏衣服内观 /* 穿戴后隐藏衣服内观
*/
隐藏头盔内观 /* 穿戴后隐藏头盔内观
*/
隐藏头发内观 /* 穿戴后隐藏头发内观
*/
隐藏头部内观 /* 穿戴后隐藏头部(含脸)内观
*/
隐藏裸模内观 /* 穿戴后隐藏裸模内观
*/
隐藏翅膀内观 /* 穿戴后隐藏翅膀内观
*/
隐藏武器外观 /*
穿戴后隐藏武器外观 */
隐藏衣服外观 /* 穿戴后隐藏衣服外观
*/
隐藏头盔外观 /* 穿戴后隐藏头盔外观
*/
隐藏头发外观 /* 穿戴后隐藏头发外观
*/
隐藏头部外观 /* 穿戴后隐藏头部(含脸)外观
*/
隐藏翅膀外观 /* 穿戴后隐藏翅膀外观
*/
死后消失
/* 人物死亡时,装备在身上消失
*/
禁止拿下 /*
穿上后不允许拿下来(可以爆,若要不爆,还要加物品标志:总不爆出)
*/
隐藏内观 /*
穿戴后,不显示本件装备内观 */
[外观标志](可组合)
APPR2D_FLAG_DRAWASFLOAT /*
外观动画是否做为漂浮层
*/
APPR2D_FLAG_DRAWASMASK /*
打底绘制(魂环类)
*/
APPR2D_FLAG_DRAWNOGRAY /*
如果要求gray绘制,则不gray
*/
APPR2D_FLAG_OVERLAP3DMODEL /*
可在3D模型上覆盖
*/
APPR2D_FLAG_BLACKFILTER /*
绘制时要黑透
*/
APPR2D_FLAG_SHARPSCALE
/* 锐利缩放
*/
APPR2D_FLAG_FLIPX /*
外观水平翻转
*/
APPR2D_FLAG_FLIPY
/* 外观坚直翻转 */
[地图标志 用在地图.csv和地图基础配置.csv]
(可叠加)
————————————————————-
不可随机 /* 不能在当前地图飞随机
*/
不可传送 /* 不可传送(包括记忆套传送/夫妻传送/师徒传送等)
*/
不可挂机 /* 不可挂机 */
禁吃红药 /* 不能用红药
*/
禁吃蓝药 /* 不能用蓝药 */
不可PK
/* 不可PK */
安全战斗 /* 地图上安全攻击(不加诅\不红名\不暴物品)
*/
下线飞出 /* 下线离开地图 */
进入公告 /* 进入提示
*/
隐藏宝宝 /* 地图隐藏下属 */
锁定视距 /* 禁调视野
*/
禁止寻路 /* 不能寻路 */
全亮无效 /*
全亮无效,即使使用全亮,也不全亮 */
地物光源 /* 有地物光源(光源一般是动画)
*/
有挖掘物 /* 有挖掘物 */
怪物反转 /*
反转怪物能力属性(等级越高,越弱) */
玩家反转 /* 反转玩家能力属性(等级越高,越弱)
*/
禁止组队 /* 不能组队 */
编组模式 /* 仅组队攻击模式
*/
乱斗模式 /* 乱斗模式(合法PK,不掉穿戴物品) */
禁用商铺
/* 当前地图不能打开商铺 */
启动加载 /* 当游戏服务器启动时就初始打开的地图
*/
禁用道具 /* 禁用道具 */
记录日常 /* 需要创建日常状态记录
*/
不可飞出 /* 不能用传送道具和技能离开
*/
不黑透 /* 用在部分需要保留黑底的地图素材
*/
禁止丢弃 /* 此地图不允许扔东西 */
禁止交易 /*
此地图不允许交易 */
换图掉落 /* 从此地图离开将检查包裹中是否有换图掉落的物品,有则执行掉落
*/
神秘人 /* 也是浑水摸鱼模式,统一外观 统一名字 不能说话
*/
禁止穿戴
/* 当前地图不能穿戴装备 */
[地图门点连接标志](可叠加)
————————————————————-
MAPLINK_FLAG_DONOT_SHOWIN_MOVELIST
/* 不在传送列表中显示
*/
MAPLINK_FLAG_RANDOMENTER
/* 随机到落点地图
*/
MAPLINK_FLAG_POSAROUND
/* 在落点附近
*/
MAPLINK_FLAG_TAKEOFF
/* 连接地图时有起飞特效
*/
MAPLINK_FLAG_DONOT_SHOWIN_DOORLIST
/* 不在门点列表中显示
*/
MAPLINK_FLAG_CHECKDOORFLAG
/* 只有在门点位置设置门点状态才能通过
*/
[宝宝召唤标志](可叠加)
————————————————————-
CALLMON_FLAG_DISCONNECT /*
宝宝不跟主人
*/
CALLMON_FLAG_DIEWITHOWNER
/* 主人死宝宝死
*/
CALLMON_FLAG_OWNERLOST_DELAYREMOVE
/* 主人下线或丢失 宝宝还存续一段时间
*/
CALLMON_FLAG_DONOT_PULLBACK
/* 不将召唤的下属怪物拉回身边(如:角绳放幼蛾)
*/
CALLMON_FLAG_DONOTTIP
/* 招出时不提示
*/
CALLMON_FLAG_DONOTCATCHOWNER
/* 跟随但不追赶主人
*/
CALLMON_FLAG_OWNERNOCTRL
/* 不被主人控制休息和战斗 */
[任务标志](可叠加)
————————————————————-
MISSION_FLAG_DAILY
/* 每日任务
*/
MISSION_FLAG_SINGLEFINISH
/* 单人完成(组队不算)
*/
MISSION_FLAG_MAPFLY
/* 可以直飞到任务地图
*/
MISSION_FLAG_GUIDE
/* 指引任务
*/
MISSION_FLAG_FIRSTLEAD
/*
前后连串执行的第一任务 */
MISSION_FLAG_ONLYSHOWINCURMAP
/* 仅在当前地图显示任务
*/
MISSION_FLAG_SHOWDESCONLIST
/*
在任务列表显示自定义任务描述
*/
MISSION_FLAG_CHECKFINISHONGET
/* 接到任务时立即自动判断是否完成
*/
MISSION_FLAG_NOCOND_NOFINISH
/* 无完成条件不算完成(需手动设置任务完成) */
[属性部位]
————————————————————-
ITEMATTR_PLACE_NONE 0 /* 无
*/
ITEMATTR_PLACE_EXTRA 1 /*
极品属性 */
ITEMATTR_PLACE_UPGRADE 2 /*
升级属性 */
ITEMATTR_PLACE_STAR 3 /*
升星属性 */
ITEMATTR_PLACE_SDDATA 4 /*
在静态数据中记录的固有属性 */
ITEMATTR_PLACE_EMBED
5 /*
嵌入宝石属性 */
[血蓝恢复标志 属性ATTR_HRF或ATTR_MRF取值](可叠加)
————————————————————-
待机恢复 /* 在待机时可以恢复血量或蓝量
*/
攻击恢复 /* 在攻击过程中可以恢复血量或蓝量
*/
行走恢复 /* 在行走中可以恢复血量或蓝量
*/
跑动恢复 /* 在跑动中可以恢复血量或蓝量
*/
飞行恢复 /* 在飞行中可以恢复血量或蓝量
*/
表情恢复 /* 在做表情动作时可以恢复血量或蓝量
*/
受击恢复 /* 在被攻击中可以恢复血量或蓝量
*/
关闭恢复 /* 关闭复血量或蓝量的自动恢复
*/
关闭增涨
/* 关闭任何形式的血量或蓝量增加(但还可以恢复)
*/
[称号标志](可叠加)
————————————————————-
人名颜色随称号 /* 人物名称颜色随称号表中设置的称号颜色
*/
可被遮挡 /*
称号被位于它前面的人物遮挡(无此标志称号置顶显示) */
[UI标志](可叠加)
————————————————————-
选中特性
/* 设置UI具有选中状态
*/
固定横纵比 /*
使用横纵比尺寸(如要有此标志,则h字段表示比例,即:h=w*h
*/
置顶显示
/* UI置顶显示 */
顶层容器
/* 顶层容器UI,面板中所有UI将自动加入此UI
*/
不画背景
/* 不绘制系统缺省的UI背景
*/
位置锁定
/* 在编辑UI时不能改变此UI的位置和尺寸
*/
只读
/* 文本框等UI中的文字不能更改,只能显示 */
不随边界安全区移动 /*
对于位于刘海屏幕附近的UI,当调整界面安全显示范围时不移动
*/
不获焦点
/* 指定UI在点击时不获得焦点
*/
自动隐藏
/* 离焦时自动隐藏
*/
划入响应
/* 移动到UI范围内时,当作点击响应 */
无限响应范围 /*
点到任何地方均响应,要放在所有UI之后 */
按住响应
/* UI被按住不放时,一直重复响应 */
顶层绘制
/* 在其它UI之上进行绘制 */
抬起悬停状态 /* 当UI点击抬起时,设置为悬停状态
*/
上下文菜单 /*
UI作为上下文菜单
*/
光标处显示 /*
UI在当前光标处显示(上下文菜单UI用此)
*/
自动失焦
/* UI没被点中时自动失去焦点
*/
悬停更新
/* 当鼠标悬停在UI上时更新UI */
弱对齐
/* 如果控件对齐的目标控件不可见,则不再对齐它
*/
不被捕捉
/* 当UI被按下时,不设置其捕捉状态
*/
不参于混合 /*
当整体设置层中UI半透明时,本UI还是保持原样
*/
背景UI
/* 设定UI作为背,背景UI无响应且总在最底层绘制
*/
排他可不选 /*
在同一排他组中可以不选中任意项
*/
支持拽入
/* 控件响应拖拽释放
*/
不存文本
/* UI中的文本在运行时动态设置,不保存最后显示的文本 */
总显子项
/* 主项隐藏子项仍然显示 */
不约束子项 /*
此UI下的子项位置和大小不相对父项
*/
不裁切子项 /*
容器不裁切子项显示 */
不入顶层容器 /*
如果层中有顶层容器,则不加入顶层容器项
*/
自由位置
/* 在自动或半自动排版面板中,UI不参于自动排版,用自己的位置 */
[面板层标志](可叠加)
————————————————————-
可移动
/* 面板层可以移动 */
自适应设计 /*
层根据设计尺寸自适应缩放 */
自适应内容 /*
层根据内容尺寸自适应缩放
*/
总不淡出 /*
层不参于特效混合
*/
弹出层
/* 面板必选 */
打开后缓存 /*
经常打开的界面可以设置驻留到内存中,以加速度打开
*/
可调整大小 /* 层可调整大小
*/
Tab切换缓存UI /* 当层有多个tab页时,在切换各个tab时保持tab页下所有控件
*/
有标题栏 /*
在WindowsUI风格模式下绘制面板顶部标题栏 */
默认关闭按钮 /*
层标题栏上有关闭按钮 */
不能移出屏幕 /* 限制移动面板位置不超过屏幕范围
*/
置顶层
/* 最前端层
*/
模态层
/* 当模态层打开后,不能操作其它界面
*/
初始构建 /* 初始构建
*/
屏蔽按键输入 /* 层忽略按键输入
*/
漂浮层
/* 漂浮层,这种层不会被hide all而隐藏(某些需要一直漂浮显示的东西可以用这种层)
*/
再开归位 /*
当层再次打开时,重置其初始位置 */
离焦自动关闭 /* 弹出层非活动时关闭
*/
检查安全范围 /* 层需要检查屏幕安全范围
*/
滑动到设定位置 /* 层在显示打开动画时,放置到初始位置
*/
屏蔽Esc关闭 /* 按Esc键不关闭
*/
不被激活 /*
层不被轮换激活(在框架中,上一个层被关闭时,会轮换激活下一层,设置此标志,层将跳过轮换激活
*/
触摸穿透 /*
点击到面板透明地方时,可以穿透点击到面板下方其它面板中的按钮
*/
固定层序 /* 层是固定的z
order,被激活后不置顶显示 */
固定横纵比 /*
使用固定高宽比尺寸 */
总不变暗
/* 不参与颜色混合 */
不进编辑模式 /* Alt+R后不能被编辑
*/
初始打开 /*
在界面加载时就把面板打开
*/
整数UI
/* 本面板中的UI使用整数坐标位置和大小 */
Windows风格
/* 本面板中的UI使用经典Windows风格
*/
手动保存 /*
面板层只能通过修改UI文件手动保存
*/
[绘制标志](可叠加)
————————————————————-
DRAW2D_FLAG_FLIP_X
X轴翻转
DRAW2D_FLAG_FLIP_Y
Y轴翻转
DRAW2D_FLAG_ALPHAGRADX
水平Alpha渐变
/* 图像从左到右逐渐透明
*/
DRAW2D_FLAG_ALPHAGRADY
坚直Alpha渐变
/* 图像从上到下逐渐透明
*/
DRAW2D_FLAG_ALPHAGRADYCENTER 中心Alpha渐变
DRAW2D_FLAG_BLACKFILTER
黑透 /* 透过纯黑色
*/
DRAW2D_FLAG_CLIPSPECCOLOR
去点状阴影
DRAW2D_FLAG_SCALETOFIT
缩放
DRAW2D_FLAG_FORCEINTPOS
整数坐标
DRAW2D_FLAG_FORCEINTOFF
整数偏移
DRAW2D_FLAG_ASFLOAT
漂浮 /* 2D贴片作为浮空贴片绘制(将叠加在3D对象上)
*/
DRAW2D_FLAG_ASMARK
打底绘制
DRAW2D_FLAG_WRITEDEPTH
写入深度
DRAW2D_FLAG_QUAD3D
3DQuad
DRAW2D_FLAG_RECORDDRAWED
记录已画
DRAW2D_FLAG_TESTDRAWED
测试已画
DRAW2D_FLAG_CLIP
裁剪
DRAW2D_FLAG_GRAY
灰度 /* 去掉图像的彩色信息
*/
DRAW2D_FLAG_HILIGHT
高亮
DRAW2D_FLAG_STROKE
石化
DRAW2D_FLAG_WRITEDEPTH_EX
写入深度Ex
DRAW2D_FLAG_CHANNEL_R
仅绘制R通道
DRAW2D_FLAG_CHANNEL_G
仅绘制G通道
DRAW2D_FLAG_CHANNEL_B
仅绘制B通道
DRAW2D_FLAG_CHANNEL_A
仅绘制A通道
[动画标志](可叠加)
———————————————————–
循环播放 /* 循环动画
*/
暂停隐藏 /*
动画暂停就不可见
*/
停留末帧 /* 放完后保持最后一帧
*/
固定位置 /* 固定动画位置,即以第一次设置的位为准
*/
初始停止 /* 开始时停止(即:不立即播放)
*/
中心锚点 /* 每帧中心锚点
*/
忽略偏移 /* 忽略每帧偏移
*/
底层播放 /* 动画底层播放
*/
匹配动作 /* 动画需要匹配动作帧
*/
绘制阴影 /* 绘制阴影
*/
动态缩放 /*
动画随场景规格缩放
*/
关联对象 /* 在对象原点处显示
*/
锐利画质 /* 点采样动画(锐利绘制)
*/
深度测试 /* 动画贴片深度测试
*/
可以叠加 /* 在不可叠加的情况下使动画叠加
*/
对象原点 /* 动画对齐到对象脚底点
*/
对象中心 /*
在对象中心点处显示 */
保持缩放 /*
做为UI绘制,不随渲染内容缩放 */
缺帧保持 /*
当一下帧无法读取时,保持当前帧 */
横向平铺 /*
横向铺满背景 */
纵向平铺 /*
纵向铺满背景 */
检查中心对齐 /* 检查是否中心对齐 */
[物品标志
用在物品表stdmode字段](可叠加)
———————————————————–
选中时动画 /* 选中时才显示动画
*/
单一持久值 /* 物品为单一持久值,例如加技能或人经验的物品
*/
可叠加 /*
多个物品可以叠在一个格子里,durcap表示可叠加的最大数量
*/
永不爆出 /* 这个物品被杀后永不暴出
*/
无磨损 /*
无磨损(不减持久) */
不可卸下 /*
不可卸下,如:头发,但可替换 */
不可选中
/* 不可在装备界面上选中,如:头发
*/
不可修理 /* 物品不可修理
*/
持久0消失 /* 物品持久0后消失
*/
不可直接使用 /* 不可直接使用(任务道具类物品)
*/
神秘解读 /*
物品可被神秘解读(如:神秘头盔)
*/
显示持久 /* 显示物品的持久数字
*/
不显示最大持久 /* 显示物品的持久数字,不显示容量
*/
提示持久减少 /* 提示持久减少
*/
安全区禁用 /* 不能在安全区内使用
*/
初始0持久 /*
初始为0持久(以般持久表示容量的物品设置此字段) */
满持久使用
/* 物品满持久才可用 */
百分比持久显示 /* 持久以百分比形式显示
*/
无战斗磨损 /* 无战斗磨损
*/
截断持久值 /* 显示截断的持久(如持久在4.5时,显示持久4)
*/
交易表 /*
参照交易表交易(不能扔,必须在交易表,摆摊交易强制最低价)
*/
用后不删 /*
在物品使用触发中手动确定删除(物品在被使用后不会自动删除或扣减持久)
*/
不外显 /*
不外显
*/
触发脚本 /*
双击使用触发脚本(stdmode=31) */
忽略包裹图像偏移 /* 忽略包裹图像偏移(如果物品在包裹中位置偏离太远,则城要此标志)
*/
内挂拾取 /* 内挂拾取
*/
杀死必爆 /* 被杀死后总是爆出
*/
记录掉落来源 /*
标名记录此物品的掉落来源(注意:不要对所有物品设置此标志,仅针对稀有高级装备设置此项) */
流通提示 /*
物品在交易、扔下、拾取时全区提示
*/
爆率不变 /* 爆率不随人物爆率高低变化
*/
绑定
/* 物品生成即绑定(如果物品是货币,则表示绑定货币)
*/
不吸入拾取
/* 物品不被吸入拾取
*/
[对象标志 用在怪物表等]
(可叠加)
———————————————————–
近跟主人
/* 跟随主人,但不追赶主人
*/
可穿透 /* 对象可被穿透
*/
可燃烧 /* 对象可被燃烧
*/
可冰冻 /* 对象可被冰冻
*/
不随主死
/* 不随主死,主人对象一死,本对象不死亡
*/
可被选中 /* 对象可被选中
*/
延迟移除 /* 对象延迟移除,前提是对象存续时间开始倒数
*/
与主人断联 /* 与主人断开连接(自由活动,不追随主人等)
*/
不随主丢失 /* 主人对象丢失(被移除列表),本对象不被移除
*/
随主延迟移除
/* 主人丢失,本对象延迟移除
*/
死亡坠落 /* 死后坠落(一般飞鸟类对象需要此标志)
*/
无选中高亮 /* 对象无任何形式的选中提示
*/
时间到后死亡 /* 存续时间到了后死亡
*/
非肉身 /* 非肉身对象(如:石头等)
*/
安全区阻挡 /* 在安全区挡位
*/
死后阻挡 /* 对象死后尸体还阻挡(石头怪或一些机关适用)
*/
随主掉线移除 /* 对象随主人掉线而移除
*/
休息不减时间
/* 休息时暂停存续时间计时
*/
隐藏名字 /* 对象不显示名字
*/
不受主人控制 /* 主人不能控制宝宝休息和战斗 */
[破坏力标志 用在技能表](可叠加)
———————————————————–
无视物防
/* 无视物理防御
*/
无视魔御
/* 无视魔法防御
*/
无视系别防御
/* 无视系别防御
*/
无视特破 /* 无视特殊破坏(麻痹\击飞\击退)防御等
*/
受者保向 /* 受害对象保持其方向
*/
百分比破坏 /* 破坏值是百分比(0-100)
*/
无视魔法躲避 /* 无视魔法躲避
*/
无视敏捷 /* 无视敏捷
*/
BUFF随Miss
/* 基础破坏Miss了,破坏所含buff也miss
*/
特破随Miss /* 基础破坏Miss了,破坏所含特殊破坏也miss
*/
总显特效 /* 总是显示破坏的受击特效,即时是破坏未命中(如:诱惑之光)
*/
BUFF受击特效 /* 破坏的buff视为受击特效,如:施毒术
*/
武器声音 /* 破坏是使用武器的(需要播放击中时武器声音)
*/
暴击 /* 破坏含暴击
*/
破坏转经验 /* 破坏转成经验
*/
无装备磨损 /* 破坏不会造成装备磨损
*/
无视伤害减免 /* 无视伤害减免
*/
不广播 /* 不向附近广播目标受到破坏力(用于避免大面积破坏造成的网络洪灾)
*/
延迟特破 /* 延迟特殊破坏(正常破坏不延迟,延迟时间由left_delaydamge_time指出)
*/
无视特破抗性 /* 无视特殊破坏抗性
*/
无攻触 /* 不产生攻击触发
*/
忽略切割 /* 忽略切割
*/
无伤害反弹 /*
没有伤害反弹 */
破防加BUF
/* 如果破坏力中有BUFF,只有在破防后才加BUFF */
[物品源]
ITEM_SOURCE_BAG0
包裹1
ITEM_SOURCE_BAG1
包裹2
ITEM_SOURCE_STORAGE0
仓库1
ITEM_SOURCE_STORAGE1
仓库2
ITEM_SOURCE_STORAGE2
仓库3
ITEM_SOURCE_STORAGE3
仓库4
ITEM_SOURCE_SHORTCUT0
快捷栏
ITEM_SOURCE_WEAR
装备
[地图镜像标志
AddMirrorMap命令参数](可叠加)
MAPMIRROR_FLAG_MONGEN
继承刷怪
MAPMIRROR_FLAG_HUNTEXP
继承打怪经验
MAPMIRROR_FLAG_SKILLEXP
继承技能经验
MAPMIRROR_FLAG_MAPCFG
继承地图设置 /* 镜像地图继承原地图在Mir200/Envir/地图配置/地图基础设置.csv中的设置
*/
MAPMIRROR_FLAG_DOORLINK
继承门点
MAPMIRROR_FLAG_GUIDWAR
继承行会战
MAPMIRROR_FLAG_AREAS
继承区域
MAPMIRROR_FLAG_TRIGGERS
继承触发器
[物品绑定标志 ChangeItemSpecflags命令](可叠加)
————————————————————-
不能丢弃 /* 不能丢弃
*/
不能交易 /* 不能交易 */
禁存仓库 /*
禁存仓库 */
不能修理 /* 不能修理
*/
不能出售 /* 不能出售 */
总不爆出 /*
被杀死后总不爆出 */
丢弃消失 /* 丢到地上立即消失
*/
不能上架 /* 不能上架交易行
*/
绑定 /*
与物品所有者捆绑(这个物品不能交易,不能扔下,不能暴出)
*/
封印 /* 封印(装备所有属性无效)
*/
央服封印 /* 央服封印(装备在央服封印)
*/
已过期 /* 对于有过期时间的物品,此标志表示已到过期时间
*/
不被回收 /* 物品不会被自动回收 */
[回收标志 TakeBagItem:参数7](可叠加)
————————————————————-
仅回收 /*
仅回收,后面接只回收的种类,可用|连接多个 */
不回收 /* 不回收,后面接不回收的种类,可用|连接多个
*/
普通 /* 普通物品,没有任可极品、升级、BUFF的白装
*/
极品 /* 含有极品属性的装备 */
升级
/* 含有升级属性的装备 */
升星 /* 含有升星属性的装备
*/
BUFF /* 带BUFF装备 */
进度
/* 带进度条装备 */
叠加 /* 叠加物品
*/
镶嵌 /* 带镶嵌物装备 */
绑定 /*
绑定装备 */
期限 /* 有期限的物品 */
改名 /* 改过名的物品 */
[攻击标志
技能.csv
攻击标志字段](可叠加)
————————————————————-
不攻玩家 /* 技能不攻击玩家
*/
不攻怪物 /* 技能不攻击怪物
*/
不攻不死系 /* 技能不攻击不死系对象
*/
不攻非肉身 /* 不攻非肉身对象
*/
安全区无效 /* 技能在安全区内不攻击
*/
目标丢失不攻 /* 目标丢失后不再攻击
*/
不攻宝宝 /* 不攻击下属对象
*/
无属性BUFF /* 技能不叠加攻击buff
*/
不攻敌方 /* 技能对敌方无效
*/
不能鞭尸 /* 不攻击已死亡的对象
*/
只攻锁定 /* 仅攻击锁定目标
*/
不攻击
/* 不产生攻击判定 */
自杀攻击 /* 攻击目标后自己死亡
*/
[特殊破坏]
————————————————————-
击退
/* 当特殊破坏值为0表示不击退,一个距离表示一个地图单元 */
召唤
/* 诱惑召唤,使目标对象成为自己的下属,特破值为可诱惑的对象个数
*/
移动 /* 移动
*/
一击必杀 /* 一击必杀
*/
击飞 /* 击飞
*/
指挥 /* 接受锁定指挥
*/
延迟击退 /* 经过短暂时间后击退
*/
跳跃 /* 跳跃,需要配合跳跃属性才能起跳 */
[颜色特效]
———————————————————–
COLOR_EFFECT_NONE
/* 无 */
COLOR_EFFECT_ICEBLUE /* 冰冻蓝
*/
COLOR_EFFECT_FIREYELLOW /* 火炙黄
*/
COLOR_EFFECT_STONE
/* 石化 */
COLOR_EFFECT_ELECTRIC /* 电击
*/
COLOR_EFFECT_REDDISH /* 微红
*/
COLOR_EFFECT_GREENISH /* 微绿
*/
COLOR_EFFECT_RED
/* 变红 */
COLOR_EFFECT_REDFADEOUT /* 红色淡出
*/
COLOR_EFFECT_FADEIN /*
正常淡入 */
COLOR_EFFECT_FADEOUT /*
正常淡出 */
COLOR_EFFECT_BLACKFADEOUT /* 黑色淡出 */
[方向]
———————————————————–
DIR_UP 上
DIR_UPRIGHT
右上
DIR_RIGHT
右
DIR_DOWNRIGHT
右下
DIR_DOWN
下
DIR_DOWNLEFT
左下
DIR_LEFT
左
DIR_UPLEFT
左上
DIR_RAND
随机方向
[飘字方向](技能表K列”受击飘字”)
———————————————————–
上飘 /* 技能扣血红字向上飘
*/
攻向飘 /* 技能扣血红字向攻击方向飘
*/
[技能标志] 点此查看
富文本格式
富文本格式写法详解
注意:在写富文本时,第一个标签用斜扛‘/’,后面的标签用竖线‘|’组合
例子:
==========================
1.这是<绿字/FCOLOR=250>这是<黄字加大2号/FCOLOR=251|FSIZE=+2>
2.第一行字</n>第二行字<中间/CC=1>独立变色</n>第三行字<下划线/UDL>
3.这是<渐变文字/FCOLOR=251-249>
|
标签 |
示例 |
|
</FCOLOR=颜色值> |
这是<绿字/FCOLOR=250> 这是<黄字/FCOLOR= 251> |
|
</RGB=3元色颜色值> |
这是<绿字/RGB=0:250:0> 这是<半透明黄字/RGB=255:255:0:128> |
|
</CC=颜色变化ID> |
<每秒变色字,颜色变化ID为1/CC=1> *注1 |
|
</CCT=颜色变化时间毫秒> |
<这是一段每500毫秒变色文字/CC=1|CCT=500> |
|
</FSIZE=字号大小> |
<字号加大2/FSIZE=+2>标准字号<字号减小2/FSIZE=-2> |
|
</X=数值> |
微调尖括号里的文字或图像X坐标,例如:</IMG=xxx|x=12> |
|
</Y=数值> |
微调尖括号里的文字或图像Y坐标,例如:</IMG=xxx|x=0|y=-4> |
|
</S=小数比例> |
调整图像大小比例</IMG=图像名|S=0.5|x=0.15|y=0.05> |
|
</TXTOFFY=小数比例> |
调整图像中的文字Y坐标偏移 |
|
</IMG=图像资源名称> |
显示指定图像,图像名是素材库中的素材名称<居中文字/IMG=图像名> |
|
</PIMG=图像资源名称> |
设置按下图像,例:<按钮文本/IMG=正常图像|PIMG=按下图像|SCL=0.75|x=0.1|y=0.1> |
|
</IMGW=百分比> |
设置图像百分比横向绘制,用来做进度条</IMG=进度条|IMGW=50%> |
|
</ANI=素材名#帧数#每帧毫秒> |
播放动画</ani=边框动画#10#90|SCL=0.75|x=-0.15|y=0> |
|
</BLD=混合模式> |
设置图像或动画的混合模式混合模式取值见:[标志大全] |
|
</BLDCLR=颜色值> |
设置图像染色</IMG=图像名|BLDCLR=250> |
|
</BKCLR=颜色值> |
背景颜色<绿色背景/BKCLR=250> |
|
</UDL> |
带<下划线/UDL> |
|
</IDF=绘制标志> |
设置图像绘制标志取值见:[标志大全]中的绘制标志 |
|
</LINK=@xxx> |
点击当前文字或图像时的触发脚本<按钮文本/IMG=正常图像|PIMG=按下图|LINK=@xxx> |
|
</FLS> |
文字闪烁<这是一段闪烁文本/FLS|FSIZE=+2> |
|
</REDDOT> |
显示红点<文字右上角红点/REDDOT> |
|
</n> |
换行<第一行文字></n><第二行文字> |
|
</装备图像=穿戴位置> |
显示人物身上的装备图像</装备图像=0> |
|
</装备名称=穿戴位置> |
显示人物身上的装备名称</装备名称=0|FSIZE=+2> |
|
</背包物品图像=物品名或ID> |
显示人物背包中的物品图像(需要包裹中有此物品)</背包物品图像=金条> |
|
</背包物品名称=物品名或ID> |
显示人物背包中的物品名称</背包物品名称=金条> |
|
</背包物品个数=物品名或ID> |
显示人物背包中的指定物品个数</背包物品个数=金条> |
|
</ITM=物品名或ID> |
显示任意物品图像(不需要背包中有此物品) 例:</ITM=金条> |
* 注1:颜色变化ID位于“Mir200\Envir\Data\SK扩展表格\颜色变化表.csv”
颜色列表
|
0
|
1
|
2
|
3
|
4
|
|
5
|
6
|
7
|
8
|
9
|
|
10
|
11
|
12
|
13
|
14
|
|
15
|
16
|
17
|
18
|
19
|
|
20
|
21
|
22
|
23
|
24
|
|
25
|
26
|
27
|
28
|
29
|
|
30
|
31
|
32
|
33
|
34
|
|
35
|
36
|
37
|
38
|
39
|
|
40
|
41
|
42
|
43
|
44
|
|
45
|
46
|
47
|
48
|
49
|
|
50
|
51
|
52
|
53
|
54
|
|
55
|
56
|
57
|
58
|
59
|
|
60
|
61
|
62
|
63
|
64
|
|
65
|
66
|
67
|
68
|
69
|
|
70
|
71
|
72
|
73
|
74
|
|
75
|
76
|
77
|
78
|
79
|
|
80
|
81
|
82
|
83
|
84
|
|
85
|
86
|
87
|
88
|
89
|
|
90
|
91
|
92
|
93
|
94
|
|
95
|
96
|
97
|
98
|
99
|
|
100
|
101
|
102
|
103
|
104
|
|
105
|
106
|
107
|
108
|
109
|
|
110
|
111
|
112
|
113
|
114
|
|
115
|
116
|
117
|
118
|
119
|
|
120
|
121
|
122
|
123
|
124
|
|
125
|
126
|
127
|
128
|
129
|
|
130
|
131
|
132
|
133
|
134
|
|
135
|
136
|
137
|
138
|
139
|
|
140
|
141
|
142
|
143
|
144
|
|
145
|
146
|
147
|
148
|
149
|
|
150
|
151
|
152
|
153
|
154
|
|
155
|
156
|
157
|
158
|
159
|
|
160
|
161
|
162
|
163
|
164
|
|
165
|
166
|
167
|
168
|
169
|
|
170
|
171
|
172
|
173
|
174
|
|
175
|
176
|
177
|
178
|
179
|
|
180
|
181
|
182
|
183
|
184
|
|
185
|
186
|
187
|
188
|
189
|
|
190
|
191
|
192
|
193
|
194
|
|
195
|
196
|
197
|
198
|
199
|
|
200
|
201
|
202
|
203
|
204
|
|
205
|
206
|
207
|
208
|
209
|
|
210
|
211
|
212
|
213
|
214
|
|
215
|
216
|
217
|
218
|
219
|
|
220
|
221
|
222
|
223
|
224
|
|
225
|
226
|
227
|
228
|
229
|
|
230
|
231
|
232
|
233
|
234
|
|
235
|
236
|
237
|
238
|
239
|
|
240
|
241
|
242
|
243
|
244
|
|
245
|
246
|
247
|
248
|
249
|
|
250
|
251
|
252
|
253
|
254
|
|
255
|
|
|
特殊字符
特殊字符
以下特殊字符可被csv表格识别(网上搜索的可能不被csv识别)
需要的时候复制使用:
——————————————–
·
(注意:这个是中间小圆点,效果是这样的:真·小圆点)
★
☆
●
卐
※
◆
〖
〗
の
脚本常量
脚本常量大全
|
变量名称 |
说明 |
|
<$USERNAME> |
人物或怪物名称,取决于当前调用对象 |
| <$ATTR(属性名)> | 取人物属性值,一般用作计算 |
| <$STRATTR(属性名)> | 取人物属性显示值,一般用作显示 |
| <$IPLOGON> | 取同一机器或网络环境登录数(可用于判断多开) |
|
<$USERACCOUNT> |
登录帐号ID |
| <$USERID> |
人物唯一UID(合区不变) |
| <$KFDAY> |
开服天数,> 0则开服了 正式服生效 特殊设置说明 |
| <$KFTIME> |
开服的
年-月-日 YYYY-M-D格式 正式服生效 |
|
<$KFTIMEEX> |
开服的
时-分-秒 hh:mm:nn格式 正式服生效 |
| <$HFDAYS> |
合服天数,未合服为0, 每次合服会初始化为1 |
| <$SERVERIDX> |
每个区的服务器ID |
|
<$GAMEID> |
游戏的GAMEID(一个版本的ID包括所有区都是一个ID) |
|
<$CLIENTVER2> |
盒子版本号(该值小于1053不支持反外挂,只能在安卓端取值) |
|
<$BOXVAR> |
实时登录渠道ID |
|
<$OFFLINEDAYS> |
人物离线时间 |
|
<$LOGINSTATE> |
登陆状态的常量
(0是正常登陆,1是重连后登录) |
|
<$CLIENTFLAG> |
客户端载体常量
(为1 = PC端 为2 = 移动端 为3=传统PC端) |
|
<$UTCNOW> |
时间戳 |
|
<$UTCNOW8> |
相差8小时时间戳 |
|
<$DIR> |
当前方向
(上0 上右1 右2 右下3 下4 左下5 左6 左上7) |
|
<$NPCNAME> |
NPC名称 |
|
<$LEVEL> |
等级 |
|
<$IPADDR> |
IP地址 |
|
<$HP> |
生命值 |
|
<$PKPOWER> |
人物当前攻击威力(配合攻击前触发使用) |
|
<$DAMAGEVALUE> |
伤害值常量 |
|
<$PLAYERPOWER> |
人物当前战斗力配合表:cfg_att_score.xls使用 |
|
<$JOB> |
人物职业 |
|
<$GENDER> |
人物性别 |
|
<$MP> |
魔法值 |
|
<$AC> |
防御力 |
|
<$MAXAC> |
最高防御力 |
|
<$MAC> |
魔法防御力 |
|
<$MAXMAC> |
最高魔法防御力 |
|
<$DC> |
物理攻击力 |
|
<$MAXDC> |
最高物理攻击力 |
|
<$MC> |
魔法力 |
|
<$MAXMC> |
最高魔法力 |
|
<$SC> |
道术 |
|
<$MAXSC> |
最高道术 |
|
<$HIT> |
准确 |
|
<$SPD> |
敏捷 |
|
<$HITSPD> |
武器攻速 |
|
<$MAXHP> |
HP上限 |
|
<$MAXMP> |
MP上限 |
|
<$EXP> |
当前经验值 |
|
<$MAXEXP> |
升级经验值 |
|
<$PKPOINT> |
PK点数 |
|
<$HW> |
腕力 |
|
<$MAXHW> |
最高腕力 |
|
<$BW> |
背包重量 |
|
<$MAXBW> |
最高背包重量 |
|
<$WW> |
负重力 |
|
<$MAXWW> |
最高负重 |
|
<$HUNGER> |
饥饿程度 |
|
<$LOGINTIME> |
登录时间 |
|
<$LOGINLONG> |
登录时长 |
|
<$WEAPONLUCKY> |
身上武器基础幸运值 |
|
<$KILLMONNAME> |
取怪物名字不带数字 |
|
<$KILLMONNAMEEX> |
取怪物名字带数字 |
|
<$KILLMONX> <$KILLMONY> |
杀死怪物的坐标 |
|
<$KILLMONEXPRATE> |
杀怪经验倍数 |
|
<$KILLMONEXPRATETIME> |
杀怪经验倍数时长 |
|
<$GROUPMEMBERCOUNT> |
当前组队人数 |
|
<$TEAM0>..<$TEAM1> |
用于显示组队成员,<$TEAM0>代表队长,成员从<$TEAM1>开始 |
|
<$SCREENWIDTH> |
分辨率 宽 |
|
<$SCREENHEIGHT> |
分辨率 高 |
|
<$RELEVEL> |
转生等级 |
|
<$RecallRemainingTime> |
显示延时TIMERECALL还剩多少秒 |
|
<$REVIVALTIME> |
复活时间间隔 |
|
<$SIMULATOR> |
模拟器识别常量 0=不是
1=模拟器 |
|
<$BabyHPXX> |
获取宝宝最大血量 XX=第几只 如:<$BabyHP1> 就是第一只 |
|
<$SLAVECOUNT> |
获取当前宝宝数量 |
|
<$ATTACTBBID> |
宝宝唯一ID常量 |
|
<$GUILDNAMENOTICE> |
编辑行会公告信息 |
|
<$ChiefName> |
所在行会掌门名称 |
|
<$RANKNAME> |
行会职位名称 |
|
<$GUILDNAME> |
行会名称 |
|
<$RANK> |
行会成员职位 |
|
<$HFCOUNT> |
合区次数(合区以后才有效) |
|
<$HFTIME> |
合区时间(合区以后才有效) |
|
<$showtime> |
列表展示时间(与时间戳格式相同,后台修改后,该常量同步变动) |
|
<$SDKID> |
注册包ID,注册账户与此ID绑定,不再更新,需要取实时登录ID使用<$BOXVAR> |
|
<$PACKAGENAME> |
获取客户端发来的包名称 |
|
<$MODETYPE> |
移动端登录设备常量:安卓=0–IOS=1–其他=2(需延时取值) |
|
<$CREATESERVERTIME> |
区服部署时间常量 |
|
<$TESTSERVERTIME> |
区服测试区时间常量 |
|
<$STARTSERVERTIME> |
区服正式区时间常量 |
|
<$DRANGONHEARTVALUE> |
英雄当前怒气值
|
|
<$ToPointX> <$ToPointY> |
小地图自动寻路终点坐标常量 |
|
<$DEARNAME> |
配偶的名字常量 |
|
<$DEVICECODE> |
虚拟机器码,清理缓存以后,客户端机器码就会改变 |
|
<$SUCKHP> |
吸血值常量 |
|
<$TAKEOFFTOBAG> |
从人物背包或英雄背包拿走物品常量 0=人物背包 1=英雄背包 |
|
<$CURREATEITEM> |
31类型和2类型当前使用的物品IDX |
|
<$CURREATEITEMCOUNT> |
类叠加物品消耗数量的常量:<$CURREATEITEMCOUNT>,常量只在[@STDMODEFUNCxxx]有效
|
|
<$ATTACKMONSTER_X> |
当前攻击目标X坐标 |
|
<$ATTACKMONSTER_Y> |
当前攻击目标Y坐标 |
|
<$ATTACKMONSTER_XEX> |
当前攻击(主目标)目标X坐标 |
|
<$ATTACKMONSTER_YEX> |
当前攻击(主目标)目标Y坐标 |
|
<$CURRTARGETCURRX> |
被攻击时攻击者X坐标 |
|
<$CURRTARGETCURRY> |
被攻击时攻击者Y坐标 |
|
<$ATTACKMONSTER_MAXHP> |
当前攻击目标总血量 |
|
<$ATTACKMONSTER_HP> |
当前攻击目标剩余血量 |
|
<$ATTACKMONSTER_MAXHPEX> |
当前攻击(主目标)目标总血量 |
|
<$ATTACKMONSTER_HPEX> |
当前攻击(主目标)目标剩余血量 |
|
<$ATTACKMONSTER_NAME> |
当前击中目标的名称 |
|
<$ATTACKMONSTER_NAMEEX> |
当前锁定攻击(主目标)目标的名称 |
|
<$SlaveX> <$SlaveY> |
宝宝自身坐标(当有多个宝宝时,随便选一个) |
|
<$SlaveTargetX>
<$SlaveTargetY> |
宝宝当前攻击目标坐标(优先锁定目标,多宝宝随机抽取) |
|
<$GETMONID(怪物名称)> |
通过怪物名称获取怪物IDX常量 |
|
<$TEMPMONUSERID> <$TEMPMONIDX> |
怪物唯一id常量与IDX常量 |
|
<$CURRMONPARAM(X)> |
获取怪物表Z列(zidingyi字段) 自定义字符串值 X=怪物名称 |
|
<$BABYCURHPX> |
宝宝当前血量,X代表第几只宝宝 |
|
<$CART_MAP> |
镖车所在地图编号 |
|
<$CART_X> |
镖车所在X坐标 |
|
<$CART_Y> |
镖车所在Y坐标 |
|
<$EXTBAGCLOSEITEMCOUNT> |
剩余未开启的背包格子数 |
|
<$BAGNILCOUNT> |
当前背包格子空格数量 |
|
<$BAGUSERCOUNT> |
当前背包格子使用数量 |
|
<$EXTBAGCLOSEITEMCOUNT> |
剩余未开启的背包格子数常量 |
|
<$ATTACKMONSTER_HPRATE> |
当前目标血量百分比 |
|
<$ATTACKMONSTER_HPRATEEX> |
当前主目标血量百分比 |
|
<$NATIONSWARTIME> |
国家战争剩余时间常量(分钟) |
|
<$CURRMONEYMSG> |
货币改变时获取来源 |
|
<$SFNAME> |
师傅常量 |
|
<$TDNAME1> |
徒弟常量 |
|
<$CLONEPLAYERCNT> |
分身数量常量 |
每个属性是引擎内置的功能,GM可根据其意义灵活使用.
[引擎] – 安装
引擎安装、更新
本引擎为绿色免安装版,将”SK引擎包.rar”解压在任意位置即可.
1.
安装mysql数据库
————————————————–

双击”mysql安装程序.exe”自动安装mysql数据库
2.
引擎M2程序和登录器
————————————————–
3.
更新
————————————————–
当引擎有新版本时,本机安装引擎会自动更新.
服务器正式运行的引擎不会自动更新,如要更新服务器引擎,
可在本机更新后,将引擎主体程序覆盖到服务器Mir200目录下
[引擎] – 目录结构
引擎包目录结构
“SK引擎包.rar”解压后有以下文件和目录:
SK引擎包
|
+—- mysql安装程序.exe (人物数据库安装)
|
+—- 引擎说明书.chm
(本说明书)
|
+—-
Mir200
|
+—-
client_data 客户端素材数据目录
|
|
| +—- pak SK专用压缩加密后的素材
数据,查看pak目录内文件说明
| |
| +—-
ui 客户端界面文件
| |
| +—- GE_config.txt
编辑器配置文件
|
|
|
+—- hero_config.txt
登录器配置文件
|
|
+—-
Envir 版本目录,存放脚本、怪物爆率、地图刷怪、NPC等数据
|
|
| +—- Data
游戏数据库目录,存放怪物、物品、技能等游戏数据的原始表格文件
|
|
|
+—- MapQuest_def 登录脚本目录
| |
|
+—- Market_Def 常用脚本目录
| |
|
|
| +—- common 自定义公共调用库目录
| |
|
|
| +—- QFunction-0.txt 触发脚本(QF)
|
|
| +—- MonItems 怪物爆率文件
| |
|
+—- Notice 公告脚本目录
| |
|
+—- QuestDiary 自定义脚本和数据目录(QD)
| |
|
+—- Robot_def 机器人脚本目录
| |
|
+—- MonGen.csv 怪物刷新表
| |
|
+—- Npcs.csv NPC刷新表
|
|
+—-
log 日志目录
|
+—-
Map 地图数据
|
+—- MapSK 重定向后的地图数据
|
+—-
区服启动文件.txt 开区配置文件,设置端口号、服务器ID等信息
|
+—-
编辑器.exe 引擎工具:游戏地图、素材集成编辑器
|
+—-
M2Server.exe
引擎主体程序:
服务端M2程序
|
+—-
登录器.exe
引擎主体程序:
客户端登录器
|
+—- 微端服务器.exe
微端服务器程序
|
+—-
数据库编译.exe
引擎工具:
游戏数据库编译程序
[引擎] – pak目录
引擎PAK目录说明
注意:本引擎只读取自己格式的pak文件,其它引擎的pak文件需要先转出图片再导入本引擎。
1. “Mir200/client_data/pak/2d” 2D图片素材
——————————————————————
图片素材PAK
开发人员可用图片PAK序号范围: 1 – 1000 (共1000个)
另外:
[1024 –
2500]:
兼容传奇Data目录补丁,由引擎管理(GM不要占用此号段)
[2500 – 2560]:
这是地图重定向后生成的地砖文件,此号段PAK由引擎系统创建,每次重定向后覆盖.(GM不要占用此号段)
r1.pak: 底版中目标受击元素攻击特效
r2.pak:底版UI
r50:
底版技能图标
r51: 底版技能动画
r55: 底版特效16位
r56: 底版特效A1(1位透明不混合)
r57:
底版特效PLT(8位wzl调色板)
r63:
底版地图修补块
r64: 底版翅膀
r65: 底版物品图标
r66: 底版小地图
r67: 底版NPC
r68:
底版怪物1
r69:
底版怪物2
2. “Mir200/client_data/pak/3d”
3D素材
——————————————————————
3D素材PAK文件存放目录
3. “Mir200/client_data/pak/sound”
音效素材
——————————————————————
r1.pak: 游戏里所有音效
[架设] – 本机
本机架设
若本机未装mysql,先双击”SK引擎包/mysql安装程序.exe”自动安装,
再按以下步骤架设本机M2:
1.
填写代理信息
———————————————–
打开”Mir200/区服启动文件.txt”,搜索文本”代理信息”,填写代理号和密码
修改代理号密码命令:
ChangeAgentPassword ①当前密码 ②新密码
2.
设置本地IP映射
———————————————–
打开”Mir200/区服启动文件.txt”,搜索文本”IP映射”,按以下填写:
映射IP:127.0.0.1
3.
运行本地M2
———————————————–
双击”Mir200/M2Server.exe”运行本地M2
4.
运行登录器
———————————————–
双击”Mir200/登录器.exe”,按住Ctrl点”登录”,在弹出窗口中填人你的代理号,
然后注册一个账号登录后即可看到本机游戏服务器.
代理号,在M2后台看(下图蓝字):
[架设] – 服务器
服务器架设
在本机上做好版本后,将本机以下文件拷到服务器上,然后在服务器上按下面步骤操作:
Mir200
|
|
+—- Envir
|
+—- MapSK或Map
|
+—- 区服启动文件.txt
|
+—- M2Server.exe
注意:Mir200目录也要带上,可先在服务器任意位置新建一个Mir200目录,再在把需要的文件拷到里面
1.
服务器上安装mysql数据库
—————————————————————
将本机的”SK引擎包/mysql安装程序.exe”拷贝到服务器任意位置,双击运行,自动完成mysql安装
2.
关闭IP映射
—————————————————————
打开服务器上的”Mir200/区服启动文件.txt”,搜索文本”IP映射”,用引号注释或留空以下设置:
映射IP: (此处留空不填)
3.
运行服务器M2
—————————————————————
双击服务器上的”Mir200/M2Server.exe”运行服务器上的M2
4.
运行客户端登录器
—————————————————————
双击本机”Mir200/登录器.exe”,按住Ctrl点”登录”按钮,在弹出窗口填入你的代理号,
注册登录后即可看到远程服务器上的游戏区服
服务器无法连接?
如果在登录器列表能看到游戏区服,但点击不能连接,一般是以下2个原因造成:
1.
防火墙拦截
—————————————————————
将引擎M2程序”M2Server.exe”加入到防火墙允许通过列表
(注意:关防火墙没用,必须加入防火墙列表)
打开服务器控制面板 ->
系统和安全 -> Windows防火墙 -> 点击右侧”允许程序或功能通过Windows防火墙”
点击下图箭头所指”允许其它应用(R)…”按纽,将M2Server.exe加入到信任列表.
2. 服务器端口未开放
—————————————————————
如果将M2加入防火墙还不能连接,则可能是服务器端口未打开.
有些服务器刚买来是没开放端口的,需要在后台添加端口,引擎M2运行端口是20000,确保这个端口已打开.
有些服务器端可能无法自助打开,需要联系卖你服务器的人.
[架设] – 微端
微端架设
将本机以下文件拷贝到微端服务器上:
Mir200
|
|
+—- client_data
|
+—- 微端服务器.exe
1. 运行微端服务器
打开服务器上的”Mir200/微端服务器.exe”,即开启微端,无需任何设置
2. 登录器设置微端IP地址
打开登录器配置文件”client_data/hero_config.txt”,搜索”微端服务器IP”,搜不到就新加一行,填写:
微端服务器IP=xxx.xxx.xxx.xxx (你微端服务器IP地址)
微端连接不上?
1.
将”微端服务器.exe”加入防火墙通过列表
2. 确保微端服务器10500端口打开
[导入] – 自定义素材
引擎素材文件是怎样的?
本引擎图片素材文件存放在”Mir200/client_data/pak/2d”目录下,后缀名是”.pak”,
其调用和wil、wzl以及其它引擎一样,可按序号调用对应的图片.
除此外,本引擎支持更方便的素材名引用.
例子:
#IF
#ACT
<Button|x=0.5|y=0.5|nimg=6/150|text=按钮> ;在NPC对话框中间创建一个按钮
解释:
nimg=6/150,其中6表示第6号素材(对应素材文件”Mir200/client_data/pak/2d/r6.pak),
后面的150表示r6.pak中第150个图片.
如何导入自定义素材?
导入自定义素材非常简单,只需2步:
1.新建一个素材库(产生pak文件)
———————————————————-
打开引擎自带编辑器”Mir200/编辑器.exe”,按下图操作:
(1) 点击编辑器左上角”素材库”,点击”动画素材库”
(若选”地物素材库”,素材单张显示) 
(2)
“库管理”->”新建素材库(N)…” 
(3)
素材库名按自已需求填,库ID点”自动分配”,转换格式选”R5G5B5_A4″,其它默认,点”确定”

点”确定”素材库就建好了,”Mir200/client_data/pak/2d”目录下多出一个r506.pak文件,
它就是刚刚建好的素材库文件,现在它里面是空的,一个素材都没有.
2.拖入图片
———————————————————-
新建好的素材库是这样的:
然后把你电脑里的图像文件选中(可批量选中),拖进红箭头指示的空白地方就完成导入了
查看已导入的图片
———————————————————-
双击素材库窗口右下角”资源ID:506″即可打开单张图片浏览

素材导入后,就可以用”PAK号/图片序号“引用素材图片了
例如:
#IF
#ACT
<Button|x=0.5|y=0.5|nimg=506/3|text=按钮>
除了用图片序号引用,还可以用素材名引用素材.
[导入] – 盛大素材
如何导入盛大素材?
第1步: 设置盛大客户端Data目录
————————————————————
第2步:
浏览素材
————————————————————
打开”Mir200/编辑器.exe”,按F9打开”图像资源”查看器,
然后点击下图箭头所指按钮,浏览盛大客户端Data目录下的wil或wzl文件.
第3步:新建素材库
————————————————————



素材库名自已取,转换格式选WZL_PALETTE(盛大素材格式),其它默认不动,操作好了点”确定”按钮
第4步:选中素材一键导入
————————————————————
在第2步的”图像资源”查看器里选中想要的素材(可批量选),右键选择”导入到当前动画素材库”
[导入] – wil/wzl素材
如何导入wil/wzl素材?
第1步:
打开wil/wzl文件
————————————————————
启动编辑器”Mir200/编辑器.exe”,验证代理信息后,按F9打开图像查看器,
点击下图箭头所示按钮,选择需要操作的wil或wzl文件

第2步: 选择被导入素材库
————————————————————
选择被导入的素材库,如果没有,新建一个

第3步: 导入
————————————————————
在第1步中打开的”图像资源”查看器里选中想要的素材(可批量选、可全选),
右键选择”导入到当前动画素材库”即可

[导入] – 其它引擎pak素材
如何导入其它引擎pak素材?
————————————————————
本引擎不支持其它引擎pak直接导入,可先使用其它工具将PAK转成wil或wzl
(如果无法将PAK转成wil的,可以将PAK导出图片,再将图片按自定义素材导入引擎)
第2步: 导入wil/wzl
————————————————————
把第1步转好的wil/wzl导入引擎,操作方法看:导入wil/wzl素材
地图导入(wzl补丁)
地图导入(wzl补丁)
编辑器设置:
登录器设置:

2. 地图补丁放到上一步设置mir目录中的Data目录下
3.
打开Mir200/编辑器.exe,将地图文件拖入编辑器.exe窗口,正常显示后,另存到Mir200/Maps目录下
(注意:一定要另存为,不要直接点保存,以免原地图文件被覆盖)
4. 打开地图表(D:\Mir200\Envir\Data\地图(MapInfo).csv),复制任意一行已有的数据,修改地图ID和名称,以及对应的地图文件名。
5. 执行Mir200/数据库编译.exe,这个新加的地图就被引擎认可,然后就可以在游戏中引用这个地图
测试新加地图:在测试员处点传送,输入新加的地图名(注意是地图名,不是显示名),正常飞入即添加成功。
地图重定向
使用第3步另存的地图文件,其地块素材的引用,来自于你设置的mir目录,如果你希望发布一个精简的客户端,不带mir目录,
或者假设目标玩家的电脑上没有mir目录,你还可以将第3步生成的地图文件重定向,重定向后,
会生成自动生成一个额外资源(在Mir200\client_data\pak\2d目录下),这个资源只保存你地图中用到的地块素材,把这个资源发布出去就可以了。
注意:
对于手机端发布,重定向是必须的,因为玩家手机上不会存在一个完整的传奇端。
1.
开发模式
———————————————-
在版本开发阶段,通过编辑器处理的地图都要保存到“Mir200\Map”目录里
2.
发行模式
———————————————-
版本开发完成后,点击:编辑器.exe->菜单->地图->重定向->标准色,
然后编辑器会将“Mir200\Map”中的所有地图文件重定向到“Mir200\MapSK”目录里。
经过重定向的地图,不再依赖本机的mir目录中地砖文件,同时“Mir200\Maps”目录也不用发布打包(MapSK要发布打包)。
** 特别注意:
1.
每次重定向,会完全覆盖“Mir200\MapSK”目录中的所有文件以及“Mir200\client_data\pak\2d\r2500.pak”等素材文件,
所以不要向MapSK目录中放任何自己的文件!!!
(MapSK目录及其下所有文件,可以随时删除,重定向后会再生成)
2.
重定向不会改变”Mir200\Map”中的任何地图文件,这个目录相当于你自己原始设计数据,很重要!
当需要编辑地图时,应去修改Mir200\Map目录中的文件(而不是MapSK),改好后再重定向一次。
(不要改MapSK中的地图,也不要将地图文件放到MapSK目录,因为即使你改好后,下次重定向会全部覆盖!!)
地图导入(散图补丁)
地图导入(散图补丁)
(注意:以下目录中的内容是一张张的BMP或PNG图片)

第二步、 在编辑器中建立SK素材库,将散图导入
打开“Mir200\编辑器.exe”按数字6调出素材库,点击右上角“新建”如下图:
填写说明
—————————————–
素材名称:填地图名
PAK序号:
可自动分配,也可手动输入,范围1-1000,后面将用到此号
转换格式:不带透明的选R5G5B5_A1(黑底图选此)
带透明的选R5G6B5_A4(有柔性边缘图片选此)
高清素材选”高清png原图”, (注意:除非用其它格式有明显瑕疵,否则不要选这个格式,非常占空间)
容量:
一般选2000,总张数=2000*10,不够的话后面还可以扩容
无空闲数据:勾上,地图素材一般都是完整做好的,导好后一般不会再用增删操作
资源列表名:勾上
第三步
、 将散图导入上一步创建的素材库中
回到第一步的散图目录,同时选中“Objects”、“SmTiles”和“Tiles”目录拖到编辑器素材窗口中,如下图:
等待导入成功后,素材库中会出现导好的素材,同时Mir200\client_data\pak\2d目录下也会出现对应的pak文件.
第四步、
地图补丁改号
回到第一步的散图目录,将地图文件(.map)拖到编辑器中,地图显示应该是黑的或错乱的,此时不要慌,按以下操作:
在编辑器.exe中击点“菜单”->“地图”->“地图补丁改号…”,如下图:

原编号:地图素材的原编号,此数值一般是”Objects”目录名后面的数字,如果”Objects”后面无数字,则是0
新SK-PAK编号:填写第二步创建的素材库PAK编号,示例是200
按确定则完成地图补丁改号,现在地图中所有的补丁引用就对应到200号的PAK素材中了。
地图导入(整图素材)
地图导入(整图素材 )
—————————————-
整图图片支持JPG、PNG、BMP等常见图片格式.
第2步:整图导入
—————————————-
1.
打开编辑器,按数字1打开2D图片素材库
2. 在2D图片素材库中创建一个新素材库,勾选“开启切块”
3.
设置切块尺寸,默认128×128,大部分情况,使用默认值即可
4. 将整图图片拖入素材库窗口,稍等片刻及完成整图切块和导入
导入格式选择:
R5G5B5:推荐首选此格式
WZL_PALETTE:
最小数据量格式
高清原图:谨慎使用,数据量非常大,除非使用第一种格式有明显瑕疵才用这个格式
第3步:生成地图
—————————————-
1.
右击第2步导入的整图素材,点击菜单“生成游戏数据”->“生成地图”
在素材库列表中的一个素材项,相当于1个地图的所有切片.
[调整] – 素材偏移
调整素材偏移
第1步: 选择要调整的素材
————————————————————
打开素材库,选择要调整偏移的素材,右键菜单,选择”设置”->”设置偏移(A)…”,如下图:
第2步: 调整保存
————————————————————
点住鼠标可键移动,鼠标滚轮放大缩小, WASD(或方向键)调整精准位置
调整完后,点”保存”立即生效.
提示:
本引擎调整素材不用重启登录器和M2,保存后登录器那边立即刷新.(开发模式打开)
[调整] – 素材相对偏移
调整素材相对偏移
以武器内观对裸模为例:
第1步: 选择底图素材
————————————————————
打开素材库,选择要调整的底图素材,右键菜单,选择”设置”->”设置偏移(A)…”,打开如下图:
然后点击下图箭头所指按钮 “设为底图”
第2步: 选择设置
————————————————————
点住鼠标键移动素材,调整大致位置, 按WASD(或方向键)调整精准位置
调整完后,点”保存”立即生效.
提示:
本引擎调整素材不用重启登录器和M2,保存后登录器那边立即刷新素材(开发模式打开).
属性详解
属性详解
每个属性是引擎内置的功能,GM可根据其意义灵活使用.
2种常用加属性方式:
1. 在物品表里做装备,填物品属性,穿戴这个装备则立即获得所写属性
2.
调用AddBuff给人物或怪物加BUFF,一个BUFF最多可带4条属性
(获得BUFF同时获得BUFF中所带属性,BUFF时间到所获属性自动移除)
速度属性
速度属性
移动速度
——————————————————————
代码:
ATTR_MVS
说明:
1点移动速度减少每步移动时间:9毫秒(越大越快)
GM可在”Mir200\Envir\Data\!配置项.txt”中修改此值
人物初始每步移动时间是:92毫秒(跑)
GM可在”Mir200\数据库\更多\角色\角色.csv”中修改此值
示例:
人物一次跑动总共6步,每步时间92毫秒,所以默认一次跑动总共是92×6=552毫秒
移动速度:+1,每步减少1×9毫秒就是92-9=83毫秒,跑动一次需83×6=498毫秒
移动速度:+2,每步减少2×9毫秒就是92-18=74毫秒,跑动一次需74×6=444毫秒
移动速度:+3,每步减少3×9毫秒就是92-27=65毫秒,跑动一次需65×6=390毫秒
…
跑动一次所需时间越短,跑得越快.
攻击速度
——————————————————————
代码:
ATTR_AS
说明:
1点攻速减少每帧攻击时间: 4毫秒 (越短越快)
GM可在”Mir200\Envir\Data\!配置项.txt”修改此值
人物初始攻击动作时间是560毫秒(共6帧),1帧就是93毫秒
GM可在”Mir200\数据库\更多\动作与特效\动作.csv”修改此值
示例:
人物一次攻击总共6帧,每帧93毫秒,所以一次攻击需是93×6=558毫秒
如果:
攻击速度:+1,每步减少1×4毫秒就是93-4=89毫秒,攻击一次需89×6=534毫秒
攻击速度:+2,每步减少2×4毫秒就是93-8=85毫秒,攻击一次需85×6=510毫秒
攻击速度:+3,每步减少3×4毫秒就是93-12=81毫秒,攻击一次需81×6=486毫秒
…
攻击一次所需时间越短,攻速越快.
动作速度
——————————————————————
代码:
ATTR_ACT
说明:
1点动作速度减少所有动作每帧时间:6毫秒
GM可在”Mir200\Envir\Data\!配置项.txt”中修改此值
动作速度,将加快所有动作的速度,包括移动、攻击速度
示例:
引擎中的冰冻BUFF减速效果,就是减少了动作速度属性值,导致移动攻击等整体动作变慢
最大攻速
——————————————————————
代码:
ATTR_MAXAS
说明:
将攻击速度限制在最大攻速范围内
例如:当前攻击速度是9,最大攻速度是5,那么对象的攻击速度是5(被最大攻速度限制)
最大移速
——————————————————————
代码:
ATTR_MAXMS
说明:
将移动速度限制在最大移速范围内
最大硬直
——————————————————————
代码:
ATTR_MAXHT
说明:
将目标硬直限制在最大硬直范围内
百分比移速
——————————————————————
代码:
ATTR_MVSPCT
说明:
按百分比增加移动速度
示例:
百分比移速:+20% 表示增加20%的移动速度
百分比攻速
——————————————————————
代码:
ATTR_ASPCT
说明:
按百分比增加攻击速度
特殊属性
特殊属性
持续状态
——————————————————————
代码:
ATTR_STATUSEX
取值:
可以设置人物或怪物8个持续状态(可用竖线|叠加),每个状态的取值和意义为:
中文取值 英文取值
说明
=================================================
迷惑
OBJ_STATUSEX_QUANDARY 不知所措.当怪物被诱惑之光等召唤时,会暂处这个状态
隐身
OBJ_STATUSEX_HIDE
对怪物隐身,半透明显示人物
原样隐身 OBJ_STATUSEX2_ORGHIDE
对怪物原样隐身(不半透明人物)
首次攻击
OBJ_STATUSEX_FIRSTATTACK 首先向玩家发动攻击(变褐名),此时被杀算对方正当防卫
麻痹
OBJ_STATUSEX_PARALYSIS 对象将僵住不动
加强迷惑
OBJ_STATUSEX_QUANDARY_EX 加强迷惑,被打仍然迷惑
隐蔽
OBJ_STATUSEX_UNDERCOVER 玩家也看不可见
眩晕
OBJ_STATUSEX_REEL 出现短暂昏迷,可摇醒
示例:
给一把武器加以下属性:
持续状态:隐身 (拿上这把武器后立即隐身)
或者:
持续状态:隐身|禁止攻击 (拿上这把武器后隐身+不能攻击)
注意:
麻痹状态立即导致对象不能动,但没有麻痹特效,如需麻痹效果需要加石化BUFF来显示。
(也就是说,石化BUFF只管外观特效,人并没有麻住,真正把人麻住不动的是设置属性: 持续状态:麻痹)
无敌
——————————————————————
代码:
ATTR_X
说明:
可以设置人物或怪物8个无敌状态,每个状态的取值为:
中文取值
英文取值
说明
===================================================
穿身
OBJ_X_ANYMOVE
对象无障碍任意移动(穿墙穿人穿怪)
不可见 OBJ_X_ANYINVISIBLE
对象对所有其它对象隐身
不受攻击
OBJ_X_UNATTACKED 对象不受任何攻击
无限血量
OBJ_X_HP_UNLIMITED 血量无限用
无限蓝量
OBJ_X_MP_UNLIMITED 蓝量无限用
免限
OBJ_X_NOLIMITED
没有任何限制(使用或装备物品,或学习技能等)
BUFF免疫
OBJ_X_NOBUFF
对象不会被设置BUFF
固封移动
OBJ_X_SEALEDAREAMOVE 在不可移动的区域里移动
示例:
比如给一把物品加以下属性:
无敌:无限血量 (拿上这把武器血量无限)
8个状态值可以叠加,如:
无敌:无限血量|无限蓝量
持续状态2
——————————————————————
代码:
ATTR_STATUSEX2
说明:
属性”持续状态”的扩展
取值:
取值可以是以下值的组合(用|连接多个值)
中文取值
英文取值
说明
===================================================
穿人 OBJ_STATUSEX2_THROUGHHUM
前方人物可以穿过
穿怪 OBJ_STATUSEX2_THROUGHMON
前方怪物可以穿过
循环动作 OBJ_STATUSEX2_LOOPACTION 一直循环当前动作
可设置方向 OBJ_STATUSEX2_CANSETDIR 可以设置对象方向
禁止攻击
OBJ_STATUSEX2_FBDATTACK 对象不能释放技能
示例:
持续状态2:穿人 (可以穿人)
持续状态2:穿怪 (可以穿怪)
持续状态2:穿人|穿怪 (可以穿人穿怪)
照亮范围
——————————————————————
代码:
ATTR_LIT
说明:
在黑暗洞穴里可以照亮周围环境范围大小
此属性一般写在蜡烛、火把等物品上.
取值:
1点照亮范围大约照亮人物周围3米范围,10点值大约照亮整个屏幕范围
视野宽度
——————————————————————
代码:
ATTR_FOVw
说明:
横向视野范围,1点视野相当于地图上一个格子
人物视野越大,在小地图上能看到对象更多,在手机上拉屏时能看到的对象也越多
怪物的视野范围越大,越能提早发现并攻击人物
视野高度
——————————————————————
代码:
ATTR_FOVh
说明:
竖向视野范围,1点视野相当于地图上一个格子
生命属性
生命属性
HP
——————————————————————
代码:
ATTR_HP
说明:
对象当前血量,如果此值小于或等于0,对象触发死亡
HP最大值
——————————————————————
代码:
ATTR_HPMAX
说明:
对象最大血量
HP恢复速度
——————————————————————
代码:
ATTR_HRS
说明:
每多少毫秒恢复一次血量
例如:
HP恢复速度:2000(表示每2秒恢复1次血量,恢复多少看”HP恢复比例”属性值)
HP恢复比例
——————————————————————
代码:
ATTR_HRR
说明:
每次恢复血量时,恢复最大血量的百分比
示例:
HP恢复比例:0.1%
(表示每次恢复血量时,恢复最大血量的千分之1)
HP恢复时机
——————————————————————
代码:
ATTR_HRF
说明:
设置血量的恢复时机,可以是以下值的组合(用坚线|)
中文取值
英文取值
说明
===================================================
待机恢复 RECOVER_WHEN_IDLE /*
在待机时可以恢复血量或蓝量 */
攻击恢复
RECOVER_WHEN_ATTACK /* 在攻击过程中可以恢复血量或蓝量
*/
行走恢复
RECOVER_WHEN_WALKING /* 在行走中可以恢复血量或蓝量 */
跑动恢复 RECOVER_WHEN_RUNNING /* 在跑动中可以恢复血量或蓝量
*/
飞行恢复
RECOVER_WHEN_FLYING /* 在飞行中可以恢复血量或蓝量
*/
表情恢复 RECOVER_WHEN_EXPRESSION /*
在做表情动作时可以恢复血量或蓝量 */
受击恢复
RECOVER_WHEN_STRUCK /* 在被攻击中可以恢复血量或蓝量
*/
关闭恢复
RECOVER_DISABLE /* 关闭复血量或蓝量的自动恢复
*/
关闭增涨
RECOVER_VALNOINC /*
关闭任何形式的血量或蓝量增加(但还可以恢复) */
示例:
HP恢复时机:关闭恢复|关闭增涨
(无法吃药加血量,也不恢复血量)
MP
——————————————————————
代码:
ATTR_MP
说明:
对象当前蓝量,如果此值小于或等于0,则技能无法放出
MP最大值
——————————————————————
代码:
ATTR_MPMAX
说明:
对象最大蓝量
MP恢复速度
——————————————————————
代码:
ATTR_MRS
说明:
每多少毫秒恢复一次蓝量
例如:
MP恢复速度:2000 (表示每2秒恢复1次蓝量,恢复多少看”MP恢复比例”属性值)
MP恢复比例
——————————————————————
代码:
ATTR_MRR
说明:
每次恢复蓝量时,恢复最大蓝量的百分比
示例:
HP恢复比例:2%
(表示每次恢复蓝量时,恢复最大蓝量的百分之2)
MP恢复时机
——————————————————————
代码:
ATTR_MRF
说明:
同HP恢复时机
HP最大值百分比
——————————————————————
代码:
ATTR_HPMAXPCT
说明:
按原始最大血量
的百分比增加或减少最大血量
示例:
当前HP容量是500,如果给属性
“HP容量百分比:+10%”,则当前HP容量为550
MP最大值百分比
——————————————————————
代码:
ATTR_MPMAXPCT
说明:
按原始最大蓝量
的百分比增加或减少最大蓝量
示例:
当前MP容量是1000,如果给属性
“MP容量百分比:+10%”,则当前MP容量为1100
HPMAX百分比(当前)
——————————————————————
注意:此属性名中的括号是英文状态,复制属性名更稳妥
代码:
ATTR_HPMAXPCTCUR
说明:
按当前最大血量
的百分比增加或减少最大血量
示例:
假设初始HP容量是100,如果给属性:
“HPMAX百分比(当前):+1000%”,则当前HP容量为:100+100*10=1100,
此时,如果再给属性:”HPMAX百分比(当前):+1%”,则在当前属性1100(不是初始值100)加1%,最后为:1100+1100*0.01=1111
例子1:(按百分比增加,包含当前值)
================================
假设人物初始最大血量为:100
// 1.
血量增加1000%,执行后为:100+100×10=1100
AddBuff 属性改变 HPMAX百分比(当前):1000% 0
不叠加
// 2.
血量在当前值1100的基础上再增加1%,执行后为:1100+1100*0.01=1111
ChangeHumAbilityEx HPMAX百分比(当前)
+ 1% 0
// 3.
血量在当前值1111基础上再增加500%,执行后为:1111+1111*5=6666
AddBuff 属性改变 HPMAX百分比(当前):500% 0
不叠加
// 4.
血量在当前值6666基础上再增加200%,执行后为:6666+6666*2=19998
AddBuff 属性改变 HPMAX百分比(当前):200% 0
不叠加
// 5.
撤销之前用ChangeHumAbilityEx加的血量,执行后为:19800
ChangeHumAbilityEx HPMAX百分比(当前) = 0
0
注意:ChangeHumAbilityEx=0,是相当于在计算血量百分比链条上取消这一步,然后再从一开始重新计算血量如下:
第1步
AddBuff: 100+100×10=1100
第2步 ChangeHumAbilityEx:被撤销,相当于没有执行这个操作
第3步
AddBuff: 1100基础上增加500%:1100+1100*5=6600
第4步 AddBuff:
6600基础上增加200%:6600+6600*2=19800
例子2:(直接将当前值按倍数乘)
================================
默认”HPMAX百分比(当前)”没有设置倍数相乘标志,执行逻辑按例子1.
如果在属性表.csv中给本属性标志:倍数值|百分比值,则有以下效果:
假设人物初始最大血量为:100
// 1. 人物当前血量2倍,执行后血量为:100×2=200
AddBuff
属性改变 HPMAX百分比(当前):200% 0 不叠加
// 2.
人物当前血量10倍,执行后血量为:200×10=2000
AddBuff 属性改变 HPMAX百分比(当前):1000% 0 不叠加
// 3.
执行后人物血量在当前值2000的基础上翻5倍,2000*5=10000,持续5秒后恢复到2000
ChangeHumAbilityEx
HPMAX百分比(当前) + 500% 5秒
MPMAX百分比(当前)
——————————————————————
注意:此属性名中的括号是英文状态,复制属性名更稳妥
代码:
ATTR_MPMAXPCTCUR
说明:
按原始最大蓝量的百分比增加或减少最大蓝量
示例:
HP百分比
——————————————————————
代码:
ATTR_HPPCT
说明:
按当前最大血量的百分比增加或减少当前血量
示例:
当前最大血量300(HP容量:300),如果给属性”HP百分比:+10%”,则当前血量为330
MP百分比
——————————————————————
代码:
ATTR_MPPCT
说明:
按当前最大蓝量的百分比增加或减少当前蓝量
示例:
当前最大蓝量1000(MP容量:1000),如果给属性”MP百分比:+10%”,则当前蓝量为1100
基础属性(攻魔道)
攻魔道基础属性
等级
——————————————————————
代码:
ATTR_LEVEL
说明:
人物或怪物等当前对象的等级
主属性
——————————————————————
代码:
ATTR_MAIN
说明:
如果人物是战士,主属性为攻击上限,道士为道术上限,法师为魔法上限
攻击下限
——————————————————————
代码:
ATTR_A0
说明:
最小物理攻击值,需要物理防御抵抗
攻击上限
——————————————————————
代码:
ATTR_A1
说明:
最大物理攻击值,需要物理防御抵抗.
每次物理攻击,对象输出攻击值在”攻击下限” 到 “攻击上限”之间
1点物理攻击扣1点血量(默认)
(GM可在”基础设置.txt”中修改此值,找到配置项”1点物理攻击:”)
魔法下限
——————————————————————
代码:
ATTR_M0
说明:
最小魔法攻击力,需要魔法防御抵抗
魔法上限
——————————————————————
代码:
ATTR_M1
说明:
最大魔法攻击值,需要魔法防御抵抗.
每次魔法攻击,对象输出魔法力在”魔法下限” 到 “魔法上限”之间
1点魔法攻击扣1.375点血量(默认)
(GM可在”基础设置.txt”中修改此值,找到配置项”1点魔法攻击:”)
道术下限
——————————————————————
代码:
ATTR_S0
说明:
最小道术攻击力,需要魔法防御抵抗
道术上限
——————————————————————
代码:
ATTR_S1
说明:
最大道术攻击值,需要魔法防御抵抗.
每次道术攻击,对象输出道术力在”道术下限” 到 “道术上限”之间
1点道术攻击扣1.25点血量(默认)
(GM可在”基础设置.txt”中修改此值,找到配置项”1点道术
攻击:”)
防御下限
——————————————————————
代码:
ATTR_AD0
说明:
对物理攻击抵抗的底值
防御上限
——————————————————————
代码:
ATTR_AD1
说明:
对物理攻击抵抗最大值,人物每次受到物里攻击时,会在防御下限到防御上限之间
随机浮动出一个防御值,以这个值去抵消对方的物理攻击力.
魔御下限
——————————————————————
代码:
ATTR_MD0
说明:
对魔法和道术攻击抵抗的底值
魔御上限
——————————————————————
代码:
ATTR_MD1
说明:
对魔法和道术攻击抵抗最大值,人物每次受到魔法攻击时,会在魔御下限到魔御上限之间
随机浮动出一个防御值,以这个值去抵消对方的魔法或道术攻击力.
准确
——————————————————————
代码:
ATTR_AR
说明:
如果自身”准确值”大于或等于目标”敏捷值”,则每次物理攻击都会命中,
否则,每次物理攻击命中目标几率= 自己准确值/目标敏捷值
举例:
自身”准确值”是5,目标”敏捷值”是10,则每次物理攻击命中几率为:5/10=0.5=50%
另有:
1点准确值可以抵消目标3.5%的魔法躲避
GM可在”Mir200/Envir/Data/!配置项.txt”中修改此值,写0可以关闭准确抵消魔法躲避特性
敏捷
——————————————————————
代码:
ATTR_DEX
说明:
抵消对方的准确
如果对方”准确值”大于或等于自己”敏捷值”,则对方每次物品攻击都会命中自己,
否则,对方每次物理攻击命中自己几率= 对方准确值/自己敏捷值
举例:
对方”准确值”是3,自己”敏捷值”是10,则对方每次物理攻击命中几率为:3/10=0.3=30%
魔法躲避
——————————————————————
代码:
ATTR_MAVOID
说明:
躲避魔法攻击几率
举例:
给自己加属性
“魔法躲避:20%”,则每次受到魔法技能攻击,有20%几率完全躲避
注意,如果攻击方有准确属性,则1点准确可以消减3.5%的魔法躲避
假如对方准确5,自己魔法躲避:20%,最终的躲避几率是 20% – 5×3.5%
= 2.5%
目标硬直
——————————————————————
代码:
ATTR_HT
说明:
每次击中目标,能致使目标后仰顿挫的时间.
1点”目标硬直”造成目标顿挫时间为90毫秒
GM可以在”Mir200/数据库/更多/基础设置.txt”中修改此值
示例:
自己”目标硬直:+1″,目标”硬直抗性:0″,则自己击中目标后,
目标后仰顿挫时间=受击动作时间(240) + 1×90 =
330毫秒
自己”目标硬直:+3″,目标”硬直抗性:1″,则自己击中目标后,
目标后仰顿挫时间=受击动作时间(240) + (3-1)x90 = 420毫秒
另外:
如果在目标硬直期间再次击中目标,则形成连击
硬直抗性
——————————————————————
代码:
ATTR_ANTIHALT
说明:
对”目标硬直”的直接抵消
攻击距离
——————————————————————
代码:
ATTR_ADIS
说明:
增加技能可攻击范围
1点”攻击距离”增加48像素攻击范围
跳跃
——————————————————————
代码:
ATTR_JUMP
说明:
人物能跳起高度,1点跳跃值可以跳1米高,为0不能跳跃
倍攻属性
倍攻属性
攻击倍数
——————————————————————
代码:
ATTR_ASCALE
说明:
此值将乘以人物的”攻击上限”值,最为最终攻击上限
示例:
人物”攻击上限:100″,”攻击倍数:1.5″,则最终攻击上限为:150
例子:
============================
假设人物初始最攻击上限:100
// 1. 人物2倍攻击,执行后攻击上限为:100×2=200
AddBuff 属性改变 攻击倍数:2 0 不叠加
// 2.
人物3倍攻击,执行后攻击上限为:200×3=600
AddBuff 属性改变
攻击倍数:3 0 不叠加
// 3.
在当前值600的基础上再翻1.5倍,600*1.5=900,持续5秒后恢复到600
ChangeHumAbilityEx 攻击倍数 + 1.5 5秒
魔法倍数
——————————————————————
代码:
ATTR_MSCALE
说明:
此值将乘以人物的”魔法上限”值,最为最终魔法上限
示例:
人物”魔法上限:50″,”魔法倍数:2.0″,则最终魔法上限为:100
道术倍数
——————————————————————
代码:
ATTR_SSCALE
说明:
此值将乘以人物的”道术上限”值,最为最终道术上限
示例:
人物”道术上限:50″,”道术倍数:2.0″,则最终道术上限为:100
防御倍数
——————————————————————
代码:
ATTR_ADSCALE
说明:
此值将乘以人物的”防御上限”值,最为最终防御上限
示例:
人物”防御上限:50″,”防御倍数:2.0″,则最终防御上限为:100
魔御倍数
——————————————————————
代码:
ATTR_MDSCALE
说明:
此值将乘以人物的”魔御上限”值,最为最终魔御上限
示例:
人物”魔御上限:50″,”魔御倍数:2.0″,则最终魔御上限为:100
合击倍数
——————————————————————
代码:
ATTR_HEJISCALE
说明:
暂无用处
特殊攻击属性
特殊攻击属性
绿毒攻击
——————————————————————
代码:
ATTR_POISONATK_G
说明:
普攻或技能攻击(取决于设置)对目标造成绿毒BUFF的几率
GM可在”Mir200/数据库/更多/属性/属性触发buff.csv”表中设置可以触发绿毒攻击
的技能,以及绿毒效果、持续时间等
红毒攻击
——————————————————————
代码:
ATTR_POISONATK_R
说明:
普攻或技能攻击(取决于设置)对目标造成红毒BUFF的几率
GM可在”Mir200/数据库/更多/属性/属性触发buff.csv”表中设置可以触发红毒攻击
的技能,以及红毒效果、持续时间等
72. 毒物时间
——————————————————————
代码:
ATTR_POISONTIME
说明:
属性功能开发中…
毒物抗性
——————————————————————
代码:
ATTR_DRGAANTI
说明:
直接抵抗毒物攻击几率
麻痹攻击
——————————————————————
代码:
ATTR_PARALYSISA
说明:
普攻或技能攻击(取决于设置)对目标造成麻痹的几率
GM可在”Mir200/数据库/更多/属性/属性触发buff.csv”表中设置可以触发麻痹攻击
的技能,以及麻痹持续时间等
麻痹时间
——————————————————————
代码:
ATTR_PARALYSISATIME
说明:
基础麻痹时间在”Mir200/数据库/更多/属性/属性触发buff.csv”表中设置
此属性功能开发中…
麻痹抗性
——————————————————————
代码:
ATTR_PARAANTI
说明:
直接抵抗麻痹攻击几率
冰冻攻击
——————————————————————
代码:
ATTR_ICEFROZEA
说明:
普攻或技能攻击(取决于设置)对目标造成冰冻的几率
GM可在”Mir200/数据库/更多/属性/属性触发buff.csv”表中设置可以触发冰冻攻击
的技能、冰冻效果、以及冰冻持续时间等
冰冻时间
——————————————————————
代码:
ATTR_ICEFROZEATIME
说明:
基础冰冻时间在”Mir200/数据库/更多/属性/属性触发buff.csv”表中设置
此属性功能开发中…
79. 冰冻抗性
——————————————————————
代码:
ATTR_ICEFROZEANTI
说明:
直接抵抗冰冻攻击几率
眩晕攻击
——————————————————————
代码:
ATTR_REEL_P
说明:
普攻或技能攻击(取决于设置)对目标造成眩晕的几率
GM可在”Mir200/数据库/更多/属性/属性触发buff.csv”表中设置可以触发眩晕攻击
的技能、眩晕效果、以及眩晕持续时间等
眩晕时间
——————————————————————
代码:
ATTR_REELTIME
说明:
基础眩晕时间在”Mir200/数据库/更多/属性/属性触发buff.csv”表中设置
此属性功能开发中…
眩晕抗性
——————————————————————
代码:
ATTR_REEL_D
说明:
直接抵抗眩晕攻击几率
蛛网攻击
——————————————————————
代码:
ATTR_SPIDERWEB
说明:
普攻或技能攻击(取决于设置)对目标造成蛛网的几率
GM可在”Mir200/数据库/更多/属性/属性触发buff.csv”表中设置可以触发蛛网攻击
的技能、蛛网效果、以及蛛网持续时间等
人物被蛛网后只能走,不能跑
蛛网时间
——————————————————————
代码:
ATTR_SPIDERWEBTIME
说明:
基础蛛网时间在”Mir200/数据库/更多/属性/属性触发buff.csv”表中设置
此属性功能开发中…
蛛网抗性
——————————————————————
代码:
ATTR_ANTIGRID
说明:
直接抵抗蛛网攻击几率
防止护身
——————————————————————
代码:
ATTR_ANTIMPP
说明:
属性功能开发中…
防止复活
——————————————————————
代码:
ATTR_ANTIRELIFE
说明:
属性功能开发中…
防止火墙
——————————————————————
代码:
ATTR_ANTIFIREWALL
说明:
属性功能开发中…
击退几率
——————————————————————
代码:
ATTR_HITBACK
说明:
每次攻击有百分之多少几率将目标击退
注意:此几率和技能击退几率相加,所以最终击退几率=
技能击退+击退几率
击飞几率
——————————————————————
代码:
ATTR_HITFLY
说明:
每次攻击有百分之多少几率将目标击非
注意:此几率和技能击飞几率相加,所以最终击退几率= 技能击飞+击飞几率
攻击打断
——————————————————————
代码:
ATTR_BRK
说明:
每次攻击有百分之多少几率打断目标攻击
攻断抗性
——————————————————————
代码:
ATTR_BRKANTI
说明:
对攻击打断几率的直接抵消
召唤抗性
——————————————————————
代码:
ATTR_BECKONANTI
说明:
对诱惑之光技能召唤几率的抵消,一般设置在怪物身上,
让这个怪物更难被召.
举例:
怪物 “召唤抗性:+30%” 人物诱惑之光召宝宝几率50%,
则最终每次诱惑之光怪物被召走几率=50% – 30% =
20%
圣言抗性
——————————————————————
代码:
ATTR_ONEHITDEATH_ANTI
说明:
对圣言术秒杀几率的抵消,一般设置在怪物身上,
让这个怪物更难圣死
击退抗性
——————————————————————
代码:
ATTR_HITBKANTI
说明:
直接对击退几率的抵抗
击飞抗性
——————————————————————
代码:
ATTR_HITFLYANTI
说明:
直接对击飞几率的抵抗
元素属性
元素属性
冰系伤害
——————————————————————
代码:
ATTR_IH
说明:
对冰系技能伤害加成百分比
冰系抵御
——————————————————————
代码:
ATTR_ID
说明:
对冰系技能伤害的抵御加成
火系伤害
——————————————————————
代码:
ATTR_FH
说明:
对火系技能伤害加成百分比
火系抵御
——————————————————————
代码:
ATTR_FD
说明:
对火系技能伤害的抵御加成
雷系伤害
——————————————————————
代码:
ATTR_TH
说明:
对雷系技能伤害加成百分比
雷系抵御
——————————————————————
代码:
ATTR_TD
说明:
对雷系技能伤害的抵御加成
风系伤害
——————————————————————
代码:
ATTR_WH
说明:
对风系技能伤害加成百分比
风系抵御
——————————————————————
代码:
ATTR_WD
说明:
对风系技能伤害的抵御加成
冰系攻速
——————————————————————
代码:
ATTR_IAS
说明:
增加释放冰系技能速度
1点冰系攻速减少每帧攻击时间: 4毫秒
(越短越快)
此设置与属性”攻击速度”相同,具体可看”攻击速度”说明,
只是冰系攻速只增加冰系类技能释放速度.
火系攻速
——————————————————————
代码:
ATTR_FAS
说明:
增加释放火系技能速度
1点火系攻速减少每帧攻击时间: 4毫秒
(越短越快)
此设置与属性”攻击速度”相同,具体可看”攻击速度”说明,
只是火系攻速只增加火系类技能释放速度.
雷系攻速
——————————————————————
代码:
ATTR_TAS
说明:
增加释放雷系技能速度
1点雷系攻速减少每帧攻击时间: 4毫秒
(越短越快)
此设置与属性”攻击速度”相同,具体可看”攻击速度”说明,
只是雷系攻速只增加雷系类技能释放速度.
风系攻速
——————————————————————
代码:
ATTR_WAS
说明:
增加释放风系技能速度
1点风系攻速减少每帧攻击时间: 4毫秒 (越短越快)
此设置与属性”攻击速度”相同,具体可看”攻击速度”说明,
只是风系攻速只增加风系类技能释放速度.
切割属性
切割属性
切割几率(怪)
——————————————————————
代码:
ATTR_FIXHURTP_PM
说明:
每次攻击对目标怪物时,产生切割的百分比几率
此属性将决定”几率固定切割值(怪)”和”几率百分比切割值(怪)”是否发挥作用
几率固定切割值(怪)
——————————————————————
代码:
ATTR_FIXHURT_PM
说明:
每次攻击先判断”切割几率(怪)”是否命中, 如命中则扣减目标怪物固定血量
示例:
如果给自己加属性
“切割几率(怪):10% 几率固定切割值(怪):120″,
则每次攻击有10%几率对目标怪物触发切割,切割血量固定120
几率百分比切割值(怪)
——————————————————————
代码:
ATTR_FIXHURTPCT_PM
说明:
每次攻击先判断”切割几率(怪)”是否命中, 如命中则扣减目标怪物百分比血量
示例:
如果自己加属性
“切割几率(怪):20% 几率百分比切割值(怪):20%”,
则每次攻击有20%几率对目标怪物触发切割,切割血量是怪物总血量的20%.
提示:此属性值可以写0.1%这样更小的值
固定切割值(怪)
——————————————————————
代码:
ATTR_FIXHURT_M
说明:
对目标怪物进行固定值切割,刀刀产生,不受”切割几率(怪)”影响
示例:
如果给自己加属性
“固定切割值(怪):150″,则每次攻击目标怪物,会直接扣掉目标150点血
百分比切割值(怪)
——————————————————————
代码:
ATTR_FIXHURTPCT_M
说明:
对目标怪物百分比切割值,刀刀产生,不受”切割几率(怪)”控制
示例:
如果给自己加属性
“百分比切割值(怪):10%”,则每次攻击目标怪物,
会直接扣掉其总血量10%的血量
提示:属性值可以写0.1%这样更小的值
切割几率(人)
——————————————————————
代码:
ATTR_FIXHURTP_PH
说明:
每次攻击目标人物时,产生切割的百分比几率
此属性将决定”几率固定切割值(人)”和”几率百分比切割值(人)”是否发挥作用
几率固定切割值(人)
——————————————————————
代码:
ATTR_FIXHURT_PH
说明:
每次攻击先判断”切割几率(人)”是否命中, 如命中则扣减目标人物固定血量
示例:
如果给自己加属性
“切割几率(人):10% 几率固定切割值(人):120″,
则每次攻击有10%几率对目标人物触发切割,切割血量固定120
几率百分比切割值(人)
——————————————————————
代码:
ATTR_FIXHURTPCT_PH
说明:
每次攻击先判断”切割几率(人)”是否命中, 如命中则扣减目标人物百分比血量
示例:
如果给自己加属性
“切割几率(怪):20% 几率百分比切割值(怪):20%”,
则每次攻击有20%几率对目标人物触发切割,切割血量是目标人物总血量的20%
提示:此属性值可以写0.1%这样更小的值
固定切割值(人)
——————————————————————
代码:
ATTR_FIXHURT_H
说明:
对目标人物进行固定值切割,刀刀产生,不受”切割几率(人)”影响
示例:
如果给自己加属性
“固定切割值(怪):150″,则每次攻击目标人物,会直接扣掉其150点血
百分比切割值(人)
——————————————————————
代码:
ATTR_FIXHURTPCT_H
说明:
对人物百分比切割值,刀刀产生,不受”切割几率(人)”控制
示例:
如果给自己加属性
“百分比切割值(怪):10%”,则每次攻击目标人物,
会直接扣掉其总血量10%的血量.
提示:属性值可以写0.1%这样更小的值
切割几率抵抗
——————————————————————
代码:
ATTR_ANTIFIXHURTP
说明:
自已被对方攻击时,能抵消对方多少切割几率
示例:
自已”切割几率抵抗:15%”,对方”切割几率(人):25%”,则最终对方能产切割的几率是:
25% – 15% = 10%
切割几率抵抗不区分人和怪物,同时抵抗”切割几率(人)”和”切割几率(怪)”
百分比切割抵抗
——————————————————————
代码:
ATTR_ANTIFIXHURTPCT
说明:
自已被对方攻击时,当对方切割触发时,能抵消对方多少百分比切割
示例:
自已”百分比切割抵抗:5%”,对方”百分比切割值(人):15%”,则最终对方能产切割值是:
15% – 5% = 10%
如果对方还有”几率百分比切割值(人):10%”,并且几率触发了,则抵消为:
10% – 5% = 5%
百分比切割几率抵抗不区分人和怪物,同时抵抗”百分比切割值(人)”和”百分比切割值(怪)”
固定切割抵抗
——————————————————————
代码:
ATTR_ANTIFIXHURT
说明:
当自己被对方攻击时,能抵消对方多少固定切割值
示例:
自已”固定切割抵抗:100″,对方”固定切割值(人):200″,则最终对方能产切割值是:
200 – 100 = 100
固定切割抵抗不区分人和怪物,同时抵抗”固定切割值(人)”和”固定切割值(怪)” < /FONT >
防御忽略属性
防御忽略性
忽视防御
——————————————————————
代码:
ATTR_IGNORED
说明:
每次攻击目标时(对人对怪),忽略对方百分之多少的防御值(物魔双防)
忽视防御几率
——————————————————————
代码:
ATTR_IGNOREDP
说明:
每次攻击目标(对人对怪)触发忽视防御几率(百分比几率值),如果为0(默认),则100%触发.
—
忽视防御(人)
——————————————————————
代码:
ATTR_IGNORED_H
说明:
每次攻击目标时(仅对人),忽略对方百分之多少的防御值(物魔双防)
忽视防御几率(人)
——————————————————————
代码:
ATTR_IGNOREDP_H
说明:
每次攻击目标(仅对人)触发忽视防御几率(百分比几率值),如果为0(默认),则100%触发.
–
忽视防御(怪)
——————————————————————
代码:
ATTR_IGNORED_M
说明:
每次攻击目标时(仅对怪),忽略对方百分之多少的防御值(物魔双防)
忽视防御几率(怪)
——————————————————————
代码:
ATTR_IGNOREDP_M
说明:
每次攻击目标(仅对怪)触发忽视防御几率(百分比几率值),如果为0(默认),则100%触发.
爆率属性
爆率属性
对人爆率
——————————————————————
代码:
ATTR_ITEMPRODUCE_H
说明:
将人物杀死后,增加对方身上装备掉落几率
举例:
如果自己有属性
“对人爆率:100%”,杀死目标人物,则对方身上装备将全爆!
如果自己有属性
“对人爆率:80%”,杀死目标人物,则对方身上装备有80%几率爆出!
如果自己有属性 “对人爆率:0″,杀死目标人物,则对方身上装备按默认几率(0.2%)爆出
对怪爆率
——————————————————————
代码:
ATTR_ITEMPRODUCE_M
说明:
将怪物杀死后,增加多少倍的怪物爆出几率
举例:
某个怪物的爆率文件如下:
1/10 木剑 (10分之1几率爆出)
1/20 魔杖 (20分之1几率爆出)
…
如果人物的”对怪爆率”为2,杀死这个怪物,每件物品爆率相当于
1/5 木剑
(5分之1)
1/20 魔杖 (10分之1)
武器防爆
——————————————————————
代码:
ATTR_WEAPONANTIDROP
说明:
人物被击杀死亡且武器触发爆出后(0.2%几率),再有百分之多的几率防止武器爆出
示例:
武器防爆:100%,表示人物死亡总不会爆出武器
武器防爆:+30%,表示人物死亡,并且武器触发爆出后(0.2%几率),再有30%几率不爆
武器防爆:0%,表示人物死亡,武器触发爆出(0.2%几率),直接爆出
GM可在”Mir200/数据库/更多/基础设置.txt”中修改人物死亡装备掉落几率,
玩家死亡装备掉落几率: 0.2%
盾牌防爆
——————————————————————
代码:
ATTR_SHILDANTIDROP
说明:
人物被击杀死亡且盾牌触发爆出后(0.2%几率),再有百分之多的几率防止盾牌爆出
示例:
盾牌防爆:100%,表示人物死亡总不会爆出盾牌
盾牌防爆:+30%,表示人物死亡,并且盾牌触发爆出后(0.2%几率),再有30%几率不爆
盾牌防爆:0%,表示人物死亡,盾牌触发爆出(0.2%几率),直接爆出
GM可在”Mir200/数据库/更多/基础设置.txt”中修改人物死亡装备掉落几率,
玩家死亡装备掉落几率: 0.2%
装备防爆
——————————————————————
代码:
ATTR_EQANTIDROP
说明:
人物被击杀死亡且装备触发爆出后(0.2%几率),再有百分之多的几率防止装备爆出
这里的装备是指项链、手镯、戒指、衣服、腰带、鞋子等首饰
示例:
装备防爆:100%,表示人物死亡总不会爆出装备
装备防爆:+30%,表示人物死亡,并且装备触发爆出后(0.2%几率),再有30%几率不爆
装备防爆:0%,表示人物死亡,装备触发爆出(0.2%几率),直接爆出
GM可在”Mir200/数据库/更多/基础设置.txt”中修改人物死亡装备掉落几率,
玩家死亡装备掉落几率: 0.2%
全部防爆
——————————————————————
代码:
ATTR_ALLANTIDROP
说明:
人物在被击杀死亡时,对身上所有装备防爆几率
包裹防爆
——————————————————————
代码:
ATTR_BAGANTIDROP
说明:
人物在被击杀死亡时,对包裹里物品防爆几率
技能增强属性
技能增强属性
技能持续时间
——————————————————————
代码:
ATTR_ST
说明:
增加人物所有技能放出后持续的时间,单位:秒
示例:
技能持续时间:+5
如果人物放出火墙,则火墙在地面上多持续5秒
如果人物放出大火球,则大火球会在空中多飞行5秒(只要没碰到目标)
注意:此属性是对所有技能生效
技能作用周期
——————————————————————
代码:
ATTR_SEP
说明:
减少所有技能作用周期时间(秒),相当于加快技能伤害频率
例如:
人物放出火墙在地上,假设原本火墙是每3秒造成一次伤害,
如果有属性”技能作用周期:+1″,则再放出的火墙会每2秒造成一次伤害
如果有属性”技能作用周期:+2″,则再放出的火墙会每1秒造成一次伤害
如果作用周期被减到0及以下,则技能每帧作用一次(1帧约16毫秒)
技能移动速度
——————————————————————
代码:
ATTR_SMVS
说明:
属性功能开发中…
技能特破几率
——————————————————————
代码:
ATTR_SSDP
说明:
提高所有技能特殊破坏产生的几率,技能特殊破坏有:
中文取值
英文取值
说明
===================================================
击退
SPECIAL_DAMAGE_HITBACK /*
当特殊破坏值为0表示不击退,一个距离表示一个地图单元 */
召唤
SPECIAL_DAMAGE_BECKON /*
诱惑召唤,使目标对象成为自己的下属,特破值为可诱惑的对象个数 */
移动
SPECIAL_DAMAGE_MOVING /* 移动 */
一击必杀
SPECIAL_DAMAGE_ONEHITDEATH /* 一击必杀 */
击飞
SPECIAL_DAMAGE_HITFLY /* 击飞 */
指挥 SPECIAL_DAMAGE_LOCKCOMMAND /*
接受锁定指挥 */
延迟击退
SPECIAL_DAMAGE_HITBACKDELAY /* 经过短暂时间后击退 */
跳跃
SPECIAL_DAMAGE_JUMP /*
跳跃,需要配合跳跃属性才能起跳 */
击漩
SPECIAL_DAMAGE_HITEDDY /* 受击者向上空旋转最后掉落 */
以上技能特殊破坏写在”Mir200/数据库/技能.csv”表的特殊破坏列中,
在特殊破坏列后面,写的是产生特殊破坏几率,本属性值就是加上这个几率得出最终几率
示例:
假如技能表中,攻杀的特殊破坏是:击退,特殊破坏几率是:20%
人物属性”技能特破几率:+30%”,则人物释放攻杀时,
有20%(原有几率) + 30%(属性几率) = 50%几率击退目标<
/FONT >
注意:此属性是对所有技能生效
技能buff时间
——————————————————————
代码:
ATTR_SIT
说明:
属性功能开发中…
技能buff周期
——————————————————————
代码:
ATTR_SIEP
说明:
属性功能开发中…
技能buff伤害
——————————————————————
代码:
ATTR_SIAV
说明:
属性功能开发中…
其他属性
其他属性
内功等级
——————————————————————
代码:
ATTR_INNERLEVEL
说明:
对象当前内功等级
内力值
——————————————————————
代码:
ATTR_INNERPOW
说明:
对象当前内力值
内功伤害增加
——————————————————————
代码:
ATTR_INNERDMG
说明:
触发内功攻击时的伤害加成
(此功能暂缺)
内功伤害减少
——————————————————————
代码:
ATTR_INNERDMG
说明:
触发内功攻击时的伤害减弱(此功能暂缺)
复活CD时间
——————————————————————
代码:
ATTR_REALIVETIME
说明:
人物复活等待时间(秒),默认是0,可在属性表中修改默认值,给直接给属性值
示例:
常量复活时间<$REVIVALTIME>和此属性值有关,假如给属性 复活CD时间:30,
人物死亡后立即调用 <$REVIVALTIME> = 30(秒)
人物死亡后1秒调用 <$REVIVALTIME>
= 29(秒)
人物死亡后2秒调用
<$REVIVALTIME> = 28(秒)
…
此属性一般用于控制脚本复活等待,在调用REALIVE复活人物前,判断复活CD时间到了没,
[@复活人物]
#IF
EQUAL <$REVIVALTIME> 0
#ACT
REALIVE;现在可以复活
#ELSEACT
SENDMSG
5 还剩<$REVIVALTIME>秒才可复活
54.
怒气恢复加成
——————————————————————
代码:
ATTR_ANGRYRCV
说明:
属性功能开发中…
暴击几率
——————————————————————
代码:
ATTR_BAOJIPROB
说明:
每次攻击产生暴击几率
示例:
如果给人物加属性”暴击几率:20%”,则人物每次攻击目标时,有20%几率产生暴击
暴击伤害
——————————————————————
代码:
ATTR_BAOJIPWR
说明:
最终暴击伤害倍数= 基础暴击伤害倍数 + 暴击伤害
基础暴击伤害默认为2倍攻击
GM可在”Mir200/数据库/更多/基础设置.txt”里修改此值
举例:
人物属性有
“暴击几率:20% 暴击伤害:20%”,则人物每次攻击,
有20%几率产生暴击,然后有200%(基础暴击) + 20% = 220% = 2.2倍攻击伤害
57.
暴击抵抗
——————————————————————
代码:
ATTR_ANTIBAOJI
说明:
对最终暴击伤害倍的直接抵抗
致命几率
——————————————————————
代码:
ATTR_ZM_P
说明:
每次攻击产生致命攻击几率
示例:
如果给人物加属性”致命几率:20%”,则人物每次攻击目标时,有20%几率产生致命攻击
致命伤害
——————————————————————
代码:
ATTR_ZM_S
说明:
最终致命伤害倍数=
基础致命伤害倍数 + 致命伤害
基础致命伤害默认为3倍攻击
GM可在”Mir200/数据库/更多/基础设置.txt”里修改此值
举例:
人物属性有
“致命几率:20%
致命伤害:20%”,则人物每次攻击,
有20%几率产生致命攻击,然后有300%(基础) + 20% = 320% = 3.2倍攻击伤害
60.
致命抵抗
——————————————————————
代码:
ATTR_ZM_D
说明:
对最终致命伤害倍的直接抵抗
神圣几率
——————————————————————
代码:
ATTR_SS_P
说明:
每次攻击产生神圣攻击几率
示例:
如果给人物加属性”神圣几率:20%”,则人物每次攻击目标时,有20%几率产生神圣攻击
神圣伤害
——————————————————————
代码:
ATTR_SS_S
说明:
最终神圣伤害倍数=
基础神圣伤害倍数 + 神圣伤害
基础神圣伤害默认为4倍攻击
GM可在”Mir200/数据库/更多/基础设置.txt”里修改此值
举例:
人物属性有
“神圣几率:20% 神圣伤害:20%”,则人物每次攻击,
有20%几率产生神圣攻击,然后有400%(基础) + 20% = 420% = 4.2倍攻击伤害
神圣抵抗
——————————————————————
代码:
ATTR_SS_D
说明:
对最终神圣伤害倍的直接抵抗
卓越几率
——————————————————————
代码:
ATTR_ZY_P
说明:
每次攻击产生卓越攻击几率
示例:
如果给人物加属性”卓越几率:20%”,则人物每次攻击目标时,有20%几率产生卓越攻击
卓越伤害
——————————————————————
代码:
ATTR_ZY_S
说明:
最终卓越伤害倍数=
基础卓越伤害倍数 + 卓越伤害
基础卓越伤害默认为5倍攻击
GM可在”Mir200/数据库/更多/基础设置.txt”里修改此值
举例:
人物属性有
“卓越几率:20% 卓越伤害:20%”,则人物每次攻击,
有20%几率产生卓越攻击,然后有500%(基础) + 20% = 520% = 5.2倍攻击伤害
卓越抵抗
——————————————————————
代码:
ATTR_ZY_D
说明:
对最终卓越伤害倍的直接抵抗
会心几率
——————————————————————
代码:
ATTR_HX_P
说明:
每次攻击产生会心攻击几率
示例:
如果给人物加属性”会心几率:20%”,则人物每次攻击目标时,有20%几率产生会心攻击
会心伤害
——————————————————————
代码:
ATTR_HX_S
说明:
最终会心伤害倍数=
基础会心伤害倍数 + 会心伤害
基础会心伤害默认为6倍攻击
GM可在”Mir200/数据库/更多/基础设置.txt”里修改此值
举例:
人物属性有
“会心几率:20% 会心伤害:20%”,则人物每次攻击,
有20%几率产生会心攻击,然后有600%(基础) + 20% = 620% = 6.2倍攻击伤害
会心抵抗
——————————————————————
代码:
ATTR_HX_D
说明:
对最终会心伤害倍的直接抵抗
对怪伤害
——————————————————————
代码:
ATTR_MONHURT
说明:
增加对怪物伤害百分比
对人伤害
——————————————————————
代码:
ATTR_HUMHURT
说明:
增加对人物物伤害百分比
伤害倍数
——————————————————————
代码:
ATTR_ALLHURT
说明:
增加同时对人对怪物伤害百分比,会和单独对人或对怪伤害属性叠加.
固定受伤
——————————————————————
代码:
ATTR_FIXINJURY
说明:
每次受到攻击时固定扣除的血量值,无视攻击、防御、敏捷躲避等所有属性,直接扣
固定受伤几率
——————————————————————
代码:
ATTR_FIXINJURY_P
说明:
每次受到攻击时触发固定扣血的几率(百分比,0%不扣,100%必扣)
固定受伤标志
——————————————————————
代码:
ATTR_FIXINJURY_FLAGS
说明:
此属性取值由以下值组合,用|组合
叠加攻击
叠加切割
此属性不设置或为0,则表示不叠加任何其它伤害,就仅仅是固定受伤掉血量
例如:
1. 希望怪物每次被攻击都扣除50点血(不受切割和正常攻击影响):
固定受伤:50
固定受伤几率:100% 其它属性…
2. 望怪物每次被攻击扣除50血,还叠加正常攻击伤害
固定受伤:50
固定受伤几率:100% 固定受伤标志:叠加攻击 其它属性…
破防几率
——————————————————————
代码:
ATTR_IGNOREAD
说明:
攻击时有百分之多少几率无视对方物理防御
破防几率(魔)
——————————————————————
代码:
ATTR_IGNOREMD
说明:
攻击时有百分之多少几率无视对方物理防御
对怪反伤几率
——————————————————————
代码:
ATTR_INJRBD_M_P
说明:
受到怪物伤害时有百分之多少几率将伤害值反给怪物(让怪物扣血)
对怪反弹伤害
——————————————————————
代码:
ATTR_INJRBD_M
说明:
受到怪物伤害并触发反伤时,反弹所受伤害的百分之多少给怪物
举例:
自己的属性
“对怪反伤几率:15%
对怪反弹伤害:50%”表示:
每次受到怪物伤害,有15%几率将所受伤害的50%反给怪物
对人反伤几率
——————————————————————
代码:
ATTR_INJRBD_H_P
说明:
受到人物伤害时有百分之多少几率将伤害值反给对方(让对方扣血)
对人反弹伤害
——————————————————————
代码:
ATTR_INJRBD_H
说明:
受到人物伤害并触发反伤时,反弹所受伤害的百分之多少给对方
举例:
自己的属性
“对人反伤几率:15%
对人反弹伤害:50%”表示:
每次受到人物伤害,有15%几率将所受伤害的50%反给对方
所有伤害反弹
——————————————————————
代码:
ATTR_INJRBD
说明:
此属性功能开发中…
伤害减免
——————————————————————
代码:
ATTR_HURTREDUCE
说明:
受到任意伤害时,直接减去受伤害的百分之多少
示例:
自己有属性
“伤害减免:20%”,若受到100点血伤害,则减免100×20%=
20点血,
最终受到伤害=100-20=80点血
魔法伤害减免
——————————————————————
代码:
ATTR_HURTREDUCE_M
说明:
受到魔法伤害时,直接减去受伤害的百分之多少
(仅减免魔法伤害)
物理伤害减免
——————————————————————
代码:
ATTR_HURTREDUCE_A
说明:
受到物理伤害时,直接减去受伤害的百分之多少
(仅减免物理伤害)
怪物减伤(百分比)
——————————————————————
代码:
ATTR_HRM
说明:
受到怪物伤害时,直接减去伤害的百分之多少
格挡几率
——————————————————————
代码:
ATTR_DEFENSE_P
说明:
每次受到伤害时,有百分之多少几率出现护盾格挡一定伤害
格挡伤害
——————————————————————
代码:
ATTR_DEFENSE
说明:
每次受到伤害并格档几率触发时,格档百分之多少所受伤害
吸血几率
——————————————————————
代码:
ATTR_SUCKHP_PROB
说明:
每次攻击目标时有百分之多少几率触发吸血
吸血比例
——————————————————————
代码:
ATTR_SUCKHP_RATE
说明:
触发吸血时,吸收对方所受伤害值百分之多少的血量给自己
吸魔几率
——————————————————————
代码:
ATTR_SUCKMP_PROB
说明:
每次攻击目标时有百分之多少几率触发吸蓝
吸魔比例
——————————————————————
代码:
ATTR_SUCKMP_RATE
说明:
触发吸蓝时,吸收对方所受伤害值百分之多少的蓝量给自己
种族
——————————————————————
代码:
ATTR_RACE
说明:
设置怪物的种族值,这个是自定义值,引擎本身不作特殊处理
示例:
底版怪物表中(“Mir200/数据库/怪物.csv”)
牛魔洞怪物的种族属性写的是2,即 种族:2
狐狸怪物种族属性写的是1,即 种族:1
这里的种族值,都是自定义的,只是为了区别不同种族,写多少都无所谓.
然后如果给人物加下种族属性:
人物”种族:1″,则所有狐狸族怪物不攻击人物
人物”种族:2″,则所有牛魔族怪物不攻击人物
幸运
——————————————————————
代码:
ATTR_LK
说明:
控制每次攻击发挥最大输出值几率
举例:
幸运点数 发挥最大伤害几率
=======================================
0点幸运: 0%
1点幸运: 1%
2点幸运: 2%
3点幸运: 3%
4点幸运: 4%
5点幸运: 5%
6点幸运: 10%
7点幸运: 20%
8点幸运: 30%
9点幸运: 40%
10点幸运: 100%
GM可在”Mir200/数据库/更多/基础设置.txt”中修改以上数值
神圣
——————————————————————
代码:
ATTR_HOLY
说明:
属性功能开发中…
挖肉品质
——————————————————————
代码:
ATTR_DIGQLT
说明:
增加挖肉品质倍数
示例:
原本挖肉挖出品质10/20的肉
如果
“挖肉品质:+1.5″,则原本挖出10/20肉成是15/20
挖矿概率
——————————————————————
代码:
ATTR_OREPROB
说明:
增加挖矿产出几率
示例:
原本每次挖矿产出几率为5%,
如果 “挖矿概率:+20″,则最终挖矿产出几率为: 25%
挖矿品质
——————————————————————
代码:
ATTR_OREQLT
说明:
增加挖矿品质倍数
示例:
原本挖矿挖出品质10/25的矿
如果
“挖矿品质:+1.5″,则原本挖出10/25矿的品质是15/25
腕力
——————————————————————
代码:
ATTR_HW
说明:
增加人物拿武器和盾牌的力量
示例:
屠龙重量99,人物 “腕力:90” ,则无法拿起屠龙
人物 “腕力:99″以上,可以拿起屠龙
装备负重
——————————————————————
代码:
ATTR_EQLD
说明:
增加人物穿戴衣服和其他首饰的负重
示例:
如果人物 “装备负重:100″,则可以穿戴起总重量不超过100的首饰
包裹负重
——————————————————————
代码:
ATTR_BAGLD
说明:
人物包裹总承载重量
示例:
如果在人物包裹里所有物品重量加起来大于包裹负重,则人物不能再拾取物品,
即使还有空余的包裹格子也不行
技能格数
——————————————————————
代码:
ATTR_SKILLSLOT
说明:
人物能学习的最大技能个数
如果技能格子满了,就不能学习新的技能(即使这个技能是可以学习的且达到学习条件)
拾取范围
——————————————————————
代码:
ATTR_PICKUP
说明:
人物点击地面物品时,能拾取距离自己多少像素的物品
此值引擎默认设为14,正好能拾取到自己所在地图坐标的物品
诅咒
——————————————————————
代码:
ATTR_CURSE
说明:
诅咒先抵消幸运值,如果抵消完还有多余的诅咒(净诅咒),则降低人物发挥最大攻击的几率
示例:
假如人物幸运10,诅咒1,此时诅咒抵消1点幸运,人物相当于幸运9
假如人物幸运10,诅咒10,相当于没有幸运也没有诅咒
假如人物幸运8,诅咒10,抵消8点幸运后,还有2点净诅咒,人物发挥最大攻击几率受阻20%
假如人物幸运0,诅咒10,净诅咒就是10,人物发挥最大攻击几率受阻100%,即每次攻击发挥最小伤害
净诅咒最高10点,100%阻碍人物发挥最大攻击(即:每次最低攻击)
净诅咒9点,90%阻碍人物发挥最大攻击(即:还有10%几率能发挥出最高攻击)
净诅咒8点,80%阻碍人物发挥最大攻击(即:还有20%几率能发挥出最高攻击)
…
净诅咒0点,不阻碍人物发挥最大攻击(即:正常发挥)
PK值
——————————————————————
代码:
ATTR_PK
说明:
恶意杀死目标人物时,会增加PK值,当PK值到达一定值是,会变红名
权限
——————————————————————
代码:
ATTR_PRIVILEDGE
说明:
给人物赋予游戏管理权限,可以是以下取值组合,用|组合
=============================================================
查询 /*
人物可以查询游戏中各项数据 */
踢人 /* 人物可以踢掉其它人物 */
踢怪 /* 人物可以踢掉怪物
*/
禁言 /*
人物可以禁止其它人物发言 */
公告 /* 人物可以发全服公告 */
监禁 /*
人物有权将其它人物关小黑屋 */
禁止上线 /*
人物有权禁止其它人物上线 */
生成物品 /* 人物可以刷装备
*/
生成怪物 /* 人物可以刷怪 */
更改属性 /* 人物可以修改装备属性 */
地图传送 /* 人物可以在地图任意传送 */
举例:
给人物加属性
“权限:踢人|踢怪|公告”,则人物按Alt+C可以呼出管理菜单,
可以执行踢人、踢怪、发送公告操作.
特殊功能
——————————————————————
代码:
ATTR_SPECFUNC
说明:
赋予人物特殊功能,取值可以是以下组合(用|组合):
中文取值
英文取值
说明
===================================================
自身传送
SPECFUNC_MAP_TRANSMIT /* 地图任意传送(如:传送戒指) */
队员传送
SPECFUNC_TEAM_TRANSMIT /* 拉人到自己身边(天地合一) */
怪物叛变
SPECFUNC_MONSTER_BETRAY /* 可以发动全区怪物叛变 */
复活
SPECFUNC_REBIRTH /*
死亡后原地满血满蓝复活 */
护身
SPECFUNC_MP_PROTECT /* 完全护身,受到攻击将扣血量转化成扣蓝 */
隐身
SPECFUNC_KEEP_HIDE /*
人物隐身,怪物看不到自己,其它人物可以看到自己 */
瞬移追击 SPECFUNC_CATCH_OBJECT /*
追身攻击,可以瞬移到目标对象身边 */
探测
SPECFUNC_DETECT /*
可探测玩家和怪物位置 */
修炼技能
SPECFUNC_EXERCISESKILL /* 对于设置不可修炼的技能在释放技能时可增加技能点 */
隐藏提示
SPECFUNC_HIDENOTICE /* 隐藏人物上线、进图等提示信息 */
穿身
SPECFUNC_THROUHOBJ /* 穿人和怪,不能穿墙 */
地图全亮
SPECFUNC_FULLLIGHT /* 在黑暗环境中地图全亮 */
锁定攻模
SPECFUNC_LOCKATKMODE /* 锁定攻击模式,人物不能更改攻击模式(负增益) */
死亡不爆
SPECFUNC_DIENODROP /* 自己被击杀死亡什么都不爆 */
杀怪不爆
SPECFUNC_NO_HUNTDROP /* 杀死怪物不爆东西(相当于一个负增益) */
示例:
特殊功能:穿身|地图全亮
人物可以穿怪、穿人,在黑暗地图全亮
技能倍数
——————————————————————
代码:
ATTR_SKIEXPSCALE
说明:
人物释放技能修炼技能点所加倍数
示例:
对于可修炼的技能,正常情况人物释放一次技能加1点修炼点,
如果
“技能倍数:2″,则释放一次技能加2点修炼
经验倍数
——————————————————————
代码:
ATTR_HUNTEXPSCALE
说明:
人物杀死怪物所得经验倍数
示例:
怪物表中设置杀死半兽人可得100点经验,
如果
“经验倍数:2″,则杀死半兽人可得200点经验
注意:
属性表中默认对”经验倍数”设置的是倍数相乘,
如果”经验倍数:0.5″,相当于只能获得原先一半的经验
金币产出倍率
——————————————————————
代码:
ATTR_GOLDRATE
说明:
人物杀死怪物掉落金币数量倍率
示例:
“金币产出倍率:+20%”,表示金币数量在原有上多出20%
金币暴率
——————————————————————
代码:
ATTR_GOLDPRODUCE
说明:
增加或减少人物杀死怪物掉落金币几率
示例:
杀死一个怪物原本有50%几率掉落金币,
如果”金币暴率:+20%”,则有70%几率掉落金币
祝福油暴率
——————————————————————
代码:
ATTR_BLESSOILPRODUCE
说明:
增加或减少人物杀死怪物掉落祝福油几率
示例:
杀死一个怪物原本有5%几率掉落祝福油
如果”祝福油暴率:+20%”,则有25%几率掉落祝福油
中毒恢复
——————————————————————
代码:
ATTR_POISONRCV
说明:
属性功能开发中…
毒物躲避
——————————————————————
代码:
ATTR_POISONAVOID
说明:
属性功能开发中…
恶魔值
——————————————————————
代码:
ATTR_EVIL
说明:
自定义功能值,引擎本身不处理此属性值
示例:
底版数据表”Mir200/数据库/更多/属性/属性对技能增强.csv”应用此属性值,
可做为参考,GM也可将此属性作为其它用处.
战神值
——————————————————————
代码:
ATTR_WARGOD
说明:
自定义功能值,引擎本身不处理此属性值
示例:
底版数据表”Mir200/数据库/更多/属性/属性对技能增强.csv”应用此属性值,
可做为参考,GM也可将此属性作为其它用处.
灵魂值
——————————————————————
代码:
ATTR_SPIRIT
说明:
自定义功能值,引擎本身不处理此属性值
示例:
底版数据表”Mir200/数据库/更多/属性/属性对技能增强.csv”应用此属性值,
可做为参考,GM也可将此属性作为其它用处.
任务经验倍数
——————————————————————
代码:
ATTR_MSEXPRATE
说明:
完成有给经验的任务时,获得经验的倍数
示例:
某个任务完成给1000点经验,如果”任务经验倍数:2″,则获得2000点经验
注意:
属性表中默认对”任务经验倍数”设置的是倍数相乘,
如果”任务经验倍数:0.5″,相当于只能获得原先一半的经验
整体缩放
——————————————————————
代码:
ATTR_SIZESCALE
说明:
让人物或怪物变大或变小
示例:
整体缩放:1 ,默认值,大小不变
整体缩放:2.0, 人物变大之前的2倍
整体缩放:0.5, 人物缩小之前的2倍
Y轴缩放
——————————————————————
代码:
ATTR_SIZESCALE_Y
说明:
人物变高或高爱、怪物变高或高爱
示例:
Y轴缩放:1
,默认值,高度不变
Y轴缩放:2.0, 人物变高2倍
Y轴缩放:0.5, 人物变矮2倍
复活几率
——————————————————————
代码:
ATTR_RELIVEPROB
说明:
属性功能开发中…
复活血量
——————————————————————
代码:
ATTR_RELIVEHPPCT
说明:
属性功能开发中…
护身几率
——————————————————————
代码:
ATTR_MPPROTECTPROB
说明:
如果人物的”特殊功能”属性中没有”护身”,则判断此属性的几率是否产生护身.
产生护身,会接受到伤害的部分或全部值,转化成扣蓝量.
示例:
护身几率:20%,表示人物每次受到伤害,有20%几率产生护身,
至于转化多少伤害,看属性”护身转化量”的值.
护身转化量
——————————————————————
代码:
ATTR_MPPROTECTPCT
说明:
人物触发几率护身后,把百分之多少的伤害值转成扣蓝量,剩下未转化的继续扣红
示例:
“护身几率:20% 护身转化量:40%”
表示每次受到攻击,有20%几率产生护身,其中40%伤害值扣蓝,60%伤害值扣红
禁锢范围
——————————————————————
代码:
ATTR_SEALRANGE
说明:
将人物或怪物禁锢在一个范围内,单位:米
示例:
禁锢范围:4,表示人物被禁锢以自身为圆心,半径为4米的圆圈内
此功能正在开发中…
防禁锢
——————————————————————
代码:
ATTR_ANTISEAL
说明:
直接抵消属性”禁锢范围”
示例:
禁锢范围:4,防禁锢:4
,人物不会被禁锢
禁锢范围:4,防禁锢:3
,人物被禁锢在半径为1米的圆内
此功能正在开发中…
锁定操作
——————————————————————
代码:
ATTR_OPRLOCK
说明:
此功能正在开发中…
自动拾取范围
——————————————————————
代码:
ATTR_AUTOPICK_RANGE
说明:
以人物为中心的飞入式拾取范围,单位:米(人物高约1.75米,一般12米约为全屏范围)
一旦给人物或怪物加上”自动拾取范围”和”自动拾取周期”属性,就立即触发自动拾取功能
自动拾取周期
——————————————————————
代码:
ATTR_AUTOPICK_PERIOD
取值:
秒时间值
说明:
每隔多少秒进行一次飞入拾取,此时间值越小,拾取越快
自动拾取个数
——————————————————————
代码:
ATTR_AUTOPICK_MAXCOUNT
说明:
一次最多飞入多少个物品,如果此属性值为0,则飞入范围内所有可拾取的物品
开启项
——————————————————————
代码:
ATTR_ENABLES
说明:
最多控制16个开关,如下:
=================================
禁止复活
引擎预留项2
引擎预留项3
引擎预留项4
引擎预留项5
引擎预留项6
引擎预留项7
引擎预留项8
引擎预留项9
引擎预留项10
引擎预留项11
引擎预留项12
引擎预留项13
引擎预留项14
引擎预留项15
引擎预留项16
示例:
如果人物属性 “开启项:禁止复活”,则开启了禁止复活,人物不能复活
如果人物属性 “开启项:引擎预留项2|引擎预留项8″,则开启了预留项2和预留项8
吸血抵抗
——————————————————————
代码:
ATTR_SUCKHP_ANTI
说明:
直接抵消对方攻击吸血百分比
示例:
攻击方
“吸血比例:30%”,自己”吸血抵抗:25%”,则攻击方最终吸血比例为:5%
此属性一般写在怪物身上,用于生成那些难以被吸血的怪物
对怪吸血几率
——————————————————————
代码:
ATTR_SUCKHP_PROB_M
说明:
仅对怪物吸血几率
对怪吸血比例
——————————————————————
代码:
ATTR_SUCKHP_RATE_M
说明:
仅对怪物吸血百分比
受限标志
——————————————————————
代码:
ATTR_ACTCST
说明:
动作受限标志,取值可以是以下组合(用|组合)
中文取值
英文取值
说明
===================================================
不能走
ACT_CONSTRAINT_CANNOTWALK
不能跑 ACT_CONSTRAINT_CANNOTRUN
不能骑
ACT_CONSTRAINT_CANNOTRIDE
不能飞 ACT_CONSTRAINT_CANNOTFLY
不能转向
ACT_CONSTRAINT_CANNOTTURN
不能攻击 ACT_CONSTRAINT_CANNOTATTACK
示例:
如果给自己加属性 “受限标志:不能跑|不能转向”,则自己不能跑动、不能转向
霸凌伤害
——————————————————————
代码:
ATTR_BULLY
说明:
减去目标霸凌伤害值后的额外伤害
示例:
自己的霸凌伤害值为100,对方霸凌伤害值为20,则每次攻击对方时额外增加固定的80点伤害.
霸凌伤害为固定伤害值,不受自身属性和对方防御影响.
[属性表] – 属性表
属性表详解
表位置:
Mir200/Envir/Data/属性.csv [查看样表]
自定义属性:
1.
本引擎支持无限自定义属性,在属性表最后追加
的新属性即为自定义属性.
2.
自定义属性和系统属性一样可以任意设置和获取,也可以写在装备或BUFF上,也可以用<$ATTR(属性名)>获取等.
自定义属性规则:
1.
自定义属性必须从属性表最后一行追加,不能 穿插在系统属性数据里;
2.
自定义属性有需要关联系统属性的,可以在第I列“属性代码”中填写关联的系统属性代码,
填写时前面必须加个#号,例如想要某个自定义属性关联攻击上限,可以在第I列写:#ATTR_A1
注意:自定义属性只能关联系统属性,不能关联其他自定义属性
3. 系统属性的“属性代码”列已写好,不要随意更改,系统属性不能关联其他属性.
表字段详解:
A.
属性名称
—————————————————————
说明:
属性名称引擎固定,GM不可更改.
其它需要填写属性的表格或脚本命令参数,均填写此字段值
B.
显示名称
—————————————————————
说明:
属性在客户端的显示名称,GM可以修改,但不能包含 #@%等符号
注意:做脚本参数或其它表格中要写的属性名,不能写显示名,要写字段A中的属性名.
C.
显示层级
—————————————————————
填0或空,物品属性不显示,层级数字越大,属性值越向下显示
D.
显示顺序
—————————————————————
处于同一显示层级的属性,按顺序从小到大依次向下排显示
E. 图标
—————————————————————
设置属性图标素材,可以不填,填了就会在属性前面显示图标
填写格式:
素材名#帧数#每帧毫秒#混合模式#比例#颜色#X偏移#Y偏移#动画标志#绘制标志
其中:
素材名
:可以填写dev开发目录中的图片名,或素材库中的素材名
帧数
:单张图片填1,动图填总帧数
如果是开发目录下动图,则素材名填写动画序列帧第1帧文件名
每帧毫秒:动图填每帧动画播放时间,一般填90、120,越大播放越慢(单张图填0)
混合模式:参见标志大全:混合模式
比例
:图片或动画的整体缩放比例,0或1比列不变,小于1缩小(如0.5缩小一倍),大于1放大(如1.5放大)
颜色
:染色颜色,不填显示本色
(通常,以上格式不用全写,按需填写就可以,不填内容可写0或留空,但井号不能略)
填写示例1:(单张图)
======================
public/attricon/攻击图标.png
填写示例2:(动图)
======================
public/attricon/攻击图标动画.png#10#120
F. 显示颜色
—————————————————————
设置属性名在装备面板上的默认显示颜色
格式1:
颜色值
格式2:
颜色值A-颜色值B (AB组成渐变色) ;例如红黄渐变色可填写:
249-251
G.
默认值
——————————————————————
设置属性默认值,一般大部分属性默认值都是0,也可以根据需要修改成其它值
相乘的倍率值,比打开经验倍数等,默认值一般是1,表示倍率不变.
H. 属性点比
—————————————————————
设置多少属性值算一个属性点,一般属性都是1,百分比属性可以设置5到10,表示每加5%的属性值,算1个属性点
引擎中极品属性点数的判断,是根据属性点的,不是属性值,
比如:
攻击上限属性点比是1,那么多一点攻击,就是1个极品点
暴击几率的属性点是5,那么暴击几率4%算不了1点,5%算1点,9%也算1点,10%算2点
I. 属性代码
—————————————————————
引擎固定设置,开发人员一般不要更改
J. 上下限
—————————————————————
对于攻击、魔法、道术、防御、魔御这几个属性,需要设置其相应的上下限属性
例如: “攻击上限”的上下限值为”攻击下限”
“攻击下限”的下下限值为”攻击上限”
这样写,相当于把一对上下限属性关联起来,
引擎就知道这是一对上下限属性,在显示属性值的时候就会自动合并成 攻击:xx-xx
K. 容量属性
—————————————————————
设置属性的最大值属性,例如:HP属性的容量属性是HPCAP,即当前血量和最大血量的关系
L. 相乘属性
—————————————————————
设置属性和哪个属性的值相乘,一般攻击倍数属性需要设置
M. 属性标志
—————————————————————
取值是以下标志组合(用竖线|组合)
取值 说明
===========================
位组合值 /*
属性的值是由标志位组合的
*/
百分比值 /*
属性的值是百分比值
*/
整数值 /*
属性是整数值
*/
仅供设置
下限属性 /*
属性是上下限属性中的下限属性
*/
不显极品点 /*
不在装备面板上以绿字显示极品点烽
*/
倍数值 /*
显示属性时前显示乘号
*/
倍数相乘 /*
多个此属性的值合起来相乘,默认是相加
*/
秒时间值 /* 属性是以秒计的时间值,有此标志的属性,在解析属性值时后看时间后缀 */
不算整比 /*
使用ScaleAllAttr属性值不参与整体比例调整(仍保持不变)
*/
N. 特殊值
—————————————————————
属性特殊值类型,由引擎设置,开发人员一般不填
O. 评分权重
—————————————————————
说明:
设置1点属性值可占多少评分.
评分权重一般用在装备自动评分和人物战力上,因为装备上有属性,把每个属性乘以其评分即装备总评分.
评分权重值的大小,一般取决于版本中这个属性的稀有程度,越稀有评分可以越高.
取值:
空:
注意此项不填其说评分是1
0: 属性不参与评分
数字值:单项属性评分=属性值x数字值
P. 备注
—————————————————————
设置属性备注,引擎不使用此值,仅作为显示,客户端会在适当的地方显示所写备注.
[物品表] – 物品表
物品表详解
表位置:
“Mir200/Envir/Data/物品(StdItems).csv” [查看样表]
表功能:
设置游戏中所有物品和装备数据
字段速查:
A.物品IDX B.物品名称 C.名称颜色 D.附加名称 E.自定义分类 G.StdMode
H.物品标志 L.档次 M.重量#个数限制 N.持久 O.使用条件 P.物品图像及内外观素材
X.3D模型 Z.音效 AB.双击解包 AC.保留(Reserved) AD.属性 AE.备注
A. 物品IDX
——————————————————-
说明:
物品唯一编号,纯数字、不能重复,1-20亿
取值:
IDX从1开始编排,不能写0(0是系统预留,表示不存在的物品)
B. 物品名称
——————————————————-
说明:
物品唯一名称,最多63字节(约21个汉字)
爆率文件、脚本命令等中对物品操作需要引用此名字
取值:
物品名不能是纯数字
,不能重复,不能包含#,\,/,|等符号.
C. 名字颜色
——————————————————-
说明:
设置物品名称在包裹、装备栏、地面等名字的显示颜色
取值:
格式1:
颜色值(0-255)
格式2:
颜色A(0-255) 颜色B(0-255),AB两种颜色组合成渐变色
格式3:
#颜色变换ID
颜色变换ID取值于”Mir200/数据库/更多/杂项/颜色变化表.csv”
使用格式3可以实现装备名闪光变色效果, 注意格式3前面的#不能漏
D.附加名称
——————————————————-
说明:
设置物品简称和显示名称
取值:
格式1:
<简称/FCOLOR=颜色|ALIGN=对齐方式|FSIZE=字体大小>
格式2:
显示名称<简称/FCOLOR=颜色|ALIGN=对齐|FSIZE=字体大小>
例子:
<裁决/FCOLOR=250|ALIGN=右下对齐|FSIZE=2>
解释:物品名(字段B)为裁决之杖,当裁决之杖放在包裹或装备栏时,
名字显示为裁决,绿字,字体加大2,装备框靠右下对齐
E. 自定义大类
——————————————————-
说明:
设置物品自定义分类(大类)
取值:
自定义大类名#排序
如果不写排序,则默认按物品IDX值从小到大排序
例子:
装备类#1
F. 自定义小类
——————————————————-
说明:
设置物品自定义分类(小类)
取值:
自定义小类名#排序
例子:
武器#1
G.
StdMode
——————————————————-
说明:
设置物品的StdMode值
取值:
格式1:
标准传奇数据库中的StdMode值
格式2:
自定义装备穿戴位置:stdmode=200-242(穿戴位置也是200-242,共43个自定义位置)
自定义外观装备: stdmode=300-304(共5个自定义外观)
H. Shape
——————————————————-
说明:
设置物品的Shape值
取值:
如果StdMode=5(武器),则shape=1表示武器不分男女
shape=0或空需要1200张男女武器素材
I. Looks
——————————————————-
格式1:标准传奇数据库Looks值
格式2:物品穿戴标志#穿戴位置
J. AniCount
——————————————————-
取值:
StdMode填31时,AniCount填写数字(一般是IDX值),
双击使用物器时调用QF
[@StdModeFuncXX]段,XX就是AniCount值
特别提示:
在[@StdModeFuncXX]中,可用return 0或stop命令阻止物品被使用
return
0会立即中止执行并告诉引擎当前这个物品没有达到使用条件,引擎会将此物品留在包裹而不扣除;
stop会标记物品在使用后不删除,stop后面的脚本仍执行
K. Overlap
——————————————————-
1. 对于非装备类物品:写1允许叠加
注意:物品重叠功能不能使用在拥有持久、属性、品质、纯度等物品上
2.
对于装备类物品:①穿戴限制#②生肖盒位置#③装备盒位置
①穿戴限制:
0,1 只允许穿身上
2: 只允许生肖盒
3: 可以穿身上+生肖盒
4: 只允装备盒
5: 可以穿身上+装备盒
6: 生肖盒+装备盒
7:
身上+生肖盒+装备盒
②生肖盒位置:0不能放,-1任意位置(不填默认),1-12,穿戴到生肖盒12个位置中的某个
第1个位置对应穿戴位置”生肖盒1″的UI,第2对应”生肖盒2″,…
以此类推
③装备盒位置:0不能放,-1任意位置(不填默认),1-43,穿戴到装备盒中43个位置总的某个
第1个位置对应穿戴位置”GM自定义1″的UI,第2对应”GM自定义2″,…
以此类推
填写示例:7#-1#-1
解释:这件装备可以放在身上+生肖盒+装备盒
,若放生肖盒中,可放在任意位置,若放装备盒中,可在任意位置.
L.
物品标志
——————————————————-
设置物品各项特性组合,
用|号拼接多个物品标志,取值如下:
取值
说明
================================================
选中时动画 /*
选中时才显示动画 */
单一持久值 /*
物品为单一持久值,例如加技能或人经验的物品 */
可叠加
/* 多个物品可以叠在一个格子里,durcap表示可叠加的最大数量 */
永不爆出
/* 这个物品被杀后永不暴出 */
无磨损
/* 无磨损(不减持久) */
不可卸下
/* 不可卸下,如:头发,但可替换 */
不可选中
/* 不可在装备界面上选中,如:头发 */
不可修理
/* 物品不可修理 */
持久耗完消失 /* 物品持久0后消失
*/
不可直接使用 /*
不可直接使用(任务道具类物品) */
神秘解读
/* 物品可被神秘解读(如:神秘头盔) */
显示持久
/* 显示物品的持久数字 */
不显示最大持久 /*
显示物品的持久数字,不显示容量 */
提示持久减少 /*
提示持久减少 */
安全区禁用 /*
不能在安全区内使用 */
初始0持久 /*
初始为0持久(以般持久表示容量的物品设置此字段) */
满持久使用 /*
物品满持久才可用 */
百分比持久显示 /*
持久以百分比形式显示 */
无战斗磨损 /* 无战斗磨损
*/
截断持久值 /*
显示截断的持久(如持久在4.5时,显示持久4) */
交易表
/* 参照交易表交易(不能扔,必须在交易表,摆摊交易强制最低价) */
用后不删
/* 在物品使用触发中手动确定删除(物品在被使用后不会自动删除或扣减持久) */
不外显
/* 不外显 */
触发脚本
/* 双击使用触发脚本(stdmode=31) */
忽略包裹图像偏移 /* 忽略包裹图像偏移(如果物品在包裹中位置偏离太远,则城要此标志)
*/
内挂拾取
/* 内挂拾取 */
杀死必爆
/* 被杀死后总是爆出 */
记录掉落来源 /*
标名记录此物品的掉落来源(注意:不要对所有物品设置此标志,仅针对稀有高级装备设置此项) */
流通提示
/* 物品在交易、扔下、拾取时全区提示 */
爆率不变
/* 爆率不随人物爆率高低变化 */
绑定
/* 物品生成即绑定(如果物品是货币,则表示绑定货币) */
不吸入拾取
/* 物品不被吸入拾取
*/
地面显名 /* 物品在地面总是显名字,且不被人物遮挡 */
隐藏武器内观 /* 穿戴此物品隐藏武器内观
*/
隐藏衣服内观 /* 穿戴此物品隐藏衣服内观 */
隐藏头盔内观
隐藏头发内观
隐藏头部内观
隐藏裸模内观
隐藏翅膀内观
隐藏披风内观
隐藏武器外观
隐藏衣服外观
隐藏头盔外观
隐藏头发外观
隐藏头部外观
隐藏翅膀外观
隐藏披风外观
死后消失
/* 死亡后穿戴物品小时 */
禁止拿下
/* 穿戴此物品后不能被取下 */
隐藏内观 /*
穿戴此物品不在内观显示 */
套装赖子
/*
可以充当任意1件套装装备 */
赖子装备规则:
1.
最多使用3个赖子
2. 赖子按套装表顺序依次检验能否凑齐套装
M. 档次
——————————————————-
说明:
自定义装备档次数值,用来表示物品的高低贵贱,
可以通过此值来过滤物品等药水、材料等非装备类物品,档次值可以不写或填0
取值:
a档次值#b地面消失时间
a:档次值从0到255,最高255档
b:地图消失时间是物品爆出后在地面留存多长时间后消失, 不写默认是3分钟,写的话写xx分钟、xx小时
消失时间设置,可查看
地面物品消失时间设置方法
例子:
档次值商店装写1 ,沃玛装写2,祖玛装写3 ,圣战装写4
N. 重量
——————————————————-
说明:
设置物品的重量值和最大背包存放数量.
注意:重量值会占据背包负重、装备负重
取值:
重量值#最大背包存放数量(计快捷栏)
例子1:
30
;物品占30重量,最大背包存放数量没填,相当于不限制数量
30#1 ;物品占30重量,最大背包存放数量为1,表明背包中只能存在一个这样的物品
30#2 ;
物品占30重量,最大背包存放数量为2,背包中无法在放入第3个这样的物品
最大背包存放数量只在物品入背包时判断,物品放仓库等不作判断
注意:
如果设置了最大背包存放数量,则会影响到所有物品入背包的情况,
这包括拾取、脚本给、从仓库取等,在使用此功能时需谨慎,以免出现不给物品的情况
O.
持久
——————————————————-
说明:
设置物品持久值
取值:
格式1:
最大持久值#磨损速度(=0不磨损 等于1正常磨损速度 大于1.0加快磨损,
小于1.0减慢磨损)
例:
35000,表示装备有35点持久,正常磨损速度
35000#0.5,表示装备有35点持久,并减慢1倍磨损速度
35000#2.0,表示装备有35点持久,并加快1倍磨损速度
格式2:
自定义持久字符:最大持久值#磨损速度(=0不磨损
大于1.0加快磨损, 小于1.0减慢磨损)
例:耐久度:25000#0.05,这样写在查看装备属性面板时,持久字样换成自定义的耐久度,0.05倍磨损速度
格式3:
自定义持久字符:最大持久值#磨损速度#每次穿戴减持久
例:12000#0.7#1000,表示装备总共有12点持久,0.75倍磨损速度,每次穿戴减少1点持久
格式4: 经验:值
(聚灵珠功能填写)
持久字符可以不写,不写系统配置,写了就显示你写的字符
格式5:总恢复血量#每秒恢复血量
(魔血石功能填写,按照传奇写法,实际恢复血量值=填写值*10)
例:魔血石(stdmode=7
shape=3)
持久写1000#10,表示总共恢复10000血量,每秒恢复100血量
格式6:
对于叠加物品(StdMode写可叠加或Overlap=1),持久值是最多可以叠加的个数
P.
使用条件
——————————————————-
说明:
设置物品可以使用或穿戴的限制条件
取值:
空:无限制条件
格式1:
等级:值#性别:男或女#职业:战士#需要任意属性1:值1#需要任意属性2:值2#转生等级:x#元宝:xx#金币xx
不用写全,需要什么条件写什么条件,可以和格式2连接
格式2:
条件说明(变量名1) 比较符
值1#条件说明(变量名2) 比较符
值2…
最多支持4个变量,且可以和格式1连接
例子:
等级:35 ;此物品35级以上才可能使用
等级:1-35 ;此物品35级以下才可能使用
等级:35#攻击上限:46 ;此物品需要35级以上并且攻击力达到46才可以使用或装备
会员等级(U1)>2#等级:35#攻击速度:3 ;此物品需要变量U1大于2且等级35以上,攻击速度3以上才可使用
Q. 物品图像
——————————————————-
说明:
物品图像是物品在背包、仓库、装备栏等中的显示,不填或填错将不显示.
如果物品图像在格子中的位置不够完美,可以在编辑器中微调图像偏移.
取值:
格式1:
图像素材名
格式2:
图像素材名#背包比例#地面比例
格式3:
图像素材名#背包比例#地面比例#X偏移 Y偏移#锐利缩放(0否 1是)#取帧范围(开始帧+张数)#染色颜色
例子1:
图像名#0#0#0
0#0#4+8#0,
解释:设置物品图像为“图像名”,显示比例、偏移和锐利默认,
然后绘制“图像名”动画时,从第5帧开始(从0开始),绘制8张
例子2:
图像名#0.8#0.35####(255:0:0)
解释:
在背包中缩小0.8,在地面缩小0.35,染色颜色为(255:0:0) 红色
R. 物品特效
——————————————————-
说明:
设置物品在包裹格子中的层叠特效
取值:
下面的特效ID填写特效表”Mir200/数据库/更多/动作与特效/特效.csv”中的ID或名称
格式1:背包、装备栏、地面统一设置
==============================================
写法:特效ID1 特效ID2 特效ID3 0 特效ID4
特效ID5 特效ID6 特效ID7 特效ID8
0之前的特效绘制在物品后面,0之后的特效绘制在物品前面,0可以在任何位置
物品前后层叠特效最多8个
格式2:背包、装备栏、地面分开设置
===============================================
背包特效1 背包特效2 … (装备栏特效1 装备栏特效2 …) (地面特效1 地面特效2
…)
如果要调整特效偏移和比例,在特效表里调这些参数
如果同一个特效需要应用到多个不同的比例,可复制成多个特效然后各改各的参数
注意:写在表中的特效默认是开启的,若默认屏蔽,则需要在特效名后面加(0),
如:特效1 0 特效2(0)
,表示特效2默认是屏蔽不显示,后面可以通过EnableIitemBagEffect命令来开启或关闭
S. 内观图像
——————————————————-
说明:
设置装备内观图.
注意:只有武器、衣服、头盔等有外观的装备才有内观图像,
其它物品或装备不用填写.
格式:
图像素材名#大小比例(选填)
取值:
大小比例:有些武器、头盔等素材,和裸模比例可能不太搭配(武器过大等),
这时就需要填写装备内观比例,以完美适应裸模.
另外:装备内观偏移可在编辑中调整.
T. 内观特效
——————————————————-
写法同物品特效
U. 外观动画
——————————————————-
格式1:
动画素材名#深偏#高偏#染色
格式2(男女武器):
男动画素材名#深偏#高偏#染色|女动画素材名#深偏#高偏#染色
深偏=深度偏移,当和3D人物或怪物遮挡不正确时,可微调此值(+4,+8,+16,-4,-8,-16…)得到正确遮挡效果(选填)
高偏=中心点高度偏移(1点等于偏移8个像素)
(选填)
染色=染色颜色(选填)
注意:
只有武器、衣服和自定义外观(StdMode=300-304)的装备才有外观动画,其它物品不填
V. 外观特效
——————————————————-
写法同物品特效
W. 地面特效
——————————————————-
可设置物品地面光柱
格式1:特效ID#缩放比例
X. 旋转
——————————————————-
设置以下值之一:
====================
AXIS_X /* 绕X轴旋转
*/
AXIS_Y /* 绕Y轴旋转 */
AXIS_Z /* 绕Z轴旋转
*/
不填 /* 不旋转 */
设置物品选中或鼠标指上时,进行旋转展示
填写了3D模型的物品,可以指定XYZ三轴旋转,2D素材物品只有一种旋转方式
Y. 3D模型
——————————————————-
格式:物品模型#外观模型#外观比例
Z.
3D姿态
——————————————————-
说明:
设置3D物品在装备格子中显示的姿态数据(模型照相)
取值:
填写编辑器中进行3D模型照相时输出的参数
AA. 音效
——————————————————-
说明:
设置物品各种音效素材名
取值:
常规音效名#点击音效名#挥舞音效名#击中音效名#使用音效名
(以上某种音效没有可不写留空,但连接符#不能少)
常规音效名:默认的物品使用声音资源名
点击音效名:在包裹或装备栏等格子中点击物品时的声音资源名
挥舞音效名:物品作为武器装备,使用普通攻击是的挥空声音资源名
击中音效名:物品作为武器装备,击中目标的声音资源名
使用音效名:双击使用物品时的声音资源名
AB.
商店价格
——————————————————-
说明:
物品卖给商店,或从商店购买时的金币价格
取值:
整数金币值,1-21亿
AC.
双击解包
—————————————————————
说明:
设置物品被双击使用后可解包成什么其它物品
取值:
格式1:
物品名称x个数 (设置物品双击后解出什么物品)
格式2:
捆:物品名称 (设置物品双击后能把包裹中的什么物品捆成一捆)
(注意:捆字和冒号(英文状态)不能漏,如果漏了就是格式1)
例子:
金创药(小量)x6 ;表示双击后获得6个金创药(小量)
捆:强效太阳水 ;表示双击后把包裹中6个强效太阳水捆成1个强效太阳水包
AD. 保留
—————————————————————
说明:
设置货币分类和扣费顺序
设置物品使用时执行的脚本,不用写QF,直接执行所写脚本
取值:
格式1:
货币类物品(StdMode=41)
=========================================
写法:货币分类(数字)#优先扣除顺序
例:22#3 22#1 22#2
解释:这3个货币是一个类别的,后面的1 2 3
代表扣除的顺序,数字越小越优先扣除
格式2:
单一脚本命令
=========================================
写法:可写单独一条任意脚本命令及附带参数
例:give 金币
1000
解释:双击这个物品使用后执行所写脚本命令,效果是增加1000金币
格式3: 设置执行脚本文件
=========================================
写法:以感叹号开头的脚本文件名
例:!物品使用/镶嵌宝石
解释:双击使用物品后,执行”Mir200/Envir/Market_Def”目录下的”物品使用/镶嵌宝石.txt”脚本文件
格式4: 设置使用穿戴脱下脚本
=========================================
写法:使用脚本#穿上脚本#脱下脚本
例:#!事件触发\装备穿戴\玄天
@wear#!事件触发\装备穿戴\玄天
@unwear
解释:第一个#前面空,表示没有使用脚本,装备一般不指定使用脚本
第二段是穿上触发脚本,调用”Mir200/Envir/Market_Def/事件触发/装备穿戴/玄天.txt中的[@wear]
第三段是脱下触发脚本,调用”Mir200/Envir/Market_Def/事件触发/装备穿戴/玄天.txt中的[@unwear]
AE.属性
—————————————————————
说明:
设置药品类物品加血量、装备类物品属性和BUFF等
取值:
格式1:
普通药品(加血加蓝)
=========================================
写法:HP:+总血量#加血间隔(毫秒)#加血次数
例:HP:+20#240#4
解释:
每240毫秒加一次血,共加4次,总共加20点HP,那么一次加5点HP.
格式2:
瞬药
=========================================
写法:HP:血量 MP:蓝量#
CD时间(毫秒)
例:HP:100 MP:100#600
解释:
喝下后立即增加100点血量和1蓝量,600毫秒CD时间
格式3:
BUFF类药或卷
=========================================
写法:属性名:值#持续时间#BUFF名称#BUFF来源#BUFF标志
例:
攻击上限:+15#25000 (解释:喝下后增加15点攻击力,持续25秒)
移动速度:+2#25000#拖影#BUFF_SRC_UNIQUE
(解释:加2点移速度(带残影),持续25秒)
人物经验倍数:+2#1小时#2倍经验#BUFF_SRC_ITEM#摆摊不计时|时间延长
(解释:2倍经验卷)
格式4: 装备属性
=========================================
写法:属性名1:值1 属性名2:值2 …(最多32条属性,每条以空格隔开)
例:
攻击:0-4 准确:+2 魔法躲避:20% …(攻击:0-1算2条属性)
例: 攻击:4-12
HP容量:+200(暗属性) … (最多16条暗属性+32条普通属性)
例: 攻击:12-26 准确:+7 攻击打断:+12%(封印)
(设置普通属性封印)
关于封印和暗属性功能,请查看:装备封印和暗属性
格式5:
装备BUFF
=========================================
写法:属性名1:值1… BUFF:名称1 名称2… (BUFF名称为表中的名称,最多写4个BUFF)
例:
攻击:0-10 魔法:0-10 BUFF:拖影+3 魔法盾
提醒:如果给装备设置了某条属性,但在游戏里却看不到这条属性,
请检查该属性在属性表中的显示层级是否为0
AF.备注
—————————————————————
说明:
设置装备自定义备注,所写内容显示在装备属性面板,支持富文本.
富文本可以插入图片、高亮文字,任意调整图像和文字的位置,
具体写法格式查看:
[富文本格式]
格式1:
默认备注
===========================================
写法:
自定义文本1行\自定义文本2行\自定义文本3行\… (行数不限)
例子:
这是<第1行/FCOLOR=250>备注文本\这是<第2行/FCOLOR=241>备注文本\这是第3行备注文本
效果:
格式2:
顶部和底部备注
=================================
格式:隐藏=xxx 顶部=xxx 底部=xxx
其中:
隐藏=属性部位#属性部位#…
(设置不显示哪些装备属性部位,最多32个)
顶部=富文本第1行\富文本第2行\富文本第3行\… (行数不限)
底部=富文本第1行\富文本第2行\富文本第3行\… (行数不限)
注意:
以上标签中的等号要紧临标签,不能有空格,否则不被识别
例子:
========================
隐藏=17#21底部=底部<第1行/FCOLOR=250>备注\底部<第2行/FCOLOR=149>备注
解释:隐藏引擎自带的默认描述(17)和评分显示(21),没有顶部备注(不写),
备注写了2行,用了富文本颜色,实际中可插入图像等富文本标签,做出更复杂漂亮的备注.
效果:
隐藏=17#21底部=底部<第1行/FCOLOR=250>备注\底部<第2行/FCOLOR=149>备注\</ITM=盟重传送石|s=2.0>
效果:
格式3:
调用指定悬浮框UI文件
===========================================
格式:
悬浮框=UI文件名
备注=自定义文本1行\自定义文本2行\自定义文本3行\…
注意:
使用第3种格式,标签“悬浮框=”必须写在最前面
例子:
=============================
悬浮框=装备悬浮框/itemattrs1 备注=
自定义文本1行\自定义文本2行\自定义文本3行
说明:装备悬浮框/itemattrs1位于“Mir200/client_data/ui/desktop/装备悬浮框”目录中的itemattrs1.layer文件
[物品表] – 套装表
套装表详解
位置:
“Mir200/Envir/Data/套装.csv” [查看样表]
功能:
设置哪些装备组合形成套装,以及套装所附加的属性
A. 套装名称
——————————————————-
说明:
设置套装唯一名称,不能重复
取值:
套装名称总共64字节,最多约30个汉字
B. 显示名称
——————————————————-
说明:
设置套装对外显示名称,可以重复
取值:
套装显示名称总共64字节,最多约30个汉字
C. 套装编号
——————————————————-
说明:
设置套装唯一ID,不能写0,不能重复.
取值:
不为0的任意数字值
D. 套装组
——————————————————-
说明:
设置套装组号,相同组号下的多个套装只显示最后一套装备组成,
且后面的套装数据盖过前面的,套装生效属性不累加.
取值:
数字值,0表示不设置套装组
E.
装备物品
——————————————————-
说明:
设置组成套装的所需装备
取值:
装备名称1 装备名称2 装备名称3
…
(装备名来自物品表,每个装备名以空格分隔)
F. 套装属性
——————————————————-
说明:
设置套装属性
取值:
属性名1:值1
属性名2:值2 属性名3:值3 …
(最多16条属性,每条空格隔开)
G. 套装标志
——————————————————-
说明:
设置套装各种特性组合
取值:
中文值
说明
===================================================
全局显示
/* 当套装在一个装备上生效时,看其他任意装备也显示套装属性 */
所有属性满足 /* 对于套装表中设置的生效条件,需要每件都满足才能生效 */
总和属性满足 /* 对于套装表中设置的生效条件,需要总和加起来满足才能生效
*/
系统备注中不显 /* 在系统备注(悬浮框中棕色自动生成备注)中不显示套装的简单组成描述 */
生效不显套装名 /* 在装备悬浮框的套装生效部分,不显示套装名称 */
生效不显属性 /* 在装备悬浮框的套装生效部分,不显示套装属性 */
生效不显备注 /* 在装备悬浮框的套装生效部分,不显示套装备注 */
不显组成 /*
在装备悬浮框的套装组成部分,不显示套装的整个组成内容(默认显示套装组成装备) */
组成不显套装名 /* 在装备悬浮框的套装组成部分,不显示套装名(默认显示套装名) */
组成不显装备数 /* 在装备悬浮框的套装组成部分,不显示每件装备后面的数字(默认显示装备数) */
组成显备注
/* 在装备悬浮框的套装组成部分,显示自定义套装备注(默认不显示,要显示需加此标志) */
显示组合描述
/* 在装备悬浮框中显示装备所有可组成套装的文字描述
*/
H.
生效装备数
——————————————————-
说明:
设置在总需装备中,有几件装备就能生效.
取值:
不填,表示所有装备凑齐才生效。
注意:如果设置相同ID来控制部分装备凑齐生效时,最后一个全装备生效要写出最大装备数,不能空.
I.
极品属性个数
——————————————————-
说明:
设置组成套装的装备中,需要有多少个极品属性
取值:
0不填:无要求
其它数字值
J.
极品属性点数
——————————————————-
说明:
设置组成套装的装备中,需要至少达到多点点极品属性值
取值:
0不填:无要求
其它数字值
K.
需要属性
——————————————————-
说明:
设置组成套装穿戴位置处装备所需的最小属性值
取值:
穿戴位置1 属性1 值1|穿戴位置2 属性2 值2|…
(最多可以指定所有穿戴位置)
L. 适用职业
——————————————————-
说明:
设置套装对哪一个职业生效
取值:
不填:
套装设置对所有职业生效
职业取值:
战士
法师
道士
弓箭手
刺客
武僧
M.
套装备注
——————————————————-
说明:
设置套装信息显示在装备悬浮框上的显示的自定义备注信息.
在装备悬浮框中的套装信息显示分两块:
第1块:套装生效
———————-
套装生效时的内容,此块内容只有在套装生效时显示,不生效时不显示.
显示内容为:
套装名称
套装属性
套装备注
可由下套装标志分别控制以上三部分是否显示:
生效不显套装名
生效不显属性
生效不显备注
对应UI:
对应悬浮框配置文件(itemattrs.layer)中的part=18,
如果希望当指向装备时,总是显示套装信息并有大量自定义内容,可以关闭套装生效内容,以免和套装组成内容重复。
关闭方法:删除悬浮框配置文件(itemattrs.layer)中part=18的内容.
第2块:套装组成
———————–
显示套装组成内容,此块内容总是跟随装备显示(即使套装不生效),用来显示套装由哪些装备组成,
以及这些装备目前的穿戴状态.
显示内容为:
套装名称
套装组成装备及件数
套装备注
可由下套装标志分别控制以上三部分是否显示:
不显组成 /* 在装备悬浮框的套装组成部分,不显示套装的整个组成内容(默认显示套装组成装备) */
组成不显套装名 /* 在装备悬浮框的套装组成部分,不显示套装名(默认显示套装名) */
组成不显装备数 /* 在装备悬浮框的套装组成部分,不显示每件装备后面的数字(默认显示装备数) */
组成显备注 /* 在装备悬浮框的套装组成部分,显示自定义套装备注(默认不显示,要显示需加此标志) */
UI:
对应悬浮框配置文件(itemattrs.layer)中的part=28
示例数据:
1.同一套装多装备生效配置(设置相同套装组)
————————————————-
沃玛套(战)2件,,,1,幽灵项链
阎罗手套x2 龙之戒指x2,HP容量:+100 攻击上限:+1 伤害减免:+1%
破防几率:+1%,,2,,,,,
沃玛套(战)3件,,,1,幽灵项链 阎罗手套x2 龙之戒指x2,HP容量:+150 攻击上限:+1
伤害减免:+1% 破防几率:+1%,,3,,,,,
沃玛套(战)4件,,,1,幽灵项链 阎罗手套x2
龙之戒指x2,HP容量:+150 攻击上限:+2 伤害减免:+2%
破防几率:+2%,,4,,,,,
沃玛套(战)万能1件,,,1,幽灵项链,HP容量:+150 攻击上限:+3 伤害减免:+3%
破防几率:+3%,,1,,,,,
沃玛套(战)全,,,1,幽灵项链 阎罗手套x2 龙之戒指x2,HP容量:+150 攻击上限:+3
伤害减免:+3% 破防几率:+3%,,5,,,,,
注意:写法顺序很重要,后面的覆盖前面的,所以,越难凑齐的套装配置越放在后面
[物品表] – 全身强化触发
全身强化触发
表位置:
“Mir200/Envir/Data/SK扩展表格/全身强化触发.csv” [查看样表]
表功能:
设置全身装备都强化达到某一等级后触发的附加属性和BUFF
至于全身装备包含哪些部位,请查看功能示例:设置全身强化附加
A. 强化次数
——————————————————-
说明:
设置检查全身装备都强化到哪个次数
取值:
次数值
B. 触发属性
——————————————————-
说明:
设置全身装备强化次数满足后,附加给人物的属性
取值:
属性名1:值1
属性名2:值2 … (最多8条属性,每条空格隔开)
C – K. 触发BUFF
——————————————————-
BUFF名称:填写BUFF登记表中的BUFF名称
buff几率:产生BUFF的百分比几率,可以写0.1%
设置率%:不填或写0
抗性属性:抵抗这个BUFF产生几率的属性,填空或0表示没有
buff属性:属性名1:值1 … (最多可以写4条属性,每条属性以空格隔开)
buff作用间歇:如果是定期发作的BUFF(如红毒每秒扣一次血),这里写发作周期时间,毫秒
buff显示间歇:火炙、冰冻、电击这三种BUFF需要设置显示间隔,取值一般在30-120之间
buff时间:BUFF持续时间,毫秒
buff标志:查看标志大全BUFF标志
[物品表] – 全身升星触发
全身升星触发
表位置:
“Mir200/Envir/Data/SK扩展表格/全身升星触发.csv” [查看样表]
表功能:
设置全身装备都升到几星后触发的附加属性和BUFF
至于全身装备包含哪些部位,请查看功能示例:设置全身强化附加
A. 升星次数
——————————————————-
说明:
设置检查全身装备都升星到哪个次数
取值:
次数值
B. 触发属性
——————————————————-
说明:
设置全身装备升星次数满足后,附加给人物的属性
取值:
属性名1:值1 属性名2:值2 … (最多8条属性,每条空格隔开)
C – K. 触发BUFF
——————————————————-
BUFF名称:填写BUFF登记表中的BUFF名称
buff几率:产生BUFF的百分比几率,可以写0.1%
设置率%:不填或写0
抗性属性:抵抗这个BUFF产生几率的属性,填空或0表示没有
buff属性:属性名1:值1 … (最多可以写4条属性,每条属性以空格隔开)
buff作用间歇:如果是定期发作的BUFF(如红毒每秒扣一次血),这里写发作周期时间,毫秒
buff显示间歇:火炙、冰冻、电击这三种BUFF需要设置显示间隔,取值一般在30-120之间
buff时间:BUFF持续时间,毫秒
buff标志:查看标志大全BUFF标志
[物品表] – 套装buff
套装BUFF表详解
表位置:
Mir200/Envir/Data/SK扩展表格/套装buff.csv [查看样表]
表功能:
人物触发套装后,给人物在此表中设置的BUFF,套装破除BUFF自动撤回.
A. 套装名称
——————————————————-
说明:
设置哪个套装要附加BUFF
取值:
套装表”Mir200/数据库/更多/物品/套装.csv”中的套装名称
B. 保留
——————————————————-
说明:
不填
C – K. 套装BUFF
——————————————————-
BUFF名称:填写BUFF登记表中的BUFF名称
buff几率:产生BUFF的百分比几率,可以写0.1%
设置率%:不填或写0
抗性属性:抵抗这个BUFF产生几率的属性,填空或0表示没有
buff属性:属性名1:值1 … (最多可以写4条属性,每条属性以空格隔开)
buff作用间歇:如果是定期发作的BUFF(如红毒每秒扣一次血),这里写发作周期时间,毫秒
buff显示间歇:火炙、冰冻、电击这三种BUFF需要设置显示间隔,取值一般在30-120之间
buff时间:BUFF持续时间,毫秒
buff标志:查看标志大全BUFF标志
[物品表] – 套装对怪伤害
套装对怪物伤害
表位置:
“Mir200/Envir/Data/SK扩展表格/套装对怪伤害.csv” [查看样表]
表功能:
设置套装对指定怪物伤害的增强或减弱
A. 套装名称
——————————————————-
说明:
设置哪个套装要附加BUFF
取值:
套装表”Mir200/数据库/更多/物品/套装.csv”中的套装名称
B. 怪物名称
——————————————————-
说明:
设置套装生效后,会对哪个怪物的伤害增强或减弱
取值:
怪物表”Mir200/数据库/怪物(Monster).csv”中的怪物名称(注意不是显示名)
C. 技能名称
——————————————————-
说明:
设置使用哪个技能对怪物伤害增强或减弱
取值:
不填:所有技能
技能名:”Mir200/数据库/技能(Magic).csv”中的技能名
D. 备注
——————————————————-
说明:
设置套装对怪物伤害增强或减弱的备注说明
取值:
最多30个汉字
E. 标志
——————————————————-
说明:
设置套装对怪物伤害增强或减弱的特性标志
取值:
英文取值 说明
================================================
不填 /*
无特殊特性 */
SUITMONDMG_FLAG_DONOTSHOW
/* 不在装备面板显示套装对怪物伤害说明
*/
F – O. 破坏力
——————————————————-
设置套装生效对指定怪物攻击造成各项伤害参数的加减,一般大于0是加强伤害,小于0是减少伤害,不写用原值
F.破坏力类型:
占位用,不填(破坏力类型来自释放技能中的类型)
G.系别:
占位用,不填(系别来自释放技能中的系别,火系、冰系、雷系…)
H.系别加成: 设置技能元素系别伤害的百分比加成,正值强加,负值减少
I.破坏力标志: 取值见标志大全: 破坏力标志
如果在此设置了某个破坏力标志,相当于增加一项原本没有的标志
例如:本来技能对怪物不破防,增加DAMAGE_FLAG_IGNOREPHYDEFENSE后,
在本套装生效后对此怪物的攻击就破防了
J.无视抵御几率:
增加或减少套装生效后对此怪物破防的几率
K.受击动作: 设置本套装生效后攻击到指定怪物后怪物的受击动作,不填是原动作
L.攻断几率:
设置技能攻击目标能打断目标正在起手动作的百分比几率
M.全屏特效: 不填
N.全屏特效概率: 不填
O.延迟破坏时间: 设置技能攻击在发来后多久再造成伤害,一般不填
P.特殊破坏: 取值同技能特殊破坏,点此查看
Q.特破概率:
设置技能产生特殊破坏的几率,正值增加几率,负值减少
R.特破动作:
设置技能产生特殊破坏后,受到特殊破坏的目标做出什么动作
S.特破值1: 取值同技能特破值,点此查看
T.特破值2
U.硬直时间: 设置套装生效对怪物攻击造成的硬直时间值,毫秒
V.破坏属性: 设置套装生效对怪物攻击进行哪个属性的破坏,一般写HP.
此处可不写,使用原破坏属性
W.破坏几率:
设置套装生效对怪物攻击产生破坏的几率,正值增加几率,负值减少,不写原几率
X.破坏值:
设置套装生效对怪物攻击的基础伤害值,正值增加,负值减少,不写原值
Y.准确:
设置套装生效对怪物攻击会给人物加多上准确值,正值增加,负值减少,不写原值
Z.击中穿戴: 设置套装生效对怪物攻击会给怪物穿戴什么装备
AA.穿戴概率:
设置套装生效对怪物攻击造成穿戴几率,正值增加,负值减少,不写原值
AB.渐进周期: 逐渐破坏间隔时间,毫秒,正值增加,负值减少,不写原值
AC.渐进计数: 逐渐破坏总次数,正值增加,负值减少,不写原值
AD.间歇几率:
AE.吸血比例: 攻击到目标后,吸伤害值的百分之多少血量,正值增加,负值减少,不写原值
AF.吸血概率: 攻击到目标后,有百分之多少几率触发吸血,正值增加,负值减少,不写原值
AG.吸蓝比例: 攻击到目标后,吸伤害值的百分之多少蓝量,正值增加,负值减少,不写原值
AH.吸蓝概率: 攻击到目标后,有百分之多少几率触发吸蓝,正值增加,负值减少,不写原值
AI – BZ 4个额外标志
AI – AS
第1个技能BUFF
AT – BD 第2个技能BUFF
BE – BO 第3个技能BUFF
BP – BZ 第4个技能BUFF
——————————————————————
如果写了新的BUFF参数,则套装生效对指定怪物攻击会新增一个BUFF,
如果所写BUFF名称在原有技能BUFF里,则加强或减弱这个BUFF的各项参数
BUFF名称:填写BUFF登记表中的BUFF名称
buff几率:产生BUFF的百分比几率,可以写0.1%
设置率%:填0
抗性属性:抵抗这个BUFF产生几率的属性,填空或0表示没有
buff源:查看标志大全Buff来源
buff属性:属性名1:值1 … (最多可以写4条属性,每条属性以空格隔开)
buff作用间歇:如果是定期发作的BUFF(如红毒每秒扣一次血),这里写发作周期时间,毫秒
buff显示间歇:火炙、冰冻、电击这三种BUFF需要设置显示间隔,取值一般在30-120之间
buff时间:BUFF持续时间,毫秒
间歇系数:1点技能伤害增加多少毫秒的间歇时间,写负数减少作用间歇,相当于加快BUFF作用效果
存续系数:1点技能伤害增加多少毫秒的BUFF时间
属性系数:1点技能伤害增加多少BUFF属性值
buff标志:查看标志大全BUFF标志
[物品表] – 套装对技能增强
套装对技能增加
表位置:
“Mir200/Envir/Data/SK扩展表格/套装对技能增强.csv”
[查看样表]
表功能:
设置套装成型后对指定技能的增强或减弱,或变换技能形态(素材).
A. 套装名称
——————————————————-
说明:
设置哪个套装要增强技能
取值:
套装表”Mir200/Envir/Data/套装.csv”中的套装名称
B. 技能名称
——————————————————-
说明:
设置要增强技能
取值:
技能表”Mir200/Envir/Data/技能(Magic).csv”中的技能名称
C. 说明
——————————————————-
设置套装成型后显示在悬浮框中的字样
D. ID
——————————————————-
设置不重复的纯数字ID,以供在需要的时候引用
D. ID
——————————————————-
设置不重复的纯数字ID,以供在需要的时候引用
E. 减攻击标志
——————————————————-
设置套装要减去技能中的那些攻击标志,攻击标志参考技能表说明
F. 减技能标志
——————————————————-
设置套装要减去技能中的那些技能标志,技能标志参考技能表说明
G. 减破坏力标志
——————————————————-
设置套装要减去技能中的那些破坏力标志,破坏力标志参考技能表说明
H. 减buff标志1
——————————————————-
设置套装要减去技能中第1个BUFF的BUFF标志
I. 减buff标志2
——————————————————-
设置套装要减去技能中第2个BUFF的BUFF标志
[怪物表] – 怪物表
怪物表字段详解
位置:
“Mir200/Envir/Data/怪物(Monster).csv ” [查看样表]
功能:
设置游戏中所有怪物数据.
字段详解:
|
列标 |
列名 |
说明 |
|
A |
怪物名称 |
|
|
B |
显示名称 |
|
|
C |
怪物简称 |
|
|
D |
ID |
|
|
E |
等级 |
|
|
F |
Race |
M2兼容字段 |
|
G |
整体缩放 |
格式: 解释:
|
|
H |
三轴缩放 |
|
|
I |
HP容量 |
设置怪物最大血量 |
|
J |
MP容量 |
设置怪物最大蓝量,每个怪物可以最多配4个技能,如果所配技有蓝量消耗,则会扣减怪物蓝量, |
|
K |
回血周期(秒) |
设置怪物多少秒回一次血量,可以填小数秒,比如填0.5秒,表示每500毫秒回一次血 |
|
L |
回血比例 |
设置怪物每次回血量占总血量的百分比,可以填0.1%,0.01% |
|
M |
回蓝周期(秒) |
设置怪物多少秒回一次蓝量,可以填小数秒,比如填0.5秒,表示每500毫秒回一次蓝 |
|
N |
回蓝比例 |
设置怪物每次回蓝量占总蓝量的百分比,可以填0.1%,0.01% |
|
O |
回红标志 |
|
|
P |
回蓝标志 |
同上 |
|
Q |
反应时间 |
设置怪物每多少毫秒探测一下周边人物时间,时间越短,怪物越快发现人物目标. |
|
R |
移动等待 |
设置怪物移动一步后,原地等待多少毫秒后移动下一步,时间越短,怪物连续移动越快 |
|
S |
攻击等待 |
设置怪物进行一次攻击后,等待多少毫秒后进行下一次攻击,时间越短,怪物连续攻击越快 |
|
T |
追踪超时 |
设置怪物对目标进行追踪时间,默认单位:毫秒,也可以写xx秒 |
|
U |
追踪打断几率 |
设置怪物正在追踪一个目标时,当身边有更近的新目标时,它去追踪新目标的几率 |
|
V |
攻击打断几率 |
设置怪物正在攻击一个目标时,它被另一个目标攻击,然后转去攻击新目标的几率,相同于设置怪物仇恨变化几率 |
|
W |
连攻几率 |
设置怪物忽略攻击等待的几率 |
|
X |
连走几率 |
设置怪物忽略移动等待的几率 |
|
Y |
走闲频率 |
|
|
Z |
叛变几率 |
|
|
AA |
下属续存 |
|
|
AB |
挖掘 |
说明: 格式: 取值:
|
|
AC |
留尸时间 |
设置怪物死亡后,尸体在地图上的保留时间,可以写xx秒、xx分钟、xx小时(最多20天) |
|
AD |
弹性 |
|
|
AE |
拖影距离 |
设置怪物移动时产生拖影的长度,不写或填0没有拖影 |
|
AF |
空阻加速度 |
|
|
AG |
怪物标志 |
设置怪物特性, 取值用竖线|组合 时间到后死亡 /* 存在时间到后就死亡
*/ |
|
AH |
升级经验 |
|
|
AI |
每小时掉经验 |
设置怪物每小时掉多少经验,直到掉到初始等级,不填或写0,怪物不掉经验. |
|
AJ |
经验增长系数 |
设置怪物每次升级所需经验,相对于上一级经验的倍数 |
|
AK |
属性增长系数 |
设置怪物每次升级后的属性值,相对于上一级属性值的倍数 |
|
AL |
最大升级 |
设置怪物最高可以升几级 |
|
AM |
出现时间 |
设置怪物出现动作时间,毫秒. 需要配置怪物出现动作,当怪物生成时,通过显示出现动作再到待机。 |
|
AN |
待机时间 |
设置怪物待机动作时间,毫秒 ,可以不填,默认取动作表的待机时间 |
|
AO |
攻击动作时间 |
设置怪物各个攻击动作时间,毫秒 ,可以不填,默认取动作表的攻击时间 |
|
AP |
受击动作时间 |
设置怪物受击动作时间,毫秒 |
|
AQ |
死亡动作时间 |
设置怪物死亡动作时间,毫秒 ,可以不填,默认取动作表的死亡时间 |
|
AR |
走路动作时间 |
设置怪物移动速度,毫秒,数值越小,移动越快 |
|
AS |
运动类型 |
设置怪物运动类型,一般正常怪物不用设置,如果设置了,则怪物会一直运动. |
|
AT |
运动标志 |
|
|
AU |
运动速度 |
|
|
AV |
运动参数(符参0) |
|
|
AW |
运动参数(符参1) |
|
|
AX |
运动参数(整参0) |
|
|
AY |
运动参数(整参1) |
|
|
AZ |
占地类型 |
怪物在地图上占据范围大小,以防止穿透. 取值: |
|
BA |
视野 |
|
|
BB |
可得经验 |
杀死怪物可以获得多少经验 |
|
BC |
离地高 |
设置怪物刷新时在空中的高度,一般飞行类怪物设置此值 格式:
xx米 |
|
BD |
3D模型名称 |
设置怪物3D外观模型素材名 |
|
BE |
模型换皮ID |
|
|
BF |
模型UI变换 |
设置3D怪物转成2D图像的姿态参数,此值从游戏编辑器中得出 |
|
BG |
2D外观动画 |
设置怪物2D外观动画素材名称 |
|
BH |
外观类型 |
怪物外观类型可在编辑器中设置,如果在编辑器里设置好,此处留空不要填 |
|
BI |
帧数 |
外观类型为9的怪物,需要填写总动画帧数 |
|
BJ |
混合 |
设置怪物外观动画在地图上显示时的混合类型 |
|
BK |
外观标志 |
设置怪物2D外观特性,可以取以下多个值的组合(填英文值,用竖线|组合) 取值
说明 |
|
BL |
外观偏移x |
设置怪物外观帧体偏移X |
|
BM |
外观偏移y |
设置怪物外观帧体偏移Y |
|
BN |
中心偏移 |
设置2D怪物相对于中心判定点的上下偏移,对于高大体型,或高空怪物,需要设置此字段,否则某些飞行类技能无法击中怪物 正数让判定中心点下移,负数向上 |
|
BO |
混合颜色 |
设置怪物外观染色颜色 |
|
BP |
头像LOGO |
外画logo:设置将怪物外观动画的第几张作为怪物头像LOGO |
|
BQ |
logo尺寸 |
设置怪物头像LOGO大小,可不填,使用默认大小. 填写格式:
宽度x高度 |
|
BR |
logo格式 |
不填(默认格式)
COLOR_FORMAT_R5G5B5A1(去黑底) |
|
BS |
logo比例 |
设置怪物头像缩放比例 |
|
BT |
小血条样式 |
设置怪物头顶小血条样式,取值来自于小血条样式表中的ID或名称 |
|
BU |
经验条样式 |
设置怪物头顶经验条样式,取值来自于小血条样式表中的ID或名称 |
|
BV |
大血条数 |
设置怪物大血条数管数 取值: |
|
BW |
血条偏移x |
设置怪物头顶默认小血条的位置偏移x |
|
BX |
血条偏移y |
设置怪物头顶默认小血条的位置偏移y |
|
BY |
数字血颜色 |
设置怪物头顶血量数字颜色 |
|
BZ |
名字偏移x |
设置怪物名字偏移x |
|
CA |
名字偏移y |
设置怪物名字偏移y |
|
CB |
在身特效 |
设置怪物外观特效名称或ID(特效表中的ID) |
|
CC |
出现颜色特效 |
当怪物出现时,设置身上的颜色特效 |
|
CD |
死亡颜色特效 |
当怪物死亡时,设置身上的颜色特效,取值同上 |
|
CE |
出现特效 |
设置怪物出现动作的外观特效名称或ID(特效表中的ID) |
|
CF |
待机特效 |
设置怪物待机状态的外观特效名称或ID(特效表中的ID) |
|
CG |
走特效 |
设置怪物行走时的外观特效名称或ID(特效表中的ID) |
|
CH |
攻击特效 |
设置怪物攻击时的外观特效(特效表中的特效名或ID) |
|
CI |
受击特效 |
设置怪物受击时的外观特效名称或ID(特效表中的ID) |
|
CJ |
死亡特效 |
|
|
CK |
死后特效 |
|
|
CL |
无系别死亡 |
设置怪物被普通技能打死时的外观特效(特效表中的特效名或ID) |
|
CM |
冰系死亡 |
设置怪物被冰系技能打死时的外观特效(特效表中的特效名或ID) |
|
CN |
火系死亡 |
设置怪物被火系技能打死时的外观特效(特效表中的特效名或ID) |
|
CO |
雷系死亡 |
设置怪物被雷系技能打死时的外观特效(特效表中的特效名或ID) |
|
CP |
风系死亡 |
设置怪物被风系技能打死时的外观特效(特效表中的特效名或ID) |
|
CQ |
光源 |
设置怪物自带光源名称,取值于光源表,如果设置此值,则在黑暗环境中,怪物周围会发光 |
|
CR |
光源偏移x |
设置怪物自带光源位置偏移x |
|
CS |
光源偏移y |
设置怪物自带光源位置偏移y |
|
CT |
渐亮时间 |
设置怪物出现时,其自带光源逐渐点亮秒数,可以是写数,如:1.5秒 |
|
CU |
渐灭时间 |
设置怪物死亡后,其自带光源逐渐熄灭秒数,可以是写数,如:1.5秒 |
|
CV |
出现声音 |
|
|
CW |
正常声音 |
|
|
CX |
发现声音 |
发现攻击目标声音 |
|
CY |
攻击声音 |
怪物攻击时的声音 |
|
CZ |
武器声音 |
对于有拿武器的怪物,设置其武器声音 |
|
DA |
受击声音 |
|
|
DB |
死亡声音 |
|
|
DC |
死亡声音2 |
暂时不填 |
|
DD |
击中目标声音 |
怪物击中目标的声音 |
|
DE |
变身音效 |
怪物变身时的声音 |
|
DF |
发现声几率 |
设置怪物进入人物视野,播放“发现攻击目标声音“几率 |
|
DG |
死亡视觉 |
设置怪物死亡时的视觉效果, |
|
DH |
属性 |
设置怪物属性 例如: |
|
DI |
技能 |
技能名称1 技能名称2 …(最多可填8个技能) |
|
DJ |
采集 |
详细设置点击查看:怪物采集 |
|
DK |
怪物BUFF |
设置怪物刷出时就自带的BUFF,这里填写BUFF表中的BUFF名称 |
|
DL |
BUFF几率 |
设置怪物刷新时产生自带BUFF的几率(百分比,可以写0.1%) |
|
DM |
设置几率(%) |
不填 |
|
DN |
抗性属性 |
设置能抵抗此BUFF产生的属性 |
|
DO |
buff属性 |
|
|
DP |
buff作用间歇 |
|
|
DQ |
buff显示间歇 |
火炙、冰霜BUFF需要设置显示间歇,一般为120毫秒 |
|
DR |
buff时间 |
设置BUFF总持续时间,可以写xx秒、xx分钟、xx小时 |
|
DS |
buff标志 |
点击查看:BUFF标志 |
|
DT |
备注 |
|
[怪物表] – 逐等级设置
逐等级设置
[怪物表] – 宝宝增益
[技能表] – 技能表
1.技能基础数据
技能基础数据
A. 技能名称
——————————————————————
说明:
技能唯一名称,不能重复
脚本参数或其它数据表中需要填写技能名称的地方,填写此值.
本引擎支持同一技能设置多个等级功能,且每级技能都是独立的一条技能数据,
以方便做差异化技能进阶等功能.
(设置同一技能不同等级数据时,技能名可以是一样的)
取值:
技能名 最多127字节,约42个汉字.
B. 简称
——————————————————————
说明:
设置显示在技能按钮上的名字
此值仅作为客户端显示用,也可以不填.
取值:
以2到3个汉字为宜.
C. 技能ID
——————————————————————
说明:
技能唯一数字标识,不能重复(同一个技能的多个等级可以重复一样).
技能ID由GM自行编写,注意在版本开发完后,不要随意修改技能ID(可以加,但不要改)
否则会出现人物技能数据错乱.
取值:
技能ID从1开始编排,不能重复(但同一技能的不同等级需要一样的ID
),不能写0
D. 技能等级
——————————————————————
说明:
设置当前技能的等,引擎识别技能等级从1级开始,然后依次增加.
同一个技能可以无限加等级,但技能名和ID一样.
取值:
等级数字#自定义等级显示文本(选填)
注意:同一技能的多个等级数据,要写在连续的行,不要和其它技能数据穿插.
F. 系别
——————————————————————
说明:
设置技能系别
取值:
不填 /* 无系别 */
火系 /* 火系技能 */
冰系 /* 冰系技能 */
雷系 /* 雷系技能 */
风系 /* 风系技能 */
例子:
如果给技能设置了系别,比如设置为火系技能,
那么人物属性”火系伤害”会加强这个技能伤害,”火系抵御”会防御这个技能伤害.
N. 职业限定
——————————————————————
说明:
设置技能只能由哪个职业学习
取值:
不填 /* 技能学习没有任何职业限制,包括怪物也可以学习
*/
战士 /* 只能由战士学习并使用该技能 */
法师 /*
只能由法师学习并使用该技能 */
道士 /* 只能由道士学习并使用该技能 */
武僧 /*
只能由武僧学习并使用该技能
*/
弓箭手 /*
只能由弓箭手学习并使用该技能 */
刺客 /*
只能由刺客学习并使用该技能 */
全职 /* 所有职业都能学习该技能
*/
K. 按建设置
——————————————————————
说明:
设置技能习得后,自动设成哪个按键
取值:
F1、F2、F3、F4、F5、F6、F7、F8
Ctrl+F1、Ctrl+F2 ..Ctrl+F8
Alt+F1
、Alt+F2 …Alt+F8
Q、W、E、R
L. 受击飘字
——————————————————————
说明:
设置被技能击中的飘字方向和飘字类型(引用飘字表)
取值:
模式1:只填飘字方向,引擎将自动调用相应的系统飘血类型
取值:
===============================
上飘 /* 总是向上飘字
*/
攻向飘
/* 朝被攻击的方向飘 */
模式2:飘字方向#飘血类型
其中飘字类型取值于飘血表
(Envir\Data\SK扩展表格\飘血设置.csv)中的飘血类型名
G. AS
——————————————————————
说明:
设置释放技能时,加快攻击或释放动作点数.
只对当前释放有效.
取值:
1点AS减少攻击动作每帧4毫秒时间,此值意义和属性详解中的攻击速度一样,可以参考.
H. 收招速度
——————————————————————
说明:
设置技能释放完后减少多少收招硬直时间,只对当前释放有效.
取值:
1点收招速度减少收招硬直时间90毫秒
I. ACT
——————————————————————
说明:
此值暂时无用
取值:
不填
AI. 技能标志
——————————————————————
说明:
设置技能自身的各种特性标志
取值:
以下取值组合(用|组合)
取值 说明
=======================================================
基础技能
/* 是否为基础技能 */
方向相关
/* 技能本身与方向有关(技能有方向) */
击中方向相关
/* 技能击中是方向相关的 */
原点释放 /* 技能从释放者(原点)处释放 */
施法者同位 /* 技能与释放者立即保持位置同步,如魔法盾技能 */
可锁定目标 /* 技能可锁定目标 */
可打断 /* 技能可被打断(即时锁定了目标) */
随施法者死亡 /* 技能释放者死亡技能也灭亡消失 */
随施法者消失 /*
技能释放者切换地图,技能消失 */
可被破坏 /* 技能可被破坏(如:魔法盾等) */
击中消失 /* 技能击中目标后消失 */
目标位置爆发 /* 技能移动到目标位置后停止再攻击(如:道士防魔,符打到指定位置再出)
*/
反转攻击模式 /*
反转攻击模式判定,对于加血\加防等”好”的技能使用此标志 */
施加自身 /* 技能可施加于自身 */
仅施加自身 /* 技能只能施加于自身 */
延后判定 /* 技能判定后显示释放效果设置(如:野蛮冲撞,需判定对方等级后才知道能否撞动)
*/
属性技能 /* 被动技能,不能释放.这种技能一旦习得,则对拥有者加属性 */
被动技能 /* 被动技能 */
对尸有效 /* 技能对死亡对象有作用(即需要判定已死亡对象) */
全体攻模 /* 在全体攻击模式下对可对目标有效 */
安全全有效 /* 在安全区也可以攻击 */
不可修炼
/* 技能不可修炼,即不可通过释放技能来增加技能经验 */
群攻标记 /* 标记为群体攻击(与技能实际为群体或单体无关) */
同BUFF时间
/* 当技能时间就是buff时间(如:魔法盾) */
地图格子位置 /* 技能落在地图单元格中心位置 */
未锁定有他用 /* 技能无锁定有其它用途,如:诱惑之光,若没有任何锁定,则将召唤的下属拉到身边
*/
不攻不转向 /* 不能攻击目标则不转向目标(保持当前方向) */
不能重叠释放 /* 对于释放者单一技能实例(如魔法盾) */
可攻非锁 /* 锁定型技能标记此标志可以攻击没有锁定的目标 */
连续扩散 /* 如果技能是扩散的,则连续扩散 */
自动学习 /* 人物到等级后自动学习该技能 */
不追目标 /* 飞行技能不追踪目标(默认追踪,需要不追踪的,要设置这个标志) */
列表隐藏 /* 不在技能列表中显示
*/
AP. 存续时间
——————————————————————
说明:
设置技能释放出来后,一直存在的时间,单位:毫秒
取值:
0:瞬间技能,如:普攻、雷电术
其他数值:毫秒时间,飞行、或持续类技能,如:小火球、火墙、冰咆哮等
对于飞行类技能,存续时间越长,可以飞得更久,更远.
AQ. 冷却时间
——————————————————————
说明:
技能释放后,再次可再释放的等待时间,即俗称的CD时间,单位:毫秒
取值:
毫秒时间值
AV. 技能图标
——————————————————————
说明:
设置方形技能图标素材调用序号或名称
取值:
素材序号: 编辑器素材库中素材名
或 PAK号/序号 或
Dev目录图片名,三者选其一,引擎都识别
AW. 技能图标(圆)
——————————————————————
说明:
设置圆形技能图标素材调用序号或名称
取值:
素材序号: 编辑器素材库中素材名
或 PAK号/序号 或
Dev目录图片名,三者选其一,引擎都识别
AO. 学习等级
——————————————————————
说明:
可以学习此技能的人物等级
取值:
人物等级值
GM. 挂机技能
——————————————————————
说明:
如果学习了这个技能,是否将其设置为当前挂机技能
取值:
0或空:不设置
1:设置为第一挂机技能(主挂机技能)
2:设置为第二挂机技能(副挂机技能)
AT. 存续时间率
——————————————————————
说明:
对于持续类技能,设置1点魔法可以增量技能多长持续时间,毫秒
取值:
毫秒时间值
例子:
火墙存续时间5000,设置存续时间率为20,人物有100点魔法,则
最终存续时间 = 5000 + (20×100) = 7000毫秒
AU. 受击存时减少率
——————————————————————
说明:
技能受到攻击时,1点伤害减少多少存续时间.
(技能也是一个对象,它也能受到攻击,只不过在传奇里只有魔法盾可以被攻击)
取值:
毫秒时间值
例子:
魔法盾”存续时间”为30000(30秒), “受击存时减少率”值为100,
当人物开魔法盾每次受到50点伤害时,
魔法盾存续时间减少100×50=5000,剩余时间为30000-5000=
25000毫秒
KH. 技能指示器
——————————————————————
说明:
设置技能释放指示器,设置指示器的技能,在按下技能按钮时,
会出现范围提示圈,释放方向等提示图形.
取值:
范围指示器 方向指示器 位置指示器
范围指示器格式:图片#颜色#比例X|比例Y|偏移X|偏移Y
方向指示器格式:图片#颜色#比例X|比例Y|偏移X|偏移Y#灵敏度#方向数
位置指示器格式:图片#颜色#比例X|比例Y|偏移X|偏移Y#灵敏度
一个技能可以同时设置三种指示器,每个以空格隔开,如果其中某种指示器没有,则写0
例子1:
普通攻击指示器为:0 扇形60度128#(255:255:255:255)#0.75 0
解释:
第一个0是范围指示,这里写0表示没有,
中间一段是方向指示器,用的图片素材名是”扇形60度128″,颜色是:(255:255:255:255)白,图片比例缩小0.75
最后一个0是位置指示器,这里写0表示没有
例子2:
技能雷电术指示器为:范围指示器1024#(0:128:255:255)#1.0#1.0 0 0#0#0#2.0
解释:第一段是范围指示器,用的图片素材名是”范围指示器1024″,颜色是(0:128:255:255),
中间一个0是方向指示器,这里写0表示没有(如果方向指示器为0,则会显示一条探针线用于锁定目标)
第三段是位置指示器,雷电术是锁定直接攻击的,没有位置圈,素材0表示没,颜色0,缩放偏移0,最后的2.0是移动灵敏度
例子3:
技能幽灵盾指示器为:范围指示器1024#(0:128:255:255)#0#1.0 0
51/410#(196:196:196:255)#0.8|1.0|-12|-38#2.0
解释:第一段是范围指示器,用的图片素材名是”范围指示器1024″,颜色是(0:128:255:255),大小偏移默认
第二段的0是方向指示器,写0表示没有
第三段是位置指示器,用的素材是第51号素材第410张图片,颜色是(196:196:196:255),整体缩小0.8,,X偏移-12,Y偏移-38,灵敏度为2.0
KI. 备注
——————————————————————
说明:
给技能加一段说明备注,这个备注会显示在引擎自带的技能说明面板上.
取值:
自定义文本,支持写富文本写法
例子:
可攻击前方<5格/RGB:0:250:0>以内多个目标,起手获得<4点/RGB:0:250:0>即时准确</n><100%击退前方所有目标/RGB:220:220:220>
2.技能素材
技能素材设置
CJ. 释放方向数
——————————————————————
说明:
设置人物技能释放时,人物的释放动作方向数
取值:
0:技能是万向的,可以向各个方向释放
8:技能只能向8个方向释放
例子:
技能开天斩,释放方向数是8,表明开天斩只能在人物周围一圈8个固定方向释放
持能小火球,释放方向数是0,表明小火球可以超人物任何方向释放
CK. 每方向动作帧
——————————————————————
说明:
如果技能释放方向数不是0,则需要设置技能释放动作中每个方向的动作帧数,
以帮助引擎正确调用到释放动作素材.
例子:
技能开天斩,释放方向数是8,释放动作是攻击,因为攻击动作有6帧,这里每方向动作帧就填6
CL. 技能方向数
——————————————————————
说明:
设置技能自身的方向数
注意:技能方向和人物方向是分离的,人物是人物、技能是技能,各是各的.
例子:
技能开天斩,根据开天斩素材动画显示,它是8个方向的,所以这里技能方向数写8
技能小火球,根据小火球素材显示,它只有一个向上的素材,这种是万向技能,可以向任何方向释放,技能方向数写0
CM. 技能每方向帧
——————————————————————
说明:
设置技能每个方向动画素材帧数,以帮助引擎正确调用到对应方向的技能素材.
例子:
技能开天斩,根据开天斩素材动画显示,它有8个方向的,每个方向有5帧,所以”技能每方向帧”写5
CN. 击中方向数
——————————————————————
说明:
对于有标志”SKILL_FLAG_TARGETPOSHIT”的技能,如道士的防魔,是将符打出到指定地点再产生效果的,
这里的”击中方向数”,就是设置道士防技能打到目标点后,出现”防”字的特效方向数.
通过查看”防”字特效,它就一个防字动画,没有方向概念,所以”击中方向数”填0
CO. 击中每方向帧
——————————————————————
说明:
对于如士的防魔技能击中到目标点后,出现的动画每方向帧数(如果它有方向的话)
CP. 受击方向数
——————————————————————
说明:
设置技能自身受到攻击的方向数
例子:
在底版所有技能中,只有”魔法盾”可以受到攻击,它的没有受击方向,填0
CQ. 受击每方向帧
——————————————————————
说明:
设置技能自身受到攻击每方向的动画帧数(如果它有方向的话)
例子:
技能释放动画
——————————————————————
CR. 动画名称:
设置技能释放时动画首张图片的素材名或素材序号(素材ID/序号)
CS. 帧数:
设置技能释放时动画帧数(如果释放是多个方向的,则只填写一个方向的帧数)
CT. 每帧毫秒:
设置动画每帧播放多少毫秒
CU. 偏移X: 设置释放特效整体横向偏移像素,负数向左偏,正数向右偏
CV.
偏移Y: 设置释放特效整纵向偏移像素,负数向上骗,正数向下偏
CW. 等待帧:
当技能释放特效和释放动作要匹配,但帧数不一样时,设置动画帧等待几帧后再播放
例如:雷电术释放动作6帧,但释放动画3帧,设置释放动画等待1帧就可以完美匹配雷电术释放效果
CX.
深度偏移: 当使用3D/2D混合模式时,设置2D技能释放特效相对于3D模型的深度偏移,以达到正确显示顺序
取值一般是-100到100,如果技能释放特效遮挡不对,GM可尝试调帧此值,以达到满意效果.
CY.
动画类型: 取值是以下英文,如不填,则为默认类型
ANI_TYPE_SEQFRAME /* 标准序列帧动画(默认) */
ANI_TYPE_GRADAHEADMOV /* 渐进向前移动动画 */
ANI_TYPE_RANDOMPOS /* 随机位置出现动画 */
CZ.
动画参数: 填0
DA. 比例: 设置释放特效比例大小,不填或1大小不变,大于1放大,小于1缩小
DB. 动画标志:设置技能释放特效各种特性开关,取值见动画标志
DC. 动画混合: 设置技能释放特效混合模式,取值见混合模式
DD. 混合颜色:
设置技能释放特效染色颜色
技能自身动画
——————————————————————
DE. 动画名称:
设置技能被释放出来后,自身飞行或显示特效的首张图片素材名或素材序号(素材ID/序号)
DF. 帧数:
设置技能自身特效帧数(如果是多方向的,只写一个方向上的帧数)
DG. 每帧毫秒:
设置自身特效每帧播放多少毫秒
DH. 偏移X: 设置自身特效整体横向偏移像素,负数向左偏,正数向右偏
DI.
偏移Y: 设置自身特效整体纵向偏移像素,负数向上骗,正数向下偏
DJ. 等待帧:不填或填0
DK.
深度偏移: 当使用3D/2D混合模式时,设置2D技能自身特效相对于3D模型的深度偏移,以达到正确显示顺序
取值一般是-100到100,如果技自身放特效遮挡不对,GM可尝试调帧此值,以达到满意效果.
DL. 动画类型:
取值是以下英文,如不填,则为默认类型
ANI_TYPE_SEQFRAME /* 标准序列帧动画(默认) */
ANI_TYPE_GRADAHEADMOV /* 渐进向前移动动画 */
ANI_TYPE_RANDOMPOS /* 随机位置出现动画 */
DM.
动画参数: 填0或不填
DN. 比例: 设置自身特效比例大小,不填或1大小不变,大于1放大,小于1缩小
DO. 动画标志:设置技能自身特效各种特性开关,取值见动画标志
DP. 动画混合: 设置技能自身特效混合模式,取值见
混合模式
DQ. 混合颜色:
设置技能自身特效染色颜色
技能击中动画
——————————————————————
DR. 动画名称:
设置技能击中目标,显示的特效首张图片素材名或素材序号(素材ID/序号)
DS. 帧数:
设置技能击中目标特效帧数
DT. 每帧毫秒: 设置技能击中目标特效每帧播放多少毫秒
DU.
偏移X: 设置技能击中目标特效整体横向偏移像素,负数向左偏,正数向右偏
DV. 偏移Y:
设置技能击中目标特效整体纵向偏移像素,负数向上骗,正数向下偏
DW. 等待帧:不填或填0
DX.
深度偏移: 当使用3D/2D混合模式时,设置2D技能技能击中目标特效相对于3D模型的深度偏移,以达到正确显示顺序,
取值一般是-100到100,如果技特效遮挡不对,GM可尝试调帧此值,以达到满意效果.
DY. 动画类型:
取值是以下英文,如不填,则为默认类型
ANI_TYPE_SEQFRAME /* 标准序列帧动画(默认) */
ANI_TYPE_GRADAHEADMOV /* 渐进向前移动动画 */
ANI_TYPE_RANDOMPOS /* 随机位置出现动画 */
DZ.
动画参数: 填0或不填
EA. 比例: 设置技能击中目标特效比例大小,不填或1大小不变,大于1放大,小于1缩小
EB. 动画标志:设置技能技能击中目标特效各种特性开关,取值见动画标志
EC. 动画混合: 设置技能技能击中目标特效混合模式,取值见
混合模式
ED. 混合颜色:
设置技能技能击中目标特效染色颜色
技能受到攻击的动画
——————————————————————
EE. 动画名称:
设置技能受击特效首张图片素材名或素材序号(素材ID/序号)
EF. 帧数: 设置技能受击特效帧数
EG.
每帧毫秒: 设置技能受击特效每帧播放多少毫秒
EH. 偏移X:
设置技能受击特效整体横向偏移像素,负数向左偏,正数向右偏
EI. 偏移Y:
设置技能受击特效整体纵向偏移像素,负数向上骗,正数向下偏
EJ.
等待帧: 不填或填0
EK.
深度偏移: 当使用3D/2D混合模式时,设置2D技能技能受击特效相对于3D模型的深度偏移,以达到正确显示顺序,
取值一般是-100到100,如果技特效遮挡不对,GM可尝试调帧此值,以达到满意效果.
EL. 动画类型:
取值是以下英文,如不填,则为默认类型
ANI_TYPE_SEQFRAME /* 标准序列帧动画(默认) */
ANI_TYPE_GRADAHEADMOV /* 渐进向前移动动画 */
ANI_TYPE_RANDOMPOS /* 随机位置出现动画 */
EM.
动画参数: 填0或不填
EN. 比例: 设置技能受击特效比例大小,不填或1大小不变,大于1放大,小于1缩小
EO. 动画标志:设置技能技能受击特效各种特性开关,取值见动画标志
EP. 动画混合: 设置技能技能受击特效混合模式,取值见
混合模式
EQ.
混合颜色:设置技能技能受击特效染色颜色
ER. 击中特效
——————————————————————
说明:
设置技能击中目标后,在目标身上产生的特效
取值:
特效表中的特效名称或特效ID
ES. 击中反力
——————————————————————
说明:
设置技能击中目标后,产生的力反馈效果,以增强重击打击感
取值:
0或不填: 没有反力效果
3: 中等程度
5: 重等程度
目前只能取以上3个值
ET. 技能淡出
——————————————————————
说明:
设置技能在其生命周期最后多少毫秒开始淡出显示(逐渐淡明)
取值:
毫秒时间值
例子:
技能小火球存续1500毫秒,设置技能淡出500,则在小火球还剩500毫秒消失的时候开始淡出显示
EU. 技能模型名
——————————————————————
说明:
设置技能实体的3D模型
取值:
格式1:3D模型素材名
格式2:3D模型素材名#影子浓度(0.0~1.0)
例子:
在底版中,弓箭手射箭技能,射出去的箭,是3D模型
EV.
模型旋转XYZ
——————————————————————
说明:
设置技能实体的3D模型旋转角度
取值:
X方向旋转角#Y方向旋转角#Z方向旋转角
例子:
0#0#90
模型沿Z轴旋转90度
EW. 模型比例
——————————————————————
说明:
设置技能实体的3D模型大小比例
取值:
0或不填:原比例
1:原比例
大于1:放大
小于1:缩小
EX. 模型离地高
——————————————————————
说明:
设置技能实体的3D模型离开地面高度,单位:米
在空中飞行类技能一般需要设置离地高度.
取值:
格式1:
高度值(米),如:1.78米相当于角色高度,GM可按此示准结合游戏中实际画面调整此值
格式2:
高度值(米)#水平偏移#竖直偏移,设置在2D/3D混合模式下的模型像素偏移.
HI – HO 释放光源
HP – HV
技能光源
HW – ID 击中光源
——————————————————————
光源参数:rgn=范围 i=强度 att=衰减 c= 颜色
光源闪烁速度:光源一闪一亮交替速度,标准值20,GM可上下浮动调整观测效果
光源闪烁衰减:光源闪烁衰减 ,标准值0.2
光源闪烁亮度:光源闪烁亮充,标准值0.15
光源渐亮:光源逐渐变亮调节系数,0.0 到 3.0,调节看效果
光源渐暗:光源逐渐变暗调节系数,0.0 到 3.0,调节看效果
光源标志:设置光源闪烁特性标志,可不填
LIGHTCHAOS_FLAG_NONE /* 无 */
LIGHTCHAOS_FLAG_BRIGHTDARK /* 随光源生命周期一过性渐亮渐灭 */
FM.
释放声音
——————————————————————
说明:
设置技能释放时的声音
取值:
取”Mir200\client_data\pak\sound\r1.list”中的音效名称
FN. 技能声音
——————————————————————
说明:
设置技能本体飞行或运动的声音
取值:
取”Mir200\client_data\pak\sound\r1.list”中的音效名称
FO. 击中声音
——————————————————————
说明:
设置技能击中目标的声音
取值:
取”Mir200\client_data\pak\sound\r1.list”中的音效名称
FP. 受击声音
——————————————————————
说明:
设置技能自身被攻击的声音
取值:
取”Mir200\client_data\pak\sound\r1.list”中的音效名称
FQ. 释放声音(女)
——————————————————————
说明:
设置女性角色技能释放时的声音
取值:
取”Mir200\client_data\pak\sound\r1.list”中的音效名称
FR. 击中男人物声音
——————————————————————
说明:
技能击中男性角色,男性角色发出的声音
取值:
取”Mir200\client_data\pak\sound\r1.list”中的音效名称
FS. 击中女人物声音
——————————————————————
说明:
技能击中女性角色,女性角色发出的声音
取值:
取”Mir200\client_data\pak\sound\r1.list”中的音效名称
FT. 致死声音男
——————————————————————
说明:
技能击毙男性角色,女性角色发出的声音
取值:
取”Mir200\client_data\pak\sound\r1.list”中的音效名称
FU. 致死声音女
——————————————————————
说明:
技能击毙女性角色,女性角色发出的声音
取值:
取”Mir200\client_data\pak\sound\r1.list”中的音效名称
3.技能释放
技能释放
P. 释放动作
——————————————————————
说明:
设置释放技能时摆出的动作
取值:
一般砍的技能填:攻击
其它魔法类技能填:施法 或 上举施法
动作取值:
============
出现
待机
休闲
转向
微步
微步停
走
走A
走停
跑
跑A
跑停
飞
飞停
示威
指挥
战斗预备
攻击
中攻
重攻
蓄力砍
冲撞
施法
上举施法
施法停
挖
挖停
受击
坠落
死亡
彻底死亡
冲
跳
大跳
挡
平刺
重刺
重砍
腾空下攻
升龙
攻击2
攻击3
攻击4
拳击
坐骑待机
坐骑移动
坐地
冲刺
Q. 释放标志
——————————————————————
说明:
设置技能释放特性标志
取值:
填下面值 ,可以多条组合(用|组合)
取值 说明
=======================================================
触屏释放 /* 技能可以通过点击屏幕释放,技能的释放位置就是点击处
*/
不设为当前 /* 释放这个技能时不要选中这个技能,如:治愈术/魔法盾 */
直接释放 /*
技能直接释放,不管有没有目标也不追踪目标(如:野蛮冲撞) */
释放叠加特效 /* 释放的技能特效可叠加(也就是说,释放下一个技能时,不撤回上一个技能释放特效 */
点击目标释放 /*
点击目标即可释放(如:普通攻击/刺杀/半月等) */
强化切换 /* 可引导其它切换技能(如普通攻击可引导刺杀或半月等)
*/
强化普攻 /* 可引导其它延迟技能(如普通攻击可引导烈火等)
*/
可被强化普通 /*
可先激活再延迟释放(如:烈火/逐日剑法等) */
可切换 /*
可开关切换的技能,如:刺杀/半月等 */
方向相关 /* 技能释放动作与方向有关(砍,刺杀等) */
保持方向 /*
总是使用释放者当前方向释放(不随目标位置转身,如抗拒火环) */
朝向锁定 /*
如果有锁定者,则朝向被锁定目标,否则使用释放者当前方向释放(不随目标位置转身) */
保留 /*
保留标志,暂时不用 */
追踪目标 /* 释放技能追踪目标(如野蛮冲撞) */
保持攻模 /* 释放技能保持攻击模式(不受所在地图区域安全区影响)
*/
相对中心点 /* 方向相对释放者中心点 */
按住立即重复 /*
技能释放按键按住不放时立即重复 */
按住延迟重复 /* 技能释放按键按住不放时等待一会再重复 */
初始按键 /*
技能按键被初始设置(普攻\挖锄\跳跃等技能需要此标志) */
指向位置释放 /* 总是在鼠标指向的位置释放(无论是否有锁定目标) */
无攻不放 /* 技能不能攻击则不释放,如施毒术 */
固定0方向 /* 技能释放出来方向固定向上 */
轮换BUFF /* 技能释放时轮换BUFF,轮换技能中设置的4个BUFF
*/
例子:
技能雷电术释放标志填写:朝向锁定
,这样当有锁定目标时,
释放雷电术人物会面向目标
R. 生成帧
——————————————————————
说明:
人物释放技能做前摇动作时,在释放动作帧进行到百分之多少产生技能
取值:
0% 至 100%
例子:
0%:释放动作还没开摆,就产生技能
100%:释放动作摆完,再产生技能
50%:
释放动作摆到一半,产生技能
这个字段具体填多少,要看人物动作,一般砍的技能设置90%,正好是刀落下的时时候
魔法技能一般写100%,让人物释放动作做完,在出技能,这样看上去更自然
S. 生成时间
——————————————————————
说明:
人物在释放技能做前摇动作时,在动作时间进行到百分之多少产生技能
取值:
0% 至 100%
注意:技能”生成帧”和”生成时间”只能2填1,如果写了生成帧,生成时间写0
FV. 释放偏移X
——————————————————————
说明:
设置技能释放时生成点的左右偏移像素
取值:
负数向左偏移,正数向右偏移
FW. 释放偏移Y
——————————————————————
说明:
设置技能释放时生成点的上下偏移像素
取值:
负数向上偏移,正数向下偏移
例子:
技能火球术,释放偏移Y为-64,火球放出时向上偏移64像素,如果不写偏移Y,
则火球从人物脚底发出,看上去不协调,向上偏移64像素,正好从人物头顶发出,
和释放特效完美匹配.
HR.
延迟释放文本
——————————————————————
说明:
PC端释放烈火类技能,按下烈火技能键后,8秒内下次普通出烈火,
此字段是设置按下烈火键后显示的文本
示例:
烈火剑法此字段设置为:您的武器因精神火球而炙热
BJ. HP消耗
——————————————————————
说明:
每次释放技能需要消耗的HP值(红量)
BK. MP消耗
——————————————————————
说明:
每次释放技能需要消耗的MP值(蓝量)
BL. 显示消耗物
——————————————————————
说明:
是否显示释放技能所需的消耗物品
取值:
0或不填:不显示
1: 显示
BM. 消耗物类别
——————————————————————
说明:
设置每次释放技能需要消耗的物品类别
取值:
物品表中的类别值
例子:
灵魂火符消耗物品类别是:”符”(ITEM_SUBCAT_MAGICPAPER),
每次释放灵魂火符,会从背包中扣除类别为”符”的物品,扣多少取决于”消耗物个数”
施毒术消耗物品列别是:红毒#绿毒
BJ. 消耗物个数
——————————————————————
说明:
设置每次释放技能时从背包中扣除所需物品个数
KH. 前摇运动
——————————————————————
说明:
设置人物释放技能的前摇运动参数
取值:
动作名#运动类型#持续时间(毫秒)#运动标志#速度#符参0#符参1#整参0#整参1#整参2
关于运动类型及其后面的参数意义,查看”运动类型”字段说明
例子:
技能十步一杀的前摇动作为:重攻#闪现#140#0#0#0#0#140#65#0
解释:释放十步一杀前重攻跳起,作闪现运动,持续140秒,消失特效ID为65
GU. 驱动技能
——————————————————————
说明:
设置驱动被动技能修炼点数的技能
取值:
技能表中的技能名
例子:
基本剑术和精神力战法都是被动技能,它们的驱动技能设为:普通攻击,
意思是当释放普通攻击时,可以驱动基本剑术或精神力战法修炼.
4.技能飞行
技能飞行
包含技能飞行速度、技能连发、叠发、分裂及特殊运动等设置.
G. 飞行动作
——————————————————————
说明:
设置技能飞行动作
取值:
飞行类持能填”飞”,其它类型不填
AY. 移动速度
——————————————————————
说明:
设置飞行类技能的飞行速度,单位:米/秒,此值越大飞得越快
取值:
可以带小数点的数值
例子:
技能小火球是飞行技能,1级移动速度为 8.0米/秒,2级为8.2米/秒,
随着技能等级提高,飞行速度越来越快.
至于多加1米/秒有多快,GM可以测试调整在游戏里直观的感受.
AZ. 加速度
——————————————————————
说明:
设置飞行类技能的飞行的加速度,单位:米/平方秒,即设置每秒技能飞行速度增加多少.
加速度可以是负值,这样速度会越来越慢
取值:
可以带小数点的数值
填0或不填,飞行类技能匀速移动,直到存续时间到了自动消失
BD. 连发间隔
——————————————————————
说明:
设置技能连发释放的时间间隔,毫秒
取值:
毫秒值
例子:
加特林火符
BE. 叠发次数
——————————————————————
说明:
设置一次释放多个技能实体个数
取值:
叠发1次,是左右各加1个技能,加上自己本身就是3个技能
叠发2次,是左右各加2个持能,加上自己本身就是5个技能
…
例子:
1级大火球叠发次数为0,即没有叠发,放1个大火球出去
4级大火球叠发次数为1,即叠发1次,放3个大火球出去
BF. 叠发角度
——————————————————————
说明:
设置叠发释放时相对于本体技能角度
取值:
角度值
例子:
4级大火球叠发次数1,叠发角度为30度,
意思是本体大火球左边30度增加一个副本大火球,右边30度也增加一个
AH.
位置关系
——————————————————————
说明:
设置技能放出后,与释放者的位置关系.
取值:
中文值 说明
=============================================================
同位置 /* 与释放者位置立即保持同步,如:魔法盾
*/
同方向 /* 与释放者方向同步
*/
背后 /* 在释放者后方
*/
移动到背后 /* 跟随并移动到释放者背后 */
EY.
运动类型
——————————————————————
说明:
设置技能释放出去后的运动方式
取值:
取值 说明
=============================================================
自旋 /* 绕指定坐标自身原地旋转 */
圆周运动 /* 绕指定目标做转圈运动 */
飞向目标 /* 飞向指定目标 */
飞向主人 /* 飞向自已的主人 */
闪现 /* 向指定位置闪现 */
飞回 /* 飞回释法者(类似回旋标) */
漩飞 /* 在空中打转 */
自由落体 /* 自由落体 */
绕轴旋转 /* 绕指定坐标轴旋转 */
例子:
技能掷斧的运动类型为”自旋
“,表示斧头模型在飞行过程中,还带自旋转.
EZ.
运动标志
——————————————————————
说明:
设置技能释放出去后的运行特性标志.
取值:
可以取以下值组合(用|组合)
===========================================
不填或写0 /* 无特殊标志 */
同向旋转 /*
旋转作为对象当前方向 */
死亡继续 /* 对象消亡后仍保持运动 */
服务端全驱动 /*
对象的运动是由服务器全部驱动,并发送事件到客户端的 */
服务端更新
/* 对象运动需要在服务器端也执行更新(无外观技能是不需要在服务端更新的) */
忽略删除 /* 忽略删除(在客户端一直运动,当有删除事件发来时也不删除)
*/
结束移除对象 /* 运动结束后移除,一般配合标志”忽略删除”使用 */
顶层显示 /* 顶层显示
*/
结束后攻击
/* 运动结束后产生攻击判定 */
FA.
运动速度
——————————————————————
说明:
设置技能释放运动速度和加速度
格式:
速度#加速度(选填)
取值:
对于不同的运行类型,运行速度值意义不同:
运动类型
运动速度
=====================================================
自旋运动 xx度/秒,即:每秒可以旋转角度,例如:掷斧技能
圆周运动 xx度/秒,即:每秒绕圆多少角度
飞向目标 xx米/秒,即:每秒可以飞多少米
飞向主人 xx米/秒,即:每秒可以飞多少米
闪现 无
回旋标 xx米/秒,即:每秒可以飞多少米
FB. 运动参数(符参)
FC.
运动参数(整 参)
——————————————————————
说明:
不同的运动类型,对应的参数取值意义不同:
运动类型 参数
=====================================================
自旋运动
符参:总旋转角度 整参:
旋转轴(0,1,2)
圆周运动
符参:圆周半径(米)#Y轴(上下缩放) 整参: 是否在垂直平面(0或不填水平,1垂直)
飞向目标 无
飞向主人 无
闪现 整参:闪现时间(毫秒)
飞回
无
自由落体
符参:离地高#下落加速度(默认-9.8m/ss)
整参:最小悬空时间(毫秒)#
最大悬空时间(毫秒)
绕轴旋转
符参:离地高度停止#旋转角速度(随机终止值,和运动速度FA组成随机范围)
整参:旋转轴(0,1,2)#
是否到达指定的离地高度后停止(离地多高看floatparam1参数)
HS. 分裂时间
——————————————————————
说明:
当技能释放出来多少毫秒后,准备执行分裂,最终能否分裂,看”分裂几率”
取值:
毫秒时间值
例子:
技能3级刺杀剑术,分裂时间为:0
解释:3级刺杀剑术释放出来后,立即判定分裂几率,看能否分裂
HT. 分裂几率
——————————————————————
说明:
当技能到分裂时间后,有多少几率产生分裂,最终要分裂什么技能,看”分裂技能”
取值:
百分比几率值,可以写0.1%、0.01%等
例子:
技能3级刺杀剑术,分裂几率r为:1%
解释:3级刺杀剑术释放出来后,有1%几率产生分裂
HU. 分裂技能
——————————————————————
说明:
当技能最终触发分裂时,分裂出什么技能
取值:
技能表中的技能名
例子:
技能3级刺杀剑术,分裂技能为:刺杀飞出
解释:3级刺杀剑术释放出来后,几率判定通过后分裂出一个新技能:刺杀飞出
HV. 分裂技能等级
——————————————————————
说明:
当技能最终触发分裂时,分裂出的技能是多少级的
取值:
有效技能等级
5.技能判定
技能判定设置
HE.
执行几率
——————————————————————
说明:
设置每次释放能生成技能的几率
取值:
0或不填:100%生成
0%-100%:
百分比几率值,可以写0.1%、0.01%等更低几率
GB.
攻击等级level0
——————————————————————
说明:
设置技能对高于或等于此等级的目标才有伤害
取值:
不填:不判断最低攻击等级
其他数值:
最低等级值
例子:
想让一个技能只对35级以上对象有伤害,此字段值可以填35
GC. 攻击等级level1
——————————————————————
说明:
设置技能对低于或等于此等级的目标才有伤害
取值:
不填:不判断最高攻击等级
其他数值:
最低等级值
例子:
想让一个技能只对50级以下对象有伤害,此字段值可以填50
BG. 首次作用延迟
——————————————————————
说明:
设置技能在第一次造成伤害的等待时间,单位:毫秒
取值:
毫秒时间值
例子:
技能流星火雨”首次作用延迟”为900毫秒,这是因为流星火雨持能特效开始的900毫秒
是下雨动画,还没有砸到地面,如果不设置这个延时时间,画面中流星火雨还在目标
头顶上,结果目标就中招扣血了,不协调.
BH. 属性需求
——————————————————————
说明:
释放技能需要人物哪个属性值高于指定值
取值:
属性表中的属性名称
BI. 属性需求值
——————————————————————
说明:
释放技能需要人物属性值高于本字段所填值
取值:
属性值
T. 形状
——————————————————————
说明:
设置技能形状,此设置会影响技能的伤害判定范围
取值:
SHAPE_TYPE_NONE /* 无形直接伤害的技能,例如:道士施毒术
*/
SHAPE_TYPE_SECTOR
/* 扇形:攻击类技能用此值,如:普攻、攻杀、半月 */
SHAPE_TYPE_POINT /* 点:飞行碰撞类技能用此值,如:小火球 */
SHAPE_TYPE_LINE
/* 线:线条类技能用此值,如:疾光电影 */
SHAPE_TYPE_RECT
/* 矩形:判定范围是方形技能用此值,如:道士防魔 */
SHAPE_TYPE_CIRCLE, /*
圆形:判定范围是圆形技能用此值,如:爆裂火焰、冰咆哮 */
SHAPE_TYPE_GRID, /*
网格:刺杀、开天斩等有2格或3格判定技能用此值 */
SHAPE_TYPE_VIEWRECT /* 全屏矩形:全屏攻击技能用此值 */
SHAPE_TYPE_UNIT, /*
单元块:判定范围是一个地图坐标的技能用此值,如:地钉 */
U. 判定范围
——————————————————————
说明:
当使用本技能时,以自身为中心点,在多少像素半径内有目标开始判定能否攻击
取值:
建议取值:200 至 700
过大的判定范围没有意义,因为发现周围是否有目标还要看人物视野范围
V. 攻击范围
——————————————————————
说明:
设置技能可攻击的范围半径,以像素计,超过此范围技能攻击不到.
如果同时设置了范围指示器(见字段JZ:技能指示器),则按下技能按钮会有圆圈范围提示
取值:
建议取值:200 至
700
W. 扩散类型
——————————————————————
说明:
设置技能释放后,继续扩散形变类型
取值:
SKILL_SPREAD_NONE /*
无扩散 */
SKILL_SPREAD_LINEAR /*
线性扩散,向释放方向直线前进 */
SKILL_SPREAD_LINEAR_H /* 由中心点横向两端线性扩散 */
SKILL_SPREAD_LINEAR_V /* 由中心点纵向两端线性扩散 */
SKILL_SPREAD_LINEAR_CROSS /*
由中心点十字线性扩散 */
SKILL_SPREAD_RECT_OUT /* 以矩形范围,从中心向外缘扩散
*/
SKILL_SPREAD_RECT_IN /* 以矩形范围,从外缘向中心扩散
*/
SKILL_SPREAD_CIRCLE_OUT /* 由中心向外围圆形扩散 */
SKILL_SPREAD_CIRCLE_IN /* 外围向中心点圆形聚拢 */
X. 追踪网格数
——————————————————————
说明:
设置将目标追踪在多个地图格子内.
写了追踪网格数,不一定就是刺杀类技能,只是在追踪目标上要对准2格或以上的刺杀位
取值:
1: 普攻
2: 刺杀
3: 开天斩,如果开天斩想打4格,可以设4
4-6: 火焰刺杀、逐日剑法
以上取值只是示例,GM可根据自已需求调整
Y. 网格判定数
——————————————————————
说明:
设置技能在几格刺杀位上可以命中
此字段是技能实际有打几格刺杀位,和追踪网格数不同,追踪网格只管追踪目标
取值:
1:
普攻
2: 刺杀
3: 开天斩,如果开天斩想打4格,可以设4
4-6: 火焰刺杀、逐日剑法
以上取值只是示例,GM可根据自已需求调整
Z. 初始扩散
——————————————————————
说明:
配和扩散类型使用,设置初始扩散值
取值:
一般初始扩散值是0
AA. 扩散比例
——————————————————————
说明:
配和扩散类型使用,设置技能扩散大小比例
取值:
1: 正常扩散
大于1: 加大扩散程度
小于1: 减少扩散程度
在调试技能时,应观察技能中击目标最好的效果微调此值
AB. 判定标志
——————————————————————
说明:
设置技能对目标攻击的判定选项
取值:
可以取以下值
===========================================
不填
/* 无特殊判定标志,以目标中心点为击中判定点 */
脚点判定 /* 地面判定,以目标脚底处为击中判定点 */
全屏判定
/* 全屏范围攻击判定 */
AG. 阻挡检查
——————————————————————
说明:
设置飞行类技能在沿其飞行方向上有多少个不可移动地图块算作被遮挡
取值:
建议取值范围0 到 3
0不检测,技能不会被地形遮挡,
如果此值越大,技能就越不容易被判定为被地形阻挡
如果此值越小,技能越有可能被判定为地形阻档(例如1,只需碰到1个阻挡块就判定技能被地形阻挡了)
BC. 辐射半径
——————————————————————
说明:
设置技能判定范围大小,对于不同形状类型的技能,意义有所不同:
点状技能(SHAPE_TYPE_POINT):辐射半径写像素大小,表示以技能为中心的半径判定范围,若在此范围目标被击中.
圆形技能(SHAPE_TYPE_CIRCLE):同上
线状技能(SHAPE_TYPE_LINE):辐射半径写米,表示技能线宽度,触碰到此线的目标被击中.
例子:
小火球是点状技能,辐射半径是22,表示小火球飞行时,以其自身为中心,22像素半径内的目标会被击中
地狱雷光是圆形技能,1级辐射半径是150,表示地狱雷光中心到150像素范围内的目标都被击中
疾光电影是线状技能,辐射半径是0.8米,表示疾光电影是条有0.8米宽的线,在处于这个线内的目标被击中
BA. 对方属性检查
——————————————————————
说明:
设置技能可以打动目标前的属性检查,如果属性检查通过,则技能可以伤害目标,
否则技能对目标无效
取值:
属性表(“Mir200/数据库/更多/属性/属性.csv”)中的属性名称
例子:
技能抗拒火环”对方属性检查”填的是”等级”,表示抗拒火环只能推的动比自己等级低的目标
提示:等级也是一个属性名
BB. 属性差值
——————————————————————
说明:
若技能设置了”对方属性检查”,则这里可以设置具体属性差值在多少以内都算判断通过.
取值:
差值数值,可以是负数,也可以不填.
例子:
技能狮子吼”对方属性检查”是”等级”,”属性差值”是-10,
即:自身等级 – 对方等级 >= -10 ,判断通过
进一步解释:
假如自身等级为30级,对方等级为35级,30-35=-5,大于-10,判断通过,狮子吼可以对
目标造成伤害.
可以看出:属性差值为负时,相当于放宽限制,为正数相当于加大限制
FX – GA. 技能范围
——————————————————————
不同形状的技能,其技能范围意义不同:
扇形技能(形状值为扇形):
如普通攻击、半月弯刀
=======================================
FX. left: 扇形向左张开距离,像素
FY. top: 扇形长度,一般写负数,表示向上的长度
FZ. right: 扇形向右张开距离,像素
GA.
bottom: 扇形顶点Y坐标,一般是0
以正上方向视角看:
以上参数构成扇形判定范围,落在这个范围内的对象被技能命中.
点状技能(形状值为点): 如小火球、大火球、灵魂火符
=========================================
left: 不填
top: 不填
right: 以点为中心的矩形宽度,像素
bottom: 以点为中心的矩形高度,像素
点状技能的right和bottom构成技能判定范围,
只有落在这个范围内的对象,再根据”辐射半径”判定伤害
圆形技能(形状值为”圆”): 如抗拒火环、冰咆哮
=========================================
left: 判定框偏移X
top:
判定框偏移Y
right: 不填
bottom: 不填
圆形技能的判定框是由技能中心点和辐射半径组成的圆的外接矩形,
然后left和top字段,设置这个矩形的偏移,落在这个矩形内的对象,再接受圆判定.
偏移的调整主要是为完美匹配技能特效素材.
线形技能(形状值为”线“): 如地狱火、疾光电影
=========================================
left: 不填
top:
线长度(米)
right: 不填
bottom: 不填
线形技能的top值,表示这条线有多少米长,人物高度约1.78米,GM可按此标准调整
BV. 衰减类型
——————————————————————
说明:
暂时无用
取值:
不填
BV. 衰减系数
——————————————————————
说明:
暂时无用
取值:
不填
BX. 重复方式
——————————————————————
说明:
设置技能平铺自身的方式
取值:
取值写以下英文:
SKILL_REPEAT_CENTERRHOMBUS, /* 以中心为菱形
*/
SKILL_REPEAT_CENTERCIRCLE,
/* 以中心为圆 */
SKILL_REPEAT_CENTERHORI, /* xxxoxxx */
SKILL_REPEAT_CENTERVERT,
SKILL_REPEAT_CENTERCROSS,
BY. 重复量
——————————————————————
说明:
设置技能平铺自身的数量
BZ. 重复间距w
——————————————————————
说明:
设置技能平铺每个副本之间的横向间距,像素
CA. 重复间距h
——————————————————————
说明:
设置技能平铺每个副本之间的纵向间距,像素
技能重复标例:
1级捆魔咒,技能重复:SKILL_REPEAT_CENTERCIRCLE
重复量:8
重复间距w:100
重复间距h:100
解释:单个捆魔咒是一条光柱,设置SKILL_REPEAT_CENTERCIRCLE重复后,单条光柱会围成一个圆圈,
总共用8个单条光柱围成一个圆圈,每条光柱横向间距100像素,纵向间距为100像素
CB. 击中距离上限
——————————————————————
说明:
设置技能最远处击中距离,像素
示例:
刺杀剑术,击中距离上限73像素,差不多是第2格刺杀距离
CC. 上限设置
——————————————————————
说明:
设置技能命中击中上限后的特殊功能
取值:
SKILL_HITPOS_SET_NONE /*
无 */
SKILL_HITPOS_SET_IGNOREDEFENSE
/* 设置技能破防 */
示例:
刺杀剑术,击中距离上限73像素,上限设置是SKILL_HITPOS_SET_IGNOREDEFENSE,
这样在刺杀剑术最远处(第2格)被击中时,伤害忽视防御
CD. 击中角度衰减
——————————————————————
说明:
设置技能击中目标相对于人物正对面角度的衰减方式
取值:
SKILL_HITANGLE_WEAK_NONE /* 无衰减 */
SKILL_HITANGLE_WEAK_LINEAR
/* 线性衰减(慢慢降低) */
SKILL_HITANGLE_WEAK_QUADRIC /* 平方衰减(迅速降低) */
示例:
技能半月弯刀,击中角度衰减为SKILL_HITANGLE_WEAK_QUADRIC,表明在半月弯刀正前方
被击中受到原始伤害,然后越到边缘伤害越低.
CE. 击中距离衰减
——————————————————————
说明:
设置技能击中目标相对于技能中心点位置的衰减方式
取值:
SKILL_HITPOS_WEAK_NONE = 0,
SKILL_HITPOS_WEAK_HALFLINEAR, /* 距离超过一半后线性衰减 */
SKILL_HITPOS_WEAK_LINEAR, /* 线性衰减 */
SKILL_HITPOS_WEAK_QUADRIC, /* 平方衰减 */
示例:
技能冰咆哮,击中距离衰减为SKILL_HITPOS_WEAK_LINEAR,表明冰咆哮正中心
受到原始伤害,然后越到外边缘伤害越低.
AS. 目标再击等待
——————————————————————
说明:
对于持续类技能,设置其伤害同一目标的间隔等待时间,毫秒
取值:
毫秒时间值:0或不填相当于关闭此功能
例子:
对于高额伤害技能,如逐日剑法,这个技能在冲刺的时候,有可能对同一目标进行多次伤害,
需要对此技能加个同一目标的再次攻击等待时间,以免目标被秒杀.
AT. 叛变时间
——————————————————————
说明:
一般情况下,释放技能后,这个技能是属于施法者的,若施法者处于技能攻击范围内,
技能是不会对施法者造成伤害的.例如:走到自己放的火墙中.
但若希望技能可以伤害自己,则可以设置一个时间让技能叛变,这个技能就不再属于原施法者,
就可以伤害原施法者.
取值:
0或不填: 技能永不叛变
其它值: 过多少毫秒后技能叛变
6.技能伤害
技能伤害设置
GC. 破坏力类型
——————————————————————
说明:
设置技能是哪种类型的破坏力
取值:
填写以下取值之一:
取值
说明
==================================================
物理攻击 /*
技能伤害值看人物攻击力 */
魔法攻击 /* 技能伤害值看人物魔法力 */
道术攻击 /* 技能伤害值看人物道术力 */
箭术攻击 /*
技能伤害值看人物箭术力 */
刺术攻击 /*
技能伤害值看人物刺术力 */
武术攻击 /*
技能伤害值看人物武术力 */
GD. 系别加成
——————————————————————
说明:
设置技能元素系别伤害加成
取值:
百分比值,也可以写0.1%等更小值
GF. 边际目标伤害项
——————————————————————
说明:
设置半月等有群体伤害的范围技能对于边际目标的伤害项有哪些.
(群体技能在释放时,锁定的目标是主目标,其他在群体技能攻击范围内的目标是边际目标.)
取值:
填写以下值,用|组合,设置技能对于边际目标可以造成哪些伤害.
取值 说明
==============================================================
基础伤害 /* 基础掉血伤害 */
特殊伤害 /* 击飞、击退等特殊伤害 */
BUFF伤害 /* 技能中的BUFF也作用于边际目标 */
脚本伤害 /*
技能中的脚本项也运行与边际目标 */
/* 不填默认执行以上所有伤害 */
例子:
填写:基础伤害,则边际目标只收到基础伤害,不收到特殊、BUFF、脚本伤害
填写:基础伤害|特殊伤害,则边际目标受到基础伤害和BUFF伤害
GG.
破坏力标志
——————————————————————
说明:
设置技能破坏力特性标志组合
取值:
填写以下值,用|组合
中文值 说明
==============================================================
无视物防 /* 无视物理防御 */
无视魔御 /* 无视魔法防御 */
无视系别防御 /* 无视系别防御 */
无视特破 /*
无视特殊破坏(麻痹\击飞\击退)防御等 */
受者保向 /* 受害对象保持其方向
*/
百分比破坏 /* 破坏值是百分比(0-100) */
无视魔法躲避 /* 无视魔法躲避 */
无视敏捷 /* 无视敏捷 */
BUFF随Miss /*
基础破坏Miss了,破坏所含buff也miss */
特破随Miss /*
基础破坏Miss了,破坏所含特殊破坏也miss */
总显特效 /*
总是显示破坏的受击特效,即时是破坏未命中(如:诱惑之光) */
BUFF受击特效 /* 破坏的buff视为受击特效,如:施毒术 */
武器声音 /*
破坏是使用武器的(需要播放击中时武器声音) */
暴击
/* 破坏含暴击 */
破坏转经验 /* 破坏转成经验 */
无装备磨损 /* 破坏不会造成装备磨损 */
无视伤害减免 /* 无视伤害减免 */
不广播 /*
不向附近广播目标受到破坏力(用于避免大面积破坏造成的网络洪灾) */
延迟特破 /*
延迟特殊破坏(正常破坏不延迟,延迟时间由left_delaydamge_time指出) */
无视特破抗性 /* 无视特殊破坏抗性 */
无攻触 /*
不产生攻击触发 */
忽略切割 /* 忽略切割 */
无伤害反弹 /* 没有伤害反弹 */
GH. 无视抵御几率
——————————————————————
说明:
设置技能可以忽视防御或魔御的百分比几率
取值:
0或不填:不使用此功能
百分比值:也可以写0.1%这样更小的值
GI. 受击动作
——————————————————————
说明:
设置技能攻击到目标后,目标摆出什么样的动作
取值:
0或不填:目标无动作
动作:填写动作表(Mir200/数据库/更多/特效和动作/动作.csv)中的动作名称
GJ. 攻断几率
——————————————————————
说明:
设置技能攻击目标能打断目标正在起手动作的百分比几率
取值:
百分比值,也可以写0.1%等更小值
GK.
全屏特效
——————————————————————
说明:
设置技能攻击到人物,在人物客户端产生的全屏特效
取值:
SCREEN_EFFECT_NONE /* 无
*/
SCREEN_EFFECT_WHITESPLASH /* 闪白光(白色前景覆盖,用作雷电击中等) */
SCREEN_EFFECT_WHITEBKGRD /* 白色背景 */
SCREEN_EFFECT_YELLOWBKGRD /*
黄色背景 */
SCREEN_EFFECT_REDBKGRD /* 红色背景 */
SCREEN_EFFECT_DARK /*
100%致暗 */
SCREEN_EFFECT_DARK25 /* 25%致暗
*/
GL.
全屏特效几率
——————————————————————
说明:
设置技能攻击目标在目标客户端产生全屏特效的几率
取值:
百分比值,也可以写0.1%等更小值
GM.
震屏效果
——————————————————————
说明:
设置技能攻击到人物,在人物客户端产生的震屏效果
取值:
CAMERA_SHAKE_NONE /* 无 */
CAMERA_SHAKE_VERTLIGHT /*
震屏(坚直方击 轻) */
CAMERA_SHAKE_VERTMID /* 震屏(坚直方击 中) */
CAMERA_SHAKE_VERTHEAVE /*
震屏(坚直方击 重) */
CAMERA_SHAKE_HORILIGHT /* 震屏(水平方击 轻) */
CAMERA_SHAKE_HORIMID /* 震屏(水平方击 中) */
CAMERA_SHAKE_HORIHEAVE /*
震屏(水平方击 重) */
CAMERA_SHAKE_DIRLIGHT /* 按方向振动(轻) */
CAMERA_SHAKE_DIRMID /* 按方向振动(中) */
CAMERA_SHAKE_DIRHEAVE
/* 按方向振动(重) */
CAMERA_SHAKE_RANDOMLIGHT /* 随机方向振动(轻) */
CAMERA_SHAKE_RANDOMMID /*
随机方向振动(中) */
CAMERA_SHAKE_RANDOMHEAVE
/* 随机方向振动(重) */
CAMERA_SHAKE_EARTHQUAKE /* 类似地震的感觉 */
GN.
特殊破坏
——————————————————————
说明:
设置技能产生的特殊破坏类型,最终是否产生还要看”特破几率(%)”
取值:
=========================
击退 /*
击退目标 */
召唤 /* 诱惑召唤,使目标对象成为自己的下属 */
移动 /* 移动 */
一击必杀 /* 一击必杀,圣言术 */
击飞 /* 击飞目标 */
指挥 /* 接受锁定指挥 */
延迟击退 /* 延时短暂时间后击退 */
跳跃 /* 跳跃 */
漩飞 /* 漩飞
*/
浮空 /* 击中目标致使其浮空 */
击旋 /* 击中目标导致目标原地旋转
*/
吸拽 /* 将目标向自己方向移动吸拽 */
瞬吸 /*
将目标瞬间吸到自己面前(擒龙手) */
瞬移 /* 瞬移到所指位置
*/
屏幕瞬移 /* 屏幕范围内随机瞬移 */
GO. 特破几率(%)
——————————————————————
说明:
设置技能产生特殊破坏的几率
取值:
对怪几率#对人几率
注意:几率是百分比值(%白分号不能漏),也可以写0.1%等更小值
GP.
特破动作
——————————————————————
说明:
设置技能产生特殊破坏后,受到特殊破坏的目标做出什么动作
取值:
填写动作表(Mir200/数据库/更多/特效和动作/动作.csv)中的动作名称
GQ.
特破值
——————————————————————
不同的特殊破坏类型,特破值意义不同:
击退
===========================
格式:特破值1#特破值2
特破值1:击退移动格数,写1击退1格,写2击退2格
特破值2:击退移动步伐时间,毫秒,此值越小退的越快
吸拽 (擒龙手)
====================================
格式:特破值1#特破值2
特破值1:吸拽移动格书,一般是3格,数值越大吸的越远
特破值2:被吸向施法者途中移动步伐时间,毫秒,此值越小退的越快
延迟击退
========================================
格式:特破值1#特破值2
特破值1:击退移动格数,写1击退1格,写2击退2格
特破值2:击退移动步伐时间,毫秒,此值越小退的越快
击飞
====================================
格式:特破值1#特破值2
特破值1:击飞初始速度,米/秒 (参考值:8)
特破值2:击飞后下坠重加加速度, 米/秒方(参考值:-16.5)
GR.
硬直时间
——————————————————————
说明:
设置技能攻击目标后对目标造成的硬直时间值,毫秒
硬直时间:目标攻击收招或受击时的僵硬时间.
取值:
毫秒时间值
GS. 破坏属性
——————————————————————
说明:
设置技能对目标哪个属性进行破坏,一般写HP,技能攻击到目标,造成目标扣血,
也可以写其它属性值,写哪个属性值,就扣哪个属性的数值
取值:
属性表中的属性名称
GT. 破坏几率
——————————————————————
说明:
设置技能对目标产生破坏的几率
取值:
不填:100%几率
几率:百分比值,也可以写0.1%等更小值
GU. 破坏值
——————————————————————
说明:
设置技能对破坏属性造成的基础伤害值
GV. 破坏值率
——————————————————————
说明:
设置技能对破坏属性造成的倍率值
取值:
倍率值
例子:
技能烈火剑法,破坏属性为HP,破坏值为35,破坏值率为3.0,
如果人物攻击值为50,则烈火剑法击中目标后,
目标扣血量=35(基础伤害) + 3.0×50(攻击力) =
185血量
GW. 准确
——————————————————————
说明:
释放技能人物可得到多少点额外的准确值
注意:只对当前技能有效
取值:
准确数值
GX. 额外幸运
——————————————————————
说明:
释放技能人物可得到多少点额外的幸运值
注意:只对当前技能有效
取值:
幸运值
K. 受击飘字
——————————————————————
说明:
设置技能攻击到目标产生伤害后的在目标身上的飘字方向
取值:
FLOATSTR_TYPE_NONE /* 无飘字 */
FLOATSTR_TYPE_UPFLOW /* 技能扣血红字向上飘 */
FLOATSTR_TYPE_HITFLOW /* 技能扣血红字向攻击方向飘 */
L. 飘字速度
——————————————————————
说明:
设置技能飘字快慢比例
取值:
1:正常速度
大于1: 速度加快,例如:1.2表示飘字速度加快1.2倍
小于1: 速度减慢,例如:0.7表示飘字速度减慢0.7倍
M. 技能攻击
——————————————————————
说明:
设置技能攻击类型
取值:
可以是以下值:
单体
群体
AB. 吸血几率
——————————————————————
说明:
设置技能攻击到目标后,有百分之多少几率触发吸血
取值:
0%-100%
AC. 吸血比例
——————————————————————
说明:
设置技能攻击到目标并触发吸血后,吸伤害值的百分之多少血量
取值:
0%-100%
AD. 吸魔几率
——————————————————————
说明:
设置技能攻击到目标后,有百分之多少几率触发吸蓝量
取值:
0%-100%
AE. 吸魔比例
——————————————————————
说明:
设置技能攻击到目标并触发吸血后,吸伤害值的百分之多少蓝量
取值:
0%-100%
AI. 攻击标志
——————————————————————
说明:
设置技能可以对哪些目标有效,哪些目标无效
取值:
以下取值组合(用|组合)
取值 说明
=======================================================
不攻玩家 /*
技能不攻击玩家 */
不攻怪物 /*
技能不攻击怪物 */
不攻不死系 /* 技能不攻击不死系对象
*/
不攻非肉身 /* 不攻非肉身对象 */
安全区无效 /* 技能在安全区内不攻击
*/
目标丢失不攻 /* 目标丢失后不再攻击 */
不攻宝宝 /* 不攻击下属对象 */
无属性BUFF /*
技能不叠加攻击buff */
不攻敌方 /* 技能对敌方无效 */
不能鞭尸 /* 不能鞭尸,技能不对正在倒下的目标进行伤害 */
只攻锁定 /* 只攻击锁定目标 */
不攻击 /*
不攻击(技能不产生攻击判定,去掉此标志后产生判定) */
自杀攻击 /*
自爆式攻击,一旦放出技能,自身立即死亡 */
AJ. 攻击反弹次数
——————————————————————
说明:
设置飞行类技能在击中目标后,进行多次反弹的总次数
取值:
0或空: 不反弹
其它值:最大反弹次数
注意:
技能存续时间到了,技能消失,可能还没有达到最大反弹次数
AK. 主动锁定周期
——————————————————————
说明:
设置技能主动搜索附近可攻击目标的时间间隔,毫秒
取值:
0或空: 不使用主动搜索功能,使用释放者的锁定目标(大部分技能填0)
毫秒值:每经历多少毫秒,技能搜索一次附近攻击目标
例子:
王者荣耀里的诸葛亮被动技能,6个魔法球围绕在身边,碰到目标即锁定攻击.
AL. 作用周期
——————————————————————
说明:
设置持续类技能每经历多少毫秒产生一下伤害,
技能作用周期越小,产生伤害频率越快.
取值:
0: 技能没有作用周期,是瞬间伤害
毫秒数值: 技能每多少毫秒产生一下伤害
例子:
技能火墙,作用周期写1000的话,表示每1000毫秒产生一下伤害
AM. 最小周期
——————————————————————
说明:
设置持续类技能最小作用周期时间,以免出现过小作用周期,导致出现连续伤害.
(如果设置了”作用周期率”,则技能作用周期会随人物魔法减少)
取值:
建议取值:100 – 500
AN. 作用周期几率
——————————————————————
说明:
每当到作用周期时间时,最终是否产生伤害的几率
取值:
0% – 100% (注意:不填是100%几率)
AO. 作用周期率
——————————————————————
说明:
1点人物魔法上限值,加多少毫秒作用周期
取值:
毫秒时间值
例子:
假如火墙作用周期是2000,作用周期率是-10,人物有50点魔法,
则最终作用周期 = 2000 +
(-10×50) = 1500毫秒
由本来的2000毫秒烧一次,提速到1500毫秒烧一次
GX. 延迟破坏
——————————————————————
说明:
设置技能是否为延迟破坏
一般设置为延迟破坏的技能,在其举刀就释放,
取值:
0:不是
1:是
GY. 击中穿戴
——————————————————————
说明:
设置技能命中目标,给目标穿戴什么装备,最终是否穿戴还要看”穿戴几率”
取值:
物品表中的物品名称,这个物品要是可以穿戴的装备
例子:
技能射箭的击中穿戴是:箭
箭这个物品在物品表中是可以插在胳膊上的一根箭,也就是说被射箭技能击中,
有一定几率胳膊上会插一根箭
GZ. 穿戴几率
——————————————————————
说明:
设置技能击中穿戴的几率
取值:
百分比几率值,也可以是0.1%、0.01%更小的几率
例子:
技能射箭的击中穿戴是:箭, 穿戴几率是:0.1%
意思是每次被射箭技能击中,有0.1%几率胳膊上插根箭.
HA.
渐进周期
——————————————————————
说明:
设置技能逐渐破坏间隔时间,毫秒
取值:
毫秒时间值
如果写0或不填,则为普通技能,一次性产生全部伤害
例子:
1级治愈术,渐进周期为1600,表示每1600毫秒加1次血
HB. 渐进计数
——————————————————————
说明:
设置技能逐渐破坏总次数
取值:
次数值
例子:
1级治愈术,渐进周期为1600,渐进计数为3,表示每1600毫秒加一次血,总共加3次,
每次加多少血,看技能破坏值填的是多少
HC. 渐期率
——————————————————————
说明:
设置1点技能伤害可以增加多少毫秒的渐进周期
取值:
可以写负值,这相当于在减少渐进周期,从而加快技能效果
KH. 破坏其它技能
——————————————————————
说明:
设置本技能减少其它技能的存续时间
取值:
被破坏技能名#被破坏技能等级(写0所有等级)#破坏几率#减少被破坏技能持续时间(百分比)#飘字文本
例子:
技能开天斩可以减少魔法盾的存续时间,
1级开天戡的”破坏其它技能”为:魔法盾#0#10%#15%#破盾15%
解释:当开天斩打到所有等级的魔法盾时,有10%几率,扣掉魔法盾15%的存续时间,同时飘字”破盾15%”
HF. 技能脚本
——————————————————————
说明:
设置技能执行时,在当前施法者身上执行的脚本命令,可以是任意命令带参数,也可以是一个脚本段名(默认在QF中)
利用技能脚本,可以做出超越伤害的技能逻辑。
例子1:
若此字段填写:
RandomPos,则技能成功执行后,施法者在当前地图随机,
例子2:
若此字段填写:
@xxx,则技能成功执行后,将执行QF脚本中的[@xxx]段
例子3: 群体雷电(群雷)
————————————————–
在技能雷电术的技能脚本列填写:@雷电术
在QFunction-0.txt中:
[@雷电术]
#IF
#ACT
//
这1个雷电攻击当前目标(如果当前目标死亡,则选最近目标攻击)
ReleaseMagicEx 雷电术 0 0 0 0 300
//
以下5个雷电攻击随机目标(第四个参数为3,详见ReleaseMagicEx)
ReleaseMagicEx 雷电术 0 0 3 0
200
ReleaseMagicEx 雷电术 0 0 3 0 150
ReleaseMagicEx 雷电术 0 0 3 0
300
ReleaseMagicEx 雷电术 0 0 3 0 350
ReleaseMagicEx 雷电术 0 0 3 0
400
KK. 触发技能
——————————————————————
说明:
设置释放技能有一定几率触发其他技能,最多可指定8个技能,每个技能用|分割.
当设置有多个技能被触发时,按填写顺序和几率依次检测,最终只有一个技能触发出来.
填写格式:
触发几率(支持变量)#技能名称#技能等级(写0最高级)#无目标位置(0:自身
1:随机)
注意:变量最多可写55个英文,约18个汉字
例子:
10%#雷电术|10%#冰咆哮|N$火墙几率#火墙
7.技能BUFF
技能BUFF
一个技能可以产生4个BUFF,每个BUFF可以带4个属性.
HW – II 第1个技能BUFF
IJ – IV
第2个技能BUFF
IW – JI 第3个技能BUFF
JJ
– JV 第4个技能BUFF
——————————————————————
BUFF名称:填写BUFF表中的BUFF名称
buff几率:产生BUFF的百分比几率,可以写0.1%
设置率%:填0
抗性属性:抵抗这个BUFF产生几率的属性,填空或0表示没有
buff源:查看标志大全Buff来源
buff属性:属性名1:值1 … (最多可以写4条属性,每对属性以空格隔开)
buff作用间歇:如果是定期发作的BUFF(如红毒每秒扣一次血),这里写发作周期时间,毫秒
buff显示间歇:火炙、冰冻、电击这三种BUFF需要设置显示间隔,取值一般在30-120之间
buff时间:BUFF总持续时间,毫秒
间歇系数:1点技能伤害增加多少毫秒的间歇时间,写负数减少作用间歇,相当于加快BUFF作用效果
存续系数:1点技能伤害增加多少毫秒的BUFF时间
属性系数:1点技能伤害增加多少BUFF属性值
buff标志:查看标志大全BUFF标志
8.技能召宝宝
BN. 召唤怪物
——————————————————————
说明:
释放技能可以召唤出什么怪物当作释放者的宝宝
取值:
怪物表(“Mir200/Envir/Data/怪物(Monster).csv”)中的怪物名称
例子:
技能召唤骷髅此字段值为:变异骷髅,当释放技能时,将怪物变异骷髅召为自己的宝宝.
BO. 召唤怪物等级
——————————————————————
说明:
释放技能召唤怪物宝宝的初始等级
BP. 召唤排它组
——————————————————————
说明:
处于同一排批组号的召唤相互排斥,只能招一个
取值:
召唤排它组从1开始自定义编号
写0表示没有排它,可以同时招
例子:
技能召唤骷髅”召唤排它组”是1,技能召唤神兽”召唤排它组”也是1,
那么就不能同时召唤骷髅和神兽,因为它们的排它组是相同的,互相排斥.
BQ. 最大召怪等级
——————————————————————
说明:
释放技能召唤怪物宝宝可以升到的最高等级
BR. 召怪个数
——————————————————————
说明:
技能释放后可招出的怪物个数,目前一次最多可招出32767个怪物.
取值:
格式1:
数量值,取值范围:0-32767,不填默认招1个怪物
格式2:
最少数量#最大数量
(如果这样写,则每次招出数量在最少和最大数量间随机)
BS. 召怪位置
——————————————————————
说明:
设置技能召唤怪物宝宝出现位置
取值:
0:和人物重叠
1:人物前方1格位置
2:人物前方2格位置
-1:
人物后方1格位置
-2: 人物后方2格位置
3:人物周围3×3格范围内随机
4:
人物周围4×4格范围内随机
…
BT. 召怪标志
——————————————————————
说明:
设置技能召唤怪物宝宝后,宝宝的行为标志
取值:
写以值的组合(用|组合),如果没任何特殊标志需求,可不填
取值 说明
==================================
不跟主人 /* 招出的宝宝不跟主人 */
不随主死 /* 宝宝不随主人死 */
不倒计时消失 /* 主人下线或丢失 宝宝还存续一段时间 */
不拉回身边 /* 不将召唤的下属怪物拉回身边(如:角绳放幼蛾) */
招出不提示 /* 招出时不提示 */
跟随但不追赶 /* 跟随但不追赶主人 */
不被控制休息 /* 不被主人控制休息和战斗 */
一次全招出 /*
一次性招出所有指定数量的宝宝(如果没有此标志,则一个一个招出 */
不检查已招数量 /*
每次释放招出技能,不检查当前已有的宝宝数量(默认是检测的,总招出数量不能超过最大数量)
* 注意:如果使用这个标志,每次招出都会在地图上增加宝宝,越招越多
*/
例1:
怪物角蝇招幼蛾,设置招怪个数为12,则每次检测到有人物在其视野范围内要攻击时产生一个幼蛾,
直到产满12个停止,如果有幼蛾被打死,则补招至12个.
例2:
怪物祖玛教主招小弟,设置召唤怪物为2#10,且召唤标志设置为:”一次全招出|不检查已招数量”,
则每次召唤技能触发时,一次性招出2至10个(随机)怪物.
以上例子中,如果去掉标志”不检查已招数量”,则每次随机招2至10个,直到招满10个不在招.
BU. 拉回BUFF
——————————————————————
说明:
当宝宝招出并存在时,再次释放招出技能可以拉回宝宝,此字段可以设置宝宝拉回后加什么BUFF.
取值:
BUFF表中的BUFF名称
BV. 拉回BUFF属性
——————————————————————
说明:
拉回BUFF中所带属性,最后可以设置4条属性
取值:
属性名1:值1 属性名2:值2 属性名3:值3 属性名3:值3
属性名取值于属性.csv表中的属性名称
BW. 拉回BUFF时间
——————————————————————
说明:
设置技能召唤出来的宝宝被拉回时获得BUFF持续时间
取值:
时间值:默认是毫秒,也可以写xx秒、xx分钟、xx小时
BX. 下属时间存续率
——————————————————————
说明:
设置诱惑之光类技能诱惑怪物成宝宝后,宝宝的存续时间系数
取值:
0:技能诱惑的宝宝永久存在
其它值用于乘以怪物表中”下属续存”值,得到最终宝宝的存续时间
示例:
诱惑之光此字段值为1,假如用诱惑之光招怪物”蝎子王”,
“蝎子王”在怪物表中”下属续存”值是2小时,那么诱惑之光最终诱惑”蝎子王”可以存续2小时,
如果此字段值为1.5,则持续时间=2小时 x 1.5 =
3小时
[地图表] – 地图表
地图表详解
表位置:”Mir200/Envir/Data/地图(MapInfo).csv” [查看样表]
A.
地图名称
————————————————————
说明:
地图唯一名称,不能重复,用以标识唯一的地图
其它需要填写地图名称的脚本参数或表格数据,均使用此名称.
取值:
最多42个汉字
B. 显示名称
————————————————————
说明:
设置地图在客户端的显示名称,只作显示用,不能引用此名称.
取值:
最多42个汉字
C. 别名
————————————————————
说明:
设置地图的小名叫法,比如:石墓洞穴1层,别名可叫猪洞等,可以不写
如果写了别名,则会在当前地图的传送列表上显示
取值:
最多42个汉字
D. 地图ID
————————————————————
说明:
设置地图的唯一数字标识ID
取值:
从1开始,不能是0
注意:地图ID在做版本的时候可以随时重排,正式上线ID不能随意更改
E. 文件名
————————————————————
说明:
设置地图对应的文件名
所有地图文件都存放在”Mir200/Map”目录下,填写的文件名,就是这个目录下的文件名
注意:地图文件名不能有中文
F. 小地图
————————————————————
设置地图小地图图像素材,填写格式:
小地图素材名#混合模式(选填)#染色颜色(选填)
其中,1.
小地图素材名可读取res目录小图片
2.
混合模式可参考”标志大全”中的混合模式填写
G. 线程组
————————————————————
说明:
在本引擎中,地图运行在不同的线程中,可以设置哪几个地图共一个线程,
以充分利用现代CPU多线程架构提搞效率.
GM在规划地图线程组,可以直接理解成地图分组,即哪些地图适合放在一个分组里,
例如:
1.
几大主城建议1个主城1个线程,线程组名自定义,可以和地图名一样
2. 同一个地洞的一层、二层、三层…… 可以规划到一个组里,设置同样的线程组名
3.
地图上的小房间可以规为一组(小房间多且进出频繁,如果独立占用1个运行线程很浪费)
H. 环境光强度
————————————————————
填1地图全亮,填0地图全黑(但有光源可以照亮)
填介于0.0到1.0之前数,从黑到亮
I.
空退时间(分钟)
————————————————————
设置地图里没有一个玩家时,过多长时间自动关闭
注意:这里是地图中没有玩家才开始计时,只要地图里有一个玩家,则地图永不关闭
J.
挖物重置时(分钟)
————————————————————
对于可挖矿的地图需要设置多长时间后,地图上可挖矿产重新刷新
K. 地图标志
————————————————————
设置地图特性,可以取以下值组合(用坚线|组合多个标志):
不可随机 /* 不能在当前地图飞随机 */
不可传送 /* 不可传送(包括记忆套传送/夫妻传送/师徒传送等) */
不可挂机 /* 不可挂机 */
禁吃红药
/* 不能用红药 */
禁吃蓝药 /* 不能用蓝药
*/
不可PK /* 不可PK
*/
安全战斗 /* 地图上安全攻击(不加诅\不红名\不暴物品)
*/
下线飞出 /* 下线离开地图
*/
进入公告 /* 进入提示 */
隐藏宝宝 /* 地图隐藏下属 */
锁定视距
/* 禁调视野 */
禁止寻路 /* 不能寻路
*/
全亮无效 /* 全亮无效,即使使用全亮,也不全亮
*/
地物光源 /* 有地物光源(光源一般是动画)
*/
有挖掘物 /* 有挖掘物 */
怪物反转 /* 反转怪物能力属性(等级越高,越弱) */
玩家反转 /* 反转玩家能力属性(等级越高,越弱) */
禁止组队 /* 不能组队 */
编组模式
/* 仅组队攻击模式 */
乱斗模式 /* 乱斗模式(合法PK,不掉穿戴物品)
*/
禁用商铺 /* 当前地图不能打开商铺
*/
启动加载 /* 当游戏服务器启动时就初始打开的地图
*/
禁用道具 /* 禁用道具 */
记录日常 /* 需要创建日常状态记录 */
不可飞出 /* 不能用传送道具和技能离开 */
不黑透 /* 用在部分需要保留黑底的地图素材 */
禁止丢弃 /* 此地图不允许扔东西 */
禁止交易 /* 此地图不允许交易 */
换图掉落 /*
从此地图离开将检查包裹中是否有换图掉落的物品,有则执行掉落 */
神秘人 /* 统一外观、不能看装备(混水摸鱼)模式 */
禁止穿戴 /* 禁止穿戴和脱下任何装备 */
显示区域名 /* 大地图打开时,默认显示地图区域名称 */
L.
对象比例
————————————————————
设置人物、怪物、NPC在此地图的统一比例大小,默认不填.
M.
帧移动索引
————————————————————
设置人物、怪物在此地图移动的帧步伐索引,默认不填.
N.
单元格尺寸
————————————————————
填写地图单元块尺寸宽度和高度,默认不填.
O. 太阳光源
————————————————————
填写此地图上的全局光光源名称,光源名称在”光源表”中记录,默认填:太阳光
P.
环境光源
————————————————————
填写此地图上的环境光光源名称,光源名称在”光源表”中记录
户外地图默认填:晴天天光
洞穴地图默认填:洞穴环境光
Q.描述备注
————————————————————
填写地图基础描术的自定义备注,支持富文本
[地图表] – 区域
地图区域表详解
表位置:
“Mir200/Envir/Data/SK扩展表格/地图区域.csv”
[查看样表]
表作用:
定义指定地图上的多个封闭区域,一般用来定义安全区等.
也可以自定义一些区域,然后当人物在进出这些区域时被触发,详细查看:区域触发
A.
地图名
———————————————————–
说明:
要定义哪个地图的区域,同一个地图有多个区域的,地图名相同
取值:
地图表”Mir200/Envir/Data/地图(MapInfo).csv”中的地图名称(注意不是显示名称)
B. 区域ID
———————————————————–
说明:
定义每个区域的唯一数字标识,同一地图下的区域ID不能重复.
取值:
纯数字值
C. 区域名称
———————————————————–
说明:
区域的名称标识,同一地图下的区域名称不能重复
取值:
最多10个汉字
D.
显示名称
———————————————————–
说明:
设置区域在大地图上的显示名称,此字段值仅作显示用,可以重复
取值:
最多10个汉字
E. 显示颜色
———————————————————–
说明:
设置区域显示名称的显示颜色
取值:
背景色#文本颜色
F. 形状
———————————————————–
说明:
设置区域形状
取值:
点
矩形
菱形
G – J. 区域范围点(X Y)
———————————————————–
说明:
设置区域范围点,不同的区域形状,所需填写的坐标不同.
取值:
区域形状 G(X
Y) H(X
Y) I(X Y) J(X
Y)
=========================================================
点 区域点坐标 不填
不填 不填
矩形 矩形左上角 矩形右下角 不填
不填
菱形
菱形上点 菱形右点
菱形下点 菱形左点
K. 环境光强
———————————————————–
说明:
设置进入该区域内的明暗度
取值:
0:
全黑
1.0 全亮
0.0 –
1.0之间的值:越接近1越亮
L. 区域标志
———————————————————–
说明:
设置区域特性组合,以下取值组合(用|组合)
取值:
取值
说明
=================================================
禁止传送
/* 在此区域内禁止传送 */
进入提示 /* 进入此区域时提示 */
离开提示 /* 离开此区域时提示 */
不受攻击 /* 在此区域内不受攻击 */
密封区域 /* 密封区域,不能移动进去 */
初始无效 /* 区域初始是不被激活的 */
挂机停留 /* 挂机不跑出区域范围 */
禁止自动拾取 /*
在此区域内飞入拾取失效 */
下属穿身 /* 在此区域内宝宝下属可以穿人 */
禁止丢弃 /* 在些区域内禁止丢弃物品
*/
停止挂机 /* 进入区域后停止挂机
*/
怪物禁入 /* 禁止怪物进入此区域
*/
寻路不可达 /*
此区域不能通过寻路到达,也不能从此区域寻路出去 */
注意:
在设置区域标志等信息时,注意区域包含和重叠问题,即一个区域可能包含在另一个更大的区域里,
如果对某个区域设置了某个标志,可能需要对所有重叠或包含的区域都设置.
M. 区域类型
———————————————————–
说明:
设置区域类型,可以是以下值的组合(用|组合)
取值:
取值
说明
====================================================
安全区
/* 人物不被人物攻击的区域
*/
回城区
/* 使用回城卷传送到的区域 */
摆摊区 /* 可以摆摊的区域 */
练技能区 /* 释放技能可以加技能点的区域 */
攻城区域 /*
沙巴克攻城战区域 */
N. 边界特效
———————————————————–
说明:
设置围成区域的单独光柱特效
取值:
特效ID#偏移X#偏移Y#绘制步距#深度偏移
[BUFF表] – BUFF攻击触发
表位置:
Mir200/Envir/Data/SK扩展表格/buff攻击触发.csv
表说明:
此表每行数据,相当于配置一个人物攻击触发.
配置当人物身上有什么BUFF时,用什么技能攻击目标后,可以对自己或目标产生什么BUFF.
数据示例:
A
E F
G H K
L N
T
—————————————————————————————
拖影+3,,,,0,7秒,蛛网,100%,,,HP百分比:-1%
ATTR_HRF:关闭恢复|关闭增涨,1000,,50000,,,,,,@aaa
这一行的意思是:
当人物身上有“拖影+3″这个BUFF时(无论通过何种方式获得,只要有),
然后释放任意技能,可以对目标100%产生一个蛛网BUFF,同时执行QF中的@aaa
如果要测试这条数据,直接用命令AddBuff给人物“拖影+3″BUFF.
例子字段说明:
===========================
字段A:
BUFF名称填写为“拖影+3”,这是一个BUFF名,来自BUFF表的某行数据
然后技能和等级都没填,表示释放所有技能都能触发这条BUFF攻击触发
继续看,字段E技能给自己填0,表明击中目标后产生的BUFF时给对方的
字段F:是CD时间,给的7秒,表示每次触发后,再等7秒才能再次触发
字段G:是攻击触发给目标身上加蛛网BUFF
字段H:是几率,100%表是每次都能加上
字段K:是这个BUFF在目标身上产生后,给目标带来哪些属性上的伤害
字段L:表示每1000毫秒,执行下字段K中填写的伤害
字段N:写50000毫秒(50秒),表示产生的BUFF在目标身上将持续50秒
字段T:表示每次成功触发后,执行QF中的[@aaa]段,这里S字段没填,表示100%几率执行触发字段
全部表字段说明:
A.
BUFF名称
——————————————————–
人物身上需存在什么BUFF,再结合设置释放的技能,才能触发。
BUFF名取值于BUFF表中的名称.
B.
攻击技能
——————————————————–
设置结合字段A中填的BUFF,释放什么技能攻击目标,才触攻击BUFF.
如果此字段不填,则释放所有技能均可以触发.
C.
技能等级
——————————————————–
如果设置了B字段,则可进一步设置该技能的哪一等级才能触发攻击BUFF,
如果此字段不填,则所有技能有效
D.
攻击标志
——————————————————–
点击查看:[攻击标志]
E. BUFF给自己
——————————————————–
设置击中目标产生的BUFF时给目标还是给自己,
0:给目标(默认)
1:给自己
F. CD时间(秒)
——————————————————–
设置本条BUFF攻击触发后,下次再触发的CD时间
G – R
击中目标后,设置给目标的BUFF参数
——————————————————–
G.
触发BUFF:设置攻击到目标后给目标什么BUFF,填写BUFF表中的BUFF名称
H. buff几率:产生BUFF的百分比几率,例:0.1%
I. 设置率%:填0
J.
抗性属性:抵抗这个BUFF产生几率的属性,填空或0表示没有
K. buff属性:属性名1:值1
… (最多可以写4条属性,每条属性以空格隔开)
L.
buff作用间歇:
如果是定期发作的BUFF(如红毒每秒扣一次血),这里写发作周期时间,毫秒
M.
buff显示间歇:火炙、冰冻、电击这三种BUFF需要设置显示间隔,取值一般在30-120之间
N.
buff时间:BUFF持续时间,毫秒
O.
间歇系数:1点技能伤害增加多少毫秒的间歇时间,写负数减少作用间歇,相当于加快BUFF作用效果
P.
存续系数:
1点技能伤害增加多少毫秒的BUFF时间
Q.
属性系数:
1点技能伤害增加多少BUFF属性值
R.
buff标志:查看标志大全
BUFF标志
S.
脚本几率
——————————————————–
设置执行脚本几率,执行字段T(触发脚本)中设置的脚本段.
几率用百分号表示,例如:10%,0.1%,支持人物变量填写.
T.
触发脚本
———————————————————
本条BUFF攻击被触发后,并命中S字段脚本几率,执行的QF中的脚本段
[BUFF表] – BUFF受击触发
BUFF受击触发
表位置:
Mir200/Envir/Data/SK扩展表格/buff受击触发.csv
表说明:
此表每行数据,相当于配置一个人物受击触发.
配置当人物身上有什么BUFF时,收到什么技能攻击后,可以对自己或目标产生什么BUFF.
数据示例:
A D E
G H K N R
—————————————————————————————
神龙附体,,,怪物,0,,石化,100%,,,持续状态:麻痹,,,5000,,,,冻结动作,,
这一整行的意思是:
当人物身上有“神龙附体”这个BUFF时(无论通过何种方式获得,只要有),
然后被怪物的任意技能击中,可以对攻击方100%产生一个石化BUFF.
如果要测试这条数据,直接用命令
AddBuff给人物“神龙附体”BUFF.
例子字段说明:
===========================
字段A:BUFF名称填写为“神龙附体”,这是一个BUFF名,来自BUFF表的某行数据
然后技能和等级都没填,表示所有技能都能触发这条BUFF触发
继续看,字段E技能给自己填0,表明受击后产生的BUFF时给对方的
字段G:是受击触发给目标身上加石化BUFF
字段H:是几率,100%表是每次都能加上
字段K:是这个BUFF在目标身上产生后,给目标带来哪些属性上的伤害
字段N:写5000毫秒(5秒),表示产生的BUFF在目标身上将持续5秒
字段R:是BUFF标志“冻结动作”,这个标志表示会冻结受害人的动作(从而产生石化定住的效果)
全部表字段说明:
A. BUFF名称
——————————————————–
人物身上需存在什么BUFF,再结合设置被攻击的技能,才能触发。
BUFF名取值于BUFF表中的名称.
B. 受击技能
——————————————————–
设置结合字段A中填的BUFF,人物被什么技能攻击后,才触攻击BUFF.
如果此字段不填,所有技能均可以触发.
C. 技能等级
——————————————————–
如果设置了B字段,则可进一步设置该技能的哪一等级才能触发攻击BUFF,
如果此字段不填,则所有技能有效
D.
攻击方
——————————————————–
人物: 是人物攻击自己才触发
怪物: 是怪物攻击自己才触发
E.
BUFF给自己
——————————————————–
设置产生的BUFF时给攻击方还是给自己,
0:给攻击方(默认)
1:给自己
F.
CD时间(秒)
——————————————————–
设置本条BUFF受击触发后,下次再触发的CD时间
G
– R 击中目标后,设置给目标的BUFF参数
——————————————————–
G.
触发BUFF:设置攻击到目标后给目标什么BUFF,填写BUFF表中的BUFF名称
H.
buff几率:产生BUFF的百分比几率,例:0.1%
I. 设置率%:填0
J.
抗性属性:抵抗这个BUFF产生几率的属性,填空或0表示没有
K.
buff属性:属性名1:值1 … (最多可以写4条属性,每条属性以空格隔开)
L.
buff作用间歇: 如果是定期发作的BUFF(如红毒每秒扣一次血),这里写发作周期时间,毫秒
M.
buff显示间歇:火炙、冰冻、电击这三种BUFF需要设置显示间隔,取值一般在30-120之间
N.
buff时间:BUFF持续时间,毫秒
O.
间歇系数:1点技能伤害增加多少毫秒的间歇时间,写负数减少作用间歇,相当于加快BUFF作用效果
P.
存续系数: 1点技能伤害增加多少毫秒的BUFF时间
Q. 属性系数:
1点技能伤害增加多少BUFF属性值
R.
buff标志:查看标志大全 BUFF标志
S.
脚本几率
——————————————————–
设置执行脚本几率,执行字段T中设置的脚本段.
几率用百分号表示,例如:10%,0.1%,支持人物变量填写.
T.
触发脚本
———————————————————
本条BUFF受击被触发后,并命中S字段脚本几率,执行的QF中的脚本段.
[特效表] – 特效表
特效表详解
表所在目录:
Mir200/Envir/Data/特效.csv
[查看样表]
A. 特效名称
——————————————————-
说明:
特效唯一名称.
在各种对特效引用的地方,如数据表格或脚本命令中,可以填写此名称
取值:
最多不能超过10个汉字
不能是纯数字、不能重复,不能含有
!@r#$%
^&*+-以及空格等特殊符号
B. 特效ID
——————————————————-
说明:
特效唯一数字ID.
在各种对特效引用的地方,如数据表格或脚本命令中,可以填写此ID
取值:
纯数字,从1到21亿,不能是0
C. 方向数
——————————————————-
说明:
当特效分多个方向时,此值指明特效总共有多少个方向,一般是8个方向
取值:
方向数,一般为8,少数特效有16方向
无方向特效不填
D. 方向偏移
——————————————————-
说明:
当特效分多个方向时,每个方向上的特效帧数
取值:
只用填第一个方向上的特效帧数,其它剩余方向帧数默认和第一个方向相同
无方向特效不填
E. 光源
——————————————————-
说明:
特效释放在洞穴类地图中的光照效果
取值:
取值于”Mir200/数据库/更多/动作与特效/光源.csv表中的光源名称
F. 声音
——————————————————-
说明:
特效播放声音
取值:
Mir200/client_data/res/res3/r1.list文件中第一列的值
或
Mir200/Wav目录下的声音文件名(不带后缀)
G. 特效标志
——————————————————-
说明:
特效特性组合
取值:
英文取值 中文取值
说明
=================================================
EFFECT_FLAG_DONOT_OVERLAPSAME 相同不叠 /*
不重叠相同 */
EFFECT_FLAG_DONOT_ADDTODEATH
死亡不加 /* 特效不加在死亡对象上 */
EFFECT_FLAG_ONLYIDLE
仅待机 /* 特效仅在对象待机时显示 */
H. 九宫裁切
——————————————————-
说明:
设置特效九宫格拉伸边界裁剪值
取值:
左边像素#右边像素#上边像素#下边像素
示意图:
H. 九宫边距
——————————————————-
说明:
设置特效九宫格拉伸后的边距离偏移像素
取值:
X微调#右边延伸#Y微调#下边延伸
应用场景:
对于边框类特效,进行九宫拉伸裁切后,可能没有完美对齐到边框,如下图:

此时可以通过填写九宫边距来使边框类特效完美覆盖到边框,如下图:

上图示例中九宫边距值为:
-44#45#-34#34,这样写是将上面第1张图中的特效
向左移动44个像素,右边延伸45个像素,上边向上移动34个像素,下边延伸34个像素,
最后达到第2张图的完美贴合效果
J. 首帧图像
——————————————————-
说明:
设置特效首张图像的素材名
取值:
已导入素材库中的任意素材名称或”素材库ID/序号”
K. 帧数
——————————————————-
说明:
设置特效帧数
取值:
帧数数字
L. 每帧毫秒
——————————————————-
说明:
设置特效每帧播放时间毫秒值,时间越短,播放越快
取值:
毫秒时间值,一般填60,90或120等
M. 偏移x
——————————————————-
说明:
设置特效绘制时的整体位置偏移X
取值:
-32000 到 32000
N. 偏移y
——————————————————-
说明:
设置特效绘制时的整体位置偏移Y
取值:
-32000 到 32000
O. 延迟播放帧
——————————————————-
说明:
设置动作匹配类特效在延迟动作第几帧后再播放
取值:
0或不填:不延迟,直接从第1帧播放
其它数值:延迟帧数
P. 深度偏移
——————————————————-
说明:
当特效显示在3D人物或怪物上时,需要设置”动画标志”(T列):深度测试
这种叠加在3D对象上的特效,有时前后遮挡关系不正确,
此时就需要调整深度偏移来达到正确遮挡关系.
取值:
一般先以16起手,如果调整后特效遮挡还不正确,则可尝试用-16,
还不正确再用正负32、正负48、正负64、正负128…等进行测试,直到遮挡关系正常
Q. 动画类型
——————————————————-
说明:
设置动画类型
取值:
0或不填:标准序列帧动画
1:渐进向前移动动画
2: 随机位置出现动画
R. 动画参数
——————————————————-
说明:
暂时不用,不填
S. 比例
——————————————————-
说明:
设置特效整体比例大小
取值:
0或不填:原始比例
小于1:缩小
大于1:放大
T. 动画标志
——————————————————-
说明:
设置特效动画标志
取值:
查看:标志大全->动画标志
U. 混合模式
——————————————————-
说明:
设置特效混合模式
取值:
查看:标志大全->混合模式
V. 混合颜色
——————————————————-
说明:
设置特效染色颜色
取值:
颜色表颜色值(0-255)
或
RGBA颜色值(R:G:B:A)
[特效表] – 飘血设置
飘血设置表详解
表文件:
Mir200/Envir/Data/SK扩展表格/飘血设置.csv [查看样表]
A. 飘血类型
——————————————————-
说明:
引擎内置了若干种飘血类型,用不到的可删除。
其它的由开发人员自行定义。
取值:
自定义的任意字符,不能超过30个汉字,不能重复,后面很多如BUFF、技能等需要飘字的地方会引用这个名字.
B. 前缀文字
——————————————————-
说明:
设置飘血前缀文字的文本
取值:
最多30个汉字
C. 文字图片
——————————————————-
说明:
设置飘血前缀文字图片
取值:
填写”编辑器素材名” 或
“PAK号/序号”或开发目录图片名,任填其一引擎都识别,但要写正确.
例子:
下图中紫色文字”切割”,就是一张文字图片.
D. 加号图片
——————————————————-
说明:
设置飘血数字中的’+’号图片
取值:
填写”编辑器素材名” 或 “PAK号/序号”或开发目录图片名,任填其一引擎都识别,但要写正确.
E. 减号图片
——————————————————-
说明:
设置飘血数字中的’-‘号图片
取值:
填写”编辑器素材名” 或 “PAK号/序号”或开发目录图片名,任填其一引擎都识别,但要写正确.
F. 数字图片
——————————————————-
说明:
设置飘血数字从0到9的每个数字图片
取值:
填写图片”素材名”
或 “PAK号/序号”或开发目录图片名,任填其一引擎都识别,但要写正确.
然后在数据库,数字1到数字9要接在数字0后连续排放
例子:
下图中的0123456789,在素材库中连续存放,在指定飘血数字图片时,只需指定数字0的素材名即可.
G. 数字图类型
——————————————————-
说明:
设置飘血数字数字图片类型
取值:
0:默认类型,0123456789一共10个连续
图片
1:
带百分号数字,0123456789%.
从0到9后面现加一个百分号(%)和一个点(.),一共12个连续图片
H. 数字间距
——————————————————-
说明:
设置图片数字之间的横向距离,以像素计
取值:
0:
默认间距
大于0: 增大数字间横向距离
小于0:减小数字间横向距离
I. 图像颜色
——————————————————-
说明:
设置图片数字之间的横向距离,以像素计
取值:
0或空:默认间距
大于0: 增大数字间横向距离
小于0:减小数字间横向距离
BUFF飘血
在BUFF表中的”飘血类型”字段填写”飘血设置.csv”表的飘血类型名.
例子:治愈术飘血
======================
第1步:在飘血设置表中新增一行飘血数据
第2步:新增一个BUFF,BUFF表的飘血类型填写第1步中的飘血类型
第3步:新增治愈术技能,在技能BUFF中引用第2步的BUFF
技能攻击飘血
在技能表中的”受击飘字”(L)字段填写飘血表(“SK扩展表格\飘血设置.csv”)表中的”飘血类型”名
其他飘字设置
在”Envir/Data/!配置项.txt”文件中设置:
金币获得飘字:飘血类型名
经验获得飘字:飘血类型名
脚本命令控制人物任意飘字
命令:
AddFlyNum ①飘血类型 ②数值
参数:
①飘血类型: 飘血设置表中的飘血类型名
②数值:
数字数值,可以带正负号,和小点,取决于所引用的飘血设置是否包含符号和小点
例子:
#IF
#ACT
AddFlyNum
自定义飘血名 100
[特效表] – 小血条样式
小血条样式表
本引擎支持自定义怪物或人物头顶小血条,可以用任意进度素材做血条皮肤.
表位置:
Mir200/Envir/Data/SK扩展表格/小血条样式.csv
说明:
小血条是在怪物或人物头顶显示的血条,它跟随人物,注意和大血条(在界面上固定位置显示)不同.
本引擎支持完全自定义显示对象头顶小血条,包括更换血条图片或动图、控制血条便宜位置等.
本表中每行数据是一个血条配置,然后被其他表或血条设置命令引用,详见示例.
字段详细说明:
A.
小血条ID
————————————————————-
设置血条唯一ID(纯数字),这个数字会被其他表或血条命令引用
B.
小血条名
————————————————————-
设置血条唯一名字(不能是纯数字),这个名字会被其他表或血条命令引用
C.
底图
————————————————————-
设置血条背景图素材名或文件名,绘制在底层,支持动图.
填写格式:素材或文件名#帧数#每帧毫秒#比列X#比列Y#混合模式
地图可以不填,这样将显示默认血条图,后面的各种偏移字段仍然有效,相当于设置默认血条在头顶偏移.
D.
血量图
————————————————————-
设置血条图,绘制在底图上层,且随血量向变化,支持动图.
填写格式:素材或文件名#帧数#每帧毫秒#比列X#比列Y#混合模式
血量图可以不填,这样将显示默认血量图,后面的各种偏移字段仍然有效,相当于设置默认血条在头顶偏移.
E.
血量图偏移
————————————————————-
设置血条图相对于底图的横向和纵向偏移,当血条图不能完美坐落在底图上时,可微调此值. Y负值向上
填写格式:X#Y
提示:不填此值,血量图会自动坐落到底图中间
F.
整血条偏移
————————————————————-
设置整体血条相对于怪物头顶的横向和纵向偏移,Y负值向上
填写格式:X#Y
提示:不填此值,血条在人物头顶初始位置
G.
血量数字偏移
————————————————————-
设置怪物血量数字在头顶上的相对偏移,可以通过此将血量数字控在血量图的适合位置,Y负值向上
填写格式:X#Y
提示:不填此值,血量数字在人物头顶初始位置
H.
BUFF图标偏移
————————————————————-
设置怪物BUFF图标在头顶上的相对偏移,Y负值向上
填写格式:对齐方式(0:人物居中
1:血条居左)#X#Y
对齐方式:
0人物居中:BUFF图标显示在人物头顶居中位置,后面的XY设置偏移是相对于这个居中位置的微调
1血条居中:BUFF图标自动追踪血条并从左边开始显示,后面的XY位置是相对于血条居左位置的微调
提示:不填此值,BUFF图标在人物头顶初始位置 ,且以人物居中
例子1: 静态血条图
===============================
示例数据:
1,中体型怪血条,test/2380_2894.bmp,test/2380_2893.bmp,,149,0#-40,0#-46,
素材展示:
血条底图:2380_2894.bmp
血条图
:2380_2893.bmp
数据解释:
1:配置一个ID为1的血条外观,后面在怪物表、设置血条命令等地方可以引用此ID
中体型怪血条:名字为“中体型怪血条”,可以任取,最好便于自己识别;
test/2380_2894.bmp:
血条底图引用dev图片文件”Mir200/client_data/dev/res/test/2380_2894.bmp”,
test/2380_2893.bmp:
血条图(就是显示血量的图,随当前血量变化)引用dev图片“Mir200/client_data/dev/res/test/2380_2893.bmp”,
149:掉血残影颜色设为149(黄色),这样在目标大幅掉血时,会有残影显示
0#-40:整体血条(底图加血条图)相对于目标头顶向上移动40个像素,横向偏移不变
0#-46:目标血量数字相对于头顶向上移动46个像素,正好在血条图上方
血条引用:
打开怪物表”Mir200/Envir/Data/怪物(Monster).csv”,定位到需要设置血条怪物的行,
然后在“血条ID(BS)”列中填1
效果:
例子2: 动态血条图
===============================
示例数据:
2,火焰底色,test/2361_6110.bmp#16#90#0.25#0.25,test/2361_2590.png#10#90,0#2,,0#-32,0#-58,
数据解释:
2:配置一个ID为2的血条外观,后面在怪物表、设置血条命令等地方可以引用此ID
火焰底色:名字为“中体型怪血条”,可以任取,最好便于自己识别
test/2361_6110.bmp#16#90#0.25#0.25:
血条底图引用dev图片文件”Mir200/client_data/dev/res/test/2361_6110.bmp”,
然后设置有16张序列帧图,引擎将每90毫秒循环读取2361_6110.bmp
到
2361_6125.bmp这16张图片,
再看后面的两个0.25,分别表示图片在横向和纵向上缩放0.25(缩小4倍),原始素材太大,需要适当缩放下
test/2361_2590.png#10#90:
血条图(就是显示血量的图,随当前血量变化)引用dev图片文件”Mir200/client_data/dev/res/test/2361_2590.bmp”,
然后设置有10张序列帧图,引擎将每90毫秒循环读取2361_2590.bmp 到
2361_2599.bmp这10张图片,
由于血条图大小合适,这里没有设置比列,引擎会按原始比例读取.
0#2
: 由于血条图没有完美坐落在底图上,这里设置血条图相对于地图向下偏移2个像素,完美贴合
0#-32:整体血条(底图加血条图)相对于目标头顶向上移动-32个像素,横向偏移不变
0#-58:目标血量数字相对于头顶向上移动58个像素,正好在血条图上方
效果:
注意:在使用序列帧素材时,注意要处理好每帧之间的图片偏移,否则播放时会有明显晃动!!
如何处理序列帧偏移?
1. 对于导入引擎素材库情况:
a.如果素材带偏移文件Placement目录,则需将此目录和素材图片放在同一个目录下,然后再导入素材;
b.如果不带偏移文件,则原始序列帧必须是已处理好的无晃动的图片,导入引擎素材库时,选择“不裁切”
c.如果从F9图片查看器中直接导入,则无需任何处理,引擎会读取到正确偏移;
2. 对于使用dev目录图片文件的情况:
a.
图片必须是已处理好的无晃动的图片,由于dev目录引擎仅读取,不能处理任何偏移.
例子3: 经验条配置
===============================
经验条示例数据:
===================
3,中段经验条,test/2380_3055.bmp#0#0#0.485,test/2380_3093#0#0#0.485#0.5,,,0#-24,,
经验底图:
经验图 :
数据解释:
3:配置一个ID为3的经验条外观,后面在怪物表等地方可以引用此ID
中段经验条:名字为“中段经验条”,可以任取,最好便于自己识别;
test/2380_3055.bmp#0#0#0.485:
经验底图引用dev图片文件”Mir200/client_data/dev/res/test/2380_3055.bmp”
序列帧和动画时间都填0(没有动画,就单张图片),再后面的0.485是横向比列,由于原图太长,这里缩小0.485倍
test/2380_3093.bmp#0#0#0.485#0.5:
经验图(就是显示当前经验进度的图,随当前经验变化)引用dev图片“Mir200/client_data/dev/res/test/2380_3093.bmp”,
序列帧和动画时间都填0(没有动画,就单张图片),再后面的0.485是横向比列,由于原图太长,这里缩小0.485倍,
再由于原素材太高,为了和经验地图匹配(能完美坐在经验地图上),竖向缩小0.5倍
0#-24:整体经验条(底图加经验图)相对于目标头顶向上移动24个像素,横向偏移不变
注意:数字血量偏移和BUFF图标偏移,在经验条中设置无效,需要在血量条中设置.
血量条示例数据:
=====================
4,中短血条,test/2380_2894.bmp#0#0#0.725#0.8,test/2380_2893.bmp#0#0#0.725#0.8,,149,0#-28,0#-32,血条居左#0#-4
素材展示:
血条底图:2380_2894.bmp
血条图
:2380_2893.bmp
4:配置一个ID为4的血条外观,后面在怪物表等地方可以引用此ID
中短血条:名字为“中短血条”,可以任取,最好便于自己识别;
test/2380_2894.bmp#0#0#0.725#0.8:
血条底图引用dev图片文件”Mir200/client_data/dev/res/test/2380_2894.bmp”,
由于原素材过大,在中小型怪物头顶显示不太合适,这里将图片横向缩小0.725倍,竖向缩小0.8
test/2380_2893.bmp#0#0#0.725#0.8:
血条图(就是显示血量的图,随当前血量变化)引用dev图片“Mir200/client_data/dev/res/test/2380_2893.bmp”,
由于原素材过大,在中小型怪物头顶显示不太合适,这里将图片横向缩小0.725倍,竖向缩小0.8
149:掉血残影颜色设为149(黄色),这样在目标大幅掉血时,会有残影显示
0#-28:整体血条(底图加血条图)相对于目标头顶向上移动28个像素,横向偏移不变
0#-32:目标血量数字相对于头顶向上移动32个像素,正好在血条图上方
血条居左#0#-4:BUFF图片向血条左侧居中,然后向上移动4个像素
血条引用:
打开怪物表”Mir200/Envir/Data/SK扩展表格/怪物逐等级设置.csv”,定位到需要设置血条怪物的行,
本例中是神兽,然后在“血条ID(BS)”列中填4,在“经验条ID”中填3
如果每级神兽的血条样式不同,则每级填每级的,如果相同,则每条数据都填一样的.
综合效果:
例子4: 人物血条配置
===============================
a. 统一设置人物血条:
在角色表“Mir200/Envir/Data/SK扩展表格/角色模型.csv”中“血条ID(O)”列中填写血条ID
可以给不同职业设置不同的血条样式,如果都一样,那就全部填一样的血条ID值.
b.
配置默认血条:
客户端配置文件“client_data/hero_config.txt”中:
缺省血条显示刻度=0 ; 缺省头顶血条是否显示刻度线:0不显示,1显示
c.
命令修改人物血条
ChangeBloodBar ①血条ID
②是否保存(0下线不保存,1下线保存)
恢复人物血条:
ResetBloodBar
[角色表] – 角色.csv
角色表详解
表位置:
“Mir200/Envir/Data/SK扩展表格/角色模型.csv” [查看样表]
表功能:
设置游戏中不同职业及性别的基础数据.
本引擎支持6个职业,每个职业分男女性别,总共有12条角色数据.
A. 角色名称
——————————————————-
说明:
每条角色数据的名称,内容自定义,引擎实际上不读取此值,仅供观看
取值:
最多七个汉字
B. 职业
——————————————————-
说明:
角色职业
取值:
引擎支持6个职业,取值分别为,不能不写也不能写错:
============================
战士
法师
道士
弓箭手
刺客
武僧
C.
性别
——————————————————-
说明:
角色性别
取值:
男 或 女
D.
2D裸模
——————————————————-
说明:
设置角色的2D裸模外观素材(未穿戴衣服的样子)
取值:
素材库中的人物衣服素材名称
E.
2D内观
——————————————————-
说明:
设置角色的2D裸模内观素材(在装备界面中未穿戴衣服的样子)
取值:
素材库中的图片素材名
F. 2D头发(物品)
——————————————————-
说明:
设置角色的2D头发外观装备名称
取值:
物品表中的头发物品名称
在本引擎中,头发和武器衣服一样,是一件装备,可以穿戴和拿下,在这里需要先在物品表中
定义一个2D头发物品,然后将这个物品名填写此处,作为角色的默认头发外观
G. 2D头发内观
——————————————————-
说明:
设置角色的2D头发内观图片(在装备界面中显示的头发)
取值:
素材库中的图片素材名
H. 3D裸模型
——————————————————-
说明:
设置角色的3D裸模外观(没穿衣服时的样子)
取值:
素材库中3D模型素材名称
注意:
如果2D裸模和3D裸模都填写,优先显示3D裸模
I. 3D头发
——————————————————-
说明:
设置角色的3D头发外观模型
取值:
素材库中3D模型素材名称
J. 走帧时间
——————————————————-
说明:
设置角色走路时每一步的时间,毫秒
取值:
毫秒时间值,一般为100,此值越小走得越快
K. 跑帧时间
——————————————————-
说明:
设置角色跑动时每一步的时间,毫秒
取值:
毫秒时间值,一般为92,此值越小跑得越快
L. 骑帧时间
——————————————————-
说明:
设置角色骑马时每一步的时间,毫秒
取值:
毫秒时间值,一般为86,此值越小移动越快
M. 死留时间
——————————————————-
说明:
设置角色死亡后在地图上尸体停留时间
取值:
xx秒、xx分钟、xx小时
N. 头像
——————————————————-
说明:
设置角色头像图片,该图片会在客户端中需要展示职业信息的地方显示
取值:
素材库中的图片素材名
O. 选中时动画
——————————————————-
取值:
动画素材名#X偏移#Y偏移#X缩放(小数)#Y缩放(小数)
说明:
设置在选择角色界面处,角色被选中时的动画,如下图红框
提示:
如果此处不设置动画素材,引擎则读取开发目录下图片:
“Mir200\client_data\dev\res\public\effects\chrsel\职业名sa1.png”
如果表格和开发目录都有素材,引擎优先读取本表格设置的动画.
P. 未选中时动画
——————————————————-
取值:
动画素材名#X偏移#Y偏移#X缩放(小数)#Y缩放(小数)
说明:
设置在选择角色界面处,角色没有被选中时的动画,如下图红框
提示:
如果此处不设置动画素材,引擎则读取开发目录下图片:
“Mir200\client_data\dev\res\public\effects\chrsel\职业名sb1.png”
如果表格和开发目录都有素材,引擎优先读取本表格设置的动画.
Q. 受击声音
——————————————————-
说明:
设置角色受到攻击时发出的声音
取值:
编辑器打开声音素材库中选择的音效名
R.
死亡声音
——————————————————-
说明:
设置角色受死亡时的发出的声音
取值:
编辑器打开声音素材库中选择的音效名
MapQuest_def(登录脚本目录)
QManage.txt(简称QM)
登录脚本(通俗叫法)
—————————————————————-
1.服务端启动触发[@Startup]
2.玩家登录触发[@Login]
3.个人定时器、全局定时器[@OnTimerX]、[@OnTimerExX]
4.全服调用[GMEXECUTE StartQuest]
5.行会变量申明 [@LoadGuild]
MonItems(怪物爆率)
怪物爆率配置
怪物爆率配置目录: “Mir200/Envir/MonItems”
每个爆率文件以怪物名为名,后缀.txt,
爆率目录下用户可以自由组织子目录,引擎只识别文件名,无论它放在哪个子目录里.
爆率文件内容范例:
1/2 金币
1/10
金创药(小量)
1/5 木剑
1/5 古铜戒指
;含有附加信息的爆率
1/100 木剑 +BUFF:拖影+3/50
魔法盾/100 +爆前触发:@xxx +爆后触发:@xxx +持久:100 +过期时间:2小时
+极品:攻击上限#10#1-4 魔法上限#15#2
附加爆率信息说明:
———————————————————————–
+BUFF:
可以指定物品在爆出后给物品加上动态BUFF
格式为:
BUFF名称1/N分之1几率 BUFF名称2/N分之1几率 …
(最多写8个)
意思是每个BUFF有多少分之1的几率加到爆出的装备上,不写几率或几率写1,表示100%加上BUFF
+极品:
设置装备爆出后的极品属性
格式为:
属性名称#N分之1几率#属性值范围
属性名称/N分之1几率#属性值范围 …(最多写8个)
其中,如果几率不填,则默认为1(必出),属性值范围不填,系统默认加1点(+最高7次跳点)
意思是每个极品属性有多少分之1的几率加到爆出装备上
例子:
1/1000 裁决之杖 +极品:攻击上限#15#1-7 攻击速度#100#1-2 准确#50#1-3
+爆前触发:
在爆率几率判定前触发到怪物掉落归属玩家身上,可以在触发回调中修改爆率,或指定是否爆出
爆前触发可以用到以下几个常量:
<$CURRTEMDROPPROB>
当前要爆出物品的N分之1几率
<$CURRTEMNAME>
当前要爆出物品名称
<$CURRENTMONNAME>
当前爆出物品的怪物名称
<$CURRENTMONNAME1>
当前爆出物品的怪物显示名称
爆前触发中return 0 不爆 return 1 爆
+爆后触发: 在爆率几率判定成功后触发到怪物掉落归属玩家身上
+持久: 设置多少分之1的几率额外加装备最大持久
+过期时间: 设置物品爆出后多长时间就过期了
以上几个以+号打头的附加信息,可以随意放置,但必须写在一行,不能换行,爆率文件一行一个物品
MonGen(刷怪表)
MonGen刷怪表
文件位于:”Mir200/Envir/MonGen.csv”
A. 地图名称
——————————————————————
设置怪物在哪个地图上刷出
取值来自于地图表:”Mir200/Envir/Data/地图(MapInfo).csv”中的地图名
B. 怪物名称
——————————————————————
设置刷出哪个怪物
取值来自于怪物表:”Mir200/Envir/Data/怪物(Monster).csv”中的怪物名称
C. 刷新坐标(X Y)
——————————————————————
设置怪物刷出坐标,不填表示全地图随机位置
D. 数量
——————————————————————
设置怪物刷出个数
E. 范围
——————————————————————
设置怪物相对于刷新坐标中心点,刷出的范围半径,用格子数表示。
F. 刷新间隔
——————————————————————
格式1:
设置每个多长时间执行一次刷新,可以写xx分钟、xx小时等.
每次刷新会刷满指定个数,如果地图已有足够怪物,则不刷,不足数量补刷至足量,不会多刷.
格式2:小时:分,指定一天中的某个时间点刷新,24小时制.
G. 方向
——————————————————————
设置怪物刷出时的方向,不填表示随机方向.
取值:上,下,左,右,左上、左下、右上、右下
H. 刷怪标志
——————————————————————
取值 说明
===================================================
全区提示 /* 怪物刷新时全区提示 */
固定时间 /* 使用固定时间 */
怪死计时 /* 从怪物死亡后开始计时刷新(针对需要快速刷新的怪物) */
不上刷新时刻 /* 不在怪物刷新列表中显示 */
不重叠 /* 刷怪不重叠,注意:此标志可能会少刷怪,比如3×3的地图刷不出10个怪,一般不要用 */
大地图红点 /* 无论怪物当前名字是什么颜色,在大地图上都显示红点 */
I. 存续时间
——————————————————————
设置怪物刷出后在地图上存在时间,可填xx分钟、xx小时
不填表示永久。
J. 名字颜色
——————————————————————
设置怪物刷出的名字颜色:
格式1: 颜色值
格式2:
#颜色变化ID(“Mir200\Envir\Data\SK扩展表格\颜色变化表.csv”)
K. 名字渐变色
——————————————————————
设置怪物刷出的名字渐变颜色的第二颜色
L. 代表掉落
——————————————————————
设置怪物会掉落那些装备,仅用作某些列表显示,与实际爆出物品无关。
实际的怪物死亡掉落物品在”Envir\MonItems“中配置
M. 位置偏移
——————————————————————
设置怪物刷出时的位置偏移,以像素计
N. 守护范围
——————————————————————
设置刷出怪物的活动范围,超过此范围怪物自己走回刷新坐标点.点击查看:怪物守护范围
取值:
格式1:
xx,表示地图格子(用于2D地图)
格式2:
xx米,表示以米为单位(用于3D地图)
例如:
15,表示怪物的范围圈是以其自身为中心的地图15×15格
Robot_def(机器人脚本)
执行机器人脚本运行时间
1.
运行时间定义文件:“Mir200/Envir/Robot_def/AutoRunRobot.txt”
—————————————————————–
#AutoRun ①NPC ②执行时间 ③跳转标签
参数:
①NPC:写NPC
②执行时间:
SEC:按秒运行
MIN:按分运行
HOUR:按小时运行
DAY:按天运行
RunOnDay:按每天什么时候运行
RUNONWEEK:按星期几及时间运行
③跳转标签:
设置执行段, 如:@SendRedMsg
例子:
;星期五15点55分运行
#AutoRun NPC RUNONWEEK 5:15:55
@shili1
;每5秒执行
#AutoRun NPC SEC 5 @shili2
;每1分钟执行
#AutoRun NPC MIN 1 @shili3
;每天执行,从M2启动加载开始计算(重启M2也会重新执行)时间,每隔24小时执行一次
#AutoRun NPC DAY @shili4
;每天执行23点59分59秒执行
#AutoRun NPC RunOnDay 23:59:59
@shili5
;每1小时执行一次
#AutoRun NPC HOUR 1 @shili6
2.
执行脚本文件:“Mir200/Envir/Robot_def/RobotManage.txt”
—————————————————————
[@shili1]
#IF
#ACT
sendmsg 0 星期五15点55分运行 ;执行AutoRunRobot.txt配置(#AutoRun NPC RUNONWEEK 5:15:55
@shili1)
[@shili2]
#IF
#ACT
sendmsg 0 每5秒执行 ;执行AutoRunRobot.txt配置(#AutoRun NPC SEC 5 @shili2)
[@shili3]
#IF
#ACT
sendmsg 0 每1分钟执行 ;执行AutoRunRobot.txt配置(#AutoRun NPC MIN 1
@shili3)
;执行AutoRunRobot.txt配置(#AutoRun NPC DAY
@shili4)
[@shili4]
#IF
#ACT
sendmsg 0
每天执行,从M2启动加载开始计算(重启M2也会重新执行)时间,每隔24小时执行一次
[@shili5]
#IF
#ACT
sendmsg 0 每天执行23点59分59秒执行
;执行AutoRunRobot.txt配置(#AutoRun NPC RunOnDay
23:59:59 @shili5)
[@shili6]
#IF
#ACT
sendmsg 0 每1小时执行一次 ;执行AutoRunRobot.txt配置(#AutoRun NPC HOUR 1
@shili6)
[脚本] – 基本写法
脚本写法
本引擎脚本兼容TXT脚本写法,并在此基础上有所扩展.
(注1:脚本不区分大小写,ABC、abc、aBc表示同一样东西)
(注2:脚本中的注释以分号;或//开头,可以注释当前行,也可以注释行后面的东西)
(注3:%号开头变量是局部变量,仅在当前函数段有效,且和人物无关,执行效率高,应多加应用)
1.
函数段
————————————————————
[@段名]
在任可脚本中,按以上写法即定义一个脚本执行段.
引擎内置的[@main]段,是脚本开始执行的入口段.
GOTO @段名 ;跳转到当前脚本中指定段执行,后面可以传递参数
CALL [脚本文件] @段名 ;跳转到其它脚本中执行相应段,后面可以传递参数
另外,本引擎支持在函数段后传参数,如下:
[@段名a %参数1 %参数2
…]
调用这个段时可以直接传参:
GOTO [@段名a xx1 xx2]
2.
执行流程
————————————————————
(1) 顺序流程
脚本按行顺序执行,一条命令一行,执行完一行继续执行下一行,直到脚本结束.
例子:
[@main]
这是第1行
这是第2行
MESSAGEBOX 第3行弹框了
以上脚本运行结果为:
这是第1行
这是第2行
(在客户端弹框显示”第3行弹框了”)
(2) 条件分支流程
方法1:使用#IF命令来判断某个条件,从而决定脚本语句的走向,如:
===============================================
[@main]
#IF
checkgold >=
1000
#ACT
MESSAGEBOX 我的金币多于1000
#ELSEACT
MESSAGEBOX
我的金币不足1000
方法2:使用goto指令跳转到段内指定位置执行,如:
===============================================
(注:本引擎GOTO支持段内跳转)
[@main]
第1条语句
第2条语句
goto #LABEL_标签A // 跳转到标签A
第3条语句
#LABEL_标签A
第4条语句
以上脚本执行结果为:
第1条语句
第2条语句
第4条语句
可以看到,第3行语句被goto命令跳过了,
使用”#LABEL_”打头在脚本文件任意行定义一个标签,goto命令就会识别
(3) 循环流程
方法1:
通过#IF和goto实现循环执行流程,如:
===============================================
[@main]
set %循环计数 1
#LABEL_LOOP
#IF
LARGE %循环计数 5
#ACT
break ; 循环结束
#ELSEACT
当前循环计数:%循环计数
INC %循环计数
goto
#LABEL_LOOP
执行以上脚本得到输出为:
当前循环计数:1
当前循环计数:2
当前循环计数:3
当前循环计数:4
当前循环计数:5
方法2:
While循环
===============================================
[@main]
#IF
#ACT
;为方便测试每次执行脚本前将变量设置为1,本示例脚本可无视MOV
;MOV N1 1
;循环开始,While 变量 比较符号(>,<,=) 值
While N1 < 1000
SendMsg 6
<$STR(N1)>
Inc N1 1
EndWhile ;循环结束 EndWhile
SendMsg 6
aaaaaa
方法3:无限While循环,在循环体内用StopWhile结束
===============================================
[@main]
#IF
#ACT
MOV
N1 0
While 1
SendMsg 6 <$STR(N1)>
#IF
LARGE N1
10
#ACT
StopWhile ;结束循环
#ENDIF
INC N1 1
EndWhile ;循环结束 EndWhile
SendMsg 6
aaaaaa
3. 终止命令 break
————————————————————
在break出现的地方,终止脚本执行,break后面的脚本代码不再被执行.
例子:
===============================
[@main]
#IF
#ACT
SendMsg
6 后面的脚本被break终止运行
break
#IF
#ACT
SendMsg 6 执行不到,因为前面执行了break
4. 返回命令 return
————————————————————
有两种情况:
a.
如果”Envir\Data\!配置项.txt”中的”禁用脚本return中断“配置为0,
则遇到return语句脚本中断,和break一样.
b.
如果”Envir\Data\!配置项.txt”中的”禁用脚本return中断“配置为1,
则遇到return语句脚本不中断,继续执行.
return和break不同的是:
无论以上两种情况的哪种,都有返回数据的功能,这种返回数据在不同的触发种有不同意义,要看具体情况.
5. 变量
————————————————————
变量用字母表示,在程序中可以赋任何数据
MOV 变量 数值 ;给变量赋值
INC 变量 数值 ;让变量自动加指定数值到变量
MOV 变量X
0 ;变量X,初值
<$STR(变量)> ;显示变量值
脚本常量:
<$USERNAME>
当前用户名
<$GUILDWARFEE> 行会战金币数
<$LORD>
沙巴克行会头名
<$OWNERGUILD> 沙巴克行会名
<$UPGRADEWEAPONFEE>
升级武器价格
<$USERWEAPON> 放在对话框里的武器名字
<$STR(变量)> 把变量转换为字符型
例如:
[@main]
#IF
RANDOM 3
#SAY
#ELSEACT
[脚本] – 系统变量
系统变量
提示:本引擎所有变量个数无限
变量
说明
A
字符型全局变量.重启服务器保存.存放在”Mir200/Envir/GlobalVal_A.ini”.(个数不限)
G
数字型全局变量.重启服务器保存.存放在”Mir200/Envir/GlobalVal_G.ini”.(个数不限)
I
数字型全局变量.重启服务器不保存.(个数不限)
S
字符型个人变量.下线不保存.(个数不限)
N
数字型个人变量.下线不保存.(个数不限)
D
数字型个人变量.下线不保存.摇骰子变量.(个数不限)
M
数字型个人变量.下线不保存.切换地图清空.(个数不限,64位)
P
数字型个人变量.仅在当前NPC有效.当Close对话时.所有P变量归零.(个数不限)
U
数字型个人变量.可保存.(个数不限)
T
字符型个人变量.可保存.(个数不限)
J
数字型个人变量.可保存.每晚自动12点重置.(个数不限)
Z
字符型个人变量.可保存.每晚自动12点重置.(个数不限)
B
大数字型个人变量.可保存.最高支持19位数,适用大数值操作.(个数不限,64位)
个人标记
———————————————————
整数型个人变量可存储型,该变量只有0和1的两种状态
SET [n]
[n] ;n为0-1023,是逻辑变量,有0值和1值,初始0值
#IF
条件–执行
#elsesay 或者 #elseact
否定–执行
;相当于程序中的条件判断
SET [n] 1 ;设置逻辑变量为真
reset命令
———————————————————
reset [XXX] 7 意思是将从XXX开始的7个变量回复到原始值0
比如:reset [100] 7 就是把100 101 102 103 104 105 106
107这7个变量赋值为0。
它等同与:
set [100]
0
set [101] 0
set [102] 0
set [103] 0
set [104] 0
set [105] 0
set [106]
0
Check [n]
1
——————————————————–
测试逻辑变量是否为真,可以测试是否已经完成了某个事件.
small 变量 数值 ;如果“变量 <
数值”则为1否则为0
large 变量 数值 ;如果“变量 > 数值”则为1否则为0
equal 变量 数值 ;如果“变量= 数据”则为1否则为0
checkjob Warr(Wizard、Taos) ;测试职业 成功为1否则为0
变量特性计算说明:
数字型计算例子(支持公式计算):(G,I,P,D,N,M,U,J)
#IF
#ACT
mov U1 1
inc U1 1
sendmsg 7
<$str(U1)>———打印结果为U1变量=“2”
字符型计算例子(不支持公式计算):(A,S,T,Z)
#IF
#ACT
mov T1 1
inc T1 1
sendmsg 7
<$str(T1)>———打印结果为T1变量=“11”字符型其他计算方式不要用,会导致变量出问题
A
变量
:
————————————————————-
类型:字符型 全局变量
数量:无限
保存路径:GlobalVal.ini
使用方法:
可以使用 Mov 对其进行赋值,也可以用 EQUAL
对他进行检测这个变量全局变量
G 变量
:
————————————————————-
类型:数字型 全局变量
数量:无限
属性:
保存路径:GlobalVal.ini
可以使用 Mov 对其进行赋值,也可以用 EQUAL
对他进行检测这个变量全局变量
U 变量
:
————————————————————-
类型:字符型 个人变量(数字型,可进行公式计算)
数量:无限
保存路径:SQL角色数据库中
使用方法:
可以使用 Mov 对其进行赋值,也可以用 EQUAL
对他进行检测这个变量个人变量,最大值21亿
T
变量
:
————————————————————-
类型:字符型 个人变量(字符型,不可进行公式计算)
数量:无限
保存路径:SQL角色数据库中
使用方法:
可以使用 Mov 对其进行赋值,也可以用 EQUAL
对他进行检测这个变量个人变量,最大长度8000个字节
S
变量 :
————————————————————-
类型:字符型 个人变量 通用传递 临时变量:下线不保存
数量:无限
属性:
取值范围S0-S99,存放字符型数据!人物下线消失。
P
变量
:
————————————————————-
类型:数字型 个人变量 NPC内有效果
数量:无限
属性:
该变量只对当前对话NPC内有效果。如果中途点其他NPC或者对话产生close、
关闭时所有P变量均归0。该变量取值范围:(0-65375)
使用方法:该变量没有NPC间传递性作为临时变量多重复使用效果十分好。
而且因为脚本命令有对该变量进行加/减/赋值/随机取值等运算,
他和goto的配合可以使脚本中出现仿for循环的效果。
并且因为他不传递的性质其随机取值也能与RANDOM媲美。
D
变量
:
————————————————————-
类型:数字型 个人变量 通用传递 临时变量:下线不保存,摇骰子
数量:无限
属性:
该变量在人物不下线时对全局NPC通用传递该变量取值范围:(0-65375)
人物属性私有的变量,可以像P变量一样的进行各种运算。
使用方法:
唯一不足就是下线后该变量会被清空。
可是如果配合上[000]变量或者namelist变量的记录性。
实在是功能强大的个人隐私属性!
I 变量 :
————————————————————-
类型:数字型 全局变量 通用传递 重启服务器不保存
数量:无限
属性:
该变量不属于人物属性范围,对于全服务器内该变量唯一并且全局NPC通用传递
使用方法:
但是需要注意服务器关闭后该变量清空,其他与G变量完全一样
该变量通过任何人的运算均产生效果
这个变量是唯一的一个不属于任何人物而属于服务器的变量,
M 变量
:
————————————————————-
类型:数字型 个人变量 通用传递 临时变量:下线不保存(切换地图清空)
数量:无限
属性:
存放字符型数据!人物下线消失(切换地图清空)。
个人标识:
————————————————————-
类型:个人变量 通用传递 下线保存
数量:[0000 – 1023]
属性:
该变量只有2种状态:1 和 0!
使用方法:
因为该变量记录性比较强。而且如果产生读写操作时服务器的操作不是很大。
所以作为记录一些人物的下线后需要保留的数据的话作用十分大,
大部分任务时常用到他。该变量值只有1和0的两种状态。
举例:
#IF
CHECK [008] 0
#ACT
SET [008] 1
Break
标识不支持表格式常量嵌套如:
check [<$cfg_biaoming(1_1)>]
0
set [<$cfg_biaoming(1_1)>] 1
P,G,M,I,D,N,S,A变量使用说明
————————————————————-
检测相等:EQUAL变量名数值
检测大于:LARGE变量名数值
检测小于:SMALL变量名数值
赋予数值:MOV变量名数值
加上指定数值:INC变量名数值
减去指定数值:DEC变量名数值
变量相加:SUM变量名A变量名B
两个数相除:Div变量A除数B被除数C
两个数相乘:MUL变量A乘数B被乘数C
变量赋予小于指定数值的随机非负数:MOVR数值
把变量转为字符串:<$STR(变量)>
MOV命令:
————————————————————-
增加MOV命令可以 直接在2个变量之间操作.
假设已经定义自定义字符变量Name和数字型自定义变量TEST
以下是MOV的几种使用方法:
MOV HUMAN Name S0
这句的意思就是把S0值 传给自定义变量Name
MOV S0 HUMAN Name 把自定义变量Name值 传给变量S0
MOV S0 你好
把“你好”传给变量S0
MOV HUMAN Name 你好 把“你好”传给自定义变量Name
MOV S0 S1 把S1值传给S0
MOV D1 1 把1传给变量D1 (这个是最常见的使用方法)
MOV HUMAN TEST D1 把变量D1值传给自定义变量TEST
MOV D1 HUMAN TEST 把自定义变量TEST传给变量D1
MOV HUMAN TEST 1 把1传给自定义变量TEST
EQUAL命令:
————————————————————-
EQUAL可以 直接在2个变量之间操作:
EQUAL S1 1
检测S1值是否等于数字1值 (这个是最常见的使用方法)
EQUAL S1 小达 检测S1值是否等于字符小达
EQUAL S1 G1
检测S1值是否等于G1.该命令也支持2个变量之间的检测
SMALL和LARGE:
————————————————————-
增加SMALL和LARGE命令可以 直接在2个变量之间操作.
假设已经定义数字型自定义变量TEST
以SMALL为例以下是SMALL的几种使用方法
SMALL D0 1 检测D0值是否小于1值
(这个是最常见的使用方法)
SMALL HUMAN TEST D0 检测自定义变量TEST值是否小于D0值
SMALL D0 HUMAN
TEST 检测D0值是否小于自定义变量TEST值
SMALL HUMAN TEST 1 检测自定义变量TEST值是否小于1值
LARGE和SMALL用法完全一样
DEC和INC:
————————————————————-
增加DEC和INC命令可以直接在2个变量之间操作 。
假设已经定义自定义数字型自定义变量TEST
以DEC为例,以下是DEC的几种使用方法
DEC D0 1 意思是 D0 = D0 – 1 (这个是最常见的使用方法)
DEC D0
D1 意思是 D0 = D0 – D1
DEC HUMAN TEST D0 意思是 TEST = TEST – D0
DEC D0 HUMAN
TEST 意思是 D1 = TEST – D0
INC命令使用和DEC一样
Div:
————————————————————-
Div可以直接在2个变量之间操作:
Div N10 100 2 意思是 N10=100/2
100除于2就等于50.那么N10就等于50拉
Div N10 <$STR(N20)> <$STR(N21)> 意思是
N10=N20/N21
MUL命令使用说明:
MUL可以直接在2个变量之间操作 。
MUL N10 100 2 意思是
N10=100*2 100乘于2就等于200.那么N10就等于200拉.
MUL N10 <$STR(N20)>
<$STR(N21)> 意思是 N10=N20*N21
同时修改了脚本参数。目前可以使用
<$STR(变量)>用于任何脚本参数中
同时使用<$STR(变量)>(全局变量、自定义变量和其他系统变量)都可以用于[任何脚本]参数中。
例如:
checkgold <$STR(变量)>
CHECKITEM <$STR(变量)>
<$STR(变量)>
changeexp = <$STR(变量)>
changelevel =
<$STR(变量)>
CheckOnline <$STR(变量)>
CHECKMAPNAME
<$STR(变量)>
TAKE <$STR(变量)> <$STR(变量)>
TAKEW
<$STR(变量)> <$STR(变量)>
GIVE <$STR(变量)>
<$STR(变量)>
DEC对字符型变量操作命令。
MOV命令做了一些改进。
[@Main]
#ACT
MOV S1 SK引擎M2
MOV S2
SK引擎M2
DEC S1 SK引擎;删除S1中的”SK引擎”字符串
DEC S2 1 3 ;删除S2中的第1至第3个字符
结果
S1=M2
S2=擎M2
[脚本] – 自定义变量
清理自定义私人变量格式:ClearHumCustVar 参数1 参数2
参数1= 支持多个一起清理
|分割
参数2= 0或者为空清理全服 1清理自己
清理自定义全局变量格式:ClearGlobalCustVar 参数1
参数1=* 清理全部 支持多个一起清理
|分割
清理自定义行会变量格式:ClearGuildCustVar参数1
参数2
格式:ClearGuildCustVar 行会名字 行会变量名
参数1=* 清理全部 支持多个一起清理 |分割
参数2=* 清理全部
支持多个一起清理 |分割
注意:参数1、参数2,均为必填
自定义临时变量
功能:扩展字符变量S和数字变量N
格式:无
说明:扩展字符变量S和数字变量N,除了支持0~499以外,可以在S$变量或N$变量后面增加任意字符,人物基础变量不需要加$。
例子:
[@test]
#ACT
MOV S$我的人物名称
<$USERNAME>
SENDMSG 0 <$STR(S$我的人物名称)> 255 253
[@test1]
#ACT
MOV N$我的杀怪总数 100
INC
<$STR(N$我的当前杀怪数)>
1
SENDMSG6【杀怪总数=<$STR(N$我的杀怪总数)>】【当前杀怪数=<$STR(N$我的当前杀怪数)>】 255
253
注意:以下的人物基础变量。不需要在S变量或N变量的后加$,当然你也可以加,加上后就属于扩展变量,例如 S1和S$1 这样的2个变量完全是2个不同的变量。
N (私人变量,数字型) 下线不保存.小退归0.
S (私人变量,字符型) 下线不保存.小退归0.
老模式自定义变量是存到文本的里面读取的(不支持合区合并,只能本区使用)
后面加 ..\xxxx\xxx.txt 路径的就会写道文本里面,否则就会存到数据库
想要优先读取文本里面的变量,使用LOADVAR(HUMAN、GLOBAL)去读取
如果没有读取文本,引擎会读取数据库里面的变量值
读取文本存的变量值
LOADVAR HUMAN 文本私人数字
..\QuestDiary\私人变量.txt
操作变量
CALCVAR HUMAN 文本私人数字 + 100
保存变量值到文本路径
SAVEVAR HUMAN 文本私人数字
..\QuestDiary\私人变量.txt
自定义保存变量
功能说明:
自定义变量功能,不再受固定几个变量限制
使用方法:
自定义个人变量 自定义全局变量 自定义行会变量
变量使用前 需要 申明变量类型
自定义变量
数据 合区自动合并 避免合区需要合大量的文本操作
自定义私人变量运用:
申明整数型私人变量 VAR Integer HUMAN 变量名
检测整数型私人变量
CHECKVAR HUMAN 变量名 ? 大于等于
检测整数型私人变量 CHECKVAR HUMAN 变量名 = 等于
检测整数型私人变量
CHECKVAR HUMAN 变量名 > 大于
检测整数型私人变量 CHECKVAR HUMAN 变量名 < 小于
操作整数型私人变量
CALCVAR HUMAN 变量名 + – = * /
保存整数型私人变量 SAVEVAR HUMAN 变量名
申明字符型私人变量 VAR String HUMAN 变量名
检测字符型私人变量 CHECKVAR HUMAN 变量名
= 等于
操作字符型私人变量 CALCVAR HUMAN 变量名 =
保存字符型私人变量 SAVEVAR HUMAN
变量名
————————————————————————————-
自定义全局变量运用:
申明整数型全局变量
VAR Integer GLOBAL 变量名
检测整数型全局变量 CHECKVAR GLOBAL 变量名 ? 大于等于
检测整数型全局变量
CHECKVAR GLOBAL 变量名 = 等于
检测整数型全局变量 CHECKVAR GLOBAL 变量名 > 大于
检测整数型全局变量
CHECKVAR GLOBAL 变量名 < 小于
操作整数型全局变量 CALCVAR GLOBAL 变量名 + – = *
/
保存整数型全局变量 SAVEVAR GLOBAL 变量名
申明字符型全局变量 VAR String GLOBAL 变量名
检测字符型全局变量 CHECKVAR GLOBAL
变量名 = 等于
操作字符型全局变量 CALCVAR GLOBAL 变量名 =
保存字符型全局变量 SAVEVAR GLOBAL
变量名
————————————————————————————-
申明字符型行会变量
VAR String GUILD 变量名
申明整数型行会变量 VAR Integer GUILD 变量名
查看私人变量:<$HUMAN(XXXX)>
查看全局变量:<$GLOBAL(XXXX)>
查看行会变量:<$GUILD(XXXX)>
修改指定行会自定义变量格式:REVGuildVAR 行会名字 行会变量名 + – = * /
保存指定行会自定义变量格式:SAVEGuildVAR 行会名字 行会变量名
;声明全局变量
[@Startup]
#IF
#ACT
VAR Integer GLOBAL
奔跑次数
;申明行会变量(放置QM中)
[@LoadGuild]
#IF
#ACT
VAR
Integer GUILD 行会等级
;声明个人变量
QManage.txt
[@Login]
#If
CHECKLEVELEX
> 0
#Act
VAR Integer HUMAN 押镖次数
自定义变量排序
说明:排序自定义数字变量名
格式:SortHumVar 参数1 参数2 参数3 参数4 参数5
参数6
—————
参数1:排序变量名
参数2:写入到字符型变量
参数3:写入到数字型变量
参数4:0=所有玩家
1=在线玩家 2=行会变量
参数5:0升序,1降序
参数6:为空或0取所有,取前几名
例子:
[@排序变量N]
#IF
#act
SortHumVar 变量数字 S$变量排序 N$变量排序
0 1 10
SENDMSG 0 -<$str(S$变量排序1)>:<$STR(N$变量排序1)>
SENDMSG 0
-<$str(S$变量排序2)>:<$STR(N$变量排序2)>
SENDMSG 0
-<$str(S$变量排序3)>:<$STR(N$变量排序3)>
说明:取自定义数字变量名位置
格式:HumVarRank 参数1 参数2 参数3
参数4
—————
参数1:排序变量名
参数2:写入变量名
参数3:0=所有玩家 1=在线玩家
2=行会变量
参数4:0升序,1降序
例子:
[@最大排序10个]
#IF
#act
SortHumVar 变量数字 S$排序写入变量
N$排序写入变量 0 1 10
SENDMSG 0
-<$str(S$排序写入变量1)>:<$STR(N$排序写入变量1)>
SENDMSG 0
-<$str(S$排序写入变量2)>:<$STR(N$排序写入变量2)>
SENDMSG 0
-<$str(S$排序写入变量3)>:<$STR(N$排序写入变量3)>
例子:
[@获取变量位置N]
#if
#ACT
HumVarRank 变量数字 N$变量位置 0
1
SENDMSG 0 -<$STR(N$变量位置)>
[脚本] – 自定义公共库
自定义公共库
公共库脚本目录:”Mir200\Envir\Market_Def\common”
写在此目录里的脚本文件,其中的函数段将被引擎识别为公共调用命令,可以在其它脚本中直接调用。
例子1:
=============================
Mir200\Envir\Market_Def\common\公共库测试1.txt
[@globalfunc1]
sendmsg
5 globalfunc1 cccbb
[@globalfunc2 %p1 %p2]
sendmsg 5 globalfunc2: %p1
%p2
其它任意目录脚本:
[@main]
#IF
#ACT
globalfunc1
globalfunc2 参数1 参数2
例子2:
=============================
Mir200\Envir\Market_Def\common\公共库测试2.txt
[@globalfunc3]
sendmsg 5 globalfunc3 cccbb
return 1
[@globalfunc4 %p1 %p2]
sendmsg 5 globalfunc2: %p1 %p2
return
abc
其它脚本:
[@main]
#IF
globalfunc3 //
命令作为条件检测,库函数中返回1检测通过,返回0检测不通过,库函数不写return默认返回1
#ACT
sendmsg 5 globalfunc3检测通过
// 命令作为返回值传递给局部变量
set %aa
@globalfunc4 参数1 参数2
sendmsg 5 %aa
[脚本] – 多级脚本
多级脚本
多级脚本和传递命令概念:
引擎在执行脚本时,存在一个当前人物概念,即所有的命令调用和常量获取,是作用在这个当前人物上的.
例如:
=========================
[@main]
#IF
#ACT
give 木剑 // 给到当前调用脚本的人物,一般是谁点开的脚本就是谁
// 任何常量值也是取的当前人物身上的值,例如:
当前人物名字: <$USERNAME>
当前人物所在地图: <$MAP>
当前人物坐标: <$X>,<$Y>
但有时候在做脚本功能的时候,需要:
a. 获取其他人物的常量、变量信息;
b. 让脚本命令执行到其他人身上;
c. 脚本命令运行在其他地图上;
此时,就需要用到多级脚本和传递命令了.
【多级脚本】:
|
方式 |
说明 |
|
人物名. |
必须已知人物名,且这个人物要在线(部分常量可离线获取),然后在任意命令或常量前用加上“人物名.”,就是对指定人物操作和常量获取. |
|
P. |
在某些有目标的触发脚本中,使用P.表示目标(人物或怪物)引用 |
|
M. |
在某些有目标的触发脚本中,使用M.表示怪物引用 |
【传递脚本命令】:
|
命令 |
说明和参数 |
|
RunScriptOnPlayer |
说明: 脚本命令传递到指定人物身上执行 参数: ①人物名称 ②脚本命令 参数… |
|
RunScriptOnAllPlayers |
说明: 脚本命令传递到当前服务器所有在线人物身上执行 参数: ①脚本命令 参数… |
|
RunScriptOnObj |
说明: |
|
RunScriptOnMap |
说明: 参数: |
【运行脚本文件】:
|
命令 |
说明和参数 |
|
RunScriptFile |
说明: 参数: |
|
RunScriptFileOnMap |
说明: 参数: |
例子:
1. 获取其他人物常量信息
——————————–
写法:
人物名.<$常量>
说明:
这种写法是将人名和其常量一起作为一个整体产生一个值替换在脚本处.
例子:
==========================
[@main]
#IF
#ACT
当前人物所在地图: <$USERNAME> // 注意当前人物直接写常量,前面没有点
人物张三所在地图: 张三.<$USERNAME> // 取其他人常量,取谁的就写谁的名字
人物张三所在位置: 张三.<$X>,张三.<$Y>
张三S0变量值是: 张三.<$STR(S0)>
自己S0变量值是:<$STR(S0)>
2.
让其他人执行脚本命令
————————————–
写法:
人物名.脚本命令
说明:
这种写法将命令执行到人物名上,当前人物不执行.
例子:
==========================
[@main]
#IF
#ACT
张三.give 木剑 // 给张三一把木剑
give 木剑 // 给自己一把木剑
3. 通过多级脚本进行人物变量传递
————————————–
[@main]
#IF
#ACT
MOV S0 张三.<$STR(S0)> // 将张三的S0变量内容赋予到本人物
以上脚本运行逻辑解释:
首先MOV是一个脚本命令,前没有加人物名字,那就默认执行在当前人物身上,
然后S0是MOV的第二个参数,MOV是在当前人物上执行,那么这个S0变量也是当前人物的,
接着MOV的第三个参数是取张三身上的S0值,整体下来就是将张三的变量S0值赋予到当前人物身上.
[@main]
#IF
#ACT
张三.MOV S0 <$STR(S0)> // 将本人物的S0变量内容赋予到张三
以上脚本运行逻辑解释:
MOV命令前面有其他人物名字,这里的名字是张三,那就是将这个MOV执行到张三身上,
然后S0是MOV的第二个参数,MOV是在张三身上上执行,那么这个S0变量也是张三的,
接着MOV的第三个参数没有人物名,那就是取当前人物的SO变量值,
整体下来就是将当前人物的变量S0值赋予到张三身上的S0变量中.
4. 传递到其他地图上运行
————————————–
无论当前脚本在哪里执行(在机器人、或在全局定时器触发、或在普通NPC这种),
需要在盟重m地图中刷新一个怪物,则可按以下传递命令写:
例子:
[@main]
#IF
#ACT
RunScriptOnMap 盟重m GenMon 经验晶石
t10分钟 w(354,335) fMONGEN_FLAG_WORLDTIP
5. 传递怪物执行命令
————————————–
[@main]
#IF
#ACT
RunScriptOnObj 怪物 %objIDRandomPos // 让指定objID的怪物在当前地图随机
[脚本] – 延迟跳转
延迟跳转
1.
延迟跳转
————————————————-
命令:
DELAYGOTO ①延迟时间(毫秒) ②触发字段 ③换地图是否删除(选填,默认0)
参数:
①延迟时间:单位:毫秒
②触发字段:延迟多久后跳转到指定函数段
③换地图是否删除:可不填,默认0
说明:
延迟一段时间后执行指定的函数段.
提示:
如果再次以相同的参数①延迟时间和②触发字段调用DELAYGOTO,
系统将忽略此次调用,先前调用的函数段倒计时时间等不受影响.
例子:
====================================
[@main]
<延迟跳转/@DelayGoto>
<清除指定延迟/@ClearDelayGoto>
<清除全部延迟/@ClearDelayGotoAll>
<退出/@exit>
[@DelayGoto]
#if
#act
DELAYGOTO 3000
@DelayLabel
#say
<清除延迟/@ClearDelayGoto>
<返回/@main>
[@DelayLabel]
#say
延迟跳转测试成功
<返回/@main>
[@ClearDelayGoto]
#if
#act
CLEARDELAYGOTO
@DelayLabel
#say
延迟跳转已清除.
<返回/@main>
[@ClearDelayGotoAll]
#if
#act
CLEARDELAYGOTO
#say
延迟跳转已清除.
<返回/@main>
2.
删除延迟跳转
————————————————-
命令:
CLEARDELAYGOTO ①触发字段(可为空,表示删除所有延迟跳转)
参数:
①触发字段:在DELAYGOTO命令中指定的函数段
说明:
删除延迟跳转后,延迟时间到不再执行函数段.
3.
延迟执行命令
————————————————-
命令:
DelayRun ①延迟时间(毫秒) ②命令 + 参数…
参数:
①延迟时间:毫秒值
②命令:所有可以调用的脚本命令,后面可以带与这个命令配套的参数
注意:命令加参数长度128字节,约40个汉字
说明:
延迟执行指定脚本命令(不是脚本文件中的段,是命令)
DelayRun和DelayGoto的区别:
DelayRun执行更快、更节省系统资源.
DelayGoto执行的是脚本文件中的函数段,DelayRun直接执行一条命令.
对于单命令执行,应当使用DelayRun,因为它更快.
例子:
#IF
#ACT
DelayRun 2000 Gohome //
延迟2秒后回城
[脚本] – 定时执行
定时执行
注意:
除非特别需要,不要轻易使用全局定时器!
不是说定时器不能用,而是在用的时候一定要注意脚本写法,不能有太多问题。
一般需要定时执行的功能,都有对应的触发回调,在具体问题上使用具体的执行方案才是最优解.
1. 开启全局定时器
————————————————-
命令:
SetOnTimerEx ①定时器索引(0-4) ②定时间隔(秒)
参数:
①定时器索引:
注意索引从0开始,0是第一个,
这个参数的索引数字,对应执行函数段[@OnTimerExX]中的X
②定时间隔:
单位:秒
说明:
开启一个定时器,按指定间隔调用函数段[@OnTimerExX ],其中X是参数1.
2. 停用全局定时器
————————————————-
命令:
SetOfftimerEx ①定时器索引(0-4)
参数:
①定时器索引:
注意索引从0开始,0是第一个,
这个参数的索引数字,对应停止函数段[@OnTimerExX]中的X
说明:
停止一个定时器的执行.
例子:
=============================
;开启全局定时器
[@全局定时器]
#IF
#ACT
SetOnTimerEx 0 1
;停止全局定时器
[@Test]
#IF
#ACT
SetOffTimerEx 0
; QF
[@OnTimerEx0]
#If
#Act
Inc G1 1
SendMsg 0
当前G1值为:<$Str(G1)>
新用法:
开启格式:SetOnTimerEx 当前脚本函数段 定时间隔(秒)
停止格式:SetOfftimerEx 当前脚本函数段
例子:
;开启全局定时器
[@全局定时器]
#IF
#act
SetOnTimerEx @1秒触发 1
;停止全局定时器
[@Test]
#IF
#ACT
SetOffTimerEx @1秒触发
; 当前脚本
[@1秒触发]
#IF
#ACT
Inc G1 1
SendMsg 0
当前G1值为:<$Str(G1)>
[基础] – 变量操作
脚本变量赋值
1.
MOV赋值
———————————————————
MOV 被赋值变量名 固定值或其它变量名
例:MOV N0
100
MOV S0
Hello,Mir!
2.
MOVR随机数赋值
———————————————————
MOVR 被赋值变量名
数值
被赋值变量在0 - 数值之间随机出一个数
例: MOVR N1 100 ;0-100随机一个数赋予到变量N1,包括数字0和100
3. set赋值
———————————————————
set %局部变量名 固定值或其它变量名
例子:
set %扣除金币 50000
;直接手写值是固定值
set %myname
<$USERNAME> ;常量也属于固定值
set %localvar S0 ;S0是另一个S变量,可以赋给一个%局部变量
注意:百分号局部变量(%)是本引擎特有的一种变量类型,运行效率高,和人物无关.
其变量值仅在当前@段有效,方便做一些临时存储操作.
4. 变量下发到客户端
———————————————————
命令:
SendVar
变量名
作用:
将指定变量的变量值同步到客户端,这样在客户端可以用<$STR(变量名)>获得变量值
应用示例:
可以在静态装备备注中取到动态人物变量值,例如:
某件装备备注这样写:
第1行备注\第2行使用S0变量=<$STR(S0)>\第3行备注
然后在S0变量更新后调用 SendVar
S0,客户端装备备注的S0值被替换成人物S0变量
5. 清空变量
———————————————————
命令:
ClearVar
变量名
参数:
用法1:只写变量名开头第1个字符,清空该类型所有变量
用法2:写完整变量名,只清空所写的变量
例1:
#IF
#ACT
ClearVar
S ;清空人物所有S变量
ClearVar A
;清空服务器所有A变量
例2:
#IF
#ACT
ClearVar S0 ;只清空人物S0变量
ClearVar A1 ;只清空A1变量
[基础] – 计算和比较
兼容命令
基本变量计算
————————————————-
INC 变量 数值 ;变量加指定数值到变量
DEC 变量 数值 ;变量减指定数值到变量
MUL 变量 数值 ;变量乘一个数值到变量
DIV 变量 数值 ;变量除一个数值到变量
基本变量比较
————————————————-
SMALL 变量 数值 ;如果”变量 <
数值”则检测通过
LARGE 变量 数值 ;如果”变量
> 数值”则检测通过
EQUAL 变量 数值 ;如果”变量 = 数据”则检测通过< /FONT
>
本引擎计算命令
1.
计算两个数运算结果
————————————————-
命令:
<$EVALUATE(①整数 ②运算符 ③整数)>
<$EVALUATEf(①小数
②运算符 ③小数)>
<$EVALUATEd(①高精小数 ②运算符 ③高精小数)>
<$EVALUATEi64(①64位整数
②运算符 ③64位整数)>
参数:
①整数:最大正负20亿的整数
①小数:7位有效数字的小数
①高精小数:15位有效数字的小数
①64位整数:正负9000万亿的整数
②运算符: +加法 -减法 *乘法 /除法
说明:
计算中左边数、运算符和右边数,中间都要有空格,不能漏
示例:
[@main]
#set %a 1
#set %b 1
#set %c
<$EVALUATE:%a + %b>
c = %c
执行后输出
输出:c = 2
2.
四则混合运算表达式求值
————————————————-
命令:
<$EVAL(表达式)>
例子:
[@test]
#IF
#ACT
3×2+6 =
<$EVAL(3*2+6)>
3.
开方(返回整数)
————————————————-
命令:
<$Sqrt(要开方的数)>
例子:
[@test]
#IF
#ACT
<$Sqrt(16)> ;结果: 4
4. 返回指定位的值
————————————————-
命令:
<$BIT:①位数>
参数:
①位数:最大31位
示例:
<$BIT:0>是1
<BIT:1>是2
<$BIT:2>是4
5.
取范围随机数
————————————————-
命令:
<$RAND:①起始数 ②终止数>
注意:
返回的随机数介于参数1和参数2之间,包括参数1或参数2
例子:
[@main]
<$RAND:0 100>
输出:随机输出介于0到100的数(包括0和100这两个数)
6.
从多个选项中随机取一个
————————————————-
命令:
<$RANDINSET:①选项1 ②选项2 ③选项3
…>
参数:
①选项1:任意数字或文本串
功能:
随机返回多个选项中的一个
示例:
[@main]
#IF
#ACT
<$RANDINSET:0 abc 123
xy> ;随机输出0 abc 123 xy的其中一个
本引擎检测比较命令
1.
两数比较
————————————————-
命令:
cmpi ①整型数字 ②比较符 ③整型数字
cmpf ①小数数字 ②比较符
③小数数字
cmpd ①高精小数 ②比较符 ③高精小数
cmpi64 ①64位整数 ②比较符
③64位整数
(比较经验值等超过20亿的大数用此命令)
参数:
①整型数字: 32位整数,-21亿至21亿
①64位整数: 64位整数,约900亿亿
①小数数字: 单精度小数
①高精小数: 双精度小数
②比较符:
〉
大于
<
小于
= 等于
>=
大于或等于
<=
小于或等于
!= 不等于
说明:
检查两值比较是否通过
示例:
[@test]
#IF
cmpi
5 >
4
#THEN
5永远大于4
#ELSE
此句不会被执行到
#ENDIF
实际中,使用cmpi指令比较的数字都来自于变量,
cmpi是一个通用的比较运算命令,可以代替一些固定比较命令,如:
玩家等级、金币等数据比较可以写成以下形式:
#set
%mygold $MYGLD$
#IF
cmpi %mygold >
5000
#THEN
角色当前金币大于5000
#ENDIF
等同于
#IF
checkgold >
5000
#THEN
角色当前金币大于5000
#ENDIF
用cmpi比较时已经取出当前金币数量到变量%mygold中,
如果后面还要用到当前金币数量,则可以一直复用%mygold变量
2.
两字符串相等比较
————————————————-
命令:
cmps
①字符串a ②字符串b
说明:
比较给定两个字符串是否相等,相等返回真,不等返回假
备注:
字符串比较,不用写比较符,总是比较字符串是否相等
示例:
[@main]
#set
%myname $PLAYERNAME$
#IF
cmps %myname 张三
#THEN
give
回城卷
#ENDIF
3. N分之1几率检测
————————————————-
命令:
CheckProb ①用n分之一表示的概率
说明:
检测n分之一几率是否触发
示例:
[@main]
#IF
CheckProb 1
#THEN
百分百触发
#ENDIF
[@main]
#IF
CheckProb 10
#THEN
10分之一几率触发
#ENDIF
4. 百分比几率检测
————————————————-
命令:
CheckProbPCT
①百分比几率
参数:
①百分比几率:可以写0.1%检测千分比,0.01%检测万分比
功能:
检查百分之多少的几率会触发
示例:
[@main]
#IF
CheckProbPCT
50%
#ACT
百分之50触发
[@main]
#IF
CheckProbPCT 0.1%
#ACT
千分之1触发
5. 位检测
————————————————-
命令:
CheckBit ①数字 ②位运算符 ③数字
参数:
①数字:32位整数数字,其位分布可用操作系统自带的计算器查看
②位运算符,有2个,分别是$(并运算)和|(和运算)
说明:
检测两个数字的位运算是否为1
示例:
[@main]
#IF
CheckBit
15 & 8
#ACT
1
#ELSEACT
0
执行以上脚本输出:1
数15的位分布是: 1 1 1 1
数8的位分布是: 0 1 0 0
15 & 8
的意思是检查15这个数的第3位(从右向左数)是否为1,
通过位分布可以看出,检测是通过的
6. 检测参数是否在集合中
————————————————-
命令:
CheckInSet ①指定参数 ②待查集合(每项空各隔开)
参数:
①指定参数:任意变量、常量、%号局部变量或直接写出的字符
②待查集合:以空格隔开的集合项
说明:
检查参数①指定参数是否在待查集合中,在则通过检测,不在不通过
示例:
[@main]
set
%沃玛武器 炼狱 魔杖 银射
set %武器名 木剑
#IF
CheckInSet %武器名
%沃玛武器
#THEN
%武器名是沃玛武器
#ELSE
%武器名不是沃玛武器
#ENDIF
执行以上脚本输出:木剑不是沃玛武器
7. 检查是否为空
————————————————-
功能:
CheckEmpty
①参数
参数:
①参数:任意变量、常量、%号局部变量或直接写出的字符
说明:
检测参数是否为空
例子:
[@test]
#IF
#ACT
MOV S0
#IF
CheckEmpty
S0
#ACT
变果S0为空
#ELSEACT
变果S0不为为空
[基础] – 字符串
字符串操作命令
1. 检查字符包含
——————————————————-
命令:
CheckContainsText ①源字符串 ②要检查的字符
示例:
[@main]
#IF
CheckStrContain abc123 123
#ACT
字符串abc123中包含123
2.
字符串排序
——————————————————-
命令:
注意:
a.参数3直接写变量名S$xxx,不要带<$STR(S$xxx)>
b.参数3的变量是已排序并分割好的结果,无需再去分割,直接用,看例子
例子:
#if
#ACT
MOV S$三号位置 10
MOV S$四号位置 7
MOV S$五号位置 3
MOV S$排序 <$STR(S$三号位置)>|<$STR(S$四号位置)>|<$STR(S$五号位置)>
JZSortString <$STR(S$排序)> | S$排序分割 0
sendmsg 7 <$STR(S$排序分割1)>,<$STR(S$排序分割2)>,<$STR(S$排序分割3)>
3. 指定分割符切割字符串
——————————————————-
命令:
<$F(①字符串(不能含空格) ②第几个
③分隔符)>
参数:
①字符串:不能含空格的字符串
②第几个:取第几个切分位置值,从1开始
③分隔符:一般是逗号’,’
这取决于参数①中的字符串以什么符号分隔,不能是空格
说明:
取以指定分隔符分隔的字符串中的第几个字段值
示例:
[@main]
#IF
#ACT
MOV S$数据
abc,123,xyz
第1列数据为:<$F(<$STR(S$数据)> 1
,)>
第2列数据为:<$F(<$STR(S$数据)> 2
,)>
第3列数据为:<$F(<$STR(S$数据)> 3 ,)>
4. 按空格切分字符串
——————————————————-
命令:
<$FILED(①要取第几个 ②字符串)>
功能:
取以空格分割字符串的第几个分割串
参数:
①要取第几个:从1开始
②字符串:以空格分割
例子:
[@main]
set %str abc xyz
123
第1个切分串:<$FIELD(1 %str)> //
输出abc
第2个切分串:<$FIELD(2 %str)> //
输出xyz
第3个切分串:<$FIELD(3 %str)> // 输出123
取切分串个数
——————————–
命令:
<$FIELDCOUNT(空格分割字符串)>
功能:
取出切分串个数
例子:
[@main]
set %str abc xyz 123
切分串个数:
<$FIELDCOUNT(%str)>
5.
按行切分字符串
——————————————————-
命令:
<$L(①字符串 ②要取第几行)>
功能:
取多行字符串中的指定行
参数:
①字符串:多行字符串(一般不是手动输入,而是来自其它数据获取命令取得的数)
例如:使用一些数据读取命令会返回多行数据结果,此时就接着使用本命令取出某一行,或通过循环遍历所有行
②要取第几行:从1开始,1表示第1行
删除字符串中的部分文本
——————————————————————————-
<$DelStr(①字符串 ②要删除的文本)>
示例:
[@main]
#IF
#ACT
<$DelStr(abc123 123)> //
结果: abc
5. 数字转汉字
————————————————————–
命令:
<$ToHanziNum(①数字)>
例子:
#IF
#ACT
<$ToHanziNum(123)> ;输出: 一二三
6. 随机取字符串
————————————————————–
命令:
<$RANDINSET(字符串1 字符串2 字符串3 …)>
7.
等概率或者按权限随机获取分割字符串
————————————————————–
命令:
RANSJSTR 参数1 参数2 参数3 参数4
参数5
参数1:需要获取随机的字符串
字符串#权重|字符串#权重 |=分割符 (字符串顺序无要求)
参数2:0~1(0=系统权重随机,有几个字符串就是几分之一,1=按#位权重随机总权重为各项;位权重总和)
参数3:0~3(0=参数4和参数5;显示#权重数字
1=参数4和参数5;不显示#权重数字
2=参数4;显示权重
参数5;不显示权重< BR>
3=参数4;不显示权重 参数5;显示权重)
参数4:随机到的字符串保存变量
参数5:剩余的字符串保存变量
例子1:
[@随机分割字符串]
#IF
#ACT
RANSJSTR 测试1#2000|测试2#1000|测试3#5000
1 3 S0 S1
;总权重说明:总权重为2000+1000+5000=8000
SENDMSG 0
随机的字符串:<$str(S0)>
SENDMSG 0
剩余字符串值:<$str(S1)>
;假设分割出来的是:测试2#1000
;继续分割剩余的字符串
总权重为2000-1000+5000=7000
RANSJSTR <$str(S1)> 1 3 S2 S3
SENDMSG 0
随机的字符串:<$str(S2)>
SENDMSG 0 剩余字符串值:<$str(S3)>
例子2:
[@随机分割字符串系统权重]
#IF
#ACT
RANSJSTR 木剑#3|铁剑#3|短剑#3 0 1 S0
S1
SENDMSG 0 随机的字符串:<$str(S0)>
SENDMSG 0
剩余字符串值:<$str(S1)>
;总权重说明:总权重为3(系统权重随机时,有几个字符串就是几份之一)
gives
<$str(S0)>
SENDMSG 0 你获得了3把铁剑(假设分割出来的是铁剑)
权重规则解释:
如:RANSJSTR 测试2#300|测试1#100|测试3#200 1 3 S0 S1
那么总权重为:300+100+200=600
系统会从1~600随机出来一个数,
如随机出来的是50,那么就和第一个字符串#权重|做对比 如果50比第一个字符串小于等于,那么就取第1个
如果随机出来的是400,那么就会用400-300=100 再和下面一个 测试1#100 对比然后小于等于100那么就取第二个,依次类推
CheckSubStr ①源字符串
②子字符串
——————————————————-
功能:
检查②子字符串在①源字符串是否存在
<$SUBSTR:①源串
②搜索串>
——————————————————-
功能:
在源串中找到搜索串,也用于检查源串中有没有指定的串.
如果找到搜索串,则返回从搜索串开始字符串(包含搜索串),
没有,则返回空,可用#checkempty命令对返回结果检测是否为空
示例:
set
%str <$SUBSTR:abc123xyz 123>
%str
执行以上脚本将输出:123xyz
<$STRLEN:①字符串>
——————————————————-
功能:取指定字符串的长度,注意:如果字符串中有中文,则一个中文字占3个长度,非中文一个字符1个长度
此变量命令多用于检查来自客户端的输入,以免其输入过长文本,例如:
[@创建行会
%行会名]
#IF
cmpi $STRLEN:%行会名$ >=
24
#THEN
行会名过长,最多只能7个汉字(1个汉字占3个长度)
#ENDIF
<$STRCAT_WITH_SPACE:①字符串1 ②字符串2 ③字符串3
…>
——————————————————-
功能:将所列字符串连接起来,中间以空格分隔
此功能主要在循环体中应用,用于拼出一段完整的文本,而文本的每段在每个循环中取出或算出
示例:
[@main]
set
%curstr
set %curstr <$STRCAT_WITH_SPACE:%curset abc>
set %curstr
<$STRCAT_WITH_SPACE:%curset 123>
set %curstr <$STRCAT_WITH_SPACE:%curset
456>
%curstr
return
执行以上脚本将输出:abc 123
456
<$REPLACESTR:①原串 ②要替换什么
③替换成什么>
——————————————————————————-
功能:替换原串中指定的字符串
示例:
[@main]
set
%str <$REPLACESTR:abc123xyz 123 ABC>
%str
return
执行以上脚本将输出
abcABCxyz
<$REPLACENTO:①原串
②原串中的换行符替换成什么>
——————————————————————————-
功能:将原串中的换行符替换成指定字符
由于换行符不能手工打出来,一般从其它数据源中读取到的数据中包含换行符,有时需要方便显示,需要将换行符替换成空格等
Note:本变量命令REPLACENTO中REPLACE后面有一个字母N,表示换行符
<$REPLACESPACETO
①原串
②原串中的空格替换成什么>
——————————————————————————-
功能:将原串中的空格替换成指定字符
示例:
[@main]
set
%str <$REPLACESPACETO:”abc 123 xyz” |>
%str
return
执行以上脚本将输出
abc|123|xyz
注意:使用$REPLACESPACETO$变量命令,每1个参数必须用英文状态下的双引号包住。
<$REPLACETOSPACE:①原串
②原串中的什么字符替换成空格>
——————————————————————————-
功能:将原串中指定的字符替换成空格
示例:
[@main]
set
%str <$REPLACETOSPACE:”abc&123&xyz”
&>
%str
return
执行以上脚本将输出 abc 123 xyz
<$MD5:①原串>
——————————————————————————-
功能:求指定字符串的md5值
<$LOWERCASE:①原串>
——————————————————————————-
功能:将原串中大写的英文字母小写
数字转万
——————————————————————————-
<$NUMTOWAN:①数字>
示例:
[@main]
set
%str <$NUMTOWAN:1000000>
%str
return
执行以上脚本将输出:100万
万转数字
——————————————————————————-
<$WANTONUM:①带万的字符串>
示例:
[@main]
set
%str <$WANTONUM:100万>
%str
return
执行以上脚本将输出:1000000
<$COMMASPLIT:①数字串>
——————————————————-
功能:将指定数字转换成每千位逗号格式
示例:
[@main]
set %str
<$COMMASPLIT:1000000>
%str
return
执行以上脚本将输出:1,000,000
[基础] – 时间日期
时间日期相关命令
——————————————————–
常量:
<$DATETIME>
说明:
返回当前日期和时间,格式为:年-月-日 时:分:秒
示例:
[@main]
#IF
#ACT
当前日期日间为:<$DATETIME>
执行以上脚本将得到:2022-3-3 18:23:23(以实际时间为准,此处仅示例时间格式)
2. 取当前日期
——————————————————–
常量:
<$DATE>
说明:
返回当前日期和时间,格式为:年-月-日
示例:
[@main]
#IF
#ACT
当前日期为:<$DATE>
执行以上脚本将得到:2022-3-3(以实际时间为准,此处仅示例时间格式)
3. 取当前时间
——————————————————–
常量:
<$TIME>
说明:
返回当前日期和时间,格式为:时:分:秒
示例:
[@main]
#IF
#ACT
当前时间为:<$TIME>
执行以上脚本将得到:18:23:23(以实际时间为准,此处仅示例时间格式)
4. 取当前日期时间(带毫秒)
——————————————————–
常量:
<$SERVERTIME>
说明:
返回当前服务器的日期和时间,格式为:年-月-日 时:分:秒.毫秒
示例:
[@main]
#IF
#ACT
set %当前日期日间 <$SERVERTIME>
#SAY
前日期日间为:%当前日期日间
执行以上脚本将得到:2022/3/3
18:23:23.000(以实际时间为准,此处仅示例时间格式)
5.
开服日期
——————————————————–
常量:
<$KFTIME>
说明:
取开服日期,格式为:年-月-日
例子:
#IF
#ACT
本服开服日期: <$KFTIME> ; 返回实际开服务日期,如2023-8-9
<$CUR_DATETIMESTR>
功能:返回当前日期+时间组成的一串数字,中间没有任何连接符和空格
说明:此功能可用于生成一个唯一ID,因为当前时间一直在变
6.
开服时间
——————————————————–
常量:
<$KFTIMEEX>
说明:
取开服日期,格式为:时-分-秒
例子:
#IF
#ACT
本服开服时间: <$KFTIMEEX> ; 返回实际开服务时间,如20-30-00
7.
开服天数(整数)
——————————————————–
常量:
<$RUNDAYS_INT>
说明:
返回服务器运行的整天数,开服不到一天的,此命令将返回0
8.
开服天数(小数)
——————————————————–
常量:
<$RUNDAYS_FLOAT>
说明:
返回服务器运行的小数天数,开服不到一天的,此命令将返回零点几天
9. 当天秒数
——————————————————–
常量:
<$CURSEC>
说明:
返回从当天从0点到现在的秒数,一天总共86400秒
列子:
#IF
#ACT
现在是一天中的第<$CURSEC>秒
10. 本月最大天数
——————————————————–
常量:
<$MAXDAY>
11. 取当天是星期几
——————————————————–
命令:
<$WEEKDAY>
功能:
返回今天是星期几,星期一返回1,星期二返回2,…, 星期天返回7
12.
取当天是一年中的第几周
——————————————————–
命令:
<$WEEKCOUNT>
功能:
返回今天是一年的第几周
取当前时间到指定时间秒数
——————————————————–
命令:
<$NOWTOTIME(时间值)>
示例:
取现在到晚上8点的秒数
<$NOWTOTIME(20:00)>
注意:
需要判断返回值是否为负的情况,如果返回值为负(小于0),说明当前时间已超过指定时间
毫秒转秒
——————————————————–
命令:
<$MSTOSEC(毫秒值)>
示例:
[@main]
#IF
#ACT
10000毫秒是<$MSTOSEC(10000)>秒 ;结果:10秒
1500毫秒是<$MSTOSEC(1500)>秒 ;结果1.5秒
秒转毫秒
——————————————————–
命令:
<$SECTOMS(秒值)>
示例:
[@main]
#IF
#ACT
10秒是<$SECTOMS(10)>毫秒 ;结果10000
1.5秒是<$SECTOMS(1.5)>毫秒 ;结果1500
分钟转秒
——————————————————–
命令:
<$MINTOSEC(分钟值)>
示例:
[@main]
#IF
#ACT
1分钟是<$MINTOSEC(1)>秒 ;结果60
1.5分钟<$MINTOSEC(1.5)>秒 ;结果90
小时转分钟
——————————————————–
命令:
<$HOURTOMIN(小时值)>
示例:
[@main]
#IF
#ACT
1小时<$HOURTOMIN(10)>分钟 ;结果60
1.5小时<$HOURTOMIN(1.5)>分钟 ;结果90
当前时前转秒数
——————————————————–
<$TIMETOSEC:①24小时钟表间值>
功能:将提定时间值转成距零点秒数
参数:
①时间值格式为:
时:分:秒 或 时:分
示例:
[@main]
#set %凌晨1点秒数
<$TIMETOSEC:1:00>
%凌晨1点秒数
#return
输出:3600
CmpDate ①日期 ②比较符 ③日期
——————————————————–
功能:
比较两个日期大小
参数:
①日期: 格式为年-月-日 时:分:秒,例:2020-10-10 23:21:23
②比较符: > < >= <= != =
③日期:与参数①一样
备注:
如果仅比较日期,时间可以不写,①
③参数只写个日期即可
如果①③两个参数一个带时间一个不同时间,则①③参数需要用英文状态下的双引号包住
推荐总是将①③参数用双引号包住,这样不容易出错
例子:
[@main]
set
%当前时间 <$SERVERTIME>
#IF
cmpdate 2022-2-10 20:00:00 >
%当前时间
#ACT
现在还没有到2022年2月10日20点
#ELSEACT
现在已经超过2022年2月10日20点
cmptime ①时间 ②比较符
③时间
——————————————————–
功能:
比较一天内两个时间的大小,时间晚者为大
参数:
①时间:格式:
时:分:秒
②比较符:> < >= <= != =六种
③时间:格式: 时:分:秒
示例:
[@main]
set %当前时间 <$CURTIME>
#IF
cmptime %当前时间 =
18:00:00
#ACT
当前时间是下午6点整
#ELSEACT
现在不是下午6点
检查时段
——————————————————–
命令:
CheckTime ①起始时间 ②终止时间
参数:
①起始时间:格式:
时:分:秒
③终止时间:格式: 时:分:秒
说明:
检查当前服务器时间是否在指定的时段内,①②参数构成一个时段
示例:
[@main]
#IF
CheckTime 18:00:00
19:00:00
#ACT
当前时间在18点至19点之间
#ELSEACT
当前时间不在18点至19点之间
check_weekday
①星期几
——————————————————–
功能:检查今天是不是指定的星期几
[@main]
#IF
check_weekday
6
#ACT
今天是星期6
#ELSEACT
今天不是星期6
<$TIMESTAMP>
功能:取时间戳值,此值是现在距离1970年的秒数。
说明:在对接一些第三方平台时,需要传输此时,游戏里也可用此值判断秒流逝。
<$ENDTIME_FROM_NOW:①度量时间值$>
——————————————————–
功能:
返回在当前时间推移指定时间后的钟表时间值
参数:
①度量时间值:可以是10秒、1小时、15分钟、1天
示例:
[@main]
set
%结束时间
<$ENDTIME_FROM_NOW:30分钟>
%结束时间
return
输出:如果当前时间是16:00,将输出16:30
<$ADDDATE_BY_DAYS:①日期
②要增加的天数(可以是小数天)>
——————————————————–
功能:
在指定日期上加上指定天数,返回加上天数后的日期,用于计算经历多少天后的日期
参数:
①日期格式:
年/月/日 时:分:秒
②要增加的天数:可以是1天、2天、1.5天、0.5天等
示例:
[@main]
set %当间日期
<$SERVERTIME>
set %结束日期 <$ADDDATE_BY_DAYS:%当间日期
3>
%结束日期
return
输出:如果当前时期是2022/3/1
10:00:00,则输出2022/3/4 10:00:00
<$FORMATDATE_TO_YYMMDDHHMM ①指定日期>
功能:将指定日期转成年/月/日 时:分的格式,也可以看成舍去日期最后的秒
<$NEXTWEEKDATE:①星期几
②要跨几周>
功能:取多少周后的星期几是多少几月几号
示例:
<$NEXTWEEKDATE:3 1>
即取下个星期3是几月几号
<$NEXTWEEKDATE:3 2>
即取2周后的星期3是几月几号
<$DATETIME_TO_DATE:①日期加时间>
功能:舍去日期后面的时间值,即只要年月日
<$DIFFDAYS:①起始日期 ②终止日期>
功能:取终止日期到起始日期之间的天数,如果少于1天,则为小数天
<$DIFFSECS_FROM_TIME:①起始时间
②终止时间>
——————————————————–
功能:取终止时间到起始时间之间的秒数
参数:
①起始时间格式:
时:分:秒
①终止时间格式: 时:分:秒
[@main]
set %当间日期 <$SERVERTIME$>
set %间隔秒数
<$DIFFSECS_FROM_TIME:12:00:00 12:01:00>
%间隔秒数(秒)
return
输出:60(秒)
<$STR2MILLISECOND(①时间值)>
——————————————————–
功能:
将指定的度量时间值转换成毫秒
参数:
①时间值:可以是10秒、1小时、15分钟、1天
示例:
[@main]
set
%毫秒值 <$STR2MILLISECOND:1秒>
1秒=%毫秒值(毫秒)
return
输出:1秒=1000(毫秒)
<$STR2SECOND(①度量时间值)>
——————————————————–
功能:将指定的度量时间值转换成秒
参数:
①度量时间值:可以是10秒、1小时、15分钟、1天
示例:
[@main]
set
%秒值 <$STR2MILLISECOND:1分钟>
1分钟=%秒值(秒)
return
输出:1分钟=60(秒)
<$MILLISECOND2STR(①毫秒值)>
——————————————————–
功能:将指定的毫秒值转成度量时间值
示例:
[@main]
set
%度量时间值
<$MILLISECOND2STR:60000>
60000(毫秒)=%度量时间值
return
输出:60000(毫秒)=1分钟
暂停等待
——————————————————–
命令:
sleep_millisecond ①毫秒时间值
功能:
执行此处暂停一定毫秒数,当前地图执行线程会卡住,直到暂停时间结束
注意:此命令一般用做调试,正常情况给不使用。
[基础] – 文本文件操作
文本文件操作
引擎支持常量读取文本中的数据,存入变量的方式仍然兼容,但推荐使用常量,原因有:
a.
常量读取不涉及到变量,立即获得值,更高效便捷
b. 在某些全局执行脚本中,没有当前人物,无法保存到变量
文件名:
=================================
文件名相对于“Mir200/Envir”目录开始,
例如:直接写文件名,读取”Mir200/Envir”目录下的文件,
开发人员可以在文件名前加上目录名已操作其他地方的文件.
支持全路径访问:
=================================
如果文件名包含磁盘符开头的全路径,则读取这个全路径文件名,
如果文件名以/开头,则访问当前盘文件.
文件行号问题:
=================================
对于老式文本操作命令,在涉及到行号时,有些从0开始,有些从1开始,比较混乱,
鉴于此,本引擎文本行号统一从1开始,末尾带SK的命令,行号一律从1开始,老命保持原样兼容.
1. 写入字符串
——————————————————————
命令:
AddTextList ①文件名
②字符串
参数:
①文件名:如果文件名中有空格,则需要用小写的双引号将文件名包住
(以下所有命令中的文件名有空格的都如此操作)
说明:
写入指定文件尾行,相当于末尾追加写入.
如果文件不存在,则自动创建.(无需先手动创建文件)
例子:
[@main]
#IF
#ACT
AddTextList
..\QuestDiary\测试文件.txt 第1行文本
AddTextList ..\QuestDiary\测试文件.txt
第2行文本
AddTextList ..\QuestDiary\测试文件.txt 第3行文本
AddTextList
..\QuestDiary\测试文件.txt 第4行文本
AddTextList ..\QuestDiary\测试文件.txt 第5行文本 支持空格
支持空格
AddTextList “..\QuestDiary\文件名
有空格.txt” 第1行文件
2. 写入字符串到指定行
——————————————————————
命令:
AddTextListEx ①文件名 ②字符串 ③行(0-65535)
SK命令:
AddTextListExSK ①文件名 ②字符串 ③行(从1开始,行数不限)
(若参数3小于0会报警告,大于当前行数会向下继续扩展新行.)
功能:
把字符串写入到指定的文本文件中,可以指定写入行.
如果文件不存在,则自动创建.(无需先手动创建文件)
例子:
[@main]
#IF
#ACT
AddTextListEx
..\QuestDiary\测试文件.txt <$USERNAME> 0 ;兼容老命令,0表示第一行
AddTextListExSK
..\QuestDiary\测试文件.txt
<$USERNAME> 1
;SK命令,1表示一行,2表示第2行
;写入到第10行位置(如果写入前文件没有10行,则扩展到10行
AddTextListExSK ..\QuestDiary\测试文件.txt <$USERNAME> 10
3. 删除文本某一行
——————————————————————
命令:
DelText ①文件名 ②行(从0开始)
③删除模式
SK命令:
DelTextSK ①文件名 ②行(从1开始 ) ③删除模式
参数:
①文件名:
②行:老命令0算第一行,SK命令1是第一行
③删除模式:
0=不保留删除行(默认) 1=保留删除行为空行
例子:
[@main]
#IF
#ACT
AddTextList
..\QuestDiary\测试文件.txt <$USERNAME>1
AddTextList ..\QuestDiary\测试文件.txt
<$USERNAME>2
AddTextList ..\QuestDiary\测试文件.txt
<$USERNAME>3
AddTextList ..\QuestDiary\测试文件.txt
<$USERNAME>4
[@删除行]
#IF
#ACT
DelTextSK ..\QuestDiary\测试文件.txt 1 ;删除第1行
DelTextSK ..\QuestDiary\测试文件.txt 2 ;删除第2行
4. 删除字符串
——————————————————————
命令:
DelTextList ①文件名
②要删除的字符串
说明:
在文件中搜索指定的字符串,然后删除所在行.
例子:
;增加字符串
[@main]
#IF
#ACT
AddTextList ..\QuestDiary\测试文件.txt
您的名字您的性别
;删除字符串
[@删除字符串]
#IF
#ACT
DelTextList ..\QuestDiary\测试文件.txt
您的名字
5. 清除文件内容
——————————————————————
命令:
CLEARNAMELIST
①文件名
说明:
文件内容被清空,但文件还在(已是一个空文件).
例子:
[@main]
#IF
#ACT
CLEARNAMELIST
..\QuestDiary\测试文件.txt
#SAY
文件内容被清空,文件还在.
6. 删除文文件
——————————————————————
命令:
DeleteFile
①文件名
说明:
删除指定文件.
如果文件本身不存在,则无任何效果也没有任何提示
注意:删除文件无法恢复,且可以删除电脑上任何文件,清谨慎操作!!!
例子:
[@main]
#IF
#ACT
DeleteFile
..\QuestDiary\测试文件.txt
#SAY
“Mir200\Envir\QuestDiary\测试文件.txt”此文件已从电脑中删除
7. 检查文件是否存在
——————————————————————
命令:
CheckFileExist
①文件名
说明:
检查指定文件是否存在.
例子:
[@main]
#IF
CheckFileExist
..\QuestDiary\测试文件.txt
#ACT
NewFile.txt文件存在
#ELSEACT
NewFile.txt文件不存在
8.
读取文本内容
——————————————————————
命令:
GetListString ①文件名 ②行号(从0开始) ③变量1
④变量2
SK命令:
GetListStringSK ①文件名 ②行号(从1开始
) ③变量1 ④变量2
常量:
<$GETLISTSTRING(①文件名 ②行号(从1开始 ))>
;行号不填或0或负值,随机读取一行
说明:
变量2可以不需要,当读取变量2时文本单行的内容必须是以下格式:
人物1:10
人物2:20
例子:
[@main]
#IF
#ACT
AddTextList
..\QuestDiary\测试文件.txt 人物1:10
AddTextList ..\QuestDiary\测试文件.txt 人物2:20
GetListString ..\QuestDiary\测试文件.txt 0 S10 N10
;取第一行数据,老命令,行号从第0行开始
GetListStringSK ..\QuestDiary\测试文件.txt 1 S100 N100
;同样取第一行数据,SK命令,行号统一从第1行开始
;常量方式读取
#IF
#ACT
<$GETLISTSTRING(..\QuestDiary\测试文件.txt 1)> ;
取第1行
<$GETLISTSTRING(..\QuestDiary\测试文件.txt 2)> ; 取第2行
9.
读取文本单行多列
——————————————————————
命令:
GetListStringEx ①文件名 ②行号(从0开始) ③写入变量
④符号(默认为空)
SK命令:
GetListStringExSK ①文件名 ②行号(从1开始 ) ③写入变量 ④符号(默认为空)
例子:
[@读文本多列]
#IF
#ACT
AddTextListEx
..\QuestDiary\测试文件.txt 战士*100*法师*200*道士*300 0
GetListStringEx
..\QuestDiary\测试文件.txt 0 S$读取列 *
SENDMSG 0 —<$STR(S$读取列0)>
SENDMSG 0
—<$STR(S$读取列1)>
SENDMSG 0 —<$STR(S$读取列2)>
SENDMSG 0
—<$STR(S$读取列3)>
SENDMSG 0 —<$STR(S$读取列4)>
SENDMSG 0
—<$STR(S$读取列5)>
10. 从文件中随机取文本
——————————————————————
命令:
GetRandomLineText ①文件名 ②字符串变量 ③指定行(从1开始)
常量:
<$RandomLineText(①文件名 ②行号(从1开始
))>
参数:
①文件名
②字符串变量:取到的字符串存入哪个变量
③指定行:
0或空是随机一行,大于0是取指定行,小于0取倒数行
例子:
[@Main]
#If
#Act
GETRANDOMLINETEXT
..\QuestDiary\测试文件.txt S0 ; 取随机行
GETRANDOMLINETEXT
..\QuestDiary\测试文件.txt S0 0 ; 取随机行
GETRANDOMLINETEXT ..\QuestDiary\测试文件.txt
S0 1 ; 取第1行
GETRANDOMLINETEXT ..\QuestDiary\测试文件.txt S0 2 ;
取第2行
GETRANDOMLINETEXT ..\QuestDiary\测试文件.txt S0 -1; 取倒数第1行
#Say
取回的文本是: <$STR(S0)>
;
用常量取
#IF
#ACT
<$RandomLineText(..\QuestDiary\测试文件.txt)> ;
随机取一行
<$RandomLineText(..\QuestDiary\测试文件.txt 1)> ;
取第1行
<$RandomLineText(..\QuestDiary\测试文件.txt 2)> ;
取第2行
<$RandomLineText(..\QuestDiary\测试文件.txt
-1)> ; 取倒数第1行
11. 从文件中随机获取一行字符串
——————————————————————
命令:
GetRandomText ①文件名 ②变量(S0–S99)
③指定行(从0开始)
SK命令:
GetRandomTextSK ①文件名 ②变量(S0–S99) ③指定行(从1开始
)
常量:
<$GETLISTSTRING(①文件名 ②行号(从1开始))> ;行号不填或0或负值,随机读取一行
说明:
没有指定行时随机取某一行的字符串.
例如,随机取一行字符串到S10中.
[@Main]
#IF
#ACT
GetRandomText
..\QuestDiary\测试.txt S10
SendMsg 5
取出的字符串是:<$STR(S10)>
例如,取特定行的字符串.
[@Main]
#IF
#ACT
GetRandomText ..\QuestDiary\测试文件.txt S10 5 ;
老命令从0开始,实际上取第6行
SendMsg 5 取出的字符串是:<$STR(S10)>
GetRandomTextSK ..\QuestDiary\测试文件.txt S10
5 ; 新命令从1开始,写几就是第几行,这里就是取第5行文本
SendMsg 5
取出的字符串是:<$STR(S10)>
<$GETLISTSTRING(..\QuestDiary\测试文件.txt
5)> ;
新命令从1开始,写几就是第几行,这里就是取第5行文本
12. 取字符串在列表中的下标
——————————————————————
命令:
GetStringPos ①文件名 ②字符串
返回值放在人物的N0变量中,0是第一行,如果值为9999999说明没有找到.
SK命令:
GetStringPosSK ①文件名 ②字符串 ;返回行号从1开始
返回值放在人物的N0变量中,1是第1行,如果值为0说明没有找到.
常量:
<$GetStringPos(①文件名 ②字符串)> ;
0表示没找到,1表示第1行,2是第2行
其他:返回值可以通过EQUAL做条件检测
例子:
[@main]
#IF
#ACT
GetStringPosSK
..\QuestDiary\测试文件.txt 管理员
SendMsg 5
字符串在列表中的位置:<$STR(N0)>
; 常量取法
#IF
#ACT
字符串在列表中的位置:<$GetStringPos(..\QuestDiary\测试文件.txt 管理员)>
13. 检查字符串是否存在
——————————————————————
命令:
CHECKTEXTLIST ①文件名 ②字符串
例子:
=============================
[@旧格式_不区分大小写]
MOV S$2 管理员
#IF
CHECKTEXTLIST ..\QuestDiary\测试文件.txt
<$STR(S$2)>
#SAY
<$STR(S$2)>在列表中
#ELSESAY
<$STR(S$2)>不在列表中
[@新格式_区分大小写]
MOV S$2
卡号1000
MOV S$3 密码9999
#IF
CHECKTEXTLIST
..\QuestDiary\测试文件.txt <$STR(S$2)>
<$STR(S$3)>
#SAY
卡号密码正确
#ELSESAY
卡号密码错误
S$2和S$3的值在“测试文件.txt”文本中以空格分开
14. 检查字符串包含
——————————————————————
命令:
CheckContainsTextList
①文件名 ②字符串
说明:
检查字符串是否在指定文件中,包含检测的字符串不需要完全相同,
文件里的字符包含检测的字符,就会成功
例子:
=============================
[@CheckContainsTextList]
#IF
CheckContainsTextList
..\QuestDiary\测试文件.txt <$STR(S2)>
#ACT
SENDMSG 6
列表文件中某一行字符包含<$STR(S2)>
#ELSEACT
SENDMSG 6
列表文件中某一行字符不包含<$STR(S2)>
[@CheckContainsTextListEx]
#IF
CheckContainsTextListEx
..\QuestDiary\测试文件.txt <$STR(S2)>
#ACT
SENDMSG 6
列表文件中某一行字符完全匹配<$STR(S2)>
#ELSEACT
SENDMSG 6
列表文件中某一行字符不匹配<$STR(S2)>
注意:
CheckContainsTextList和CheckContainsTextListEx区别:
CheckContainsTextList 列表中,是否包含相关字符
CheckContainsTextListEx 列表中,是否完全匹配相关字符
15. 检查文件是否为空
——————————————————————
命令:
CheckTextFileEmpty ①文件名
例子:
#IF
CheckTextFileEmpty
..\QuestDiary\测试文件.txt
#ACT
文件为空
#ELSEACT
文件不为空
获取文本文件行数
——————————————————————
<$GetTextFileLineCount(①文件名)>
例子:
<$GetTextFileLineCount(..\QuestDiary\测试文件.txt)>
人物相关文本操作
1. 检测人物名单
——————————————————————
命令:
CHECKNAMELIST
①文件名
例子:
[@检测名字在文本]
#IF
CHECKNAMELIST
..\QuestDiary\测试.txt
#ACT
SendMsg 0 名字在文本
#ELSEACT
SendMsg 0 名字不在文本
2. 增加人物ID在列表中
——————————————————————
命令:
CHECKACCOUNTLIST
①文件名
说明:
检测账号唯一ID
(非登录账号ID)
命令:
ADDACCOUNTLIST
①文件名
说明:
增加账号唯一ID
(非登录账号ID)
例子:
#IF
CHECKACCOUNTLIST
..\QUESTDIARY\测试.TXT
#act
SENDMSG 0 在里面
#ELSEACT
SENDMSG 0
不在里面
#IF
#Act
ADDACCOUNTLIST
..\QUESTDIARY\测试.TXT
3.
删除人物ID在列表中
——————————————————————
命令:
DELACCOUNTLIST ①文件名
例子:
[@DelAccountList]
#IF
#Act
DELACCOUNTLIST
AccountList.txt
4.
增加人物名在列表中
——————————————————————
命令:
ADDNAMELIST ①文件名
例子:
[@AddNameList]
#IF
#Act
ADDNAMELIST
NameList.txt
5. 删除人物名在列表中
——————————————————————
命令:
DELNAMELIST ①文件名
[@DelNameList]
#IF
#Act
DELNAMELIST
NameList.txt
6. 增加人物IP在列表中
——————————————————————
命令:
ADDIPLIST
①文件名
例子:
[@AddIPList]
#IF
#Act
ADDIPLIST
IPList.txt
7.
删除人物IP在列表中
——————————————————————
命令:
DELIPLIST
①文件名
例子:
[@DelIPList]
#IF
#Act
DELIPLIST IPList.txt
8.
检查人物在列表中的位置
——————————————————————
命令:
CHECKNAMELISTPOSITION List.txt
比较符号(>,<,=) 10 P0
例子:
=============================
[@checkpostion0]
#IF
CHECKNAMELISTPOSITION
AccountIPList.txt < 10
P0
#SAY
您在前10名,当前排名为<$STR(P0)>
#ELSESAY
您不在前10名,当前排名为<$STR(P0)>
文件操作
1. 创建文件
——————————————————————
命令:
CreateFile
①文件名
说明:
在指定位置建立一个文本文件.
例子:
[@main]
#IF
#ACT
CreateFile
..\QuestDiary\NewFile.txt
#SAY
在”Envir\QuestDiary”目录中建立了一个空文件.
[基础] – 读写INI配置项
读写INI配置项
写配置项: WriteConfigFileItem ①文件名 ②配置项区 ③配置项节 ④配置项值
读配置项: ReadConfigFileItem ①文件名 ②配置项区 ③配置项节 ④存入变量
删除配置项区:DelConfigFileSection ①文件名 ②配置项区
删除配置项节:DelConfigFileItem ①文件名 ②配置项区 ③配置项节
常量方式读取: <$ConfigFileItem(①文件名 ②配置项区 ③配置项节)>
配置项文件名默认相对于”Mir200/Envir“目录,同时也支持全路径文件读取.
例如:
========================
[@当前版本路径读写]
#IF
#ACT
WriteConfigFileItem ..\QuestDiary\test.txt 测试配置区
配置项节1 123
读取值:
<$ConfigFileItem(..\QuestDiarytest\test.txt 测试配置区 配置项节1)>
;当前M2运行盘下创建一个”测试目录”,写入test.txt文件
[@当前盘路径读写]
#IF
#ACT
WriteConfigFileItem /测试目录/test.txt 测试配置区 配置项节1 123
读取值:
<$ConfigFileItem(/测试目录/test.txt 测试配置区 配置项节1)>
;全电脑路径,在C盘创建一个”测试目录”,写入test.txt文件
[@电脑路径读写]
#IF
#ACT
WriteConfigFileItem C:/测试目录/test.txt 测试配置区 配置项节1 123
==========以下命令属高效率读写配置项(缓存,引擎关闭才会保存)==================
缓存式写配置项:WriteCacheConfigFileItem 文件名 配置项区 配置项节 配置项值
缓存式读配置项:ReadCacheConfigFileItem 文件名 配置项区
配置项节 存入变量
删除配置项区: DelCacheConfigFileSection 文件名 配置项区
删除配置项节: DelCacheConfigFileItem 文件名 配置项区
配置项节
常量读取: <$CacheConfigFileItem(文件名 配置项区 配置项节)>
这4个是 Cache(缓存),操作速度会比不带cache的快很多,
问题就是,在M2运行过程中,只能用脚本操作,手动操作的无效.
如果ini文件不存在手动操作的情况下,就用Cache.
Cache的特点是,对ini的操作只打开一次,然后一直在内存缓存,
所以只命令操作才有效,手动操作无效.
关闭引擎时候才会保存到INI文件内,引擎运行期间一直内存中运行,
所以启动引擎后手动修改INI文件信息是无效的
在没有手动操作ini的情况下,推荐用带cache的。不带cache的比较耗时.
比如提现:操作会删除提现记录属于手动操作,
所以不能使用cache,但计算战斗力属于内部引擎操作无手动干预,可以使用带cache的!
此命令配合使用就相当于变量保存操作.
[@写配置]
#IF
#ACT
WriteConfigFileItem
..\QuestDiary\KEY.txt <$USERNAME> 配置内容 SK
SENDMSG 6
写入QuestDiary\KEY.txt <$USERNAME> 配置内容 SK
[@读配置]
#if
#act
ReadConfigFileItem ..\QuestDiary\KEY.txt <$USERNAME>
配置内容 S1
SENDMSG 6 你读取的配置内容为:S1=<$STR(S1)>
;常量方式读取
SENDMSG 6 你读取的配置内容为:<$ConfigFileItem(..\QuestDiary\KEY.txt <$USERNAME>
配置内容)>
[@删区]
#if
#act
DelConfigFileSection
..\QuestDiary\KEY.txt <$USERNAME>
SENDMSG 6
删区QuestDiary\KEY.txt <$USERNAME>
[@删节]
#if
#act
DelConfigFileItem
..\QuestDiary\KEY.txt <$USERNAME> 配置内容
SENDMSG 6
删节QuestDiary\KEY.txt <$USERNAME> 配置内容
[@写配置到缓存]
#IF
#ACT
WriteCacheConfigFileItem
..\QuestDiary\KEY.txt <$USERNAME> 配置内容 SK
SENDMSG 6
写入QuestDiary\KEY.txt <$USERNAME> 配置内容 SK
[@读配置到缓存]
#if
#act
ReadCacheConfigFileItem ..\QuestDiary\KEY.txt
<$USERNAME> 配置内容 S1
SENDMSG 6
你读取的配置内容为:S1=<$STR(S1)>
[@删区到缓存]
#if
#act
DelCacheConfigFileSection
..\QuestDiary\KEY.txt <$USERNAME>
SENDMSG 6
删区QuestDiary\KEY.txt <$USERNAME>
[@删节到缓存]
#if
#act
DelCacheConfigFileItem
..\QuestDiary\KEY.txt <$USERNAME> 配置内容
SENDMSG 6
删节QuestDiary\KEY.txt <$USERNAME> 配置内容
[基础] – CSV表格读取
CSV表格读取命令
——————————————————-
常量:
<$READCSV(①表文件名 ②行号 ③列号)>
参数:
①表文件名:从”Mir200/Envir”目录开始的CSV表格文件名
②行号:从1开始 ,写1就是读取第1行
③列号:从1开始 ,写1就是读取第1列
说明:
读取值直接作为常量返回
例子:
========================
[@main]
;
读取Mir200/Envir/Npcs.csv表下第1行第1列内容
#SAY
Npcs.csv表中第1行第1列内容:<$READCSV(Npcs.csv
1 1)>
Npcs.csv表中第2行第1列内容:<$READCSV(Npcs.csv 2
1)>
Npcs.csv表中第3行第1列内容:<$READCSV(Npcs.csv 3 1)>
;
循环读取Mir200/Envir/QuestDiary/List.txt表中所有内容
#say
文件QuestDiary/List.txt内容如下:
#set
%loopcounter 1
#LABEL_LOOP
#set %表内容 <$READCSV(QuestDiary/List.txt
%loopcounter 1)>
;
检查表内容是否为空,为空时结束循环
#IF
CheckEmpty
%表内容
#ACT
#goto #LABEL_SKIPLOOP
#ENDIF
;
不为空显示出表内容
第%loopcounter行:%表内容
INC %loopcounter 1
#goto
#LABEL_LOOP
#LABEL_SKIPLOOP
2.
按主键值读取csv表格
——————————————————-
常量:
<$CSVKEY(①表文件名 ②主键值 ③列号
④主键列)>
参数:
①表文件名:从”Mir200/Envir”目录开始的CSV表各文件名
②主键值:
表格中的第一行的ID或唯一名字,默认在第1列,如果主键不在第1列,则需要参数4指定
③列号: 从1开始,写1就是读取第1列
④主键列: 默认主键在第1列,如果一个表的主键列不在第1列,则需要填此参数第几列是主键列
说明:
读取值直接作为常量返回
[基础] – 客户端命令
客户端命令
以下是在客户端执行的命令:
1. 播放音效
——————————————————-
命令:
PlaySound
①音效素材名
参数:
2. 停止音效
——————————————————-
命令:
StopSound
①音效素材名
参数:
①音效素材名:
要停止的音效素材,如果为空,则停止当前正在播放的所有音效
[货币] – 单一货币
货币
提示:
本引擎为64位货币数值,最大约922亿亿
1. 调整货币数量
——————————————————–
命令:
Money
①货币名称(或ID) ②操作符(+,-,=
)
③数量(922亿亿)
④流水类型(选填)
说明:
调整当前人物货币数量
参数:
①货币名称:在物品表中stdmode=41的物品名称
④流水类型(选填):100以上的自定义数字(100以内由系统占用),表示货币变化含义(GM自已知道)
如果填写此参数,则引擎会记录每笔货币变化时间和流水类型,以便后期查询货币流水.
例子:
;增加货币数量
[@MONEY1]
#IF
#ACT
MONEY 金币 +
1
#SAY
你的金币增加了1个。
2. 检查货币
——————————————————–
命令:
CheckMoney ①货币名称(或ID)
②检测符(<,=,>) ③检测值(922亿亿)
例子:
[@检查货币]
#IF
CheckMoney 金币 >
4999
#ACT
MessageBox 你的金币大于4999
#ELSEACT
MessageBox 你的金币少于4999
货币常量:<$MONEY(货币名称或ID)>
[货币] – 多货币关联
多货币关联
提示:
本引擎支持64位货币数值,最大约922亿亿
1. 检测和扣除已关联多货币数量
——————————————————–
检测命令:
CheckBindMoney
①货币名称(或ID) ②检测符(<,=
,>) ③数量(922亿亿)
扣除命令:
ChangeBindMoney
①货币名称(或ID) ②数量(922亿亿)
参数:
①货币名称:在物品表中stdmode=41的物品名称,也支持系统货币:金币和绑定金币
说明:
参数1只用写一个货币,引擎系统会找出共所有关联的货币(在数据表中设置的)
例子:
======================
[@扣系统金币1]
#IF
CheckBindMoney 金币
> 100000 // 你的金币和绑定金币加起来大于10000
#ACT
ChangeBindMoney 金币 100000 //
优先扣除金币,如果不够再从绑定金币里扣,一共扣100000
[@扣系统金币2]
#IF
CheckBindMoney 金币(绑)
> 100000 // 你的金币和绑定金币加起来大于10000
#ACT
ChangeBindMoney 金币(绑) 100000 //
优先扣除绑定金币,如果不够再从金币里扣,一共扣100000
2. 检测和扣除任意多货币数量
——————————————————–
检测命令:
CheckBindMoneyEx
①货币名称1#货币名称2…
②数量(922亿亿) ③写回变量(可选)
扣除命令:
ChangeBindMoneyEx ①货币名称1#货币名称2… ②数量(922亿亿)
参数:
①货币名称:
按扣费顺序依次写出需要检测的货币名称,每种货币以#号分隔
③写回变量(可选):
在检测多货币支付时,是否用到绑定货币(stdmode中追加”#绑定”即为绑定货币),
是写回变是为1,否写回变量为0
说明:
检测或扣除任意几个货币扣费顺序的货币数量,
参数1需要写出所有参与检测的货币名称,此时不读取关联设置,只以写出货币来检测.
例子:
[@main]
#IF
CheckBindMoneyEx 绑元#元宝 100
#ACT
MessageBox 你的绑定元宝和普通元宝一共大于或等于100个,可以进行购买
2.
获取多货币数量
——————————————————–
命令:
GetBindMoney
①货币名称(或ID) ②存入变量
常量:
<$BINDMONEY(货币名或ID)>
; 推荐使用常量获取,更加方便,不占变量
[装备] – 装备位置
物品位置及相关常量
|
类型 |
stdmode |
穿戴位置 |
位置常量 |
位置唯一ID常量 |
|
衣服(男) |
10 |
0 |
<$DRESS> |
<$DRESSID> |
|
衣服(女) |
11 |
0 |
<$DRESS> |
<$DRESSID> |
|
武器(男) |
5、6 |
1 |
<$WEAPON> |
<$WEAPONID> |
|
武器(女) |
5、6 |
1 |
<$WEAPON> |
<$WEAPONID> |
|
勋章 |
30 |
2 |
<$RIGHTHAND> |
<$RIGHTHANDID> |
|
项链 |
19、20、21 |
3 |
<$NECKLACE> |
<$NECKLACEID> |
|
头盔 |
15 |
4 |
<$HELMET> |
<$HELMETID> |
|
右手镯 |
24、26 |
5 |
<$ARMRING_R> |
<$ARMRING_RID> |
|
左手镯 |
24、26 |
6 |
<$ARMRING_L> |
<$ARMRING_LID> |
|
右戒指 |
22、23 |
7 |
<$RING_R> |
<$RING_RID> |
|
左戒指 |
22、23 |
8 |
<$RING_L> |
<$RING_LID> |
|
符、毒药 |
25 |
9 |
<$BUJUK> |
<$BUJUKID> |
|
腰带 |
54、64 |
10 |
<$BELT> |
<$BELTID> |
|
靴子 |
52、62 |
11 |
<$BOOTS> |
<$BOOTSID> |
|
宝石、血石 |
53、63、7 |
12 |
<$CHARM> |
<$CHARMID> |
|
斗笠 |
16 |
13 |
<$HAT> |
<$HATID> |
|
军鼓 |
65 |
14 |
<$DRUM> |
<$DRUMID> |
|
马牌 |
28 |
15 |
<$HORSE> |
<$HORSEID> |
|
盾牌 |
48 |
16 |
<$SHIELD> |
<$SHIELDID> |
|
时装衣服(男) |
66 |
17 |
<$SDRESS> |
<$SDRESSID> |
|
时装衣服(女) |
67 |
17 |
<$SDRESS> |
<$SDRESSID> |
|
时装武器(男) |
68 |
18 |
<$SWEAPON> |
<$SWEAPONID> |
|
时装武器(女) |
69 |
18 |
<$SWEAPON> |
<$SWEAPONID> |
|
时装斗笠 |
71 |
19 |
<$SHAT> |
<$SHATID> |
|
时装项链 |
75、76、77 |
20 |
<$SNECKLACE> |
<$SNECKLACEID> |
|
时装头盔 |
78 |
21 |
<$SHELMET> |
<$SHELMETID> |
|
时装左手镯 |
79、80 |
22 |
<$SARMRING_L> |
<$SARMRING_LID> |
|
时装右手镯 |
79、80 |
23 |
<$SARMRING_R> |
<$SARMRING_RID> |
|
时装左戒指 |
81、82 |
24 |
<$SRING_L> |
<$SRING_LID> |
|
时装右戒指 |
81、82 |
25 |
<$SRING_R> |
<$SRING_RID> |
|
时装勋章 |
83 |
26 |
<$SRIGHTHAND> |
<$SRIGHTHANDID> |
|
时装腰带 |
84、85 |
27 |
<$SBELT> |
<$SBELTID> |
|
时装靴子 |
86、87 |
28 |
<$SBOOTS> |
<$SBOOTSID> |
|
时装宝石 |
88、89 |
29 |
<$SCHARM> |
<$SCHARMID> |
|
生肖盒1 |
100 |
30 |
<$GODBLESSITEM1> |
<$GODBLESSITEM1ID> |
|
生肖盒2 |
101 |
31 |
<$GODBLESSITEM2> |
<$GODBLESSITEM2ID> |
|
生肖盒3 |
102 |
32 |
<$GODBLESSITEM3> |
<$GODBLESSITEM3ID> |
|
生肖盒4 |
103 |
33 |
<$GODBLESSITEM4> |
<$GODBLESSITEM4ID> |
|
生肖盒5 |
104 |
34 |
<$GODBLESSITEM5> |
<$GODBLESSITEM5ID> |
|
生肖盒6 |
105 |
35 |
<$GODBLESSITEM6> |
<$GODBLESSITEM6ID> |
|
生肖盒7 |
106 |
36 |
<$GODBLESSITEM7> |
<$GODBLESSITEM7ID> |
|
生肖盒8 |
107 |
37 |
<$GODBLESSITEM8> |
<$GODBLESSITEM8ID> |
|
生肖盒9 |
108 |
38 |
<$GODBLESSITEM9> |
<$GODBLESSITEM9ID> |
|
生肖盒10 |
109 |
39 |
<$GODBLESSITEM10> |
<$GODBLESSITEM10ID> |
|
生肖盒11 |
110 |
40 |
<$GODBLESSITEM11> |
<$GODBLESSITEM11ID> |
|
生肖盒12 |
111 |
41 |
<$GODBLESSITEM12> |
<$GODBLESSITEM12ID> |
|
时装马牌 |
90 |
42 |
<$SHORSE> |
<$SHORSEID> |
|
时装符印 |
91 |
43 |
<$SBUJUK> |
<$SBUJUKID> |
|
时装军鼓 |
92 |
44 |
<$SDRUM> |
<$SDRUMID> |
|
时装盾牌 |
93 |
45 |
<$SSHIELD> |
<$SSHIELDID> |
|
时装面巾 |
94 |
46 |
<$SFTOWEL> |
<$SFTOWELID> |
|
翅膀 |
29 |
47 |
<$WING> |
<$WINGID> |
|
面巾 |
50 |
55 |
<$FTOWEL> |
<$FTOWELID> |
自定义外观装备:stdmode:300-304,穿戴位置:300-304,共5个自定义外观装备
[装备] – 物品常量大全
物品常量大全
|
物品基础数据 |
|
|
<$ITEMNAME(装备位置或MakeID)> |
取物品名字 |
|
<$ITEMSHOWNAME(装备位置或MakeID)> |
取物品显示名 |
|
<$ITEMCAT(装备位置或MakeID)> |
取物品类别 |
|
<$ITEMQUALITY(装备位置或MakeID)> |
取物品档次 |
|
<$ITEMOVERLAPCOUNT(装备位置或MakeID)> |
取物品叠加个数 |
|
<$ITEMSTDMODE(装备位置或MakeID)> |
取物品StdMode |
|
<$BAGITEMMAKEIDS(装备位置或MakeID)> |
获取背包所有物品MakeID |
|
<$ITEMUPGRADECOUNT(装备位置或MakeID)> |
获取装备升级次数 |
|
<$ITEMSTARCOUNT(装备位置或MakeID)> |
获取装备星星个数 |
|
<$ItemDur(装备位置或MakeID)> |
取装备当前持久 |
|
<$ItemDurMax(装备位置或MakeID)> |
取装备最大持久 |
| <$ItemStr(装备位置或MakeID)> | 物品转成字符串,可以保存到文本文件 |
| <$ITEMSCORE(装备位置或MakeID 无效属性)> | 装备评分,无效属性是否参于评分,0不参于(默认) 1参于 |
| <$TAKEUPITEMMAKEID> | 当前鼠标抬起物品唯一ID(PC端适用) |
| <$TAKEUPITEMNAME> | 当前鼠标抬起物品名称(PC端适用) |
| <$ITEMCOUNT(物品名)> | 获取背包物品数量 |
| <$ITEMANTIDROP(装备位置或MakeID)> | 取装备防爆几率(0.0 – 1.0) |
| 装备BUFF | |
| <$ItemBuffCount(装备位置或MakeID buff名称)> | 取装备BUFF个数,buff名称空或0取所有装备中buff个数 |
| <$ItemBuffName(装备位置或MakeID 位置1-8)> | 取装备BUFF名称 |
| <$ItemBuffPos(装备位置或MakeID buff名称)> | 取装备BUFF位置,指定位置处没有buff返回0 |
| <$ItemBuffGenID(装备位置或MakeID 位置1-8)> | 取装备BUFF唯一ID |
|
|
|
|
物品附加名字 |
|
|
<$ITEMNEWNAME(装备位置或MakeID)> |
取装备新名字 |
|
<$ITEMNAMECOLOR1(装备位置或MakeID)> |
取装备名第1个颜色 |
|
<$ITEMNAMECOLOR2(装备位置或MakeID)> |
取装备名第2个颜色 |
|
|
|
|
物品附加数据 |
|
|
<$ITEMINTVALUE(装备位置或MakeID 数据位置1-8)> |
取装备整型附加值,一共8个整型数据位置 |
|
<$ITEMSTRVALUE(装备位置或MakeID)> |
取装备字符型附加值 |
|
|
|
| 装备属性值 | |
| <$ItemAttrName(装备位置 属性部位 条)> | 取装备属性名 |
| <$ItemAttr(装备位置 属性部位 属性名)> | 取装备原始属性值(用作判断和计算) |
| <$StrItemAttr(装备位置 属性部位 属性名)> | 取装备显示属性值(自动转换百分比属性值等,用作显示) |
| 参数说明: | |
| 装备位置:填写装备位置或者MakeID | |
| 属性部位:1极品属性 2升级属性 3升星属性 4固有属性 | 0表示取所有属性部位相加的属性值 |
| 条或属性名:如果写属性名,则检测指定的属性; | |
| 如果写属性条,则检测第几条属性(1到255) |
物品数据库信息
<$DBItemAttr(物品名,属性名)>
; 取物品属性值,原始值,用作计算和比较
<$DBItemAttrStr(物品名,属性名)> ;
取物品属性值,显示值(已加好百分号等)
<$DBItemStdMode(物品名)>
; 取物品StdMode
<$LASTWEARITEM>
最后一次穿戴物品名称
<$LASTUNWEARITEM> 最后一次脱下物品名称
[装备] – 给物品
注意:如果人物背包满了,则给予失败,GM在做给予时要先判断背包满!
1.
GIVE给普通物品
————————————————–
命令:
GIVE ①物品名称 ②数量
参数:
①物品名称:要给予的物品名称
②数量:给予数量,可不填,不填默认是1
说明:
给当前玩家物品到包裹
2.
GIVE给带属性物品
————————————————–
命令:
GIVE ①物品名称 ②属性名1:值1 属性名2:值2 … (最多8条属性)
参数:
①物品名称:要给予的物品名称
②属性:物品附带的极品属性,最多可写8条,每条用空隔隔开
说明:
给当前玩家带极品属性的物品到包裹
例子:
[@main]
#IF
#ACT
give 木剑
攻击上限:1 魔法上限:1 道术上限:1 ;注意要写英文冒号:
3.
给物品并返回MakeID
————————————————–
命令:
<$RetGive(①物品名称)>
参数:
①物品名称:要给予的物品名称
说明:
给人物一个物品到背包,并返回刚给物品的MakeID.
后面可以根据返回的MakeID对给予的物品作更多操作。
例子:
[@给物品后继续操作]
#IF
#ACT
MOV N$刚给物品MakeID
<$RetGive(木剑)>
ChangeItemAttr N$刚给物品MakeID 1 攻击上限 +
10
[装备] – 拿物品
拿物品
1. 通过物品名拿走背包物品
——————————————————–
命令:
Take ①物品名称
参数:
①物品名称:要拿走的物品名称
物品名称要事先在“Mir200/数据库/物品(StdItems).csv”表中填写,否则会提示物品不存在。
说明:
拿走背包中第一个名称为参数①的物品
2.
通过MakeID拿走指定物品(精准拿)
——————————————————–
命令:
EraseItem
①装备位置(或MakeID) ②删除个数(叠加物品填写)
参数:
①装备位置(或MakeID):
可以填写装备位置
或者 MakeID,两种都认,但一次只能任意写一种
②删除个数:
非叠加物品不填,叠加物品填写删除个数(不填或数量超过已有将全删)
说明:
和Take不同的是,EraseItem可以精确拿走指定物品,包括身上和仓库中的物品
[装备] – 回收
1. 回收背包物品
一键回收包裹中多个物品
————————————————
命令:
TakeBagItem
①物品名称 ②数量 ③写回变量 ④模式 ⑤档次 ⑥是否按ID
⑦回收标志(选填)
参数:
①物品名称:物品名称(支持多个物品)
②数量:回收数量
③写回变量:变量(保存实际回收的物品数量)
④模式:为空或0全部回收;1不回收有极品的装备;2只回收极品装备)
⑤档次:档次值(空或回收所有;0-255回收对应物品表中档次值)
⑥是否按ID:是否按照IDX回收 默认物品名称
1=IDX
⑦回收标志:选填参数,更精细的控制回收,可以填写以下内容(多个回收标志可以|组合):
|
回收标志 |
说明 |
|
仅回收 |
/*
仅回收,后面接只回收的种类,可用|连接多个
*/ |
|
不回收 |
/*
不回收,后面接不回收的种类,可用|连接多个
*/ |
|
普通 |
/*
普通物品,没有任可极品、升级、BUFF的白装
*/ |
|
极品(xx点数) |
/*
含有极品属性的装备
*/ |
|
升级 |
/*
含有升级属性的装备
*/ |
|
升星 |
/*
含有升星属性的装备
*/ |
|
BUFF |
/*
带BUFF装备
*/ |
|
进度 |
/*
带进度条装备
*/ |
|
叠加 |
/*
叠加物品
*/ |
|
镶嵌 |
/*
带镶嵌物装备
*/ |
|
绑定 |
/*
绑定装备
*/ |
|
期限 |
/*
有期限的物品
*/ |
|
改名 |
/*
改过名的物品
*/ |
例子:
[@带回收标志1]
#IF
#ACT
TakeBagItem
木剑|魔杖 10 N10 0 0 0 仅回收|绑定
SENDMSG 6
只回收绑定的木剑或魔杖
[@带回收标志2]
#IF
#ACT
TakeBagItem 木剑|魔杖 10 N10 0 0 0 不回收|BUFF|升级
SENDMSG 6
不回收绑定的或有buff或升级过的木剑或魔杖
[@回收极品]
#IF
#ACT
TakeBagItem
木剑|铁剑 10 N10 0 0 0 极品(3)
SENDMSG 6 回收3点极品属性以内(含3点)的木剑或铁剑
[@回收1]
#IF
#ACT
TakeBagItem
木剑|屠龙 10 N10 0
SENDMSG
6 成功回收<$STR(N10)>个木剑
[@回收2]
#IF
#ACT
TakeBagItem
木剑|屠龙 20 N10 1
SENDMSG
6 成功回收<$STR(N10)>个木剑,并且保留了有极品属性的木剑
[@回收3]
#IF
#ACT
TakeBagItem
木剑|屠龙 30 N10 2
SENDMSG
6 成功回收<$STR(N10)>个极品木剑
2. 通过自定义表回收
命令:
FindItemByTable
①csv表名 ②在表中搜索到的物品名 ③物品MakeID ④表中所在行
示例:
————————————————
[@main]
#IF
NOT FindItemByTable 单件回收表.csv S$物品名 N$物品MAKEID N$所在表行
#ACT
Toast 背包中没有可回收的物品
BREAK
#IF
#ACT
set %makeid
<$STR(N$物品MAKEID)>
set %yb <$READCSV(单件回收表.csv
<$STR(N$所在表行)> 2)>
#IF
CheckSubStr %yb 绑
#ACT
giveyb_bind %yb
set %prefix 绑定
#ELSEACT
giveyb %yb
set %prefix 流通
#IF
#ACT
set %showyb
<$YBTOSTR(<$STRTOYB(%yb)>)>
notice【*回收】玩家”<$PLAYERNAME>”在”装备回收员”处回收[ITM:%makeid]获得%prefix<$YBNAME>:%showyb
EraseItem %makeid
PlaySound 胜利成果
Toast回收<[<$STR(S$物品名)>]/FCOLOR=250>得到%prefix<$YBNAME>:<%showyb/FCOLOR=250>
————————————————
本例中回收表(“单件回收表.csv”)内容如下:
| ;回收表 | |
| ;名称 | 回收元宝 |
| 荣誉勋章 | 1(绑) |
| 银星勋章 | 2(绑) |
| 魔杖 | 3 |
| 银蛇 | 3 |
| 炼狱 | 3 |
| 无极棍 | 10 |
| 裁决之杖 | 50 |
| 骨玉权杖 | 50 |
| 龙纹剑 | 50 |
| 圆盾 | 10 |
| 防御盾 | 15 |
| 龙盾 | 25 |
| 塔盾 | 35 |
| 冷酷之盾 | 50 |
[装备] – 背包物品操作
背包物品操作
1.
获取背包物品数量
——————————————————–
命令:
GetBagItemCount ①物品名称
②变量名
说明:
物品名称可以指定多个,每个物品以|线隔开,返回多个物品总数量
参数:
①物品名称:要获取数量的物品名称,此名称要事先在“Mir200/Envir/data/物品(StdItems).csv”表中填写,否则会提示物品不存在
②变量名:获取数量写入变量
例子:
[@Main]
#IF
#ACT
GetBagItemCount 木剑 N0
SENDMSG 6 背包木剑个数为<$STR(N0)>个
2. 获取背包所有物品MakeID(常量)
———————————————————
常量:
<$BAGITEMMAKEIDS>
说明:
得到的多个物品MakeID以空格分隔,可以用<$FIELDCOUNT>取总个数,用<$FIELDVAL>取出每项
参数:
无
例子:
=======================================
[@main]
#IF
#ACT
mov %所有物品MakeID
<$BAGITEMMAKEIDS>
;把包裹中所有物品MakeID放到局部变量”%所有物品MakeID”里
mov %count <$FIELDCOUNT(%所有物品MakeID)>
包裹中共有%count个物品
MOV %loopcounter 0 ;循环计数,当其值等于%count时结束循环
#LABEL_LOOP
#IF
cmpi %loopcounter >= %count
#ACT
goto #LABEL_SKIP
#IF
#ACT
mov %makeid <$FIELDVAL(%loopcounter %所有物品MakeID)>
;取出当前物品MakeID
mov %itemname <$ITEMNAME(%makeid)> ;当前物品名称
inc
%loopcounter
第%loopcounter个物品名称:%itemname
MakeID:%makeid
goto #LABEL_LOOP
#LABEL_SKIP
3. 调用命令获取背包所有物品MakeID
———————————————————
命令:
GetBagItemMakeIDs
说明:
执行后背包中物品总个数写入到变量N0,
然后变量N1是第1个物品的MakeID,变量N2是第2个物品的MakeID,后面依次类推…
参数:
无
4. 背包物品放到OK框
———————————————————
命令:
BagItemIntoBox
①物品名称 ②OK框编号(-1~99) ③放置个数
参数:
①物品名称:物品表(“Envir/Data/物品(StdItems).csv”)中的物品名称
②OK框编号:-1是系统自动NPC买卖框
③放置个数:叠加物品可以设置放置多少个,个数不能多于已拥有
说明:
物品名称可以指定多个,每个物品以|线隔开,返回多个物品总数量
例子:
[@Main]
#IF
#ACT
BagItemIntoBox 木剑
0
SENDMSG 6
背包木剑放置到0号OK框中
4. 背包聚灵珠操作
——————————————————–
命令:
ExpBall ①操作符(+,-)
②经验值
说明:
给背包中的聚灵珠加减经验值,加满一个聚灵珠后,有多的经验会加到下一个,
如果背包中没有聚灵珠,此调用将忽略.
注意:聚灵珠操作只能加减经验,不能用=号设置经验< /FONT>
例子:
[@main]
#IF
#ACT
ExpBall
+ 1000 // 背包中第一个未满聚灵珠加1000经验
5.
清空背包
——————————————————–
命令:
ClearBags
[装备] – 开通背包仓库
开通背包
1.
开通背包
———————————————————-
命令:
TurnOnBag
①包裹序号(从1开始)
说明:
开通人物第更多包背
参数:
①包裹序号:
1 第一个包裹
2
第二个包裹
2. 检测背包开通
———————————————————-
命令:
CheckTurnOnBag ①包裹序号
说明:
检测人物是否开通指定包背
参数:
①包裹序号:
1 第一个包裹
2 第二个包裹
例子:
[@开通第2包裹]
#IF
CheckTurnOnBag 2
#ACT
你已开通第2包裹
#ELSEACT
TurnOnBag 2
SENDMSG 6
玩家<$USERNAME>开通第2包裹
开通仓库
1. 开通仓库
—————————————————–
命令:
TurnOnStorage ①仓库序号(2 – 4)
参数:
①仓库序号:
2 第二仓库
3 第三仓库
4 第四仓库
提示:
新开通仓库格子数,在”Mir200/Envir/角色出生设置.txt”中设置,默认40格.(后续还可扩增)
2. 检测仓库开通
—————————————————–
命令:
CheckTurnOnStorage ①仓库序号(1-4)
说明:
检测人物是否开通指定仓库
参数:
①仓库序号:
1 主仓库
2 第二仓库
3 第三仓库
4 第四仓库
例子:
[@开通第2仓库]
#IF
CheckTurnOnStorage 2
#ACT
你已开通第2仓库
#ELSEACT
TurnOnStorage 2
SENDMSG 6 玩家<$USERNAME>开通第2仓库
[装备] – 属性
装备属性
1.
修改装备属性
—————————————————–
命令:
ChangeItemAttr ①装备位置(或MakeID) ②属性部位 ③属性名 ④操作符(+,-,=
) ⑤属性值
⑥第几条 ⑦0值删除
说明:
增加、减少或设置指定装备的极品、升级、升星等属性
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②属性部位:
1极品属性 2升级属性 3星星属性 4固有属性(物品表中的属性)
③属性名:
要修改或增加的属性名称,取值于”Mir200/Envir/Data/属性.csv”中的属性名称
④操作符:
+把参数③的属性值加上参数⑤
-把参数③的属性值减去参数⑤ =
让参数③的属性值等于参数⑤
⑤属性值:
属性修改值,支持写小数和百分数
⑥第几条:
写0或空,会自动叠加相同属性,写1至255会将属性固定在指定条目上
(极品、升级、升星每种最多有255条属性)
⑦0值删除:
当属性值为0时,是否删除此条属性。
默认(0或不填)保留0值属性,需要删除的,填1.
例子:
[@Main]
#IF
#ACT
ChangeItemAttr 1 1 攻击上限 +
1
SENDMSG 6 手中武器加了1点攻击上限极品属性
2. 删除装备属性
—————————————————–
命令:
DeleteItemAttr ①装备位置(或MakeID) ②属性部位 ③删除属性名(或第几条)
说明:
删除指定装备中的某条属性
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②属性部位:
1极品属性 2升级属性 3星星属性 4固有属性(写在物品表中的属性)
③删除属性名(或第几条):
如果要删除某个属性,则可直接写属性名,如果要删除某一条属性,则写条目数(从1到255)
例子:
[@Main]
#IF
#ACT
DeleteItemAttr 1 2 攻击上限 ;
删除武器攻击上限升级属性
DeleteItemAttr 1 2 1 ; 删除手中武器第1条升级属性
3. 检查装备属性值
—————————————————–
命令:
CheckItemAttr ①装备位置(或MakeID)
②属性部位 ③属性名(或条) ④检测符(>,= ,<) ⑤检测值
说明:
检测装备中的某条属性值的大小
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②属性部位:
1极品属性
2升级属性 3星星属性 4固有属性(写在物品表中的属性)
③属性条(或条):
写属性名,则检测指定的属性;写属性条,则检测第几条属性(从1到255)
例子:
[@Main]
#IF
#ACT
CheckItemAttr 1 2 1 > 3 ;
检测武器第1条升级属性值是否大于3
4. 检查装备含有属性
—————————————————–
命令:
CheckItemHasAttr ①装备位置(或MakeID) ②属性部位 ③检测属性名或条(可为空)
说明:
检测装备中是否含有指定属性
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②属性部位:
1极品属性 2升级属性 3星星属性 4固有属性(写在物品表中的属性)
③检测属性名或条:
写属性名,则检测指定的属性;写属性条,则检测第几条属性(从1到8)
5. 启用/禁用装备属性
—————————————————–
命令:
EnableItemAttr ①装备位置(或MakeID) ②属性部位
③属性名(或条) ④(1启用 0禁用)
说明:
激活或封印装备的某一条属性,如果装备属性被本命令封印,则灰化显示.
在”Mir200/Envir/Data/物品.csv”表中,可使用”(封印)”关键字设置装备固有属性被禁用:
例:某件装备的属性是:攻击:5-35 准确:+2
攻击打断:+10%(封印) 攻击速度:+1
解释:这样写,表示攻击打断这个属性被禁用,然后使用本命令可以解封
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②属性部位:
1极品属性 2升级属性 3星星属性
4固有属性(写在物品表中的属性)
③属性条(或条):
写属性名,则检测指定的属性;
写属性条,则检测第几条属性(从1到32,只能处理前32条属性的开启状态)
④ 1启用 0禁用
例子:
[@Main]
#IF
#ACT
EnableItemAttr
BOXITEM[0].MAKEID 4 攻击打断 1 ;
开启0号OK框中物品的”攻击打断”封印属性
装备属性值常量
—————————————————–
取属性名: <$ItemAttrName(①装备位置(或MakeID) ②属性部位 ③第几条)>
取属性值: <$ItemAttr(①装备位置(或MakeID) ②属性部位 ③属性名(或第几条)>
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②属性部位:
1极品属性 2升级属性 3星星属性
4固有属性(物品表中的属性)
对于<$ItemAttr>,属性部位可以写0,表示取所有属性部位相加的属性值
③属性名(或第几条):
写属性名,则检测指定的属性;写属性条,则检测第几条属性(从1到255)
例子:
[@Main]
#IF
#ACT
手中武器在物品表中设置的攻击上限值为:<$ITEMATTR(1 4
攻击上限)>
[装备] – 持久
修改装备持久
1. 修改装备持久
———————————————————-
命令:
ChangeItemDura ①装备位置(或Makeid) ②操作符(+,-,=)
③持久值 ④模式
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
③持久值:装备类物品,1点持久值是1000
④模式:为空或0修改当前持久
1修改最大持久<
/FONT>
说明:
修改指定装备的当前或最大持久值
例子:
[@main]
#IF
#ACT
ChangeItemDura 1 + 1000 ;手中武器当前持久加1
2. 检测装备持久
———————————————————-
命令:
CheckItemDura ①装备位置(或MakeID)
②比较符(>,=,<) ③检测次数
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别<
/FONT>
说明:
判断指定装备持久值是否满足条件
例子:
[@main]
#IF
CheckItemDura 1 > 0
#ACT
手中武器升级次数大于0
3. 装备持久常量
———————————————————-
<$ItemDur(装备位置或MakeID)>
取装备当前持久,装备类持久会乘1000,例如:当前持久是25,返回25000
<$ItemDurMax(装备位置或MakeID)>
取装备最大持久,装备类持久会乘1000,例如:最大持久是35,返回35000
[装备] – 强化
装备强化
——————————————————–
命令:
ChangeItemAttr ①装备位置(或MakeID) ②属性部位(写2) ③属性名 ④操作符(+,-,= ) ⑤属性值 ⑥第几条 ⑦0值删除
说明:
增加、减少或设置指定装备的极品、升级、升星等属性
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②属性部位:写2
③属性名:
要修改或增加的属性名称,取值于”Mir200/数据库/更多/属性.csv”中的属性名称
④操作符:
+把参数3的属性值加上参数5 -把参数3的属性值减去参数5 = 让参数3的属性值等于参数5
⑤属性值:
属性修改值,支持写小数和百分数
⑥第几条:
写0或空,会自动叠加相同属性,写1至255会将属性固定在指定条目上(极品、升级、升星每种最多有255条属性)
⑦0值删除:
当属性值为0时,是否删除此条属性。 默认(0或不填)保留0值属性,需要删除的,填1.
例子:
[@Main]
#IF
#ACT
ChangeItemAttr 1 2 攻击上限 +
1
SENDMSG 6
手中武器加了1点攻击上限升级属性
2.
修改装备升级次数
——————————————————–
命令:
ChangeItemUpgradeCount
①装备位置(或MakeID) ②操作符(+,-, =) ③次数
说明:
修改指定装备的升级次数
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②操作符(+,-,=) :
③次数:
例子:
[@main]
#IF
#ACT
ChangeItemUpgradeCount 1 +
1
;手中武器升级次数加1
3.
检测装备升级次数
——————————————————–
命令:
CheckItemUpgradeCount ①装备位置(或MakeID)
②比较符(>,=,<) ③检测次数
说明:
判断指定装备的升级次数
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
例子:
[@main]
#IF
CheckItemUpgradeCount
1 > 0
#ACT
手中武器升级次数大于0
4. 装备升级次数常量
——————————————————–
<$ITEMUPGRADECOUNT(装备位置或MakeID)>
[@main]
#IF
LARGE <$ITEMUPGRADECOUNT(1)> 0
#ACT
手中武器升级次数大于0
[装备] – 升星
装备升星
装备星星效果图:
1.
修改装备星星属性
———————————————————-
命令:
ChangeItemAttr ①装备位置(或MakeID)
②属性部位(写3) ③属性名 ④操作符(+,-,= ) ⑤属性值 ⑥第几条 ⑦0值删除
说明:
增加、减少或设置指定装备的极品、升级、升星等属性
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②属性部位:写3
③属性名:
要修改或增加的属性名称,取值于”Mir200/数据库/更多/属性.csv”中的属性名称
④操作符:
+加属性值 -减属性值 = 设置值
⑤属性值:
属性修改值,支持写小数和百分数
⑥第几条:
0或空:自动叠加相同属性,
1至255:将属性固定在指定条目上(最多255条升星属性)
⑦0值删除:
当属性值为0时,是否删除此条属性。 默认(0或不填)保留0值属性,需要删除的,填1.
例子:
[@Main]
#IF
#ACT
ChangeItemAttr 1 3 攻击上限 + 1 ; 手中武器加了1点攻击上限升星属性
2.
修改装备星星个数
———————————————————-
命令:
ChangeItemStarCount
①装备位置(或MakeID) ②操作符(+,-,= )
③个数
说明:
直接修改指定装备的升级次数
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
例子:
[@main]
#IF
#ACT
ChangeItemStarCount 1 +
1;手中武器星星个数加1
3. 检测装备星星个数
———————————————————-
命令:
CheckItemStarCount ①装备位置(或MakeID) ②比较符(>,=
,<)
③检测次数
说明:
判断指定装备的星星个数
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
例子:
[@main]
#IF
CheckItemStarCount 1 > 0
#ACT
手中武器星星个数大于0
装备星星个数常量
———————————————————-
<$ITEMSTARCOUNT(装备位置或MakeID)>
例子:
[@main]
#IF
LARGE <$ITEMSTARCOUNT(1)> 0
#ACT
手中武器星星个数大于0
[装备] – 打孔镶嵌
打孔镶嵌宝石
数据库宝石配置:类型StdMod=42
宝石的Shape值(0~4)显示出5个不同颜色的镶嵌宝石。宝石路径:res\private\item_tips
宝石的Shape值如果设置为255,镶嵌后会显示宝石DB的Looks的。也就是DnItems里面的素材
给装备开孔
DRILLHOLE 装备位置(0~55时身上装备,-1时为OK框里的物品) 开孔位置(0-11) 开孔状态(0关闭
1=开启)
检测装备是否已经打孔
CHECKDRILLHOLE 装备位置(0~55时身上装备,-1时为OK框里的物品) 开孔位置(0-11)
检测玩家身上指定装备已经打孔的数量
CHECKDRILLHOLECOUNT 装备位置(0~55时身上装备,-1时为OK框里的物品)
检测符(<,>,=) 数量
镶嵌宝石
SOCKETABLEITEM
装备位置(0~55时身上装备,-1时为OK框里的物品) 宝石位置(0-11) 物品名称
删除宝石
SOCKETABLEITEM 装备位置(0~55时身上装备,-1时为OK框里的物品) 宝石位置(0-11)
0
检测玩家身上指定装备是否已经镶嵌宝石
CHECKSOCKETABLEITEM 装备位置(0~55时身上装备,-1时为OK框里的物品)
宝石位置(0~9) 变量1(宝石IDX值) 变量2(宝石名称)
检测玩家身上指定装备已经镶嵌宝石的数量
CHECKSOCKETABLEITEMCOUNT 装备位置(0~55时身上装备,-1时为OK框里的物品)
检测符(<,>,=) 数量
镶嵌宝石脚本命令,先要打孔后才能镶嵌成功
SOCKETABLEITEM (装备位置(0~55时身上装备,-1时为OK框里的物品)
开孔位置(宝石位置(0~9) 宝石IDX(装备道具表IDX值 0或空为删除宝石)
获取装备宝石数量
GetItemStoneCount 参数
装备位置 宝石名称(不分名称可用 * ) 变量
获取身上所有装备宝石数量
GetStoneCount 参数
宝石名称(不分名称可用 * ) 变量
镶嵌宝石触发:@BagUseStoneItemOK
删除宝石触发:@RemoveStoneItem
[@打孔装备]
#IF
#ACT
DRILLHOLE 1 0 1
DRILLHOLE 1 1 1
DRILLHOLE 1 2
1
DRILLHOLE 1 3 1
DRILLHOLE 1 4 1
DRILLHOLE 1 5 1
DRILLHOLE 1 6
1
DRILLHOLE 1 7 1
DRILLHOLE 1 8 1
DRILLHOLE 1 9 1
SENDMSG 6
你的武器第十个位置打孔全部成功
[@检测开孔数量]
#IF
CHECKDRILLHOLECOUNT 1 > 1
#act
SENDMSG 6
你的武器开孔数量大于1
#ELSEACT
SENDMSG 6 你的武器开孔数量小于1
[@镶嵌宝石]
#IF
CHECKDRILLHOLE 1 0
#ACT
SOCKETABLEITEM 1 0
30332
SENDMSG 6 你的武器镶嵌了IDX:30332的宝石
#ELSEACT
SENDMSG 6
你的武器没有开孔
[@镶嵌宝石数量]
#IF
CHECKSOCKETABLEITEMCOUNT 1 >
2
#ACT
SENDMSG 6 你的武器镶嵌了2颗宝石以上
#ELSEACT
SENDMSG 6 你的武器镶嵌宝石小于3个
[@例子]
#IF
CHECKSOCKETABLEITEM 1 0 N1 S1
#act
SENDMSG 6
衣服第一个位置镶嵌了宝石。宝石名称:<$STR(S1)>,宝石IDX字段:<$STR(N1)>
#elseact
SENDMSG
6 衣服第一个位置没有镶嵌宝石
[@获取装备宝石数量命令]
#if
#act
GetItemStoneCount 1 * N10
SENDMSG 6
你的【<$WEAPON>】上面共有宝石:<$STR(N10)>
GetItemStoneCount 1
攻击青宝石(初级) N10
SENDMSG 6 你的【<$WEAPON>】上面共有【攻击青宝石(初级)】:<$STR(N10)>
[@获取身上所有装备宝石数量]
#if
#act
GetStoneCount * N10
SENDMSG 6
你的身上所有宝石共有宝石:<$STR(N10)>
GetStoneCount 攻击青宝石(初级) N10
SENDMSG 6
你的身上【攻击青宝石(初级)】共有宝石:<$STR(N10)>
[装备] – 进度条(刀魂)
装备进度条
[刀魂系统]
注意:
老命令中进度条从0开始(继续保持兼容)
本引擎对应的新命令统一从1开始。
(本引擎所有序号相关的东西全部统一从1开始)
1.
检测进度条开启
——————————————————-
老命令:
CHECKCUSTOMITEMPROGRESSBAR
①装备位置(或MakeID) ②进度条(0-254,从0开始)
新命令:
CheckItemProg
①装备位置(或MakeID) ②进度条(1-255,从1开始)
说明:
检测装备是否开启了某个进度条
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②进度条:最多支持255个进度条,
老命令:0表示第一个,1表示第二个进度条,取值为0-254
新命令:1表示第一个,2表示第二个,取值范围:1-255
(下同)
例子:
========================
[@main]
#IF
CheckItemProg 1 1
#ACT
手中武器第一个进度条已开启
#ELSEACT
手中武器第一个进度条未开启
2.
修改进度条值
——————————————————-
老命令:
CHANGECUSTOMITEMPROGRESSBARVALUE
①装备位置(或MakeID) ②进度条(0-254) ③修改类型 ④操作符(+,-, = ) ⑤修改值
新命令:
ChgItemProgVal ①装备位置(或MakeID) ②进度条(1-255)
③修改类型 ④操作符(+,-, = )
⑤修改值
说明:
修改或增加装备进度条值
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②进度条:最多支持255个进度条,
③修改类型:取值及说明如下:
0
当前进度值
1
最大进度值
2
当前等级
11
当前进度对应的属性名,写0清除属性
12 修改当前进度对应的属性值
例子:
[@main]
#IF
#ACT
ChgItemProgVal 1 1 1 = 100 ;手中武器第一个进度条最大进度设为100,若无进度条,则创建
ChgItemProgVal 1 1 0 + 10 ;手中物品第一个进度条当前进度加10
3.
修改装备进度外观
——————————————————-
老命令:
CHANGECUSTOMITEMPROGRESSBAR ①装备位置(或MakeID) ②进度条(0-254) ③修改类型 ④修改值
新命令:
ChgItemProgBar ①装备位置(或MakeID) ②进度条(1-255)③修改类型 ④修改值
说明:
修改或增加装备进度条值
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②进度条:最多支持255个进度条
③修改类型:取值及说明如下:
0:是否显示进度条(0或1)
1:进度条名称(15个字符,约4个汉字)
2:进度条名称颜色(0~255)
3:循环绘制
4:显示进度的数值(0不显示,1百分比显示方式
2数值显示方式)
10:修改进度条ID ,不同的进度条ID对应不同的进度条外观。进度条ID在”Mir200/Envir/data/扩展表格/物品进度条.csv”中设置
11:修改值:0不显示等级 1显示等级
例子:
==========================
[@main]
#IF
#ACT
ChgItemProgBar 1 1 4 1 ;手中武器第一个进度条以百分比形式显示进度
4. 检测进度条值
——————————————————-
老命令:
CHECKCUSTOMITEMPROGRESSBARVALUE ①装备位置(或MakeID) ②进度条(0-254) ③检测类型 ④检测符(>,=
,<) ⑤检测值
新命令:
CheckItemProgVal ①装备位置(或MakeID)
②进度条(1-255) ③检测类型 ④检测符(>,= ,<) ⑤检测值
说明:
检测装备某个进度条中的各项数值
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②进度条:最多支持255个进度条
③检测类型:
0 当前进度值
1 进度条最大值
2 进度条等级
例子:
=============================
[@main]
#IF
CheckItemProgVal 1 1 0 > 10
#ACT
手中武器第一个进度条当前进度值大于10
#ELSEACT
手中武器第一个进度条当前进度值不大于10
5. 检测进度条百分比
——————————————————-
老命令:
CHECKCUSTOMITEMPROGRESSBARPERCENT ①装备位置(或MakeID) ②进度条(0-254) ③检测符(>,= ,<)
④检测值(0~100)
新命令:
CheckItemProgPCT ①装备位置(或MakeID)
②进度条(1-255) ③检测符(>,= ,<) ④检测值(0~100)
说明:
检测装备进度条百分比进度
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②进度条:最多支持255个进度条
例子:
==========================
[@main]
#IF
CheckItemProgPCT 1 1 > 50
#ACT
手中武器第一个进度条当前进度值大于50%
#ELSEACT
手中武器第一个进度条当前进度值不大于50%
6. 取进度条值
——————————————————-
常量:
<$ITEMPROGRESS(①装备位置(或MakeID) ②进度条(1-255) ③取值类型)>
说明:
取出装备某个进度条中的各项数值
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②进度条:最多支持255个进度条,取值为1-255
③取值类型:
0 取当前进度
1 取总进度
2 取等级
10 取进度条ID
11 取进度条属性名
12
取进度条属性值
13
取名称
例子:
======================
[@main]
#IF
#SAY
手中武器第1个进度条的当前进度是:<$ITEMPROGRESS(1 1 0)>
手中武器第1个进度条的最大进度是:<$ITEMPROGRESS(1 1 1)>
手中武器第1个进度条的名称是:<$ITEMPROGRESS(1 1 13)>
手中武器第1个进度条的进度ID是:<$ITEMPROGRESS(1 1
10)>
[装备] – BUFF
动态装备BUFF
动态装备BUFF可以在装备上通过脚本命令,增加或删除各种BUFF.
动态BUFF最多支持256个,初始配置16个,每个BUFF4条属性.
1. 增加装备BUFF
——————————————————
命令:
AddItemBuff
①装备位置(或MakeID) ②buff名称 ③位置(1-16)(选填)
说明:
增加装备动态BUFF
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②buff名称:
在BUFF表中的BUFF名称,BUFF表在”Mir200/Envir/buff.csv”
③位置(1-8):
一个装备最多可以有8个动态BUFF,此参数表明要把新加的BUFF放在哪个槽位上,
如果不写或写0,则自动找空槽位.
例子:
=========================
[@main]
#IF
#ACT
AddItemBuff
1 拖影 1 ;手中武器在第1个BUFF槽中增加一个拖影BUFF(注:BUFF名也事先在BUFF表中登记)
2.
删除装备BUFF
——————————————————
命令:
RemoveItemBuff
①装备位置(或MakeID) ②buff名称或位置(1-16)
说明:
删除装备动态BUFF
注意:
删除装备BUFF后,被删除BUFF后面的所有BUFF位置将前移1个槽位
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②buff名称:
在BUFF表中的BUFF名称,BUFF表在”Mir200/数据库/更多/BUFF/buff登记.csv”
或位置(1-8):
删除装备中哪个BUFF槽中的BUFF
例子:
==========================
[@main]
#IF
#ACT
RemoveItemBuff 1 1;删除武器第1个BUFF槽中的BUFF
3.
更换装备BUFF
——————————————————
命令:
ChangeItemBuff
①装备位置(或MakeID) ②旧buff名称或位置(1-16) ③新buff名称
说明:
更换装备动态BUFF
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②旧buff名称:
在BUFF表中的BUFF名称,BUFF表在”Mir200/数据库/更多/BUFF/buff登记.csv”
或位置(1-8):删除装备中哪个BUFF槽中的BUFF
③新buff名称:要更换成BUFF表中的哪个BUFF
例子:
=========================
[@main]
#IF
#ACT
ChangeItemBuff 1 1 神龙附体
;将武器第1个BUFF换成神龙附体BUFF
检测装备BUFF个数
1.
检测BUFF数量
———————————————————–
命令:
CheckItemBuff ①装备位置(或MakeID) ②buff名称 ③检测符(<,=
,>) ④检测值
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②buff名称:
在BUFF表中的BUFF名称,BUFF表在”Mir200/数据库/更多/BUFF/buff登记.csv”
写0检测物品中所有buff,否则检测所写buff
参数③和参数④可不填,不填相当于检测buff个数是否 > 0
说明:
检测装备中动态BUFF个数
———————————————————–
命令:
CheckItemBuffName ①装备位置(或MakeID) ②位置(1-16) ③buff名称
3. 检测装备是否含有某个BUFF
———————————————————–
命令:
CheckItemHasBuff ①装备位置(或MakeID) ②buff名称
取装备BUFF常量
1. 取装备BUFF个数
—————————————————-
常量:
<$ItemBuffCount(①装备位置或MakeID ②buff名称)>
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②buff名称:
写0或空取装备所有buff个数,否则取指定buff个数
说明:
取指定装备BUFF数量
2. 装备BUFF名称
—————————————————-
<$ItemBuffName(①装备位置或MakeID
②位置1-16)>
取装备BUFF槽中BUFF名称
3. 取装备BUFF位置
—————————————————-
常量:
<$ItemBuffPos(①装备位置或MakeID ②buff名称)>
参数:
取装备BUFF位置,如果装备没有指定的BUFF,返回0,有则返回BUFF位置(1-16)
说明:
取BUFF在第几个槽位,从1开始,总共8个槽位.
—————————————————-
常量:
<$ItemBuffGenID(①装备位置或MakeID ②位置1-16>
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②位置1-8:
BUFF槽位,第1开始,总共8个
说明:
取到装备指定BUFF槽位处BUFF的唯一ID,注意是BUFF的唯一ID
静态装备BUFF
静态装备BUFF是在物品表(“Envir\Data\物品.csv”)中设置的固定BUFF,最多8个,如何设置见物品表说明.
相关常量:
<$ITEMSTATICBUFFCOUNT((①装备位置或MakeID)>
// 获取装备静态BUFF个数
<$ITEMSTATICBUFFNAME(①装备位置或MakeID
②位置1-8)> // 获取装备静态BUFF名称
[装备] – 改名
装备改名
命令:
ChangeItemName
①装备位置(或MakeID) ②新名字
说明:
修改装备名字
参数:
①装备位置(或MakeID):填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②新名字:%s表示物品原名,支持富文本.
若此参数不写或为空恢复原名
例子:
[@改武器名]
#IF
#ACT
ChangeItemName 1 %s<(精炼的)/FCOLOR= 250|FSIZE=
-2> ;
手中武器名称后面加上绿字:精炼的
[@恢复器名]
#IF
#ACT
ChangeItemName 1 ; 恢复手中武器名称为原名
检测装备名字
命令:
CheckItemName ①装备位置(或MakeID) ②检测名字
说明:
检测装备名字是否为参数②
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②检测名字:%s表示物品原名
装备名字常量
<$ITEMNEWNAME (装备位置或MakeID)>
取装备新改的名字
装备名改颜色
命令:
ChangeItemNameColor ①装备位置(或MakeID)
②颜色1 ③颜色2(选填,和颜色1组成渐变极)
说明:
修改装备名字颜色
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
检测装备名颜色
命令:
CheckItemNameColor ①装备位置(或MakeID)
②颜色1 ③颜色2(选填)
说明:
检测装备名颜色值是否为颜色1,如果写了参数3,再检测颜色2是否也相等
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
装备名颜色常量
<$ITEMNAMECOLOR1(装备位置或MakeID)>
取装备名第1个颜色
<$ITEMNAMECOLOR2(装备位置或MakeID)>
取装备名第2个颜色
[装备] – 附加值
装备附加值
1.
修改整型附加值
————————————————————
命令:
ChangeItemIntValue ①装备位置(或MakeID)
②数据位置(1-8) ③操作符(+,-,=) ④操作值(±21亿)
<$ITEMINTVALUE(①装备位置(或MakeID) ②数据位置(1-8))> ;取装备整型附加值常量
说明:
修改装备整型附加值,每个装备或物品最多可以存储8个整型附加值
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②数据位置:
最多8个附加值,从1开始,填写要操作第几个附加值
例子:
[@main]
#IF
#ACT
ChangeItemIntValue 1 1=
200 ;手中武器名第1个附加值等于200
2.
修改字符附加值
—————————————————————-
命令:
ChangeItemStrValue ①装备位置或MakeID ②操作符(+,-,=)
③字符值
<$ITEMSTRVALUE(装备位置或MakeID)> ;取装备字符附加值常量
参数:
①装备位置(或MakeID):
填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②操作符:
+ 拼接参数3字符
– 删除参数3字符
= 直接设置参数3字符
说明:
每个装备最多可以存储1023个字符(约340个汉字)
装备字符附加值,可以在装备面板上显示,字符内容支持富文本 和斜扛\换行
例子:
[@main]
#IF
#ACT
;手中武器加附加文本(会显示在装备悬浮框中)
ChangeItemStrValue 1 =
装备附加</IMG:sound>字符第1行\装备附加字符第2行
[装备] – 特效
设置装备特效
SetItemEffect ①装备位置(或MakeID) ②背包特效ID ③内观特效ID ④背包特效位(1-4) ⑤内观特效位(1-4)
说明:
增加或修改装备在背包和装备栏中特效
如果只设置背包特效,不改变内观特效,则内观特效值填-1(不能填0,填0会清除当前特效)
参数:
①装备位置(或MakeID):填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②背包特效ID:-1不改变当前特效值,0清除特效,其它为特效表中的特效ID
③内观特效ID:-1不改变当前特效值,0清除特效,其它为特效表中的特效ID
④背包特效位(1-4):一个装备最多可以设置4个自定义背包内特效,可以指定设置到哪一个
⑤内观特效位(1-4):一个装备最多可以设置4个自定义装备栏特效,可以指定设置到哪一个
例子:
[@设置背包特效]
#IF
#ACT
SetItemEffect 1 10 -1 1 0
;设置手中武器在背包中的特效ID为10(1号特效槽),装备栏特效不变
[@设置装备栏特效]
#IF
#ACT
SetItemEffect 1 -1 11 0 1 ;设置手中武器在装备栏的特效ID为11(1号特效槽),背包特效不变
[@同时设置背包和装备栏特效]
#IF
#ACT
SetItemEffect 1 12 12 1 1 ;同时设置手中武器背包和装备栏的特效ID为12(1号特效槽)
[@清除背包特效]
#IF
#ACT
SetItemEffect 1 0 -1 1 0 ;清除手中武器在背包中1号特效槽中的特效,装备栏特效不变
[@清除装备栏特效]
#IF
#ACT
SetItemEffect 1 -1 0 0 1 ;清除手中武器在装备栏中1号特效槽中的特效,背包特效不变
[装备] – 绑定状态
装备绑定状态
修改物品绑定标志
——————————————————
命令:
ChangeItemBindflags ①装备位置或MakeID ②操作符(+,-,= ) ③绑定标志
说明:
设置物品绑定、能否交易、能否扔下等绑定标志
参数:
①装备位置(或MakeID):填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②操作符:
+
增加标志
–
删除某个标志
= 直接设置成指定标志
③绑定标志:
可设置以下单个或部分标志组合(组合用竖线分开)
=============================================
不能丢弃
不能交易
禁存仓库
不能修理
不能出售
总不爆出
丢弃消失
不能上架
绑定
封印
央服封印
已过期
不被回收
换图必掉 ;注意:
使用此标志,需要设置地图标志 “换图掉落”才能生效
下线必掉
死亡必爆
例子:
[@main]
#IF
#ACT
ChangeItemSpecflags 1 + 绑定
;手中武器设置为绑定
ChangeItemSpecflags 1 – 绑定 ;手中武器解除绑定
检测物品绑定标志
——————————————————
命令:
CheckItemBindflags ①装备位置或MakeID ②绑定标志
例子:
[@main]
#IF
CheckItemSpecflags 1 不能交易
#ACT
手中武器不能交易
#ELSEACT
手中武器可以交易
调整物品过期时间
——————————————————
命令:
ChangeItemExpireTime ①装备位置或MakeID ②操作符(+,-,= ) ③过期时间(xx秒、xx分钟、xx小时、
xx天)
说明:
调整物品过期时间
参数:
①装备位置(或MakeID):填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
例子:
[@设置过期]
#IF
#ACT
ChangeItemExpireTime 1 =
30分钟 < /STRONG > ;设置手中武器30分钟后过期,过期装备不消失但作用无效
[@取消过期]
#IF
#ACT
ChangeItemExpireTime 1 =
0 ;解除手中武器过期时间
[装备] – 爆率
装备爆率和防爆
1.
对怪爆率
——————————————————-
人物属性”对怪爆率“控制击杀怪物后爆出物品几率高低,引擎默认采用倍率制.
例如:
裁决之杖 1/100 ; 裁决百分之1几率爆出
如果人物”对怪爆率”为1(默认),则爆率不变;
如果人物”对怪爆率”为2,则实际爆出几率为1/50
如果人物”对怪爆率”为100及以上,则实际包率为1(必爆)
“对怪爆率”属性值可以是小数,如1.5倍等,可以更精细控制爆率浮动.
另外:
“对怪爆率”属性提升所有物品爆出几率,对于药品、材料或重要装备等,希望不受”对怪爆率”影响,
可在”Mir200/Envir/data/物品(StdItems).csv”中的stdmode列用#号追加”爆率不变“标志.
2.
对人爆率
——————————————————-
人物属性”对人爆率”控制击杀人物后爆出物品几率高低,引擎默认采用倍率制.
人物死亡后各处物品爆出几率在”Mir200/Envir/data/!配置项.txt”中设置,以下是引擎默认设置:
[玩家]
玩家死亡后每件包裹物品掉落几率: 20%
玩家死亡后每件快捷栏物品掉落几率:
0%(填0永不掉落)
玩家死亡后每件身上装备掉落几率: 0.2% (千分之2)
根据以上设置,
如果人物”对人爆率”为1(默认),则死亡玩家各项爆率不变;
如果人物”对人爆率”为2,则背包中每件物品掉落几率为40%,身上装备掉落几率为0.4%
3.
整体装备防爆
——————————————————-
整体装备防爆是针对人物死亡后,减少人物背包和身上所有装备掉落几率,由以下两个人物属性控制:
(1) 背包防爆,百分比值,默认0%,当为0%时正常几率爆(默认20%每件),100%时必不爆
(2)
装备防爆,百分比值,默认0%,当为0%时正常几率爆(默认0.2%每件),100%时必不爆
例子:
以上两个属性值,如果是20%,则表示爆物判定后,有20%几率不爆,80%就是有80%几率不爆,越高越好.
4.
单件装备防爆
——————————————————-
本引擎支持通过命令对单件装备防爆几率设置,这个防爆效果是跟装备走,不跟人物.
命令:
ChangeItemAntidrop ①装备位置(或MakeID) ②操作符(+,-, = )
③防爆几率
参数:
①装备位置(或MakeID):填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
②操作符:
+
增加防爆几率
–
删除防爆几率
= 直接设置成指定的防爆几率
③防爆几率: 0%(不防爆,默认) –
100%(完全防爆),百分比值,可以写0.1%(千分比),或0.01%(万分比)
说明:
如果给一件装备设置了防爆几率,同时人物身上也有防爆几率,则最终防爆效果叠加
例子:
#IF
#ACT
ChangeItemAntidrop 1 + 10%
;手中武器防爆加10%
装备悬浮框显示防爆几率:
// 防爆几率
<Text|name=lbl_antidrop|x=2|y=8|text=防爆几率:|color=250>
<DescText|part=27|align_ui=lbl_antidrop#右侧放置居中|color=250>
以上内容添加到前端UI文件中(如果UI文件中有,则可忽略):
PC端UI文件: “Mir200/client_data/ui/desktop/itemattrs.layer”
手机端UI文件: “Mir200/client_data/ui/mobile/itemattrs.layer”
5.
指定人物身上掉落装备
——————————————————-
命令:
HumanDropUseItem ①装备位置
②写回变量 ③绑定规则 ④是否忽略防爆(可选)
参数:
①装备位置:-1随机位置,其它则为装备位置
②写回变量:爆出物品后记录物品名字符串变量
③绑定规则: 1=禁止扔 2=禁止交易 4=禁止存 8=禁止修 16=禁止出售
32=禁止爆出
64=丢弃消失
128=死亡必爆(死亡爆出来后,该属性就会删除,在捡起来戴上,就没有死亡必爆了)
256=
禁止摆摊或上架拍卖行]
④是否忽略防爆:0不忽略 1忽略防爆
[装备] – 保存到文本
装备全部信息保存到字符串
1. 装备转字符串
—————————————————
常量:
<$ItemStr(①装备位置或MakeID)>
说明:
将装备的极品属性、升级升星属性、所带BUFF、附加值等所有信息转换到一个字符串中,
可以将这个字符串保存到文本或作它用。
参数:
①装备位置(或MakeID):填写装备位置或者MakeID,任选一个填写,引擎对此参数双识别
2. 字符串转装备
—————————————————
命令:
GiveFromStr ①装备字符串
说明:
通过装备转字符串转出来的文本,在人物背包中生成这个物品
例子1:
; 将OK框中的物品转成字符串
#IF
#ACT
AddTextList ..\QuestDiary\TestList.txt
<$ItemStr(<$BOXITEM[0].MAKEINDEX>)>
例子2:
;
将物品字符串设置到<ItemShow>以便正确显示物品所有属性
#IF
#ACT
GetListString ..\QuestDiary\TestList.txt 0
S$读入物品数据
<ItemShow|w=0.093|h=0.093|itemstr=<$str(S$读入物品数据)>|itemcount=1|bgtype=0|color=7>
例子3:
;
通过以物品字符串的形式给予玩家物品
#IF
#ACT
GetListString
..\QuestDiary\TestList.txt 0 S$读入物品数据
GiveFromStr S$读入物品数据 ;
读取文件中的物品数据给到包裹
[怪物] – 脚本刷怪
脚本刷怪
1. 刷怪命令(兼容)
—————————————————
命令:
MonGenEx ①地图名
②X ③Y ④怪物名称 ⑤范围 ⑥数量 ⑦阵营 ⑧名称颜色
⑨怪物自定义名称 ⑩过滤数字 (11)消失时间
参数:
①地图名:要在哪个地图刷怪,取值于地图表中的地图名,也可以是镜像地图名
②X:刷怪位置X,如果指定参5范围大于1,则刷怪位置是范围的中心点
③Y:刷怪位置Y,如果指定参5范围大于1,则刷怪位置是范围的中心点
④怪物名称:怪物表中的怪物名称或怪物ID
⑤范围:如果范围是1,则定点在XY刷新,否则XY是范围的中心点
⑥数量:刷怪数量,随机分布在刷怪范围内
⑦阵营:0没有阵营,
1-255怪物刷出后属于哪个阵营(不攻击同阵营人物)
⑧名称颜色:怪物名称颜色值
,0-255
⑨怪物自定义名称:设置刷出怪物的显示名称,支持富文本写法
,\是换行,可以写多行名字
⑩是否过滤数字:1过滤怪物显示名字中末尾数字,0不过滤,保留名字末尾数字(如果有)
(11)消失时间:不填或0怪物永不消失,其它值可以写:xx秒 xx分钟
xx小时,怪物到达时间后自动消失
例子:
[@main]
#IF
#ACT
MonGenEx 3 330 330 白野猪 12 10
0 250 白野猪\(新) 1
2.
SK刷怪命令
—————————————————
命令:
格式1:
GenMon ①怪物名称 ②X ③Y ④方向 ⑤消失时间
格式2:
GenMon ①怪物名称 ②综合参数
参数:
格式1:
①怪物名称:怪物表中的怪物名称或怪物ID
②X:刷怪位置X
③Y:刷怪位置Y
④方向:0上 1右上 2右 3右下 4下 5左下 6左
7左上
⑤消失时间:不填或0怪物永不消失,其它值可以写:xx秒 xx分钟
xx小时,怪物到达时间后自动消失
格式2:
①怪物名称:怪物表中的怪物名称或怪物ID
②综合参数:
q在调用者前方生成怪物
t怪物存续时间
w怪物位置
n怪物个数
f怪物标志
o设置主人
d方向
提示:以上参数可以任意组合使用,详见示例.
例子:
================================
GenMon
稻草人
; 在人物位置处生成一个稻草人,方向与人物一致
GenMon 稻草人
q ; 在人物前方生成一个稻草人
GenMon 稻草人 t10秒 ; 在人物位置处生成一个稻草人,存续10秒后消失
GenMon 稻草人 q t10秒 ; 在人物前方生成一个稻草人,存续10秒后消失
GenMon 稻草人 w333,333 ; 在当前地图(333,333)处生成一个稻草人
GenMon 稻草人 t10秒
w<$EVALUATE(<$X> + 3)>,<$Y> ;
在人物右边3各生成一个稻草扔,存续10秒后消失
GenMon 稻草人 w<$EVALUATE(<$X> –
3)>,<$EVALUATE(<$Y> – 3)>,<$EVALUATE(<$X> +
3)>,<$EVALUATE(<$Y> + 3)>
n10
; 以人物为中心,7×7范围范围内,生成10个稻草人
GenMon 稻草人 q f全区提示 ;
在人物前方生成一个稻草人,全区提示
GenMon 稻草人
q d0 ;
在人物前方生成一个稻草人,方向向上
GenMon
稻草人 o ; 在人物位置处生成一个稻草人,作为人物宝宝
脚本增加刷怪记录
通常,刷怪记录写在”Mir200/Envir/MonGen.csv”表中,M2运行时读取此表刷怪.
正常情况下,若想增加或删除一条刷怪记录,则需修改MonGen.csv并重新加载.
有时希望能动态增加或减少刷怪记录,特别是创建镜像地图后,给镜像地图增加刷怪记录,
这就需要用到下面的刷怪记录命令:
1. 增加一条刷怪记录
—————————————————
命令:
AddMongen ①地图名 ②怪物名 ③X ④Y ⑤数量
⑥范围 ⑦刷新间隔
参数:
①地图名:要增加哪个地图的刷怪记录,取值于地图表中的地图名,也可以是镜像地图名
②怪物名:
要刷新什么怪物,取值于怪物表中的怪物名称
③X:
刷新坐标X
④Y: 刷新坐标Y
⑤数量: 刷新多少个怪物
⑥范围:
以XY为中心多大范围
⑦刷新间隔:每隔多久刷新一次,可以写xx分钟、xx小时,也可以写固定时间在,如20:30,表示晚上8点半刷新
说明:
在指定地图上增加一条刷怪记录,引擎会按指定的时间定时刷怪
2. 删除一条刷怪记录
—————————————————
命令:
ClearMission ①地图名 ②怪物名 ③X ④Y ⑤数量 ⑥范围 ⑦刷新间隔
参数:
①地图名:要删除哪个地图上的刷怪记录
后面参数和AddMongen一样,用于匹配刷怪记录
说明:
在指定地图上删除一条刷怪
3. 增加一条完整刷怪记录
—————————————————
命令:
AddMongen ①地图名 ②怪物名 ③X ④Y ⑤数量 ⑥范围
⑦刷新间隔
⑧方向 ⑨刷怪标志 ⑩存续时间 (11)名字颜色 (12)名字渐变色 (13)代表掉落 (14)位置偏移XY (15)守护半径(米)
参数:
⑧方向:怪物生成出来的方向,填写值如下取其一(填英文或中文都可以):
DIR_UP 上
DIR_UPRIGHT
右上
DIR_RIGHT
右
DIR_DOWNRIGHT
右下
DIR_DOWN
下
DIR_DOWNLEFT
左下
DIR_LEFT
左
DIR_UPLEFT
左上
DIR_RAND
随机方向
⑨刷怪标志:以下标志组合(英文),用竖线|组合
MONGEN_FLAG_WORLDTIP
/* 怪物刷新时全区提示
*/
MONGEN_FLAG_WALLCLOCKTIME
/* 固定时间刷怪,格式 小时:分(24小时制)
*/
MONGEN_FLAG_DIECOUNTERDOWN
/* 从怪物死亡后开始计时刷新
*/
MONGEN_FLAG_DONOTSHOW_GENLIST
/* 不在引擎内置的怪物刷新列表中显示 */
⑩存续时间:写0永久,否则为怪物存在时间,可以写xx秒、xx分钟、xx小时
(11)名字颜色:刷出来的怪物名字颜色
(12)名字渐变色:和参数11组成渐变极
(13)代表掉落:怪物掉落物品,填写格式: 物品名称1 物品名称2
…
(最多写16个)
(代表掉落只是个备注信息,没有可填0,如果写了,引擎自带的BOSS刷新面板会显示这些物品)
(14)位置偏移:微调怪物刷新出来后,相对于所在地图点的位置,无偏移填0,填写格式:
X微调 Y微调
(15)守护半径(米):设置刷出怪物的守护半径,超过这个范围,怪物会触发到QF:[@超出守护范围]
13米差不多是全范围,可依照此长度概念设置
探测怪物
1. 探测当前地图怪物位置
—————————————————
命令:
DetectMon ①怪物名
参数:
①怪物名:写在怪物表中的怪物名称或怪物ID
说明:
执行本命令后,人物参数<$PARAM>如下:
<$PARAM1>:
探测结果,0成功探测到,1怪物名错误,2怪物未刷新
<$PARAM2>: 怪物位置X
<$PARAM3>:
怪物位置Y
注意:人物参数<$PARAM>会被其它调用覆盖,使用本命令后应尽快取出探测结果
[怪物] – 获取刷怪时间
获取怪物刷新时间
1. 怪物再刷秒数
—————————————————
常量:
<$MONGENSEC(地图名
怪物名)>
说明:
取怪物刷新剩余秒数,纯数值,方便做运算.如需显示,使用<$MONGENTIME(①地图名 ②怪物名)>
返回值:
-3:
地图名或怪物名写错
-2:地图处关闭状态,此时只要一个人物进入地图就会刷新怪物
-1:怪物未登记在刷新表上
0:
怪物已刷新
大于0:刷新剩余秒数
注意:使用此常量时,需要对所有返回值时行判断.
注意:不是所有怪都能取到刷新时间,
只有刷怪表”Mir200/Envir/MonGen.csv”中的”刷怪标志”填了”全区提示“的才有刷新计时
例子:
=====================
[@main]
#IF
#ACT
MOV N0 <$MONGENSEC(沃玛寺庙三层 沃玛教主)> ; 取到怪物刷新剩余秒数存到NO变量中
#IF
EQUAL N0
-3
#ACT
地图”沃玛寺庙三层”或怪物”沃玛教主”不存在
BREAK
#IF
EQUAL N0
-2
#ACT
地图”沃玛寺庙三层”已关闭,现在进图就刷沃玛教主
BREAK
#IF
EQUAL N0
-1
#ACT
怪物”沃玛教主”未登记刷新时间
BREAK
#IF
EQUAL N0
0
#ACT
怪物”沃玛教主”已在”沃玛寺庙三层”刷新
BREAK
#IF
LARGE N0
0
#ACT
“沃玛教主”还有<$STR(N0)>秒刷新
BREAK
2. 怪物再刷显示时间(小时:分钟)
—————————————————
<$MONGENTIME(①地图名 ②怪物名)>
说明:返回怪物刷新剩余时间文本,hh:mm格式,一般用于显示
例子:
<$MONGENTIME(沃玛寺庙三层 沃玛教主)> // 返回:5小时53分钟
[宝宝] – 脚本招宝宝
脚本招宝宝
命令:
RecallMob ①怪物名 ②等级
③存续时间 ④是否变色 ⑤填0 ⑥填0 ⑦检测数量 ⑧经验值 ⑨召唤ID ⑩ObjID写回变量
(11)召唤标志
(12)数量 (13)位置X (14)位置Y
说明:
在人物身边召唤一个怪物宝宝
参数:
①怪物名: “Mir200/Envir/Data/怪物(Monster).csv”表中的怪物名称
②宝宝等级:宝宝招出后多少级,从1级开始
引擎支持每级宝宝外观和属性独立控制,在”Mir200/Envir/Data/SK扩展表格/怪物逐等级设置.csv”表中设置
③存续时间:可以写xx秒、xx小时,写0宝宝永久存在,时间到了宝宝自动消失
④是否变色:0不变色 1变色
⑦检测数量:是否检测宝宝最大数量,0不检测
1检测
以下参数选填
⑧经验值: 设置宝宝当前经验值,召出默认经验值0
⑨召唤ID:
自定义的ID值,用以唯一标识这个宝宝,其它宝宝操作命令需要填入召唤ID以确定操作哪个宝宝
⑩ObjID写回变量:接收宝宝召出后在地图上的ObjID(如果有多个宝宝,返回的是第一个),没有可写0
(11)召唤标志:取值写以下值,可以竖线|组合多个标志
取值 说明
==================================
不跟主人 /*
招出的宝宝不跟主人 */
不随主死 /*
宝宝不随主人死 */
不倒计时消失
/* 主人下线或丢失 宝宝还存续一段时间 */
不拉回身边 /*
不将召唤的下属怪物拉回身边(如:角绳放幼蛾) */
招出不提示 /*
招出时不提示 */
跟随但不追赶 /*
跟随但不追赶主人,例如做镖车押镖功能需要 */
不被控制休息 /*
不被主人控制休息和战斗 */
(12)数量:设置招出几个宝宝
(13)位置X:设置宝宝招出地图位置,如果不写,则在人物旁边
(14)位置Y:设置宝宝招出地图位置,如果不写,则在人物旁边
例子:
[@main]
#IF
#ACT
RecallMob
半兽人 3级 5分钟
SENDMSG 6
给你招出一个半兽人宝宝,5分钟后消失。
RecallMob 半兽人 2级 0 0 0 0 0 0 1000 N0 0 1 333 333
// 在当前地图333 333处召唤,宝宝随主人死亡且主人掉线留存一段时间,召唤ID是1000,ObjID是<$STR(N0)>
注意:
RecallMob不会判断宝宝个数,调用命令立即招出宝宝,
如需对宝宝个数控制,须在调用RecallMob前,使用CHECKSLAVECOUNT或常量<$SLAVECOUNT>判断宝宝个数.
例如:
[@main]
#IF
CHECKSLAVECOUNT
> 4
#ACT
你的宝宝数量已超过或等于5个,不能再招更多的宝宝
BREAK
#IF
#ACT
RecallMob 半兽人
成功招到一个半兽人宝宝
召唤ID获取宝宝ObjID
—————————————————————-
命令:
<$GETSLAVEBYCALLID(召唤ID)>
参数:
召唤ID: 命令RecallMob填入的第9个参数
说明:
获得ObjID后,就可以根据objID对宝宝进行各种操作
[宝宝] – 宝宝操作(兼容)
宝宝操作(兼容)
修改宝宝属性值
——————————————————
命令:
CHANGEMOBABILITY 宝宝名称 属性位置 操作符(+,-,= ) 值 时间(秒)
参数:
属性位置:1=防御下限 2=防御上限 3=魔御下限 4=魔御上限
5=攻击下限 6=攻击上限
7=魔法下限 8=魔法上限 9=道术下限 10=道术上限 11=MaxHP 12=
MaxMP
13=移动速度(百分比) 14= 攻击速度(百分比)
参数3:操作符(+ – =)
参数4:时间(属性值最大21亿)
例子:
[@main]
#IF
#ACT
CHANGEMOBABILITY 神兽 11 +
10000 9999
SENDMSG 7 你的神兽增加了HP+10000
修改所有宝宝属性
——————————————————
命令:
ChangeSlaveAbilityEx ①属性 ②数值 ③有效时间(0永久)
④下线保存 ⑤宝宝名(空表示所有宝宝)
参数:
①属性:可以取以下数字值或属性表中的任意属性名
0: HP; 1: MaxHP; 2:MP; 3:MaxMP; 4:AC1; 5:AC2;
6:MAC1; 7:MAC2; 8:DC1;
9:DC2; 10:MC1; 11:MC2;
12:SC1; 13:SC2 14:攻击速度 15:移动速度
②数值:如果数值后面有%号,就是百分比值,正数表示加,负数表示减
-10为宝宝原始属性参数减少10 ,+10则是原始参数加10(变慢),0
为恢复原始速度,符号中间无空格!!!!!
③有效时间:
xx秒,xx分钟,xx小时,写0或空表示永久(默认永久)
④下线保存:0不保存(默认),1保存
⑤宝宝名:属性加在哪个宝宝上,空或0表示所有宝宝(默认所有宝宝)
说明:
本命令调用后立即生效,无需使用RecalcSlaveAbility
例子1:
[@Test]
#IF
#ACT
ChangeSlaveAbilityEX HP最大值 10% 0 1 //
所有宝宝血量在原有基础上增加10%,下线保存,时间永久
ChangeSlaveAbilityEX 移动速度 3
30 // 所有宝宝移动速度在原有基础上加3,时间30秒,下线不保存
ChangeSlaveAbilityEX 攻击上限 20% // 所有宝宝攻击力在原有基础上增加20%,时间永久,下线不保存
break
例子2:
====================================
[@Test]
#IF
#ACT
ChangeSlaveAbilityEX 移动速度 -20% 60 //
所有宝宝在原有基础上加-2,60秒后恢复正常
sendmsg 6
您的所有宝宝移动速度减少20%,60秒后恢复正常!
break
在宝宝触发中取当前宝宝ObjID
—————————————————————-
命令:
<$CURSLAVEOBJID>
参数:
无
说明:
取当前宝宝ObjID,用在宝宝触发中,以通过ObjID操作当前宝宝
例子:
Mir200\Envir\Market_Def\QFunction-0.txt
[@MobTreachery]
#IF
#ACT
SENDMSG 6
你的宝宝<$MOBTREACHERYNAME>叛变了,它的ObjID是<$CURSLAVEOBJID>,可通过ObjID对宝宝进行更多操作
人物宝宝叛变
——————————————————
QFunction-0.txt:
[@MobTreachery]
#IF
#ACT
SENDMSG 6 你的宝宝<$MOBTREACHERYNAME>叛变了
宝宝升级触发
——————————————————
QFunction-0.txt:
[@Slaveupgrade]
#IF
#ACT
SENDMSG 6 你的宝宝<$SLAVEUPGRADENAME>升级了
获得宝宝触发
——————————————————
QFunction-0.txt
[@Slavebb]
#IF
#ACT
SENDMSG 7 你获得宝宝<$SLAVEBBNAME>
宝宝被攻击和攻击别人宝宝触发
——————————————————
QFunction-0.txt
[@SlaveDamage]
#IF
#ACT
SENDMSG 7 宝宝被[<$darlingpet>]攻击了
[@HitSlave]
#IF
#ACT
SENDMSG 7
你攻击了[<$darlingpet>]的宝宝
杀死别人宝宝触发
——————————————————
QFunction-0.txt
[@KillSlave]
#IF
CheckKillSlaveName
月灵
#ACT
SendMsg 5
你把对方<$KILLSLAVEMASTERNAME>的月灵宝宝杀死了.
自己宝宝死亡触发
——————————————————
QFunction-0.txt触发
[@SelfKillSlave]
#IF
#ACT
SendMsg 6
<$USERNAME>你的宝宝<$SLAVEBBNAME>死了
杀死自己指定宝宝
——————————————————
命令:
KillCallMob ①宝宝名字 ② 数量 ③式(为空或者0有死亡动画 1直接消失)
例子1:
[@杀死自己指定宝宝]
#IF
#ACT
// 把自己宝宝杀死,有死亡动画
KILLCALLMOB
虎卫 1
SENDMSG 5
你的虎卫宝宝被杀死了.
例子2:
[@杀死自己指定宝宝]
#IF
#ACT
;把自己宝宝杀死,没有死亡动画
KILLCALLMOB
虎卫 1 1
SENDMSG 5
你的虎卫宝宝被杀死了.
杀死自己全部宝宝
——————————————————
命令:
KILLSLAVE //
有死亡动画,保留尸体
REMOVESLAVE // 直接从地图上消失
例子:
[@杀死全部宝宝]
#IF
#ACT
KILLSLAVE
SENDMSG 5
你的宝宝全部杀死了
检测自己和宝宝之间的距离
——————————————————
命令:
CheckSlaveInRange ①宝宝名字 ②距离
说明:
此命令的主要作用是配合128类型的宝宝使用(可模仿押镖任务).
例子:
[@宝宝距离]
#IF
CheckSlaveInRange 月灵
5
#SAY
你的月灵在身边
#ELSESAY
你的月灵宝宝跑哪里去了?
直接调整人物宝宝的等级
——————————————————
命令:
ChangeSlaveLevel 参数1 参数2 参数3
参数4
参数:
参数1:名字
参数2:操作符(+ =
-)
参数3:等级(1-7)
参数4:第几只宝宝(为空或为0=全部宝宝,1~99=第几只宝宝)
例子:
[@调整所有宝宝等级]
#IF
#ACT
// 把虎卫的等级调整到7级.
ChangeSlaveLevel 虎卫 = 7< /FONT >
[@调整第1个宝宝等级]
#IF
#ACT
ChangeSlaveLevel 虎卫 = 7 1< /FONT >
检查玩家所带宝宝数量
——————————————————
命令:
CHECKSLAVECOUNT 参数1 参数2 参数3
参数1:操作符(> < =)
参数2:数量
参数3:怪物名称(为空检测全部
怪物名称检测指定怪物数量)
例子1:
[@宝宝数量]
#IF
CHECKSLAVECOUNT <
5
#ACT
SENDMSG 6 你的宝宝总数量为5个。
#ELSEACT
SENDMSG 6
你的宝宝总数量不为5个。
例子2:
[@宝宝白虎数量]
#IF
CHECKSLAVECOUNT < 5
白虎
#ACT
SENDMSG 6 你的白虎宝宝总数量为5个。
#ELSEACT
SENDMSG 6
你的白虎宝宝总数量不为5个。
检查宝宝等级
——————————————————
命令:
CHECKSLAVELEVEL 参数1 参数2
参数1:操作符(> < = )< BR >参数2:等级< /FONT >
例子:
[@检测宝宝等级]
#IF
CHECKSLAVELEVEL =
5
#SAY
宝宝的等级等于5级。
#ELSESAY
宝宝的等级不等于5级。
检测人物宝宝名字
——————————————————
命令:
CHECKSLAVENAME 宝宝名字
参数:
宝宝名字:数据库中的怪物名称
例子:
[@检测宝宝名字]
#IF
CHECKSLAVENAME
虎卫
#ACT
SENDMSG 5 提示:你的宝宝叫虎卫
#ELSEACT
SENDMSG 5 提示:你的宝宝不叫虎卫
改变宝宝名字颜色
——————————————————
命令:
ChangeSlaveNameColor 宝宝名字 颜色(0-255) 时间
参数:
宝宝名字:数据库中的怪物名称
颜色:(0-255)
时间:-1或空为永久
例子:
[@改变宝宝名字颜色]
#IF
CHECKLEVELEX >
0
#ACT
CHANGESLAVENAMECOLOR 虎卫 249
指定宝宝立即叛变的脚本命令
——————————————————
GetCallMob 宝宝名称
例子:
[@叛变]
#if
#ACT
GETCALLMOB
神兽
#say
你的神兽已经叛变
调整宝宝攻击人物的威力倍率
——————————————————
ChangeSlaveAttackHumPowerRate 参数1 参数2
参数1:宝宝名称(带数字和不带数字都可以)
参数2:攻击人物威力倍率(威力倍数为0时不攻击人物, 110=攻击人物倍数1.1倍)<
/FONT>
例子1:
[@神兽不攻击人物]
#if
CHECKSLAVENAME
神兽
#ACT
ChangeSlaveAttackHumPowerRate 神兽 0
sendmsg 6
神兽不攻击人物
#elseact
sendmsg 6 请先把神兽召唤出来
例子2:
[@神兽攻击人物倍数1点1倍]
#if
CHECKSLAVENAME
神兽
#ACT
ChangeSlaveAttackHumPowerRate 神兽 110
sendmsg 6
神兽攻击人物1.1倍攻击力
#elseact
sendmsg 6 请先把神兽召唤出来
获取当前宝宝名字和宝宝等级
——————————————————
GetSlaveInfo 参数1 参数2 参数3 参数4
参数1:第几只宝宝
参数2:宝宝名字存取变量
参数3:宝宝等级存取变量
参数4:是否带数字保存(0或者空不带 1=带宝宝后面数字)<
/FONT>
例子1:
[@宝宝名字和等级不带数字]
#IF
#ACT
GetSlaveInfo 1
S$宝宝名字1 N$宝宝等级1
GetSlaveInfo 2 S$宝宝名字2 N$宝宝等级2
SENDMSG 6
<$STR(S$宝宝名字1)>—<$STR(N$宝宝等级1)>
SENDMSG 6
<$STR(S$宝宝名字2)>—<$STR(N$宝宝等级2)>
例子2:
[@宝宝名字和等级带数字]
#IF
#ACT
GetSlaveInfo
1 S$宝宝名字1 N$宝宝等级1 1
GetSlaveInfo 2 S$宝宝名字2 N$宝宝等级2 1
SENDMSG 6
<$STR(S$宝宝名字1)>—<$STR(N$宝宝等级1)>
SENDMSG 6
<$STR(S$宝宝名字2)>—<$STR(N$宝宝等级2)>
修改宝宝血量
——————————————————
命令:
MEBabyHP 参数1 参数2 参数3 参数4
参数1:宝宝名称
参数2:操作符号(+,-,=)
参数3:血量值
参数4:是否区分数字(0不区别,1区别)
例子:
[@修改神兽血量]
#IF
#ACT
MEBabyHP 神兽 = 99999 0
[@修改神兽1血量]
#IF
#ACT
MEBabyHP 神兽1
= 99999 1
宝宝在线改名命令
——————————————————
命令:
ChangeBmz 参数1 参数2
参数:
参数1:新名字
参数2:原有名字(如果原有名字为空,则把所有宝宝的名字都改成新名字)
例子:
[@ChangeBmz]
#IF
#ACT
ChangeBmz 超级神兽
SendMsg 5
你所有宝宝名字修改为超级神兽!
[@ChangeBmz1]
#IF
CHECKSLAVENAME
神兽
#ACT
ChangeBmz 超级神兽 神兽
SendMsg 5
你的神兽宝宝名字成功修改为超级神兽!
#ELSEACT
SENDMSG 5 提示:你的宝宝名字不叫神兽
[宝宝] – 宝宝操作SK
宝宝操作SK
本引擎支持精确控制每一个宝宝的状态、属性、AI等操作,以宝宝为玩法的版本可以发掘引擎提供的
宝宝特性功能,做出更多灵活、变通、有趣的玩法.
引擎通过ObjID操控每个宝宝,ObjID是宝宝在当前地图上的唯一ID,跨地图会更换,
虽然跨地图后宝宝ObjID会变化,但每次操作前总是先获取一下ObjID,所以并没有影响,
每次操作宝宝前,先获得一次最新的ObjID即可.
获得宝宝ObjID后,既可拿这个ObjID调用所有对象控制命令,包括修改属性、血量、AI状态等等,
一旦获取到ObjID,就相当于完全掌控宝宝,详细参见对象操作命令.
!注意:
在本引擎中,宝宝死亡后,默认还是归属人物(即还是人物的宝宝,任何宝宝检测都能检测到),
以方便做宝宝复活功能。
如果希望宝宝死后归属断开,可以按以下方法做:
a. 怪物表中设置宝宝的“留尸时间”为0,一定要写0,不填是默认时间,这样宝宝死亡立即从地图消失
b. 怪物表中增加宝宝标志“死后不算宝宝”,这样宝宝死亡后尸体还在,但已和人物断开归属,检测不到宝宝
下面介绍获取宝宝ObjID命令:
1. 取所有宝宝ObjID
—————————————————————-
命令:
<$SLAVEOBJIDS>
参数:
无
说明:
返回结果中,多个宝宝以空格分隔,取到后可用<$FIELD>分隔取出每个ObjID.
注意:宝宝ObjID跨地图后会变化,每次操作宝宝先取出ObjID,不要保存,因为换地图后会变.
另外:
a.
多个宝宝ObjID需要切分出来使用,对以空格为切分的字符串,
使用<$FIELDCOUNT(字符串)>取个数,
使用<$FIELD(第几个
字符串)>取切分串,从1开始
例如: set %str abc 123
xyz
<$FIELDCOUNT(%str)>,返回3
<$FILED(1 %str)>
,返回abc
<$FILED(2 %str)> ,返回123
b. 可以通过<$OBJDBIDX(2
%objid)> 获取宝宝在怪物表的数据库ID,以区分要处理的是什么宝宝
c. 可以通过<$OBJNAME(2
%objid)> 获取宝宝在怪物表的名字,以区分要处理的是什么宝宝
d.
可以通过ObjID取宝宝唯一ID<$OBJSLAVEID(2 %objid)>
e.
可以通过<$OBJATTR(2 %objid 属性名称)>取宝宝任意属性值
f.
可以使用ChangeMonAttr调整宝宝任意属性值
g. 可以使用RunScriptOnObj 2 %objid
脚本命令名
参数…,让宝宝执行任何命令
等等其他任何可以操控对象的操作.
例子1: 显示所有宝宝
=================================
[@显示所有宝宝]
set %所有宝宝ObjID
<$SLAVEOBJIDS> // 取所有宝宝ObjID,每个以空格隔开
set %num
<$FIELDCOUNT(%所有宝宝ObjID)> //
FIELDCOUNT用于获取分隔字符串个数,相当于取宝宝数量
#IF
EQUAL
%所有宝宝ObjID
#ACT
你没有宝宝
BREAK
// 通过循环输出每个宝宝的ObjID
#IF
#ACT
你现在有%num个宝宝,它们分别是:
set %counter 1 // 循环计数
While %counter <= %num
set %objid <$FIELD(%counter %所有宝宝ObjID)> //
ObjID切分出来
第%counter个 ObjID:%objid
IDX:<$OBJDBIDX(2 %objid)> 名字:<$OBJNAME(2 %objid)>
攻击:<$OBJATTR(2 %objid 攻击上限)> 血量:<$OBJATTR(2 %objid HP最大值)>
INC %counter
EndWhile
例子2: 给每个宝宝加血量
=================================
[@给每个宝宝加血量]
set %所有宝宝ObjID
<$SLAVEOBJIDS> // 取所有宝宝ObjID,每个以空格隔开
set %num
<$FIELDCOUNT(%所有宝宝ObjID)> //
FIELDCOUNT用于获取分隔字符串个数,相当于取宝宝数量
#IF
EQUAL
%所有宝宝ObjID
#ACT
你没有宝宝
BREAK
// 通过循找出每个宝宝的ObjID,并调用ChangeMonAttr修改宝宝属性
#IF
#ACT
set %counter 1 // 循环计数
While %counter <= %num
set %objid
<$FIELD(%counter %所有宝宝ObjID)> // ObjID切分出来
ChangeMonAttr %objid
HP最大值 + 1000 0 1 // 当前宝宝永久加血量并下线保存,只需执行一次操作
INC %counter
EndWhile
例子3: 宝宝起死回生
=================================
[@宝宝起死回生]
set %所有宝宝ObjID
<$SLAVEOBJIDS> // 取所有宝宝ObjID,每个以空格隔开
set %num
<$FIELDCOUNT(%所有宝宝ObjID)> //
FIELDCOUNT用于获取分隔字符串个数,相当于取宝宝数量
#IF
EQUAL %所有宝宝ObjID
#ACT
你没有宝宝
BREAK
// 通过循环获取每个宝宝的ObjID
#IF
#ACT
set %counter
1 // 循环计数
While %counter <= %num
set %objid <$FIELD(%counter
%所有宝宝ObjID)> // ObjID切分出来
#IF
CheckObjDie 2 %objid //
检测宝宝是否死亡
#ACT
检测到宝宝<$OBJNAME(2 %objid)>死亡,现在将其复活
RunScriptOnObj 2
%objid realive // 复活宝宝(将复活命令realive传递执行到死亡宝宝上)
#ELSEACT
宝宝<$OBJNAME(2
%objid)>没有死亡,无需复活
#IF
#ACT
INC %counter
EndWhile
取所有宝宝唯一ID
—————————————————————-
命令:
<$SLAVEIDS>
参数:
无
说明:
多个宝宝唯一ID以空格分隔,宝宝唯一ID从获得此宝宝后一直不变,跨越地图也不变.
注意:
宝宝唯一ID不能直接使用,需要通过<$SLAVEIDTOOBJID(宝宝ID)>转换到ObjID才能使用.
由于宝宝的唯一ID不变,可以保存到变量后续转到ObjID操作(但要注意宝宝死亡后删除保存的信息)
宝宝唯一ID转ObjID
—————————————————————-
命令:
<$SLAVEIDTOOBJID(宝宝ID)>
参数:
无
说明:
对怪物及宝宝的操作命令,都是需要ObjID的,如果知道宝宝ID,可以转到ObjID再操作
[人物] – 称号
称号命令
做称号功能时,需先在数据库中做出称号数据.
1. 增加称号
—————————————————————-
命令:
CONFERTITLE ①称号名称 ②设置当前
③存续时间(秒,不写或写0永久)
参数:
①称号名称:称号表”Mir200\数据库\更多\角色\称号.csv”中的称号名称
②设置当前:是否设置为当前展示称号,1是 0不是
③存续时间:称号过多长时间自动消失,单位秒
说明:
给人物增加一个称号
例子:
[@main]
#IF
#ACT
CONFERTITLE 测试称号 1 600 ;给人物加一个”测试称号”,并做为当前显示称号,600秒后自动删除
2. 删除称号
—————————————————————-
命令:
DEPRIVETITLE
①称号名称
参数:
①称号名称:要删除人物的称号名称,多个称号可用逗号隔开批量删除
说明:
删除一个或多个人物称号
3. 检测称号个数
—————————————————————-
命令:
CHECKFENGHAOCOUNT ①操作符(<,>,= )
②数量(0-64)
参数:
①称号名称:检检测的称号名称
说明:
检测人物身上称号个数
4. 检测称号名字
—————————————————————-
命令:
CHECKTITLE
①称号名称
参数:
①称号名称:检检测的称号名称
说明:
检测人物身上是否有指定称号
5. 检测称号时间
—————————————————————-
命令:
CHECKTITLETIME ①称号名称
②检测时间(秒)
参数:
①称号名称:检检测的称号名称
②检测时间:要检测的时间
说明:
检测人物称号的剩余时间是否大于参数②
6. 设置外显称号
—————————————————————-
命令:
ShowTitle
①称号名称
参数:
①称号名称:要外显的称号名称
说明:
当人物有多个称号时,可用此命令设置要显示的称号
6. 隐藏外显称号
—————————————————————-
命令:
HideTitle
①称号名称
参数:
①称号名称:要隐藏的称号名称
说明:
当人物有多个称号时,可用此命令设置要隐藏的称号
称号常量
—————————————————————-
<TITLECOUNT>
取人物身上称号总数量
<TITLETIME(称号名称)> 取称号剩余时间
<TITLEATTRS(称号名称)> 取称号属性所加属性
[人物] – 调整血量
调整血量蓝量
1. 调整血量
————————————————–
命令:
HumanHP ①操作符(+,-, =
) ②调整值(支持百分号) ③显示特效(选填) ④允许超血(选填)
参数:
①操作符:+加血 -扣血 =
直接设置调整值
②调整值: 支持写百分号,按最大血量百分比调整
③显示特效:当血量减少时,客户端是否显示飘字、红屏等特效,1显示
0不显示,默认1
④允许超血:是否允许超过最大血量,默认0,不允许超出最大血量
说明:
调整当前人物血量,另外,如果将血量等于0,人物会死亡
例子:
#IF
#ACT
HumanHP + 10%
;增加人物10%血量
HumanHP =
<$HPMAX> 0 ;静默满血
2. 调整蓝量
————————————————–
命令:
HumanMP ①操作符(+,-, =
) ②调整值(支持百分号) ③显示特效(选填) ④允许超蓝(选填)
参数:
①操作符:+加蓝 -扣蓝 =
直接设置为调整值
②调整值: 支持写百分号,按最大血量百分比调整
③显示特效:当血量减少时,客户端是否显示飘字等特效,1显示
0不显示,默认1
④允许超蓝:是否允许超过最大血量,默认0,不允许超出最大血量
说明:
调整当前人物血量,另外,如果将血量等于0,人物会死亡
例子:
#IF
#ACT
HumanMP + 100 0 1 ;给当前人物加100点蓝,不在客户端飘字,允许超出最大蓝量
常量
—————————————————————-
<HP>
取当前血量
<HPMAX>
取最大血量
<HPPER> 取百分比血量,注意:返回值是0.0~1.0
[人物] – 名字和ID
人物名字
1. 取当前人物名字
———————————————–
命令:
<$USERNAME>
<$PLAYERNAME>
说明:
取当前人物名字常量,两种常量一样,使用哪个依个人习惯.
如果当前脚本执行对象是怪物,那么<$USERNAME>返回怪物名字
2. 取当前人物ID
———————————————–
命令:
<$PLAYERID>
说明:
人物ID是人物的纯数字唯一标识,这个ID可以和人物名字相互转换.
如果当前执行脚本对象是人物,则返回人物ID也是对象的ObjID,
如果当前执行脚本对象是怪物,则返回怪物的ObjID. (什么是对象ObjID?)
3. 通过人物ID取人物名字
———————————————–
命令:
<$PLAYERNAME_BY_ID(人物ID)>
说明:
在知道人物ID的情况下,可以使用此常量取人物名字
示例:
#IF
#ACT
我的名字是:<$PLAYERNAME_BY_ID(<$PLAYERID>)>
4. 过人物名字到人物ID
———————————————–
命令:
<$PLAYERID_BY_NAME(人物名字)>
说明:
在知道人物名字的情况下,可以使用此常量取人物ID
#ACT
我的ID是:<$PLAYERID_BY_NAME(<$USERNAME>)>
4. 设置多行名字
———————————————–
命令:
SetRankLevelName ①第1行\第2行\第3行\第4行…(最多16行) ②是否中心居中 (兼容用法)
SetRankLevelName ①富文本
②是否中心居中 (本引擎用法)
参数:
①名字文本: 兼容老式引擎参数,推荐使用富文本
,可以定义任意行且每行可以指定不同颜色和闪烁
②是否中心居中:不写或为0人物当前名字向下排放(默认),写1以人物名字上下居中排放
说明:
%s:人物名字
%g:行会名字
%f:行会封号名字
%j:人物职业简称(ZFD,具体字样来自角色配置表)
%J:人物职业全称(战士,具体字样来自角色配置表)
%a:人物当前血量
%b:人物最大血量
%l:人物等级
以上内容可以放在任意位置
注意:
SetRankLevelName设置人物名字下线不保存。如需保存,可在人物每次上线触发里再设置一下。
例子:
#IF
#ACT
SetRankLevelName <行会:/FCOLOR=250>[%g][%f]</n>%s</n>AAA<独立变色/CC=1>BBB</n>第3行<部分渐变字/FCOLOR=251-249>
5. 设置名字颜色
———————————————–
命令:
SetNameColor ①颜色变化ID
②变化间隔(毫秒)
参数:
说明:
变化ID值取自于表”Mir200/数据库/杂项/颜色变化表.csv”中的ID
然后人名颜色就会按设定的间隔轮循变化,不写第2个参数的话,默认1000毫秒变1次色
6. 人物改名
———————————————–
命令:
ChangeName
①新名字
ChangeHumName
①新名字
参数:
①新名字:最多七个汉字,不能是现已其它玩家名字
说明:
改名成功立即生效,不用下线.
查看改名触发
[人物] – 转职变性
转职变性
1. 人物转职
—————————————————————-
命令:
ChangeJob
参数:
①新职业名: 战士/法师/道士
②保留原职业技能:转职后是否保留人物原职业技能,0不保留(默认) 1保留
③保留现有宝宝 :转职后是否保留人物现有宝宝,0不保留(默认) 1保留
说明:
人物转职默认移除原职业所有技能(但技能等级和修炼点数保留,再次恢复职业时原技能都还在),
然后会自动学习新职业技能,默认删除当前人物所有宝宝(如果有)
人物转职原地完成,不用下线
2. 人物变性
—————————————————————-
命令:
ChangeGender
①新性别(0男 1女)
参数:
①新性别: 转到新的性别
说明:
人物变性会自动脱掉衣服,自动换头发
人物变性原地完成,不用下线
[人物] – 转生
人物转生
转生常量:
<$RELEVEL> ;人物当前转生等级,如果为0表明还未转生
<$RELEVELPOINTS(转生等级)> ;人物指定转生等级剩余分配点数,0表示分配点用完
1. 设置转生等级
—————————————————————-
命令:
RENEWLEVEL ①转生等级 ②转后等级 ③分配点数
参数:
①转生等级:
格式1:数值范围为
1 – 65535
格式2:可在转生等级前加上+-符号,表示在当前转生等级基础上,增加或减少,见示例2
②转后等级:
代表转生后人物的等级,0为不改变人物当前等级
③分配点数:
代表转生后可以得到的点数,此点数可能按比例换成人物属性点
注意:
可以跳级转生,但跳过的等级,没有转生属性点(取出为0).
比如说当前转生等级3,设置新转等级7,那么4、5、6三个转生等级属性点就为0.
如果有跳级但需要保存属性分配点的,则需要循环调用转生命令多次,一级一级升.
例子1:
==================================
;将人物转生一次,转后人物等级不变,分配100点属性
[@RenewLevel]
#IF
#ACT
RENEWLEVEL 1 0
100
#SAY
转生成功
例子2:
==================================
;人物转生等级加1,转后人物等级不变,分配100点属性
[@RenewLevel]
#IF
#ACT
RENEWLEVEL +1 0
100
#SAY
转生等级加1
2. 检测转生等级
—————————————————————-
命令:
CheckReewLevel
①比较符
说明:
也可使用转生等级常量<$RELEVEL>直接比较
例子:
;检查人物的转生等级是否大于指定级别
[@checklevel1]
#IF
CHECKRENEWLEVEL >
5
#SAY
您的转生等级大于5级
#ELSESAY
您的转生等级不大于5级
[@checklevel2]
#IF
CHECKRENEWLEVEL >
5 <
10
#SAY
您的转生等级大于5级且小于10级
3. 分配转生点
—————————————————————-
命令:
ChangeRenewPoints ①转生等级 ②属性名 ③分配点数
参数:
①转生等级:
设置从哪一级转生分配属性点数,取值范围1至当前最大转生等级
②属性名:
设置转生点分配到哪个属性上(分配到哪个属性人物就对应增加哪个属性)
③分配点数:
分配多少点属性,最多能分配的点数,取决于使用RENEWLEVEL设置的最大分配点数
说明:
每次分配属性点将扣除转生等级剩余可分配点数,分配的属性将加到人物身上,增强人物.
例子:
=====================================
[@分配转生属性]
#IF
#ACT
ChangeRenewPoints
1 攻击上限 10 ;从第1转生中分配10点攻击属性到人物
#SAY
从第1转生中分配10点攻击属性到人物
1转剩余分配点:<$RELEVELPOINTS(1)>
4.
清除转生数据
—————————————————————-
命令:
ResetRenewLevel
说明:
恢复到人物未转生状态
例子:
[@清除人物转生]
#IF
#ACT
ResetRenewLevel
[人物] – 称号
人物称号
称号ICON路径:stab\res\private\title_icon
StdMode=70
物品名称:称号的名称,该名称外观是否显示,由Reserved字段控制
附加名称:写法格式如下
称号显示名<简称/FCOLOR=颜色|X=横向偏移|Y=
竖向偏移>
Shape:称号编号,触发用的(shape 编号从1开始)
Color:颜色 0~255
Reserved:显示DB中的名字(0默认显示名字+图标
1不显示数据库的称号名字 2不显示数据库的称号名字和头顶图标 )
Anicount:大于0时,无需设置为当前称号,属性就可以叠加到人物。等于0时,需要设置为当前称号,该称号的属性才会叠加到人物
Looks:称号图片的开始位置
DuraMax:可使用时间,单位小时
其他就等同于装备属性
玩家改变使用称号或刚上线有使用到称号,触发:QFunction的
人物:[@TitleChanged_X]
英雄:[@HeroTitleChanged_X]
X代表物品cfg_equip.xls中的Shape字段
玩家取消使用称号时,触发:QFunction的
人物:[@Untitled_X]
英雄:[@HeroUntitled_X]
X代表物品cfg_equip.xls中的Shape字段
比如
[@TitleChanged_1]
#IF
#ACT
伟大的【沙巴克城主】上线了
——————————————————————————————-
第三步:使用脚本命令增加人物称号
称号对应NPC命令:
检测人物是否有某个称号
CHECKTITLE 称号名称(也就是在物品数据库增加的那个称号物品名称)
增加人物称号
CONFERTITLE 称号名称(也就是在物品数据库增加的那个称号物品名称)
是否设置为当前称号(1=设置为当前称号)
删除人物称号
DEPRIVETITLE
称号名称(也就是在物品数据库增加的那个称号物品名称,多个称号请用,逗号隔开批量删除)
[@增加称号]
#IF
CHECKFENGHAOCOUNT > 29
#ACT
SENDMSG
6 已经有了所有称号
BREAK
#IF
NOT CHECKTITLE 巅峰战神 //检测没有有这个称号
#ACT
CONFERTITLE
巅峰战神 //授予称号
#ELSEACT
SENDMSG 6 已经有了该称号
[@删除称号]
#IF
CHECKTITLE 巅峰战神
#ACT
DEPRIVETITLE
巅峰战神,巅峰法神,巅峰道神 //批量删除称号
;DEPRIVETITLE ALL //删除所有称号
功能:检查玩家所有称号的数量
格式:CHECKFENGHAOCOUNT 操作符(<,>,=)
数量(0-30)
称号改变属性及时刷新
称号物品DuraMax=0时,称号可以无限时间使用
赋予新称号,将标注为未使用状态,激活称号后才开始计时
[人物] – 调整属性(SK)
调整人物属性SK
1. 调整人物属性SK
————————————————-
命令:
ChangeHumAttr ①属性名 ②操作符(+,-,= ) ③属性值 ④有效时间
⑤下线保存
参数:
①属性名:取值于属性表”Mir200/Envir/Data/属性.csv”中的属性名(注意:不是显示名)
②操作符:
在人物当前已有属性上增加或减少
③属性值: 设置调整的属性数值,百分比值可写
10%,20%,0.1%等
④有效时间:
可写xx秒,xx分钟,xx小时,写0表示永久(默认)
⑤下线保存: 0不保存(默认),1保存
例子:
[@main]
#IF
#ACT
ChangeHumAttr 攻击上限 + 100 10秒 //
人物攻击上限增加100,持续10秒,下线不保存
ChangeHumAttr HP最大值 + 1000 0 1 //
人物血量加1000,永久,下线保存
[@清除调整值]
#IF
#ACT
ChangeHumAttr HP最大值 =
0
2. 调整人物属性比例
————————————————-
ChangeAttrScale ①操作符(+,-,=) ②比例值(百分比值)
常量:
<$ATTRSCALE> 取人物当前属性比例
说明:
人物属性比例调整,只对当前登录有效,下线不保存
注意:每次调整,是在原属性上调整,不是在当前属性上
3. 临时设置属性
————————————————-
命令:
SetAttr ①属性名
②属性值
参数:
①属性名:属性表中的属性名
②属性值:
说明:
临时有效,下线不保存、过地图重置、换装备后重置.
如需保存属性值,使用ChangeHumAttr或AddBuff
4. 临时叠加属性
————————————————-
命令:
AddAttr
①属性名 ②属性值
参数:
①属性名:属性表中的属性名
②属性值:
说明:
临时有效,下线不保存、过地图重置、换装备后重置.
如需保存属性值,使用ChangeHumAttr或AddBuff
取人物属性值
————————————————-
命令:
<$ATTR(属性名)>
; 仅属性值,一般用作计算
<$STRATTR(属性名)> ;
可被显示的属性值,一般用作显示
参数:
①属性名:属性表中的属性名:
说明:
取人物任意属性值
加经验
————————————————-
命令:
AddExp ①经验值
参数:
①经验值:
说明:
检测经验
————————————————-
命令:
CheckExp ①经验值
参数:
①经验值:
说明:
[人物] – 调整属性(兼容)
调整人物属性命令(兼容)
注意:本引擎所有人物属性调整是在当前人物的属性上增量调整.
比如人物某个装备有个攻速属性+1,调用CHANGESPEED 2
1后是在加1点攻速,最后整体攻速是2.
多次调用此命令将持续增量增加速度,如果参数2的值为负,则是减少速度.
为什么是增量增加?
属性调整命令不是直接设置人物属性值,而是在原有属性上加减,这是因为人物当前可能通过付费、穿戴含攻速
装备等途径,已经获得了一些属性值,如果直接设置数值,则相当于将之前的值全部作废,出现属性溯源混乱.
通过增量的方式,只将影响控制在当次调用上,比如玩家当前攻速3,然后在某个活动中点击加速+2,且给定20秒时间,
当前就是速度5,当这20秒过去后,速度还原到之前的3,从而不影响玩家之前已获得的速度值.
1.
永久增加人物属性点
————————————————-
命令:
USEBONUSPOINT ①属性位置(1-14)
②控制符(+,-,=) ③点数 ④模式(0或空=上下限都加 1=下限 2=上限)
参数:
①属性位置:
1-攻击力 2-魔法力 3-道术力 4-防御力 5-魔防力 6-生命值 7-魔法值 8-准确 9-躲避 10-防御下限
11-防御上限 12-魔御下限 13-魔御上限
如果属性位置填写属性表中的属性名,则按属性名读取,可以填写属性表中任意属性,包括自定义属性.
注意:
如果参数2为=
,参数3为0,则清空当前属性设置
例子:
[@Main]
#ACT
USEBONUSPOINT 1 + 20
SENDMSG 7
你的攻击力上下限增加20点.
[@Main]
#ACT
USEBONUSPOINT 1 + 20 1
SENDMSG 7
你的攻击力下限增加20点.
[@Main]
#ACT
USEBONUSPOINT 1 + 20 2
SENDMSG 7 你的攻击力上限增加20点.
[@main]
#ACT
USEBONUSPOINT 1 = 0
SENDMSG 7
你的攻击力上下限被清空
[@main]
#ACT
USEBONUSPOINT 准确 + 3
SENDMSG 7 你的准确度增加3点
2.
调整人物属性
————————————————-
命令:
ChangeHumNewValue
①属性名称 ②属性值 ③有效时间(秒,写0永久) ④下线保存
参数:
①属性名称:
取值于属性表”Mir200/Envir/Data/属性.csv”中的属性名字段值.
②属性值:
根据M2兼容,百分比值填写整数值,如20%写20
③有效时间:可以写xx秒,xx分钟,xx小时,写数字0表示永久
④下线保存:0不保存(默认),1保存
说明:
可调整人物所有属性
支持属性表表里面所有属性.
多次调用说明:
a.
多次调用属性总是累加
b.
多次调用有效时间相同的,则并重新刷新计时
c.
多次调用有效时间不同的,每次调用各计各的时间
情况c说明:
在具体功能中,可能存在这种情况,即在一个活动中人物通过付费获得一个属性,有效一定秒数,
随后该人物可能在另一个活动又获得同样属性,且有效时间可能也不一样,这就需要对每次调用独立计时.
例子:
[@人物元素]
#IF
#ACT
ChangeHumNewValue 攻击倍数 10 60
SENDMSG 6 增加攻击伤害10% 时间60秒
3.
调整人物元素属性
————————————————-
命令:
AddHumNewValue ①属性(0-20) ②操作符(+,-,= ) ③值(0-100) ④时间(xx秒
xx小时,0永久) ⑤下线保存(0不保存,默认)
参数:
①属性(0-20)或写属性表中的属性名称
(0)暴击几率增加 1~100%
(1)增加攻击伤害
1~100%
(2)物理伤害减少 1~100%
(3)魔法伤害减少 1~100%
(4)忽视目标防御 1~100%
(5)所有伤害反弹
1~100%
(6)增加杀人暴率 1~100%
(7)人物体力增加 1~100%
(8)人物魔力增加 1~100%
(9)怒气恢复增加
1~100%
(10)合击攻击增加 1~100%
(11)增加杀怪暴率
1~100%
(12)不支持!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
(13)增加防止麻痹
1~100%
(14)增加防止护身 1~100%
(15)增加防止复活 1~100%
(16)增加防止全毒
1~100%
(17)增加防止诱惑 1~100%
(18)增加防止火墙 1~100%
(19)增加防止冰冻
1~100%
(20)增加防止蛛网 1~100%
②操作符:如果使用=,且值为0,则清空该属性数据
说明:
此命令只调整本命令对应的元素属性值,而不会改变装备自带的属性值
此属性仅自己在状态栏元素综合属性中查看,无需装备,别人是无法看到的 ,按需使用.
例子:
[@main]
#IF
#ACT
AddHumNewValue 0 = 10 100
SENDMSG 6 增加暴击几率10% 时间100秒
;将人物的暴击几率调整为10,假如人身上的装备暴击几率原来为5,则最终人物身上的暴击几率为 10 + 5
4.
临时调整人物属性
————————————————————–
命令:
ChangeHumAbility ①属性(1-20) ②操作符(+, =
,-) ③属性点 ④时间秒(0永久) ⑤下线保存(0不保存,默认)
参数:
①属性:
1=防御下限
2=防御上限
3=魔御下限
4=魔御上限
5=攻击下限
6=攻击上限
7=魔法下限
8=魔法上限
9=道术下限
10=道术上限
11=MaxHP
12=MaxMP
13=HP恢复
14=MP恢复
15=毒恢复
16=毒躲避
17=魔法躲避
18=准确
19=敏捷
20=
幸运
例子:
[@Test]
#IF
#ACT
ChangeHumAbility 2 + 10
60
#SAY
你的防御上限增加10点.60秒后恢复
5. 新临时调整人物属性
————————————————————–
命令:
ChangeHumAbilityEX ①属性名称 ②操作符(+, =
,-)
③属性点 ④时间秒(0永久) ⑤下线保存(0不保存,默认)
参数:
①属性名称:
属性名称取属性表中的属性名
例子:
[@Test]
#IF
#ACT
ChangeHumAbilityEx 攻击上限 + 10
60秒
#SAY
MessageBox
你的攻击上限增加10点.60秒后恢复
#IF
#ACT
ChangeHumAbilityEx HP最大值百分比 +
10% 3秒
Toast
你的最大血量增加10%,持续3秒
6.
设置人物当前模式
————————————————————–
命令:
CHANGEMODE ①模式类型 ②开关(1为开,0为关)
③下线保存(0不保存,1保存)
参数:
①模式类型:1管理模式、2无敌模式、3隐身模式、4穿人穿墙
说明:
设置人物当前模式,人物进入管理模式后,可在玩家面板中找到“更多”按钮,
可对玩家进行一些管理操作,如飞到玩家身边、拉玩家到自己什么、查询装备等.
例子:
[@test]
#IF
#ACT
CHANGEMODE 1 1
CHANGEMODE 2 1
CHANGEMODE 3
1
CHANGEMODE 4 1
7. 设置人物当前模式Ex
————————————————————–
命令:
ChangeModeEx
①模式(1-24) ②时间(xx秒,xx小时)
③附加值 ④攻击时间(秒) ⑤下线保存(0不保存,默认)
参数:
①模式:
1=无敌 2=隐身 3=HP 4=MP 5=攻击力 6=魔法力 7=道术力 8=攻击速度 9=禁止攻击
10=锁定
11=
禁锢(释放一个类似困魔咒的光圈,敌对人物或怪物只能在这个圈子里移动,无法走出圈子外面,所有传送失效,不能小退)
12=
冰冻
13= 蛛网
14= 防麻痹
15= 防禁锢
16= 防冰冻
17= 防蛛网
18= 麻痹
19=
护身(参数3:掉蓝比例控制) 参数4=伤害吸收(设置数值除以100)
20=
吸血
21= 吸蓝
22=
隐身(类似隐身戒指)
23= 复活(参数4:填1屏蔽复活提示信息)
24=破复活
②时间:xx秒、xx分钟、xx小时,写0永久
说明:
第2个参数无敌,隐身,禁止攻击时没有使用.
如果是禁锢时,第3个参数表示禁锢范围 第4个参数 ,1表示不禁锢自己 2表示禁锢自己
0或空按之前的
例子:
[@Test]
#IF
#ACT
ChangeModeEx 1
60
#SAY
给你1分钟的无敌时间,好好利用哦!
#if
#act
ChangeModeEx 3
60 100
#say
1分钟内,血上限增加100
[@Main]
#if
#act
ChangeModeEx 10
88
SENDMSG 6
锁定88秒.
#ACT
ChangeModeEx 11 10 3
SENDMSG 6 你被禁锢10秒 范围3格
ChangeModeEx 12 10 5 3
;冰冻几率 N分之一 如果参数3是5
几率为5分之一,参数3是10,则记录是10分之一
SENDMSG 6 10秒内攻击目标,可以使目标冰冻,冰冻机率5(数字越大机率越低),冰冻时长3秒
ChangeModeEx 13 10 5 3
;蛛网几率 N分之一 如果参数3是5
几率为5分之一,参数3是10,则记录是10分之一
SENDMSG 6 10秒内攻击目标,可以使目标中蛛网,中蛛网机率5(数字越大机率越低),中蛛网时长3秒
ChangeModeEx 14 10
SENDMSG 6 10秒内可以防麻痹
ChangeModeEx 15 10
SENDMSG 6 10秒内可以防禁锢
ChangeModeEx 16 10
SENDMSG 6 10秒内可以防冰冻
ChangeModeEx 17 10
SENDMSG 6 10秒内可以防蛛网
ChangeModeEx 18 10 5 3
;麻痹几率
SENDMSG 6
10秒内攻击目标,可以使目标麻痹,麻痹机率5(数字越大机率越低),麻痹时长3秒
ChangeModeEx 19 10 50
SENDMSG 6 护身,扣除50%HP与50%MP有效10秒
ChangeModeEx 20 60 100 5000
;吸血几率 百分比
;吸血点数
万分比
;60秒内攻击目标,可以吸血吸血机率100(数字越大机率越高
100表示每次都会吸血)
;5000万分比代表吸血百分比50%(比如攻击伤害值是10000,50%的吸血比例,可以吸血5000)
ChangeModeEx 21 10 100 5000
;吸蓝几率 百分比
;吸蓝点数
万分比
SENDMSG 6 10秒内攻击目标,可以吸蓝,吸蓝机率100(数字越大机率越高
100表示每次都会吸蓝),5000代表吸蓝百分比50%(比如攻击伤害值是10000,50%的吸蓝比例,可以吸蓝5000)
ChangeModeEx 22 10
SENDMSG 6 10秒内对怪物隐身
ChangeModeEx 23 3600 3 1
SENDMSG 6 一个小时内可以复活3次
,并屏蔽复活提示
ChangeModeEx 24 3600
SENDMSG 6 一个小时内可以破复活
ChangeModeEx 11 20 2 1
sendmsg 5
你禁锢的是他人,没有禁锢自己
8. 调整游戏速度
—————————————————–
命令:
ChangeSpeed
①速度类型 ②速度值 ③有效时间(秒,空或0表示永久) ④下线保存(0不保存,1保存)
参数:
①速度类型:
1移动速度
2攻击速度
3施法速度
②速度值(-10和10之间 小于0为减速
等于0不变速)
[@main]
#IF
#ACT
CHANGESPEED 1 3
#SAY
移动速度在原有基础上增加3点
9. 百分比修改速度
——————————————————-
命令:
ChangeSpeedEX
①速度类型 ②速度值 ③有效时间(秒,空或0表示永久) ④下线保存(0不保存,1保存)
参数:
①速度类型 1=移动速度 2=攻击速度
3=魔法速度
②速度值 (大于0=加速 小于0=减速)
③有效时间秒(为空=表示不限制时间)
说明:
增量调整,同ChangeSpeed
例子:
[@main]
#ACT
CHANGESPEEDEX 1 50
10
#SAY
移动速度增加50%,持续10秒
10. 调整人物PK点数
——————————————————-
命令:
CHANGEPKPOINT 控制符(=,+,-) PK点数
例子:
==================================
;将人物的PK点数设置为指定点数,不能为负数
[@changepkpoint0]
#IF
#ACT
CHANGEPKPOINT
= 0
#SAY
你的PK点数已经清除
;将人物的PK点数加100点数,不能为负数
[@changepkpoint1]
#IF
#ACT
CHANGEPKPOINT
+ 100
#SAY
你的PK点数已经增加100点。
11. BONUSPOINT
——————————————————-
调整人物属性点:
BONUSPOINT ①控制符(=,+) ②点数
复位属性点数:
RESTBONUSPOINT
检查人物附加属性点数:
CHECKBONUSPOINT
①控制符(=,>,<) ②点数
注意:
使用此命令调整的是人物主属性上限,如果人物是战士则调整攻击上限,法师魔法上限,道士道术上限.
例子:
========================
[@BONUSPOINT1]
#IF
#ACT
BONUSPOINT + 1
#SAY
你的属性点已经加了1点。
11.
穿人穿怪
——————————————————-
命令:
THROUGHHUM
①穿透模式(0/1/2/3) ②有效时间(秒) ③对象(0当前人物 1自己宝宝) ④下线保存(0不保存,1保存)
参数:
穿透模式:0=恢复/1=穿人/2=穿怪/3=穿人穿怪
有效时间:时间(秒)
对象 :作用对象(0当前人物 1自己宝宝)
例子
=======================
[@MAIN]
#IF
#ACT
ThroughHum
3 60 0
SendMsg 5 人物60秒之内可随意穿人穿怪.
[人物] – 杀怪经验和爆率
人物杀怪经验和爆率
1.
设置杀怪经验倍数
————————————————-
命令:
KILLMONEXPRATE ①倍率值 ②有效时间(xx秒、xx小时) ③下线保存(0不保存,1保存)
参数:
倍率:为杀怪经验倍数,倍数除以100为真正的倍率(200为2倍经验,150为1.5倍)
注意:本命令是在当前已有的杀怪经验倍率上叠加,不是修改整个经验倍率!!
常量:
<$KILLMONEXPRATE> :
由本命令设置的杀怪经验倍数
<$KILLMONEXPRATETIME> :由本命令设置的杀怪经验有效时间(秒)
<$KILLMONEXPRATELEFTTIME>:由本命令设置的杀怪经验剩余有效时间(秒)
<$TOTALKILLMONEXPRATE> : 人物总杀怪经验倍数
例子:
========================
[@KILLMONEXPRATE]
#IF
#ACT
KILLMONEXPRATE 200 60
SENDMSG 6
您当前杀怪经验倍数为<$KILLMONEXPRATE>倍,有效时间<$KILLMONEXPRATETIME>秒。
2.
人物杀怪爆率倍数
————————————————-
命令:
KILLMONBURSTRATE ①倍率值 ②有效时间(xx秒、xx小时)
③下线保存(0不保存,1保存)
参数:
①倍率值:150是1.5被,200是2倍
②有效时间:默认秒,也可以写xx分钟、xx小时
③下线保存:人物下线后是否保存此设置,默认是0不保存,写1保存
注意:本命令是在当前已有的杀怪爆率上叠加,不是修改整个杀怪爆率!!
常量:
<$KILLMONBURSTRATE> :
由本命令设置的杀怪爆率倍数
<$KILLMONBURSTRATETIME> :由本命令设置的杀怪爆率有效时间(秒)
<$KILLMONBURSTRATELEFTTIME>:由本命令设置的杀怪爆率剩余有效时间(秒)
<$TOTALKILLMONBURSTRATE> : 人物总杀怪爆率倍数
例子:
#IF
#ACT
KILLMONBURSTRATE 200 60
SENDMSG 7
当前杀怪物爆率为:<$KILLMONBURSTRATE>倍,时长:60秒
[人物] – 攻击力
人物攻击力调整
1. 设置攻击力倍数(对人对怪)
————————————————-
命令:
POWERRATE ①倍率值 ②有效时间(秒) ③下线保存(0不保存,1保存)
参数:
倍率:为杀攻击力倍数,倍数除以100为真正的倍率(200为2倍攻击,150为1.5倍攻击)支持变量操作
常量:
<$POWERRATE> : 由本命令设置的攻击力倍数
<$POWERRATETIME>
:由本命令设置的攻击力倍数有效时间(秒)
<$POWERRATELEFTTIME>:由本命令设置的攻击力倍数剩余有效时间(秒)
<$TOTALPOWERRATE> :
人物总攻击力倍数
例子:
==========================================
[@POWERRATE]
#IF
#ACT
POWERRATE
1000 600
SENDMSG 0 您当前攻击力倍数为10倍,有效时间 600秒。
SENDMSG 0
您当前攻击力倍数<$POWERRATE>,当前攻击力倍数剩余时间<$POWERRATETIME>
2. 设置对怪攻击力倍数(对怪)
————————————————-
命令:
ATTACKMONPOWERRATE ①倍率值 ②有效时间(秒) ③下线保存(0不保存,1保存)
参数:
倍率:为杀攻击力倍数,倍数除以100为真正的倍率(200为2倍攻击,150为1.5倍攻击)支持变量操作
常量:
<$ATTACKMONPOWERRATE> : 由本命令设置的对怪攻击力倍数
<$ATTACKMONPOWERRATETIME>
:由本命令设置的对怪攻击力倍数有效时间(秒)
<$ATTACKMONPOWERRATELEFTTIME>:由本命令设置的对怪攻击力倍数剩余有效时间(秒)
<$TOTALATTACKMONPOWERRATE> :
人物总对怪攻击力倍数
例子:
==========================================
[@POWERRATE]
#IF
#ACT
ATTACKMONPOWERRATE
1000 600
SENDMSG 0 您当前对怪攻击力倍数为10倍,有效时间 600秒。
SENDMSG 0
您当前对怪攻击力倍数<$ATTACKMONPOWERRATE>,当前攻击力倍数剩余时间<$ATTACKMONPOWERRATETIME>
[人物] – 离线挂机
离线挂机命令
1. 脚本控制人物上线
—————————————————————-
命令:
角色名.OnLine
参数:
无
说明:
用脚本命令让人物数据库中的一个角色上线进入游戏,用此命令上线的角色为离线状态
注意:使用此命令只是请求人物上线,命令调用完并不能保证人物已上线!
如果需要对人物上线后进行操作,请在登录触发[@Login]中执行
2. 脚本控制人物下线
—————————————————————-
命令:
角色名.OffLine
①上线等待(秒)
参数:
①上线等待(秒):上线等待填0或不写,人物永久下线,写了就等待写的秒数后自动再上线.
说明:
用脚本命令让角色下线,并可以设置再次上线时间
3. 检测人物是否处离线状态
—————————————————————-
命令:
角色名.CheckLeaveline
参数:
无
4. 检测人物是否离线挂机
—————————————————————-
命令:
角色名.CheckAutoPlayGame
参数:
无
说明:
检测人物是否是在挂机状态
5. 脚本控制人物加入队伍
—————————————————————-
命令:
角色名.RequestJoinTeam
①队长名字
参数:
①队长名字:
说明:
用脚本命令让角色加请求加入队长的队伍
6. 脚本控制人物开始挂机
—————————————————————-
命令:
角色名.StartAutoPlayGame
①地图名称 ②地图坐标X
③地图坐标Y ④范围
参数:
①地图名称:挂机地图,不写在当前地图挂机
②地图坐标X:挂机区域坐标X,不写找随机点挂机
③地图坐标Y:挂机区域坐标Y,不写找随机点挂机
④范围:挂机区域范围,不写找随机点挂机
说明:
用脚本命令让指定角色到指定地图挂机
7. 脚本控制人物停止挂机
—————————————————————-
命令:
角色名.StopAutoPlayGame
参数:
无
说明:
用脚本命令让指定角色停止挂机
8. 挂机时间
—————————————————————-
8.1
命令:
AddAHtime ①时间(结尾可写时分秒) ②客户端提示(默认提示,写0不提示)
说明:
增加人物挂机时间
例子:
[@main]
#IF
#ACT
AddAHTime 1小时 ;
增加人物1小时挂机时间
8.2
命令:
ReduceAHtime ①时间(结尾可写时分秒)
②客户端提示(默认提示,写0不提示)
说明:
减少人物挂机时间
[@main]
#IF
#ACT
ReduceAHTime 1小时 ; 减少人物1小时挂机时间
8.3
常量:
<$LEFTAHTIME>
说明:
人物当前剩余挂机时间,单位:秒
[@main]
#IF
#ACT
人物当前剩余挂机时间:<$LEFTAHTIME>秒
[人物] – 全体操作
1. 所有在线玩家执行
—————————————————————-
命令:
AllPlayer ①脚本命令 ②脚本参数…
说明:
让所有在线人物执行指定的脚本命令
例子:
[@main]
#IF
#ACT
AllPlayer give 金币 5000
;给所有在线玩家加5000金币
2. 人物附近玩家执行客户端命令
—————————————————————-
命令:
Around
①客户端命令
说明:
让当前人物所在坐标附近的所有玩家执行客户端命令
例子:
[@main]
#IF
#ACT
Around PlaySound 无效音 ;当前人物周围的玩家客户端播放一次无效音
Around Toast
<$USERNAME>发送一条汽泡提示
Around Screffects 1 60 0.3 0.3 1.0 3 0 1.0 1 ;当前人物周围玩家客户端播放一个动画
[人物] – 分身
人物分身
1. 人物分身成人形怪
———————————————————–
命令:
Copy ①位置X ②位置Y ③属性比例 ④分身名字
⑤刷新触发段(QF) ⑥死亡触发段(QF)
参数:
①位置X:人物分身位置X(当前地图)
②位置Y:人物分身位置Y(当前地图)
③属性比例:空或1.0表示不变(默认),
大于1.0高于人物属性多少倍,小于1.0低于人物属性多少倍
④分身名字:生成分身的名字(空或写0是人物名字)
⑤刷新触发段:在QFunction-0.txt,分身刷新的触发字段,可用M.操作分身
⑥死亡触发段:在QFunction-0.txt,分身死亡时触发字段,(人物和分身在同一地图才能触发)
说明:
分身继承人物当前的穿戴、属性、BUFF、称号等所有数据
例子:
==========================
[@main]
#IF
#ACT
Copy <$X> <$Y> 1.0
<$USERNAME>の心魔 @1号心魔生成触发 @1号心魔死亡触发
QFunciton-0.txt
[@1号心魔生成触发]
#IF
#ACT
M.AddHpPer – 50 ; 分身血量减半
;M.ChangeAttrScale = 100
SendMsg 生成分身心魔:M.<$USERNAME>
[@1号心魔死亡触发]
#IF
#ACT
SendMsg
M.<$USERNAME>死亡
2. 人物分身成宝宝
———————————————————–
命令:
RecallSelf ①有效时间(秒) ②数量 ③属性比例 ④颜色 ⑤衣服 ⑥武器 ⑦衣服特效 ⑧武器特效 ⑨血量
⑩BUFF
(11)位置方式 (12)出现特效
参数:
①有效时间:分身有效时间(秒),填0表示永久
②数量:召唤多少个分身
③属性比例:继承人物属性百分比,写0保持1:1比列,其他写多少就是百分之多少,例如:写150,就是150%(1.5倍)
④颜色:分身颜色(0-255;0不改变颜色)
⑤衣服:改变分身衣服外观(0或空为不改变)
⑥武器:改变分身武器外观(0或空为不改变)
⑦衣服特效:改变分身衣服外观特效(0或空为不改变)
⑧武器特效:改变分身武器外观特效(0或空为不改变)
⑨血量:分身血量数值(填0表示按参数3的,填的数字是多少分身总血量就是多少)
⑩BUFF:
BUFF名称或ID,多个BUFF用#号连接,填0表示没有
(11)位置: 0离人物最近的空位(默认) 1人物附近随机(后面需指定范围,见示例)
2定点(后面需要继续指定坐标,详见示例)
(12)分身出现时的特效名称或ID(来自特效表)
功能:
召唤自己分身作为宝宝帮自己打怪
注意:
分身不能保存,下线立即消失
分身数量常量:
<$CLONEPLAYERCNT>
例子:
[@召唤自己分身]
#IF
#ACT
RecallSelf 60 3 200 0 天魔神甲 裁决之杖
sendmsg 6
召唤3个分身帮助自己作战1分钟.继承2倍人物属性
生成位置例子:
RecallSelf 60 3 0 0 0 0 0 0
0 0 1#9 // 生成3个分身,在人物9×9范围内随机出现
RecallSelf 60 1 0 0 0 0
0 0 0 0 2#333#333 // 在当前地图333,333出生成1个分身
杀死自己分身命令
命令:KILLCOPYSELF
例子:
[@杀死分身]
#act
KILLCOPYSELF
sendmsg
6 杀死自己的分身!
[人物] – 其它操作
其它人物操作
1. 让人物做某个动作
———————————————————–
命令:
DoAction ①动作名 ②方向(0-7,-1或不填默认当前方向)
参数:
①动作名:”Mir200/Envir/Data/SK扩展表格/动作.csv”表中动作名称
说明:
调用此命令后,人物会摆出对应的动作.
2. 复活人物
———————————————————–
命令:
ReAlive
参数:
无
说明:
人物原地复活
复活触发:
QF:
[@Revival]
相关常量:
<$REVIVALTIME>
人物可再次复活的时间间隔(毫秒),这个时间值由属性”复活CD时间”决定
例子:
3. 人物禁止上线(封角色)
———————————————————–
命令:
FBDOnline ①角色名 ②封号时间(默认分钟,写0或不填解除封号)
参数:
①角色名:要封号的角色名
②封号时间:默认是分钟,也可以写xx小时
说明:
调用此命令后,如果封号人物在线,则会强制将其踢下线
4. 人物禁言
———————————————————–
命令:
ShutUp ①角色名 ②禁言时间(默认分钟,写0或不填解除禁言)
参数:
①角色名:要封号的角色名
②禁言时间:默认是分钟,也可以写xx小时
5. 飞到指定人物附近
———————————————————–
命令:
FlyTo ①玩家名称
说明:
当前任务飞到指定的玩家附近
6.
指定人物拉到自己附近(拉人)
———————————————————–
命令:
Pull ①玩家名称
说明:
将指定的人物拉到自己附近
7. 检测人物是否站着不动
———————————————————–
命令:
CheckHumStand
示例:
[@main]
#IF
CheckHumStand
#ACT
Toast 人物当前站着不动
#ELSEACT
Toast
人物在移动或在攻击
清除人物登录卡死
———————————————————–
命令:
ClearGateLogon ①角色名
说明:
当有角色登录时提示已在xx区服登录,而xx区服并不存在或已关闭,此时可用此命令清除卡死.
注意:
如果提示已登录的区服存在且正常,请谨慎调用此命令,因为清除一个区服的登录,
意味着人物可以同时登录两个区,存在刷装备风险.
切记不要随意使用该命令!!
[BUFF] – 操作
BUFF命令
1. 给当前对象加Buff
—————————————————————-
命令:
AddBuff ①BUFF名称 ②属性名:属性值(无写0) ③持续时间(秒) ④BUFF标志
⑤作用周期
⑥特效ID#偏移X#偏移Y
参数:
①BUFF名称:
记录在BUFF表中的BUFF名称
(BUFF表:”Mir200/Envir/Data/BUFF.csv”)
如果一个BUFF只是加属性,无需外观特效,BUFF名称可以用通用名:属性改变
②BUFF属性:
一个BUFF最多可以给4个属性
,每个属性用#号分隔,写法如下:
属性名1:值1#属性名2:值2#属性名3:值3#属性名4:值4
③持续时间:
BUFF存在多长时间后自动消失,不写或写0,表示永久.
(默认秒,也可以写xx毫秒、xx分钟、xx小时)
④BUFF标志:
BUFF生成时,会读取BUFF表中的标志,然后再追加此参数BUFF标志.如果没有需要追加的,可写0
点击查看所有BUFF标志
⑤作用周期:
格式1:作用周期
设置BUFF定期发作的时间间隔,每次发作将执行参数2中设置的属性值更新
(默认秒,也可以写xx毫秒、xx分钟、xx小时)
格式2:作用周期#显示周期
只有火炙、冰霜、电击需要设置显示周期,一般设置为90(毫秒),其它BUFF可不填
⑥特效ID:
填写获得BUFF后在人物身上的外观特效(填特效表ID),偏移X、偏移Y微调选填
注意:
AddBuff命令加的特效,将在BUFF时间内一直循环播放,
如果需要控制播放次数,请调用加人物特效命令
说明:
给当前人物加一个BUFF,如果BUFF表里配置了这个BUFF图标,则会在界面上显示BUFF属性和剩余计时.
关于BUFF下线保存:
所给BUFF下线是否保存,取决于以下两点:
1.
BUFF表中对BUFF标志的设置:如果有“不保存”标志,则BUFF在人物下线时不保存,如果有“下线保存”标志,则下线保存.
2. 本命令参数4追加的BUFF标志中:如果有“不保存”,则线下不保存,如果有“下线保存”标志,则下线保存.
注意:如果BUFF表没设置下线保存,参数4也没有设置下线保存,则BUFF下线不保存,人物下线所给BUFF消失.
例子:
==================================
[@main]
#IF
#ACT
AddBuff 拖影 移动速度:+3#攻击上限:+2
7.5秒
AddBuff 火炙 0 2.6秒 0 0#90毫秒
AddBuff 属性改变 HP百分比:-1% 5秒 0
1秒
2. 给指定对象加Buff
—————————————————————-
AddObjBuff ①对象类型 ②ObjID ③BUFF名称 ④持续时间 ⑤BUFF属性
参数:
①对象类型:1玩家 2怪物 3NPC
②ObjID:对象的ObjID,点击查看如何取得对象的ObjID
③BUFF名称:
记录在BUFF表中的BUFF名称 (BUFF表:”Mir200/数据库/更多/BUFF/BUFF登记.csv”)
如果一个BUFF只是加属性,无需外观特效,BUFF名称可以写:属性改变
④持续时间:
BUFF存在多长时间后自动消失,默认是秒,也可以写xx毫秒、xx分钟、xx小时
⑤BUFF属性:
一个BUFF最多可以给4个属性,每个属性用#号分隔,写法如下:
属性名1:值1#属性名2:值2#属性名3:值3#属性名4:值4
说明:
给指定对象增加一个BUFF,对象可以是玩家、怪物或NPC
例子:
AddObjBuff 2 <$SLAVEIDTOOBJID(宝宝ID)>
属性改变 0 攻击上限:10
3. 移除当前对象Buff
—————————————————————-
命令:
RemoveBuff
①BUFF名称 ②BUFF属性(选填)
③BUFF源(选填)
参数:
①BUFF名称:BUFF表中的BUFF名称
②BUFF属性:当有同名BUFF存在时,需要填属性进一步确定移除哪个BUFF
③BUFF源:填写BUFF源进一步确定移除哪个BUFF
说明:
移除当前人物身上的一个BUFF
BUFF一般在时间到后会自动移除,如果想提前移除BUFF可以调用此命令
4. 移除当前对象Buff(唯一ID)
—————————————————————-
命令:
RemoveBuffByGenID ①BUFF唯一ID
参数:
①BUFF唯一ID:点击查看获取BUFF唯一ID
说明:
通过BUFF唯一ID精准移除BUFF
5. 移除当前对象所有Buff
—————————————————————-
命令:
RemoveBuffsAll
参数:
无
说明:
一次性移除当前人物身上所有BUFF
6. 调整当前对象Buff时间
—————————————————————-
命令:
ChangeBuffTime
①BUFF名称 ②操作符(+,-,=) ③时间
④BUFF来源(选填) ⑤属性名(选填)
参数:
①BUFF名称:要调整的BUFF名称
说明:
加减当前人物身上指定BUFF的时间
7. 检测当前对象Buff
—————————————————————-
命令:
CheckBuff ①BUFF名称 ②属性(选填) ③BUFF来源(选填,见标志大全)
参数:
①BUFF名称:要检测的BUFF名称
②属性(选填):如果不写属性,则检测所有同名BUFF,
写了属性,则检测指定属性的BUFF,当有多个同名BUFF叠加时
说明:
检测人物身上是否有指定BUFF
例子:
[@main]
#IF
CheckBuff
拖影
#ACT
你身上有拖影BUFF
#ELSEACT
你身上有没拖影BUFF
8. 设置BUFF的CD时间
—————————————————————-
命令:
SetBuffCDTime ①BUFF名称(或唯一ID) ②CD时间(毫秒)
参数:
①BUFF名称(或唯一ID):点击查看如何获得唯一ID
说明:
设置人物身上指定BUFF的CD时间,对于有CD时间的BUFF,只有在其CD时间结束后,BUFF才生效
相关常量:
<$BUFFCDTIME(BUFF名或唯一ID)> 取BUFF当前CD时间,毫秒
<$BUFFCDTIMEMAX(BUFF名或唯一ID)> 取BUFF最大CD时间,毫秒
对象BUFF常量
<$BUFFNAMES>
取身上所有BUFF名字
<$BUFFGENIDS>
取身上所有BUFF唯一ID
<$BUFFATTRS(BUFF名或唯一ID)> 取指定BUFF属性值
[NPC] – 临时创建
临时NPC
1.
建立临时NPC
—————————————————–
格式: CreateNPC 参数1 参数2 参数3 参数4 参数5 参数6 参数7
参数8
参数1:NPC名字
参数2:地图编号
参数3:坐标X(-1时随机坐标)
参数4:坐标Y(-1时随机坐标)
参数5:外观
参数6:脚本文件名称
参数7:脚本文件是否要加上地图名称
参数8:NPCID(不要跟Cfg_npclist.xls表ID重复)
注意:
脚本文件必须在Market_Def目录中.
如:首先在Market_Def中建立一个叫测试-3.txt的脚本文件.
;例
[@固定坐标创建NPC]
#IF
#ACT
CreateNPC 测试 3 330 330 8 测试-3 0
#SAY
通过脚本建立了一个NPC.
[@随机坐标创建NPC]
#IF
#ACT
CreateNPC 测试 3 -1 -1 8 测试 1
#SAY
通过脚本建立了一个NPC 随机坐标
删除一个NPC
2.
删除临时NPC
—————————————————–
命令:
DELNPC NPC名字 地图文件名称(该参数可以为空,为空表示所有地图的)
例子:
[@删除所有地图的]
#IF
#ACT
DelNpc 测试
[@删除某个地图的]
#IF
#ACT
DelNpc 测试 3
[对象] – ObjID
对象ObjID
什么是对象?
————————————————————
在本引擎中,对象就是地图上的一个人物、怪物、NPC、技能、摊位、光源等.
还有地面上的物品也是对象(注意:背包、仓库、身上物品不是对象)
对象类型
————————————————————
对象类型总共有人物、怪物、NPC、技能、摊位、光源、物品这几大类,
在需要填写对象类型的命令中,可以取以下取值:
中文值 数字值
说明
================================================
玩家 1
/* 玩家对象 */
怪物
2
/* 怪物对象 */
NPC
3
/* NPC对象 */
物品
4
/* 物品对象(地面上的物品) */
技能
5
/* 技能对象(正在飞行中的技能,或地面上的技能) */
光源
6
/* 光源对象 */
摊位 7
/* 摊位对象 */
对象ObjID
————————————————————
ObjID是对象在当前地图上的唯一ID.
人物的ObjID就是人物的玩家ID,从创建人物一直保持不变,
其它对象的ObjID都是临时生成的,换地图就会变化,但在当前地图一直保持唯一.
通过对象类型+ObjID就可以精确定位到地图上的人物、怪物或NPC,然后可以对其进行更多操作,
这些操作包括让对象说话、修改对象属性、移动、增减BUFF、设置追踪、攻击以及执行任意命令等.
如何获取对象ObjID?
方法1:取自身范围内对象ObjID
———————————————-
命令:
<$RangeObjIDs(①左上X ②左上Y
③右下X ④右下Y ⑤对象类型)>
参数:
①左上X ②左上Y ③右下X
④右下Y:地图范围坐标
⑤对象类型:要获得哪种对象类型的ObjID (1玩家 2怪物 3NPC 4物品
5技能)
说明:
得到的ObjID以空格分隔,可以用<$FIELDCOUNT>取总个数,用<$FIELDVAL>取出每项
注意:此命令只能获取当前地图范围内对象ObjID
取附近怪物ObjID
命令:
<$NearMons
①范围>
例子:
<$NearMons 3> ;取自身3×3范围内所有怪物ObjID
<$NearMons 5> ;取自身5×5范围内所有怪物ObjID
<$FirstNearMon 怪物名称 13 13> ; 取自身13×13范围内第一个怪的objID
方法2:攻击触发对象ObjID常量
———————————————-
<$CURRRTARGETOBJTYPE>
当前攻击对象类型
<$CURRRTARGETOBJID> 当前攻击对象ObjID
方法3:通过地图坐标获得对象ObjID
———————————————-
<$MapPosObjID(①对象类型 ②X ③Y)> ; 获取指定位置的对象objID
例子:
;
获取当前地图(333,333)坐标处怪物的ObjID,如果那个位置没有怪物,返回0
[@main]
#IF
#ACT
<$MapPosObjID(怪物 300
300)>
方法4:某些QF回调函数段会由系统传去对象类型和ObjID
———————————————-
例如:[@SelMonSkillX
%objtype %objid]
[对象] – ObjID通用操作
置对象属性和攻击
本引擎可以通过操作地图上任何一个怪物、人物以及NPC,这些统称为:“对象”.
操作对象需要知道对象类型和对象ObjID,关于如何获得这两个参数查看:获取对象ObjID
以下列举了一些常用的对象操作,除此外,可通过引擎多级脚本机制,在对象上执行所有脚本命令:
1. 可以用RunScriptOnObj命令执行对象的所有脚本命令操作
2. 可以用<$OBJVAL>获取对象所有常量值.
1. 增加对象属性值
——————————————————
命令:
AddObjAttr ①对象类型 ②ObjID ③属性名1:值1 属性名2:值2
…
参数:
①对象类型:1玩家 2怪物 3NPC 4物品 5技能
②ObjID: 查看ObjID
③属性: 以属性名:值的格式设置多个属性,每个以空格分隔
说明:
给指对象增加属性,所加属性和自身已有属性叠加
注意:此命令是临时增加对象属性值,对象跨地图、buff更新等情况失效
如需长久可控的给对象加属性,请使用AddObjBuff命令
2.
设置对象属性值
——————————————————
命令:
SetObjAttr ①对象类型 ②ObjID ③属性名1:值1 属性名2:值2
…
参数:
①对象类型:1玩家
2怪物 3NPC 4物品 5技能
②ObjID: 查看ObjID
③属性: 以属性名:值的格式设置多个属性,每个以空格分隔
说明:
不叠加属性,直接设置,和AddObjAttr一样,对象跨地图后或换装备后所有属性重置
3. 取对象属性值
——————————————————
命令:
<$ObjAttr(①对象类型 ②ObjID
③属性名称)>
参数:
①对象类型:1玩家 2怪物 3NPC 4物品 5技能
②ObjID: 查看ObjID
③属性名称:
属性表中的属性名称
说明:
可以取到任意对象的任意属性值
4. 取对象主人类型
——————————————————
命令:
<$ObjMasterType(①对象类型
②ObjID)>
参数:
①对象类型:1玩家 2怪物 3NPC 4物品 5技能
②ObjID:
说明:
如果对象没有主人,返回空,有主人则返回主人的对象类型
5. 取对象主人ObjID
——————————————————
命令:
<$ObjMasterID(①对象类型
②ObjID)>
参数:
①对象类型:1玩家 2怪物 3NPC 4物品 5技能
②ObjID:
说明:
如果对象没有主人,返回空,有主人则返回主人的ObjID
6.
设置对象死亡
——————————————————
命令:
SetObjDie ①对象类型 ②ObjID
参数:
①对象类型:1玩家 2怪物 3NPC 4物品 5技能
②ObjID:
说明:
真接将指定对象设死
7. 检测对象是否死亡
——————————————————
命令:
CheckObjDie ①对象类型
②ObjID
参数:
①对象类型:1玩家 2怪物 3NPC 4物品 5技能
②ObjID:
说明:
检测对象是否已经死亡
8. 指定对象攻击目标
——————————————————
命令:
SetObjAttack
①当前对象类型 ②当前对象ObjID ③目标对象类型
④目标对象ObjID
参数:
①当前对象类型:指定要去攻击的对象类型(1玩家 2怪物)
②当前对象ObjID:指定要去攻击的对象ObjID
③目标对象类型:指定被攻击对象的类型
④目标对象ObjID:指定被攻埚对象的ObjID
说明:
调用此命令后,指定的对象会追踪并攻击设定的目标
9. 给对象加标志
——————————————————
命令:
AddObjFlag ①对象类型 ②ObjID
③对象标志
参数:
①对象类型:1玩家 2怪物 3NPC 4物品 5技能
②ObjID:
③对象标志:看标志大全对象标志,多个对象标志用竖线|连接
说明:
增加对象一个或多个特性
10. 去除对象标志
——————————————————
命令:
RemoveObjFlag ①对象类型 ②ObjID
③对象标志
参数:
①对象类型:1玩家 2怪物 3NPC 4物品 5技能
②ObjID:
③对象标志:看标志大全对象标志
说明:
移除对象一个或多个特性
11.
给对象头顶加飘字
——————————————————
命令:
AddFloatString ①对象类型 ②objID ③颜色
④时间(毫秒) ⑤方向 ⑥显示 ⑦内容
参数:
①对象类型:1玩家 2怪物 3NPC
②ObjID:
③颜色:可以写双颜色
④时间(毫秒):飘字持续时间
⑤方向:0上飘 1受击方向飘
⑥显示:0正常 1双颜色交替
⑦内容:飘字内容
说明:
例子:
[@main]
#IF
#ACT
AddFloatString 1
<$MYID> 200-250 1500 0 1 飘字飘字 ; 给自己头顶加双色交替飘字
12.
增加对象存续时间
——————————————————
命令:
AddObjExistTime ①对象类型 ②ObjID
③时间
参数:
①对象类型:1玩家 2怪物 3NPC
②ObjID:
③时间:可以写xx秒、xx分钟、xx小时
说明:
增加对象存续时间,如果对象本来是永久存续的,则无效
13.
设置对象存续时间
——————————————————
命令:
SetObjExistTime ①对象类型 ②ObjID
③时间
参数:
①对象类型:1玩家 2怪物 3NPC
②ObjID:
③时间:可以写xx秒、xx分钟、xx小时
说明:
只接设置对象存续时间,如果对象本来是永久存续的,则设置后开始倒计时存续,
当存续时间为0时,对象自动移除.
14.
让对象执行脚本命令
——————————————————
命令:
RunScriptOnObj
①对象类型 ②ObjID ③脚本命令
参数…
参数:
①对象类型:1玩家 2怪物 3NPC
②ObjID: 对象的ObjID
③脚本命令:
任意脚本命令加后面参数
说明:
如果已知对象的ObjID,则可以让这个对象执行任意命令
15.
取对象任意常量值
——————————————————
命令:
<$OBJVAL(①对象类型 ②ObjID ③常量名
参数…)>
参数:
①对象类型:1玩家 2怪物 3NPC
②ObjID: 对象的ObjID
③常量名:
任意脚本常量加后面参数
说明:
如果已知对象的ObjID,则可以取到这个对象的任意常量值
例子:
[@main]
#IF
#ACT
<$OBJVAL(怪物
12 ATTR 攻击上限)> ;
取ObjID为12的<$ATTR(攻击上限)>常量值
[怪物] – ObjID怪物操作
怪物和宝宝的ObjID
什么是ObjID?
ObjID是怪物在当前地图上的唯一ID(注意不是怪物表中的ID,且换地图后怪物ObjID重新分配),
如果地图上同时存在相同名字的怪物或宝宝,通过名字是无法区别的,因此这里就需要到ObjID.
通过ObjID可以精确控制地图上的所有人物、怪物、NPC(它们都有ObjID),能实现非常强大的功能。
通过ObjID的相关操作
1. 调整怪物属性(包括宝宝,宝宝也是怪物)
—————————————————————-
命令:
ChangeMonAttr ①ObjID ②属性名 ③操作符(+,-,=
) ④操作值
⑤有效时间(xx小时,xx分钟,写0永久) ⑥下线保存
参数:
①ObjID:
怪物或宝宝的ObjID
②属性名:要修改哪个属性,填写属性表中的属性名称
③操作符:+加属性
-减属性 = 直接设置属性
④操作值:属性值,支持小数
以下是选填参数:
⑤有效时间:0永久(默认),其他时间可写xx分钟
xx小时,到时间后加的这条属性自动撤回
⑥下线保存: 0不保存(默认) 1下线保存,(注意:下线保存只对宝宝有效)
例子:
—————————–
给自己7×7范围内第一个怪物稻草人的血量加1000
[@main]
#IF
#ACT
set %objid
<$FirstNearMon(稻草人 7 7)>
ChangeMonAttr %objid HP最大值 + 1000
2.
增加怪物标志
—————————————————————-
命令:
AddMonFlag ①ObjID ②怪物标志
参数:
①ObjID:
怪物或宝宝的ObjID
②怪物标志:标志大全查看怪物标志
说明:
增加一项或多项(用竖线|连接)怪物特性
3.
删除怪物标志
—————————————————————-
命令:
RemoveMonFlag ①ObjID ②怪物标志
参数:
①ObjID:
怪物或宝宝的ObjID
②怪物标志:标志大全查看怪物标志
注意:
删除一项或多项(用竖线|连接)怪物特性
4.
设置怪物AI状态
—————————————————————-
命令:
SetMonFSM ①ObjID ②AI状态
参数:
①ObjID:
怪物或宝宝的ObjID
②AI状态:
0关闭 1开启 2追踪 3跟随 4攻击 5躲避 6寻路 7边打边寻路
8跑回城 9? 10? 11寻路指定点 12回守护点
5.
设置怪物宝宝叛变几率
—————————————————————-
命令:
SetMonBetrayProb ①ObjID ②百分比几率
参数:
①ObjID:
怪物或宝宝的ObjID
②百分比几率:
取值范围:0%-100%
注意:百分号不能省掉,如要表示千分之1,可以写0.1%
说明:
如果ObjID对应的怪物还没有被招,则将叛变几率设置在这个怪身上,当有人招它时,这个几率仍然生效.
提示:
怪物宝宝叛变,系统每1分钟判定一次.
如果宝宝叛变了,可通过QF:[@MobTreachery]触发进行更多操作.
6.
让怪物说话
—————————————————————-
命令:
MonSay ①ObjID ②说话内容
参数:
①ObjID:
怪物的ObjID
②说话内容:80字以内
例子:
set %objID
<$FirstNearMon(半兽人)> ;
取附近离我最近的半兽人怪物的ObjID
MonSay %objID 我是半兽人 ;
附近离人物最近的半兽人头顶显示说话内容
怪物常量
—————————————————————-
取怪物名字 <$MONNAME(①ObjID ②是否取显示名> 参数②:0或不填取怪物原名, 1取怪物显示名称
取怪物当前经验值 <$MONCUREXP(ObjID)>
取怪物升级经验值 <$MONMAXEXP(ObjID)>
[对象] – 常量
对象常量
通过ObjID可以取到大量对象相关信息
参数说明:
①对象类型
中文值 数字值
说明
================================================
玩家 1
/* 玩家对象 */
怪物
2 /* 怪物对象 */
NPC
3 /* NPC对象 */
物品
4 /* 物品对象(地面上的物品,不是背包或身上的) */
技能
5 /* 技能对象(正在飞行中的技能,或地面上的技能) */
光源
6 /* 光源对象 */
摊位 7
/* 摊位对象 */
②ObjID
对象当前地图上的唯一ID.
人物的ObjID就是人物的玩家ID,从创建人物一直保持不变.
其它对象的ObjID都是临时生成的,换地图就会变化,但在当前地图一直保持唯一.
| 常量 | 说明 |
| <$OBJNAME(①对象类型 ②ObjID)> | 取对象真实名称 |
| <$OBJSHOWNAME(①对象类型 ②ObjID)> | 取对象显示名称 |
| <$OBJDBIDX(①对象类型 ②ObjID)> | 取对象的数据库唯一ID 如果对象是怪物,则取出的是怪物表中ID字段值 |
| <$OBJHPPER((①对象类型 ②ObjID)> | 取对象血量百分比 |
| <$OBJJOB((①对象类型 ②ObjID)> | 取对象职业 |
| <$OBJX((①对象类型 ②ObjID)> | 取对象位置X |
| <$OBJY((①对象类型 ②ObjID)> | 取对象位置Y |
| <$OBJATTR(①对象类型 ②ObjID ③属性名称)> | 取对象任意属性值(包括当前血量、攻击、防御等) |
| <$OBJEXISTTIME(①对象类型 ②ObjID)> | 取对象剩余时间(毫秒),为0表示永久存在 |
| <$OBJDISP(①对象类型 ②ObjID)> | 取对象和自己距离(像素,一般用作2D判断) |
| <$OBJDISM(①对象类型 ②ObjID)> | 取对象和自己距离(米,一般用作3D判断) |
| <$OBJDIS(①对象类型 ②ObjID)> | 取对象和自己距离(地图格子数,2D和3D通用) |
| <$OBJAroundAlly(①对象类型 ②ObjID ③N格)> | 取对象周围NxN格盟友个数 |
| <$AROUNDOBJCOUNT((①对象类型 ②N格)> | 自身附近NxN格指定对象类型个数 |
| <$OBJVAL(①对象类型 ②ObjID ③常量名 参数…)> | 取对象任意指定常量值 |
另外:
对于人物对象,当通过<$OBJNAME>取到人物名字后,
可以通过多级脚本取人物的所有信息,以及执行人物任意脚本命令.
例如:
[@test %objtype %objid]
#IF
#ACT
set
%targetname <$OBJNAME(%objtype %objid)>
log 目标人物位置:
%targetname.<$X>,%targetname.<$Y>
log
目标人物变量S0内容: %targetname.<$STR(S0)>
<$OBJVAL(怪物 %objid X>>
// 取对象X坐标
<$OBJVAL(怪物 %objid USERNAME>> // 取对象名字
[技能] – 学习/经验
技能常量:
<$SKILLEXP(技能名)>
;技能当前修炼点
<$SKILLMAXEXP(技能名)> ;技能下一级修炼点
<$SKILLLEVEL(技能名)>
;技能当前等级
<$SKILLMAXLEVEL(技能名)> ;技能最高可升等级
<$SKILLTIME(技能名)> ;技能释放后经历的时间,单位:秒,如果为0,则表示技能还没释放
1. 增加人物技能
—————————————————-
命令:
AddSkill
①技能名称 ②等级(选填)
参数:
①技能名称:技能表中的技能名称
②等级:给人物加技能同时指定技能等级,不填默认1级
例子:
[@addskill]
#IF
#ACT
ADDSKILL
雷电术
#SAY
你已经练习雷电术了
1.1. 增加技能经验
—————————————————-
命令:
AddSkillExp
①技能名称 ②经验值
例子:
[@main]
#IF
#ACT
AddSkillExp 雷电术
10
#SAY
雷电术增加10点经验
1.2. 判断能否增加技能经验
—————————————————-
命令:
CheckCanAddSkillExp ①技能名称
说明:
直接调用AddSkillExp加技能经验,引擎是直接加经验的(不考虑技能修炼等级).
如果需要控制技能修炼等级,就需要先调用本命令判断一下,再给技能经验.
例子:
[@main]
#IF
NOT CheckCanAddSkillExp 雷电术
#ACT
未达到技能修炼等级
BREAK
#IF
#ACT
AddSkillExp 雷电术
10
#SAY
雷电术增加10点经验
2. 删除指定技能
—————————————————-
命令:
DelSkill ①技能名称
参数:
①技能名称:要从人物身上删除的技能名称,取技能表中的技能名称
例子:
[@delskill]
#IF
#ACT
DELSKILL
雷电术
#SAY
你的雷电术已删除了
3. 调整技能点数
—————————————————-
命令:
CHANGETRANPOINT ①技能名称
②控制符(+,-,=) ③点数
或
ChangeSkillExp ①技能名称 ②控制符(+,-,=) ③点数
参数:
①技能名称:要调整的技能名称
②控制符(+,-,=):加点数,减点数,直接设置点数
③点数:技能修炼点数
[@CHANGETRANPOINT]
#IF
#ACT
CHANGETRANPOINT 雷电术
+ 10
SENDMSG 5 你的雷电术增加10点熟练度
4. 检查技能等级
—————————————————-
命令:
CHECKSKILL ①技能名称 ②检测符(<,>,=) ③等级
参数:
①技能名称:要检查的技能名称
②检测符(<,>,=
):比较符
③等级:技能等级
例子:
[@main]
#IF
CHECKSKILL 雷电术 = 1
#ACT
ADDSKILL
雷电术
#ELSEACT
SENDMSG 6 你已经学习了雷电术
5. 检查人物是否学习了某项魔法
—————————————————-
命令:
CheckMagicName ①技能名称
参数:
①技能名称:要检查的技能名称
例子:
[@main]
#IF
CheckMagicName
烈火剑法
#SAY
你已经学会了烈火剑法.
6. 清除人物非本职业的所有技能
—————————————————-
命令:
DELNOJOBSKILL
参数:
无
例子:
[@clearskill]
#IF
#ACT
DELNOJOBSKILL
#SAY
你的非法技能已经清除了
7. 清除人物的所有技能
—————————————————-
命令
CLEARSKILL
参数:
无
例子:
[@clearskill]
#IF
#ACT
CLEARSKILL
#SAY
你的所有技能已经清除了
[技能] – 启用/禁用
启用/禁用技能
1.
禁用指定技能
——————————————————
命令:
DisableSkill ①技能名称
说明:
技能被禁用后,无法再释放该技能,但技能的修炼点不变,在F11技能表中暗色显示。
可以联合使用ADDSKILL、DisableSkill、EnableSkill命令,
来实现装备触发学习技能,脱掉装备技能无效,穿上恢复等功能.
2. 启用指定技能
——————————————————
命令:
EnableSkill ①技能名称
说明:
将被禁用的技能解禁,解禁后已修炼的技能点数不变
3. 检测技能是否启用
——————————————————
命令:
CheckSkillEnabled ①技能名称
说明:
技能正常,检测通过
技能被禁用,检测不通过
例子:
=======================
武器技能例子,拿上龙牙,学习新的技能神龙附体,
拿下龙牙技能禁用,再拿启用,修炼点不变.
QFunction-0.txt:
;
装备穿戴触发
[@TakeOnEx]
#IF
EQUAL <$CURRTEMNAME>
龙牙
#ACT
ADDSKILL 神龙附体
SENDMSG 0 【*系统】玩家”<$USERNAME>”装备<$CURRTEMMAKEINDEX>习得技能[神龙附体]
BREAK
;
装备脱掉触发
[@TakeOffEx]
#IF
EQUAL <$CURRTEMNAME>
龙牙
#ACT
DisableSkill 神龙附体
BREAK
[技能] – 调整威力/CD时间
调整技能威力/CD时间
1. 调整技能威力
——————————————————
命令:
ChangeMagicPower ①技能名称 ②操作符(+,-,=) ③点数
常量:
<$MagicPower(技能名)> ;获取当前技能威力附加值
<$MagicPowerBFB(技能名)> ;获取当前技能百分比威力附加值
说明:
如果点数后面带百分号,则按百分比调整
例子:
[@main]
#IF
#ACT
ChangeMagicPower 雷电术 + 100
;雷电术加100点伤害(永久设置,下线有效)
ChangeMagicPower 雷电术 + 20% ;雷电术加20%伤害(永久设置,下线有效)
2. 调整加技能防御
——————————————————
命令:
ChangeMagicDefPower ①技能名称 ②操作符(+,-,=)
③点数
<$MagicDefPower(技能名)>
获取当前技能防御附加值
<$MagicDefPowerBFB(技能名)> 获取当前技能百分比防御附加值
说明:
如果点数后面带百分号,则按百分比调整
[@main]
#IF
#ACT
ChangeMagicPower 雷电术 + 100
;别人用雷电术攻击自已增加100点防御(永久设置,下线有效)
ChangeMagicPower 雷电术 + 20% ;别人用雷电术攻击自已增加20%防御(永久设置,下线有效)
3. 永久调整技能CD时间
——————————————————
命令:
SetSkillDecCD ①技能名称 ②操作符(+,-,=) ③时间(秒)
常量:
<$SkillDecCD(技能名)> ;获取当前技能时间调整值,单位:秒
<$SkillDecCDBFB(技能名)> ;获取当前技能时间百分比调整值,单位:秒
<$SkillCSCD(技能名)> ;获到技能初始CD时间值,初始CD时间值就是技能表中设置的值,单位:秒
<$SkillDQCD(技能名)> ;获到技能当前CD时间值,单位:秒
说明:
在原有技能CD时间上增加或减少额外的CD时间。如果点数后面带百分号,则按百分比调整。
例子:
[@main]
#IF
#ACT
SetSkillDecCD 无极真气 = -2.5
;直接设置无极真气CD时间在原有基础上减少2.5秒
SetSkillDecCD 无极真气 = 2.5
;直接设置无极真气CD时间在原有基础上增加2.5秒
SetSkillDecCD 无极真气 – 1.5
;无极真气CD时间的当前调整值减少1.5秒,适合做逐步强化功能,方便计算
SetSkillDecCD 无极真气 + 1.5
;无极真气CD时间的当前调整值增加1.5秒,适合做逐步强化功能,方便计算
SetSkillDecCD 烈火剑法 = -50% ;直接设置烈火剑法CD时间在原有基础上减少50%
SetSkillDecCD 烈火剑法 – 5%
;烈火剑法CD时间的当前调整值减少5%
SetSkillDecCD 烈火剑法 + 5%
;烈火剑法CD时间的当前调整值增加5%
[@main]
SetSkillDecCD 无极真气 =
0 ;清除无极真气额外CD时间
SetSkillDecCD 无极真气 = 0% ;清除无极真气额外CD时间(百分比)
注意:要清除技能的额外CD时间,最好讲数字值和百分比值都设置为0
注意1:
此命令设置的是技能CD时间的调整值,不是最终值,最终值CD值=数据表中的CD时间+调整值
注意2:
设置某个技能的CD时间将永久保存直到下次调整。
另外,如果在技能表中修改了CD时间,实际技能CD时间仍然受此设置影响。
4. 调整技能当前CD时间
——————————————————
命令:
ChangeSkillCDtime ①技能名称 ②操作符(+,-,=) ③时间(秒)
说明:
调整当前正在冷却技能的CD时间,注意和SetSkillDecCD不一样.
例子:
===================
[@main]
//
烈火剑法释放后有8秒CD时间,执行此命令后,当前CD时间立刻成为1秒,
//
下次释放CD时间还是8秒.
#IF
#ACT
ChangeSkillCDtime
烈火剑法 = 1
5.调整技能放出后在地图上的时间
——————————————————
命令:
ChangeSkillExistTime ①技能名称 ②操作符(+,-,=
)
③时间(秒)
说明:
修改已释放技能的持续时间
注意:此命令仅针对持续类、飞行类技能有效(如:火墙、魔法盾、旋风火球等)
参数:
①技能名称:记录在”
Mir200/Envir/Data/技能(Magic).csv”表中的技能名
②操作符:
+,-,=
③时 间:
默认时秒,也可以加时间后缀,如:0.1秒,表示100毫秒
如果将时间设置为0 ,则技能会立即终止并消失
例子:
=========================
[@增加旋风火球旋转时间]
#IF
#ACT
ChangeSkillExistTime 旋风火球
+ 10 ;只对当次释放技能有效
[技能] – 脚本释放
脚本命令释放技能
1. 释放技能(兼容)
—————————————————————-
命令:
ReleaseMagic ①技能名称或ID ②是否为强化 ③技能等级 ④目标
⑤伤害提升 ⑥延迟释放(毫秒)
ReleaseMagicEx
(不带动作,直接放,参数同上)
说明:
释放技能可以没有学习,无视蓝量、无视其他任何限制,命令优先级最大,直接放出技能.
ReleaseMagic释放带动作,
ReleaseMagicEx不带动作,技能直接放出来.
参数:
①技能名称或ID :
取值为技能表(“Mir200/Envir/Data/技能(Magic).csv”)中的技能名或技能ID
②是否为强化:
兼容老式M2,可不填或写0
③技能等级:
设置释放技能等级,写0或不填释放最高等级技能
④目标:
不填或0:根据当前技能及锁定状态自动选择目标
1:目标或自己(自动选择)
2:自己
3:随机目标
⑤伤害提升:
写法1:带百分号%按百分比提升,不带百分号按固定值提升
写法2:固增加定值#百分比增加值,伤害计算=(原有伤害值+固定值)*(1.0
+ 百分比值)
写法3:百分比值#固定增加值,伤害计算=原伤害值*(1.0 + 百分比值)
+ 固定增加值
⑥延迟释放:
设置延迟多长时间后才实际释放技能,毫秒
[@Attack]
#if
#act
ReleaseMagic 雷电术 0 3 0 20%
SENDMSG 6
你的物理攻击触发了1次3级雷电术(提升20%伤害)
[@main]
#IF
#ACT
ReleaseMagic 雷电术 0 0 0 0 300 //
延迟300毫秒释放雷电术
[@main]
#IF
#ACT
ReleaseMagic 雷电术
// 释放雷电术
[@Magicattack]
#IF
Equal <$CURRRUSEMAGICNAME>
雷电术
#ACT
ReleaseMagicEx 冰咆哮 0 3 1 100
SENDMSG 6
你的雷电术触发了,1次3级冰咆哮(固定提升100点伤害)
#IF
Equal <$CURRRUSEMAGICNAME>
雷电术
#ACT
ReleaseMagicEx 治愈术 0 3
SENDMSG 6
你的雷电术攻击为自己释放了一次3级治愈术
2. 释放技能
—————————————————————-
命令:
RlsSkill ①技能名称或ID ②技能等级 ③伤害提升
④目标 ⑤延迟释放(毫秒)
RlsSkillEx (不带动作,直接放,参数同上)
参数:
①技能名称或ID :
取值为技能表(“Mir200/Envir/Data/技能(Magic).csv”)中的技能名或技能ID
②技能等级:
设置释放技能等级,写0或不填释放最高等级技能
③伤害提升:
带百分号%按百分比提升,不带百分号按固定值提升
④目标:
不填或0:根据当前技能及锁定状态自动选择目标
1:目标或自己(自动选择)
2:自己
3:随机目标
⑤延迟释放:
设置延迟多长时间后才实际释放技能,毫秒
0或不填,立即释放
说明:
用脚本命令释放任意技能,释放者可以没有该学习。
RlsSkill释放带动作,RlsSkillEx不带动作,技能直接放出来.
提示:用命令释放的技能,没有CD时间,没有蓝量扣除等限制.
例子:
[@main]
#IF
#ACT
RlsSkill 烈火剑法 3
35% ;释放烈火剑法并提高35%伤害,释放者无需学习这个技能
[@main]
#IF
#ACT
RlsSkillEx 雷电术 0 0
500 // 500毫秒后释放雷电术
客户端释放技能
命令:
Skill 技能名称
说明:
在客户端发起技能释放,需要学习这个技能,相当于在客户端按键释放技能。
例子:
[@main]
#IF
#ACT
Skill
雷电术
[技能] – 按键设置
设置技能按键
命令:
SetSkillKey ①技能名称
②按键
<$SKILLKEY(技能名)> ;获取技能按键
说明:
脚本命令设置技能按键
参数:
①技能名称:记录在”
Mir200/数据库/技能(Magic).csv”表中的技能名
②按键:F1-F8 和Alt、Ctrl的组合
(除以下外,按键名兼容其它引擎的数字按键码)
例子:
[@设置技能按键]
#IF
#ACT
SetSkillKey 烈火剑法 Alt+F4 ;设置烈火剑法按键
SetSkillKey 野蛮冲撞 F1
打开技能按键设置面板
命令:
OpenKey ①技能名称
说明:
打开技能按键设置
参数:
①技能名称:记录在”
Mir200/数据库/技能(Magic).csv”表中的技能名
例子:
[@打开技能按键设置]
#IF
#ACT
OpenKey 烈火剑法 ;
打开技能烈火剑法设置界面
[地图] – 地图传送
地图传送命令
1. 地图所有玩家传送
—————————————————————-
命令:
MoveMapPlay ①原地图名 ②新地图名 ③X ④Y
⑤范围
参数:
①原地图名:要传送哪个地图中的所有玩家
②新地图名:要传送到哪个地图
③X:传送到目标地图落点X
④Y:传送到目标地图落点Y
⑤范围:传送到目标地图落点范围
说明:
把某个地图中的玩家全部移动到另外一个地图
2. 队伍传送
—————————————————————-
命令:
GroupMapMove
①到达地图名 ②X ③Y ④可传等级 ⑤范围
⑥触发字段(选填)
参数:
①到达地图名:要传送到哪个地图(写地图名)
②X:地图X坐标
③Y:地图Y坐标
④可传等级
:可以传送最低等级(可以为空,为空时不检测队员的等级直接传送)
⑤范围:传送范围。(以队长为中心传送队友,0为不需要范围)
⑥触发字段:传送完成后的QF触发到哪个@段
说明:
把一个队伍里的所有成员传送到指定地图上
3. 阵营传送
—————————————————————-
命令:
CampMapMove
①阵营号(0-255) ②地图名 ③X ④Y ⑤到达范围
说明:
当前地图同一阵营人物传送到指定地图
参数:
①阵营号:0传送非阵营人物,1-255传送指定阵营下所有人物
②到达地图名:要传送到哪个地图(写地图名)
③X:地图X坐标,从参数3起后面可都不写,不写传回城
④Y:地图Y坐标
⑤到达范围:传送到达范围
例子:
CampMapMove 1 0 ; 将当前地图所有1号阵营人物传送到比奇安全区
CmapMapMove 2
3 330 330 5 ; 将当前地图所有2号阵营人物传送到盟重330 330,范围5×5以内
[地图] – 动态地图连接
动态地图连接
1. 增加动态连接
————————————————————
ADDMAPGATE ①连接名 ②起始地图 ③X ④Y ⑤范围 ⑥到达地图 ⑦到达X ⑧到达Y ⑨有效时间秒 ⑩门点连接标志
参数:
①连接名:自定义名称,为了区别其他连接
②起始地图:从哪个地图开始连接,填地图表中的地图名
③X:从开始地图坐标X连向到达地图,小于0时随机坐标
④Y:从开始地图坐标Y连向到达地图,小于0时随机坐标
⑤范围:
⑥到达地图:连向哪个地图,填地图表中地图名
⑦到达地图坐标X:小于0时随机坐标
⑧到达地图坐标Y:小于0时随机坐标
⑨有效时间秒:时间到了自动删除该连接,该参数为空或0时不限时间
⑩门点连接标志:以下标志给合
取值 说明
————————————–
传送特效 /* 通过门点时显示传送特效 */
仅人物通过 /* 门点只能让人物通过 */
说明:
动态增加地图门点连接
开始地图(X Y) -> 到达地图(X Y)
2. 删除动态连接
————————————————————
命令:
DELMAPGATE ①连接名 ②起始地图
参数:
①连接名:使用ADDMAPGATE是填写的连接名,以确家是哪个连接
②地图名:连接的起始地图
3.
获取动态地图连接坐标
————————————————————
命令:
GETMAPGATE
①连接名 ②起始地图 ③X坐标变量 ④Y坐标变量
⑤到达地图变量 ⑥到达X变量 ⑦到达Y变量
⑧剩余时间秒变量(选填)
参数:
①连接名:使用ADDMAPGATE是填写的连接名,以确家是哪个连接
②起始地图:连接的起始地图名
例子:
[@AddMapGate]
#ACT
AddMapGate 连接 3
335 330 1 0 335 268 30
GetMapGate 连接 3 <$STR(G10)> <$STR(G11)>
<$STR(S$10)> <$STR(G12)> <$STR(G13)>
SENDMSG 6
增加地图新连接30秒后删除:[<$STR(G10)>:<$STR(G11)>]到达地图:<$STR(S$10)>到达坐标[<$STR(G12)>:<$STR(G13)>]
[@DelMapGate]
#ACT
DelMapGate
连接 3
[地图] – 镜像地图
创建镜像
1.
创建镜像地图
————————————————————
命令:
AddMirrorMap ①原地图名 ②新地图名 ③新地图显示名 ④时间 ⑤退出地图(X,Y,范围) ⑥小地图(填0) ⑦镜像标志(选填) ⑧运行线程(选填)
说明:
以原地图创建一个镜像地图,创建成功后,人物D99变量返回1,否则返回0
注意:原地图必须是一个在地图表中存在的正常地图,不能以镜像地图再创建镜像地图
参数:
①原地图名:要创建哪个地图的镜像地图,填地图表中的地图名
②新地图名:临时使用的地图名
③新地图显示名:客户端显示的地图名字
④时间:该地图存在的有效时长(秒),时间到后,此地图将自动回收,并且将地图上的人传送至E参数设置的地图
⑤退出地图:人物退出镜像地图可以指定退到哪个坐标点上,填写格式是: 退出地图名(X,Y,范围)
⑥小地图:无用,填0
⑦镜像标志(选填):多个继承标标有竖线(|)组合
取值 说明
===================================================
继承刷怪 /* 继承原地图刷怪设置 */
继承打怪经验 /* 继承原地图打怪经验倍率设置 */
继承技能经验 /* 继承原地图技能修炼倍率设置 *、
继承地图设置 /* 镜像地图继承原地图在Mir200/Envir/地图配置/地图基础设置.csv中的设置 */
继承门点 /* 继承原地图所有门点设置 */
继承行会战 /* 继承原地图行会战时间设置 */
继承区域 /* 继承原地图区域设置 */
继承触发器 /* 继承原地图触发器设置 */
退出关闭 /* 人物退出时镜像地图自动关闭 */
⑧运行线程(选填):线程组取值0-31,共32个,一般每创建100个镜像地图换一个运行线程组,也可在0-31之间随机
2. 删除镜像地图
————————————————————
命令:
DelMirrorMap ①镜像地图名
参数:
①镜像地图名:填写AddMirrorMap中的参数2
3. 设置/获取镜像地图的时间
————————————————————
命令:
MirrorMapTime
①镜像地图名 ②时间(秒) // 直接设置时间
MirrorMapTime ①镜像地图名 ②操作符(+,-,=) ③时间(秒) //
加减时间
说明:
如果时间不写,则表示获取当前地图的剩余时间,时间返回在D99变量
如果获取地图失败或不是镜像地图,则D99返回-1
参数:
①镜像地图名:填写AddMirrorMap中的参数2
检测镜像地图
命令:
CheckMirrorMap
①镜像地图名
说明:
检测镜像地图是否已经创建
参数:
①镜像地图名:填写AddMirrorMap中的参数2
例子:
;使用人物名称做为副本地图的名称创建副本
[@main]
#if
#act
MirrorMapTime
<$USERNAME>
#SAY
剩余时间:<$STR(D99)>秒
<创建副本/@创建副本>
<进入副本/@进入副本>
<删除副本/@删除副本>
[@删除副本]
#ACT
DELMIRRORMAP
<$USERNAME>
goto @main
[@进入副本]
#IF
LARGE D99
0
#ACT
give 回城卷 1
map <$USERNAME>
#ELSEACT
goto
@main
SENDMSG 6 副本地图还没有创建
[@创建副本]
#if
CheckMirrorMap
<$USERNAME>
#ACT
goto @main
SENDMSG 6 该副本地图已经创建
BREAK
#IF
#ACT
AddMirrorMap 0
<$USERNAME> 比奇副本 60 0159 101
;创建一个连接,地图3 坐标 X:333 Y:333 连接到新创建的副本地图坐标 X:333 Y:333
AddMapGate 连接 3 333 333 1 <$USERNAME> 333 333 60
#IF
Equal D99 1
#ACT
goto
@main
SENDMSG 6 创建成功
#ELSEACT
goto @main
SENDMSG 6 创建失败
[地图] – 地图操作
地图操作
1. 修改地图标志
—————————————————————-
ChangeMapFlag ①操作符(+,-,=) ②地图标志
参数:
①操作符: +追加标志 -删除标志 =直接设置标志
②地图标志:取值查看“地图标志”
注意:
用脚本命令修改的地图标志,会在地图重启后失效
2. 清理地图空气墙
—————————————————————-
命令:
ClearMssAll
参数:
无
说明:
清空当前地图所有空气墙.
注意:
本命令只能清理当前地图的空气墙,如要清理指定地图请调用:
RunScriptOnMap 地图名
ClearMssAll
[任务] – 领取
任务操作命令
1.
领任务
—————————————————————-
GetMission ①任务名
参数:
①任务名:”Mir200/Envir/Data/SK扩展表格/任务”目当下所列任务文件中的任务名称
说明:
让人物领取一个任务,领取后任务会自动加入到左上角任务列表中
接到任务后触发
QFunction-0.txt:
[@接到任务
%missionname] ;
参数:%missionname:已接到任务的名称
2.
清除任务
—————————————————————-
命令:
ClearMission
①任务名
参数:
①任务名:已接的任务名称,为空则清除人物所有任务
说明:
被清除的任务将从任务列中移除,并可以再接
3. 重置任务进程
—————————————————————-
命令:
ResetMission
①任务名
参数:
①任务名:已接的任务名称,为空则重置人物所有任务
说明:
重置任务的打怪计数、地图存在时间等
4. 设置任务完成
—————————————————————-
命令:
SetMissionFinish
①任务名
参数:
①任务名:已接的任务名称
说明:
直接设置任务完成,免去任务过程,适用于元宝直接完成任务等
注意:正常情况任务通过杀怪等条件自动完成,一般情况无需调用此命令来完成。
当然也可以通过调用ChangeMissionKillMonCount等命令来加速任务达成条件,
只是SetMissionFinish更直接,直接设置任务完成状态
完成任务后触发
QF:
[@完成任务
%missionname]
参数:
%missionname:已完成的任务的名称
5. 给任务奖励
—————————————————————-
命令:
GiveMissionAward
①任务名
参数:
①任务名:已接的任务名称
说明:
一般先用CheckMissionFinish判断任务是否完成再给任务奖励
一旦给了任务奖励,此任务自动被标记成结束,需要再次接此任务才能再做任务
领取到任务奖励后触发
QF:
[@领取任务奖励
%missionname]
参数:
%missionname:已领取奖励任务的名称
6. 修改任务杀怪个数
—————————————————————-
命令:
ChangeMissionKillMonCount ①任务名 ②怪物名 ③操作符(+,-,= )
④数量
参数:
①任务名:已接的任务名称
说明:
对于设置了以杀怪为完成目标的任务,
可以用命令直接调整杀怪数量进程(正常情况下,杀任务怪会自动更新杀怪数量)
7. 修改任务停留时间
—————————————————————-
命令:
ChangeMissionStaytime ①任务名 ②操作符(+,-,=) ③时间(秒)
参数:
①任务名:已接的任务名称
说明:
对于设置了以地图停留时间为完成目标的任务,
可以用此命令直接调整当前停留时间(正常情况下,只要人物在任务地图,会自动加时间)
8. 修改任务移动时间
—————————————————————-
命令:
ChangeMissionMovetime ①任务名 ②操作符(+,-,=) ③时间(秒)
参数:
①任务名:已接的任务名称
说明:
对于设置了以地图移动时间为完成目标的任务,
可以用此命令直接调整当前移动时间(正常情况下,只要人物在任务地图跑动,会自动加时间)
[任务] – 检测
任务检测命令
1. 检测能否接任务
—————————————————————-
命令:
CheckCanGetMission
①任务名
参数:
①任务名:”Mir200/数据库/更多/任务”目当下所列任务文件中的任务名称
说明:
此命令用于检查一个任务能不能接,一个任务能否接,取决于任务文件中设置的等级、每日可做次数等限制
2. 检测是否已接任务
—————————————————————-
命令:
CheckGetMission
①任务名
参数:
①任务名:”Mir200/数据库/更多/任务”目当下所列任务文件中的任务名称
说明:
检测人物是否已经接了某个任务,已接人物会出现在人物任务列表里
3. 检测任务是否完成
—————————————————————-
命令:
CheckMissionFinish
①任务名
参数:
①任务名:”Mir200/数据库/更多/任务”目当下所列任务文件中的任务名称
说明:
检测人物某个任务是否已完成
4. 检测任务奖励是否领取
—————————————————————-
命令:
CheckMissionGetAward
①任务名
参数:
①任务名:”Mir200/数据库/更多/任务”目当下所列任务文件中的任务名称
说明:
检测人物某个任务是否已领取过奖励,以避免重复领取
5. 检测任务地图是否要以直飞
—————————————————————-
命令:
CheckMissionMapfly
①任务名
参数:
①任务名:”Mir200/数据库/更多/任务”目当下所列任务文件中的任务名称
说明:
任务地图能否直飞,取决于任务文件中的设置
当然,如果GM想让人物直飞到任务地图,也可以不用此命令检查,直接飞就是了
6. 检测任务标志
—————————————————————-
命令:
CheckMissionFlag ①任务名
②任务标志
参数:
①任务名:”Mir200/数据库/更多/任务”目当下所列任务文件中的任务名称
②任务标志:查看任务标志
说明:
任务标志是记录在任务文件中中”MissionFlags”或”任务标志”字段值,这个值由GM自设置然后此命令可以检查此设定值
任务常量
<$MISSION_TOTALDOTIMES(任务名)>
取任务当日可做次数
<$MISSION_CURDOTIMES(任务名)>
取任务当日已做次数
<$MISSION_FLYTICKET(任务名)>
取任务直飞地图所需飞天卷个数
<$MISSION_MAPNAME(任务名)>
取任务地图名
<$MISSION_MAPX(任务名)>
取任务地图坐标X
<$MISSION_MAPY(任务名)>
取任务地图坐标Y
<$MISSION_MAPRANGE(任务名)>
取任务地图坐标范围
<$MISSIONAWARDS_BAGSLOT(任务名)>
取任务奖励的占用的包裹格子数
<$MISSION_FINISHLEVEL(任务名)>
取任务达成等级
<$MISSION_TYPE(任务名)>
取任务类型,任务类型就是记录在任务数据中MissionType字段值,这个值是自定义值
[任务] – 客户端列表
客户端任务列表
1. 打开左上角任务列表
———————————————————
命令:
OpenLayer missions
2. 关闭左上角任务列表
———————————————————
命令:
CloseLayer
missions
3. 删除任务项
———————————————————
命令:
RemoveMissionListItem ①任务名
参数:
①任务名:要从客户端任务列表中删除哪个任务
说明:
一般情况下,调用ClearMission会自动删除任务列表中的任务项,
但有时候只是任务状态改,且这种状态不想让它出现在任务列表中,此时可调用本命令删除任务项
4. 置顶任务
———————————————————
命令:
SetMissionListItemTop ①任务名
参数:
①任务名:要在任务列表中置顶的任务名
说明:
调整客户端左上角任务列表项显示顺序
5.
左上角任务列表点击触发
—————————————————————-
在客户端点击任务列表项触发
脚本:
QFunction-0.txt
触发段:
[@点击任务列表 %missionname]
;%missionname:在任务列表中点击的任务名称
说明:
此触发用以实现自定义任务列表点击功能
[行会] – 创建行会
创建行会
命令:
AddGuild ①行会名 ②创建玩家名(为空是自已)
说明:
用脚本创建一个行会
参数:
①行会名:不能带特殊符号,最多7个汉字
②创建玩家名:不写为空是自己
例子:
[@Main]
#IF
#ACT
AddGuild 华山派
创建行会前触发
QFunction-0.txt:
[@CheckBuildGuild
%guildname]
; %guildname 当前正在创建的行会名
; 脚本任意行调用stop不允许创建
创建行会后触发
QFunction-0.txt:
[@AfterBuildGuild %guildname]
SendMsg 5
玩家”<$USERNAME>”已成功创建行会%guildname
[行会] – 解散行会
命令:
DelGuild ①行会名
说明:
用脚本解散并删除一个行会
参数:
①行会名:已创建并存在的行会名
例子:
[@Main]
#IF
#ACT
DelGuild 华山派
解散行会前触发
QFunction-0.txt:
[@GuildCloseBefore]
;仅触发到在线的正会长,可调用stop可以取消行会解散
解散行会后触发
QFunction-0.txt:
[@GuildClose]
;触发到每个在线的行会成员
[行会] – 入会
入会退会
命令:
AddGuildMember ①行会名
②人物名称
说明:
把人物加入行会
参数:
①行会名:不能带特殊符号,最多7个汉字
②人物名称:不写为空时把自己加入到行会
例子:
[@Main]
#IF
#ACT
AddGuildMember 华山派 xxx
加入行会前触发
QFunction-0.txt:
[@GuildAddMember]
加入行会后触发
QFunction-0.txt:
[@GuildAddMemberAfter]
[行会] – 退会
退会
命令:
DelGuildMember ①人物名称
说明:
人物退出行会
参数:
①人物名称:不写为空时把自己退出行会,如果是会长退出,则解散行会
退出行会前触发
QFunction-0.txt:
[@GuildDelMemberBefore]
退出行会后触发
QFunction-0.txt:
[@GuildDelMember]
[行会] – 成员封号设置
行会封号命令
1. 新建行会封号
———————————————————-
命令:
NewGuildGroup ①行会名 ②封号名称
参数:
①行会名:已存在的行会名,如果写Self是自已行会
②封号名称: 要新加的封号名,最多7个汉字
2.
删除行会封号
———————————————————-
命令:
DelGuildGroup ①行会名 ②封号名称
参数:
①行会名:已存在的行会名,如果写Self是自已行会
②封号名称:
要删除的封号名
提示:
被删除封号下所有玩家自动转移到行会最后的封号,
执行后触发QF:[@GuildGroupChanged]
3.
修改行会封号
———————————————————-
命令:
ChangeGuildGroupName ①行会名 ②旧封号名称
③新封号名称
说明:
执行后触发QF:[@GuildGroupChanged]
4.
转移封号
———————————————————-
命令:
ChangeGuildMemberGroup ①行会名 ②玩家名
③转移到的封号名
说明:
如果一次有多名玩家要转移,则参数2用#号连接多个玩家名
执行后触发QF:[@GuildGroupChanged]
例子:
;
把行会玩家张三、李四、王五从其原来的封号中移动到”至尊法团”封号下
[@Main]
#IF
#ACT
ChangeGuildMemberGroup Self 张三#李四#王五
至尊法团
5.
人物封号变更触发
———————————————————-
QFunction-0.txt:
[@GuildGroupChanged]
;
当行会封号名称变化时触发到封号下的每一个在线玩家
[行会] – 攻城
攻城
1. 申请攻城
———————————————————
命令:
ApplyCastleWar ①城堡名
参数:
①城堡名:不填默认申请攻城沙巴克城
说明:
先申请才能参加攻城战争,只能由行会会长发起申请
QF触发:
申请前触发:
[@BeforeApplyCastleWar]
// 可在申请前检测条件是否通过,不通过调用Stop
申请后触发:
[@AfterApplyCastleWar]
// 可在申请后触发中扣除申请所需物品
例子:
[@main]
#IF
#ACT
ApplyCastleWar
QFunction-0.txt:
// 申请前触发中检测所需条件是否满足,不满足调用Stop
[@BeforeApplyCastleWar]
#IF
NOT
CheckItem 祖玛头像
#ACT
MessageBox
申请攻城需要背包中有1个祖玛头像
Stop
//
申请后触发扣除所需物品
[@AfterApplyCastleWar]
take 祖玛头像
2. 开启攻城
———————————————————
命令:
StartCastleWar ①城堡名 ②时间(分钟)
参数:
①城堡名:要开启哪个城堡的攻城战
②时间:攻城持续时间值
说明:
开启攻城后到时间自动结束.
也可调用StopCastleWar提前结束
3. 关闭攻城
———————————————————
命令:
StopCastleWar ①城堡名
参数:
①城堡名:不填默认关闭沙巴克攻城
说明:
此命令用于提前关闭攻城战并结算当前攻城对局(正常情况攻城时间结束自动关闭)
[VIP] – 开通会员
会员命令
引擎内置会员功能,开发人员可在会员功能上进行扩展.
1. 开通会员
——————————————————–
命令:
AddVipDays
①会员等级 ②时间(xx天、xx小时)
说明:
增加玩家会员天数,如果玩家当前不是会员,则增加天数相当于开通会员
参数:
①会员等级:填写会员表”Mir200\Envir\data\SK扩展表格\vip设置.csv”中的会员等级
②天数:可以写xx天、xx小时
2. 修改会员等级
——————————————————–
命令:
UpdateVipLevel
①新的VIP等级 ②时间(xx天、xx小时)
说明:
调整人物会员等级为指定时间
3.
检测会员等级
——————————————————–
命令:
CheckVip
①检测符(<,=,>) ②检测值
说明:
检测玩家当前会员等级
例子:
[@main]
#IF
CheckVip = 0
#ACT
AddVipDays 1 7天
SENDMSG 0
玩家”<$USERNAME>”天通了7天会员
BREAK
#IF
CheckVip = 1
#ACT
AddVipDays 1 7天
SENDMSG 0
玩家”<$USERNAME>”追加了7天会员
BREAK
[VIP] – 会员常量和触发
会员常量
<$MYVIPLEVEL>
取人物当前会员等级
<$MYVIPWEEK> 取人物会员到了第几周,可用于会员每周福利判断
<$LEFTVIPDAYS> 取人物会员剩余天数
<$LEFTVIPHOURS> 取人物会员剩余小时
<$VIPDAYS(会员等级)>
取指定会员等级总天数
<$VIPINFO(会员等级 信息类型>
取指定会员等级信息
参数2信息类型取值:
1
每日全图看怪次数
2 每日在线出售次数
3
每日回收次数
4 每日挂机时间
5 打怪经验倍数
会员触发
会员等级发生改变后触发
QFunction-0.txt:
—————————————
[@会员等级改变 %p1 %p2]
参数:
%p1:改变前的VIP等级
%p2:改变后的VIP等级
例子:
[@会员等级改变 %p1 %p2]
Toast 您的会员等级从%p1级变更到%p2级
// 另:玩家会员到期,也会调用此触发,此时%p2值=0
[界面] – 屏幕特效
屏幕特效
1. 播放屏幕特效
—————————————————————-
命令:
Screffects ①播放ID ②特效ID ③X ④Y ⑤速度 ⑥次数 ⑦模式 ⑧比例
⑨换图删除
参数:
①播放ID:自定义数值,标识这一次播放
②特效ID:填写特效表中的特效ID
③X:屏幕X坐标
④Y:屏幕Y坐标
⑤速度:0或1正常速度,0.5速度减慢一半,2.0速度加快一倍
⑥次数:播放多少次后结束,写0一直播放
⑦模式:0自已 1所有人
⑧比例:1.0正常比例,0.5缩小,2.0放大
⑨换图删除:0切换地图不删除
1切换地图删除
例子:
[@main]
;在左上角将特效表中ID为60的特效播放3次,在播放过程中切换地图立即删除
#IF
#ACT
Screffects 1 60 0.3 0.3 1.0 3 0 1.0
1
2. 删除屏幕特效
—————————————————————-
命令:
Deleffects ①播放ID
参数:
①播放ID:调用Screffects填写的自定义ID
3. 播放全屏特效
—————————————————————-
命令:
FullScreffects
①播放ID ②特效ID ③速度 ④次数 ⑤模式
⑥换图删除
参数:
①播放ID:自定义数值,标识这一次播放
②特效ID:填写特效表中的特效ID
③速度:0或1正常速度,0.5速度减慢一半,2.0速度加快一倍
④次数:播放多少次后结束,写0一直播放
⑤模式:0自已
1所有人
⑨换图删除:0切换地图不删除
1切换地图删除
注意:
和播放屏幕特效不同,全屏特效会自动铺满到整个屏幕
4. 屏幕震动
—————————————————————-
命令:
SCENEVIBRATION ①模式(0~4)
②震级(1~3) ③次数 ④地图ID(模式等于4时,需要该参数)
参数:
①模式:0 仅自己
1
在线所有人
2
屏幕范围内人物
3
当前地图上所有人
4
指定地图上所有人
[消息] – SENDMSG
SENDMSG
信息类型代码 字体颜色(0-255) 背景颜色(0-255) %s信息内容%d
信息类型代码:
1 发送普通红色广播信息
101 发送普通绿色广播信息
102 发送普通蓝色广播信息
2、发送普通红色广播信息,并显示NPC名称。
3、发送普通红色广播信息,并显示人物名称。
4、在NPC头顶,显示普通说话信息。
5、发送红色信息给人物
6、发送绿色信息给人物
7、发送蓝色信息给人物
%s
代表人物名称
%d
代表NPC名称
命令格式:
[@test]
#IF
#ACT
SENDMSG
0 %s信息内容%d
SENDMSG
1 %s信息内容%d
SENDMSG
2 %s信息内容%d
SENDMSG
3 %s信息内容%d
SENDMSG
4 %s信息内容%d
SENDMSG
5 %s信息内容%d
SENDMSG
6 %s信息内容%d
SENDMSG
7 %s信息内容%d
SENDMSG 9
%s信息内容%d
;以下是自定义颜色
SENDMSG
0 249 47 %s信息内容%d
SENDMSG
1 249 255 %s信息内容%d
SENDMSG
2 249 253 %s信息内容%d
SENDMSG
3 249 47 %s信息内容%d
SENDMSG 4 249 47 %s信息内容%d
SENDMSG
5 249 47 %s信息内容%d
SENDMSG 6 249 47 %s信息内容%d
SENDMSG 7 249 47
%s信息内容%d
SENDMSG 8 249 47 %s信息内容%d
[消息] – 聊天框置顶消息
发送聊天框置顶消息
命令:
SENDTOPCHATBOARDMSG ①模式 ②字体颜色 ③背景色 ④消息内容 ⑤显示人物名 ⑥滚动速度
参数:
①模式:0发送给所有人,1发送给自己
②字体颜色:一般用149
③背景颜色:一般用235
④消息内容:
⑤显示人物名:0不显示
1显示
⑥滚动速度:消息超宽后的滚动速度,单位是多少像素每秒,一般写60
说明:
发送固定在聊天框顶部的文本消息,如下图:

例子:
[@Main]
#IF
#ACT
SENDTOPCHATBOARDMSG 0 149 235 30
聊天框<固顶/FCOLOR=250>信息 支持空格、富文本,超宽会自动滚动 0 60
[消息] – 屏幕中间大字消息
发送屏幕中间大字体消息
1.
屏幕中间大字消息
————————————————————
命令:
SendCenterMsg ①文字色
②背景色(透明度) ③消息文字(有空格加双引) ④模式
⑤时间(秒)
⑥倒计时标签(没有写0) ⑦换图删除
⑧滚动次数 ⑨滚动速度+-
⑩位置Y
(11)宽度 (12)字体大小+- (13)消息id
参数:
①文字色: 设置文字颜色
②背景色: 设置文字背景色,可通过小括号附加设置透明度:
透明度(选填):取值0-255, 0全透明(不显背景) 128半透明(默认) 255不透明
③消息文字:如果消息文字中有空格,一定要用英文双引号包起来
如:”这是
带 空
格 的文本”
④模式:
0:当前地图(默认)
1:世界
2:行会
3:自己
4:当前地图
7:队伍
其他:当前地图
⑤时间:
设置显示时间(秒),不写默认12秒
如果设置了滚动次数(参数8),则以先达到的结束.
⑥倒计时标签:倒计时结束后指定的函数段,没有写0,
倒计时结束函数段优先在当前脚本中搜索,没有则在QF中搜索.
⑦换图删除:切换地图是否删除,选填,默认0
⑧滚动次数:
选填,不写或0无限滚动,其它写多少就滚动多少次,但如果时间先达到,则也会结束
⑨滚动速度:
选填,-1减少滚动速度,0当前速度,+1增加速度,+2再加…
⑩位置Y:
选填,设置文字出现在屏幕中的位置,0.0屏幕顶部 ~
1.0屏幕底部
默认0.15(屏幕上方)
(11)宽度:
选填,0.0 ~ 1.0
(12)字体大小:
选填,-1减小字体,0当前字号,+1加大字体,+2再加大…
(13)消息id:
选填,不写或为0,则每次发送新开一条滚动,否则,ID写几,就覆盖那个ID的内容。
例子1:最简参数调用
==========================================
[@Main]
#IF
#ACT
SendCenterMsg 180 251 这是一个居中显示的滚动公告
例子2:
==========================================
[@Main]
#IF
#ACT
SendCenterMsg 180 251
这是一个居中显示的滚动公告 0 60 0 0 3 +1 0.2 0.8 0 1
[消息] – 倒计时消息
倒计时消息
1.
显示倒计时信息提示
—————————————————
命令:
SENDDELAYMSG ①信息内容 ②时间(秒) ③字体颜色 ④换图删除(0不删 1删) ⑤跳转字段
例子:
#IF
#ACT
SENDDELAYMSG 你的礼物在%s秒后到达 30 255 0
@给礼物
;30秒倒计时结束后会执会当前脚本文件里的@给礼物
2.
清除倒计时信息提示
—————————————————
命令:
ClearDelayMsg
说明:
清除正在显示的倒计时消息,同时清除该消息的跳转字段(如果有)
[网关] – 游戏类型列表
游戏类型列表
什么是游戏类型列表?
游戏类型是登录账号后,左侧显示的游戏版本分类,GM可以自定义此分类列表. 如下图:
1. 新增游戏类型
————————————————–
命令:
AddGameType ①类型名 ②类型描述
③图标资源名
参数:
①类型名:自定义类型名,一般是复古、单职业等字样,建议7个汉字
②类型描述:出现在游戏类型下面的一行滚动小字
③图标资源名:显示在游戏类型列表项前面的图标,填写任何一个在素材库中的图像素材名称
特别注意:
新增了游戏类型,需要把”Mir200/区服启动文件.txt”中的”游戏类型”设置为新增的类型名,
不能漏写,也不能写错,否则将看不区服列表!!
2. 删除游戏类型
————————————————–
命令:
DelGameType ①类型名
参数:
①类型名:要删除的游戏类型名
说明:
删除一个游戏类型,列表上的类型也会被自动删除.
注意:如果这个类型下有区服,则要将这些区服设置到其它类型,
否则,删除类型后,将看不到此类型下的区服!
3.
设置游戏类型显示顺序
————————————————–
命令:
SetGameTypeShoworder
①类型名 ②数字顺序
参数:
①类型名:要调整顺序的类型
②数字顺序:数字越小,排序越前
4. 修改游戏类型描述
————————————————–
命令:
SetGameTypeDesc
①类型名 ②新描述文本
参数:
①类型名:要修改描述的类型名
5.
修改游戏类型Logo
————————————————–
命令:
SetGameTypeLogo ①类型名 ②新图标资源名
参数:
①类型名:要修改Logo的类型名
②图标资源名:显示在游戏类型列表项前面的图标,填写任何一个在素材库中的图像素材名称
修改代理号密码命令:
ChangeAgentPassword ①当前密码 ②新密码
[网关] – 区服列表
区服列表
1. 清空所有已掉线服务器
————————————————–
命令:
RemoveOfflineServers
参数:
无
说明:
清空游戏登录后服务器列表中已变暗的项目
2. 移除指定服务器
————————————————–
命令:
RemoveGameServer
①服务器ID
参数:
①服务器ID:写在”Mir200/区服启动文件.txt”中的服务器ID
说明:
在服务器列表中移除指定服务器ID的项目
3. 设置游戏服务器状态
————————————————–
命令:
SetGameServerStatus ①服务器ID
②状态码
参数:
①服务器ID:写在”Mir200/区服启动文件.txt”中的服务器ID
②状态码: 0停止 1运行 2到期 3等待开区
4维护
说明:
设置服务器列表中的状态显示
4. 设置游戏服务器置顶显示
————————————————–
命令:
SetGameServerTop ①服务器ID
参数:
①服务器ID:写在”Mir200/区服启动文件.txt”中的服务器ID
说明:
在服务器列表中置顶显示区服
[其它] – 系统
系统
1. 检测脚本是否由系统调用
————————————————-
命令:
CheckSys
参数:
无
功能:
检查当前脚本执行是否由系统调用
说明:
一般,NPC交互脚本总是由玩家发起,使用CheckSys检测是不通过的.
而M2启动触发、定时器、机器人脚本等系统级脚本,是由M2系统发起的,使用CheckSys检测通过.
还有些脚本,即可以由系统来调用,又可以由玩家来调用,例如底版中的攻城开启脚本等,
此时,需要通过CheckSys来判断,是由系统调用的还是玩家调用,不同的调用分别做不同处理.
例子:
查看
“Envir/Market_Def/引擎内置功能/行会/开启攻城.txt”
2. 检测是否为开发模式
————————————————-
命令:
CheckDevMode
参数:
无
例子:
#IF
CheckDevMode
#ACT
当前在开发模式
#ELSEACT
当前是正式开服模式
break
3. 写日志
————————————————-
命令:
log ①日志内容
参数:
①日志内容:最多512个字节,约170个汉字
功能:
在M2后台打印日志内容,同时写入到日志文件(“Enivr/log”目录下)
此命令也可用在脚本调试,打印一些脚本中的变量值,或验证脚本执行等.
4.
写日志(带日志级别)
————————————————-
命令:
loglevel ①日志级别(0-4) ②日志内容
参数:
①日志级别:
0:
正常(白字)
1:警告(黄字)
2:错误(红字)
3:关键成功(绿字)
4:醒目提示(蓝字)
②日志内容:最多512个字节,约170个汉字
功能:
在M2后台打印日志内容,同时写入到日志文件(“Enivr/log”目录下)
[其它] – 激活码
激活码命令
1. 导入激活码
————————————————–
命令:
ImportRecycleCodes
①文件名(在Mir200/Envir目录下)
参数:
①文件名:存储激活码的TXT文件,一行一个码,每个码是纯数字
说明:
从文本文件中导入一批激活码到系统
2. 删除激活码
————————————————–
命令:
DeleteRecycleCodes ①起始码号
②终止码号
参数:
①起始码号:激活码号段的开始号码
②终止码号:激活码号段的结束号码
说明:
删除指定号段内的所有激活码
如果参数①写0,参数②不写,则删除所有激活码
3. 检查激活码是否存在
————————————————–
命令:
CheckRecyclecodeExist ①激活码
参数:
①激活码:纯数字
说明:
检测激活码是否存在于系统激活码库
4. 检查激活码是否用过
————————————————–
命令:
CheckRecyclecodeUsed ①激活码
参数:
①激活码:纯数字
说明:
检测激活码是否已被用过,被用过的激活不可再用
5. 使用激活码
————————————————–
命令:
UseRecycleCode ①激活码
参数:
①激活码:纯数字
说明:
激活码一旦被使用,下次再用则无效.
此命令要放在#IF检测下使用或先用CheckRecyclecodeUsed检测是否用过
[其它] – 直播
直播
1. M2连接直播间
————————————————–
命令:
ConnectLiveRoom ①直播平台
②房间号
参数:
①直播平台: 1快手 2抖音(暂不支持)
②房间号:如何获取快手直播房间号,请参阅
https://docs.qingque.cn/d/home/eZQA2IWpbiXbkFNHeOYoyeTWx?identityId=1oE4KspnFps#section=h.olkhp95otd9d
注意:
这里是游戏服务器M2去连接直播间,不是玩家去连接,
服务器只需要进行一次连接就可以了.
什么时候调用ConnectLiveRoom?
先开好快手直播房间,获得房间号,然后在M2启动后调用ConnectLiveRoom
直播间互动触发
参阅:直播互动触发
游戏人物与直播平台账号关联
1. 关联人物直播平台号
————————————————–
命令:
AssocliveID ①直播平台
②快手号或抖音号
参数:
①直播平台: 1快手 2抖音(暂不支持)
②快手号:
说明:
将游戏中的角色关联到直播平台账号,目前只支持快手
2. 更改人物直播平台号
————————————————–
命令:
ChangeliveID
①直播平台 ②快手号或抖音号
参数:
①直播平台: 1快手 2抖音(暂不支持)
②快手号:
说明:
更换角色关联
3. 删除人物直播平台号
————————————————–
命令:
RemoveliveID ①直播平台 ②快手号或抖音号
参数:
①直播平台: 1快手 2抖音(暂不支持)
②快手号:
说明:
将人物角色与指定的直播平台账号解绑
4. 检查人物直播平台号关联
————————————————–
命令:
CheckAssocliveID
①直播平台 ②快手号或抖音号
参数:
①直播平台: 1快手 2抖音(暂不支持)
②快手号:
说明:
检查人物角色是否已关联到指定的直播平台账号
5. 取人物直播平台号关联
————————————————–
常量:
<$LIVEID(①直播平台)>
参数:
①直播平台: 1快手 2抖音(暂不支持)
例子:
[@main]
请选择关联哪个直播平台账号:
set %my_liveid <$LIVEID(1)>
#IF
CheckEmpty
%my_liveid
<关联快手号/@kuaishou>
#ELSEACT
<更换关联快手号/@kuaishou>
(当前关联:<%my_liveid/RGB:250>)
#ENDIF
<关联抖音号/@douyin>
<关闭/@exit>
[@kuaishou]
InputBox
请输入您的快手号(进入快手APP,点”我”->左上角”快手号”) @快手账号输入
GOTO @main
[@快手账号输入 %liveusrid]
; 检查输入的快手号是否已被其它人关联
set
%my_liveid <$LIVEID(1)>
#IF
CheckEmpty %my_liveid
#ACT
goto
#LABEL_NEW_ASSOC
#ELSEACT
goto #LABEL_CHANGE_ASSOC
#ENDIF
#LABEL_CHANGE_ASSOC
#IF
ChangeliveID 1
%liveusrid
#ACT
MessageBox
您的游戏账号已关联新的快手号:%liveusrid
#ELSEACT
MessageBox 更换新关联失败
#ENDIF
goto
#LABEL_EXIT
; 执行关联
#LABEL_NEW_ASSOC
#IF
AssocliveID 1
%liveusrid
#ACT
MessageBox 恭喜!快手号关联成功!
#ELSEACT
MessageBox
抱歉,快手号关联失败!
#ENDIF
#LABEL_EXIT
GOTO @main
[@douyin]
抖音账号关联即将开放,敬请关注!
<返回/@main>
[其它] – 人物数据库
人物数据库操作命令
1. 获取所有人物数据库
————————————————–
<$ALLDATABASE>
返回:
返回所有人物数据库名,如果有多个,每个以空格分隔
2.
删除人物数据库
————————————————–
命令:
DelDatabase
①数据库名
参数:
①数据库名:要删除的人物数据库名称
注意:
删除人物数据库不可恢复,需谨慎操作!
3.
备份人物数据库
————————————————–
命令:
Backup
说明:
备份当前人物数据库到”Mir200/db_backup”目录下
注意:
一般不要在M2正试运行时备份,这样做一来会造成M2卡顿,二来可能会漏掉最新数据状态.
建议在维护模式下,用超级管理号独自进游戏执行备份命令.
例子:
[@main]
#IF
#ACT
Backup
4.
还原人物数据库
————————————————–
命令:
Restore ①文件名 ②数据库名(不能含中文)
参数:
①文件名:通过Backup命令得到的备份文件名,要写全路径
②数据库名:将备份文件还原到哪个人物数据里,还原后可以在”区服启动文件”
配置M2连接这个数据库
例子:
[@main]
#IF
#ACT
Restore D:/test/hero10257_20231016130816.bak
hero111
[地图UI] – 大地图传送触发
大地图传送触发
大地图界面
———————————————————

当在大地图上双击或点直飞,人物即将传送到点击位置,在真正传送前,先执行以下QF触发:
[@OnBeforeBigMapUIMove]
如果QFunction-0.txt中没有这个触发段,则直接飞到点击位置.
如果有这个触发,但没有调用stop,则也可以直接飞到点击位置,只有调用stop才会禁止传送.
上面提到,双击大地图会直接触发到[@OnBeforeBigMapMove],
但如果想点击某个按钮再飞到目的地,比如点击上面大地图界面中的“直飞”按钮,
可以给这个按钮添加:
link=RunScriptAction
BigMapUIMove %fullmap%
例子:
; 每次在大地图上点传送按钮后触发,
;
在这个触发里,开发人员可以进行扣费,默认可以直接传送,调用stop不允许传送
;
例子中移动一次扣金币10000,实际扣什么以及需要什么条件,可以自己加.
;
—————————————————-
[@OnBeforeBigMapUIMove]
#IF
CheckGold
< 10000
#ACT
MessageBox 金币不足,无法传送
stop
;金币不足调用stop,不允许通过大地图传送
BREAK
#IF
CheckLevel < 15
#ACT
MessageBox
15级以上才可以直接大地图传送
stop ;等级不足,调用stop,不允许通过大地图传送
BREAK
; 以上检测通过,可以移动
#IF
#ACT
Take 金币 10000
;扣费
Close ;传送到目的地后随即关闭当前大地图(如不需要关闭,屏蔽此行脚本)
[地图UI] – 便捷传送触发
地图便捷传送触发
1. 地图便捷传送前触发
———————————————————
这个界面有3个QF触发:
1. 点击“门点”列表触发到:[@OnBeforeConvMapUIDoorPoint]
2. 点击“回城”按钮触发到:[@OnBeforeConvMapUIGoHome]
3.
点击“随机”按钮触发到:[@OnBeforeConvMapUIRandpos]
回城按钮:link=RunScriptAction
ConvMapUIGoHome
随机按钮:link=RunScriptAction
ConvMapUIRandpos
如果QFunction-0.txt中没有对应的触发段,则直接执行对应的传送.
如果有触发,但没有调用stop,则也执行传送,只有触发中调用stop才会禁止传送.
例子1:点到门点列表
==============================
QFunction-0.txt:
[@OnBeforeConvMapUIDoorPoint]
#IF
CheckGold
< 10000
#ACT
MessageBox
金币不足,无法传送
stop ;金币不足调用stop,不允许通过门点列表传送
BREAK
#IF
CheckLevel < 15
#ACT
MessageBox 15级以上才可以使用便捷门点传送
stop ;等级不足,调用stop,不允许通过门点列表传送
BREAK
; 以上检测通过,可以移动
#IF
#ACT
Take 金币 10000 ;扣费
;Close ;传送到目的地后随即关闭当前便捷传送界面(如不需要关闭,屏蔽此行脚本)
例子2:点到“回城”按钮
==============================
QFunction-0.txt:
[@OnBeforeConvMapUIGoHome]
#IF
CheckGold
< 10000
#ACT
MessageBox
金币不足,无法回城
stop ;金币不足调用stop,不允许在便捷传送界面回城
BREAK
#IF
CheckLevel < 15
#ACT
MessageBox 15级以上才可以使用便捷回城
stop ;等级不足,调用stop,不允许在便捷传送界面回城
BREAK
; 以上检测通过,可以回城
#IF
#ACT
Take 金币 10000 ;扣费
Close ;回城后随即关闭当前便捷传送界面(如不需要关闭,屏蔽此行脚本)
例子3:点到“随机”按钮
==============================
QFunction-0.txt:
[@OnBeforeConvMapUIRandpos]
#IF
CheckGold
< 10000
#ACT
MessageBox
金币不足,无法在当前地图随机
stop ;金币不足调用stop,不允许在便捷传送界面随机
BREAK
#IF
CheckLevel < 15
#ACT
MessageBox 15级以上才可以在当前地图随机
stop ;等级不足,调用stop,不允许在便捷传送界面随机
BREAK
; 以上检测通过,可以随机
#IF
#ACT
Take 金币 10000 ;扣费
;Close ;随机后随即关闭当前便捷传送界面(如不需要关闭,屏蔽此行脚本)
[地图] -人物进出 触发
地图触发
1. 人物进入地图后触发
————————————————————
脚本:
Q-Function.txt
触发:
[@EnterMap]
示例:
[@EnterMap]
#IF
#ACT
SENDMSG 5 Toast 你已进入<$CURMAP>;执行脚本的时候,人物已在新的地图
2. 人物离开地图前触发
————————————————————
脚本:
Q-Function.txt
触发:
[@LeaveMap]
示例:
[@LeaveMap]
#IF
#ACT
SENDMSG 5 你正准备离开<$CURMAP>
;执行脚本的时候,人物还在当前地图(还没有到新的地图)
3. 镜像地图时间改变(全局触发)
————————————————————
脚本:
Q-Function.txt
触发:
[@地图时间改变G
%p1 %p2]
参数:
%p1:当前地图名
%p2:当前地图剩余时间
说明:
调用MirrorMapTime设置镜像地图时间会调用此触发
注意:每次改变全局触发一次
例子:
QFunction-0.txt
[@地图时间改变G %mapname
%leftsec]
#IF
#ACT
sendmsg 1 地图[%mapname]剩余时间为:%leftsec秒
4.
镜像地图时间改变(人物触发)
————————————————————
脚本:
Q-Function.txt
触发:
[@地图时间改变P
%p1 %p2]
参数:
%p1:当前地图名
%p2:当前地图剩余时间
说明:
调用MirrorMapTime设置镜像地图时间会调用此触发
注意:每次改变触发到每个人物
[人物] – 登录]触发
人物登录触发
人物登录常量
———————————————–
<$DAYLOGINCOUNT>
;当天登录次数
<$WEEKLOGINCOUNT> ;本周登录次数
<$MONTHLOGINCOUNT> ;本月登录次数
人物每次登录触发
———————————————————
脚本:
QManage.txt
触发段:
[@Login]
例子:
[@Login]
#IF
#ACT
SENDMSG 1
<$USERNAME>上线了
每天第1次登录触发
———————————————————
脚本:
QFunction-0.txt
触发段:
[@SetDay]
例子:
[@SetDay]
#IF
#ACT
SENDMSG 6
你当天第一次登录
每周第1次登录触发
———————————————————
脚本:
QFunction-0.txt
触发段:
[@SetWeek]
例子:
[@SetWeek]
#IF
#ACT
SENDMSG 6 你是本周第一次登录
每月第1次登录触发
———————————————————
脚本:
QFunction-0.txt
触发段:
[@SetMonth]
例子:
[@SetMonth]
#IF
#ACT
SENDMSG 6 你是本月第一次登录
人物大退触发
———————————————————
脚本:
QFunction-0.txt
触发段:
[@PlayOffLine]
人物小退触发
———————————————————
脚本:
QFunction-0.txt
触发段:
[@PlayReconnection]
;开始挂机触发
[@StartAutoPlayGame]
;停止挂机触发
[@StopAutoPlayGame]
;装备被镶嵌后宝石后触发
[@BagUseStoneItemOK]
;装备被摘除宝石后触发
[@RemoveStoneItem]
;物品到期触发
[@ItemExpired]
;开始寻路触发
[@FindPathBegin]
;中途停止寻路触发
[@FindPathStop]
;寻路完成触发
[@FindPathEnd]
[人物] – 属性触发
人物属性触发
人物属性变化触发
————————————————————-
当人物穿戴装备、升级、获得或失去BUFF等所有可以导致人物属性变化后,引擎将调用此触发.
可以在此触发中实现自定义战力,恢复血量等众多功能.
脚本:
QFunction-0.txt
触发段:
[@AbilityChanged]
装备被镶嵌后宝石后触发
———————————————————
脚本:
QFunction-0.txt
触发段:
[@BagUseStoneItemOK]
装备被摘除宝石后触发
———————————————————
脚本:
QFunction-0.txt
触发段:
[@RemoveStoneItem]
物品到期触发
———————————————————
脚本:
QFunction-0.txt
触发段:
[@ItemExpired]
;攻击模式改变触发
[@AttatckModeChange]
复活时触发
————————————————————-
[@Revival]
#IF
#ACT
SendMsg 5
你复活了继续折腾把!下次复活时间间隔<$REVIVALTIME>秒
背包满触发
————————————————————-
[@背包满]
SendMsg 5 你的背包满了
人物获取BUFF触发
————————————————————-
[@获得BUFF %buff名称]
人物BUFF结束触发
————————————————————-
[@移除BUFF %buff名称]
;获得经验触发
[@GetExp]
;升级触发
[@PlayLevelUp]
[人物] – 走路触发
人物走路触发
1.
走路触发
————————————————–
脚本:
QFunction-0.txt
触发段:
[@Walk]
2.
跑步触发
————————————————–
脚本:
QFunction-0.txt
触发段:
[@Run]
[人物] – 改名触发
人物改名触发
脚本:
QFunction-0.txt
触发段:
[@ChangeHumNameOK %oldname %newname]
#ACT
#SAY
你的名字修改成功,旧名称:%oldname
新名称:%newname!
<关闭/@exit>
[@NameLengthFail]
名字长度不允许超过23个字符!
<关闭/@exit>
[@HumNameFilter]
该名字存在非法字符!
<关闭/@exit>
[@HumNameExists]
该名字已经被其他玩家占用,请选择其他名字
<关闭/@exit>
[@ChangeHumNameFail]
改名失败!
<关闭/@exit>
[人物] – 挂机寻路触发
人物挂机寻路触发
开始挂机触发
———————————————————
脚本:
QFunction-0.txt
触发段:
[@StartAutoPlayGame]
停止挂机触发
———————————————————
脚本:
QFunction-0.txt
触发段:
[@StopAutoPlayGame]
挂机时间用完触发
———————————————————
脚本:
QFunction-0.txt
触发段:
[@AutoPlayGameTimeout]
说明:
在此触发中进行挂机到期提示,或根据相应条件增加挂机时间或安全回城.
开始寻路触发
———————————————————
脚本:
QFunction-0.txt
触发段:
[@FindPathBegin]
中途停止寻路触发
———————————————————
脚本:
QFunction-0.txt
触发段:
[@FindPathStop]
寻路完成触发
———————————————————
脚本:
QFunction-0.txt
触发段:
[@FindPathEnd]
查装触发
功能: 查看他人装备触发、查看装备属性触发
本引擎支持排行榜等跨地图查看装备触发,支持被看人物不在线也能触发.
查看他人装备触发:@QueryUserState
他人查看自己的装备触发:@UserQueryState
[@QueryUserState]
#ACT
SENDMSG 5
你查看了他人<$UserStateName>的装备
[@UserQueryState]
#ACT
SENDMSG 5
他人<$CurUserName>查看了你的装备
;———————————————————————
*中止查看他人\装备”
命令:stopQueryUserState
[@QueryUserState]
#ACT
stopQueryUserState
SENDMSG 5
禁止查看他人<$UserStateName>的装备
例子:
===========================
[@QueryUserState]
#ACT
MOV
S1 <$UserStateName>
;SetCurrTarget 名称
(名称空的情况下表示清空当前对象;设置指定人物为当前对象)
;使用SetCurrTarget设置当前对象
SetCurrTarget
S1
#IF
CompareText
C.<$USERNAME> S1
;检测设置的对象是否成功
#say
SENDMSG 5 【C.<$USERNAME>
】等级=【C.<$LEVEL> 】攻击=【C.<$DC> – C.<$MAXDC>
】PK值=【C.<$PKPOINT> 】
#ELSESAY
SENDMSG 5 对象获取失败。
获得经验触发
人物获得经验触发
获取经验常量:<$GetExp>
QFunction-0.txt
;//获取经验前触发
[@GetExp]
#if
#act
MOV N$经验计算
<$GetExp>
MUL N$经验计算 2
SENDMSG 5
:人物本次获取经验为:<$str(N$经验计算)>
RETURN <$str(N$经验计算)>
// 注意:本引擎默认RETURN命令会终止当前脚本执行,应该放在最后执行
如果希望return不中断继续执行,可在“!配置项.txt“中设置:
Return继续运行:1
要注意:”禁用脚本return中断”是全局设置,影响所有脚本执行逻辑,慎重配置!!!
[攻击] – 攻击触发(人物)
人物攻击触发
QFunction-0.txt
;所有触发只有攻击到怪物才会触发,有些魔法不会触发,如魔法盾
相关常量
<$CURRRTARGETFULLNAME>
增加变量以显示完整名(不去数字):
<$CURRRTARGETNAME>
下面示例脚本中变量不获取怪物名字后面的数字
<$CURRRTARGETOBJTYPE>
当前攻击对象类型
<$CURRRTARGETOBJID>
当前攻击对象ObjID
1.
魔法攻击触发
——————————————————————-
[@MagicAttack]
#IF
#ACT
SENDMSG 6 255 249
你攻击了对象 类型:<$CURRRTARGETOBJTYPE>
ObjID:<$CURRRTARGETOBJID>
#IF
CHECKCURRTARGETRACE
= 0
#ACT
SENDMSG 6 255 249
你攻击了人物【<$CURRRTARGETNAME>】。使用魔法ID=<$CURRRUSEMAGICID>
BREAK
#IF
CHECKCURRTARGETRACE = 1
#ACT
SENDMSG 6 255
249
你攻击了怪物【<$CURRRTARGETNAME>】。使用魔法ID=<$CURRRUSEMAGICID>
BREAK
#IF
CHECKCURRTARGETRACE = 2
#ACT
SENDMSG 6 255
249
你攻击了英雄【<$CURRRTARGETNAME>】。使用魔法ID=<$CURRRUSEMAGICID>
BREAK
2.
物理攻击触发
——————————————————————-
[@Attack]
#IF
CHECKCURRTARGETRACE
= 0
#ACT
SENDMSG 6 255 249
你攻击了人物【<$CURRRTARGETNAME>】。使用魔法ID=<$CURRRUSEMAGICID>
BREAK
#IF
CHECKCURRTARGETRACE = 1
#ACT
SENDMSG 6 255
249
你攻击了怪物【<$CURRRTARGETNAME>】。使用魔法ID=<$CURRRUSEMAGICID>
BREAK
#IF
CHECKCURRTARGETRACE = 2
#ACT
SENDMSG 6 255
249
你攻击了英雄【<$CURRRTARGETNAME>】。使用魔法ID=<$CURRRUSEMAGICID>
BREAK
3.
被物理攻击触发
——————————————————————-
[@Struck]
#IF
CHECKCURRTARGETRACE
= 0
#ACT
SENDMSG 6 255 253
你被人物【<$CURRRTARGETNAME>】攻击了。使用魔法ID=<$CURRRUSEMAGICID>
BREAK
#IF
CHECKCURRTARGETRACE = 1
#ACT
SENDMSG 6 255
253
你被怪物【<$CURRRTARGETNAME>】攻击了。使用魔法ID=<$CURRRUSEMAGICID>
BREAK
#IF
CHECKCURRTARGETRACE = 2
#ACT
SENDMSG 6 255
253
你被英雄【<$CURRRTARGETNAME>】攻击了。使用魔法ID=<$CURRRUSEMAGICID>
BREAK
4.
被魔法攻击触发
——————————————————————-
[@MagicStruck]
#IF
CHECKCURRTARGETRACE
= 0
#ACT
SENDMSG 6 255 253
你被人物【<$CURRRTARGETNAME>】攻击了。使用魔法ID=<$CURRRUSEMAGICID>
BREAK
#IF
CHECKCURRTARGETRACE = 1
#ACT
SENDMSG 6 255
253
你被怪物【<$CURRRTARGETNAME>】攻击了。使用魔法ID=<$CURRRUSEMAGICID>
BREAK
#IF
CHECKCURRTARGETRACE = 2
#ACT
SENDMSG 6 255
253
你被英雄【<$CURRRTARGETNAME>】攻击了。使用魔法ID=<$CURRRUSEMAGICID>
BREAK
[攻击] – 攻击触发(宝宝)
宝宝攻击触发
//;====================宝宝物理攻击触发===================
//;QFunction-0.txt触发 [@attackPet]
[@attackPet]
#IF
CHECKCURRTARGETRACE =
0
#ACT
SENDMSG 6
[<$USERNAME>]你的宝宝物理攻击了人物:<$CURRRTARGETNAME>
BREAK
#IF
CHECKCURRTARGETRACE = 1
#ACT
SENDMSG 6
[<$USERNAME>]你的宝宝物理攻击了怪物:<$CURRRTARGETNAME>
BREAK
#IF
CHECKCURRTARGETRACE = 2
#ACT
SENDMSG 6
[<$USERNAME>]你的宝宝物理攻击了英雄:<$CURRRTARGETNAME>
BREAK
//;====================宝宝魔法攻击触发===================
//;QFunction-0.txt触发 [@MagicAttackPet]
[@MagicAttackPet]
#IF
CHECKCURRTARGETRACE =
0
#ACT
SENDMSG 6
[<$USERNAME>]你的宝宝魔法攻击了人物:[<$CURRRTARGETNAME>]
BREAK
#IF
CHECKCURRTARGETRACE = 1
#ACT
SENDMSG 6
[<$USERNAME>]你的宝宝魔法攻击了怪物:[<$CURRRTARGETNAME>]
BREAK
#IF
CHECKCURRTARGETRACE = 2
#ACT
SENDMSG 6
[<$USERNAME>]你的宝宝魔法攻击了英雄:[<$CURRRTARGETNAME>]
BREAK
//;====================宝宝被物理攻击触发===================
//;QFunction-0.txt触发 [@StruckPet]
[@StruckPet]
#IF
CHECKCURRTARGETRACE =
0
#ACT
SENDMSG 6
[<$USERNAME>]你的宝宝被人物[<$CURRRTARGETNAME>]物理攻击了
BREAK
#IF
CHECKCURRTARGETRACE = 2
#ACT
SENDMSG 6
[<$USERNAME>]你的宝宝被英雄[<$CURRRTARGETNAME>]物理攻击了
BREAK
//;====================宝宝被魔法攻击触发===================
//;QFunction-0.txt触发 [@MagicStruckPet]
[@MagicStruckPet]
#IF
CHECKCURRTARGETRACE =
0
#ACT
SENDMSG 6
[<$USERNAME>]你的宝宝被人物[<$CURRRTARGETNAME>]魔法攻击了
BREAK
#IF
CHECKCURRTARGETRACE = 2
#ACT
SENDMSG 6
[<$USERNAME>]你的宝宝被英雄[<$CURRRTARGETNAME>]魔法攻击了
BREAK
[攻击] – 攻击掉血前触发
攻击掉血前触发
命令:
ChangeDamageValue ①类型(0值
1百分比) ②操作符(+,-,=) ③值
说明:
在伤害目标前修改伤害值
QFunction-0.txt
//
攻击掉血前触发
[@AttackDamage]
#IF
CHECKCURRTARGETRACE =
0
#act
ChangeDamageValue 0 = 10
SENDMSG 6
你攻击了人物【<$CURRRTARGETNAME>】。使用魔法ID=<$CURRRUSEMAGICID>–掉血值:<$DAMAGEVALUE>
BREAK
#IF
#ACT
ChangeDamageValue 0 =
10
SENDMSG 6
你攻击了怪物【<$CURRRTARGETNAME>】。使用魔法ID=<$CURRRUSEMAGICID>–掉血值:<$DAMAGEVALUE>
//
被攻击掉血前触发
[@StruckDamage]
#IF
CHECKCURRTARGETRACE =
0
#act
ChangeDamageValue 0 = 10
SENDMSG
6你被人物【<$CURRRTARGETNAME>】攻击了。使用魔法ID=
<$CURRRUSEMAGICID>–掉血值:<$DAMAGEVALUE>
BREAK
#IF
#ACT
ChangeDamageValue 0 =
10
SENDMSG 6
你被怪物【<$CURRRTARGETNAME>】攻击了。使用魔法ID=<$CURRRUSEMAGICID>–掉血值:<$DAMAGEVALUE>
//;====================宝宝攻击前触发===================
//;QFunction-0.txt触发 [@AttackDamageBB]
[@AttackDamageBB]
#IF
CHECKCURRTARGETRACE =
0
#ACT
ChangeDamageValue 0 = 10
SENDMSG 6
[<$USERNAME>]你的宝宝攻击了人物【<$CURRRTARGETNAME>】。掉血值:<$DAMAGEVALUE>
BREAK
#IF
CHECKCURRTARGETRACE =
1
#ACT
ChangeDamageValue 0 = 10
SENDMSG 6
[<$USERNAME>]你的宝宝攻击了怪物【<$CURRRTARGETNAME>】。掉血值:<$DAMAGEVALUE>
BREAK
;====================宝宝被攻击前触发===================
// QFunction-0.txt触发
[@StruckDamageBB]
[@StruckDamageBB]
#IF
CHECKCURRTARGETRACE =
0
#ACT
ChangeDamageValue 0 = 10
SENDMSG 6
[<$USERNAME>]你的宝宝被人物【<$CURRRTARGETNAME>】攻击了。掉血值:<$DAMAGEVALUE>
BREAK
#IF
CHECKCURRTARGETRACE =
1
#ACT
ChangeDamageValue 0 = 10
SENDMSG 6
[<$USERNAME>]你的宝宝被怪物【<$CURRRTARGETNAME>】攻击了。掉血值:<$DAMAGEVALUE>
[装备] – 穿戴触发
穿戴触发
1.
穿戴前触发
—————————————————–
脚本:
QFunction-0.txt
触发:
[@TakeOnBeforeX] ;X代表装备位置
[@TakeOnBeforeEX] ;任意穿戴触发
说明:
在穿戴触发前脚本中调用stop将阻止穿戴.
注意:如果在穿戴前触发中调用MAPMOVE命令,会导致穿戴撤销.
如果要实现装备穿戴传送地图,请放在穿戴后触发,
或在触发中弹框让玩家确定(推荐).
例子:
[@TakeOnBefore0]
#IF
#ACT
SENDMSG 6 穿戴衣服前触发了
SENDMSG 6 装备名称:<$CURRTEMNAME>,
SENDMSG 6 装备唯一ID:<$CURRTEMMAKEINDEX>
[@TakeOnBeforeEX]
#IF
#ACT
SENDMSG 6 任意穿戴前触发了
SENDMSG 6 穿戴位置:<$CURRTAKETEMPOS>
SENDMSG 6 装备名称:<$CURRTEMNAME>
SENDMSG 6 装备唯一ID:<$CURRTEMMAKEINDEX>
;自定义穿戴条件
[@TakeOnBeforeEX]
#IF
EQUAL <$CURRTEMNAME>
木剑
CHECKLEVELEX > 19
#ACT
MESSAGEBOX 你已超过19级,不要再拿木剑了
stop ;此句将阻止穿戴
BREAK
2.
穿戴后触发
—————————————————–
脚本:
QFunction-0.txt
触发:
[@TakeOnX]
;X代表装备位置
[@TakeOnEx] ;任意穿戴触发
说明:
装备已穿戴到人物身上后触发.
如果人物身上已对应位置处已有装备,则先触发脱,后触发穿.
例子:
[@TakeOn0]
#IF
#ACT
SENDMSG 6 穿戴衣服后触发了
SENDMSG 6
装备名称:<$CURRTEMNAME>
SENDMSG 6
装备唯一ID:<$CURRTEMMAKEINDEX>
#ACT
SENDMSG 6 穿戴任意装备后触发了
SENDMSG 6 穿戴位置:<$CURRTAKETEMPOS>
SENDMSG 6 装备名称:<$CURRTEMNAME>
SENDMSG 6 装备唯一ID:<$CURRTEMMAKEINDEX>
3.
脱下前触发
—————————————————–
脚本:
QFunction-0.txt
触发:
[@TakeOffBeforeX] ;X代表装备位置
[@TakeOffBeforeEX]
;脱下任意装备前
说明:
如果在脱下前触发脚本中调用MAPMOVE等传送地图命令,
会导致脱下撤销.
例子:
[@TakeOffBefore0]
#IF
#ACT
SENDMSG 6 脱下衣服前触发了
SENDMSG 6
装备名称:<$CURRTEMNAME>
SENDMSG 6
装备唯一ID:<$CURRTEMMAKEINDEX>
[@TakeOffBeforeEX]
#IF
#ACT
SENDMSG 6 脱下任意装备前触发
SENDMSG 6
脱下位置:<$CURRTAKETEMPOS>
SENDMSG 6 装备名称:<$CURRTEMNAME>
SENDMSG 6
装备唯一ID:<$CURRTEMMAKEINDEX>
4.
脱下后触发
—————————————————–
脚本:
QFunction-0.txt
触发:
[@TakeOffX] ;X代表装备位置
[@TakeOffEX]
;脱下任意装备后
说明:
此时装备已脱下到包裹里
例子:
[@TakeOff0]
#IF
#ACT
SENDMSG 6 脱下衣服后触发了
SENDMSG 6
装备名称:<$CURRTEMNAME>
SENDMSG 6 装备唯一ID:<$CURRTEMMAKEINDEX>
[@TakeOffEx]
#IF
#ACT
SENDMSG 6 脱下任意装备前触发
SENDMSG 6
脱下位置:<$CURRTAKETEMPOS>
SENDMSG 6 装备名称:<$CURRTEMNAME>
SENDMSG
6 装备唯一ID:<$CURRTEMMAKEINDEX>
[装备] – 拾取触发
拾取/扔掉触发
功能:对物品进行关联 捡取物品触发
LINKPICKUPITEM 关联脚本命令可以对当前捡取物品进行关联后进行操作
支持: [@ScatterBagItems] [@TakeOffX] [@PickUpItemX] [@DropItemX] [@PickUpItemEx] [@DropItemEX]
[@PickUpItemfrontEx] [@DropItemfrontEX] [@PickUpItemfrontX] [@DropItemfrontX] [@MonDropItemXX] [@MonDropItemEX]
下面触发中的XX=物品数据库中对应的IDX
玩家捡取物品后按IDX触发:
[@PickUpItemXX]
玩家捡取任意物品后触发:
[@PickUpItemEX]
玩家捡取物品前按IDX触发:
[@PickUpItemfrontXX]
玩家捡取任意物品前触发:
[@PickUpItemfrontEX]
玩家仍掉物品后按IDX触发:
[@DropItemXX]
玩家仍掉任意物品后触发:
[@DropItemEX]
玩家仍掉物品前按IDX触发:
[@DropItemfrontXX]
玩家仍掉任意物品前触发:
[@DropItemfrontEX]
;—————————————————-
怪物掉落指定IDX物品前触发:[@MonDropItemXX]
怪物掉落任意物品前触发:
[@MonDropItemEX]
;按照IDX扔物品
[@DropItem0]
#IF
#ACT
LINKPICKUPITEM
;关联后就可以使用其他脚本命令对刚刚扔的物品进行检测,或操作
CHANGEITEMNAMECOLOR -1 253
;修改该物品的名称颜色
CHANGEITEMUPGRADECOUNT -1 + 1
;修改物品星星数量
;按照IDX捡取物品
[@PickUpItem0]
#IF
#ACT
LINKPICKUPITEM
;关联后就可以使用其他脚本命令对刚刚捡取的物品进行检测,或操作
CHANGEITEMNAMECOLOR -1 253 ;修改该物品的名称颜色
CHANGEITEMUPGRADECOUNT -1 + 1
;修改物品星星数量
;捡取任意物品触发
[@PickUpItemEx]
#IF
#SAY
某某某捡到了一个<$CURRTEMNAME>
[@MonDropItem50026]
#IF
#ACT
SENDMSG 0
你杀了怪物:【<$CURRRTARGETNAME>】掉落了IDX:<$CURRTEMINDEX>物品名称:<$CURRTEMNAME>
[@MonDropItemEX]
#IF
#ACT
SENDMSG 0
你杀了怪物:【<$CURRRTARGETNAME>】掉落了物品名称:<$CURRTEMNAME>
<$CURRTEMNAME>
当前物品名称
指人物掉落、捡取、杀死怪物爆出来
<$CURRRTARGETNAME>
当前死亡的对象名称
<$G_CURRTEMNAME>
当前物品改名名称
指人物掉落、捡取、杀死怪物爆出来
<$CURRTEMSTDMODE>
当前物品DB字段StdMode值
指人物掉落、捡取、杀死怪物爆出来
<$CURRTEMSHAPE>
当前物品DB字段Shape值
指人物掉落、捡取、杀死怪物爆出来
<$CURRTEMANICOUNT>
当前物品DB字段AniCount值
指人物掉落、捡取、杀死怪物爆出来
<$CURRTEMLOOKS>
当前物品DB字段Looks值
指人物掉落、捡取、杀死怪物爆出来
<$CURRTEMDURA>
当前物品当前持久值
指人物掉落、捡取、杀死怪物爆出来
<$CURRTEMDURAMAX>
当前物品最大值
指人物掉落、捡取、杀死怪物爆出来
<$CURRTEMINDEX>
当前物品DB字段Idx值
指人物掉落、捡取、杀死怪物爆出来
<$CURRTEMCOLOR>
当前物品DB字段Color值
指人物掉落、捡取、杀死怪物爆出来
击杀触发
杀怪触发和杀人触发
以下脚本放QFunction-0.txt
杀死怪物或人物,爆物品触发
[@ScatterBagItems]
#IF
CHECKCURRTARGETRACE =
0
#ACT
SENDMSG 6
你杀死了人物:【<$CURRRTARGETNAME>】,并从人物包裹里爆出物品
#ELSEACT
SENDMSG 6
你杀死了怪物:【<$CURRRTARGETNAME>】,并从怪物包裹里爆出物品
;———————————————–
杀死人物时触发
[@KillPlay]
#IF
#ACT
MessageBox
你杀死了人物<$KILLPlayNAME>
;———————————————–
任意地图杀死怪物触发
[@KillMon]
#IF
#ACT
SENDMSG 7
你杀死:<$KILLMONNAME>
break
;———————————————–
指定地图杀死怪物时触发
检测当前死亡怪物名称 CheckKillMonName
说明:
对应地图参数中需要加入ONKILLMON才可生效!
[@OnKillMob]
#IF
CheckKillMonName 双头金刚
#act
SENDMSG
0 你杀死了怪物名称<$KILLMONNAME>
;<$KILLMONNAME>
取怪物名字不带数字
;<$KILLMONNAMEEX> 取怪物名字带数字
[点击] – 怪物触发
点击怪物触发
1. 设置怪物可被点击触发
————————————————————-

2. 点击触发
————————————————————-
脚本:
QFunction-0.txt
触发段:
[@怪物点击触发xxx]
xxx是怪物ID
例子1:
QFunction-0.txt
[@怪物点击触发818]
SENDMSG
5 你点击了怪物<$CURRRTARGETNAME>
stop ;如果调用stop则中止攻击,不调用则冲上去砍怪物
DelayGoto 3000 @攻击当前怪物 ;延迟3秒攻击点击的怪物
[@攻击当前目标]
AttackTarget ;让人物去攻击当前目标
例子2:
QFunction-0.txt
[@怪物点击触发818]
M.AddHpper – 50 ;点击一下怪物让怪物少一半血
[点击] – 任务列表
点击任务列表项触发
脚本:
QFunction-0.txt
触发段:
[@点击任务列表 %missionname]
;%missionname:在任务列表中点击的任务名称
说明:
此触发用以实现自定义任务列表点击功能
[技能] – 触发
使用技能触发
1. 使用技能前触发
——————————————————–
脚本:
Q-Function.txt
触发:
[@BeginMagic]
参数:
参数1:<$param1>触发的技能ID
参数2:<$param2>触发的技能名称
说明:
如果在触发中调用stop,则阻止技能放出,
客户端还是会摆出技能动作和释放特效,但实际没有技能生成.
例子:
Q-Function.txt
[@BeginMagic]
#IF
#ACT
SendMsg5 使用技能前触发了:技能ID=<$PARAM1>,技能名称= <$PARAM2>
2. 自身使用技能后触发(触发发到自己)
——————————————————–
脚本:
Q-Function.txt
触发:
[@MagSelfFuncX]
参数:
其中X表示要触发的魔法ID
3.
对目标人物使用技能后触发(触发到自已)
——————————————————–
脚本:
Q-Function.txt
触发:
[@MagTagFuncX]
参数:
其中X表示要触发的魔法ID
4.
对目标人物使用技能后触发(触发到目标)
——————————————————–
脚本:
Q-Function.txt
触发:
[@MagTagFuncExX]
参数:
其中X表示要触发的魔法ID
5.
对目标怪物使用技能后触发(触发到自已)
——————————————————–
脚本:
Q-Function.txt
触发:
[@MagMonFuncX]
参数:
其中X表示要触发的魔法ID
例子:
使用治愈术时触发脚本
[@MagSelfFunc2]
#ACT
SendMsg
5 自己加血
[@MagTagFunc2]
#ACT
SendMsg 5
给别人加血
[@MagMonFunc2]
#ACT
SendMsg 5
给怪物加血.
[@MagMonFunc23]
#IF
#ACT
SendMsg
5
使用灵魂火符攻击到怪物”<$CURRRTARGETNAME>”,怪物ObjID:<$CURRRTARGETOBJID>
学习到新技能后触发
———————————————
脚本:
Q-Function.txt
触发:
[@OnNewSkill %skillname]
参数:
%skillname:技能名称
例子:
[@OnNewSkill
%skillname]
#IF
#ACT
MessageBox 技能“%skillname”已修炼
组队触发
组队触发
功能: 创建小组时触发.
说明: 队员的名字放在队长S0变量中.
[@GroupCreate]
#IF
#ACT
SendMsg 5
<$STR(S0)>加入了组队.
S0.SendMsg 5 你加入了组队.
;———————————————-
功能: 在组队前触发
[@StartGroup]
#IF
CheckLevelEx <
25
#ACT
CreateGroupFail
SendMsg 5 25级之后才可以组队.
;———————————————-
功能: 离开队伍时触发.
说明: 被删除的队员名字放在队长的S0变量中.
[@LeaveGroup]
#IF
#ACT
SendMsg 5 你退出了组队.
;———————————————-
功能: 删除小组成员时触发.
说明: 被删除的队员名字放在队长的S0变量中.
[@GroupDelMember]
#IF
#ACT
S0.SendMsg 5
你被队长踢出了组队!
;———————————————-
功能: 添加小组成员时触发.
说明: 队员名字放在队长的S0变量中.
[@GroupAddMember]
#IF
#ACT
SendMsg 5
<$STR(S0)>加入了队伍.
S0.SendMsg 5 你加入了队伍.
;———————————————-
功能: 组队杀死怪物时触发.
[@GroupKillMon]
#IF
#ACT
SendMsg 5 组队杀怪.
;———————————————-
功能:获取组队成员数量
格式:GETGROUPCOUNT 变量名
[@GETGROUPCOUNT]
#if
#act
GETGROUPCOUNT
P1
#SAY
你当前组队的队友有<$STR(P1)>人
;———————————————-
自动退出组队命令(个人通过脚本执行)
#act
exitGroup
SENDMSG 6
你已经主动离开了队伍
;———————————————
删除队友功能: (只有队长才能用此命令,才会生效 )
#act
DELETEGROUPMENBER 成员名
SENDMSG 6 你被队长踢出了队伍!
行会触发
行会触发相关
;QFunction-0.txt
//;创建行会前触发
[@CheckBuildGuild]
#IF
#ACT
SENDMSG 7
禁止<$USERNAME>创建行会
Stop
//;加入行会前触发例子
[@GuildAddMember]
#IF
LARGE U30
0
#ACT
SENDMSG 7 [<$STR(U30)>]秒后你才可以加入行会
Stop
//;加入行会触发
[@GuildAddMemberAfter ]
//;退出行会触发
[@GuildDelMember]
#IF
#ACT
MOV U30
120
SENDMSG 7 <$USERNAME>退出行会
//;编辑行会公告前触发
[@UpdateGuildNotice]
//;退出行会前触发
[@GuildDelMemberBefore]
//;解散行会前
[@GuildCloseBefore]
//;解散行会
[@GuildClose]
[@SetGuildRank1]
#IF
#act
Sendmsg 6
任命掌门人前触发
Stop
[@SetGuildRank2]
#IF
#act
sendmsg 6
任命副掌门前触发
Stop
[@SetGuildRank3]
#IF
#act
sendmsg 6
任命成员3前触发
Stop
[@SetGuildRank4]
#IF
#act
sendmsg 6
任命成员4前触发
Stop
[@SetGuildRank5]
#IF
#act
sendmsg 6
任命成员5前触发
Stop
[@InivitGuild]
#IF
#act
Stop
sendmsg 6
邀请入会前触发
任务触发
任务触发
1. 接到任务触发
——————————————————–
脚本:
QFunction-0.txt
触发:
[@接到任务
%missionname]
参数:
%missionname:已接到任务的名称
例子:
#IF
#ACT
SENDMSG 5
你已接到任务:%missionname
2.
完成任务触发
——————————————————–
脚本:
QFunction-0.txt
触发:
[@完成任务
%missionname]
参数:
%missionname:已完成任务的名称
例子:
#IF
#ACT
SENDMSG 5
你已完成任务:%missionname
3.
领取任务奖励后触发
——————————————————–
脚本:
QFunction-0.txt
触发:
[@领取任务奖励 %missionname]
参数:
%missionname:已领取奖励任务的名称
例子:
#IF
#ACT
SENDMSG 5
你已领取任务”%missionname”所发奖励
[直播] – 互动触发
直播互动触发
QFunction-0.txt
1.
有人在直播间刷礼物时
——————————————————–
[@直播间刷礼物 %礼物ID %礼物名 %个数 %p礼物价值1 %礼物价值2]
#IF
#ACT
SENDMSG 1 玩家”<$USERNAME>”在直播间刷礼物了(ID:%礼物ID
名称:%礼物名 个数:%个数)
2.
有人在直播间点赞时
——————————————————–
[@直播间点赞 %赞个数]
#IF
#ACT
SENDMSG 1
玩家”<$USERNAME>”在直播间点了”%赞个数”个赞
3.
有人在直播间发弹幕时
——————————————————–
[@直播间弹幕 %弹幕内容]
#IF
#ACT
SENDMSG 1
玩家”<$USERNAME>”在直播间发了弹幕,内容为:%弹幕内容
4.
有人分享直播间时
——————————————————–
[@直播间分享]
#IF
#ACT
SENDMSG 1
玩家”<$USERNAME>”在分享了直播间
5.
有人关注直播间时
——————————————————–
[@直播间关注]
#IF
#ACT
SENDMSG 1
玩家”<$USERNAME>”关注了直播间
[货币] – 改变触发
货币改变触发
触发格式:[@MoneyChangeX] X=货币ID
当前身上货币常量:<$OLDMONEY>
改变后的货币常量:<$CURRMONEY>
[@MoneyChange1]
#if
#ACT
SENDMSG 6
当前货币:<$OLDMONEY>,改变后货币:<$CURRMONEY>
BREAK
[@MoneyChange2]
#if
#ACT
SENDMSG 6
当前货币:<$OLDMONEY>,改变后货币:<$CURRMONEY>
BREAK
[货币] – 充值触发
[@ReCharge] ;充值触发
<$STR(N0)>
;当前充值的货币ID,其中系统内置4种货币对应ID如下
-1 元宝
-2 绑元
-3 金币
-4
金币(绑)
<$STR(M0)> ;当前充值金额,M变量已升级到64位
;QFunction-0.txt
放到此文本下
[@ReCharge]
#IF
#ACT
MOV N$元宝比例 100
MOV N$金刚石比例 1
MUL
N$得到元宝 <$STR(N$元宝比例)> <$STR(M0)>
MUL N$得到金刚石
<$STR(N$金刚石比例)> <$STR(M0)>
SENDMSG 1
★[%s]:恭喜玩家<$USERNAME>成功充值<$STR(N$得到元宝)>元宝,如果您也想获得,请赶快充值吧。
SENDMSG 1
★[%s]:恭喜玩家<$USERNAME>成功充值<$STR(N$得到金刚石)>金刚石,如果您也想获得,请赶快充值吧。
摆摊触发
摆摊触发
打开摆摊窗口之前首先执行Q-Function中的@StartMyShop脚本段.
脚本命令ForbidMyShop用于中断摆摊.
例子:以下脚本放在Q-Function中.
[@StartMyShop]
#IF
ISDUPMODE
#SAY
请找一个空位置,不能与别人站在一起。
#ACT
ForbidMyShop
BREAK
#IF
CheckStringlength <$STALLNAME> >
20
#SAY
你的摊位名称长度超过10个字
#ACT
BREAK
#IF
NOT
INSAFEZONE
#SAY
需要在安全区使用摆摊功能!
#ACT
ForbidMyShop
BREAK
#IF
NOT IsOnMap
3
#SAY
需要在盟重使用摆摊功能.
#ACT
ForbidMyShop
BREAK
#IF
CheckLevelEx <
40
#SAY
需要40级才可以使用摆摊功能!
#ACT
ForbidMyShop
摆摊成功触发Q-Function
[@StartMyShopOK]
STOPMYSHOP // 取消摆摊命令
例子:
[@StartMyShopOK]
#IF
#ACT
sendmsg 9 摆摊成功触发了
[@按钮-取消摆摊]
#IF
#ACT
STOPMYSHOP
sendmsg 9
你取消了摆摊
商铺触发
商铺触发
商城具体配置,请查看表”Mir200\Envir\Data\商铺物品(cfg_store).csv”
商铺去掉原价功能
(商铺表格第6列填0或空,则不显示原价)
多货币设置
字段:货币名称#(第5列)
格式:货币ID#货币ID#货币ID
(商城显示货币数量,取第一个货币ID)
说明:扣除顺序从前往后扣,第一个货币满足扣第一个,不满足则
第一个货币+第二个货币+第三个货币
比如:4#2,先扣货币ID4的在扣货币ID2的 如果货币ID4不足会自动从货币ID补
字段:每份数量(第4列)
每次最少买多少个
商铺物品是否满足指定条件显示功能
;购买前触发
@CanBuyShopItem
;写到QFunction-0.txt
[@CanBuyShopItemXX]
XX=商城填写的编号
NotAllowBuy 1 不允许购买 (0;或者不写=允许购买)
;商铺显示触发
CanShowShopItem
;写到QFunction-0.txt
[@CanShowShopItemXX]
XX=商城填写的编号
NOTALLOWSHOW (1=不显示) (0,或者不写=显示)
; 任意触发
[@CanBuyShopItemEx %goodid %buycount
%shoptab]
#IF
cmpi %shoptab = 3
#ACT
GOTO @检测第3页商铺
#ENDIF
;例子
[@CanBuyShopItem100]
#IF
CHECKLEVELEX =
50
#ACT
NotAllowBuy 1
MESSAGEBOX 不允许购买此物品[<$STR(S0)>]
;例子:
[@CanShowShopItem100]
#IF
CHECKLEVELEX =
35
#ACT
NOTALLOWSHOW 1
;不显示此物品
购买前触发[@CanBuyShopItemX]
说明:
QF脚本触发X代表物品IDX
[@CanBuyShopItem200]
#if
#ACT
sendmsg 7
购买了回城卷物品
购买后触发
;购买成功触发 @BuyShopItem
;写到QFunction-0.txt
商城常量:
<$STR(S0)> 购买物品名字
<$STR(N0)>
购买物品数量
<$STR(M0)> 购买物品金钱(64位,不担心溢出)
<$STR(M1)> 购买消耗的货币ID(0为关联货币不做显示)
;例子:
[@BuyShopItem %goodid
%makeid %limitbuy_flag]
#IF
#ACT
sendmsg 7
购买道具名称:<$STR(S0)>,购买物品数量:<$STR(N0)>,购买物品价格:<$STR(M0)>,购买使用的货币ID:<$STR(M1)>
#IF
#ACT
Toast 已成功购买<[<$Str(S0)>]/RGB:0:250:0>
x<$STR(N0)>
#IF
EQUAL %limitbuy_flag 0
#ACT
notice
【商铺】玩家”<$USERNAME>”在商铺购买了[ITM:%makeid]x<$STR(N0)>
Break
#IF
EQUAL %limitbuy_flag 1
#ACT
notice
【限购】玩家”<$USERNAME>”在商铺购买了个人限购物品[ITM:%makeid]x<$STR(N0)>
Break
#IF
EQUAL %limitbuy_flag 2
#ACT
notice
【限购】玩家”<$USERNAME>”在商铺购买了全服限购物品[ITM:%makeid]x<$STR(N0)>
Break
UI – 大对话框
打开大对话框
命令:
OPENMERCHANTBIGDLG ①背景图片
②显示位置 ③X ④Y ⑤高 ⑥宽 ⑦关闭按钮 ⑧关X ⑨关Y ⑩可移(或层标志)
(11)滑动打开
(12)滑动时间 (13)淡出时间 (14)换图不关闭 (15)比例
(16)关闭触发
说明:
打开自定义大对话框
参数:
①背景图片:
格式1:
写背景图资源名(可以是dev目录路径或pak库中素材)
格式2:
背景图名#宫格类型#背景色
宫格类型取值:
3
/* 背景是3宫格 */
9
/* 背景是9宫格 */
s9(左/右/上/下) /* 背景是9宫格拉伸,小括号里是9宫拉伸四个边距值 */
格式3: N/A(面板标题栏文本) /*
打开Windows风格背景框,小括号里写标题栏文本
*/
②显示位置:0左上 1右上 2左下
3右下 4居中 5左中 6右中 7上中 8下中
⑧关X ⑨关Y:
关闭按钮位置
⑩可移(或层标志): 0不可移动
1可移动
层标志可取:可移动|离焦关闭|屏蔽Esc关闭
以下参数可选填:
(11)滑动打开:0无滑动 1左向右滑出
2右向左滑动 3从上端向下滑出 4从下端向上滑出
(12)滑动时间:设置滑动打开时间,为毫秒
(13)淡出时间:大对话框打开时淡出效果时间,毫秒(0不淡出)
(14)切图不关闭:当地图切换时,是否不关闭大对话框, 0不关闭
1关闭
(15)比例:不填或填0比例不变,此参数用于微调手机端和PC端UI整体缩放,以达最佳UI布局适配
(16)关闭触发:当大对话框关闭时,触发到当前脚本文本中的@段名
例子:
; 打开普通背景大对话框
[@Main]
#IF
#ACT
OPENMERCHANTBIGDLG 图像资源名 4 0 0 480 686 0 0 0 可移动|离焦关闭
0 0 0 0 0 @关闭触发
<Text|x=0.1|y=0.05|text=闪烁渐变空格变色速度可调的走马灯效果展示|color=255,254,253|变色间隔=300|size=+2|渐变色=251|scrollWidth=250>
[@关闭触发]
#IF
#ACT
SENDMSG 6
大对话框关闭了
;
打开3宫格背景
[@main]
#IF
#ACT
OPENMERCHANTBIGDLG 3宫格0#3 4
0 0 320 480 0 0 0 1
;
打开9宫格背景
[@main]
#IF
#ACT
OPENMERCHANTBIGDLG chatbox0#9 4 0
0 280 640 0 0 0 1
;
打开9宫拉伸背景
[@main]
#IF
#ACT
OPENMERCHANTBIGDLG 复古背景大#s9(148/53/34/19) 4 0 0 500 780 0 0
0 1
UI – 打开OK框
打开OK对话框
打开OK框格式: OPENUPGRADEDLG 显示的名称
回收OK框物品格式: TAKEDLGITEM 数量(叠加物品有效)
返回OK框物品到背包: RECLAIMITEM
例:
[@main]
#IF
#ACT
OPENUPGRADEDLG
装备升级(显示的名称)
;点击OK键后触发字段[@UpgradeDlgItem]
[@UpgradeDlgItem]
#SAY
OK框中物品的名称:<$DLGITEM.NAME>
OK框中物品的StdMode:<$DLGITEM.STDMODE>
OK框中物品的持久:<$DLGITEM.DURA>
OK框中物品的最大持久:<$DLGITEM.DURAMAX>
<升级/@升级>
[@升级]
#ACT
SetNewItemValue -1 0 +
10
RECLAIMITEM
SetNewItemValue 位置(-1时是OK框中的装备, 0-12时是穿在身上的装备) 属性(0-10) 操作符(+,-,=) 值(1-100)
UI – 容器
容器UI
容器
自定义列表容器(左右滑动,上下滑动)
列表容器:<ListView>
<ListView|children={1,2}|direction=xx|bounce=xx|margin=xx|>
—
direction 方向 1竖向 2横向
—
bounce 是否弹性 1是 0否
—
margin 子控件间隔
—
reload 刷新面板=1 不刷新=0
— default
索引跳转第几个容器
— cantouch 是否可滑动 1默认
0不可
–例子:<ListView|children={2,3,4,5,6,7,8,9}|x=33|y=55|width=220|height=440|direction=1|bounce=0|margin=1|reload=0>
— 我想跳转到第ID:9的容器 default= 8 因为children=
{2,3,4,5,6,7,8,9}里面的ID:9在第8个顺序
—
loadStep=3 默认加载容器ID层数
写大型界面有卡顿可以3个配合一起使用效果更佳
— loadCount=4
逐步加载容器ID层数
— loadDelay=1 是否延迟加载 0=取消延迟 1=
延迟加载并刷新
— **************************
同一脚本ID不可以重复,背景默认ID为1,自己定义ID从2开始
如果容器脚本非常大,导致单页面加载脚本卡,需要用延迟加载功能就不卡了
例子:
============================================
[@Main]
OPENMERCHANTBIGDLG
public/000028.png 0 0 0 480 686 0 0 0 可移动 0 0 0 0 @关闭了
<Button|name=btn1|link=@aaa|x=0.4|y=0.45|text=随机换特效|color=0>
<Button|name=btn2|link=@bbb|x=0.5|y=0.8|text=放回包裹>
;<MONEY|x=0.1|y=0.5|w=0.15|h=0.05|money=货币1>
;<Effect|name=ani1|x=0.1|y=0.1|effectid=1>
uitype=label,name=555,x=0.67,y=0.45,w=0.3,h=0.42,bkimg=201/1300,drawflags=黑透,bordercolor=250
;uitype=label,name=555,x=0.67,y=0.45,w=0.3,h=0.42,ani=”201/1300″/6/150/0/0/1.0/1.0/COLOR_BLEND_NONE,drawflags=黑透,bordercolor=250
<ListView|id=1|children={2,3,4,5,6,7,8,9}|x=24|y=25|bordercolor=250|width=220|height=350|direction=1|bounce=0|margin=0.05|reload=0|default=>
<Img|id=2|children={20}|x=4.0|y=4|w=212|h=80|img=custom/challenge_boss/bg_bosstz_01.png|link=@首领B1|bordercolor=230>
<Img|id=20|children={21}|x=13|y=10|w=64|h=48|img=custom/challenge_boss/icon_bosstz_01.png|bordercolor=251>
<Img|id=21|children={22}||x=2|y=55|img=custom/challenge_boss/bg_bosstz_02.png>
<Text|id=22|children={23}|text=容器案例1|x=100|y=-10|size=18|color=1003>
<Text|id=23|children={24}|text=1/3|x=-90|y=3|size=16|color=255>
<Text|id=24|children={25}|text=等级60|x=100|y=-50|size=16|color=255>
<Img|id=25|children={26}|x=-112|y=5|w=0.5|h=0.5|img=monster_icon/00139.png|bordercolor=190>
<Img|id=3|children={30,300}|x=4.0|y=4|w=212|h=80|img=custom/challenge_boss/bg_bosstz_01.png|link=@首领B1|bordercolor=230>
<Button|id=300|x=0.5|y=0.5|link=@abc|text=按钮>
<Img|id=30|children={31}|x=13|y=10|w=64|h=48|img=custom/challenge_boss/icon_bosstz_01.png|bordercolor=251>
<Img|id=31|children={32}||x=2|y=55|img=custom/challenge_boss/bg_bosstz_02.png>
<Text|id=32|children={33}|text=容器案例2|x=100|y=-10|size=18|color=1003>
<Text|id=33|children={34}|text=2/3|x=-90|y=3|size=16|color=255>
<Text|id=34|children={35}|text=等级60|x=100|y=-50|size=16|color=255>
<Img|id=35|children={36}|x=-112|y=5|w=0.5|h=0.5|img=monster_icon/00139.png|bordercolor=190>
<Img|id=4|children={40}|x=4.0|y=4|w=212|h=80|img=custom/challenge_boss/bg_bosstz_01.png|link=@首领B1|bordercolor=230>
<Img|id=40|children={41}|x=13|y=10|w=64|h=48|img=custom/challenge_boss/icon_bosstz_01.png|bordercolor=251>
<Img|id=41|children={42}||x=2|y=55|img=custom/challenge_boss/bg_bosstz_02.png>
<Text|id=42|children={43}|text=容器案例3|x=100|y=-10|size=18|color=1003>
<Text|id=43|children={44}|text=2/3|x=-90|y=3|size=16|color=255>
<Text|id=44|children={45}|text=等级60|x=100|y=-50|size=16|color=255>
<Img|id=45|children={46}|x=-112|y=5|w=0.5|h=0.5|img=monster_icon/00139.png|bordercolor=190>
<Img|id=5|children={50}|x=4.0|y=4|w=212|h=80|img=custom/challenge_boss/bg_bosstz_01.png|link=@首领B1|bordercolor=230>
<Img|id=50|children={51}|x=13|y=10|w=64|h=48|img=custom/challenge_boss/icon_bosstz_01.png|bordercolor=251>
<Img|id=51|children={52}||x=2|y=55|img=custom/challenge_boss/bg_bosstz_02.png>
<Text|id=52|children={53}|text=容器案例4|x=100|y=-10|size=18|color=1003>
<Text|id=53|children={54}|text=2/3|x=-90|y=3|size=16|color=255>
<Text|id=54|children={55}|text=等级60|x=100|y=-50|size=16|color=255>
<Img|id=55|children={56}|x=-112|y=5|w=0.5|h=0.5|img=monster_icon/00139.png|bordercolor=190>
<Img|id=6|children={60}|x=4.0|y=4|w=212|h=80|img=custom/challenge_boss/bg_bosstz_01.png|link=@首领B1|bordercolor=230>
<Img|id=60|children={61}|x=13|y=10|w=64|h=48|img=custom/challenge_boss/icon_bosstz_01.png|bordercolor=251>
<Img|id=61|children={62}||x=2|y=55|img=custom/challenge_boss/bg_bosstz_02.png>
<Text|id=62|children={63}|text=容器案例5|x=100|y=-10|size=18|color=1003>
<Text|id=63|children={64}|text=2/3|x=-90|y=3|size=16|color=255>
<Text|id=64|children={65}|text=等级60|x=100|y=-50|size=16|color=255>
<Img|id=65|children={66}|x=-112|y=5|w=0.5|h=0.5|img=monster_icon/00139.png|bordercolor=190>
<Img|id=7|children={70}|x=4.0|y=4|w=212|h=80|img=custom/challenge_boss/bg_bosstz_01.png|link=@首领B1|bordercolor=230>
<Img|id=70|children={71}|x=13|y=10|w=64|h=48|img=custom/challenge_boss/icon_bosstz_01.png|bordercolor=251>
<Img|id=71|children={72}||x=2|y=55|img=custom/challenge_boss/bg_bosstz_02.png>
<Text|id=72|children={73}|text=容器案例6|x=100|y=-10|size=18|color=1003>
<Text|id=73|children={74}|text=2/3|x=-90|y=3|size=16|color=255>
<Text|id=74|children={75}|text=等级60|x=100|y=-50|size=16|color=255>
<Img|id=75|children={76}|x=-112|y=5|w=0.5|h=0.5|img=monster_icon/00139.png|bordercolor=190>
<Img|id=8|children={80}|x=4.0|y=4|w=212|h=80|img=custom/challenge_boss/bg_bosstz_01.png|link=@首领B1|bordercolor=230>
<Img|id=80|children={81}|x=13|y=10|w=64|h=48|img=custom/challenge_boss/icon_bosstz_01.png|bordercolor=251>
<Img|id=81|children={82}||x=2|y=55|img=custom/challenge_boss/bg_bosstz_02.png>
<Text|id=82|children={83}|text=容器案例7|x=100|y=-10|size=18|color=1003>
<Text|id=83|children={84}|text=2/3|x=-90|y=3|size=16|color=255>
<Text|id=84|children={85}|text=等级60|x=100|y=-50|size=16|color=255>
<Img|id=85|children={86}|x=-112|y=5|w=0.5|h=0.5|img=monster_icon/00139.png|bordercolor=190>
<Img|id=9|children={90}|x=4.0|y=4|w=212|h=80|img=custom/challenge_boss/bg_bosstz_01.png|link=@首领B1|bordercolor=230>
<Img|id=90|children={91}|x=13|y=10|w=64|h=48|img=custom/challenge_boss/icon_bosstz_01.png|bordercolor=251>
<Img|id=91|children={92}||x=2|y=55|img=custom/challenge_boss/bg_bosstz_02.png>
<Text|id=92|children={93}|text=容器案例8|x=100|y=-10|size=18|color=1003>
<Text|id=93|children={94}|text=2/3|x=-90|y=3|size=16|color=255>
<Text|id=94|children={95}|text=等级60|x=100|y=-50|size=16|color=255>
<Img|id=95|children={96}|x=-112|y=5|w=0.5|h=0.5|img=monster_icon/00139.png|bordercolor=190>
<ItemShow|name=is0|x=0.82|y=0.176|w=0.093|h=0.093|itemid=沃玛号角|itemcount=1|showtips=1|grey=0|bgtype=0|color=7|渐变色=241|size=16|text=后续更新…|link=@更新活动>
;<EquipShow|x=0.682299|y=0.42813|w=0.086537|h=0.117568|index=1|showtips=0|border_img=|link=|textcolor=253|ref_fontsize=+8|show_itemname=0|name=BSMC>
;<ItemShow|x=0.04|y=0.68|itemid=沃玛号角|itemcount=1|showtips=1|grey=0|bgtype=0|bordercolor=250>
;<ItemShow|name=s1|x=0.15|y=0.5|width=70|height=70|itemid=|showtips=1|bgtype=1|color=|lock=1|grey=0>
;uitype=itemholder,name=OK4,x=0.5,y=0.5,w=0.1,h=1.0,itemcat_filter=,row_count=1,col_count=1,attrtxt_drawdir=DIR_LEFT,flags=固定宽高比,bordercolor=,tiptxt_fontname=sysfont1,tiptxt_fontsize=,grid_flags=ITEMGRID_FLAG_FORCESHOWNAME|ITEMGRID_FLAG_TOUCHDOWNRISING,bordercolor=255
<ITEMBOX|x=278.0|y=305.0|width=58|height=58|boxindex=1|stdmode=19|tips=请{放入/FCOLOR=240}需要转出的{项链/FCOLOR=250}|tipsx=1|tipsy=65|img=public/1900000651.png|bordercolor=250>
<Text|x=0.5|y=0.25|text=1. <红色/FCOLOR=249>
<黄红渐变/FCOLOR=251-249>
<绿色/FCOLOR=250>>
<Text|x=0.5|y=0.3|text=可点击文本abc|color=250>
<Text|x=0.5|y=0.125|text=测试文本,闪烁渐变空格变色速度可调的走马灯效果展示。|color=255,254,253|变色间隔=300|size=18|渐变色=251|tips=鼠标悬停提示|scrollWidth=250|bordercolor=255>
;uitype=list,name=lst1,w=0.5,h=0.25,mode=row,row_count_onepage=3
;<Tab|name=1|link=@Tab1页面加载>
;<Tab|name=2|link=@Tab2页面加载>
;<ProgressBar|name=p1|x=0.25|y=0.25|w=0.5|h=0.035|B=p_bar0|P=p_bar1>
[@关闭了]
Toast 我的名字是<$USERNAME>
[@aaa]
#SAY
#CALL [\1.功能脚本\1.传送员.txt]
@传送员A
[@aaa]
toast aaa
[@bbb]
ReturnBoxItem 1
[@abc]
Toast 按钮点击调用到@abc
[@首领B1]
Toast 列表容器项被点击
[@更新活动 %index]
Toast 更新活动 : %index
[@ItemIntoBox1]
[@ItemOutBox1]
Toast aaaaa
[@gogo]
Toast GOGOGO
翻页容器示例:
==========================================
[@main]
<Img|move=0|img=public/bg_npc_01.png|loadDelay=1|bg=1|reset=1|show=0>
<Layout|x=545|y=0|width=80|height=80|link=@exit>
<Button|x=546|y=0|nimg=public/1900000510.png|pimg=public/1900000511.png|link=@exit>
<PageView|children={1,3,2}|x=297.0|y=49.0|width=450|height=200|direction=1|color=255>
<Layout|id=1|x=206.0|y=193.0|color=251>
<Layout|id=3|x=361.0|y=349.0|color=254>
<Layout|id=2|x=265.0|y=245.0|color=253>
[@容器跳问题]
<Img|width=380|height=500|img=public/icon_paihangbang_05.png|bg=1|reset=0|move=1>
<Layout|x=340|width=80|height=80|link=@exit>
<Button|x=340|y=20|nimg=publicn_gban_01.png|link=@exit>
<ListView|children={2,3,4,5,6,7,8,9}|x=30|y=50|width=150|height=400|margin=15>
<Button|id=2|ax=0|ay=1|x=0|y=0|width=150|height=55|pimg=public/bg_hhzy_01_3.png|outline=2|nimg=public/bg_hhzy_01_3.png|size=17|mimg=public/bg_hhzy_01_3.png|color=251|text=1111|link=@触发>
<Button|id=3|ax=0|ay=1|x=0|y=0|width=150|height=55|pimg=public/bg_hhzy_01_3.png|outline=2|nimg=public/bg_hhzy_01_3.png|size=17|mimg=public/bg_hhzy_01_3.png|color=251|text=2222|link=@触发>
<Button|id=4|ax=0|ay=1|x=0|y=0|width=150|height=55|pimg=public/bg_hhzy_01_3.png|outline=2|nimg=public/bg_hhzy_01_3.png|size=17|mimg=public/bg_hhzy_01_3.png|color=251|text=333|link=@触发>
<Button|id=5|ax=0|ay=1|x=0|y=0|width=150|height=55|pimg=public/bg_hhzy_01_3.png|outline=2|nimg=public/bg_hhzy_01_3.png|size=17|mimg=public/bg_hhzy_01_3.png|color=251|text=444|link=@触发>
<Button|id=6|ax=0|ay=1|x=0|y=0|width=150|height=55|pimg=public/bg_hhzy_01_3.png|outline=2|nimg=public/bg_hhzy_01_3.png|size=17|mimg=public/bg_hhzy_01_3.png|color=251|text=555|link=@触发>
<Button|id=7|ax=0|ay=1|x=0|y=0|width=150|height=55|pimg=public/bg_hhzy_01_3.png|outline=2|nimg=public/bg_hhzy_01_3.png|size=17|mimg=public/bg_hhzy_01_3.png|color=251|text=666|link=@触发>
<Button|id=8|ax=0|ay=1|x=0|y=0|width=150|height=55|pimg=public/bg_hhzy_01_3.png|outline=2|nimg=public/bg_hhzy_01_3.png|size=17|mimg=public/bg_hhzy_01_3.png|color=251|text=777|link=@触发>
<Button|id=9|ax=0|ay=1|x=0|y=0|width=150|height=55|pimg=public/bg_hhzy_01_3.png|outline=2|nimg=public/bg_hhzy_01_3.png|size=17|mimg=public/bg_hhzy_01_3.png|color=251|text=888|link=@触发>
容器项自动滚动
容器项自动滚动
1. 开始滚动
———————————————————
命令:
ui.StartAutoScroll
①滚动时间(秒) ②重复方式(0/1/2) ③划入停止(0/1) ④再滚时间(秒)
⑤滚到尾触发
参数:
①滚动时间:设置一次从头滚到尾的时间
②重复方式:
0
不重复(默认),从头滚到尾后自动停止
1 往复重复,滚动到末尾后再从末尾滚动到开头,如此往复
2 开头重复,滚动到末尾后再从开头向末尾混动
③划入停止:
0
鼠标划入不停止,无任何操作
1
鼠标悬停在容器上时停止滚动,鼠标离开后继续滚动(默认)
④再滚时间:
如果参数3设置0,则对容器任意点击后将立即停止滚动,并在多少秒后再次滚动;
如果参数3设置1,则此参数设置无意义.
如果参数3设置0,且本参数也为0,则点击到容器立即停止滚动,并不再继续滚动.
⑤滚到尾触发:
设置滚到到尾部的触发字段
2. 暂停滚动
———————————————————
命令:
ui.PauseAutoScroll
参数:
无
3. 继续滚动
———————————————————
命令:
ui.ResumeAutoScroll
参数:
无
4. 停止滚动
———————————————————
命令:
ui.StopAutoScroll ①是否重置容器位置(0/1)
参数:
①是否重置容器位置:
0
停止滚动后保持在当前位置(默认)
1
停止滚动后在容器首项位置
例子:
======================================
[@main]
[@Main]
OPENMERCHANTBIGDLG 背景图片名 0 0 0 480 686
1 0 0 可移动
<ListView|id=1|children={2,3,4,5,6,7,8,9,10}|x=24|y=25|bordercolor=250|width=220|height=350|margin=0.05>
<Img|id=2|children={20}|x=4.0|y=4|w=212|h=80|bordercolor=230>
<Img|id=20|children={21}|x=13|y=10|w=64|h=48|bordercolor=251>
<Img|id=21|children={22}||x=2|y=55|>
<Text|id=22|children={23}|text=容器案例1|x=100|y=-10|size=18|color=1003>
<Text|id=23|children={24}|text=1/3|x=-90|y=3|size=16|color=255>
<Text|id=24|children={25}|text=等级60|x=100|y=-50|size=16|color=255>
<Img|id=25|children={26}|x=-112|y=5|w=0.5|h=0.5|bordercolor=190>
<Img|id=3|children={30,300}|x=4.0|y=4|w=212|h=80|bordercolor=230>
<Button|id=300|x=0.5|y=0.5|link=@abc|text=按钮>
<Img|id=30|children={31}|x=13|y=10|w=64|h=48|bordercolor=251>
<Img|id=31|children={32}||x=2|y=55|>
<Text|id=32|children={33}|text=容器案例2|x=100|y=-10|size=18|color=1003>
<Text|id=33|children={34}|text=2/3|x=-90|y=3|size=16|color=255>
<Text|id=34|children={35}|text=等级60|x=100|y=-50|size=16|color=255>
<Img|id=35|children={36}|x=-112|y=5|w=0.5|h=0.5|bordercolor=190>
<Img|id=4|children={40}|x=4.0|y=4|w=212|h=80|bordercolor=230>
<Img|id=40|children={41}|x=13|y=10|w=64|h=48|bordercolor=251>
<Img|id=41|children={42}||x=2|y=55|>
<Text|id=42|children={43}|text=容器案例3|x=100|y=-10|size=18|color=1003>
<Text|id=43|children={44}|text=2/3|x=-90|y=3|size=16|color=255>
<Text|id=44|children={45}|text=等级60|x=100|y=-50|size=16|color=255>
<Img|id=45|children={46}|x=-112|y=5|w=0.5|h=0.5|bordercolor=190>
<Img|id=5|children={50}|x=4.0|y=4|w=212|h=80|bordercolor=230>
<Img|id=50|children={51}|x=13|y=10|w=64|h=48|bordercolor=251>
<Img|id=51|children={52}||x=2|y=55|>
<Text|id=52|children={53}|text=容器案例4|x=100|y=-10|size=18|color=1003>
<Text|id=53|children={54}|text=2/3|x=-90|y=3|size=16|color=255>
<Text|id=54|children={55}|text=等级60|x=100|y=-50|size=16|color=255>
<Img|id=55|children={56}|x=-112|y=5|w=0.5|h=0.5|bordercolor=190>
<Img|id=6|children={60}|x=4.0|y=4|w=212|h=80|bordercolor=230>
<Img|id=60|children={61}|x=13|y=10|w=64|h=48|bordercolor=251>
<Img|id=61|children={62}||x=2|y=55|>
<Text|id=62|children={63}|text=容器案例5|x=100|y=-10|size=18|color=1003>
<Text|id=63|children={64}|text=2/3|x=-90|y=3|size=16|color=255>
<Text|id=64|children={65}|text=等级60|x=100|y=-50|size=16|color=255>
<Img|id=65|children={66}|x=-112|y=5|w=0.5|h=0.5|bordercolor=190>
<Img|id=7|children={70}|x=4.0|y=4|w=212|h=80|bordercolor=230>
<Img|id=70|children={71}|x=13|y=10|w=64|h=48|bordercolor=251>
<Img|id=71|children={72}||x=2|y=55|>
<Text|id=72|children={73}|text=容器案例6|x=100|y=-10|size=18|color=1003>
<Text|id=73|children={74}|text=2/3|x=-90|y=3|size=16|color=255>
<Text|id=74|children={75}|text=等级60|x=100|y=-50|size=16|color=255>
<Img|id=75|children={76}|x=-112|y=5|w=0.5|h=0.5|bordercolor=190>
<Img|id=8|children={80}|x=4.0|y=4|w=212|h=80|bordercolor=230>
<Img|id=80|children={81}|x=13|y=10|w=64|h=48|bordercolor=251>
<Img|id=81|children={82}||x=2|y=55|>
<Text|id=82|children={83}|text=容器案例7|x=100|y=-10|size=18|color=1003>
<Text|id=83|children={84}|text=2/3|x=-90|y=3|size=16|color=255>
<Text|id=84|children={85}|text=等级60|x=100|y=-50|size=16|color=255>
<Img|id=85|children={86}|x=-112|y=5|w=0.5|h=0.5|bordercolor=190>
<Img|id=9|children={90}|x=4.0|y=4|w=212|h=80|bordercolor=230>
<Img|id=90|children={91}|x=13|y=10|w=64|h=48|bordercolor=251>
<Img|id=91|children={92}||x=2|y=55|>
<Text|id=92|children={93}|text=容器案例8|x=100|y=-10|size=18|color=1003>
<Text|id=93|children={94}|text=2/3|x=-90|y=3|size=16|color=255>
<Text|id=94|children={95}|text=等级60|x=100|y=-50|size=16|color=255>
<Img|id=95|children={96}|x=-112|y=5|w=0.5|h=0.5|bordercolor=190>
<Img|id=10|children={100}|x=4.0|y=4|w=212|h=80|bordercolor=230>
<Img|id=100|children={101}|x=13|y=10|w=64|h=48|bordercolor=251>
<Img|id=101|children={102}||x=2|y=55|>
<Text|id=102|children={103}|text=容器案例8|x=100|y=-10|size=18|color=1003>
<Text|id=103|children={104}|text=2/3|x=-90|y=3|size=16|color=255>
<Text|id=104|children={105}|text=等级60|x=100|y=-50|size=16|color=255>
<Img|id=105|children={106}|x=-112|y=5|w=0.5|h=0.5|bordercolor=190>
<Button|id=1000|link=@开始滚动|x=350|y=100|text=开始滚动>
<Button|id=1001|link=@暂停滚动|x=350|y=150|text=暂停滚动|enable=0>
<Button|id=1002|link=@继续滚动|x=350|y=200|text=继续滚动|enable=0>
<Button|id=1003|link=@停止滚动|x=350|y=250|text=停止滚动|enable=0>
[@开始滚动]
MOV N0 1
1.StartAutoScroll 4秒 1 1 0
@滚到尾
1000.Disable
1001.Enable
1003.Enable
[@暂停滚动]
1.PauseAutoScroll
1001.Disable
1002.Enable
[@继续滚动]
1.ResumeAutoScroll
1001.Enable
1002.Disable
[@停止滚动]
1.StopAutoScroll
1
1000.Enable
1001.Disable
1002.Disable
1003.Disable
[@滚到尾]
Toast 1号容器滚到尾部<$STR(N0)>次
INC
N0
常用UI类型
常用UI类型
装备展示
——————————————————————
类型:
<ItemShow|itemid=xx|itemcount|showtips=xx|link=@脚本命令>
说明:
按物品IDX显示到格子里面
参数:
itemid
物品id
itemcount
物品数量
color
数量颜色
showtips
是否显示tips
link
单击触发 @脚本命令
dblink
双击触发 @脚本命令
grey
灰化显示
lock
1/0 显示锁图标
例子:
[@main]
#IF
#SAY
<Img|move=0|img=public/bg_npc_01.png|loadDelay=1|bg=1|reset=1|show=
0>
<Layout|x=545|y=0|width=80|height=80|link=
@exit>
<Button|x=546|y=0|nimg=public/1900000510.png|pimg=public/1900000511.png|link=@exit>
<ItemShow|x=48.0|y=37.0|width=70|height=70|itemid=20000|itemcount=99|showtips=1|bgtype=1|color=250>
新UI类型
本引擎特有UI类型
1. 货币UI
——————————————————————
类型:
<Money|money=货币名称>
说明:
货币余额显示UI,自动刷新余额
例子:
<Money|x=0.5|y=0.5|w=0.25|h=0.05|边框颜色=250|money=货币1>
2. BUFF展示
——————————————————————
类型:
<BuffShow|buff=BUFF名称>
说明:
在面板上展示一个数据库中的BUFF
例子:
<BuffShow|x=0.5|y=0.5|w=0.1|h=0.1|buff=神龙附体>
3. 人物属性值
——————————————————————
类型:
<AttrVal|attr=属性名|namecolor=|valcolor=|showname=>
参数:
attr=这个字段写”属性.csv”表中记录的属性名称
namecolor=
属性名显示的颜色,不写的话,按照属性表中设置的颜色
valcolor=
属性值显示的,不写的话,按照属性表中设置的颜色
showname=0或1,是否显示属性名
说明:
显示人物指定属性值,自动刷新
例子:
<AttrVal|x=20|y=20|w=48|h=20|边框颜色=250|attr=攻击上限>
4. 帧率显示UI
——————————————————————
类型:
<FPS>
说明:
显示当前游戏实时帧率.
例子:
<FPS|text=FPS–|x=0.155|y=0.1|w=0.175|h=0.45>
5. 网络延迟显示UI
——————————————————————
类型:
<NetStatus>
说明:
显示当前游戏实时帧率
例子:
<NetStatus|x=0.362|y=0.15|w=0.15|h=0.3|bkimg=wl_|text=–>
6. 电量显示UI
——————————————————————
类型:
<Battery|nimg=
空电时图标|pimg=满电时图标>
说明:
显示当前电池电量,手机端用
例子:
<Battery|x=0.596|y=0.165|w=0.085|h=0.255|nimg=Dian2|pimg=Dian1|bkcolor=255:255:255:160>
7. 时间显示UI
——————————————————————
类型:
<Clock>
说明:
显示当前客户端时间
例子:
<Clock|x=0.75|y=0.1|w=48|h=14|bkimg=time_sm|text=00:00|bkcolor=(220:220:220:196)>
8. 攻击模式显示UI
——————————————————————
类型:
<AtkMode>
说明:
显示当前客户端时间
例子:
<AtkMode|x=0.155|y=0.55|w=0.165|bordercolor=|h=0.375|text=和平|bkimg=攻击模式>
9. 宝宝状态显示UI
——————————————————————
类型:
<SlaveStatus>
说明:
显示当前人物宝宝状态
例子:
<SlaveStatus|x=0.362|y=0.5|w=0.15|h=0.385|bkimg=怪物图标>
10. 挂机状态显示UI
——————————————————————
类型:
<AHstatus>
说明:
显示当前人物当前挂机状态
例子:
<AHstatus|x=0.596|y=0.56|w=0.35|h=13|bkimg=电脑显示器>
11. 大地图
——————————————————————
类型:
<FullMap>
说明:
显示当前大地图
例子:
<FullMap|x=10|y=10|w=350|h=258|dblink=@双击大地图>
QFunction-0.txt
[@双击大地图
%mapname %x %y]
#IF
#ACT
Toast
双击大地图:%mapname 位置:(%x,%y)
12. 小地图
——————————————————————
类型:
<MiniMap>
说明:
显示当前小地图
例子:
<MiniMap|x=10|y=10|w=100|h=100|dblink=@双击小地图>
QFunction-0.txt
[@双击小地图
%mapname %x %y]
#IF
#ACT
Toast
双击小地图:%mapname 位置:(%x,%y)
血条、蓝条
——————————————————————
<BloodBar|x=150|y=80|w=100|h=24|bordercolor=255:0:0|attr=HP|chridx=0>
<BloodBar|x=150|y=120|w=100|h=24|bordercolor=0:0:255|attr=MP|chridx=0>
拉杆加输入框
拉杆加输入框
通过拉杆滑动将数值填写到输入框中,并获取出来

[@main]
<Input|name=edt_test|x=100|y=100|w=48|h=22|type=正数|minval=0|maxval=999|color=0|editflags=”滚轮数字增减”>
<Slider|x=80|y=125|w=193|h=30|target_ui=edt_test|topbar_color=168|btn_w=7|btn_h=15|barsize_scale=0.25|txt0=0|txt1=999|bkclr=15>
<Button|x=300|y=124|w=48|h=24|text=取值|link=@取输入框值|color=0>
[@取输入框值]
MESSAGEBOX 输入框值是:
^edt_test.GetText^
装备悬浮框
装备悬浮框自定义调整
[装备悬浮框配置]
———————————————————-
本引擎提供完全自定义装备悬浮框配置功能
装备悬浮框是一个层(.layer文件),可以使用任意UI(图像、文字和动画等)来装饰面板。
–<DescText|part=xx|color=颜色|size=16|separator=xx|attrspace=xx>
— part 显示物品属性部位,取值为:
1:物品名称 2:状态(封印等) 3:重量 4:持久
5:第1组属性 6:第2组属性 7:第3组属性 8:第4组属性 9:第5组属性
10:BUFF属性 11:升级属性 12:镶嵌属性 13:升星属性(星星) 14:进度信息
15:穿戴需求 16:限制 17:默认描述 18:套装生效 19:全身强化/升星属性 20:全身级品
21:装备评分 22:第6组属性 23:物品来源 24:暗属性 25:装备动态BUFF 26:装备静态BUFF 27:装备防爆几率
28:套装组成
— separator 名称和值的分隔符,例如separator=: 则显示”攻击:0-1″
如果分隔符是空格,则需要加双引号separator= ” ”
— attrspace
属性行间距离,当有多行属性要显示时,此字段设置每行之间间距,以像素表示
— header_color 头部颜色(例如套装名) 取值=
激活色/失活色 (失活色可不写,不写的话失活色自动取激活色的暗色)
— item_color
项颜色(例如套装组成装备) 取值=
激活色/失活色 (失活色可不写,不写的话失活色自动取激活色的暗色)
可使用<Img> <Ani> <Effect>
<Text>等其它UI来装饰面板
提示:
装备悬浮框面板中的UI,按照所写顺序从上到下的自动排列,
(如果设置的UI不想参于自动排列,需设置flags2=自由位置)
UI对齐UI用法:<Text|text=xxxx|align_uiEx=要对齐的UI(ID)#对齐方式#对齐后微调x偏移#对齐后微调y偏移>
例子:
UI文件:Mir200/client_data/ui/common/itemattrs.layer
[面板信息]
layer=itemattrs,bk3=3宫格0,minwdith=200,autolayout=1,flags=置顶层|弹出层|点击穿透|不被激活|打开后缓存,bkcolor=(0:0:0:172),
// 说明:
// minwdith:悬浮框宽度
// minheight:悬浮框高度
//
// 背景图以下3选1
//
bk3: 3宫格图像
// nimg: 背景图像
// s9:
9宫格拉伸图像,例如:s9=图片名#左像素#右像素#上像素#下像素
//
//bkcolor:前3个数值是RGB颜色,最后一个数值是透明度,介于0至255之间,255不透明,0全透明
//
[面板UI]
<ListView|w=1.0|h=1.0|mode=1|flags2=”顶层容器|自由位置”|focus=1|wanttouch=滚轮>
//
顶部备注列表
<List|a=5|name=lst_topdesc|bordercolor=>
//
装备对比中的已穿戴图案
<IMG|id=30|x=8|y=-4|w=63|h=44|bkimg=身上装备|align=ALIGN_RIGHT|flags=”顶层绘制”>
//
物品图像
<ItemShow|id=100|y=0.015|w=52|bgtype=1|showattr=0|flags=”固定横纵比|不被点击”|grid_flags=”穿戴提示|显示升级次数|显示星星个数”>
//
物品名称
<DescText|part=1|ref_fontsize=+2|id=1|align_uiEx=100#右侧放置上对齐#8#5>
//
状态
<DescText|part=2|id=2|align_uiEx=1#右侧放置下对齐#0.01#>
//
重量
<DescText|id=3|part=3|name=重量|align_uiEx=100#右侧放置下对齐#8#-6>
//
持久
<DescText|name=持久|part=4|align_uiEx=3#右侧放置居中#8#>
//
评分
<Text|name=pf|text=评分:|align_uiEx=持久#右侧放置居中#16#|fontname=sysfont1|color=255>
<Text|target_ui=评分|align_uiEx=pf#右侧放置居中|font=通用|color=255>
<DescText|name=评分|part=21|align_uiEx=pf#右侧放置居中|visible=0>
//
第1组属性(横排)
<Text|x=2|y=14|text=[基础属性]|fontname=|color=255>
<DescText|x=2|part=5>
//
第2组属性(每个属性一行)
;<IMG|x=2|y=0.075|w=0.65|h=0.135|text=[第2组属性]|txt_offx=0.2|nimg=标头>
<Text|x=2|y=14|text=[高级属性]|fontname=|color=255>
<DescText|x=2|part=6>
//
第3组属性(每个属性一行)
;<Text|x=-0.0125|y=0.075|text=[第3组属性]|color=255>
<DescText|x=2|part=7>
//
第4组属性(每个属性一行)
;<Text|x=-0.0125|y=0.075|text=[第4组属性]|color=255>
;<DescText|part=8>
//
第5组属性(每个属性一行)
;<Text|x=-0.0125|y=0.075|text=[第5组属性]|color=255>
;<DescText|part=9>
//
暗属性(每个属性一行)
<Text|x=2|y=14|text=[暗属性]|fontname=|textcolor=160>
<DescText|x=2|part=24|textcolor=160>
//
物品BUFF描述
<DescText|name=BUFF描述|part=10|y=0.1>
//
分隔线
<separator|name=升级属性分隔线|y=0.075|x=-0.025|single_line=1|w=0.975|color=128:128:128:128|posadjust=缩放宽度>
//
物品升级属性
<Text|x=-0.0125|y=0.05|text=[升级属性]|fontname=|color=253|id=110>
<DescText|part=11|id=11>
//
物品镶嵌属性
<Text|x=-0.0125|y=0.05|text=[镶嵌]|fontname=|color=253|align_uiEx=110#右侧放置上对齐#20|id=120>
<DescText|part=12|x=0.0125|align_uiEx=120#下侧放置左对齐#0.0#>
//
物品升星属性
<Text|x=-0.0125|y=0.05|text=[星级属性]|fontname=|color=251-253>
<DescText|part=13>
//
物品进度属性(刀魂)
<Text|x=2|y=14|text=[刀魂进度]|fontname=|color=250>
<DescText|x=2|part=14>
//
物品动态BUFF
<Text|x=-0.0125|y=0.075|text=[装备BUFF]|fontname=|color=250>
<DescText|part=25|itemheight=0.055|itemspace=2|iconscale=0.35>
//
物品静态BUFF
<Text|x=-0.0125|y=0.075|text=[静态BUFF]|fontname=|color=250>
<DescText|part=26|itemheight=0.055|itemspace=2|iconscale=0.35>
//
物品使用或穿戴需求
<DescText|part=15|x=2|y=8>
//
物品绑定限制
<DescText|x=2|part=16>
// 默认物品描述
<DescText|part=17|x=2|y=16>
//
分隔线
<separator|name=套装分隔线|x=-8|y=14|single_line=1|w=0.975|color=128:128:128:128|posadjust=缩放宽度>
//
物品套装属性,
//套装名颜色:header_color=激活色/非激活色
<DescText|part=18|x=2|y=12|id=18|name=套装>
// 可组套装
// 套装名颜色:header_color=激活色/非激活色
// 套装组成装备项颜色:item_color=
激活色/非激活色
<Text|x=0|y=8|text=[可组套装]|fontname=|color=132|id=128>
<DescText|part=28|x=2|y=2|id=28|name=套装组成>
// 全身星级装备属性
<DescText|part=19|y=0.075|id=19|name=星级>
//
全身极品属性
//<DescText|x=2|id=20|part=20|align_uiEx=19#右侧放置下对齐#0.01#>
<DescText|part=20|x=2|y=12>
//
物品自定义文本显示
<separator|name=自定义分隔线|y=-0.025|x=-0.025|single_line=1|w=0.975|color=128:128:128:128|posadjust=缩放宽度|batch=1>
<Text|id=200|x=-0.0125|y=0.05|text=[装备附加文本值]|batch=1>
<List|id=201|x=0|y=0|margin=18|bordercolor=|listflags=界外绘制|flags=不画背景|batch=1>
//
物品制造来源
<Text|x=2|y=14|text=[掉落来源]|fontname=>
<DescText|part=23|x=2>
//
底部备注列表
<separator|name=备注分隔线|y=0.025|x=-0.025|single_line=1|w=0.975|color=128:128:128:128|posadjust=缩放宽度>
<List|x=0|y=0|name=lst_botomdesc|fontname=通用|listflags=界外绘制|flags=不画背景|bordercolor=>
面板上加UI(新)
面板上加UI
第1步:设置当前面板(用SetCurLayer命令)
第2步:写UI脚本(后面所写UI将加入到当前的面板中)
例子:
[@main]
#IF
#ACT
SetCurLayer mainui ;设置当前面板为mainui(主界面),后面所写UI脚本将加到mainui面板上
<Text|id=888|x=0.25|y=0.2|text=这段话被加到主面板上|color=255>
<Button|id=889|x=0.25|y=0.25|text=按钮|link=@主界面按钮889>
<Button|id=890|x=0.25|y=0.3|text=删除新加UI|link=@主界面按钮890>
ResetCurLayer ;
UI加完需要调用此命令反激活面板,以免后面的UI还会加到这个面板上
QFunction-0.txt:
[@主界面按钮889]
MESSAGEBOX 按钮被点击了
[@主界面按钮890]
mainui.888.Del
mainui.889.Del
mainui.890.Del
Toast 刚才加到主界面上的UI都删除了
注意:在面板上加UI,所写UI脚本中必须写id(注意不要和现有ID重复)
不写ID可能导致UI重复添加
常用面板名称: mainui(主界面), mainchar_bag(背包), mainchar_info(人物装备)
其它所有面板名称记录在以下文件:
“Mir200/client_data/ui/desktop/*.layer”文件中的”layer=”值
UI局部刷新
UI刷新
通过脚本命令更改UI文本、选中状态等,无需GOTO重刷所有UI.
例子:
;假设主面板上有一个<Text>文本标签,其ID是888
[@main]
<修改1/@修改1> ;修改主面板上ID为888的标签文本
<修改2/@修改2>
<关闭/@exit>
[@修改1]
mainui.888.SetText 我的名字是<$USERNAME>
[@修改2]
mainui.888.SetText 欢迎使用本引擎
提示:
如果在大对话框脚本中操作UI,上例中的mainui.可以去掉,直接写888.SetText
更多UI操作命令,请查看UI命令
UI批量操作
UI批量操作
1. 批量显示UI
——————————————————————
命令:
Showb
批次号
例子:
[@main]
#IF
#ACT
showb 3
2. 批量隐藏UI
——————————————————————
命令:
Hideb
批次号
例子:
[@main]
#IF
#ACT
hideb 3
3. 批量删除UI
——————————————————————
命令:
Delb
批次号
例子:
[@main]
#IF
#ACT
delb 3
提示: 如果要操作
其它面板UI,需加面板名称,例如:[@main]
#IF
#ACT
hideb mainchar_bag 3 ; 隐藏背包面板上批次为3的所有UI
只有2种情况不用写面板名:
1.
操作主界面UI
2. 操作当前大对话框上的UI
Toast调整
Toast调整
Toast设置格式:
toast=显示时间(毫秒)#屏幕上下位置(0.0-1.0)#背景高度比#字体大小#字体名称
例子1:
========================
toast=2500#0.75#1.8#+2
解释:
Toast显示2.5秒后消失,在屏幕下方位置,背景高度比文字高1.8倍,文字大小+2,默认字体
例子2:
========================
toast=2500#0.625#0#0#0
Toast显示2.5秒后消失,高度、字体、字号默认
PC端Toast调整文件:
—————————————————————–
登录界面:Mir200/client_data/ui/desktop/startup_bkgrd.layer
选人界面:Mir200/client_data/ui/desktop/chrsel_bkgrd.layer
游戏界面:Mir200/client_data/ui/desktop/map.layer
手机端Toast调整文件:
—————————————————————–
登录界面:Mir200/client_data/ui/mobile/startup_bkgrd.layer
选人界面:Mir200/client_data/ui/mobile/chrsel_bkgrd.layer
游戏界面:Mir200/client_data/ui/mobile/map.layer
UI命令
UI命令
本引擎支持脚本UI操作,创建UI指定ID或名字,然后通过ID就可以对UI进行文本、背景图设置等操作.
写脚本时,以下ui.替换成实际的ID或名字
例如:
<Text|id=666|text=aaaa>
对于ui.SetText命令,要写成 666.SetText
UI显示、隐藏 、删除
————————————————————–
ui.Show
设置UI显示(如果它已被隐藏了)
ui.Hide 隐藏UI,被隐藏的UI可以再调用”Show”命令显示出来
ui.Enable 让UI可以被点击
ui.Disable 让指定的按钮等UI不可被点击(UI被禁用只是不能被点击,还是会显示)
UI批次操作
————————————————————–
hideb
①批次 ; 隐藏同一批次的所有UI
showb ①批次
; 显示同一批次的所有UI
例子:通过批量隐藏显示实现页面切换
=======================================
<Text|id=1|text=页面a|batch=1>
<Text|id=2|text=页面a|batch=1>
<Text|id=3|text=页面b|batch=2>
<Text|id=4|text=页面b|batch=2>
<Text|id=5|text=页面b|batch=2>
<Button|link=@切换页面a>
<Button|link=@切换页面b>
[@切换页面a]
showb 1
Hideb 2
[@切换页面b]
hideb 1
showb 2
UI移动
————————————————————–
ui.SetUIPos ①X
②Y 设置UI位置
UI直线平滑移动
————————————————————–
命令:
ui.MoveTo ①起始点X ②起始点Y
③终点X ④终点Y ⑤总时间(秒) ⑥延时时间(毫秒) ⑦加速度 ⑧结束触发
参数:
①起始点X ②起始点Y
③终点X ④终点Y: 设置UI直线移动的起终,可以是小数坐标(百分比坐标)
⑤总时间(秒):整个移动过程总共经历时间,秒,越小移动越快
⑥延时(毫秒):
设置延迟多少毫秒后开始移动,控制有多个UI移动时,谁先谁后
⑦加速度: 0表示匀速移动到目标地,负值表示逐渐减速(取值约0到3.0,建议从-2.0开始调到适合速度)
⑧结束触发:
UI移动完成后调用的触发段
注意:
如果UI的起点位置或终点位置需要再当前面板层外,则UI需要加标志:
出界裁切
例子:
ui.MoveTo 4 20 120 20
2秒 // 2秒内从(4,20)平滑移动到(120,10)
ui.MoveTo 4 20 120 20 2秒 200 -2.0//
等待200毫秒后,从(4,20)平滑移动到(120,10),2秒内移动完,慢慢减速
完整例子:(横向移动)
================================
[@main]
OPENMERCHANTBIGDLG 图像资源名 4 0 0 480 686 1 0 0 可移动
0 0 0 0
0
<Img|id=1|x=20|y=32|w=80|h=80|bordercolor=250|flags=出界裁切>
<Img|id=2|x=20|y=132|w=80|h=80|bordercolor=250|flags=出界裁切>
<Img|id=3|x=20|y=232|w=80|h=80|bordercolor=250|flags=出界裁切>
<Button|x=20|y=420|text=移动|color=0|link=@test>
;GOTO
@test
[@test]
1.MoveTo 20 32 340 32 0.8秒
0 -2.0
2.MoveTo 20 132 340 132 0.8秒 150 -2.0
3.MoveTo 20 232
340 232 0.8秒 300 -2.0
完整例子:(竖向移动)
================================
[@main]
OPENMERCHANTBIGDLG 图像资源名 4 0 0 480 686 1 0 0 可移动
0 0 0 0
0
<Img|id=1|x=32|y=-40|w=80|h=80|bkclr=251|bordercolor=250|flags=出界裁切>
<Img|id=2|x=132|y=-40|w=80|h=80|bkclr=241|bordercolor=250|flags=出界裁切>
<Img|id=3|x=232|y=-40|w=80|h=80|bkclr=249|bordercolor=250|flags=出界裁切>
<Button|x=20|y=420|text=移动|color=0|link=@test>
[@test]
// 淡入
1.FadeIn 0.8秒
2.FadeIn
0.8秒
3.FadeIn 0.8秒
// 减速移动到目标为止
1.MoveTo 32 -40 32 320 0.8秒
0 -2.0
2.MoveTo 132 -40 132 320 0.8秒 150 -2.0
3.MoveTo 232 -40
232 320 0.8秒 300 -2.0
UI按预设路径移动指定次后停下
————————————————————–
ui.SetUIPathStop ①移动几圈后停下 ②停下的位置 ③路径坐标
④停下后触发 ⑤每步移动时间(毫秒)
③路径坐标:
(X1,Y1)#(X2,Y2)#(X3,Y3)… ; 有多少写多少,不能有空格
UI文本
————————————————————–
ui.SetText ①文本内容
/* 设置调用UI的显示文字,UI可以是标签、按钮、编辑框等 */
ui.SetTextColor ①颜色值 ②渐变色 /*
设置调用UI文字的颜色值,参数2可选填
*/
ui.GetText 无
ui.TextFlash 无 /*
置文本闪烁
*/
ui.EnableEdit 无
/* 设置编辑框可以编辑,只对编辑框UI有效
*/
ui.DisableEdit 无 /*
锁定编辑框,使其不可编辑,只对编辑框UI有效
*/
ui.SetBtnSmallText
①文本内容 /*
置显示在按钮文本下边的一行小字,只对按钮UI有效
*/
ui.SetOverTip ①提示文本 /*
设置鼠标指针悬停在UI上显示的提示文本
*/
UI背景与颜色
——————————————————————–
ui.SetBkColor
①颜色值
设置背景颜色
ui.SetBkImg
①图像名称
设置背景图素材名
ui.SetGray
①是否灰化(0否
1是) 设置灰化显示
ui.FadeIn ①时间秒
设置UI在一定时间内完成淡入
UI状态
——————————————————————–
ui.SetCheck 无
设置勾选框勾选,或开关按类钮按下状态
ui.SetUncheck
无
设置勾选框不勾选,或开关类按钮弹起状态
ui.SetReddot
无
设置UI红点提示
ui.ClearReddot 无
清除UI红点
ui.SetBanner ①横幅内容 ②背景色
③文字颜色 设置按钮斜边横幅,对于列表UI,还需指定行列参数
ui.ClearBanner 无
清除按钮斜边横幅,对于列表UI,还需指定行列参数
UI点击响应
——————————————————————–
ui.SetLink
①@开头的脚本段
设置按钮按下或计时器到期时执行的脚本段
ui.ClearLink
无
取消响应链接后,当事件发生时不再触发执行脚本
UI文本为参数响应
——————————————————————–
命令:
ui.SetLinkParamUI
①ui名称或ID
说明:
如果按钮lnk响应有参数,而这个参数来自一个输入框中的内容,
则可以设置这个按钮按下响应时,自动读取输入框内容作为参数
UI动画
设置UI动画
——————————————————————–
命令:
ui.SetAni
①首帧图像|帧数|每帧毫秒
ui.SetAni
①首帧图像|帧数|每帧毫秒|X偏移|Y偏移|横向缩放|纵向缩放|混合模式|混合颜色(完整参数)
说明:
设置标签、按钮等UI的显示动画
ui.ShowAni
①播放次数 显示UI动画,需先设置UI动画。播放次数不写或写0为永久播放
ui.HideAni
无 隐藏UI动画,UI还是照常显示,只是不显示设置在其上的动画
ui.SetBorderAni ①首帧图像|帧数|每帧毫秒
设置按钮、列表项等被选中时突出显示的动画
ui.ClearBorderAni 无 清除选中突出显示动画
UI运动
——————————————————————–
ui.SetCicleMove
①X ②Y ③速度(角度/秒) 设置UI饶圆心点X
Y作圆周运行运动
ui.SetRotation ①旋转速度(角度/秒)
设置ui自身旋转,目前只针对button、text、effect、ani、img有效
ui.PauseMove
暂停UI运动
ui.ResumeMove
继续UI运动
ui.StopMove
停止UI运动
计时器
——————————————————————–
ui.SetTimer
①倒计时秒
只对<Timer>的UI有效,当计时结束后调用SetLink指向的脚本段
ui.PauseTimer
无
暂停计时
ui.ResumeTimer
无
继续计时
ui.ClearTimer
无
清除当前计时间,计时器不再工作
进度条
——————————————————————–
ui.SetProgress
模式1:①当前进度 ②总进度值
设置进度条进度值,只对uitype=progressbar的UI有效
模式2:0到1之间的小数
0表示空进度,1表示100%满进度,0.5表示50%进度
物品框
——————————————————————–
ui.PutWearItem
①穿戴位置
穿戴处的装备放置到OK框中
ui.PutBagItem ①物品名称 ②个数
包裹物品放入OK框中,参数2可不填,不填默认放1个物品
ui.ClearPutItem 无
移除当前OK框中的物品
ui.SetShowItem ①物品名称 ②个数
设置要显示的物品,仅对<ItemShow>
ui.RotateItem
①是否旋转
1(旋转)0(不旋转),仅对<ItemShow>,<EquipShow>,<ItemBox>
输入框
——————————————————————–
命令:
InputBox ①输入说明文本<附加参数> @确定 @取消
参数:
①附加参数:<默认输入=xxx|下拉选择=xxx|用物品名=0|type=(0,1,2,3)>,
写在输入说明文本后面
说明:
打开输入框,玩家输入完成点确定后执行到@确定,输入内容在[@确定
%输入内容]后面的参数中
例子:
[@main]
#IF
#ACT
InputBox 请输入邀请码<默认输入=8888|type=3> @输入确定
@输入取消
[@邀请码输入 %输入内容]
你输入的内容是:%输入内容
[@输入取消]
Toast 你取消了输入
假人系统
假人系统
本引擎的假人也是“真人”,和真实玩家数据一样,所有数据会记录到人物数据库。
使用假人系统,需要先在人物数据库中创建假人数据,然后再登录.
假人登录后,所有数据自动保存,包括背包物品、身上装备、BUFF、变量等.
本引擎假人创建默认按真人设置来,和真人出生地点、等级、装备节奏同步,在每天的自动挂机中,自然发展,效果更佳真实。
1. 批量创建假人
——————————————————–
命令:
CreateDummy ①列表文件名 ②性别(0,1,2随机) ③职业(0或不填,随机)
参数:
①列表文件名:指定用哪个列表文件中的名字创建假人
写0默认读取”Envir\DummyNameList.txt”
②性别: 0-男
1-女
2-随机性别
③职业:0-随机职业(角色模型表中所配职业中随机)
1-6,战法道弓刺武
或写“Data/SK扩展表格/角色模型.csv”中的职业名
说明:
列表文件中有多少个名字,就创建多少个假人人物数据,如果有重名,后台会提示重名.
注意: 此命令创建的假人永久存在于人物数据库,同一个名字只需调用一次。
此命令调用时机可以在引擎首次启动(只调用一次,下次启动不要再调用),或后面在增加的管理页面上扩增假人时调用,
可以分批按需多次创建假人,灵活管理.
例子:
[@main]
#IF
#ACT
CreateDummy
DummyNameList.txt //
创建”DummyNameList.txt”文件中所有假人,性别随机、职业随机
;假人创建成功后,可以用下面两个常量看到系统中假人数量:
;=======================
<$ALLDUMMYCOUNT>
// 人物数据中总共有多少假人
<$ONLINEDUMMYCOUNT> // 当前在线假人数量(所有地图加起来的)
——————————————————–
命令:
DeleteDummyByList ①列表文件名
DeleteDummyBySex ①性别
DeleteDummyByJob ①职业
DeleteDummyByLevel ①(>,= ,<) ②值
例子:
[@main]
#IF
#ACT
DeleteDummyByList DummyNameList.txt // 删除DummyNameList.txt文件中所有假人
[@main]
#IF
#ACT
DeleteDummyBySex 女 //
删除所有女性假人
[@main]
#IF
#ACT
DeleteDummyByJob 法师 //
删除所有法师假人
[@main]
#IF
#ACT
DeleteDummyByLevel < 22 //
删除22级(不含22)以下假人
删除假人后,系统总假人数会变化,调用常量<$ALLDUMMYCOUNT>可查看最新假人数
3. 假人登录
——————————————————–
邮件系统
邮件系统
脚本发邮件命令:
SendMailTo
①玩家名 ②邮件标题 ③文本内容
④物品(多个物品#号分隔)
;给指定玩家发邮件
SendMailAll ①邮件标题 ②文本内容
③物品(多个物品#号分隔)
;群发邮件
注意:如果邮件标题或内容中有空格,需要加上英文双引号!
注意:如果邮件标题或内容中有空格,需要加上英文双引号!
注意:如果邮件标题或内容中有空格,需要加上英文双引号!
邮件QF触发:
QFunction-0.txt
[@邮件面板打开] ; 邮件面板打开后触发
[@新邮件] ; 收到新邮件触发
[@领取邮件物品 %title]
; 领取到邮件中物品触发,%title是邮件标题用于判断领取哪个邮件中的物品
例子1:
==================================
;
带空格邮件标题,加英文双引号
[@main]
#IF
#ACT
SendMailTo 张三 “这是 带 有空格的邮件标题” “邮件内容 也有 空格”
例子2:
==================================
;
邮件标题和内容,支持富文本
[@main]
#IF
#ACT
SendMailTo 张三 “富文本 标题 这是<绿色/FCOLOR=250>字”
邮件<文本/FSIZE=+2>内容
例子3:
==================================
;
邮件附加物品,每个物品用#号分隔,最多10个
[@main]
#IF
#ACT
SendMailTo 张三 “奖励补发a”
“这是你在xx活动中获得的奖励,请收下吧” 木剑#回城卷
; 附加带数量物品
[@main]
#IF
#ACT
SendMailTo 张三 “奖励补发b” “这是你在xx活动中获得的奖励,请收下吧” 金条x2#回城卷x2
;
附加绑定物品
[@main]
#IF
#ACT
SendMailTo 张三 “奖励补发b” “这是你在xx活动中获得的奖励,请收下吧”
飞天卷(绑定)x50#回城卷(绑定)x2
; 附加带属性物品
物品名 +绑定:绑定标志 +持久:xx
+BUFF:buff名称1#buff名称2.. +极品属性:xxx +升极属性:xxx +升极次数:xxx +升星属性:xxx
+星星数量:xxx +过期时间:xxxx
; 附加带过期时间物品
例子4:
==================================
SendMailTo 张三 奖励补发d 这是你在xx活动中获得的奖励,请收下吧 木剑 +极品属性:攻击上限:1 魔法上限:1 +星星数量:2
+升极属性:道术上限:2
SendMailTo 张三 奖励补发e 这是你在xx活动中获得的奖励,请收下吧 木剑
+过期时间:15分钟
例子5:
==================================
;
发送货币
SendMailTo 张三 有货币邮件 这是你在xx活动中获得的奖励,请收下吧 金币x100
二、邮件界面配置
——————————————————————–
PC端UI文件:
Mir200/client_data/ui/desktop/mail.layer
手机端UI文件:
Mir200/client_data/ui/mobile/mail.layer
在开发模式,也可以打开邮件面板,按Alt+R调整邮件面板界面
任务系统
任务系统
本引擎任务系统遵循大部分游戏中的任务模式,即在游戏界面左上角显示一个任务列表,让玩家查看当前可做的任务。
列表中的每个任务项有QF点击触发,方便开发人员实现定制功能。
下面将通过一个完整的示例说明如何运用引擎的任务系统
1.
配置任务
————————————————————
先在静态数据中配置出任务,任务数据目录在:
“Mir200\Envir\Data\SK扩展表格\任务”
此目录中,每个txt文件表示一个任务,开发人员可在此目录中无限添加任务文件,支持创建多级子目录。
命令:
Navigation
①面板名 ②UI名 ③引导文字 ④是否强点 ⑤方向 ⑥触发
参数:
①面板名: 填写要指引哪个面板
②UI名: 填写要指引面板上哪个UI的名称或ID
③引导文字: 选填,支持富文本,有空格加英文双引号(“”),填0默认文本
④是否强点:选填,1强点 0不强点(默认)
⑤方向:
选填,设置指示方向,0左(默认) 1右 2上 3下
⑥触发: 选填,指引点击后触发
指引系统
指引系统
1.
打开面板UI指引
————————————————————
命令:
Navigation
①面板名 ②UI名 ③引导文字 ④是否强点 ⑤方向
⑥触发
参数:
①面板名: 填写要指引哪个面板
②UI名: 填写要指引面板上哪个UI的名称或ID
③引导文字: 选填,支持富文本,有空格加英文双引号(“”),填0默认文本
④是否强点:选填,1强点 0不强点(默认)
⑤方向:
选填,设置指示方向,0左(默认) 1右 2上
3下
⑥触发:
选填,指引点击后触发
说明:
如果指面板名不存在,则忽略指引.
如果面板存在但没打开,则指引留存到面板打开.
当被指引的UI靠近屏幕边缘时,指引箭头会自动反转.
参数6设置触发,可做UI点击任务完成标志,例如在触发中将人物变量设为1,然后在任务检测中检测变量
例子:
[@main]
#IF
#ACT
Navigation mainui 16007 “这是
一段带<空格/FCOLOR=250>的字”
1
0 @xxx
[@xxx]
Toast 按指引提示点击了主面板上ID为16007的按钮
2.
打开大对话框UI指引
————————————————————
调用Navigation打开大对话框UI指引
(1)
在客户端打开这个大对话框
(2)
按Alt+R
调出UI编辑,点下大对话框任意位置,大对话框层名显示如下图红箭头所指:
(3)
复制上图红箭头所指内容(双击文本全选后Ctrl+C)
(4)
调用Navigation参数①填上一步复制的层名即可
例子:
Navigation xxx
UI名或ID
(xxx是你在UI编辑器中看到的大对话框层名,即上图红箭头所指之处)
3.
容器项指引
————————————————————
调用Navigation打开大对话框容器项指引
大对话框中的容器项,一般都有自已的ID,调用Navigation参数②填这个ID即可
提示:如果容器项不在当前可见范围,引擎会自动滚动到其位置处
例子:
Navigation xxx
容器子项ID
(xxx是你在UI编辑器中看到的大对话框层名)
4.
打开背包物品点击指引提示
————————————————————
NavBag ①物品名或MakeID* ②是否强点 ③方向 ④引导文字提示 ⑤触发(选填)
①物品名或MakeID:
如果物品名或makeID不在当前包裹里,则忽略
提示:如果背包没打开,NavBag会自动打开背包.
例子:
(1)
指向包裹中第一个木剑
NavBag 木剑
(2) 指向包裹中第一个井中月,按指引点击后触发到QF
@aaa
NavBag 井中月 1 1 0 @aaa
QF:
[@aaa]
已按指引提示点击了包裹中的井中月
(2)
指向刚给包裹中的木剑
MOV N$木剑的MakeID
<$RETGIVE(木剑)>
NavBag
N$木剑的MakeID
高级用法:
可使用遍历背包常量<$BAGITEMMAKEIDS>取得背包中所有物品的MakeID,然后通过这些MakeID检测符合要求的物品,
最后指向通过传递符合要求的makeID到NagBag即可灵活实现一些功能。
5.
打开穿戴装备点击指引提示
————————————————————
NavWear ①穿戴位置* ②是否强点 ③方向 ④引导文字提示 ⑤触发(选填)
提示:
(1)
如果穿戴界面没打开,NavWear会自动打开穿戴.
(2)
对于穿戴格子,无论是否有穿戴装备,都会去指向
例子:
(1)指向穿戴衣服
NavWear 0
(2)
指向穿戴武器
NavWear 1
(3)
指向左手镯
NavWear 5
(4)
带触发
NavWear 1 1 0 0 @aaa
6.
打开快捷栏物品点击指引提示
————————————————————
NavShortCut
①快捷栏序号 ②物品名或(格子序号)* ③是否强点 ④方向 ⑤引导文字提示 ⑥触发(选填)
快捷栏序号: 系统支持2个快捷栏,序号取货:1 – 2
例子1:
指向快捷栏第1格
NavShortCut 1 1
例子2:
指向快捷栏中的回城石
NavShortCut 1 回城石 ;
如果背包里没有回城石则忽略
例子3:
带触发
NavShortCut
1 回城石 0 2 0 @aaa
7.
打开列表项点击指引提示
————————————————————
NavList ①界面窗口名* ②列表名或ID* ③行* ④列 ⑤强点 ⑥方向 ⑦引导文字 ⑧触发
②列表名或ID:只能是List型UI
③行
:列表第几行,从1开始到总行数(行超出范围忽略)
④列 :列表中指定行的第几例,从1开始到总列数,如果填0或不写,则指向整行
(列超出范围忽略)
如果列表行不在当前可见范围,会自动滚动到其位置处
例子:
(1)
指向系统排行帮中当前页第一名
OpenLayer
rank
NavList rank lst_playersrank 1
(2) 带触发
NavList rank lst_playersrank 1 0 1 0 0 @aaa
8.
打开任务列表项点击指引提示
————————————————————
NavMission ①任务名称* ②强点 ③方向 ④引导文字 ⑤触发
①任务名称: “Mir200\Envir\Data\SK扩展表格\任务”目录下登记的任务名称
例子:
(1)指引玩家点击任务列表中的”土城跑酷”任务(需要先接到此任务,接任务请查看任务系统说明书)
NavMission 土城跑酷
9.
打开邮件列表项点击指引提示
————————————————————
NavMail ①邮件标题* ②强点 ③方向 ④引导文字 ⑤触发
①邮件标题:
填写在调用SendMailTo或SendMailAll发送邮件时,传递的邮件标题参数
(如果标题中有空格,则整个标题要用英文状态下的双引号括起来)
注意:如果有相同的邮件标题,则指向第一个.
邮件标题要写全(在给玩家发邮件时,邮件标题尽可能的简洁明了)
例子:
(1)指引玩家点击主界面邮件按钮后,再指引玩家点击一封邮件
NavMail 欢迎新玩家
10.
NPC点击提示
————————————————————
NavNPC ①NPC名称或NPCID ②触发
11.
指引序列
————————————————————
RemoveNav ; 清除可能残留的指引序列
Navigation 面板A UI名A
Navigation 面板B UI名B
Navigation 面板C UI名C
…
多次调用Navigation、或NavBag NavWear NavShotCut NavList NavMission NavMail等,引擎将按调用顺序组成点击序列
注意:
如果指引序列中有非强制点击的,则玩家可能会中断点击序列,被中断的序列不会被清除,会在下次指引窗口打开时继续指引.
一般在开始指引序列前,可以调用RemoveNav清除所有可能残留的指引项。
指引系统UI配置
1.
指引UI文件位于:”Mir200\client_data\ui\common\Layers\onlytouchtip.layer”
可替换此UI文件中的素材引用来定制自已的指引箭头、提示框等.
2. 引擎官方指引层素材图片位于:”Mir200\client_data\dev\res\private\guide目录,如需自定义可替换此目录中的图片
怪物采集(兼容)
采集功能格式
命令格式:SHOWPROGRESSBARDLG
参数1:时间(秒)
参数2:触发字段
参数3:提示信息
参数4:有动作是否中断(0不中断,1中断)
参数5:中断触发字段
参数6:被攻击(0或空走参数四的配置,1不中断)
使用示例:
[@Main]
#ACT
SHOWPROGRESSBARDLG 5 @采集完成 正在采集,进度%d%… 1
@采集中断
Break
QF触发
[@采集完成]
#ACT
Give 回城卷
1
SendMsg 5 你采集一个回城卷
Break
[@采集中断]
#ACT
SendMsg 5 采集被中断
Break
采集类怪物
格式:Race=250(怪物不移动,不攻击;人物和宝宝不能攻击此类怪
)
怪物能否回血 自行配置Monster.xls表RehealthCd字段
说明:玩家点击怪物将会触发QF的[@CollectMonX]其中X代表Monster.xls怪物ID,
视野范围ViewRange字段作为可以触发脚本的范围,为0代表不检测,
如果超过范围触发QF的[@CollectMonFailX]
例:
;怪物ID为1098时[@CollectMon1098]触发脚本如下:
[@CollectMon1098]
#IF
CheckLevel
> 0
#ACT
Give 金条
M.AddhpPer – 100
SendMsg 5 你探索到了一个金条!
;超过范围触发脚本如下:
[@CollectMonFail1098]
#act
sendmsg 9
你离着太远了,靠近一点再采集!
采集怪列表 引擎默认实时刷新
列表状态命令CALLCLIENTCOMPLETE参数一(1=列表不刷新,2=刷新
怪物采集
怪物采集
—————————————————
说明:
设置怪物被采集参数
格式:
采集时间(秒)#采集范围(米)#同时采集数#中断标志#采集文字#结束文字#开始声音# 结束声音
解释:
采集时间:设置怪物采集完成总耗时,秒
(如果怪物设置了采集时间,则此怪物就可被采集,当点击此怪物时,触发采集开始)
采集范围:设置在怪物多少米范围内可以对怪物进行采集(人物高约1.78米,全屏范围约12米)
同时采集数:设置怪物可被多少个对象同时采集(写1表示同时只能被1个对象采集)
中断标志:设置采集中断方式,可以是以下值组合(用|组合)
中文值 说明
============================================
总不中断 /* 不中断采集 */
走动中断 /* 走动时采集中断 */
跑动中断 /* 跑动时采集中断 */
飞行中断 /* 飞行时采集中断 */
受击中断 /* 受到攻击(且有掉血)采集中断 */
攻击中断 /* 发动攻击采集中断 */
死亡中断 /* 死亡时采集中断 */
换图中断 /* 人物切换地图时采集中断,注意:如果是对对象采集,则默认换图中断 */
全部中断(或不填) /* 以上中断条件都判断 */
采集文字: 设置显示在采集进度条上显示的文字
结束文字: 设置采集结束后在进度条上显示的文字
开始声音: 设置开始采集发出的声音
结束声音: 设置结束采集发出的声音
采集参数格式(DK列):采集时间(秒)#采集范围(米)#同时采集数#中断标志#采集文字#结束文字#开始声音#结束声音
例子:
2#3#1##正在采集…#采集结束
解释:
怪物采集时间为2秒,在3米范围内点击可触发采集,同时只能1个人采集,
中断标志没填默认全部中断,开始采集文字为”正在采集”,结束文字为”采集结束”,没有设置声音
2.
采集触发
—————————————————
在客户端点击采集怪,触发采集:
脚本:
QFunction-0.txt
触发段:
[@怪物采集开始xxx] ;
采集对象开始触发,可在此触发中调用stop不允许采集,或修改采集时间等
[@怪物采集中断xxx]
; 采集被中断后触发
[@怪物采集完成xxx] ; 采集完成后触发
xxx是怪物ID
例子:
[@怪物采集完成815]
set %x M.<$X>
set %y
M.<$Y>
set %dir M.<$DIR>
M.Remove ;
移除当前采集怪物
GenMon 金宝箱(空) %x %y %dir
give 金币 5000
Toast 采集完成获得5000金币
货币系统
货币系统说明
——————————————————————————–
1. 引擎内置”元宝“和”金币 “两种货币,”元宝”是充值货币,可以有1位小数点。
如果需要对引擎内置货币改名,在”Mir200\Data\!配置项.txt”中修改以下配置:
系统内置充值货币名称:元宝
系统内置金币名称:金币
内置货币也可以使用MONEY、CHECKMONEY等货币命令
2.
自定义货币在“Mir200\Envir\Data\物品(StdItems).csv”表中增加一项,
然后这一项中stdmode填41,保留字段按”分类#扣除顺序”格式填写即被引擎认可为一种货币。
货币一旦被引擎认可,则可以使用以下命令进行操作:
检测多货币关联格式:
CheckBindMoney 货币名称或ID 检测符(> <
=) 数量
获取多货币数量格式:
GetBindMoney 货币名称或ID 存入变量 或 <$BINDMONEY(货币名或ID)>
扣除多货币数量格式:
ChangeBindMoney 货币名称或ID 数量
取指定货币数量:<$MONEY(货币名或ID)>
说明:多货币只支持扣除,不支持增加,如果要增加请用其他命令 如:GAMEGOLD MONEY
3. 客户端UI使用<MONEY>显示指定货币数量(自动刷新)
UI示例:
<MONEY|x=0.5|y=0.5|w=0.25|h=0.05|money=自定义货币1>
其中money=xx
字段填写要需要的货币名称或ID,这个UI放在任意面板后,就会显示当前货币数量。
4. 货币流动类型取值如下(用于MONEY命令最后一个参数):
1:
手工充值入账
2: 平台充值入账
3:
扔下
4: 拾取
5:
商城消费
6: 使用物品
7:
撤销使用物品
8: 交易流动
9:
进入地图
10: 地图定时扣除
11:
购买摊位物品
12: 卖出摊位物品
13:
任务奖励
14:
15:
开通英雄之力
16: 开通背包
17:
开通仓库
18: 接挂单出售所得
19:
撤单所得
20: 行会基金发放
21:
回收
22: 开通VIP会员
23:
挂单费用
24: 顶单费用
25:
NPC买卖物品
26: NPC修理
27:
装备升级
28: 通过give命令获得
29:
脚本
100以后为自定义流动类型值
生肖盒
生肖盒
提示:
在本引擎中:
生肖盒指可以放十二生肖的装备界面,可以容纳12件装备,不一定非要叫十二生肖,盒子名字也可以在前端UI改;
对应其他引擎首饰盒、神佑等
装备盒指可以放43件自定义穿戴位置的装备界面,总共可以容纳43件装备,至于这个盒子叫什么名字,开发人与可以改前端UI.
1. 人物生肖盒按钮
—————————————————————–

如果上图“生肖盒”按钮如果不存在,可在前端UI文件中添加或通过登录脚本触发添加,以下方法2选1:
(1)前端UI文件添加:
打开Mir200\client_data\ui\desktop\mainchar_info.layer,增加以下行:
<Button|tab=1|x=30|y=81|w=46|h=20|nimg=pc/smallbar64|text=生肖盒|color=95|outline=13|link=OpenMaincharZodiacBox|flags=变暗可点击>
(2)登录脚本触发添加:
QManage.TXT
ADDBUTTON 3 111
<Button|x=30|y=81|w=46|h=20|nimg=pc/smallbar64|text=生肖盒|color=95|outline=13|link=OpenMaincharZodiacBox|flags=变暗可点击>
2. 玩家生肖盒按钮
————————————————————–
查看其他玩家装备界面时,有个按钮可以打开其他玩家生肖盒,并可查看生肖盒中装备:
需要在前端UI文件中添加按钮:
打开Mir200\client_data\ui\desktop\playerwears.layer(PC端),
Mir200\client_data\ui\mobile\playerwears.layer(手机端),
增加如下行:
<Button|x=-1|y=165|w=24|h=54|nimg=pc/mir_sidebar0.bmp|text=生\肖\盒|color=95|outline=13|link=OpenPlayerZodiacBox>
3. 开启人物首饰盒
————————————————————–
开启首饰盒格式:SetSndaItemBox 1 (0关闭,1开启)
开启首饰盒触发:[@OpenSndaItemBox]
QFunction-0.txt 加入如下脚本
[@OpenSndaItemBox]
#ACT
;如果那个首饰盒按钮是灰色的,点击那个按钮就会触发这个,
;然后使用命令SetSndaItemBox开启后,按钮就会变彩色,然后点击按钮就可以打开首饰盒子
SetSndaItemBox 1
SENDMSG 6 人物首饰盒开启成功
关闭人物首饰盒:
[@main]
#act
SetSndaItemBox 0
SENDMSG 6 已关闭
生肖盒12个装备,StdMode值 100~111
生肖盒装备,人物死亡掉落几率设置:
Mir200\Envir\Data\!配置项.txt
玩家死亡后生肖盒中物品掉落几率:0% ;生肖盒中装备不掉
玩家死亡后生肖盒中物品掉落几率:5% ;生肖盒中装备每件有5%几率掉掉
(以上配置项,先搜索,有直接改,没有就复制进去)
生肖盒装备不掉持久设置:
在物品表中Mir200\Envir\Data\物品(StdItems).csv设置物品标志为:无战斗磨损
装备盒
装备盒
在本引擎中:
生肖盒指可以放十二生肖的装备界面,可以容纳12件装备,不一定非要叫十二生肖.
对应其他引擎首饰盒、神佑等
装备盒指可以放43件自定义穿戴位置的装备界面,总共可以容纳43件装备,至于这个盒子叫什么名字,开发人与可以改前端UI
装备盒放的43件装备对应穿戴位置: stdmode:
200-242,开发人员可以通过前端UI随意分配放置数量,
可以分页,也可将部分穿戴UI放到人物界面,自己按需灵活处理.
1.
打开 人物装备盒
——————————————————————–
如果上图“装备盒”按钮如果不存在,可在前端UI文件中添加或通过登录脚本触发添加,以下方法2选1:
(1)前端UI文件添加:
打开Mir200\client_data\ui\desktop\mainchar_info.layer,增加以下行:
(2)登录脚本触发添加:
QManage.TXT
[@Login]
2.
打开 玩家装备盒
——————————————————————–
查看其他玩家装备界面时,有个按钮可以打开其他玩家首饰盒,并可查看首饰盒中装备:
需要在前端UI文件中添加按钮:
打开Mir200\client_data\ui\desktop\playerwears.layer(PC端),
Mir200\client_data\ui\mobile\playerwears.layer(手机端),
增加如下行:
<Button|x=-1|y=165|w=24|h=54|nimg=pc/mir_sidebar0.bmp|text=装\备\盒|color=95|outline=13|link=OpenPlayerEqBox>
时装
时装
1. 时装物品StdMode填66
(如果时装不需要显示裸模型,在Looks填”穿戴隐藏裸模”) (实际填写不写双引号)
2.
在”Mir200/client_data/ui/Desktop/Layers/mainchar_info.layer”中找到时装面板的”ui_apprbrd”
(注意和人物装备面板的ui_apprbrd区分,如果没有时装ui_apprbrd,则复制人物的ui_apprbrd)
设置时装ui_apprbrd
showapprs=17#18#19#21
沙巴克
沙巴克
沙巴克攻城功能处理流程:
1.配置沙城 -> 2.行会提交攻城申请 -> 3.开启/结束攻城 -> 4.攻城结束结算奖励
攻城结束后,下次攻城需要行会再次提交申请,然后等待下个攻城周期开战,如此循环.
1. 配置沙城
配置沙城
“Mir200\Envir\Data\Castle\0\SabukW.txt”,文件详解:
[SETUP]
———————————–
CASTLENAME=沙巴克 //
城堡名称,为保兼容,此名称固定为沙巴克不要修改
CASTLEID=1
// 城堡唯一ID,固定为1
城堡所在地图=盟重m //
设置城堡所在地图,此名称要和”Mir200\Envir\Data\地图(MapInfo).csv”地图名对应,不能写错
城堡所在地图区域ID=3 //
如果城堡所在地图设置了区域(“SK扩展表格\地图区域.csv”),则需要填写城堡所在地图的区域ID
城堡回城点X=653 //
设置拥有城堡行会成员使用行会回城卷或死亡复活时的位置
城堡回城点Y=297
[皇宫]
———————————–
皇宫地图=沙巴克皇宫 //
设置城堡皇宫所在地图名称,此名称要和”Mir200\Envir\Data\地图(MapInfo).csv”地图名对应
皇宫门点X=631
// 设置从城堡所在地图进入皇宫的门点坐标
皇宫门点Y=274
LEFTWALLNAME=沙皇宫左墙 //
设置沙巴克皇宫左侧城墙怪物名称(将城墙做成一个怪物,需在怪物表中配置这个怪物)
LEFTWALLX=625
// 设置沙巴克皇宫左侧城墙在地图上的位置
LEFTWALLY=278
LeftWallHP=3000
// 设置左城墙血量
CENTERWALLNAME=沙皇宫中墙
// 设置沙巴克中间城墙
CENTERWALLX=628
CENTERWALLY=277
CenterWallHP=5000
RIGHTWALLNAME=沙皇宫右墙 // 设置沙巴克右侧城墙
RIGHTWALLX=634
RIGHTWALLY=271
RightWallHP=8000
[城门]
———————————–
MAINDOORNAME=沙巴克城门1 //
设置沙巴克城门怪物名称(将城门做成一个怪物,需在怪物表中配置这个怪物)
MAINDOORX=672
// 城门位置
MAINDOORY=330
MAINDOOROPEN=1
// 城门默认是否打开
MAINDOORHP=10000
// 城门血量
[密道地图]
———————————–
CASTLESECRETMAP=石墓秘道 // 设置密道地图
[自动开启攻城设置]
———————————–
开启自动攻城=1
// 设置是有由引擎系统每周自动开启攻城,1是 0否,需要开发者调用StartCastleWar开启
开服多少天后自动开启首次攻城=7天 // 设置首沙时间
开服多少天后关闭自动攻城=100天
//写0永不关闭攻城(如果开启自动攻城的话)
每周星期几的几点自动开启攻城=星期6 20:30 //
每周6,晚上8点半引擎系统自动开启攻城
持续时间=60分钟
// 攻城战争持续60分钟
;自动开攻城说明:
;默认引擎每周开启一次攻城,但如果想改变此规则,可以在自动开启攻城前触发中返回0,例如:
QManage.TXT,自动开启攻城前触发,如果想每两周开一次攻城,则可以写:
——————————–
[@BeforeAutoCastleWar]
set %周数
<$WEEKCOUNT> ; 取今天是一年的第几周
#IF
cmpi <$EVAL(%周数 % 2)> = 0
#ACT
; 如果周数能被2除尽,则表示每2周
return 1 ;可以开启攻城
#ELSEACT
return 0 ;不可攻城
QManage.TXT,自动开启攻城后触发
——————————–
[@AfterAutoCastleWar]
SENDMSG 0
攻城已开启
[攻城奖励]
———————————–
首占元宝=1000元宝
占领元宝=0元宝
每分钟占领元宝=0元宝
每PK记录元宝=0.1元宝
2.提交攻城
提交攻城
每个行会会长需要提交攻城申请,才能参加攻城战争.
提交攻城命令:
ApplyCastleWar
此命令一般由行会会长执行,如果不是会长,系统会提示.
例子:
任意脚本文件:
————————–
[@main]
ApplyCastleWar
触发:
—————————————————————-
申请攻城前触发,QFunction-0.txt
—————————-
[@BeforeApplyCastleWar]
#IF
CheckItem
祖玛头像
#ACT
return 1
#ELSEACT
PlaySound 无效音
MessageBox
申请攻城需要背包中有1个祖玛头像
return 0
申请攻城后触发,QFunction-0.txt
—————————-
[@AfterApplyCastleWar]
Take
祖玛头像
3.开启攻城
开启攻城
情形1:
自动开启
—————————————————————-
如果”Mir200\Envir\Data\Castle\0\SabukW.txt”文件中的
“开启自动攻城=1”
则引擎按照配置的时间自动将所有申请的行会加入攻城战,并开启攻城,无需开发人员干预.
QManage.TXT,自动开启攻城前触发
在此触发中
return 1 ;允许开启
return 0 ;不允许开启
——————————–
[@BeforeAutoCastleWar]
QManage.TXT,自动开启攻城后触发
——————————–
[@AfterAutoCastleWar]
SENDMSG 0
攻城已开启
情形2:
手动开启
—————————————————————-
如果”Mir200\Envir\Data\Castle\0\SabukW.txt”文件中的
“开启自动攻城=0”
则需要开发人员手动调用命令开启,开启时间完全由开发人员定,
即:什么时候调用StartCastleWar,什么时候开启.
例子:
任意脚本中
————————
[@main]
StartCastleWar 60分钟 ;
仅申请行会开启攻城战
[@main]
StartCastleWarAll 60分钟
7; 当前区服已注册的前7个行会开启攻城战(按行会人数排行),无需申请,直接开战.
攻城战开启后,引擎会自动激活沙城配置文件中设置的城前和城门,会自动打开相关地图行会战等操作。
4.攻城结束
攻城结束
引擎会在设置的攻城时间到达后,自动结束攻城战争.
如果要提前或在任意时刻结束攻城,可调用以下命令:
StopCastleWar
攻城结束后,系统会调用攻城结束后触发.
QFunction-0.txt,攻城结束后触发
——————————-
[@OnCastleWarStop]
攻城战结束后,引擎会自动还原沙城配置文件中设置的城前和城门,会自动关闭相关地图行会战等操作。
城主雕像
城主雕像脚本:
[@main]
新一届<沙巴克城主/RGB:255:255:0>诞生时,雕像上会<显示他的名字/RGB:0:250:250>,世道变幻
莫测,谁是下一个城主,我们拭目以待!
<膜拜城主/@mobai|RGB:0:250:0>
<申请攻城/@apply 沙巴克>
<攻城规则和奖励/@guize 沙巴克>
[@mobai]
这是专为<沙巴克城主/RGB:255:255:255>修建的雕像,以表示沙巴克城主在法玛
大陆<最高身份/RGB:255:255:0>的象征。
<沙巴克城主/RGB:255,255,255>是万众瞩目的人物,拥有无尽的财富和名誉,但要
成为城主是相当困难的,因为瞻仰它的人物太多,这需要组建
强大的行会团队,去攻占沙巴克城。
<膜拜城主/@domobai|RGB:0:250:0>(膜拜1次得0.3<$YBNAME>)
<返回/@main>
[@domobai]
set %沙巴克城主名
<$CASTLEOWNGUILDCHAIRMAN(沙巴克)>
#IF
checkempty
%沙巴克城主名
#THEN
playsound 无效音
沙巴克城主尚未诞生,请于城主诞生后再来膜拜。
<返回/@mobai>
return
#ENDIF
#IF
cmpi <$COUNTER(膜拜沙巴克城主)> !=
0
#THEN
playsound 无效音
今日你已膜拜过沙巴克城主,请明天再来。
注意:每个角色每天只能膜拜一次
<返回/@mobai>
return
#ENDIF
GiveYB_bind 0.3
AddCounter 膜拜沙巴克城主
notice
【*系统】玩家”<$PLAYERNAME>”膜拜了沙巴克城主”%沙巴克城主名”获得0.3<$YBNAME>
感谢膜拜!0.3<$YBNAME>已发放给你
<返回/@mobai>
;
*******************************************************************************
;
申请攻城
[@apply %castlename]
set %guildid
<$CASTLEOWNGUILDID(%castlename)>
#IF
cmpi %guildid =
0
#THEN
沙巴克没有被任何行会占领
#ELSE
set %guildname
<$GUILDNAME_BY_ID(%guildid)>
set %chairman
<$GUILDCHAIRMAN(%guildid)>
沙巴克已被行会<%guildname/RGB:0,255,255|UDL:|CLK:viewguild
%guildname>(会长:<%chairman/RGB:250,250,0|UDL:|CLK:viewplayer
%chairman>)占领
#ENDIF
set %war_weekday
<$CASTLE_WARWEEKDAY(%castlename)>
set %war_starttime
<$CASTLE_WARSTARTTIME(%castlename)>
申请攻占沙巴克需要行会<正会长/RGB:0:250:0>提交1个<祖玛头像/UDL:|ITM:32|RGB:255,255,255>,所有成功申请的
行会均可参战。
<交祖玛头像/UDL:|RGB:|FNT:|CLK:loadscript EXERES://引擎功能脚本/行会/申请攻城.txt @main %castlename>
<查看攻城行会/@view_castlewar_guilds %castlename>
<返回/@main>
[@guize %castlename]
set %war_weekday
<$CASTLE_WARWEEKDAY(%castlename)>
set %war_starttime
<$CASTLE_WARSTARTTIME(%castlename)>
set %one_pkyb0
<$CASTLE_ONEPKYB(%castlename)>
set %endtime <$ENDTIME(%war_starttime
<$CASTLE_WARDURATIONMIN(%castlename)>分钟)>
<攻城时间/RGB:255:255:255>:
#IF
CheckAutoCastleWar
%castlename
#ACT
首沙开服第<<$CASTLE_FIRSTWARDAYS(%castlename)>/RGB:0:250:250>天<%war_starttime
~
%endtime/RGB:0:250:250>,以后每周<<$ToHanziNum(%war_weekday)>/RGB:0:250:250><%war_starttime
~ %endtime/RGB:0:250:250>
#ELSE
系统未设置自动攻城时间,具体攻城时间由GM通知
#ENDIF
<归属判定/RGB:255:255:255>:
攻城开始后,沙巴克皇宫内<所有成员都属于一个行会/RGB:255:255:255>时,
归属变成该行会。攻城结束,最后占领行会获得沙巴克城。
<攻沙奖励/RGB:255:255:255>:
1.
首次占领%castlename行会奖励<<$YBTOSTR(<$CASTLE_FIRSTOWNYB(%castlename)>)>/RGB:0:255:128>真充<$YBNAME>
2.
攻城期间,所有参战行会(无论胜负)每1次PK记录奖励<<$YBTOSTR(%one_pkyb0)>/RGB:255:255:255>元宝
<(无PK记录无奖励)/RGB:250:250:0>
<返回/@main>
[@view_castlewar_guilds %castlename]
set
%war_weekday <$CASTLE_WARWEEKDAY(%castlename)>
set %war_starttime
<$CASTLE_WARSTARTTIME(%castlename)>
set %warcounter
<$SERVERCOUNTER(%castlename战争计数)>
#IF
cmpi %warcounter =
0
#THEN
goto #LABEL_FIRSTWAR
#ELSE
goto
#LABEL_NONFIRSTWAR
#ENDIF
#LABEL_FIRSTWAR
参加首次%castlename战争的行会(最多7个行会):
set
%首沙行会 <$CASTLEWAR_GUILDNAMES_BY_APPLY(%castlename 7)>
#IF
CheckEmpty
%首沙行会
#THEN
<暂无申请/RGB:128:128:128>
goto #LABEL_EXIT
#ENDIF
set %loop 1
While %loop <= 7
set %guildname
<$FIELD(%loop %首沙行会)>
#IF
cmps %guildname
<$GUILDNAME>
#THEN
set %selfguild
<(自家行会)/RGB:0:255:0>
#ELSE
set %selfguild
#ENDIF
#IF
CheckEmpty %guildname
#THEN
%loop.
<待申请/RGB:128:128:128>
#ELSE
%loop. <%guildname/UDL:|CLK=viewguild
%guildname>%selfguild
#ENDIF
INC %loop
EndWhile
#LABEL_EXIT
set %firstwardays
<$CASTLE_FIRSTWARDAYS(%castlename)>
set %runday
<$RUNDAYS_INT>
#IF
cmpi %runday <
%firstwardays
#THEN
<返回/@apply %castlename>
(首次攻城战将于开区第<%firstwardays/RGB:255:255:255>天<%war_starttime/RGB:255:255:255>开启,还剩<<$EVALUATE(%firstwardays
– %runday)>/RGB:250:250:0>天)
return
#ENDIF
set %curtime <$CURTIME>
#IF
cmptime %curtime
>= %war_starttime
#THEN
<返回/@apply %castlename>
(首次攻城战将于明天<%war_starttime/RGB:0:250:250>点开启)
#ELSE
<返回/@apply
%castlename>
(首次攻城战将于今天<%war_starttime/RGB:0:250:250>点开启)
#ENDIF
return
#LABEL_NONFIRSTWAR
#IF
CheckAutoCastleWar
%castlename
#ACT
goto #LABEL_NONFIRSTWAR_AUTO
#ELSE
goto
#LABEL_NONFIRSTWAR_MAN
#ENDIF
#LABEL_NONFIRSTWAR_AUTO
set %weekday
<$WEEKDAY>
#IF
cmpi %weekday >
%war_weekday
#THEN
<下周<$ToHanZiNum(%war_weekday)>/RGB:0:250:250><%war_starttime/RGB:0:250:250>点参加攻占%castlename的行会:
goto
#LABEL_LOAD_WARGUILDS
#ENDIF
#IF
cmpi %weekday <
%war_weekday
#THEN
<本周<$ToHanZiNum(%war_weekday)>/RGB:0:250:250>晚<%war_starttime/RGB:0:250:250>点参加攻占%castlename的行会:
goto
#LABEL_LOAD_WARGUILDS
#ENDIF
set %todaysec <$CURSEC>
set %warsec
<$TIMETOSEC(%war_starttime)>
#IF
cmpi %todaysec <
%warsec
#THEN
今晚<%war_starttime/RGB:0:250:250>参战行会:
goto
#LABEL_LOAD_WARGUILDS
#ELSE
<下周<$ToHanZiNum(%war_weekday)>/RGB:0:250:250><%war_starttime/RGB:0:250:250>点参加攻占%castlename的行会:
goto
#LABEL_LOAD_WARGUILDS
#ENDIF
#LABEL_LOAD_WARGUILDS
set %攻城行会
<$CASTLEWAR_GUILDNAMES(%castlename %war_weekday %war_starttime 1
7)>
goto #LABEL_SHOWAPPLYGUILDS
#LABEL_NONFIRSTWAR_MAN
参加%castlename战争的行会(最多7个行会):
set
%攻城行会 <$CASTLEWAR_GUILDNAMES_BY_APPLY(%castlename 7)>
goto
#LABEL_SHOWAPPLYGUILDS
#LABEL_SHOWAPPLYGUILDS
set %loop 1
While %loop
<= 7
set %guildname <$FIELD(%loop %攻城行会)>
#IF
cmps %guildname
<$GUILDNAME>
#THEN
set %selfguild
<(自家行会)/RGB:0:255:0>
#ELSE
set %selfguild
#ENDIF
#IF
CheckEmpty %guildname
#THEN
%loop.
<待申请/RGB:128:128:128>
#ELSE
%loop. <%guildname/UDL:|CLK=viewguild
%guildname>%selfguild
#ENDIF
INC %loop
EndWhile
<返回/@apply %castlename>
多仓库系统
多仓库系统
本引擎人物可用4个仓库,第1个是主仓库(自动开通).
每个仓库默认40格,在”Mir200/Envir/data/角色出生设置.txt”可以自定义格数
1. 给物品到仓库
—————————————————–
命令:
GiveStorage
①仓库序号(1-4) ②物品名
③数量
说明:
直接给人物物品到仓库
例子1:
[@main]
#IF
#ACT
GiveStorage 1 金条 ;在人物主仓库中放一个金条
GiveStorage 2 木剑 ;在人物第2仓库中放一个木剑
2. 打开仓库面板
—————————————————–
命令:
OPENSTORAGE
①仓库序号(1-4)
例子:
[@main]
#IF
#Act
OPENSTORAGE
#SAY
你打开了仓库
3. 增加仓库格子
—————————————————–
命令:
AddStorageSlot
①仓库序号(1-4)
②要增加的格子数
例子:
例如要给人物第4仓库增加100个格子,可以这样写:
[@main]
#IF
#ACT
AddStorageSlot 4 100 ;第4仓库增加100个格子
MESSAGEBOX 你的第4仓库已增加100个格子
BREAK
相关常量:
<$STORAGENILCOUNT(仓库序号1-4)> 当前仓库格子空格数量
滑动背包
滑动背包实现方法
1.
UI配置
——————————————————————-
第1步:
进游戏打开背包,按Alt+R打开UI编辑,点一下背包选中,然后按下图开启滑动模式:
第2步:
按下图设置总滑动行数:
第3步:
在UI编辑界面点”保存”按钮,即变成滑动背包.
2. 开通背包格子前触发
——————————————————————-
当在背包中双击一个未开启的格子时(如下图),触发背包格子开启前触发:@BeforeAddBagSlot,
GM可在此触发中进行条件判断,是否能开启格子,如果调用stop则表示不能开启
QFunction-0.txt
;%bagindex 包裹索引,1表示第1个背包,
2表示第2个背包
;%slotcount
开启格子个数
[@BeforeAddBagSlot %bagindex
%slotcount]
#IF
cmpi %slotcount <= 0
#ACT
stop
return
#ENDIF
MOV N$所需费用 2 ;假设每开通一个格子需要2个元宝
MUL N$所需费用 %slotcount ;乘上总开启个数得出最终需要的元宝数
#IF
CHECKMONEY 元宝 < <STR(N$所需费用)>
#ACT
MessageBox 元宝不足,无法开启背包格子
stop
#ELSEACT
MONEY 元宝 – <$STR(N$所需费用)>
MessageBox 第%bagindex背包已成功增加%slotcount个格子
注意:
如果QF中没写开通背包格前触发@BeforeAddBagSlot,则背包格子立即开通
———————————————————————————————-
另外:在”Mir200/Envir/Data/角色出生设置.txt”中可以设置角色出生时的背包格子数:
出生背包格子数:40
总开通背包格子数无限,GM自己在脚本里限制可开最大数。
滑动仓库
滑动仓库实现方法
1. UI配置
——————————————————————-
进游戏打开仓库,按Alt+R打开UI编辑,点一下仓库选中,然后按下图开启滑动模式:
2. 开通仓库格子前触发
——————————————————————-
当在背包中双击一个未开启的格子时(如下图),触发背包格子开启前触发:@BeforeAddStorageSlot,
GM可在此触发中进行条件判断,是否能开启格子,如果调用stop则表示不能开启
QFunction-0.txt
;%sindex 仓库索引,1表示第1个仓库,
2表示第2个仓库
;%slotcount 开启格子个数
[@BeforeAddStorageSlot %sindex %slotcount]
MOV N$所需费用 2
;假设每开通一个格子需要2个元宝
MUL N$所需费用 %slotcount
;乘上总开启个数得出最终需要的元宝数
#IF
CHECKMONEY 元宝 < <STR(N$所需费用)>
#ACT
MessageBox 元宝不足,无法开启背包格子
stop
#ELSEACT
MONEY 元宝 – <$STR(N$所需费用)>
MessageBox 第%sindex仓库已成功增加%slotcount个格子
注意:
如果QF中没写开通背包格前触发@BeforeAddStorageSlot,则仓库格子立即开通
———————————————————————————————-
另外:在”Mir200/Envir/Data/角色出生设置.txt”中可以设置角色出生时的仓库格子数:
出生仓库格子数:40
总开通仓库格子数无限,GM自己在脚本里限制可开最大数。
自定义开通扩展背包
自定义开通扩展背包
本引擎人物可用2个背包,第1个是系统背包(自动开启),第2个是扩展背包(默认开启)
如果需要自定义开通扩展背包,可按以下方法设置:
1.
打开”Mir200/Envir/data/角色出生设置.txt”,
将以下配置项设为0:
出生开通第2背包:0
2.
QM登录脚本中给人物第2页背包加开通按钮
QManage.TXT
[@Login]
; 背包面板第2页
+开通背包按钮
#IF
NOT CheckTurnonBag 2
#ACT
ADDBUTTON7002104<Button|y=103|w=94|h=27|nimg=pc/mir_barA|text=开通(25<$YBNAME>)|tip=永久开通此页背包|font=通用|color=(250:250:0)|outline=(33:33:33)|align=水平居中|link=@点击按钮_开通背包
2 104|downsnd=104>
#ENDIF
[@点击按钮_开通背包 %index
%按钮ID]
#IF
#ACT
set %yb 25.0
MESSAGEBOX
开通确认:\确定要花费<%yb$YBNAME$/RGB:250:250:0|UDL:>永久开通<第%index包裹/RGB:0:250:250>吗?
@do_turnon_bag %index
[@do_turnon_bag
%index]
set %yb 25.0
#IF
CheckTurnonBag
%index
#ACT
MessageBox 第%index背包已开通
break
#IF
CHECKMONEY 元宝 < %yb
#ACT
playsound 无效音
Messagebox
您的<$YBNAME>不足,开通第%index背包需要%yb<$YBNAME>
break
#IF
NOT TurnonBag
%index
#ACT
playsound 无效音
Messagebox
第%index背包开通失败,请联系客服处理。
break
;
扣费
#IF
#ACT
DELBUTTON 7002 %按钮ID ;删除按钮
MONEY 元宝 – %yb 1000 ;1000作为流水记录号,表示开通背包花费
MessageBox
第%index背包开通成功!\现在你可以打开第%index背包携带更多物品
NOTICE
【*系统】玩家”<$USERNAME>”开通了第%index包背包,增加更多背包空间<(我也要开通)/FCOLOR=254|link=@开通背包
%index>
自定义开通扩展仓库
自定义开通扩展仓库
本引擎人物可用4个仓库,第1个是系统仓库(自动开启),第2、3、4是扩展仓库(默认开启)
如果需要自定义开通扩展仓库,可按以下方法设置:
1. 打开”Mir200/Envir/data/角色出生设置.txt”, 将以下配置项设为0:
出生开通第2仓库:0
出生开通第3仓库:0
出生开通第4仓库:0
2. QM登录脚本中给人物第2、3、4页仓库加开通按钮
QManage.TXT
[@Login]
; 仓库面板
+开通仓库按钮
#IF
NOT CheckTurnOnStorage 2
#ACT
set %ckyb
15
ADDBUTTONmainchar_storage#1 105<Button|y=162|w=94|h=27|nimg=pc/mir_barA|text=开通(%ckyb<$YBNAME>)|tip=永久开通此页仓库|font=通用|color=(250:250:0)|outline=(33:33:33)|align=水平居中|link=@点击按钮_开通仓库
2 105|downsnd=104>
#IF
NOT CheckTurnOnStorage
3
#ACT
set %ckyb 25
ADDBUTTONmainchar_storage#2 106<Button|y=162|w=94|h=27|nimg=pc/mir_barA|text=开通(%ckyb<$YBNAME>)|tip=永久开通此页仓库|font=通用|color=(250:250:0)|outline=(33:33:33)|align=水平居中|link=@点击按钮_开通仓库
3 106|downsnd=104>
#IF
NOT CheckTurnOnStorage
4
#ACT
set %ckyb 35
ADDBUTTONmainchar_storage#3 107<Button|y=162|w=94|h=27|nimg=pc/mir_barA|text=开通(%ckyb<$YBNAME>)|tip=永久开通此页仓库|font=通用|color=(250:250:0)|outline=(33:33:33)|align=水平居中|link=@点击按钮_开通仓库
4 107|downsnd=104>
[@获取仓库开通价格 %index]
#IF
EQUAL
%index 2
#ACT
return 15.0
#IF
EQUAL %index 3
#ACT
return
25.0
#IF
EQUAL %index 4
#ACT
return
35.0
[@点击按钮_开通仓库 %index %按钮ID]
set %yb
#CALL @获取仓库开通价格 %index
#IF
#ACT
MESSAGEBOX
开通仓库确认:\确定花费<%yb<$YBNAME>/RGB:250:250:0|UDL:>永久开通<第%index仓库/RGB:0:250:250>吗?\(开通后系统会赠送您5个<仓库令/RGB:0:250:250>,请在包裹中留1个格子)
@do_turnon_storage %index %按钮ID
[@do_turnon_storage %index
%按钮ID]
set %yb #CALL @获取仓库开通价格 %index
#IF
CheckTurnOnStorage
%index
#ACT
MESSAGEBOX 第%index仓库已开通
break
#IF
CHECKMONEY 元宝 <
%yb
#ACT
playsound 无效音
MessageBox
您的元宝不足,开通第%index仓库需要%yb<$YBNAME>
break
#IF
NOT TurnOnStorage
%index
#ACT
playsound 无效音
MessageBox
第%index仓库开通失败,请联系客服处理。
break
#IF
#ACT
DELBUTTON mainchar_storage
%按钮ID ;删除自定义按钮
MONEY 元宝 – %yb 1001 ;1001作为流水记录号,表示开通仓库花费
LoadStorage %index ;
开通后加载一下仓库
; 开通赠送仓库令
set %剩余格子
<$LEFTBAGSLOTS>
set %所需格子
<$ITEMSSLOTS_BIND(仓库令x5)>
#IF
cmpi %剩余格子 >= %所需格子
#ACT
give
仓库令(绑定) 5
MessageBox
第%index仓库开通成功!\系统已赠送您5个<仓库令/RGB:0:250:250>,使用它可随时打开自己的仓库
#ELSEACT
MONEY 绑元 + 1
MessageBox
第%index仓库开通成功!\由于您的包裹空间不足,无法收到系统赠送的仓库令, 系统给予您1个绑定元宝
#ENDIF
NOTICE【*系统】玩家”<$USERNAME>”开通了第%index仓库,增加更多仓库空间<(我也要开通)/FCOLOR=254|link=@点击按钮_开通仓库
%index %按钮ID>
小背包
小背包
本引擎支持4个小背包,装备放进去可以直接加属性(需要设置),每个小背包的开启及格子数由开发者控制.
4个小背包的名字在界面上可以随意设置,不一定非要叫小背包.
每个小背包名称在”Mir200\Envir\Data\!配置项.txt”中设置,详细点此查看.
1. 小背包按钮
——————————————————————–
UI按钮添加方式一下2选1:
(1). 前端UI文件添加:
打开Mir200\client_data\ui\desktop\mainchar_info.layer,增加以下4行:
<Button|tab=1|x=125|y=313|w=52|h=18|nimg=pc/smallbar64|text=小背包1|color=95|outline13|link=OpenLayer
mainchar_smbag1>
<Button|tab=1|x=188|y=313|w=52|h=18|nimg=pc/smallbar64|text=小背包2|color=95|outline13|link=OpenLayer
mainchar_smbag2>
<Button|tab=1|x=125|y=334|w=52|h=18|nimg=pc/smallbar64|text=小背包3|color=95|outline13|link=OpenLayer
mainchar_smbag3>
<Button|tab=1|x=188|y=333|w=52|h=18|nimg=pc/smallbar64|text=小背包4|color=95|outline13|link=OpenLayer
mainchar_smbag4>
QManage.TXT
[@Login]
ADDBUTTON3 201 <Button|x=125|y=313|w=52|h=18|nimg=pc/smallbar64|text=小背包1|color=95|outline13|link=OpenLayer
mainchar_smbag1>
ADDBUTTON3 202 <Button|x=188|y=313|w=52|h=18|nimg=pc/smallbar64|text=小背包2|color=95|outline13|link=OpenLayer
mainchar_smbag2>
ADDBUTTON3 203 <Button|x=125|y=334|w=52|h=18|nimg=pc/smallbar64|text=小背包3|color=95|outline13|link=OpenLayer
mainchar_smbag3>
ADDBUTTON3 204 <Button|x=188|y=333|w=52|h=18|nimg=pc/smallbar64|text=小背包4|color=95|outline13|link=OpenLayer
mainchar_smbag4>
2. 小背包开启
——————————————————————–
4个小背包默认关闭,需要通过脚本命令开启:
TurnOnSmBag
①背包序号(1-4)
每个小背包开启后默认格子0,需要通过脚本命令增加格子:
AddSmBagSlot ①背包序号(1-4)
②增加的格子数(默认1,注意是要增加的格子数,不是总数)
3. 装备放入
——————————————————————–
小背包开启并有格子后,就可以将装备从人物背包放入到小背包中.
默认情况下,物品放入小背包不会生效(不会加属性),此时只是当一个小背包使用,
要使装备生效,需要设置物品的stdmode值,格式如下:
stdmode=stdmode值#小背包(序号-放入格子)
例如:
=============================
stdmode=小背包(1-0),此物品只能放入1号装备背包的任意格子(且可放入多个相同物品)
stdmode=小背包(1-1),此物品只能放入1号装备背包的第1个格子(不能放入相同物品,因为这个物品已经指定了放入格子)
stdmode=小背包(1-2),此物品只能放入1号装备背包的第2个格子(同上)
…
stdmode=小背包(2-0),此物品只能放入2号装备背包的任意格子(且可放入多个相同物品)
stdmode=小背包(2-1),此物品只能放入2号装备背包的第1个格子(不能放入相同物品,因为这个物品已经指定了放入格子)
stdmode=小背包(2-2),此物品只能放入2号装备背包的第2个格子(同上)
…
stdmode=小背包(3-0),此物品只能放入3号装备背包的任意格子(且可放入多个相同物品)
stdmode=小背包(3-1),此物品只能放入3号装备背包的第1个格子(不能放入相同物品,因为这个物品已经指定了放入格子)
stdmode=小背包(3-2),此物品只能放入3号装备背包的第2个格子(同上)
…
stdmode=小背包(4-0),此物品只能放入4号装备背包的任意格子(且可放入多个相同物品)
stdmode=小背包(4-1),此物品只能放入4号装备背包的第1个格子(不能放入相同物品,因为这个物品已经指定了放入格子)
stdmode=小背包(4-2),此物品只能放入4号装备背包的第2个格子(同上)
…
如果设置了stdmode,则此物品放入小背包后就会加上对应的属性.
4. 查看其他玩家小背包
——————————————————————–
每个玩家可以查看其他玩家小背包中的物品,需要再玩家面板上加相应按钮打开对方的小背包:
前端UI文件添加:
打开Mir200\client_data\ui\desktop\playerwears.layer,增加以下4行:
<Button|x=-2|y=105|w=24|h=54|nimg=pc/mir_sidebar0.bmp|text=小\背\包1|color=95|outline13|link=OpenPlayerEqBag
1>
<Button|x=-2|y=155|w=24|h=54|nimg=pc/mir_sidebar0.bmp|text=小\背\包2|color=95|outline13|link=OpenPlayerEqBag
2>
<Button|x=-2|y=215|w=24|h=54|nimg=pc/mir_sidebar0.bmp|text=小\背\包3|color=95|outline13|link=OpenPlayerEqBag
3>
<Button|x=-2|y=265|w=24|h=54|nimg=pc/mir_sidebar0.bmp|text=小\背\包4|color=95|outline13|link=OpenPlayerEqBag
4>
5. 人物死亡小背包爆率
——————————————————————–
Mir200\Envir\Data\!配置项.txt
玩家死亡后小背包1中物品掉落几率:0%
玩家死亡后小背包2中物品掉落几率:0%
玩家死亡后小背包3中物品掉落几率:0%
玩家死亡后小背包4中物品掉落几率:0%
(以上配置项,先搜索,有直接改,没有就复制进去)
调取其他玩家背包
调取其他玩家背包
本引擎支持调取任意玩家背包、仓库、小背包等物品功能。
通过此功能,可以查看其他玩家背包,管理人员也可以删除背包中的物品。

[@main]
OPENMERCHANTBIGDLG 背景图素材 4 0 0
360 500 1 0 0 可移动 0 0 0 0 0
set %玩家名 <$NPCINPUT(1)> //
1号输入绑定到玩家名输入框
set %物品源 <$NPCINPUT(2)> //
2号输入绑定到物品源下拉框
<PlayerItems|name=pi|x=24|y=32|w=240|h=280|playername=%玩家名|itemsrc=%物品源|inputid=3|link=@点击物品|gridborder=(128:128:128)|row_count=7|col_count=6|grid_w=40|itemname_offy=2|attroffx=6|color=(255:255:255:96)|outline=(33:33:33)|hoverperiod=60|gridflags=”显示叠加个数|显示物品名|隐藏边框”>
<Text|x=280|y=43|text=物品源:>
<Combo|x=328|y=38|w=96|h=22|text=%物品源|dpd_macrotype=E_itemsrc|inputid=2|link=@选择物品源>
<Text|x=280|y=76|text=玩家名:>
<Input|x=328|y=70|w=120|h=22|color=0|text=%玩家名|inputid=1>
<Button|x=280|y=110|w=72|h=24|text=查询|color=0|link=@查询>
<Button|x=380|y=110|w=72|h=24|text=删除|color=0|link=@删除|tip=删除选中物品>
<Text|x=280|y=160|text=选中:>
<Text|name=lbl_itemanme|x=320|y=160|text=?>
[@点击物品]
lbl_itemanme.SetText
^pi.GetSelItemName^
[@选择物品源]
#IF
CheckEmpty
<$NPCINPUT(1)>
#ACT
Break
#IF
CheckEmpty
<$NPCINPUT(2)>
#ACT
Break
#IF
#ACT
GOTO @查询
[@查询]
#IF
CheckEmpty
<$NPCINPUT(1)>
#ACT
MessageBox 请输入玩家名
Break
#IF
EQUAL
<$PLAYERID_BY_NAME(<$NPCINPUT(1)>)> 0
#ACT
MessageBox
“<$NPCINPUT(1)>”:此玩家名不存在
BREAK
#IF
CheckEmpty
<$NPCINPUT(2)>
#ACT
MessageBox 请选择物品源
Break
#IF
#ACT
GOTO @main
[@删除]
set %玩家名
<$NPCINPUT(1)> // 1号输入绑定到玩家名输入框
set %makeid
<$NPCINPUT(3)> // 选中物品的唯一ID绑定到3号输入
#OR
CheckEmpty %makeid
EQUAL %makeid
0
#ACT
MessageBox 请点击选择一个要删除的物品
Break
#IF
#ACT
%玩家名.EraseItem %makeid
// 通过唯一ID删除指定玩家的物品,不在线也能删
GOTO @main
3D模型换皮
3D模型换皮
3D怪物贴图换皮示例(以常见怪物“鹿”为例):
第1步:
打开怪物表:”Envir\Data\怪物(Monster).csv”,复制一行鹿的数据,
然后修改最新怪物ID号,修改怪物名为:”鹿x” (随便取名,和原名不一样即可)
第2步:
打开换皮表:”Envir\Data\SK扩展表格\模型换皮表.csv”,新加一行数据如下:
换皮ID: 1
模型名称:鹿_skin (怪物数据表中”3D模型名称”(表格标头:BE)字段值)
颜色贴图:模型换皮贴图/斑马鹿.png (新贴图文件放置于Mir200\client_data\dev\res\模型换皮贴图\斑马鹿.png)
第3步:
在怪物表中找到第1步加的怪物数据,在”模型换皮ID”(表格标头:BG)字段中填入值1
完成以上步骤后,执行下数据库编译,然后在游戏里刷出怪物”鹿x”,就可以查看换皮效果了
怪物变身
怪物变身
怪物变身功能强大,灵活多变,可以制作出非常好玩的游戏机制。
变身其本质是通过引擎切换两条怪物数据,从而达到怪物从一种形态(当某种条件达到时)变到另一个形态的效果。
【怪物变身表】:Mir200/Envir/Data/SK扩展表格/怪物变身.csv
—————————————————
变身ID: 数字ID,不要重复
怪物名称:变身前怪物名,来自怪物表(Monster.csv)
变身为:变成什么怪物,来自怪物表(Monster.csv)
变身触发条件:
状态机: FSM_STATUS_TRACKING(当怪物开始追踪攻击时,即检测到人物进入它的视野)
空闲时间:待机多少毫秒后
例1:神兽变身
——————————————————-
以道士神兽为例,刚招出来的神兽(怪物表中名为“神兽”,外观对应趴下神兽),
当神兽遇到怪物准备攻击时,设置变身为另一个怪物(此处为“神兽_变身”,外观对应站立神兽)
当站立神兽30秒无攻击时,变回趴下神兽(怪物名为“神兽”)。
需要两条变身数据,完成以上神兽变化轮回。
例2:祖玛卫士石化消融
——————————————————–
【实现思路】:
做2个卫士怪物,一个是石化状态,另一个是正常状态。
怪物刷新刷出的是石化状态的卫士,然后设置石化卫士的视野,
通过引擎变身系统,检测石化卫士视野内有人物闯入时变身成正常状态.
当正常状态卫士视野没人物一定时间后,再变换成石化状态,如此往复>
【怪物素材】:
观察祖玛卫士素材发现:
1.
待机动作前有出现动作,这个出现动作,就是石化消融过程
2.
祖玛卫士全部序列帧,表现为6帧出现,加全套标准怪物动作
3.
出现动作第1帧是石化状态,后面可拿这1帧作为石化状态的怪物
鉴于祖玛卫士素材特点,可以按以下方法实现石化消融功能:
第一步:
将素材导入引擎素材库,散图素材的按散图方法导,
没散图的,按wzl提取导入(参见素材导入章节)
第二步:
增加2种动作类型,一种是石化状态,另一种是正常状态,做法如下:
(提示:如果以下动作类型以存在,则可跳过此步,没必要做重复的动作数据,直接引用即可)
打开表
“Mir200\Envir\Data\SK扩展表格\动作类型\1盛大.csv”,
增加以下两行数据后执行数据为编译:
48,1帧待机跳5帧,8,8,,1#5,,,,,,,,,,,,
49,出现6全套,8,8,6,4,6,0,0,6,0,0,0,0,2,10,0,0
说明:以上两行数据中,48,49是类型代码,根据自已的动作表按最后的编码加1
第三步:
在怪物表“Mir200\Envir\Data\怪物(Monster).csv”中增加2个怪物数据:
第1个怪物可以取名为“祖玛卫士(石化)”,
2D外观动画(BF列)填写第一步中导入的素材名称,
外观类型填写第二步中的动作代码(示例中是48)
第2个怪物可以取名为“祖玛卫士”,
2D外观动画(BF列)也填写第一步中导入的素材名称,
外观类型填写第二步中的动作代码(示例中是49)
以上2条怪物数据请从样表中复制:祖玛卫士石化消融怪物.csv
注意:消融前的石化状态,需要填写怪物适合的视野范围值,否则无法触发变身
第四步:
在变身表“Mir200/Envir/Data/SK扩展表格/怪物变身.csv”中增加2条变身数据:
15,祖玛卫士(石化),祖玛卫士,FSM_STATUS_TRACKING,,,,,,,出现
16,祖玛卫士,祖玛卫士(石化),,5分钟,,,,,,
完成,执行数据编译后,刷新怪物“祖玛卫士(石化)”,
当人物走进祖玛卫士视野范围时,即变身为祖玛卫士,
当祖玛卫士周围没人60秒后,又进入石化状态,如此往复.
例3:和尚僵尸钻地
——————————————————-
【实现思路】:
需要做3个怪物,分别是:
1.僵尸在地下状态(本例中无形)
2.僵尸钻出正常状态(带出现动作)
3.钻出后留下的地洞(单帧8方向)
怪物刷新表中刷出来的是第1种怪物(地下状态),设置其视野范围,通过引擎变身系统,
检测闯入其视野范围内的人物触发变身成怪物2(正常状态,带出现动作)。
然后在怪物2出现后QF触发里生成怪物3(地洞),即完成一套僵尸钻地出来逻辑。
补充说明:地下状态的僵尸,可以是有形的,也可以是无形的,本例中是无形的.
有形的可以设置一些土堆什么的表示地下有东西.
可选功能:
1.
钻回地下:
如果需要钻出来的僵尸再钻到地下,可以再加一条变身数据,
指定怪物2(正常状态)一定时间内视野内没有人物后变成怪物1(地下状态)
2.
踩地洞进图:
可在怪物3(地洞)生成触发中,加一条动态地图连接命令,连接到指定地图.
【怪物素材】:

观察和尚僵尸素材发现:
1.
待机动作前无动作,但死亡后有出现动作,就是钻地过程
(注意:
此素材与标准动作不同,它的出现在死亡动作之后,需要新建一个动作类型组)
2.
和尚僵尸全部序列帧,表现全套标准怪物动作,加后置10帧出现,
3.
最后8帧的土堆(下图420-427),可以作为一种8方向单帧待机怪物(后面踩洞进图需要这个素材)

【实现步骤】:
鉴于和尚僵尸素材特点,可以按以下方法实现钻地出来以及踩洞进图功能:
第一步:
将和尚僵尸和地洞
素材分两次导入引擎素材库,
如果是散图素材则按散图方法导,没散图的,按wzl提取导入(参见素材导入章节)
成功导入后如下图:
第二步:
增加新的动作类型组,以匹配这种后置出现动作的素材,
如果你的素材出现动作是标准前置,可跳过此步。
a.
打开目录“Mir200\Envir\Data\SK扩展表格\动作类型”,复制“1盛大.csv”,改名为“5盛大.csv”,
“5盛大.csv”中的前面的数字5,要按目录中已有的动作组文件顺序排,
例子目录中最后是“4华夏人物.csv”,故下一个就是5
b. 将“5盛大.csv”表各中的第F列“出现”剪切并粘贴到第Q列“死亡”之后
c.
删除所有数据,填写下面一行:
1,待4全套10出现,8,8,4,6,0,0,6,0,0,0,0,2,10,10,0,0
做好后,执行数据库编译,打开编辑器,应该可以看到新加的动作组,如下图:
第三步:
将第一步导入的素材指定到第二步中建立的动作组和动作类型,
一切无误,应该可以看到正确的动作序列,如下图:
第四步:
打开怪物表,增加下面3条怪物数据:
1. 和尚僵尸2D(地下),
本例中是没有外观的无形怪物,实际可根据自已需求加素材
2. 和尚僵尸2D,
已钻出地面的正常状态下的和尚僵尸
3.
地洞,单帧单击8方向,底层绘制
以上3条怪物数据请从样表中复制:和尚僵尸钻地变身怪物.csv
第五步:
打开变身边,增加下面2条变身数据:
17,和尚僵尸2D(地下),和尚僵尸2D,FSM_STATUS_TRACKING,,,,,,,出现
18,和尚僵尸2D,和尚僵尸2D(地下),,10分钟,,,,,,
在QF触发中,增加以下脚本:
[@OnMonComeoutFinish和尚僵尸2D]
GenMon 地洞 t3分钟
完成,刷新怪物“和尚僵尸2D(地下)”,当人物进入其视野时,从地下钻出。
一段时间其视野没人物时,再钻入地下,如此住复。
【洞点进图拓展】:
在第五步中的QF触发里,增加一条脚本:
[@OnMonComeoutFinish和尚僵尸2D]
genmon 地洞 t3分钟
set %连接名
尸王殿连接_<$MAP>_<$X>_<$Y>
ADDMAPGATE %连接名 <$MAP>
<$X> <$Y> 1 尸王殿 -1 -1 3分钟 传送特效|仅人物通过
例4:死后爬起僵尸
——————————————————-
【实现思路】:
需要做3个怪物,分别是:
1.爬起僵尸0,标准动作怪物,不含出现动作,100血量
2.爬起僵尸1,标准动作怪物 +
10帧出现(爬起),75血量
3.爬起僵尸2,标准动作怪物 + 10帧出现(爬起),50血量
当爬起僵尸0被打死后一定时间,变身到爬起僵尸1(出现动作为爬起,血量减少),
爬起僵尸1再被打死后一定时间变身为爬起僵尸2,最后爬起僵尸2死亡不再变身(彻底死亡)。
(如果需要多次爬起,可继续加怪物,直到最后一个怪物不再设置爬起变身)
【怪物素材】:

观察爬起僵尸素材发现:
1.
待机动作前无动作,但死亡后有出现动作,就是僵尸死后站起来的过程
(注意:
此素材属于后置出现动作,类同例子3中的和尚僵尸钻地)
2.
爬起僵尸全部序列帧,表现全套标准怪物动作,加后置10帧出现(爬起),
【实现步骤】:
鉴于爬起僵尸素材特点,可以按以下方法实现死亡后再爬起功能:
第一步:
将爬起僵尸
素材导入引擎素材库,
如果是散图素材则按散图方法导,没散图的,按wzl提取导入(参见素材导入章节)
成功导入后如下图:
第二步:
按照例3中第二步增加新的动作类型组
第三步:
将第一步导入的素材指定到第二步中建立的动作组和动作类型
第四步:
打开怪物表,增加下面3条怪物数据:
1.
爬起僵尸0, 标准怪物,不含出现(爬起)动作,血量100,动作类型填写:1#0
2.
爬起僵尸1, 包含出现(爬起)动作,血理75,动作类型填写:5#0
3. 爬起僵尸2,
包含出现(爬起)动作,血量50,动作类型填写:5#0
注意:
本例中3条僵尸数据都用到同一个素材,所以需要在数据表中强制指定每种怪物引用哪个动作类型。
以上3条怪物数据请从样表中复制:爬起僵尸怪物数据.csv
第五步:
打开变身表,增加下面2条变身数据:
19,爬起僵尸0,爬起僵尸1,,,10秒,,,,,,,出现
20,爬起僵尸1,爬起僵尸2,,,15秒,,,,,,,出现
完成,刷新怪物“爬起僵尸0”,当爬起僵尸0死亡10秒后,站起复活成爬起僵尸1,
爬起僵尸1死亡15秒后,站起复活成爬起僵尸2,爬起僵尸2打死后再无变身数据就彻底死亡不再站起来.
怪物多技能控制
怪物多技能控制
本引擎支持完全自控制的怪物技能释放系统,可以做出任意逻辑的怪物攻击方式.
怪物多技能释放核心实现方法是,在QF:[@SelMonSkill]函数段中判断各种条件,
最后调用UseDirectSkill命令选出要释放的技能.
以下是对[@SelMonSkillX] 函数段的说明:
QFunction-0.txt:
[@SelMonSkillX
%objtype
%objid]
—————————————————
X:
X是怪物名称.
@SelMonSkill后面紧跟怪物名(来自怪物表中的名称),没有空格及其他任何字符,否则引擎不识别
调用时机:
当怪物可以攻击目标前由引擎发起调用.
对需要设置多技能怪物直接在QF里写此函数段即可,无需对怪物表进行任何设置
.
执行对象:
[@SelMonSkill]函数段的执行对象是当前怪物,注意不是攻击目标
,
在此函数段调用常量<$USERNAME>取出的是怪物名称,执行的命令也作用在当前怪物上.
目标对象:
两种方法操作目标对象:
1. 通过系统传入的对象参数%objtype
%objid
2. 通过P.xx
多级脚本操作,这里的P.
表示目标,可以同时表示人物或怪物,若要区分可取P.<$OBJTYPE>
参数:
%objtype:攻击目标的对象类型(引擎系统传入)
%objid:
攻击目标的对象objID(引擎系统传入)
通过这两个参数,结合对象操作命令,可以完全取到被攻击者的所有信息(包括血量、位置、变量内容等).
详细参阅:对象操作命令
命令
以下是对UseDirectSkill系列命令的详细说明:
1. 设置释放技能
——————————————————
命令:
UseDirectSkill ①技能名称 ②技能等级(选填,为空或0使用最大等级) ③增加固定伤害(选填) ④增加百分比伤害(选填)
⑤忽略攻击范围
说明:
此命令在QF:[@SelMonSkill]函数段中使用,用于选出怪物当前攻击所使用的技能.
注意:使用此命令不是放出技能,而是告诉引擎,怪物在当下使用什么技能去攻击目标.
提示:
用此命令选出的技能,无数量限制,无需学习,也不用再怪物表中设置技能,
释放时也不受技能CD时间、所需物品、蓝量等限制,设置即放出.
参数:
①技能名称:技能表(”Mir200/Envir/Data/技能(Magic).csv”)中的技能名称
②技能等级:指定释放技能的等级,
留空或写0使用最大等级
③增加固定伤害: 技能释放击中目标增加固定伤害值
④增加百分比伤害: 技能释放击中目标增加百分比伤害值
⑤忽略攻击范围:
0(默认):检测攻击范围,当技能不能打到目标时,转向追踪目标,达到攻击范围在释放技能;
1:忽略攻击范围,无论技能是否打到目标,总是选用此技能
2. 检查释放时间
——————————————————
命令:
CheckDirectSkillTime ①技能名称 ②比较符 ③时间秒
说明:
检查技能距离上一次放出后经历多少秒,一般用作技能CD控制.
对应的常量是:<$DIRECTSKILLTIME(技能名称)>,返回值是秒,可以有小数(如0.2秒,表示200毫秒).
注意: 如果技能第一次放出,则检测总是通过.
参数:
①技能名称:技能表(“Mir200/Envir/Data/技能(Magic).csv”)中的技能名称
②比较符:可填值:>,<,=,>=(大于或等于),<=(小于或等于),!=(不等于)
③时间秒: 可以有小数,如0.2秒,表示200毫秒
例子:
#IF
CheckDirectSkillTime 雷电术 >=
15秒
#ACT
log 距离上一次雷电术放出已超过15秒
3. 设置技能有效失效标志
——————————————————
命令:
EnableDirectSkill
①技能名称 ②0失效
1有效
说明:
此命令配合检测技能是否有效命令CheckDirectSkill使用,
在某些情况需要暂时判定某个技能不能被选出,然后再一些条件达到后,可以再次选出该技能.
4. 检测技能有效失效标志
——————————————————
命令:
CheckDirectSkill
①技能名称
例子
下面通过多个例子来说明如何设置怪物多技能释放,开发人员可以通过这些例子扩展出更多的花样和玩法:
例子1: 以怪物稻草人测试[@SelMonSkill]函数中的部分数据
—————————————————
QFunction-0.txt:
[@SelMonSkill稻草人
%objtype %objid]
set %griddis <$OBJDIS(%objtype %objid)>
set
%targetname <$OBJNAME(%objtype %objid)>
log 执行怪:<$USERNAME>
周围怪:<$AroundObjCount(怪物)>
log 目标:%targetname 格子:%griddis
log 周围:<$ObjAroundAlly(%objtype %objid)>
log 目标位置:(%targetname.<$X>,%targetname.<$Y>)
log 目标S0变量内容: %targetname.<$STR(S0)>
;
当与目标距离5格及以上时,使用大火球
#IF
cmpi %griddis >= 5
#ACT
UseDirectSkill 大火球
1
BREAK
#IF
#ACT
log
没有选出任何技能,让系统从怪物表中配置的技能自动选择
例子2:
沃玛教主低血量飞随机
—————————————————
QFunction-0.txt:
[@SelMonSkill沃玛教主
%objtype %objid]
set %baifenbiHP <$HPPer> // 取当前怪物血量百分比
;
血量低于50%在当前地图随机
#IF
Cmpf %baifenbiHP <= 50% //
血量低于50%(含)
CheckDirectSkill 随机移动 // 检测技能是否可用
CheckDirectSkillTime 随机移动
>= 30秒 // 至少要等上一次释放后30秒才能再释放
#ACT
UseDirectSkill
随机移动 // 使用技能”随机移动”
EnableDirectSkill
随机移动 0 // 飞过一次随机后,需要设置技能暂时不可用,直到血量恢复再设置可用,以避免血量低于50%后一直飞
BREAK
#IF
cmpf %baifenbiHP > 50% //
血量回复到50%以上
#ACT
EnableDirectSkill 随机移动 1 // 血量恢复50%以上时,开启技能
// 每次攻击时有10%几率释放雷电术
#IF
CheckProbPCT
10%
#ACT
UseDirectSkill 雷电术
BREAK
// 其他更多条件、更多技能…
// 没有选出技能,让系统从怪物表中设置的技能自动选择
例子3:
祖玛教主在身边怪物数量少时招小弟
—————————————————
QFunction-0.txt:
[@SelMonSkill祖玛教主 %objtype %objid]
set %baifenbiHP
<$HPPer> // 取当前怪物血量百分比
set %教主周围怪物数 <$AroundObjCount(怪物,12)> //
以祖玛教主为中心,12×12格范围内怪物数量
// 当教主身边怪物数量少于5时,招出祖玛卫士(招出数量在技能表中配置)
#IF
cmpi
%教主周围怪物数 < 5
CheckDirectSkillTime 召唤祖玛卫士 >= 60秒 //
至少要等上一次释放后60秒才能再释放
#ACT
UseDirectSkill 召唤祖玛卫士
BREAK
//
当教主身边怪物数量少于10时,且25%几率,招出祖玛雕像(招出数量在技能表中配置)
#IF
cmpi %教主周围怪物数 <
10
CheckProbPCT 25%
CheckDirectSkillTime 召唤祖玛雕像 >= 60秒 //
至少要等上一次释放后60秒才能再释放
#ACT
UseDirectSkill 召唤祖玛雕像
BREAK
// 当教主血量低于60%,招出祖玛弓箭手(招出数量在技能表中配置)
#IF
Cmpf
%baifenbiHP <= 60% // 血量低于60%(含)
cmpi %教主周围怪物数 <
15
CheckDirectSkill 召唤祖玛弓箭手 // 检测技能是否可用
CheckDirectSkillTime 召唤祖玛弓箭手
>= 60秒 // 至少要等上一次释放后60秒才能再释放
#ACT
UseDirectSkill
召唤祖玛弓箭手 // 使用技能”召唤祖玛弓箭”
EnableDirectSkill 召唤祖玛弓箭手 0 // 招出一次后,需要设置技能暂时不可用,直到血量恢复再设置可用,以避免一直招
BREAK
#IF
cmpf %baifenbiHP > 60% //
血量回复到60%以上
#ACT
EnableDirectSkill 召唤祖玛弓箭手 1 // 血量恢复60%以上时,开启技能
// 每次攻击时有5%几率释放雷电术
#IF
CheckProbPCT
5%
#ACT
UseDirectSkill 雷电术
BREAK
// 每次攻击时有2%几率释放疾光电影
#IF
CheckProbPCT
2%
#ACT
UseDirectSkill 疾光电影
BREAK
// 当人物为战士时,10%几率释放针对战士的技能
#IF
CheckProbPCT
10%
cmps <$OBJJOB(%objtype,%objid)> 战士
CheckDirectSkillTime 大火球
>= 3秒
#ACT
UseDirectSkill 大火球 //
假定某个技能针对某个职业,这里仅作为示例说明这个问题
BREAK
// 血量低于20%,周围怪数量低于25,有20%几率释放疾影步
#IF
CheckProbPCT
20%
cmpi %教主周围怪物数 < 25
Cmpf %baifenbiHP <= 20% //
血量低于20%(含)
CheckDirectSkillTime 疾影步 >= 50秒 //
至少要等上一次释放后50秒才能再释放
#ACT
UseDirectSkill 疾影步
BREAK
// 其他更多检测条件和技能选择…
//
没有选出技能,让系统从怪物表中设置的技能自动选择
例子4: 被攻击人物在特定位置上怪物释放特定技能
—————————————————
QFunction-0.txt:
[@SelMonSkill半兽人 %objtype %objid]
set %target
<$OBJNAME(%objtype,%objid)>
// 当目标在地图”比奇省m”坐标(300,300)时,怪物释放火球术.
//
这里是作为示例释放火球术,实际中,判定位置可做出更高级的机关玩法.
//
当人物站在地图某个特定点,怪物会释放一个带脚本的技能,去执行更多逻辑(如变身等)
#IF
CheckMapName 比奇省m
cmpi
%target.<$X> = 300
cmpi %target.<$Y> =
300
#ACT
UseDirectSkill 火球术
BREAK
//
没有选出技能,让系统从怪物表中设置的技能自动选择
例子5: 被攻击人物在不同距离上怪物释放特定技能
—————————————————
QFunction-0.txt:
[@SelMonSkill掷斧骷髅 %objtype %objid]
set %griddis
<$OBJDIS(%objtype %objid)>
; 3格距离内使用普通攻击
#IF
cmpi %griddis
<= 3
#ACT
UseDirectSkill 普通攻击
BREAK
; 9格距离内,5%几率使用技能掷斧6叠发
#IF
CheckProbPCT 5%
cmpi %griddis <=
9
#ACT
UseDirectSkill 掷斧6叠发
BREAK
;
9格距离内,使用技能掷斧
#IF
cmpi %griddis <= 9
#ACT
UseDirectSkill
掷斧
BREAK
// 没有选出技能,让系统从怪物表中设置的技能自动选择
例子6: 被攻击人物变量检测
—————————————————
QFunction-0.txt:
[@SelMonSkill骷髅战士 %objtype %objid]
set %name
<$OBJNAME(%objtype
%objid)>
; 如果人物变量N100等于1使用火球术
#IF
EQUAL %name.<$STR(N100)> 1
CheckDirectSkillTime
火球术 >=
2秒
#ACT
UseDirectSkill 火球术 1
BREAK
; 如果人物变量N100等于2使用大火球
#IF
EQUAL %name.<$STR(N100)> 2
CheckDirectSkillTime
大火球 >=
2秒
#ACT
UseDirectSkill 大火球 1
BREAK
; 如果人物变量N100等于3使用雷电术
#IF
EQUAL %name.<$STR(N100)> 3
CheckDirectSkillTime
雷电术 >=
1.5秒
#ACT
UseDirectSkill 雷电术 1
BREAK
// 更多变量检测
// 没有选出技能,让系统从怪物表中设置的技能自动选择
例子7: 检测被攻击人物周边多人时采取群体攻击
—————————————————
QFunction-0.txt:
[@SelMonSkill骷髅战将 %objtype %objid]
set %人物数
<$OBJAroundAlly(%objtype %objid 9)>
//
取人物中心9×9格范围内其他人物总数
; 如果人数大于或等于2,使用群体技能冰咆哮
#IF
cmpi %人物数 >= 2
CheckDirectSkillTime 冰咆哮 >=
2.5秒 //
至少要等上一次释放后2.5秒才能再释放
#ACT
UseDirectSkill 冰咆哮 1
BREAK
// 更多其他检测…
// 没有选出技能,让系统从怪物表中设置的技能自动选择
例子8: 使用无外观傀儡控制定点怪物
—————————————————
QFunction-0.txt:
[@SelMonSkill无形傀儡]
;
取无外观怪位置处的对象ID,一般设置和要控制的怪物位置点重合
set %大刀objID <$MapPosObjID(怪物 <$X>
<$Y>)>
#IF
cmpi %大刀objID = 0
#ACT
log
当前地图<$MAP>(<$X> <$Y>)处没有大刀
BREAK
#IF
#ACT
set %monname <$OBJNAME(怪物
%%大刀objID)>
#IF
NOT EQUAL %monname 大刀卫士
#ACT
log
当前地图<$MAP>(<$X> <$Y>)处不是大刀,是%monname
BREAK
; 傀儡检测到有目标(P.)进入视野,让大刀执行命令
#IF
; P.ISCASTLEMASTER
// 检测是否为沙巴克老大
CheckDirectSkillTime 普通攻击 >= 10秒 //
这里使用一个技能作为CD时间计时,以免狂下跪和说话
#ACT
; RunScriptOnObj 怪物 %大刀objID DoAction
下跪
MonSay %大刀objID
P.<$USERNAME>!吾皇万岁!!
UseDirectSkill 普通攻击 1 0 0 1
BREAK
怪物守护范围
怪物守护范围
怪物守护范围是给怪物设置一个范围,当怪物走出这个范围后,触发到QF:[@OutOfGuardX],
然后怪物会自动走向初始刷新点,当怪物回到初始点时,触发到QF:[@ReturnGuardPosX].
(以上触发段中的X是怪物名称)
利用这个机制,可以避免一些驻守怪物被拉走,同时有脚本触发的加持,可以实现更多有趣的功能.
守护范围设置:
在怪物刷新表(“Mir200/Envir/MonGen.csv”)M字段中填写守护范围,
如果没写,则取怪物视野大小.
触发说明:
QFunction-0.txt:
1. [@OutOfGuardX]
————————————————-
X:
X是怪物名称.
@OutOfGuard后面紧跟怪物名(来自怪物表中的名称),没有空格及其他任何字符,否则引擎不识别
调用时机:
当怪物超出设定的守护范围时调用.
执行对象:
本函数段的执行对象是当前怪物
所有命令和常量执行到当前这个怪物上,比如<$USERNAME>就是取的怪物名称.
提示:
如果在本触发段中调用stop命令,则怪物不回守护点.
另外,可以使用AddBuff命令给怪物加buff或Realive命令让怪物满血等.
2.
[@ReturnGuardPosX]
————————————————-
X:
X是怪物名称.
@OutOfGuard后面紧跟怪物名(来自怪物表中的名称),没有空格及其他任何字符,否则引擎不识别
调用时机:
当怪物走到初始刷新点时调用.
执行对象:
本函数段的执行对象是当前怪物
所有命令和常量执行到当前这个怪物上,比如<$USERNAME>就是取的怪物名称.
例子:
QFunction-0.txt
[@OutOfGuard半兽人]
SendMsg 0
怪物”<$USERNAME>”超出守护范围
[@ReturnGuardPos半兽人]
SendMsg 0 怪物”<$USERNAME>”回到守护点
怪物击杀归属
怪物击杀归属
1. 击杀归属变化QF触发
—————————————————
一旦怪物受到攻击,发生击杀归属变化后,将触发以下QF执行:
脚本:
QFunction-0.txt
触发段:
===============================
获得怪物击杀归属:
[@OnOwnMonX]
击杀归属变更:
[@OnOwnChangedMonX]
击杀归属清除:
[@OnOwnClearMonX]
以上段中,
X是怪物名称
击杀归属判定规则:
怪物击杀归属由引擎判定,大致判定规则是:当一个怪物被多个目标攻击时,
引擎会记录所有攻击者的累加伤害值,然后选出当前累积伤害值最高的目标作为当前归属.
每个攻击者累加伤害值会定期削减,这样如果其中一个攻击目标长时间不打怪物,
他的伤害值慢慢减少,导致怪物归属选定到其他目标上.
如果所有攻击者的伤害值都消减到0,则怪物触发归属清除脚本段.
例子:
; 触发到归属玩家,可以用M.操作怪物
; ================================
[@OnOwnMon半兽人]
#IF
#ACT
SENDMSG 6
玩家<$USERNAME>获得怪物<$CURRRTARGETNAME>击杀归属
log
目标位置: M.<$MAP> M.<$X> M.<$Y>
; 触发到新获得归属的人物
;
================================
[@OnOwnChangedMon半兽人]
#IF
#ACT
SENDMSG 0
[测试]怪物”M.<$USERNAME>”现在的击杀归属人:<$USERNAME>
M.SETRANKLEVELNAME %s\[归属:<$USERNAME>]#250 ; 设置当前怪物的名字,让其本身名字下方显示当前归属人
; 触发到怪物清除归属
; !注意:怪物击杀归属的清除,是触发到当前怪物,所有命令和常量作用在怪物身上.
;
================================
[@OnOwnClearMon半兽人]
#IF
#ACT
SENDMSG
0 [测试]我是怪物,我的名字是:<$USERNAME>,我的击杀归属已清空.
SETRANKLEVELNAME ; 还原怪物名字
自定义邮件系统
自定义邮件系统(可选,高级用法)
(注意:无需自定义邮件系统的,看邮件系统说明,然后仅使用SendMailTo和SendMailAll发送命令即可.)
——————————————————————————–
开发人员可以用以下高级邮件命令自行搭建一套邮件系统。
说明:邮件命令是异步执行的,一般获取的数据在另一个指定的触发中返回
1. 请求邮件列表
RequestMailList ①邮件类型(0系统 1玩家)
②邮件封数 ③数据回调地址 ④自定义参数…
当邮件列表数据到达时,参数③:@数据回调地址 被触发执行如下:
[@数据回调地址 %自定义参数… %mailtype %mailid
%status %index %title %sendtime %itemcount %loadfinish]
%mailtype 邮件类型 0系统邮件 1玩家邮件
%mailid 邮件ID
%status 邮件状态,0未读 1已读未领 2已读已领
%index
邮件索引,从1到参数②邮件封数
%title 邮件标题
%sendtime 邮件发送时间
%itemcount 邮件中附加物品个数
%loadfinish 邮件列表加载完成标志(1完成 0未完)
2. 请求邮件正文
RequestMailContent ①邮件ID ②数据回调地址
③自定义参数…
参数①:邮件ID一般是从邮件列表中返回的得到的
当邮件正文数据到达时,@数据回调地址 被触发执行如下:
[@数据回调地址 %自定义参数… %mailid %status
%itemcount %content]
%mailid 邮件ID
%status
邮件状态,0未读 1已读未领 2已读已领
%itemcount 邮件中附加物品个数
%content 邮件正文内容
3. 请求邮件附加物品
RequestMailItems ①邮件ID ②数据回调地址
③自定义参数…
当邮件物品数据到达时,@数据回调地址 被触发执行如下:
[@数据回调地址 %自定义参数… %mailid %index
%loadfinish %itemstr]
%mailid 邮件ID
%index
邮件物品槽索引,从1到10,一个邮件最多附加10个物品槽
%loadfinish 邮件物品加载完成标志(1完成 0未完),一般加载到最后一个物品时loadfinish=1
%itemstr
邮件物品字符串,可以显示到<ItemShow>上
4. 请求邮件状态
RequestMailStatus ①邮件ID ②数据回调地址
③自定义参数…
当邮件状态数据到达时,@数据回调地址 被触发执行如下:
[@数据回调地址 %自定义参数… %mailid %status]
%mailid 邮件ID
%status 邮件状态,0未读 1已读未领 2已读已领
5. 删除邮件
DelMail ①邮件ID ②删除回调地址 ③自定义参数…
当邮件被删除时,@删除回调地址 被触发执行如下:
[@删除回调地址 %mailid %delok]
%mailid 邮件ID
%delok 1成功删除 0删除失败
7. 给指定邮件中的物品
GiveMailItems ①邮件ID
此命令中已判断包裹满的情况,应在#IF中使用此命令,如果检测失败说明包裹满了,没有给成功
8. 设置邮件状态
SetMailStatus ①邮件ID ②状态(0未读
1已读未领 2已读已领)
一般在阅读完邮件或领取过邮件中附加物品后,及时更新邮件状态,以免重复领取.
以下3个命令用于邮件批量操作
—————————————————–
9. 一键设置邮件已读
SetAllMailsRead ①回调地址
②自定义参数…
当所有邮件设置为已读后,@回调地址
被触发执行如下:
[@回调地址 %oprok]
%oprok 1操作成功 0操作失败
10. 一键领取所有邮件物品
RecvAllMailsItem ①邮件类型(0系统 1玩家) ②获取回调地址 ③自定义参数…
当有一个邮件中的物品全部放入背包时,@获取回调地址 被触发执行如下:
[@获取回调地址 自定义参数… %mailid %curindex %maxindex]
%mailid 当前获取物品的邮件ID
%curindex
当前邮件索引,从1开始,到%maxindex结束
%maxindex
邮件截止索引,也是可领取的邮件个数
11. 删除所有已读
DelAllReadMails ①删除回调地址 ②自定义参数…
当所有已读邮件被删除时,@删除回调地址 被触发执行如下:
[@删除回调地址
%delok]
%delok 1成功删除 0删除失败
光源系统
光源系统
本引擎支持动态光源系统,
人物身上的火把以及任意装备、技能、BUFF、以及任意特效(包括地图素材特效),
都可设置发光,这样在黑暗环境中,设置有光源对象就可以发光发亮,以实现丰富的游戏视觉效果.
1. 装备外观发光设置
—————————————————–
装备外观发光在物品表(物品(StdItems).csv)中设置装备对应光源表(SK扩展表格\光源.csv)中的光源ID即可
2. 特效、BUFF发光设置
—————————————————–
特效、BUFF发光在表中设置装备对应光源表(SK扩展表格\光源.csv)中的光源ID即可
3. 技能发光设置
—————————————————–
技能发光设置直接在技能表中设置,不关联光源表.
4. 设置发光仅照亮自己
—————————————————–
两种方法:
第一:设置光源数据时指定仅照亮自己,属于静态配置
光源表(SK扩展表格\光源.csv):
闪烁标志列(Q列)增加标志:仅照亮自己
技能表:光源闪烁标志列(HK\HR\HY)增加标志:仅照亮自己
第二:使用命令指定人物哪些地方的光源仅照亮自己:
增加照亮选项: AddLightShow 照亮选项
移除照亮选项: RemoveLightShow 照亮选项
照亮选项取值(可用竖线|组合):
======================================
自身光仅照自己
穿戴光仅照自己
BUFF光仅照自己
技能释放光仅照自己
技能本体光仅照自己
技能击中光仅照自己
特效光仅照自己
例子:
===================
[@test1]
#IF
#ACT
AddLightShow 技能本体光仅照自己 //
调用后,自己放的火墙或魔法盾等光源自己可以看到,其他人看不到
[@test2]
#IF
#ACT
RemoveLightShow 技能本体光仅照自己 //
调用后,恢复释放技能光源对其他人显示
另外:
如果要精细控制哪个装备后技能的光源仅照亮自己,可以在穿戴触发和技能释放触发中调用AddLightShow和RemoveLightShow
激活码
激活码功能使用步骤
激活码是只能验证1次自定义数字,常用于礼包领取功能。
GM可以参照本示例去做自己的激活码应用。
一、生成激活码
——————————————————————
在”Mir200/Envir/”目录下新建一个文本文件,按行输入每个码号,然后保存
注意:每个激活码只能是纯数字,范围是1-20亿
例子:
在”Mir200/Envir”目录下创建”激活码.txt”文本文件,编辑内容如下:
1000
1001
1002
1003
1004
1005
…
二、导入激活码
——————————————————————
方法1:
使用激活码导入命令:ImportRecycleCodes
①文件名
其中,参数①文件名是第一步中创建的txt文件名(不带全目录)
示例:
[@导入激活码]
#IF
#ACT
ImportRecycleCodes
激活码.txt
方法2:
刷个”管理员戒指”带上,按Alt+C调出命令菜单,选择”管理命令”
->
“导入激活码”,
然后输入文件名:激活码.txt
三、删除激活码
——————————————————————
如果需要删除已导入的激活码,可以:
方法1:
使用命令:DeleteRecycleCodes 起始码号 终止码号
或全部删除:DeleteRecycleCodes
0
示例:
[@删除激活码]
#IF
#ACT
DeleteRecycleCodes 1003 1005 ;
删除1003至1005号段内的所有激活码
DeleteRecycleCodes 0 ;删除全部激活码
方法2:
刷个”管理员戒指”带上,按Alt+C调出命令菜单,选择”管理命令”
-> “删除激活码”
四、使用激活码
——————————————————————
[@main]
输入激活码,领取好礼。
Inputbox
请输入激活码 @激活码输入完成
<关闭/@exit>
[@激活码输入完成 %激活码]
#IF
CheckRecyclecodeExist %激活码
#ACT
MESSAGEBOX 激活码不存在(%激活码)
break
#IF
CheckRecyclecodeUsed %激活码
#ACT
MESSAGEBOX
激活码已被使用(%激活码)
break
#IF
#ACT
UseRecycleCode %激活码
激活码已验证通过
; 检测输入的激活码是否是第1档
#IF
CheckRange %激活码 1000 9999
#ACT
GiveItems
ITEM_SPECFLAG_BIND “2倍经验卷x1 金条x2”
GOTO #LABEL_EXIT
#ENDIF
; 检测输入的激活码是否是第2档
#IF
CheckRange %激活码 20000 27777
#ACT
GiveItems
ITEM_SPECFLAG_BIND “3倍经验卷x1 金条x3”
GOTO #LABEL_EXIT
#ENDIF
#LABEL_EXIT
<返回/@main>
跨服
跨服
1.
准备跨服活动服务器
—————————————————————-
复制Mir200目录下的”区服启动文件.txt”并改名为0.txt,修改0.txt内容如下:
端口号: 19999(一个服一个号,在同一台机器上不能相同)
服务器ID: 0(中央跨服服务器)
区服名称: 跨服活动服
2. 启动跨服服务器
—————————————————————-
按 Win + R 打开运行,输入D:\Mir200\M2Server.exe
0.txt
(你的M2放在哪个目录,就输入哪个完整目录,示例中的M2是放在D盘)
3.
跳转到跨服服务器
—————————————————————-
在本服中使用JumpServer命令跳到跨服服务器
例子:
[@main]
<进入跨服服务器/@enter>
<退出/@exit>
[@enter]
JumpServer 0
阵营
阵营
a.
引擎支持1-255个阵营编号设置,阵营为0表示没有阵营.
同阵营人物名字颜色为蓝色,其它阵营人物名字橘色.
(调到阵营攻击模式后,同阵营不会互相伤害)
b. 怪物也可以有阵营,怪物不攻击同阵营人物. (查看MonGenEx参数7)
(怪物可以和人物同一个阵营的,会去攻击其它阵营怪物和人物)
c. 不同阵营之间PK相当于行会战,是合法PK,不红名也不加PK值(战死方照常掉装备)
1.
设置阵营
—————————————————–
命令:
ChangeCamp
①操作符(+,-,=
) ②阵营号(0-255) ③下线是否保存(0不保存(默认),1保存)
说明:
设置人物阵营号
2.
取消阵营
—————————————————–
命令:
ChangeCamp = 0
说明:
将任务阵营号设0,相当于取消人物阵营
3. 检测阵营
—————————————————–
命令:
CheckCamp ①比较符(<,=,>)
②阵营号(0-255)
说明:
检测人物阵营值
4. 阵营常量
—————————————————–
<$CAMP> 取人物当前阵营号
特殊攻击
特殊攻击
通过引擎BUFF系统,无需攻击触发脚本实现各种攻击增强功能。
例1:刺杀第2格击中吸血
——————————————————————
【实现思路】:
1. 鉴于刺杀第2各破防,可给技能加“破防加BUFF”标志,只有在第2格击中目标破防后,才会生成BUFF.
2. 吸血是给自己加血,所以BUFF中要设置“技能判定后给自已”的标志.
3. 可以在BUFF表中增加一个自定义BUFF,然后设置吸血特效,在BUFF触发时播放,以增强游戏效果.
打开:示例数据.csv
例2:刺杀第2格击中,10%几率降低目标10%双防,持续5秒
——————————————————————
【实现思路】:
1. 鉴于刺杀第2各破防,可给技能加“破防加BUFF”标志,只有在第2格击中目标破防后,才会生成BUFF.
2. 继承例1中吸血,需要设置2个BUFF(一个技能最多可设4个BUFF),一个BUFF是例1中吸血(给自已),另一个BUFF是对目标
3. 一个BUFF可以设置4条属性,固可在一个BUFF中同时设置物理防御、魔法防御减少10%.
4. 技能中生成的每个BUFF,可在BUFF表中增加一个自定义BUFF项,然后设置防御减少少特效,在BUFF触发时播放,以增强游戏效果.
打开:示例数据.csv
例3:提升刺杀伤害5%
——————————————————————
在技能表中第GT列(破坏值率)中设置1.05
打开:示例数据.csv
例4:刺杀致目标每秒流血20点,持续3秒
——————————————————————
【实现思路】:
在例2基础上:
1. 增加一个对目标BUFF,这个BUFF的间歇时间写1秒,持续时间写3秒,BUFF属性填HP:-20
2. 可以专门配置一个BUFF项,估个流血特效加上,以增强游戏效果.
打开:示例数据.csv
例5:刺杀雷电
——————————————————————
设置刺杀一定几率触发雷电术。
设置技能表“触发技能
”(KK列):
触发率率#技能名称#技能等级(写0最高级)#无目标位置(0:自身
1:随机)
本例中此字段填写: 100%#雷电术
打开:示例数据.csv
复活戒指加CD时间
复活戒指加CD时间
引擎默认的复活戒指,人物带上死亡会立即触发复活,复活再死亡就再触发(如果持久还有的话),
两次之间的复活是没有CD时间的。
如果需要在两次复活之前加入CD时间,可按以下方法来做:
1.
新加一个复活BUFF
—————————————————————————–
在Buff表(“Mir200\数据库\更多\BUFF\buff登记.csv”)中增加一个新的BUFF,内容如下:
复活CD,300,BUFF_FLAG_PACKED,,,,,,图标_xxx,,,,,,,,,,,,,,,,
其中,”图标_xxx”如果指定正确,则可以在UI上看到复活CD时间计时
2. QF的复活触发里设置复活CD计时(利用buff机制控制CD读秒)
—————————————————————————–
Mir200\Envir\Market_Def\QFunction-0.txt
; %makeid是导致复活的装备ID,如果此值为0,则表明人物不是由装备复活的
[@Realive %makeid]
#IF
NOT
EQUAL %makeid 0
#ACT
AddBuff 复活CD 60秒 开启项:禁止复活 ;增加60秒复活CD计时BUFF
装备封印和暗属性
修改掉落装备属性
修改掉落装备属性
本引擎可对怪物爆出后、落地前的物品属性进行修改。
注:所有检测、调整物品的命令(通过”穿戴位置或MakeID调用的)”,
都可对这个即将落地的物品生效,调用时MakeID写x
例子:
================================
QFunction-0.txt:
[@MonDropItemEx]
sendmsg 5
当前死亡怪物名称:<$CURRENTMONNAME>
sendmsg 5
当前死亡怪物显示名称:<$CURRENTMONNAME1>
sendmsg 5
当前掉落物品名称:<$ITEMNAME(x)>
sendmsg 5 当前掉落物品IDX:<$ITEMIDX(x)>
#IF
CheckIsWearItem x ; 检查是否为穿戴装备
#ACT
ChangeItemAttr x 1 攻击 +
3 ; 如果暴出的是穿戴装备,则加3点攻击极品属性
!配置项.txt
M2基础配置项
文件:
Mir200/Envir/Data/!配置项.txt
功能:
调整游戏中的一些基础设置,修改后需要执行数据库编译生效.
[系统货币设置]
—————————————————————-
系统内置充值货币名称:元宝
系统内置金币名称:金币
充值比例:1
[全服开关]
—————————————————————-
禁用脚本文件监控:0
;默认0(不禁用),引擎默认是监控Envir目录下所有脚本文件的,如果有脚本文件改动会自动刷新对应脚本
[内挂设置]
—————————————————————-
内挂物品列表1:
金创药(小量) 金创药(中量) 强效金创药 太阳水 强效太阳水 万年雪霜 疗伤药 超级疗伤药 所有红药(*) 所有大药(*) (空)
内挂物品列表2:
魔法药(小量) 魔法药(中量) 强效魔法药 太阳水 强效太阳水 万年雪霜 疗伤药 超级疗伤药 所有蓝药(*) (空)
内挂物品列表3: 太阳水 强效太阳水
万年雪霜 疗伤药 超级疗伤药 随机传送卷 地牢逃脱卷 回城卷 所有大药(*) (空)
内挂物品列表4: 修复油
(空)
内挂物品列表5:
内挂物品列表6:
内挂物品列表7:
内挂物品列表8:
内挂物品列表9:
内挂物品列表10:
允许自动小退:1
[PC端窗口大小选项]
—————————————————————-
PC端窗口大小1:
800×600
PC端窗口大小2: 1024×720(默认)
PC端窗口大小3:
1280×900
PC端窗口大小4:
PC端窗口大小5:
PC端窗口大小6:
PC端窗口大小7:
PC端窗口大小8:
[聊天框(不透明)时文字颜色]
前景色#背景色
—————————————————————-
红字:
绿字:
蓝字:
黑字:
提示:
公聊:
私聊:
队伍:
行会:
附近喊话:
世界喊话:
[聊天框(透明)时文字颜色]
前景色#背景色
—————————————————————-
红字(透明):
绿字(透明):
蓝字(透明):
黑字(透明):
提示(透明):
公聊(透明):
私聊(透明):
队伍(透明):
行会(透明):
附近喊话(透明):
世界喊话(透明):
[各种手续费]
—————————————————————-
摆摊买家金币手续费:
5%
摆摊买家元宝手续费: 5%
摆摊卖家金币手续费: 5%
摆摊卖家元宝手续费: 5%
获得方元宝交易手续费: 10%
[属性相关]
—————————————————————-
1点物理攻击:
1点伤害
1点魔法攻击: 1.375点伤害
1点道术攻击: 1.25点伤害
1点移动速度减少每步移动时间:
7毫秒
1点动作速度减少所有动作每帧时间:5毫秒
1点目标硬直造称目标顿挫时间: 90毫秒
1点硬直抗性减少的顿挫时间: 90毫秒
1点攻速减少每帧攻击时间: 5毫秒
1点技能时间增加技能持续: 1秒
1点技能作用周期加快技能作用:
140毫秒
1点准确抵消多少魔法躲避:3.5%
最大全身极品属性点数:9
每增加1点攻速减少多少攻击后摇时间:10毫秒
每增加1%攻速减少多少攻击后摇时间:0.65毫秒
[倍攻属性] 属性名
倍率
—————————————————————-
倍攻属性1:
暴击伤害 2.0
倍攻属性2: 致命伤害 3.0
倍攻属性3: 神圣伤害
4.0
倍攻属性4: 卓越伤害 5.0
倍攻属性5: 会心伤害 6.0
[人物]
—————————————————————-
玩家最高升级等级:
50
角色转让等级(写0禁转):0
高于此等级角色不能删除:30
聊天等级: 1级
最大经验:
1800000000000000000
最大金币携带量: 2000万
每得多少人物经验写盘: 5万
每得多少技能经验写盘:
200
每账号最多可有活跃角色数: 2
每账号最多可有恢复角色数: 8
玩家死亡后掉落经验: 0
(填0不掉,小于0会增加经验,大于0时扣减经验,经验不足的不扣减)
玩家死亡后每件包裹物品掉落几率: 20%
玩家死亡后每件快捷栏物品掉落几率:
0%(填0永不掉落)
玩家死亡后每件装备掉落几率:
0.2%
每日捐献排名位数:8
保底伤害:0
一体时装:0
记录高于此等级玩家死亡信息:
0(写0全记录,写-1全不记录,其它写多少就是多少级以上记录)
是否限制IP登录数:
否
每IP最多登录角色数: 99(如果限制IP登录数的话)
是否开启断线重连: 是
最大玩家数: 无限制
活动重计时日期:
;血量职业:法师
;蓝量职业:战士
;启用装备暗属性:1
禁止聊天: 否
禁止访问NPC: 否
最大视野宽度:40
最大视野高度:32
// 例如:当前1级,通过获得大量经验或直接脚本设置到10级,此配置情况如下:
// 0 :
不允许跳级,从1级到10级一级一级升上去,中间每级都会调用触发
// 1 :
允许跳级,直接一步到位升到10级,就最后一个10级的升级触发
允许人物直接跳级:0
[人物初始光源]
—————————————————————-
人物初始光源范围:20
人物初始光源强度:0.85
人物初始光源衰减指数:1.78
人物初始光源闪烁速速:20.0
人物初始光源闪烁幅度:0.245
人物初始光源闪烁强度:0.1292
[经验倍率]
—————————————————————-
打怪经验倍数: 1.0倍
任务所得经验倍数: 1.0倍
任务所得金币倍数: 1.0倍
完成任务所得经验倍率:
1.0倍
完成任务所得金币倍率:
1.0倍
手动打怪经验加成: 0.2
[邮件]
—————————————————————-
自动点击第1封邮件:1
[内置BOSS列表]
—————————————————————-
BOSS列表显示定时刷新页面:1
BOSS列表显示掉落记录页面:1
[系统排行榜]
—————————————————————-
排行榜查看等级:
35级
排行榜人数: 100位
排行榜入榜最低等级:
1级
排行榜刷新时间: 0(不写或0每整点刷新)
排行榜每页显示人数: 10位
[挂机]
—————————————————————-
允许离线挂机:
1
挂机中小退上线继续挂机:1
[人物受击免后仰设置]
—————————————————————-
受击免后仰(被人攻击):0
受击免后仰(被怪攻击):0
受击免后仰(被脚本攻击):0
[人物移动速度]
—————————————————————-
走动速度微调:0.75
跑动速度微调:0.75
[PK值,每秒自动减1点]
—————————————————————-
杀人诅咒武器几率:
4%
最大PK值: 43200点
黄名PK值: 3000点
红名PK值: 5400点
黑名PK值:
12000点(黑名后,PK值不自动减,只有使用红名卷清洗)
[神秘人统一外观设置]
—————————————————————-
神秘人统一名字:神秘人
神秘人统一名字颜色:116
神秘人衣服(战士)(男):
轻型盔甲(男)
神秘人衣服(法师)(男): 轻型盔甲(男)
神秘人衣服(道士)(男):
轻型盔甲(男)
神秘人衣服(弓箭手)(男):
神秘人衣服(刺客)(男):
神秘人衣服(武僧)(男):
神秘人衣服(战士)(女):
轻型盔甲(女)
神秘人衣服(法师)(女): 轻型盔甲(女)
神秘人衣服(道士)(女):
轻型盔甲(女)
神秘人衣服(弓箭手)(女):
神秘人衣服(刺客)(女):
神秘人衣服(武僧)(女):
神秘人武器(战士):
凌风
神秘人武器(法师):
凌风
神秘人武器(道士):
凌风
神秘人武器(弓箭手):
神秘人武器(刺客):
神秘人武器(武僧):
神秘人头盔(战士):
神秘人头盔(法师):
神秘人头盔(道士):
神秘人头盔(弓箭手):
神秘人头盔(刺客):
神秘人头盔(武僧):
[队伍相关]
—————————————————————-
1人队伍经验加成:
1.0倍
2人队伍经验加成: 1.5倍
3人队伍经验加成: 1.8倍
4人队伍经验加成:
2.0倍
5人队伍经验加成: 2.5倍
6人队伍经验加成: 3.0倍
7人队伍经验加成:
3.5倍
8人队伍经验加成: 4.0倍
9人队伍经验加成: 4.5倍
10人队伍经验加成:
5.0倍
11人队伍经验加成: 6.0倍
12人队伍经验加成: 8.0倍
[武器升级]
—————————————————————-
一次武器升级点数倍率:
3.5倍
是否扣减武器升级材料: 是
[开仓库价格]
—————————————————————-
开第1仓库:
0元宝(免费)
开第2仓库: 15元宝
开第3仓库: 25元宝
开第4仓库: 35元宝
[开包裹价钱]
—————————————————————-
开第1包裹:
0元宝(免费)
开第2包裹: 25元宝
[物品相关]
—————————————————————-
多少档以上(含)装备记录唯一编号:
3
多少档以上(含)装备流通公告:2
禁用装备掉落计划: 0
是否开启装备掉落记录: 是
是否开启负元宝物品流动锁定:
是
是否限制最低交易价: 否
禁止创建角色: 否
禁止交易: 否
禁止扔东西: 否
禁止扔元宝:
0
禁止捡东西: 否
禁止摆摊: 否
禁止商店卖东西: 否
禁止商店买东西: 否
禁止使用传送道具: 否
禁止使用传送技能: 否
物品清单单页条目数:
12条
买东西时是否检查包裹负重: 是
别人打出物品可拾取时间: 60秒
装备特修价格比例: 3.0倍
武器持久最多可加:
30点
盾牌持久最多可加: 15点
首饰持久最多可加:
5点
摊位过多长时间后自动移除:7天(写0永久存在,最多写20天)
物品掉落防叠加扩展圈数:
8
每1点极品属性多卖金币:20000
系统掉落提示隐藏人物名:0
自动拾取物品飞向人物速度:4.0米/秒 ;设置吸入自动拾取物品时,物品飞向人物速度,值越大越快,填0秒飞
关闭系统PK提示:0 (0:开启 1:关闭) ; 玩家之间PK提示
【K.O.】玩家”xx”将玩家”xx”杀死!
【K.O.】玩家”xx”在地图[%s](%d,%d)将玩家”xx”杀死!
【K.O.】怪物”xx”将玩家”xx”杀死!
【K.O.】怪物”xx”在地图[%s](%d,%d)将玩家”xx”杀死!
【P.K.】玩家”xx”向玩家”xx”发起战斗
【P.K.】玩家”xx”在地图[%s](%d,%d)向玩家”xx”发起战斗
关闭系统掉落提示:0 (0:关闭
1:开启) ;
怪物掉落装备、人物死亡掉落装备等提示
【*掉落】玩家xx在地图xx死亡掉落…
【*掉落】怪物xx在地图xx死亡掉落…
【*掉落】玩家xx在xx击败怪物xx掉落…
【*掉落】怪物xx在xx击败怪物xx掉落…
【*扔】玩家\”%s\”在地图[%s]坐标:(%d,%d)扔下…
【*扔】玩家\”%s\”在地图[%s]坐标:(%d,%d)扔下…
装备背包1名称:装备背包1
装备背包2名称:装备背包2
装备背包3名称:装备背包3
装备背包4名称:装备背包4
[全身穿戴设置]
—————————————————————-
全身极品穿戴:武器
衣服 项链 手镯 戒指
全身极品标头:[全身极品装备]
全身极品标头颜色:250
全身强化穿戴:武器 衣服 项链
全身强化标头:[全身%d火装备]
全身强化标头颜色:251
全身升星穿戴:武器 衣服 项链
全身升星标头:[全身%d星装备]
全身升星标头颜色:252
[装备档次] 名称
回收元宝 回收金币
级别字符
—————————————————————-
装备档次0:
药水材料 0 0
装备档次1: 商店装
0
-1 初级
装备档次2: 沃玛
0.5 0 中级
装备档次3: 祖玛
3.0 0 高级
装备档次4:
赤月 8.0 0 稀有
装备档次5:
疾风 15.0 0 罕见
* 回收金币写-1按物品表商店价格回收,写0不回收,其它数值统一金币数回收
*
装备档次最多定义128个,档次号从0-127,中间要连续不能间断
[物品制造]
ID
名称
—————————————————————-
物品制造1:
GM制造
物品制造2: NPC制造
物品制造3: ?
物品制造4:
?
物品制造5: 怪物爆出
物品制造6: 自定义
…
物品制造99:
自定义
* 物品制造最多定义100个,ID从1开始到99,中间要连续不能间断
[怪物相关]
—————————————————————-
人物下线后宝宝保留时间:
25分钟
是否保存宝宝状态:是(如果否,则当人物下线或服务器重启后,宝宝全部丢失)
鞭尸所得经验倍率: 0.1倍
法师招BOSS级宝宝后计时时间: 2小时
怪物每级名字颜色变化ID: 0
允许怪物穿过地图门点: 1
[行会相关]
—————————————————————-
行会最大人数:50人
行会最大封号数:15个
默认行会招募信息:欢迎加入我们行会!让我们一起共创激情岁月!
默认行会老大封号:掌门人
默认行会成员封号:行会成员
[武器祝福几率]
—————————————————————-
加第1点幸运无效几率:
20%
加第1点幸运诅咒几率: 20%
加第1点幸运成功几率: 60%
加第2点幸运无效几率: 40%
加第2点幸运诅咒几率:
30%
加第2点幸运成功几率: 30%
加第3点幸运无效几率:
45%
加第3点幸运诅咒几率: 30%
加第3点幸运成功几率:
25%
加第4点幸运无效几率: 56%
加第4点幸运诅咒几率:
35%
加第4点幸运成功几率: 9%
加第5点幸运无效几率:
48%
加第5点幸运诅咒几率: 45%
加第5点幸运成功几率:
7%
加第6点幸运无效几率: 48%
加第6点幸运诅咒几率:
47%
加第6点幸运成功几率: 5%
加第7点幸运无效几率:
48%
加第7点幸运诅咒几率: 50%
加第7点幸运成功几率: 2%
加第8点幸运无效几率: 100%
加第8点幸运诅咒几率:
0%
加第8点幸运成功几率: 0%
[幸运效果]
—————————————————————-
0点幸运:
0%
1点幸运: 1%
2点幸运: 2%
3点幸运: 3%
4点幸运:
4%
5点幸运: 5%
6点幸运: 10%
7点幸运: 20%
8点幸运:
30%
9点幸运: 40%
10点幸运: 100%
* 幸运效果设置最多100项
[强化显示] 颜色
变色ID 位置
特效ID
字符
—————————————————————————-
1次强化:
250
0
0
0
+%d
7次强化: 251
0
0
0
强+%d
15次强化: 254
0
0
0
+%d
* 强化显示最多可设置100档,强化次数最大65535次
[星星显示] 颜色
变色ID 位置
装备栏特效ID 字符
星星特效
—————————————————————————-
1星:
250
0
1
0
★x%d
10星:
251
0
1
0
★x%d
15星:
254
0
1
0
★x%d
* 星星显示最多可设置100档,星星个数最大65535
[变量]
——————————————————————
Z变量重置时间: 00:00
J变量重置时间: 00:00
[自定义设置]
——————————————————————
;开启武器变换职业:1
[内置素材配置]
——————————————————————
;
提示:以下填写格式,给出的时全格式,实际填写中,不需要填全,
;
假如就一张图片,填个图片名就可以了.
;
; 填写格式:
;
素材名#帧数#每帧毫秒#混合模式#比例#颜色#X偏移#Y偏移#动画标志#绘制标志
;
;
头顶感叹号:official/common/头顶感叹号.png#1###0.35##4
小锁图标:official/common/小锁.png
星星图标:public/item_tips/star.png
孔洞图标:official/common/hole.png#0#0#0#1.0
脚印图标:official/common/脚印#0#0#COLOR_BLEND_SEMITRANS#0.715#(45:250:96:255)
NPC点击指引箭头:
语音图标:official/common/voice.png
选中框:public/目标选中圈/atklock0.png#12#48#0#0.75#
;
火系技能附着目标燃烧特效贴图
火附着1:火附着A0#4
火附着2:火附着B0#5
火附着3:
火附着4:
;
冰系技能附着目标燃烧特效贴图
冰附着1:冰附着A0#5
冰附着2:冰附着B0#4
冰附着3:
冰附着4:
;
雷系技能附着目标燃烧特效贴图
冰附着1:雷附着A0#5
冰附着2:雷附着A0#5
冰附着3:
冰附着4:
[内置音效配置]
——————————————————————
;
填写音效素材库中的音效素材名
锁定目标音效:
技能失败音效:
无效音效:
确认音效:
粉碎音效:
胜利成果音效:
危险警告音效:
闪现音效:
拳头音效:
金币获得飘字:飘血类型名(取自飘血表.csv)
经验获得飘字:飘血类型名(取自飘血表.csv)
脚本运行配置项
脚本运行配置项
引擎默认开启脚本警告,以及严苛的脚本运行检查,以便在开发阶段迅速定位问题,发现潜在的脚本BUG.
开发者可以通过以下配置关闭警告和严苛模式:
配置项文件: “Mir200/Envir/data/!配置项.txt”
配置项
取值
====================================================
关闭脚本警告: 0 // 默认0(有警告),写1关闭
脚本执行错误继续运行: 0 // 默认0(脚本出错中断执行), 写1脚本总是继续执行
Return继续运行: 0 // 默认0(运行脚本遇到return中断),写1遇到return不中断,继续执行.
排行榜
排行榜
引擎内置玩家等级排行榜功能,GM可以进行以下配置:
1.
排行榜设置
打开配置项文件”Mir200/Envir/data/!配置项.txt”,修改以下配置项:
[排行榜]
—————————————————————-
排行榜查看等级:
35级
排行榜人数: 100位
排行榜入榜最低等级: 1级
排行榜刷新时间:
xx分钟
(此配置项不写或填0,则系统每整点刷新1次排行榜,如果填写,则按所写时间间隔刷新)
2.
排行榜刷新后触发
QFunction-0.txt:
[@RankReload]
SendMsg 1
排行榜已刷新,第一名:<$RANKPLAYERNAME(1)> 第二名:<$RANKPLAYERNAME(2)>
注意:排行榜刷新是全局触发,没有当前人物
3.
排行榜相关常量
取排行榜上玩家名字: <$RANKPLAYERNAME(第几名)>
取排行榜上玩家等级: <$RANKPLAYERLEVEL(第几名)>
取排行榜上玩家职业: <$RANKPLAYERJOB(第几名)>
显示装备来源
显示装备来源
1.
设置物品stdmode标志
——————————————————————
在Mir200\Envir\Data\物品(StdItems).csv中,对需要记录掉落来源的物品,在stdmode(列标G)字段中追加标志:”记录掉落来源”
说明:
1. 如果stdmode没有写任何东西,则直接写:记录掉落来源
2.
如果stdmode写了内容,则在其内容后追加”#记录掉落来源” (实际写时不要双引号)
例如当前stdmode里写的是2,则最终是: 2#记录掉落来源
!!注意:只对高档或重要的装备进行来源设置!!
药水、不重要的材料、垃圾过渡首饰等,不要设置,否则会造成数据库严重卡顿
2.
设置物品来源显示
——————————————————————
打开”Mir200/client_data/ui/desktop/itemattrs.layer”,将以下内容拷贝到适当的位置,
当鼠标指向有自定义文本的物品时,就会显示掉落来源
//
物品掉落来源
<Text|x=-0.0125|y=0.05|text=[掉落来源]|fontname=>
<DescText|part=23>
(如要以上内容,已在itemattrs.layer文件中,则可不写)
如果需要对掉落来源字样颜色进行修改,可以打开”Mir200/client_data/hero_config.txt”文件,
找到以下几行设置进行调整(如果没有就写上去)
——————————————————————————-
物品来源地图名颜色=250
物品来源怪物名颜色=250-241
物品来源玩家名颜色=250
物品来源时间颜色=250
注意:hero_config.txt文件修改并保存后,需要重启登录器生效
神秘人模式
神秘人模式
也叫浑水摸鱼模式,在地图上所有玩家统一外观、统一名字、不能看装备、不能公聊等.
1. 设置神秘人外观
—————————————————————-
打开”Mir200/Envir/data/!配置项.txt“,找到”[神秘人统一外观设置]“,
没有的话,把下面的内容复制到”基础设置.txt”中任意地方.
[神秘人统一外观设置]
—————————————————————-
神秘人统一名字:神秘人
神秘人统一名字颜色:116
神秘人衣服(战士)(男):
轻型盔甲(男)
神秘人衣服(法师)(男): 轻型盔甲(男)
神秘人衣服(道士)(男):
轻型盔甲(男)
神秘人衣服(弓箭手)(男):
神秘人衣服(刺客)(男):
神秘人衣服(武僧)(男):
神秘人衣服(战士)(女):
轻型盔甲(女)
神秘人衣服(法师)(女): 轻型盔甲(女)
神秘人衣服(道士)(女):
轻型盔甲(女)
神秘人衣服(弓箭手)(女):
神秘人衣服(刺客)(女):
神秘人衣服(武僧)(女):
神秘人武器(战士):
凌风
神秘人武器(法师):
凌风
神秘人武器(道士):
凌风
神秘人武器(弓箭手):
神秘人武器(刺客):
神秘人武器(武僧):
神秘人头盔(战士):
神秘人头盔(法师):
神秘人头盔(道士):
神秘人头盔(弓箭手):
神秘人头盔(刺客):
神秘人头盔(武僧):
2. 设置地图神秘人模式
—————————————————————-
打开”Mir200/Envir/Data/地图(MapInfo).csv”,”地图标志”列追加:
|神秘人
当人物进入有”神秘人”标志的地图时,就会显示统一外观、统一名字等.
调整物品地图消失时间
调整物品地面消失时间
1.
独立调整
————————————————–
独立调整某个物品的地面消失时间:
打开物品表”Mir200/Envir/data/物品(StdItems).csv”,找到”档次”字段(K列),
然后在档次值后面用#号连接时间值,可以是xx秒、xx分钟、xx小时,如:
例1: 3#5分钟 ;当前物品档次为3,扔下或爆出后在地面停留5分钟后消失
例2:
#1分钟 ;没写档次,默认为0,物品扔下或爆在地面上停留1分钟消失
2.
全局调整
————————————————–
如果不想对每个物品调整地面消失时间,可以设置一个全局消失时间.设置方法:
打开”Mir200/Envir/data/!配置项.txt”,修改或增加以下设置:
物品地面消失时间:3分钟 ;设置物品在地面消失时间(全局),可以写xx秒 xx分钟 xx小时
物品每档次消失时间增加:1分钟 ;设置装备每加一档,消失时间多加多长时间,),可以写xx秒 xx分钟 xx小时
注意:
如果物品设置了独立消失时间,则优先读取独立设置的消失时间,
没有设置独立时间则读取全局时间.
全身强化附加
设置全身强化附加
设置全身装备都强化达到某一等级后触发的附加属性和BUFF
1. 设置全身穿戴位置
—————————————————-
打开”Mir200/Envir/Data/!配置项.txt”,填写以下选项:
全身强化穿戴:武器 衣服
项链 ;
设置哪些穿戴位置参于全身强化次数判定,可以写上所有穿戴位置
全身强化标头:[全身%d火装备] ; 设置全身强化升星次数判定成功后,显示在装备属性面板上的附加属性标头,%d是全身强化次数值
全身强化标头颜色:251 ; 设置以上标头文字颜色
效果:
2. 设置每档附加属性和BUFF
—————————————————-
查看表写法: “全身强化触发.csv”
hero_config.txt
登录器配置项
加外:
登录器配置除了在以上配置文件配置随登录器发布外,还可调用命令由服务器M2下发:
SetClientCfg 配置项名 配置值
配置项名 取值说明
————————————————————–
应用名称=xx 设置显示在标题栏上的游戏名称
微端服务器IP=xx 设置微端服务器IP地址,多个微端服务器IP以空格隔开,支持多机负载平衡
按钮声音=xx
设置默认按钮声音,一般写105,取值在”Mir200/client_data/pak/sound/r1.list”文件中
隐藏聊天框BUFF属性提示=xx
; 1(隐藏) 0(不隐藏)
大对话偏移Y(手机端)=
xx ;
所有脚本打开的大对话框在手机端上下移动微调(例:0不变,-0.1上调位置,0.1下调位置)
大对话偏移Y(PC端)=
xx ;
所有脚本打开的大对话框在PC端上下移动微调(例:0位置不变,-15:上移15个像素,15:下移15个像素)
丢弃物品不叠加=0
; 在PC客户端,朝一个方向丢弃物品是否叠加, 0不叠加 1叠加
[人物名字]
人物名字偏移=-24
; 基准偏移,人物名字从人物脚底向上偏移24像素
[选中框]
=====================================
选中框偏移X=0
选中框偏移Y=0
选中框素材=素材名#帧数#每帧毫秒#混合模式
[快捷键设置]
===================================
开始挂机=Ctrl+Z
攻击模式=Ctrl+H
宝宝休息=Ctrl+D
组人=Alt+E
[悬浮框配置]
====================================
基础属性单条显示=1
悬浮框最小宽度=280
悬浮框最小高度=100
极品属性点显示方式=0
; 0默认,累加级品点数在右则显示 1下限级品点在左侧显示 2下限级品点在右侧显示
[小地图透明度]
小地图半透明=0
; 1小地图半透明,0不透明
[UI]
====================================
长按显示tip时间=0
;设置手机端长按UI多少时间后显示tips,毫秒
[显示]
====================================
怪物头顶显示BUFF图标=1
人物头顶显示BUFF图标=1
人形怪头顶显示BUFF图标=1
缺省血条显示刻度=0
; 缺省头顶血条是否显示刻度线:0不显示,1显示
[字体]
====================================
飘字字体=
;不填或写默认使用宋体,配置项删除使用韩服字体
血量字体=
;同上
装备面板字体= ;同上
[技能]
====================================
智能出招=0
;0关闭 1开启
装备飞入拾取
装备飞入拾取
1.
设置飞入拾取属性
—————————————————————
以任何方式给人物以下属性:
自动拾取范围:xx
; 以人物为中心的自动拾取范围,单位:米(人物高约1.75米,一般12米约为全屏范围)
自动拾取周期:xx秒 ;周期性检测拾取时间,单位:秒
自动拾取个数:xx ; 一次最多捡多少个物品,如果此属性值为0,则拾取范围内所有可拾取的物品
2.
脚本开启/关闭飞入拾取
—————————————————————–
SetPlayerSetting enable_remote_pickup 1
; 开启飞入拾取
SetPlayerSetting
enable_remote_pickup 0
;
关闭飞入拾取
<$PlayerSetting(enable_remote_pickup)>
; 取当前飞入拾取开启状态(返回值:0关闭
1开启)
装备对比和自动穿戴
修改客户端配置文件”client_data/hero_config.txt”
开启装备比对=1
开启穿戴提示=1
更改查看对比装备显示”身上装备”字样图片:
Mir200/client_data/ui/common/Layers/itemattrs.layer
<IMG|id=30|x=0.025|y=-0.0045|w=0.075|h=0.65|bkimg=身上装备|align=ALIGN_RIGHT|flags=”固定宽高比|顶层绘制|窗口比例”>
Mir200/client_data/ui/common/weartip.layer
客户端热更
登录器热更
本引擎支持PC和安卓登录器热更。当官方登录器有更新时,玩家无需重新下载安装,直接在线热更。
注意:
登录器热更和微端绑定,必须开启微端才能热更。
操作方法:
1.
找到”微端服务器.exe”及所在目录
2.
在微端服务器所在目录新建以下两个目录(如下图所示):
PC热更
安卓热更

3.
在版本目录中使用“登录器(开发端).exe”打包出新的PC登录器,
然后将新打包出来的1个登录器EXE程序文件拷贝到以上微端目录中的“\PC热更”目录里。
4.
在版本目录中使用“登录器(开发端).exe”打包出新的安卓包,
然后用rar或7z等解压工具打开安卓APK包,找到以下2个目录:


将上图中的2个文件夹解压出来,全部拷贝到微端服务器目录中的“\安卓热更”目录里
5. 最后启动微端,玩家的客户端一旦启动,则开始热更。
开区关区
开区关区
1. 开区
————————————————-
命令:
StartGameServer
①区服名称 ②区服ID ③开区时间(不填立即开区)
说明:
开启一个游戏区服
参数:
①区服名称:
显示在区服列表中的游戏服务器名称,最多30个字,不能和已开区服名称重复
②区服ID:
数字ID,不能和已开的区服ID重复
③开区时间:
年-月-日 时:分:秒
若不填,则在调用此命令后立即开区
若填写,则游戏服会立即加入选服列表,但状态为等待开服,可以创建人物.
例子:
[@开区]
#IF
#ACT
StartGameServer 测试2区
20002
2.
关区
————————————————-
命令:
CloseGameServer ①区服名称(不填关闭当前区服)
说明:
关闭一个游戏区服
3. 改区名
————————————————-
命令:
ChangeServerNmae
①区服ID ②新区服名
参数:
①区服ID:要改哪个区的区服ID,
如果改本区,可用<$SERVERID>取本区ID
②新区服名:新的区服名,最多30个汉字
合区
合区
1. 合区
————————————————-
命令:
MergeGameServer ①合并区ID
参数:
①合并区ID:将本区合并到哪个区的区服ID(注意:此处只能填区服ID,不能填区服名)
合并后,本区自动删除 ,此命令需要在本区执行
例子:
[@本区合到1区]
#IF
#ACT
MergeGameServer 20001
