良心GM速成指南-GOM.LA良心GM速成指南-GOM.LA

求知若渴
虚心若愚

GOM定制功能和部分隐藏功能

GM命令
@ChangeSabukLord 城堡名字 行会名字 修改沙巴克所属行会

自定义按钮

格式:命令 参数1 参数2 参数3 参数4 参数5 参数6 参数7 参数8 参数9 参数10
命令:ADDBUTTON
例子
'#IF
'#ACT
ADDBUTTON 3 1 283 284 285 10 200 1 -1 253/自定义按钮1254/测试增加按钮
参数说明:

参数1为WIL补丁序号,此序号在M2-查看-列表信息二-WIL资源 里面编辑
参数2为按钮点击后的脚本触发序号,触发QF里面的[@ButtonClickX]X即为触发序号
参数3为按钮默认图片
参数4为鼠标经过图片
参数5为按钮按下图片
参数6为距离窗口左边的距离(此参数建议用分辨率宽变量计算)
参数7为距离窗口顶边的距离(此参数建议用分辨率高变量计算)
参数8为按钮是否可以移动0=不能移动1=可以移动
参数9为按钮上面显示的文字标题,-1时为空标题(用于不显示标题)
参数10为鼠标移动到按钮显示的悬浮框备注信息 “”表示换行 “/”颜色分割符 自定义颜色功能需要2015-01-08之后的程序才支持

其他说明:
按钮序号只能为1-20,因为最多就添加20个自定义按钮
格式:命令 参数1 参数2
命令:DELBUTTON
例子
'#IF
'#ACT
DELBUTTON 1

说明:参数1为按钮序号(1-20) 参数2(0或空的时删除自己的,1时删除全服用户的)

功能:显示一个放大的虚影

SHOWPHANTOM 参数1(任意字符,不能为空) 参数2(任意字符,不能为空) 参数3(任意字符,不能为空) 参数4(任意字符,不能为空) 参数5(任意字符,不能为空) 参数6(透明度(0~255)) 参数7(任意字符,不能为空) 参数8(任意字符,不能为空) 参数9(时间(秒)) 参数10(任意字符,不能为空)

功能:客户端显示BUFF

SetClientBuff WIL文件序号 序号(1~20) 图片序号 倒计时间(-1时按钮,大于0是倒计时) 文字备注 微调坐标X 微调坐标Y (开启) //倒时触发[@CloseClientBuffX]X是序号。按钮模式点击触发[@文字备注]
CloseClientBuff 序号(1~20)

在线有效 ,下线失效

首饰盒

SetSndaItemBox 参数1(任意字符,不能为空) 参数2(任意字符,不能为空) 参数3(开启或关闭用户首饰盒。开启=8888,关闭=1234) 参数4(任意字符,不能为空) 参数5(任意字符,不能为空) 参数6(任意字符,不能为空) 参数7(任意字符,不能为空) 参数8(任意字符,不能为空) 参数9(要和参数3完全保持一致 开启或关闭用户首饰盒。开启=6666,关闭=5678) 参数10(任意字符,不能为空)

M2-选项-功能设置-其他设置(1)里面有一些首饰盒的设置

2015-05-18之后更新后支持套装。之前的不支持

开启首饰盒:
QFunction-0.txt 加入如下脚本
[@OpenSndaItemBox]
'#act
;如果那个首饰盒按钮是灰色的,点击那个按钮就会触发这个,然后使用命令SetSndaItemBox开启后,按钮就会变彩色,然后点击按钮就可以打开首饰盒子
SetSndaItemBox 1 2 8888 4 5 6 7 8 6666 9 10
SENDMSG 6 首饰盒开启成功

关闭首饰盒:
[@main]
'#act
SetSndaItemBox 1 2 1234 4 5 6 7 8 5678 9 10
SENDMSG 6 已关闭

首饰盒12个装备,StdMode值 100~111

首饰盒装备的修理,在NPC文件头增加以下代码
(@buy @sell @repair @s_repair)
%100
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111

