追忆传奇

找回曾经激情热血的岁月!

GOM引擎1108版脚本功能补充说明

===============自定义按钮===============

格式:命令 参数1 参数2 参数3 参数4 参数5 参数6 参数7 参数8 参数9 参数10

命令:ADDBUTTON

例子

#IF
#ACT
ADDBUTTON 3 1 283 284 285 10 200 1 -1 253/自定义按钮1\254/测试增加按钮

参数说明:

参数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 衣服第一个位置镶嵌了宝石。宝石名称:,宝石IDX字段:831

#elseact

SENDMSG 6 衣服第一个位置没有镶嵌宝石

[@镶嵌衣服的第一个宝石,宝石IDX为831]

#ACT

;先要打孔

DRILLHOLE * * 0 * * 0 * 1 * *

;然后镶嵌

SOCKETABLEITEM * * * * 0 0 * * 832 *

===============NPC脚本显示物品图标及属性===============

<ItemShow:D:F:X:Y:B>

d= 物品ID

F= 数量(如果为0 就不会显示数量)

X Y = 微调坐标 排版的

B=是否显示背景图片 在必备补丁的47号图片

鼠标放上去显示物品属性。类似图标的用法

===============极品属性转移===============

;正在移动的原始物品名称

;正在移动的目标物品名称

脚本命令:打开极品属性转移窗口

;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

#ACT

MoveItemValueFail

;MoveItemValueFail 禁止转移命令

SENDMSG 6 该物品禁止转移

break

#IF

CHECKTEXTLIST ..\QuestDiary\物品名称.txt

#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 请先把神兽召唤出来

==============================

支持韩国地图

===============时装===============

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秒!

返回人物杀怪暴率倍数;

返回人物杀怪暴率倍数剩余时间;

===============物品备注===============

备注功能;

在Envir目录下创建个DZItemDescList.txt文本文件

文件格式,例:

;装备名称 备注颜色 备注信息

木剑=251/史诗

铁剑=253/极品

==============包裹按钮================

包裹按钮自定义按钮触发共5个按钮在脚本QFunction-0.txt里触发

[@ItemBagButtonClickX] X范围在1-5

[@ItemBagButtonClick1]
[@ItemBagButtonClick2]
[@ItemBagButtonClick3]
[@ItemBagButtonClick4]
[@ItemBagButtonClick5]

可以使用脚本命令SETITEMBAGBUTTONINFO来动态调整按钮的位置,或是否显示某个按钮。
命令格式 SETITEMBAGBUTTONINFO 按钮编号(1~5) 是否可见(0不可见,1可见) 坐标X 坐标Y 提示信息

===============人物装备框按钮===============

人物装备框按钮自定义:

自己的装备框按钮点击触发

[@StateWindowsButtonClick1]

[@StateWindowsButtonClick2]

[@StateWindowsButtonClick3]

查看对方的装备框按钮点击触发

[@UserStateButtonClick1]

[@UserStateButtonClick2]

[@UserStateButtonClick3]

===============物品字段值修改===============
物品字段值修改 ChangeItemLooks

例子
ChangeItemLooks -1 = 500
ChangeItemLooks 修改物品的Looks
参数一
装备位置(0-16,-1表示OK框里的物品)
参数二
检测符号 < > =
参数三
Looks值(0表示恢复为DB里的Looks,大于0表示修改)
命令:ChangeItemShape
例子
ChangeItemShape -1 = 500
ChangeItemLooks 修改物品的Shape
参数一
装备位置(0-16,-1表示OK框里的物品)
参数二
检测符号 < > =
参数三
Shape值(0表示恢复为DB里的Shape,大于0表示修改, 0-65535)

=============死亡不掉装备的次数 =============
命令:CheckNotDropItemCount
例子
CheckNotDropItemCount = 5
CheckNotDropItemCount 检测死亡不掉装备的次数
参数一
检测符号 < > =
参数二
次数
命令:NotDropItemCount
例子
NotDropItemCount = 5
NotDropItemCount 调整死亡不掉装备的次数
参数一
检测符号 < > =
参数二
次数

=============配置定义=============
Envir目录下创建Defines文件夹
类似配置文件,用于设置常量

#Define 按钮位置(确定按钮X坐标) 500
#Define 按钮位置(确定按钮Y坐标) 300
在脚本中使用时
[@main]
#INCLUDE 定义的配置.ini
#if
#act
MOV S1 按钮位置(确定按钮X坐标)
MOV S2 按钮位置(确定按钮Y坐标)
sendmsg 5 按钮X坐标为:<$STR(S1)>,按钮Y坐标为:<$STR(S2)>
如果是#call 中调用
[@测试]
#INCLUDE 定义的配置.ini
{
脚本内容
.
.
.
.
}
#Define 定义一个常量名
参数一
定义名称(定义作用)
参数二
变量或者文本或数字

=============右下角按钮=============
右下角按钮触发 QF脚本

[@ButtonCustomClick]
该按钮默认没有素材,需要自己设置,默认隐藏的需要开启可见。
右下角那个按钮,需要在自定义UI编辑里面,在右边的框子找到该按钮,按钮名称 DButtonCustom。然后在左边的框,基本属性-是否可见-True

=============隐藏弓箭手=============
Envir 下创建 GuardPKList.txt
怪物名 最低PK值(400以上不攻击)

=============地图参数扩展 =============
禁止某个地图扔某个物品 地图参数 NODROPITEMFILENAME
例如:
NODROPITEMFILENAME(QuestDiary\禁止扔物品列表.txt)
禁止扔物品列表.txt 这个里面就是禁止扔的物品名称

=============修改宝宝的攻击威力=============

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

=============修改人物的元素=============

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

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注

请输入7+8的计算结果: