功能:
GOTO@xxx模式(1,2,3,4)第1参数:@xxx第2参数:模式第3参数:范围第4参数:1=QM,2=QF,3=机器人脚本,4=QMap,5=QChat,其他为NPC自身
模式=1
小组成员触发
模式=2 行会成员触发
模式=3
当前地图的人物触发
模式=4
以自己坐标为中心指定范围人物触发 范围
注:第4参数生效后!可以针对地图、条件、判断后才能执行!
举例一:
#IF
ISGROUPMASTER
#ACT
GOTO @队伍 1
[@队伍]
#IF
!ISGROUPMASTER
#ACT
CHANGEATTACKMODE
1
#SAY
队伍中有人为您开启了【编组模式】!
举例二:QM
#IF
ISGROUPMASTER
#ACT
Goto @RESUME 1 50
1 //队伍成员将在任意地方执行QM里的脚本
举例三:QF //行会掌门收人或召唤成员将在任意地方执行QF里的脚本
[@招募成员]
#IF
ISGUILDMASTER
#ACT
Goto @xxx 2
50 2
#ELSEACT
messagebox 对不起,您不是行会会长!招募成员!
BREAK
[@xxx]
#IF
ISGUILDMASTER
#ACT
MOV
G<$GUILDNAME>申请人数 0
MOV A行会1 <$GUILDNAME>
MOV A行会掌门1
<$USERNAME>
MOV A行会掌门1地图 <$CURRENTMAP>
MOV A行会掌门1X坐标
<$CURRENTX>
MOV A行会掌门1Y坐标 <$CURRENTY>
SENDMSG 1
【<$STR(A行会1)>】老大:<$STR(A行会掌门1)>,等级:<$LEVEL>级、职业:<$JOB>,在%m,诚邀各位加入!
#IF
!ISGUILDMASTER
CHECKOFGUILD
<$STR(A行会1)>
#ACT
SENDMSG 16
【<$STR(A行会1)>】老大:【<$STR(A行会掌门1)>】、正在召集您!
#SAY
您是否愿意参加【<$STR(A行会1)>】老大:【<$STR(A行会掌门1)>】的召唤令!\
<前往/@前往> <不去/@不去>
#ACT
BREAK
#IF
HAVEGUILD
#ACT
CLOSE
BREAK
#ELSEACT
GMEXECUTE
加入行会
INC G<$STR(A行会1)>申请人数 1
MOV A行会申请人<$STR(G行会申请人数)>
<$USERNAME>
SENDMSG 1
【<$STR(A行会1)>】当前在线玩家:<$STR(A行会申请人<$STR(G行会申请人数)>>
#ELSESAY
您是否愿意加入行会【<$STR(A行会1)>】\
<同意/@同意> <拒绝/@拒绝>
[@前往]
#IF
!ISGUILDMASTER
CHECKOFGUILD
<$STR(A行会1)>
#ACT
MAPMOVE <$STR(A行会掌门1地图)>
<$STR(A行会掌门1X坐标)> <$STR(A行会掌门1Y坐标)>
CLOSE
BREAK
[@不去]
#IF
!ISGUILDMASTER
CHECKOFGUILD
<$STR(A行会1)>
#ACT
<$STR(A行会掌门1)>.SENDMSG 17
行会玩家:<$USERNAME>、拒绝前往支援!
CLOSE
BREAK
[@同意]
#IF
HAVEGUILD
#ACT
MESSAGEBOX
对不起,您已有行会,无法申请加入!
CLOSE
BREAK
#ELSEACT
SENDMSG 1
当前申请人:<$STR(A行会申请人<$STR(G行会申请人数)>>、申请加入:【<$STR(A行会1)>】
AFFILIATEGUILD
<$STR(A行会1)>
CLOSE
BREAK
[@拒绝]
#IF
!HAVEGUILD
#ACT
SENDMSG 1
当前申请人:<$USERNAME>、拒绝加入:【<$STR(A行会1)>】
DEC G<$STR(A行会1)>申请人数
1
CLOSE
BREAK
;=====================================================================================================================
加入组队触发:[@JoinGroup]
离开组队触发:[@LeaveGroup]
英雄穿戴触发:[@HeroTakeOn+位置] [@HeroTakeOff+位置] // 英雄穿戴/取下装备触发,参考人物的穿戴触发
假人可以触发:[@PickupItem]、[@HeroLogin]
使用聚灵珠触:[@OnUseExpBall] [@OnHeroUseExpBall] <$PARAM(1)>:物品名 <$PARAM(2)>:价格 <$PARAM(3)>:价格类型(0-4)
释放魔法触发:[@MagSelfFuncXX]和[@MagTagFuncXX] 支持英雄,如果<$PARAM(0)>=0表示触发的是玩家,1表示触发的是英雄(执行脚本主体仍然是英雄主人)
人物死亡掉落:[@DroppingItem](物品表的RareItem包含8)注:死亡掉落物品$PARAM(0)=0,手动丢掉物品$PARAM(0)=1 //注建议使用此触发用于丢弃触发!
商店购买触发:[@DealingGoods] NPC商店买/卖商品之前(物品表的RareItem包含32)
仓库存取触发:[@StorageItem] NPC仓库存/取物品之前(物品表的RareItem包含64)
鉴定装备成功:[@EvalEquipSucceed] //可临时使用GetEquipProps、UpgradeDlgItem(位置10000)等命令,注意用法,防止死循环
淬炼极品属性扩展:普通属性配置(0~25)|鉴定属性配置(0~19)(扩展部分涉及二进制计算,如若不懂建议别用),成功触发QF的[@RefineItem_Succeed]可临时使用GetEquipProps、UpgradeDlgItem等...
打开箱子触发:[@OpenTreasureChest] //开箱子获得物品,相关临时变量 <$PARAM(1)>:物品名 <$PARAM(2)>:价格 <$PARAM(3)>:Looks
拾取物品触发:[@PickupItem] //<$PARAM(0)>=0非背包掉落,1背包掉落,2、挖取 <$PARAM(1)>:物品名 <$PARAM(2)>:Looks <$PARAM(3)>:角色名 <$PARAM(4)>:地图名 <$PARAM(5)>:X坐标 <$PARAM(6)>:Y坐标 <$PARAM(7)>:物品ID: <$PARAM(8)>:种族ID(玩家1,英雄60) <$PARAM(9)>:是否装备=0/1 <$PARAM(10)>= 0/1,1表示英雄拾取
丢弃物品触发:[@DropItem] //<$PARAM(1)>:物品名 <$PARAM(2)>:Looks <$PARAM(3)>:角色名 <$PARAM(4)>:地图名 <$PARAM(5)>:X坐标 <$PARAM(6)>:Y坐标 <$PARAM(7)>:物品ID <$PARAM(8)>:种族ID(玩家1,英雄60) <$PARAM(9)>:是否装备= 0/1
杀人武器诅咒时将触发:[@OnCursingWeapon]
//<$PARAM(0)>:武器名称 <$PARAM(1)>:武器当前幸运点 <$PARAM(2)>:武器当前诅咒点
<$PARAM(3)>:角色名(英雄或玩家)
<$PARAM(4)>:Race,1是玩家,60是英雄
====================================================================================================================
例:
[@OnCursingWeapon]
#if
CompVal
<$PARAM(1)> > 0 Int
#act
;阻止武器被扣幸运诅咒
Approve
0
===================================================================================================================
=
注意点:物品表的RareItem细分:
1=怪物掉落通知
2=拾取触发
4=商铺购买通知
8=人物丢弃/死亡掉落触发
16=队伍拾取通知
32=NPC商店买/卖商品触发
64=仓库存/取物品触发,要开启多项,将前面的值相加即可
====================================================================================================================
英雄/人物丢掉或掉落物品之前(物品表的RareItem包含8)将触发QF的[@DroppingItem]
// 禁止实时HardDisk操作
<$PARAM(0)>等于1000 //死亡掉落背包物品
<$PARAM(0)>等于2000
//手动丢弃背包物品
<$PARAM(0)>在0~16之间
//死亡掉落身上装备的位置
<$PARAM(9)>是否装备(0/1)
其他<$PARAM(XX)>参数同[@DropItem]<$PARAM(1)>:物品名
<$PARAM(2)>:Looks <$PARAM(3)>:角色名 <$PARAM(4)>:地图名
<$PARAM(5)>:X坐标 <$PARAM(6)>:Y坐标 <$PARAM(7)>:物品ID
====================================================================================================================
QF的[@PickupItem]增加参数:<$PARAM(10)>=0/1,1表示英雄拾取到英雄背包中
例:
[@pickupitem]
#if
CompVal
<$PARAM(9)> ! 1
#act
break
#if
CompVal <$PARAM(10)> =
0
#act
GetEquipProps
10000
#elseact
;临时放回主人背包以便使用GetEquipProps
H.MoveBagItem
<$PARAM(7)>
GetEquipProps 10000
;用完,放回英雄背包
MoveBagItem
<$PARAM(7)>
====================================================================================================================
例://商店购买
====================================================================================================================
[@DealingGoods]
// 如果不需要此功能删除掉QF的[@DealingGoods]字段即可
#IF
CheckLevelEx >
0
#ACT
MOV M48 <$PARAM(7)>
;#if
;CompVal <$PARAM(1)> =
英雄灵魂火符
;#act
;Approve 0
;sendmsg 0
角色名:<$PARAM(3)>、禁止购买:<$PARAM(1)>
;BREAK
#if
CompVal <$PARAM(0)> = 0
#act
INSERTLINE
..\QuestDiary\商店购买.ini 1
角色名:<$PARAM(3)>、在【<$PARAM(4)>】坐标:<$PARAM(5)>、<$PARAM(6)>处!找【<$PARAM(9)>】、购买:<$PARAM(1)>、单价:<$PARAM(8)>
;sendmsg
0
角色名:<$PARAM(3)>、在【<$PARAM(4)>】坐标:<$PARAM(5)>、<$PARAM(6)>处!找【<$PARAM(9)>】、购买:<$PARAM(1)>、单价:<$PARAM(8)>
#if
CompVal <$PARAM(0)> = 1
#act
INSERTLINE
..\QuestDiary\商店出售.ini 1
角色名:<$PARAM(3)>、在【<$PARAM(4)>】坐标:<$PARAM(5)>、<$PARAM(6)>处!找【<$PARAM(9)>】、出售:<$PARAM(1)>、单价:<$PARAM(8)>
;sendmsg
0
角色名:<$PARAM(3)>、在【<$PARAM(4)>】坐标:<$PARAM(5)>、<$PARAM(6)>处!找【<$PARAM(9)>】、出售:<$PARAM(1)>、单价:<$PARAM(8)>
====================================================================================================================
例://仓库存取
====================================================================================================================
[@StorageItem]
//如果不需要此功能删除掉QF的[@StorageItem]字段即可
#if
CompVal <$PARAM(1)> =
英雄幽灵盾
#act
Approve 0
sendmsg 0
角色名:<$PARAM(3)>、禁止存放:<$PARAM(1)>
BREAK
#if
CompVal <$PARAM(0)> = 0
#act
INSERTLINE
..\QuestDiary\测试.ini 1
角色名:<$PARAM(3)>、在<$PARAM(4)>:<$PARAM(5)>:<$PARAM(6)>、存放:<$PARAM(1)>、NPC:<$PARAM(9)>
;sendmsg
0
角色名:<$PARAM(3)>、在<$PARAM(4)>:<$PARAM(5)>:<$PARAM(6)>存放:<$PARAM(1)>
#if
CompVal <$PARAM(0)> = 1
#act
ADDLINELIST
..\QuestDiary\测试.txt
角色名:<$PARAM(3)>、在<$PARAM(4)>:<$PARAM(5)>:<$PARAM(6)>、取回:<$PARAM(1)>、NPC:<$PARAM(9)>
INSERTLINE
..\QuestDiary\测试.ini 1
角色名:<$PARAM(3)>、在<$PARAM(4)>:<$PARAM(5)>:<$PARAM(6)>、取回:<$PARAM(1)>、NPC:<$PARAM(9)>
;sendmsg
0
角色名:<$PARAM(3)>、在<$PARAM(4)>:<$PARAM(5)>:<$PARAM(6)>、取回:<$PARAM(1)>
====================================================================================================================
例://死亡掉落或手动丢弃
====================================================================================================================
[@DroppingItem]
//如果不需要此功能删除掉QF的[@DroppingItem]字段即可
#IF
CompVal <$PARAM(0)> =
1000
#ACT
;sendmsg 0
角色名:<$PARAM(3)>、在【<$PARAM(4)>】坐标:<$PARAM(5)>、<$PARAM(6)>处!死亡掉落装备:【<$PARAM(1)>】
INSERTLINE
..\QuestDiary\死亡掉落.ini 1
角色名:<$PARAM(3)>、在【<$PARAM(4)>】坐标:<$PARAM(5)>、<$PARAM(6)>处!死亡掉落装备:【<$PARAM(1)>】、物品ID:<$PARAM(7)>、死亡日期:<$TIMESTAMP>
BREAK
#if
CompVal <$PARAM(0)> =
2000
#act
INSERTLINE ..\QuestDiary\丢掉道具.ini 1
角色名:<$PARAM(3)>、在<$PARAM(4)>:<$PARAM(5)>:<$PARAM(6)>:、<$PARAM(7)>、手动:<$PARAM(0)>丢弃:<$PARAM(1)>、物品ID:<$PARAM(7)>、丢弃日期:<$TIMESTAMP>
;sendmsg
0
角色名:<$PARAM(3)>、在【<$PARAM(4)>】坐标:<$PARAM(5)>、<$PARAM(6)>处!丢掉装备:【<$PARAM(1)>】、丢弃日期:<$TIMESTAMP>
BREAK
;===================================================================================================================== =
攻击目标触发:[@Attack]
//下列为[@Attack][@UnderAttack]攻击触发字段的【专属】变量,不能用于其他字段,否则引擎会发生崩溃 注:人物的下属会自动赋予攻击触发
<$TARINFO_RACE>
//目标Race
<$TARINFO_ISHERO> //目标是否英雄 {'0',
'1'}
<$TARINFO_NAME> //目标名称
<$TARINFO_FNAME>
//目标全名
<$ATTINFO_SKILLID> //攻击使用技能ID
<$ATTINFO_RACE>
//攻击者Race
<$ATTINFO_ISHERO> //攻击者是否英雄
<$ATTINFO_NAME>
//攻击者名称
<$ATTINFO_FNAME> //攻击者全名
//
目标变量
<$T.CURRENTMAPDESC>
<$T.CURRENTMAP>
<$T.CURRENTX>
<$T.CURRENTY>
<$T.USERNAME>
<$T.MONKILLER>
<$T.KILLER>
<$T.LEVEL>
<$T.HP>
<$T.MAXHP>
<$T.MP>
<$T.MAXMP>
<$T.AC>
<$T.MAXAC>
<$T.MAC>
<$T.MAXMAC>
<$T.DC>
<$T.MAXDC>
<$T.MC>
<$T.MAXMC>
<$T.SC>
<$T.MAXSC>
<$T.HIT>
<$T.SPD>
// QF例子
[@Attack] //
人或随从攻击列表指定怪物,会触发
#IF
COMPVAL <$TARINFO_FNAME> = 蜈蚣
COMPVAL
<$T.HP> > 50
#ACT
T.HUMANHP - 50
SENDMSG 7
目标【<$TARINFO_NAME>】血量<$T.HP>
#IF
COMPVAL <$ATTINFO_RACE> !
1 // Race=1 是玩家,这里就是非玩家(即随从)
#ACT
SENDMSG 7
你的随从<$ATTINFO_NAME>正在攻击<$TARINFO_NAME>
[@UnderAttack] //
被人或随从或列表指定怪物攻击,会触发
#IF
COMPVAL <$ATTINFO_FNAME> =
蜈蚣 // 蜈蚣打随从或自己
#ACT
HUMANHP -
50 // 主人扣血
#IF
COMPVAL <$ATTINFO_MNAME> !
"" // 攻击者主人名称不为空
#ACT
SENDMSG 7
【<$ATTINFO_MNAME>】的随从<$ATTINFO_NAME>正在攻击你
#ELSEIF
COMPVAL
<$TARINFO_RACE> ! 1 // 自己的随从
#ACT
SENDMSG 7
【<$ATTINFO_NAME>】正在攻击你的随从【<$TARINFO_NAME>】
#ELSEACT
SENDMSG 7
【<$ATTINFO_NAME>】正在攻击你
===========================================
[@DropItem] //不建议使用【HardDisk】参考如下
#IF
#ACT
ADDLINELIST ..\QuestDiary\测试.txt
角色名:<$PARAM(3)>、在<$PARAM(4)>:<$PARAM(5)>:<$PARAM(6)>:、手动丢弃:<$PARAM(1)>、物品ID:<$PARAM(7)>、丢弃日期:<$TIMESTAMP>
INSERTLINE
..\QuestDiary\测试.ini 1
角色名:<$PARAM(3)>、在<$PARAM(4)>:<$PARAM(5)>:<$PARAM(6)>:、手动丢弃:<$PARAM(1)>、物品ID:<$PARAM(7)>、丢弃日期:<$TIMESTAMP>
[@KillPlayXX][@KillPlayMonXX]触发时,可以使用KILLERTYPE区分杀怪/人的主体
[@KillPlay1]
#IF
KILLERTYPE =
1 //1人物,2英雄,3宝宝
#ACT
SENDMSG 5 人物杀死
===========================================
行会相关触发:
[@BuildGuild]
//创建行会:<$PARAM(0)>行会名
[@JoinGuild]
//加入行会:<$PARAM(0)>行会名
[@LeaveGuild]
//退出行会:<$PARAM(0)>行会名
[@KickOutOfGuild]
//踢出行会:<$PARAM(0)>行会名
[@DismissGuild]
//解散行会:<$PARAM(0)>行会名
针对目标 或 全服 或 地图 触发:
PLAYEFFECT 扩展修改: //
需要M2/客户端配套
--------------------------------------
PLAYEFFECT WIL名称/X/Y
起始图片 帧数 间隔 循环次数 声音 声音循环(0/1) 对象(""/All/Guild/地图名) 特效模式(0/1)
注意:WIL名称 X Y
-> WIL名称/X/Y;特效模式:0普通,1技能特效模式(默认);可以利用微端模式下的~cui.txt自定义资源
// X=-1则跟随人物坐标播放,否则固定坐标;对象:空字符自己,all在线所有人
guild行会在线的人 地图给某制定地图发送
//
执行效果并触发当前脚本的[@OnPlayEffect]
例:
<播放特效/@PlayEffect>\
[@PlayEffect]
#act
PLAYEFFECT Prguse2/1/1 110 15 80 1
Wav\powerup.wav 0 "" 1
[@OnPlayEffect]
#act
SENDMSG 3
播放了一个动画效果