首饰盒支持CheckItemW TakeW AutoTakeOnItem AutoTakeOffItem这4个脚本命令

AutoTakeOnItem 装备名称 装备位置(30~41 是首饰盒的位置代码)
AutoTakeOffItem 装备位置(30~41 是首饰盒的位置代码)

[@TakeOnX]
首饰盒穿装备触发 X值=30~41

[@TakeOffX]
首饰盒脱装备触发 X值=30~41

首饰盒装备,人物死亡掉落设置在(M2-选项-参数设置-人物死亡-首饰盒)
首饰盒装备是否掉持久设置(M2-选项-功能设置-其他控制(1))

镶嵌宝石

注意:
镶嵌有个地方要设置好,否则可能导致镶嵌成功了,但是客户端不显示
M2-查看-列表信息二-内挂捡取。最下面那个“物品数据库不发送到登陆器”这个选项,如果你勾选了
请配置登陆器的时候,点击集成特殊文件,把物品数据库集成。否则就不要勾选

在数据库增加宝石的DB,宝石DB如下:

宝石的Shape值(0~4)显示出5个不同颜色的镶嵌宝石。在必备补丁NewopUI.PAK的301~305
宝石的Shape值如果设置为255,镶嵌后会显示宝石DB的Looks的。也就是DnItems里面的素材

宝石DB库的字段Reserved=0时 Ac2 Mac2 DC2 MC2 SC2 HP MP字段的值是增加的对应的7个基本属性的值
宝石DB库的字段Reserved>0时 Ac2 Mac2 DC2 MC2 SC2 HP MP字段的值除以100,为各属性的倍数,例如Ac2设置为110,人物的防御为200。 人物实际防御=110/100*200=220

Value1~Value11 是增加的元素属性。

其他字段没有特别要求。

打孔脚本命令
DRILLHOLE 参数1(任意字符,不能为空) 参数2(任意字符,不能为空) 参数3(装备位置(0~16时身上装备,-1时为OK框里的物品)) 参数4(任意字符,不能为空) 参数5(任意字符,不能为空) 参数6(孔位置(0~4)) 参数7(任意字符,不能为空) 参数8(状态(1=打开 0关闭)) 参数9(任意字符,不能为空) 参数10(任意字符,不能为空)

镶嵌宝石脚本命令,先要打孔后才能镶嵌成功
SOCKETABLEITEM 参数1(任意字符,不能为空) 参数2(任意字符,不能为空) 参数3(任意字符,不能为空) 参数4(任意字符,不能为空) 参数5(装备位置(0~16时身上装备,-1时为OK框里的物品)) 参数6(宝石位置(0~4)) 参数7(任意字符,不能为空) 参数8(任意字符,不能为空) 参数9(宝石DB库的IDX序号加1(如果设置0就是删除宝石)) 参数10(任意字符,不能为空)

检测玩家身上指定装备是否已经打孔
CHECKDRILLHOLE 装备位置(0~16时身上装备,-1时为OK框里的物品) 孔位置(0~4)

检测玩家身上指定装备是否已经镶嵌宝石
CHECKSOCKETABLEITEM 装备位置(0~16时身上装备,-1时为OK框里的物品) 宝石位置(0~4) 变量(如果已经镶嵌宝石,该宝石的IDX值会保存到该变量) 变量2(如果已经镶嵌宝石,该宝石的名称会保存到该变量)

检测玩家身上指定装备已经打孔的数量
CHECKDRILLHOLECOUNT 装备位置(0~16时身上装备,-1时为OK框里的物品) 检测符(<,>,=) 数量

检测玩家身上指定装备已经镶嵌宝石的数量
CHECKSOCKETABLEITEMCOUNT 装备位置(0~16时身上装备,-1时为OK框里的物品) 检测符(<,>,=) 数量

其他注意:
StdMode=19 20 21 23 24 5 6
这几种装备是没有防御和魔防的,最好不要镶嵌防御和魔防。 如果你镶嵌魔防和防御,那出现的属性是幸运、敏捷、准确等等这些属性

[@例子]
'#IF
CHECKSOCKETABLEITEM 0 0 N1 S1
'#act
SENDMSG 6 衣服第一个位置镶嵌了宝石。宝石名称:<$STR(S1)>,宝石IDX字段:<$STR(N1)>
'#elseact
SENDMSG 6 衣服第一个位置没有镶嵌宝石

[@镶嵌衣服的第一个宝石,宝石IDX为831]
'#ACT
;先要打孔
DRILLHOLE 0 0 1 *
;然后镶嵌
SOCKETABLEITEM 0 0 832 *

开通镶嵌,这个功能也可以使用

<ItemShow:D:F:X:Y:B>
d= 物品ID
F= 数量(如果为0 就不会显示数量)
X Y = 微调坐标 排版的
B=是否显示背景图片 在必备补丁的47号图片
鼠标放上去显示物品属性。类似图标的用法

极品属性转移

<$MOVE.SOURCE.NAME> ;正在移动的原始物品名称
<$MOVE.DEST.NAME>;正在移动的目标物品名称

脚本命令:打开极品属性转移窗口
;OpenMoveItemValueDlg 参数1(20130801) 参数2(20130802) 参数3(所需货币类型(0=元宝,1=金币,2=泡点)) 参数4(20130804) 参数5(所需货币值) 参数6(20130806) 参数7(20130807) 参数8(20130808) 参数9(20130809) 参数10(20130810)

脚本命令:关闭极品属性转移窗口
;CloseMoveItemValueDlg

[@main]
'#IF
'#ACT
OpenMoveItemValueDlg 20130801 20130802 0 20130804 100 20130806 20130807 20130808 20130809 20130810
;打开属性转移窗口,转移装备极品属性需要100元宝

;点击转移按钮会触发QF脚本中以下字段
[@StartMoveItemValue]
'#IF
CHECKTEXTLIST ..QuestDiary物品名称.txt <$MOVE.SOURCE.NAME>
'#ACT
MoveItemValueFail
;MoveItemValueFail 禁止转移命令
SENDMSG 6 该物品禁止转移
break

'#IF
CHECKTEXTLIST ..QuestDiary物品名称.txt <$MOVE.DEST.NAME>
'#ACT
MoveItemValueFail
;MoveItemValueFail 禁止转移命令
SENDMSG 6 该物品禁止转移
break

'#IF
'#ACT
MoveItemValueOK
;MoveItemValueOK 开始转移属性命令,会自动扣除所需的费用,如果费用不够转移失败

可视化仓库

可视化仓库总共3个仓库,除了默认的一个仓库外,其他2个仓库,需要脚本命令开通

;仓库二未开启时,从该仓库取物品或存物品会失败,并且触发QF脚本字段

;命令SETSTORAGEOPEN设置仓库开启或关闭状态

;SETSTORAGEOPEN 参数1(20130801) 参数2(20130802) 参数3(20130803) 参数4(20130804) 参数5(仓库序号(2,3)) 参数6(20130806) 参数7(20130807) 参数8(20130808) 参数9(开启或关闭(1,0)) 参数10(20130810)

[@StorageOpenFail2]
'#IF
'#ACT
MESSAGEBOX 仓库二无法打开,单击确认后开启 @开启仓库二 @取消

[@开启仓库二]
'#IF
CHECKGAMEGOLD > 100
'#ACT
GAMEGOLD - 100
SETSTORAGEOPEN 20130801 20130802 20130803 20130804 2 20130806 20130807 20130808 1 20130810
;开启仓库二命令
MESSAGEBOX 仓库二已解锁
'#ELSEACT
MESSAGEBOX 元宝不够

;仓库三未开启时,从该仓库取物品或存物品会失败,并且触发QF脚本字段
[@StorageOpenFail3]
'#IF
'#ACT
MESSAGEBOX 仓库三无法打开,单击确认后开启 @开启仓库三 @取消

[@开启仓库三]
'#IF
CHECKGAMEGOLD > 100
'#ACT
GAMEGOLD - 100
SETSTORAGEOPEN 20130801 20130802 20130803 20130804 3 20130806 20130807 20130808 1 20130810
;开启仓库三命令
MESSAGEBOX 仓库三已解锁
'#ELSEACT
MESSAGEBOX 元宝不够

宝宝不攻击人物

ChangeSlaveAttackHumPowerRate 宝宝名称 攻击人物威力倍率(0不攻击人物,当前值除以100为实际倍数)
调整版本攻击人物的威力倍率

[@main]
'#if
CHECKSLAVENAME 神兽
'#act
ChangeSlaveAttackHumPowerRate 神兽 0
sendmsg 6 神兽不攻击人物
'#elseact
sendmsg 6 请先把神兽召唤出 来

修改宝宝的攻击威力

ChangeSlavePowerRate 宝宝名称 (+,-,=) 威力倍数(实际倍数等于设置值除以100) 有效时间(秒)

检测宝宝名字范围

CHECKSLAVENAME 宝宝名称 范围 如果范围为0或留空,则不检测是否在范围内

时装

M2-选项-客户端设置-内挂控制(二) 隐藏时装不要勾选,否则无法看到时装界面
[Setup]
;在!Setup.txt字段下加入
;时装物品显示前缀文字信息
FashionPreFix=[时装]

时装衣服DB设置:StdMode段66为男衣服,67为女衣服,其他字段和普通衣服一样。位置代码:17。
时装武器DB设置:StdMode段68、69为武器,其他字段和普通武器一样。位置代码:18。
时装衣服属性和衣服一样。时装武器属性也是和普通的武器属性一样设置。
佩戴时装衣服和时装武器可以触发:[@TakeOn17]和[@TakeOff18]
相关常量<$SDRESS> <$SWEAPON> <$G_SDRESS> <$G_SWEAPON>

人物杀怪暴率倍数

脚本命令 KILLMONBURSTRATE 20140220 20140221 参数1 20140223 20140224 20140225 20140226 参数2 20140227 20140228
参数说明:
参数1 //倍率,实际倍率除以100;
参数2 //时长
例如:
'#ACT
KILLMONBURSTRATE 20140220 20140221 200 20140223 20140224 20140225 20140226 600 20140227 20140228
SENDMSG 7 杀怪爆率翻倍,时长:600秒!

<$KILLMONBURSTRATE> 返回人物杀怪暴率倍数;

<$KILLMONBURSTRATETIME> 返回人物杀怪暴率倍数剩余时间;

收费网关

收费网关直接到我们官方网站的商业版程序下载地址1 百度云下载地址里面找

调试方法:
是否控制,下面的勾先全部去掉 勾选网关的调试模式 然后进游戏 砍 跑等等动作,网关日记框就有参数出来了,根据出来的参数设置网关,设置间隔。
其他参数如:延时处理、累加限制等等参数不要乱调。
全部调试好了,然后把是否控制,下面的勾全部勾上

修改人物的元素

ChangeHumNewValue 元素位置(0-10) 增加百分比(0-255) 有效时间(秒) 暴击或者反伤时的威力倍数(实际倍数等于设置值除以100)该改功能一但开启后,引擎的暴击和反伤倍数就无效了

把人物的属性叠加给宝宝

ChangeSlaveAbil 宝宝名称 类型(0叠加到攻击,1叠加到防御) 叠加百分比 使用人物的什么属性叠加给宝宝(0道术 1魔法 2攻击)

人物装备框3个自定义按钮+包裹5个自定义按钮

自己的装备框按钮点击触发
[@StateWindowsButtonClick1]
[@StateWindowsButtonClick2]
[@StateWindowsButtonClick3]

查看对方的装备框按钮点击触发 对方的名称常量 <$USERSTATENAME>
[@UserStateButtonClick1]
[@UserStateButtonClick2]
[@UserStateButtonClick3]

包裹自定义按钮5个背包自定义按钮
[@ItemBagButtonClick1]
[@ItemBagButtonClick2]
[@ItemBagButtonClick3]
[@ItemBagButtonClick4]
[@ItemBagButtonClick5]
可以使用脚本命令SETITEMBAGBUTTONINFO来动态调整按钮的位置,或是否显示某个按钮。
命令格式 SETITEMBAGBUTTONINFO 按钮编号(1~5) 是否可见(0不可见,1可见) 坐标X 坐标Y 提示信息


修改物品的Looks

ChangeItemLooks 装备位置(0-16,-1表示OK框里的物品) 操作符号(+,-,=) Looks值(0表示恢复为DB里的Looks,大于0表示修改)

;修改物品的Shape 只对衣服和武器有效
ChangeItemShape 装备位置(0-16,-1表示OK框里的物品) 操作符号(+,-,=) Shape值(0表示恢复为DB里的Shape,大于0表示修改, 0-65535)


装备投保功能

需要在物品DB StdItems.DB 里增加2个字段 InsuranceGold 和 InsuranceCurrency 字段类型选择: INTEGER

InsuranceGold 投保金额 设置大于0时 登陆器才会显示该装备是否已经投保
InsuranceCurrency 保金类型 0元宝 1金币 2泡点 3金刚石 4灵符

QF脚本触发,人物死亡掉装备触发 [@DropUseItemsX] X表示装备位置 0-18
这个必须是InsuranceGold字段大于0,投保次数大于0,人物死亡掉装备才会触发。投保次数,每次人物死亡掉装备自动减1

相关常量:
OK框的常量 保金类型:<$BOXITEM[X].INSURANCECURRENCY> 投保次数:<$BOXITEM[X].INSURANCECOUNT> 投保金额:<$BOXITEM[X].INSURANCEGOLD>

以下常量必须在 [@DropUseItemsX]触发里才会有效
当前掉落前装备的 剩余投保次数:<$INSURANCECOUNT>
当前掉落前装备的 保金类型:<$INSURANCECURRENCY>
当前掉落前装备的 投保金额:<$INSURANCEGOLD>
当前掉落前装备的 名称: <$INSURANCEITEMNAME>

相关脚本命令:
检测装备投保次数
CHECKINSURANCECOUNT 位置(0-18,-1表示OK框) 检测符(>,<,=) 次数(0-65536)

调整装备投保次数
CHANGEINSURANCECOUNT 位置(0-18,-1表示OK框) 调整符(+,-,=) 次数(0-65536)

QF脚本触发:
[@DropUseItems0]
'#IF
'#ACT
MOV M1 0

'#IF
Equal <$INSURANCECURRENCY> 0
'#ACT
MOV M1 1
MOV S1 <$INSURANCEGOLD>
INC S1 元宝

'#IF
Equal <$INSURANCECURRENCY> 1
'#ACT
MOV M1 1
MOV S1 <$INSURANCEGOLD>
INC S1 金币

'#IF
Equal <$INSURANCECURRENCY> 2
'#ACT
MOV M1 1
MOV S1 <$INSURANCEGOLD>
INC S1 泡点

'#IF
Equal M1 1
'#ACT
ThrowItem <$MAP> <$X> <$Y> 10 <$STR(S1)> 1|60 0 1
SENDMSG 6 你的衣服【<$INSURANCEITEMNAME>】有保险,没有掉,掉落<$STR(S1)>。剩余投保次数(<$INSURANCECOUNT>)保金类型(<$INSURANCECURRENCY>)投保金额(<$INSURANCEGOLD>)
;'#ELSEACT
;SENDMSG 6 未知投保类型

宝箱功能

按说明书设置好数据库物品
Envir文件夹下新建boxslist.txt文件
文件格式:宝箱名 物品 位置 概率
位置=0:可开出物品
位置=1:中间物品
位置=2:不可开出物品

*M2-查看-列表信息二可设置宝箱物品

检测死亡不掉装备的次数-未测试

CheckNotDropItemCount (<,>,=) 次数
调整死亡不掉装备的次数
NotDropItemCount (+,-,=) 次数

扩展DB实现(具体不晓得)

装备名字下的备注

!steup.txt 内的[Server]小节下添加:ItemDesc=20140315
Envir文件夹下的DZItemDescList.txt 就是备注了,和普通备注用法相同,修改重启生效。

文件格式,例:
;装备名称 备注颜色 备注信息
木剑=251/史诗
铁剑=253/极品

注意:GEE引擎自带顶行备注

四级技能

四级魔法盾;4;52;20;0;0;30;0;0;1;40;50;41;100;42;200;0;;
四级烈火,4,0,1,0,0,0,0,50,0,0,0,0,0,0,0,0,0,0,26,26,20000,5,
四级灭天火,4,1,1,0,0,0,0,50,0,0,0,0,0,0,0,0,0,0,45,45,20000,5,
四级火符,4,2,1,0,0,0,0,50,0,0,0,0,0,0,0,0,0,0,13,13,20000,5,

四级魔法盾;31;0;1;47;0;0;1144;0;0;0;0;0;0;0;0;0;0;0;0;0;25000;5;;

这四个技能魔法没有DB,直接添加物品ID就行了
为什么呢??? 比如四级烈火 倒数第四个数字是26 倒数第三个数字也是26
其中倒数第四的26代表需要三级技能的ID(ID26技能是烈火,如果你的不是请改成烈火技能的序号) 倒数第三个数字26代表四级对应的普通技能
我的数据库烈火剑法的序号就是26

多级脚本

目标名字.MOVEX 触发者变量 目标的变量
;将目标的变量保存到触发者变量

任务触发脚本

Envir/MapQuest.txt 文件夹内
地图号 变量 逻辑判断 怪物名 固定星号 触发任务脚本
F1A01 [63] 0 [精英]沃玛教主 * Q008

地图:星号为所有地图触发(不建议写星号,影响效率)
变量:个人标识类型(1-999)0为不限制条件
逻辑:标识逻辑判断(0或1)
怪物:杀死指定怪物时
条件:固定值
文件:EnvirMapQuest_Def文件夹下的文件名字

判断当前在一周内星期几

DayOfWeek 返回逻辑型 用于'#if语句下,判断当前是星期几
星期一:Mon
星期二:Tues
星期三:Wed
星期四:Thur
星期五:Fri
星期六:Sat
星期天:Sun

常量使用

定义:
ENVIR目录下创建Defines目录存放常量定义文件,格式如下:
定义命令 常量名 常量内容 备注
“'#DEFINE MAINBUYMSG 请选择你要购买的药品。 通用NPC说明”

*建议常量名使用英文或有独特标识的命名方法,以免冲突

调用:
在脚本最上方使用一下命令“'#INCLUDE 文件名.txt”即可完成调用
使用常量直接使用常量名即可
调用后即可在脚本或CALL出的脚本内使用

*调用和定义无需写@符号
*无论在任何位置出现常量字符,引擎都会优先按常量识别执行

自定义变量

定义:
VAR Integer Human 变量名 //数字型
VAR String Human 变量名 //字符型
加载:
LoadVar Human 变量名 ..QuestDiary保存路径.txt
保存:
SaveVar Human 变量名 ..QuestDiary保存路径.txt
运算:
CalcVar Human 变量名 +-= 值
检测:
CHECKVAR Human 变量名 ><= 值
引用:
<$Human(变量名)>

*全局变量Global 行会变量Guild,用法同上。
*行会自定义变量在QF文件@LoadGuild段脚本下声明(初始化行会)

本原创文章未经允许不得转载 | 当前页面:良心GM速成指南-GOM.LA » GOM定制功能和部分隐藏功能
广告由gom.la提供

评论