后端触发
<p>[TOC]</p>
<p><strong>PanelName</strong> 改为你的模块名称</p>
<p> </p>
<h2>新增触发</h2>
<h3>本服接收跨服消息</h3>
<pre><code>function PanelName.onBenFuData(actor,param)
if actor and param then
if param.action == &quot;&quot; then
end
end
end</code></pre>
<h3>跨服接收本服消息</h3>
<pre><code>function PanelName.onKuaFuData(actor,param)
if actor and param then
if param.action == &quot;&quot; then
end
end
end</code></pre>
<h3>攻击状态改变</h3>
<pre><code>function PanelName.onAttackState(actor,state)
-- 玩家攻击状态改变事件,参数(actor = 玩家对象,state=1.进入攻击状态; 2.退出攻击状态)
end
</code></pre>
<h2>引用数据事件</h2>
<pre><code> data 需要处理的数据(引用),如 data.value=1 ,那么伤害就为1
data.value = 0 --固定伤害值(固定伤害大于0,则忽略累计增伤和累计减伤)
data.addValue = 0 --累计增伤
data.subValue = 0 --累计减伤
data.stop = true --停止该事件继续派发,如 data.value=1 ,那么伤害就为1</code></pre>
<h3>玩家推动技能</h3>
<pre><code> function PanelName.onCanPush(actor,target,hiter,magicId)
--[[
玩家推动技能(野蛮冲撞/抗拒火环/气波功/自定义推动技能)施法前触发,参数(actor,target,hiter,magicId)
返回值(0.不执行推动; 1.执行推动; 2.根据M2上的推动条件判断是否执行)(默认2)
]]
return 2
end
```
### 宝宝攻击前触发</code></pre>
<p> function PanelName.onAttackDamagebb(actor,target,hiter,magincId,damage,isPlayer,data)
--[[
宝宝攻击前触发
actor 玩家对象
target 受击对象
hiter 攻击对象
magincId 技能id
damage 伤害值
isPlayer 受击对象是否是玩家
data 需要处理的数据(引用),如 data.value=1 ,那么伤害就为1
data.value = 0 --固定伤害值(固定伤害大于0,则忽略累计增伤和累计减伤)
data.addValue = 0 --累计增伤
data.subValue = 0 --累计减伤
data.stop = true --停止该事件继续派发,如 data.value=1 ,那么伤害就为1
]]</p>
<p> end
```</p>
<h3>英雄宝宝攻击前触发</h3>
<pre><code> function PanelName.onHeroAttackDamagebb(actor,target,hiter,magincId,damage,isPlayer,data )
--[[
英雄宝宝攻击前触发
actor 玩家对象
target 受击对象
hiter 攻击对象
magincId 技能id
damage 伤害值
isPlayer 受击对象是否是玩家
data 需要处理的数据(引用),如 data.value=1 ,那么伤害就为1
data.value = 0 --固定伤害值(固定伤害大于0,则忽略累计增伤和累计减伤)
data.addValue = 0 --累计增伤
data.subValue = 0 --累计减伤
data.stop = true --停止该事件继续派发,如 data.value=1 ,那么伤害就为1
]]
end
```
### 宠物攻击前触发</code></pre>
<p> function PanelName.onAttackDamagePet(actor,target,petObj,magicId,damage,isImportant,isPlayer,data)
--[[
宠物攻击前触发
actor 玩家对象
target 目标对象
petObj 宠物对象
magicId 技能id
damage 伤害值
isImportant 是否主目标
isPlayer 受击对象是否是玩家
data 需要处理的数据(引用),如 data.value=1 ,那么伤害就为1
data.value = 0 --固定伤害值(固定伤害大于0,则忽略累计增伤和累计减伤)
data.addValue = 0 --累计增伤
data.subValue = 0 --累计减伤
data.stop = true --停止该事件继续派发
]]</p>
<p> end
```</p>
<h3>英雄受击前触发</h3>
<pre><code> function PanelName.onHeroStruckDamage(actor,hiter,target,magicId,damage,isPlayer,data)
--[[
英雄受击前触发
actor, 玩家对象
hiter, 攻击对象
target, 受击对象
magicId, 技能id
damage, 伤害值
isPlayer, 攻击对象是否是玩家
data 需要处理的数据(引用),如 data.value=1 ,那么伤害就为1
data.value = 0 --固定伤害值(固定伤害大于0,则忽略累计增伤和累计减伤)
data.addValue = 0 --累计增伤
data.subValue = 0 --累计减伤
data.stop = true --停止该事件继续派发
]]
end
```
### 玩家宝宝受击前触发</code></pre>
<p> function PanelName.onStruckDamagebb(actor,hiter,target,magicId,damage,isPlayer,data)
--[[
玩家宝宝受击前触发
actor 玩家对象
hiter 攻击对象
target 受击对象
magicId 技能id
damage 伤害值
isPlayer 攻击对象是否是玩家
data 需要处理的数据(引用),如 data.value=1 ,那么伤害就为1
data.value = 0 --固定伤害值(固定伤害大于0,则忽略累计增伤和累计减伤)
data.addValue = 0 --累计增伤
data.subValue = 0 --累计减伤
data.stop = true --停止该事件继续派发
]]</p>
<p> end
```</p>
<h3>英雄宝宝受击前触发</h3>
<pre><code> function PanelName.onHeroStruckDamagebb(actor,hiter,target,magicId,damage,isPlayer,data)
--[[
英雄宝宝受击前触发
actor 玩家对象
hiter 攻击对象
target 受击对象
magicId 技能id
damage damage
isPlayer 攻击对象是否是玩家
data 需要处理的数据(引用),如 data.value=1 ,那么伤害就为1
data.value = 0 --固定伤害值(固定伤害大于0,则忽略累计增伤和累计减伤)
data.addValue = 0 --累计增伤
data.subValue = 0 --累计减伤
data.stop = true --停止该事件继续派发
]]
end
```
### 宠物被攻击后触发
```
function PanelName.onStruckDamagePet(actor,hiter,petIdx,magicId,damage,isImportant,isPlayer,data)
--[[
宠物被攻击后触发
actor 玩家对象
hiter 目标对象
petIdx 宠物对象
magicId 技能id
damage 伤害值
isImportant 是否主目标
isPlayer 攻击对象是否是玩家
data 需要处理的数据(引用),如 data.value=1 ,那么伤害就为1
data.value = 0 --固定伤害值(固定伤害大于0,则忽略累计增伤和累计减伤)
data.addValue = 0 --累计增伤
data.subValue = 0 --累计减伤
data.stop = true --停止该事件继续派发
]]
end
```
### 暴击触发</code></pre>
<p> function PanelName.onCrittrigger(actor,target,damage,magicId,isPlayer,data)
--[[
actor 玩家对象
target 受击对象
damage 暴击后伤害值
magicId 技能ID
isPlayer 攻击对象是否是玩家
data 需要处理的数据(引用),如 data.value=1 ,那么伤害就为1
data.value = 0 --固定伤害值(固定伤害大于0,则忽略累计增伤和累计减伤)
data.addValue = 0 --累计增伤
data.subValue = 0 --累计减伤
data.stop = true --停止该事件继续派发,如 data.value=1 ,那么伤害就为1
]]</p>
<p> end
```</p>
<h3>玩家攻击前触发 攻击触发</h3>
<pre><code> function PanelName.onAttackDamage(actor,target,hiter,magincId,damage,model,isPlayer,data)
--[[
玩家攻击前触发
actor 玩家对象
target 受击对象
hiter 攻击对象
magincId 技能id
damage 伤害值
model 当前攻击模式 0.正常;1.暴击; 2.格挡; 3.切割;
isPlayer 受击对象是否是玩家
data 需要处理的数据(引用),如 data.value=1 ,那么伤害就为1
data.value = 0 --固定伤害值(固定伤害大于0,则忽略累计增伤和累计减伤)
data.addValue = 0 --累计增伤
data.subValue = 0 --累计减伤
data.stop = true --停止该事件继续派发,如 data.value=1 ,那么伤害就为1
]]
end
```
### 玩家受击前触发</code></pre>
<p> function PanelName.onStruckDamage(actor,hiter,target,magicId,damage,isPlayer,data)
--[[
玩家受击前触发
actor 玩家对象
hiter 攻击对象
target 受击对象
magicId 技能id
damage 伤害值
isPlayer 攻击对象是否是玩家
data 需要处理的数据(引用),如 data.value=1 ,那么伤害就为1
data.value = 0 --固定伤害值(固定伤害大于0,则忽略累计增伤和累计减伤)
data.addValue = 0 --累计增伤
data.subValue = 0 --累计减伤
data.stop = true --停止该事件继续派发,如 data.value=1 ,那么伤害就为1
]]</p>
<p> end</p>
<pre><code>
### 英雄攻击前触发</code></pre>
<p> function PanelName.onHeroAttackDamage(actor,target,hiter,magincId,damage,isPlayer,data)
--[[
英雄攻击前触发
actor 玩家对象
target 受击对象
hiter 攻击对象
magincId 技能id
damage 伤害值
isPlayer 受击对象是否是玩家
data 需要处理的数据(引用),如 data.value=1 ,那么伤害就为1
data.value = 0 --固定伤害值(固定伤害大于0,则忽略累计增伤和累计减伤)
data.addValue = 0 --累计增伤
data.subValue = 0 --累计减伤
data.stop = true --停止该事件继续派发,如 data.value=1 ,那么伤害就为1
]]</p>
<p> end
```</p>
<h3>伤害反弹前触发</h3>
<pre><code>function PanelName.onReboundhurt(actor,target,damage,magicId,isPlayer,data)
--[[
伤害反弹前触发
actor 玩家对象
target 伤害来源对象
damage 伤害值
magicId 技能ID
isPlayer 伤害来源对象是否是玩家
data 需要处理的数据(引用),如 data.value=1 ,那么伤害就为1
data.value = 0 --固定伤害值(固定伤害大于0,则忽略累计增伤和累计减伤)
data.addValue = 0 --累计增伤
data.subValue = 0 --累计减伤
data.stop = true --停止该事件继续派发,如 data.value=1 ,那么伤害就为1
]]
end
</code></pre>
<h2>引擎无返回值事件</h2>
<h3>m2启动触发</h3>
<p>
function PnaleName.onStartUp()
-- m2启动触发
end
</p>
<h3>登录事件</h3>
<p>
function PnaleName.onLogin(actor)
-- 登录事件</p>
<p> end
</p>
<h3>聊天前置触发</h3>
<p>
function PnaleName.onTriggerChat(self,sMsg,chat,msgType,result)
-- 聊天前置触发
-- self object 否 玩家对象
-- sMsg string 否 说话内容
-- chat integer 否 聊天频道
-- 1:系统
-- 2:喊话
-- 3:私聊
-- 4:行会
-- 5:组队
-- 6:附近
-- 7:世界
-- 8:国家
-- 9:联盟
-- 40:行会通知
-- msgType string 否 消息类型
-- 1:普通消息
-- 2:坐标
-- 3:装备
-- 5:系统通知消息,需使用特定富文本解析
-- 6:系统通知消息,需使用FColor特定富文本解析
-- 7:系统通知消息,需使用SRText特定富文本解析
-- 8:猜拳
-- result bool 否 是否终止说话</p>
<p> end
</p>
<h3>穿戴装备后触发</h3>
<p>
function PnaleName.onTakeOnex(actor,itemobj,where,itemName,makeIndex,itemid)
-- 穿戴装备后触发
-- 参数(actor,itemobj,where,itemName,makeIndex,itemid)</p>
<p> end
</p>
<h3>脱掉装备后触发</h3>
<p>
function PnaleName.onTakeOffex(actor,itemobj,where,itemName,makeIndex,itemid)
-- 脱掉装备后触发
-- 参数(actor,itemobj,where,itemName,makeIndex,itemid)</p>
<p> end
</p>
<h3>玩家穿戴装备前触发</h3>
<p>
function PnaleName.onTakeOnBeforeEx(actor,itemobj)
-- 玩家穿戴装备前触发
-- 参数(actor,itemobj) 支持返回False、stop命令中止</p>
<p> end
</p>
<h3>玩家脱掉装备前触发</h3>
<p>
function PnaleName.onTakeOffBeforeEx(actor,itemobj)
-- 玩家脱掉装备前触发
-- 参数(actor,itemobj) 支持返回False、stop命令中止</p>
<p> end
</p>
<h3>英雄穿戴装备触发</h3>
<p>
function PnaleName.onHeroTakeOnEx(actor,itemobj,pos,itemname,makeindex,hero)
-- 英雄穿戴装备触发
-- 参数(actor,itemobj,pos,itemname,makeindex,hero)</p>
<p> end
</p>
<h3>英雄脱下装备触发</h3>
<p>
function PnaleName.onHeroTakeOffEx(actor,itemobj,pos,itemname,makeindex,hero)
-- 英雄脱下装备触发
-- 参数(actor,itemobj,pos,itemname,makeindex,hero)</p>
<p> end
</p>
<h3>背包进入物品前触发</h3>
<p>
function PnaleName.onAddBagBefore(actor,itemobj,itemid,makeid)
-- 背包进入物品前触发
-- 参数(actor,itemobj,itemid,makeid)</p>
<p> end
</p>
<h3>背包进入物品后触发</h3>
<p>
function PnaleName.onAddBag(actor,itemobj,itemId)
-- 背包进入物品后触发
-- 参数(actor,itemobj,itemId)</p>
<p> end
</p>
<h3>充值触发</h3>
<p>
function PnaleName.onRecharge(actor,count,makeId,moneyId,isReal)
-- 充值触发
-- 参数(actor,count充值金额,makeId产品ID,moneyId货币ID,isReal[0扶持充值,1真实充值]) </p>
<p> end
</p>
<h3>捡取任意物品前触发</h3>
<p>
function PnaleName.onPickUpItemFrontex(actor,itemobj)
-- 捡取任意物品前触发
-- 参数(actor,itemobj)</p>
<p> end
</p>
<h3>捡取任意物品后触发</h3>
<p>
function PnaleName.onPickUpItemEx(actor, itemobj)
-- 捡取任意物品后触发
-- 参数(actor, itemobj)</p>
<p> end
</p>
<h3>扔掉任意物品前触发</h3>
<p>
function PnaleName.onDropItemFrontex(actor,itemobj,itemname,itemid,model)
-- 扔掉任意物品前触发,model 行为ID 0.扔掉触发; 1.人物掉落触发
-- 参数(actor,itemobj,itemname,itemid,model)</p>
<p> end
</p>
<h3>仍掉任意物品后触发</h3>
<p>
function PnaleName.onDropItemex(actor,itemobj,itemname,itemid)
-- 仍掉任意物品后触发
-- 参数(actor,itemobj,itemname,itemid)</p>
<p> end
</p>
<h3>跨天登录触发,凌晨12点触发或每日第一次登录触发</h3>
<p>
function PnaleName.onResetDay()
-- 跨天登录触发,凌晨12点触发或每日第一次登录触发</p>
<p> end
</p>
<h3>定时器脚本跨天触发,每日00:00:00触发</h3>
<p>
function PnaleName.onBeforedawn()
-- 定时器脚本跨天触发,每日00:00:00触发</p>
<p> end
</p>
<h3>点击npc触发</h3>
<p>
function PnaleName.onClickNpc(actor,npcId)
--点击npc触发,参数(actor,npcId)
--返回值 false不允许</p>
<p> return true
end
</p>
<h3>玩家跳转地图触发 切换地图触发</h3>
<p>
function PnaleName.onEnterMap(actor,mapId,x,y)
-- 玩家跳转地图触发
-- 参数(actor,mapId,x,y)</p>
<p> end
</p>
<h3>离开地图触发</h3>
<p>
function PnaleName.onLeaveMap(actor,mapId,x,y)
-- 离开地图触发
-- 参数(actor,mapId,x,y)</p>
<p> end
</p>
<h3>镜像地图销毁前触发</h3>
<p>
function PnaleName.onRemoveTempMap(sys,mapid)
-- 镜像地图销毁前触发
-- 参数(sys系统对象,mapid)</p>
<p> end
</p>
<h3>进入地图连接点前触发</h3>
<p>
function PnaleName.onMapConnectPoint(actor,mapId,x,y)
-- 进入地图连接点前触发
-- 参数(actor,mapId,x,y) 返回值 true=允许,false=不允许</p>
<p> end
</p>
<h3>怪物掉落触发</h3>
<p>
function PnaleName.onMonDropItemex(actor,itemobj,monobj,itemid,x,y)
-- 怪物掉落触发
-- 参数(actor,itemobj,monobj,itemid,x,y)</p>
<p> end
</p>
<h3>怪物掉落触发(新)</h3>
<p>
function PnaleName.onMonDropItemNew()
-- 怪物掉落触发(新)
-- (参照cfg_boss_drop.xls表)</p>
<p> end
</p>
<h3>升级触发</h3>
<p>
function PnaleName.onPlayLevelUp(actor,level)
-- 升级触发
-- 参数(actor,level)</p>
<p> end
</p>
<h3>角色大退触发,注意先小退在大退不会触发</h3>
<p>
function PnaleName.onPlayOffline(actor)
-- 角色大退触发,注意先小退在大退不会触发</p>
<p> end
</p>
<h3>角色小退触发</h3>
<p>
function PnaleName.onPlayReconnection(actor)
-- 角色小退触发
-- 参数(actor)</p>
<p> end
</p>
<h3>角色小退和大退都触发</h3>
<p>
function PnaleName.onExitGame(actor)
-- 角色小退和大退都触发
-- 参数(actor)</p>
<p> end
</p>
<h3>跑触发</h3>
<p>
function PnaleName.onRun(actor)
-- 跑触发
-- 参数(actor)</p>
<p> end
</p>
<h3>走触发</h3>
<p>
function PnaleName.onWalk(actor)
-- 走触发
-- 参数(actor)</p>
<p> end
</p>
<h3>开始挂机触发</h3>
<p>
function PnaleName.onStartAutoPlayGame(actor)
-- 开始挂机触发
-- 参数(actor)</p>
<p> end
</p>
<h3>停止挂机触发</h3>
<p>
function PnaleName.onStopAutoPlayGame(actor)
-- 停止挂机触发
-- 参数(actor)</p>
<p> end
</p>
<h3>人物被复活戒指复活时触发</h3>
<p>
function PnaleName.onRevival()
-- 人物被复活戒指复活时触发</p>
<p> end
</p>
<h3>攻城开始时触发</h3>
<p>
function PnaleName.onCastLewarStart()
-- 攻城开始时触发</p>
<p> end
</p>
<h3>攻城结束时触发</h3>
<p>
function PnaleName.onCastLewarEnd()
-- 攻城结束时触发
end
</p>
<h3>占领沙巴克触发</h3>
<p>
function PnaleName.onGetCastle0()
-- 占领沙巴克触发</p>
<p> end
</p>
<h3>捡取前触发</h3>
<p>
function PnaleName.onPickupItemFrontex()
-- 捡取前触发</p>
<p> end
</p>
<h3>玩家物理攻击后触发</h3>
<p> function PnaleName.onAttack(actor,target,hiter,magicId)
-- 玩家物理攻击后触发
-- 参数(actor,target,hiter,magicId) actor=玩家对象 target=受击对象 hiter=攻击对象 magicId=技能ID</p>
<p> end
</p>
<h3>玩家魔法攻击后触发</h3>
<p>
function PnaleName.onMagicAttack(actor,target,hiter,magicId)
-- 玩家魔法攻击后触发
-- 参数(actor,target,hiter,magicId) actor=玩家对象 target=受击对象 hiter=攻击对象 magicId=技能ID</p>
<p> end
</p>
<h3>宝宝物理攻击后触发</h3>
<p>
function PnaleName.onAttackPet(actor,target,hiter,magicId)
-- 宝宝物理攻击后触发
-- 参数(actor,target,hiter,magicId) actor=玩家对象 target=受击对象 hiter=攻击对象 magicId=技能ID</p>
<p> end
</p>
<h3>宝宝魔法攻击后触发</h3>
<p>
function PnaleName.onMagicAttackPet(actor,target,hiter,magicId)
-- 宝宝魔法攻击后触发
-- 参数(actor,target,hiter,magicId) actor=玩家对象 target=受击对象 hiter=攻击对象 magicId=技能ID</p>
<p> end
</p>
<h3>英雄物理攻击后触发</h3>
<p>
function PnaleName.onHeroAttack(actor,target,hiter,magicId)
-- 英雄物理攻击后触发
-- 参数(actor,target,hiter,magicId) actor=玩家对象 target=受击对象 hiter=攻击对象 magicId=技能ID</p>
<p> end
</p>
<h3>英雄魔法攻击后触发</h3>
<p>
function PnaleName.onHeroMagicAttack(actor,target,hiter,magicId)
-- 英雄魔法攻击后触发
-- 参数(actor,target,hiter,magicId) actor=玩家对象 target=受击对象 hiter=攻击对象 magicId=技能ID</p>
<p> end
</p>
<h3>英雄宝宝魔法攻击后触发</h3>
<p>
function PnaleName.onHeroMagicAttackPet(actor,target,hiter,magicId)
-- 英雄宝宝魔法攻击后触发
-- 参数(actor,target,hiter,magicId) actor=玩家对象 target=受击对象 hiter=攻击对象 magicId=技能ID</p>
<p> end
</p>
<h3>英雄宝宝物理攻击后触发</h3>
<p>
function PnaleName.onHeroAttackPet(actor,target,hiter,magicId)
-- 英雄宝宝物理攻击后触发
-- 参数(actor,target,hiter,magicId) actor=玩家对象 target=受击对象 hiter=攻击对象 magicId=技能ID</p>
<p> end
</p>
<h3>宠物攻击触发</h3>
<p>
function PnaleName.onPetAttack(actor,petIdx,target,magicID)
-- 宠物攻击触发
-- 参数(actor,petIdx,target,magicID) actor=玩家对象 target=受击对象 hiter=攻击对象 magicId=技能ID</p>
<p> end
</p>
<h3>玩家物理受击后触发</h3>
<p>
function PnaleName.onStruck(actor,hiter,target,magicId)
-- 玩家物理受击后触发
-- 参数(actor,hiter,target,magicId) actor=受击对象 hiter=攻击对象 target=受击对象 magicId=技能ID</p>
<p> end
</p>
<h3>玩家魔法受击后触发</h3>
<p>
function PnaleName.onMagicStruck(actor,hiter,target,magicId)
-- 玩家魔法受击后触发
-- 参数(actor,hiter,target,magicId) actor=玩家对象 target=攻击对象 hiter=受击对象 magicId=技能ID</p>
<p> end
</p>
<h3>宝宝物理受击后触发</h3>
<p>
function PnaleName.onStruckPet(actor,hiter,target,magicId)
-- 宝宝物理受击后触发
-- 参数(actor,hiter,target,magicId) actor=玩家对象 target=攻击对象 hiter=受击对象 magicId=技能ID</p>
<p> end
</p>
<h3>宝宝魔法受击后触发</h3>
<p>
function PnaleName.onMagicStruckPet(actor,hiter,target,magicId)
-- 宝宝魔法受击后触发
-- 参数(actor,hiter,target,magicId) actor=玩家对象 target=攻击对象 hiter=受击对象 magicId=技能ID</p>
<p> end
</p>
<h3>英雄魔法受击后触发</h3>
<p>
function PnaleName.onHeroMagicStruck(actor,hiter,target,magicId)
-- 英雄魔法受击后触发
-- 参数(actor,hiter,target,magicId) actor=玩家对象 target=攻击对象 hiter=受击对象 magicId=技能ID</p>
<p> end
</p>
<h3>英雄物理受击后触发</h3>
<p>
function PnaleName.onHeroStruck(actor,hiter,target,magicId)
-- 英雄物理受击后触发
-- 参数(actor,hiter,target,magicId) actor=玩家对象 target=攻击对象 hiter=受击对象 magicId=技能ID
end
</p>
<h3>英雄宝宝魔法受击后触发</h3>
<p>
function PnaleName.onHeroMagicStruckPet(actor,hiter,target,magicId)
-- 英雄宝宝魔法受击后触发
-- 参数(actor,hiter,target,magicId) actor=玩家对象 target=攻击对象 hiter=受击对象 magicId=技能ID</p>
<p> end
</p>
<h3>英雄宝宝物理受击后触发</h3>
<p>
function PnaleName.onHeroStruckPet(actor,hiter,target,magicId)
-- 英雄宝宝物理受击后触发
-- 参数(actor,hiter,target,magicId) actor=玩家对象 target=攻击对象 hiter=受击对象 magicId=技能ID</p>
<p> end
</p>
<h3>丢失镖车触发,触发对象 主人</h3>
<p>
function PanelName.onLoserCar(actor,car)
-- 丢失镖车触发,触发对象 主人
-- actor 玩家对象,var镖车对象</p>
<p> end
</p>
<h3>杀掉宝宝触发</h3>
<p>
function PnaleName.onKillSlave(actor,petobj)
-- 杀掉宝宝触发
-- 参数(actor,petobj)</p>
<p> end
</p>
<h3>杀怪触发</h3>
<p>
function PnaleName.onKillMon(actor,monobj,monId,mapId)
-- 杀怪触发
-- 参数(actor,monobj,monId,mapId)</p>
<p> end
</p>
<h3>杀怪触发,</h3>
<p>
function PnaleName.onKillMob(actor,monobj,monId,mapId)
-- 杀怪触发,
-- 需要在mapinfo地参数增加onkillmon</p>
<p> end
</p>
<h3>杀镖车触发</h3>
<p>
function PnaleName.onCarDie(actor,carobj)
-- 杀镖车触发
-- 参数(actor,carobj)</p>
<p> end
</p>
<h3>击杀玩家触发</h3>
<p>
function PnaleName.onKillPlay(actor,target)
-- 玩家死亡触发
-- 参数(actor,target) actor(杀人者) target(被杀者)</p>
<p> end
</p>
<h3>英雄被杀</h3>
<p>
function PnaleName.onHeroDie(actor,target)
-- 英雄被杀
-- 参数(actor,target) 触发对象:actor攻击者,target 被杀对象</p>
<p> end
</p>
<h3>玩家死亡触发</h3>
<p>
function PnaleName.onPlayDie(actor,target)
-- 玩家被杀
-- 参数(actor,target) 触发对象:actor攻击者,target 被杀对象</p>
<p> end
</p>
<h3>宝宝死亡触发</h3>
<p>
function PnaleName.onSelfKillSlave(actor,petobj)
-- 宝宝死亡触发
-- 参数(actor,petobj)</p>
<p> end
</p>
<h3>使用技能前触发</h3>
<p>
function PanelName.onBeginMagic(self,maigicID,maigicName,targetObject,x,y,result)
-- 使用技能前触发
-- self object 否 玩家对象
-- maigicID integer 否 技能id
-- maigicName string 否 技能名字
-- targetObject object 否 受击对象
-- x integer 否 受击对象X坐标
-- y integer 否 受击对象Y坐标
-- result bool 否 返回值
-- true/nil=允许施法
-- false=阻止施法</p>
<p> end
</p>
<h3>属性变化时触发</h3>
<p>
function PnaleName.onSendAbility(actor)
-- 属性变化时触发
-- 参数(actor)</p>
<p> end
</p>
<h3>玩家获得宝宝触发</h3>
<p>
function PnaleName.onSlavebb(actor,petobj)
-- 玩家获得宝宝触发
-- 参数(actor,petobj)</p>
<p> end
</p>
<h3>英雄获得宝宝触发</h3>
<p>
function PnaleName.onHeroSlavebb(actor,petobj)
-- 英雄获得宝宝触发
-- 参数(actor,petobj)</p>
<p> end
</p>
<h3>玩家宝宝叛变触发</h3>
<p>
function PnaleName.onMobTreachery(actor)
-- 玩家宝宝叛变触发
-- 参数(actor)</p>
<p> end
</p>
<h3>英雄宝宝叛变触发</h3>
<p>
function PnaleName.onHeroMobTreachery(actor)
-- 英雄宝宝叛变触发
-- 参数(actor)</p>
<p> end
</p>
<h3>QF触发,未测试过的事件</h3>
<h3>宝宝升级触发lua</h3>
<p>
function PanelName.onSlaveUpgrade(actor,mon,level)
-- 宝宝升级触发</p>
<p> end
</p>
<h3>加入行会前触发</h3>
<p>
function PanelName.onGuildAddMember(actor,guild,name)
-- 加入行会前触发
--play object 否 玩家对象
--guild object 否 行会对象
--name stirng 否 行会名称
--result bool 是
--true=允许加入
--false=阻止加入
end </p>
<h3>加入行会时触发</h3>
<p>
function PanelName.onGuildAddMemberAfter(actor)
-- 加入行会时触发</p>
<p> end </p>
<h3>退出行会触发</h3>
<p>
function PanelName.onGuildDelMember(actor)
-- 退出行会触发
-- result 是否允许
end</p>
<h3>编辑行会公告前触发</h3>
<p>
function PanelName.onUpdateGuildNotice()
-- 编辑行会公告前触发</p>
<p> end
</p>
<h3>行会编辑封号前触发</h3>
<p>
function PanelName.onSetRankName()
-- 行会编辑封号前触发</p>
<p> end
</p>
<h3>退出行会前触发</h3>
<p>
function PanelName.onGuildDelMemberBefore()
-- 退出行会前触发</p>
<p> end</p>
<h3>掌门踢出行会成员前触发</h3>
<p>
function PanelName.onGuildChiefDelMember()
-- 掌门踢出行会成员前触发</p>
<p> end</p>
<h3>解散行会前触发</h3>
<p>
function PnaleName.onGuildCloseBefore(actor,guild)
-- 解散行会前触发
-- 参数(actor,guild)</p>
<p> end
</p>
<h3>任命掌门人前触发</h3>
<p>
function PanelName.onSetGuildRank1()
-- 任命掌门人前触发</p>
<p> end
</p>
<h3>任命副掌门前触发</h3>
<p>
function PanelName.onSetGuildRank2()
-- 任命副掌门前触发</p>
<p> end
</p>
<h3>任命成员3前触发</h3>
<p>
function PanelName.onSetGuildRank3()
-- 任命成员3前触发</p>
<p> end
</p>
<h3>任命成员4前触发</h3>
<p>
function PanelName.onSetGuildRank4()
-- 任命成员4前触发</p>
<p> end
</p>
<h3>任命成员5前触发</h3>
<p>
function PanelName.onSetGuildRank5()
-- 任命成员5前触发</p>
<p> end
</p>
<h3>邀请入会前触发</h3>
<p>
function PanelName.onInivitGuild()
-- 邀请入会前触发</p>
<p> end
</p>
<h3>杀死怪物或人物爆物品触发</h3>
<p>
function PnaleName.onScatterBagItems(actor,target)
-- 杀死怪物或人物爆物品触发
-- 参数(actor,target)</p>
<p> end
</p>
<h3>创建队伍前触发</h3>
<p>
function PnaleName.onStartGroup()
-- 创建队伍前触发</p>
<p> end
</p>
<h3>创建队伍后触发</h3>
<p>
function PnaleName.onGroupCreate()
-- 创建队伍后触发</p>
<p> end
</p>
<h3>离开队伍时触发</h3>
<p>
function PnaleName.onLeaveGroup()
-- 离开队伍时触发</p>
<p> end
</p>
<h3>删除组队成员触发</h3>
<p>
function PnaleName.onGroupDelMember()
-- 删除组队成员触发</p>
<p> end
</p>
<h3>添加组队成员触发</h3>
<p>
function PnaleName.onGroupAddMember()
-- 添加组队成员触发</p>
<p> end
</p>
<h3>组队杀怪触发</h3>
<p>
function PnaleName.onGroupKillMon()
-- 组队杀怪触发</p>
<p> end
</p>
<h3>镖车到达指定位置触发</h3>
<p>
function PnaleName.onCarPathEnd()
-- 镖车到达指定位置触发</p>
<p> end
</p>
<h3>镖车切换地图触发</h3>
<p>
function PnaleName.onLeaveDart()
-- 镖车切换地图触发</p>
<p> end
</p>
<h3>镖车进入自动寻路范围触发</h3>
<p>
function PnaleName.onCarFindMaster()
-- 镖车进入自动寻路范围触发</p>
<p> end
</p>
<h3>镖车被攻击触发</h3>
<p>
function PnaleName.onSlaveDamage()
-- 镖车被攻击触发</p>
<p> end
</p>
<h3>攻击别人镖车触发</h3>
<p>
function PnaleName.onHitSlave()
-- 攻击别人镖车触发</p>
<p> end
</p>
<h3>脱下装备进入背包前触发</h3>
<p>
function PnaleName.onTakeOffexChange(actor,itemobj,pos,makeindex)
-- 脱下装备进入背包前触发
-- 参数(actor,itemobj,pos,makeindex)</p>
<p> end
</p>
<h3>英雄脱下装备进入背包前触发</h3>
<p>
function PnaleName.onHeroTakeoffExChange(actor,itemobj,pos,makeindex,hero)
-- 英雄脱下装备进入背包前触发
-- 参数(actor,itemobj,pos,makeindex,hero)</p>
<p> end
</p>
<h3>跨服成功(跨服服务器触发)</h3>
<p>
function PnaleName.onKfLogin(actor)
-- 跨服成功(跨服服务器触发)
-- 参数(actor)</p>
<p> end
</p>
<h3>跨服成功(本服服务器触发)</h3>
<p>
function PnaleName.onKfLoginBenFu(actor)
-- 跨服成功(本服服务器触发)
-- 参数(actor)</p>
<p> end
</p>
<h3>跨服结束(本服服务器触发)</h3>
<p>
function PnaleName.onKuaFuEnd(actor)
-- 跨服结束(本服服务器触发)
-- 参数(actor)</p>
<p> end
</p>
<h3>同步跨服变量触发</h3>
<p>
function PnaleName.onKfSynVar()
-- 同步跨服变量触发</p>
<p> end
</p>
<h3>已投保装备掉落触发</h3>
<p>
function PnaleName.onDropUseItems()
-- 已投保装备掉落触发</p>
<p> end
</p>
<h3>套装激活触发</h3>
<p>
function PnaleName.onGroupItemOn()
-- 套装激活触发</p>
<p> end
</p>
<h3>人物开启首饰盒触发</h3>
<p>
function PnaleName.onOpenSndaItemBox()
-- 人物开启首饰盒触发</p>
<p> end
</p>
<h3>英雄开启首饰盒触发</h3>
<p>
function PnaleName.onHeroOpenSndaItemBox()
-- 英雄开启首饰盒触发</p>
<p> end
</p>
<h3>盒子礼包领取成功触发</h3>
<p>
function PnaleName.onGiftStatusOk()
-- 盒子礼包领取成功触发</p>
<p> end
</p>
<h3>盒子礼包领取失败触发</h3>
<p>
function PnaleName.onGiftStatusFail()
-- 盒子礼包领取失败触发</p>
<p> end
</p>
<h3>盒子断线重连触发</h3>
<p>
function PnaleName.onFeboxTile()
-- 盒子断线重连触发</p>
<p> end
</p>
<h3>拍卖行下架、禁止架下触发(参照拍卖行系统)</h3>
<p>
function PnaleName.onCangetBackPaiMaiItem(actor)
-- 拍卖行下架、禁止架下触发(参照拍卖行系统)
-- 参数(actor)</p>
<p> end
</p>
<h3>拍卖行上架、禁止上架触发(参照拍卖行系统)</h3>
<p>
function PnaleName.onCanPaiMaiItem(actor,itemId,makeId,type,price)
-- 拍卖行上架、禁止上架触发(参照拍卖行系统)
-- 参数(actor,itemId,makeId,type,price)</p>
<p> end
</p>
<h3>领取拍卖货币触发</h3>
<p>
function PnaleName.onGetPaiMaiItem(actor)
-- 领取拍卖货币触发
-- 参数(actor)</p>
<p> end
</p>
<h3>拍卖行购买时触发</h3>
<p>
function PnaleName.onBuyPaiMaiItem(actor,itemId,makeId,type,price)
-- 拍卖行购买时触发
-- 参数(actor,itemId,makeId,type,price)</p>
<p> end
</p>
<h3>拍卖行竞价触发</h3>
<p>
function PnaleName.onBiddingPaiMaiItem(actor,itemId,makeId,type,price)
-- 拍卖行竞价触发
-- 参数(actor,itemId,makeId,type,price)</p>
<p> end
</p>
<h3>人物改变称号时触发</h3>
<p>
function PnaleName.onTitleChanged(X)
-- 人物改变称号时触发
-- (X=装备表shape值)
end
</p>
<h3>英雄改变称号时触发</h3>
<p>
function PnaleName.onHeroTitleChanged(X)
-- 英雄改变称号时触发
-- (X=装备表shape值)
end
</p>
<h3>人物取消称号时触发</h3>
<p>
function PnaleName.onUntitled(X)
-- 人物取消称号时触发
-- (X=装备表shape值)
end
</p>
<h3>英雄取消称号时触发</h3>
<p>
function PnaleName.onHerounTitled(X)
-- 英雄取消称号时触发
-- (X=装备表shape值)
end
</p>
<h3>宝箱获得物品时触发</h3>
<p>
function PnaleName.onGetBoxsItem(X)
-- 宝箱获得物品时触发
-- (X=道具表shape值)
end
</p>
<h3>宝箱开启前触发</h3>
<p>
function PnaleName.onCanreOpenBox(X)
-- 宝箱开启前触发
-- (X=道具表shape值)
end
</p>
<h3>删除物品触发</h3>
<p>
function PnaleName.onRemoveItem(actor,itemid,count)
-- 删除物品触发
-- 参数(actor,itemid,count)</p>
<p> end
</p>
<h3>给予货币触发</h3>
<p>--只有给予物品时调用相关接口才会触发 player:get_item player:get_items player:add_money</p>
<pre><code>-- 给予货币触发,参数(actor,id,count)(actor=玩家对象,id=货币ID,count=增加货币数量)
function PnaleName.onGiveMoney(actor,id,oldcount,curcount)
-- 货币改变时触发
-- 参数(actor,id,oldcount,curcount)
end</code></pre>
<h3>货币改变时触发</h3>
<p>
function PnaleName.onMoneyChange(actor,id,oldcount,curcount)
-- 货币改变时触发
-- 参数(actor,id,oldcount,curcount)</p>
<p> end
</p>
<h3>英雄切换地图触发</h3>
<p>
function PnaleName.onHeroEnterMap()
-- 英雄切换地图触发</p>
<p> end
</p>
<h3>阅读邮件触发</h3>
<p>
function PnaleName.onReadMail(actor,id)
-- 阅读邮件触发
-- 参数(actor,id)</p>
<p> end
</p>
<h3>提取邮件触发</h3>
<p>
function PnaleName.onGetMailItem(actor,id,title,items)
-- 提取邮件触发
-- 参数(actor,id,title,items)</p>
<p> end
</p>
<h3>商城显示触发</h3>
<p>
function PnaleName.onCanShowShopItem()
-- 商城显示触发</p>
<p> end
</p>
<h3>英雄升级触发</h3>
<p>
function PnaleName.onHeroLevelUp(actor,hero,level)
-- 英雄升级触发
-- 参数(actor,hero,level)</p>
<p> end
</p>
<h3>装备持久消失触发</h3>
<p>
function PnaleName.onItemDamage()
-- 装备持久消失触发</p>
<p> end
</p>
<h3>摆摊触发,forbidmyshop接口可打断摆摊</h3>
<p>
function PnaleName.onStartMyShop(actor)
-- 摆摊触发,forbidmyshop接口可打断摆摊
-- 参数(actor)</p>
<p> end
</p>
<h3>摆摊成功触发</h3>
<p>
function PnaleName.onStartMyShopOk(actor)
-- 摆摊成功触发
-- 参数(actor)</p>
<p> end
</p>
<h3>人物获取经验触发</h3>
<p>
function PnaleName.onGetExp(actor,exp)
-- 人物获取经验触发
-- 参数(actor,exp)</p>
<p> end
</p>
<h3>人物死亡前触发</h3>
<p>
function PnaleName.onNextDie(actor,hiter,isplay)
-- 人物死亡前触发
-- 参数(actor,hiter,isplay)</p>
<p> end
</p>
<h3>英雄死亡前触发</h3>
<p>
function PnaleName.onHeroNextDie(actor,hiter,isplay,hero)
-- 英雄死亡前触发
-- 参数(actor,hiter,isplay,hero)</p>
<p> end
</p>
<h3>宠物死亡前触发</h3>
<p>
function PnaleName.onPetDie(actor,hiter,isplay,hero)
-- 宠物死亡前触发
-- 参数(actor,hiter,isplay,hero)</p>
<p> end
</p>
<h3>召唤英雄触发</h3>
<p>
function PnaleName.onHeroLogin(actor,hero)
-- 召唤英雄触发
-- 参数(actor,hero)</p>
<p> end
</p>
<h3>镶嵌宝石触发</h3>
<p>
function PanelName.onBagUseStoneItemOk()
-- 镶嵌宝石触发</p>
<p> end
</p>
<h3>卸下宝石触发</h3>
<p>
function PanelName.onRemoveStoneItem()
-- 卸下宝石触发</p>
<p> end
</p>
<h3>公众号获取KEY成功触发</h3>
<p>
function PnaleName.onBindWeChat(actor,key)
-- 公众号获取KEY成功触发
-- 参数(actor,key)</p>
<p> end
</p>
<h3>公众号成功验证触发</h3>
<p>
function PnaleName.onBindReweChat(actor,key,name,id)
-- 公众号成功验证触发
-- 参数(actor,key,name,id)</p>
<p> end
</p>
<h3>查看别人装备触发</h3>
<p>
function PnaleName.onLookHumInfo(actor,name)
-- 查看别人装备触发
-- 参数(actor,name)</p>
<p> end
</p>
<h3>英雄忠诚度改变触发</h3>
<p>
function PanelName.onHeroLuck()
-- 英雄忠诚度改变触发</p>
<p> end
</p>
<h3>每天登录触发按0点计算为第2天</h3>
<p>
function.onSetDay()</p>
<p> end
</p>
<h3>英雄仍掉任意物品前触发</h3>
<p>
function PnaleName.onHeroDropItemFrontex(actor,itemobj)
-- 英雄仍掉任意物品前触发
-- 参数(actor,itemobj)</p>
<p> end
</p>
<h3>英雄仍掉任意物品后触发</h3>
<p>
function PnaleName.onHeroDropItemex(actor,itemobj)
-- 英雄仍掉任意物品后触发
-- 参数(actor,itemobj)</p>
<p> end
</p>
<h3>装备到期触发</h3>
<p>
function PnaleName.onItemExpired(actor,itemobj,itemname)
-- 装备到期触发
-- 参数(actor,itemobj,itemname)</p>
<p> end
</p>
<h3>英雄装备到期触发</h3>
<p>
function PnaleName.onHeroItemExpired(actor,itemobj,itemname,hero)
-- 英雄装备到期触发
-- 参数(actor,itemobj,itemname,hero)</p>
<p> end
</p>
<h3>进入英雄背包触发</h3>
<p>
function PnaleName.onAddHeroBag(actor,itemobj,hero)
-- 进入英雄背包触发
-- 参数(actor,itemobj,hero)</p>
<p> end
</p>
<h3>加好友前触发</h3>
<p>
function PnaleName.onAddFriendRequest(actor)
-- 加好友前触发
-- 参数(actor)</p>
<p> end
</p>
<h3>展开聊天框时触发</h3>
<p>
function.PanelName.onOpenBottomUI()
-- 展开聊天框时触发,需搭配主界面按钮执行 按钮开启方式:(CTRL+F10呼出UI编辑-属性栏-Button_chat_hide字段勾选可见性)
end
</p>
<h3>隐藏聊天框时触发</h3>
<p>
function.PanelName.onCloseBottomUI()
-- 隐藏聊天框时触发,需搭配主界面按钮执行 按钮开启方式:(CTRL+F10呼出UI编辑-属性栏-Button_chat_hide字段勾选可见性)
end
</p>
<h3>创建行会前触发</h3>
<p>
function PnaleName.onCheckBuildGuild(actor,guildName)
-- 创建行会前触发
-- 参数(actor,guildName)</p>
<p> end
</p>
<h3>交易前触发</h3>
<p>
function PnaleName.onDealBefore(actor,target)
-- 交易前触发
-- 参数(actor,target)</p>
<p> end
</p>
<h3>交易后触发</h3>
<p>
function PnaleName.onDealEnd(actor,makeindex,count)
-- 交易后触发
-- 参数(actor,makeindex,count)</p>
<p> end
</p>
<h3>人物勾选外显时装生效触发</h3>
<p>
function PnaleName.onShowFashion(actor)
-- 人物勾选外显时装生效触发
-- 参数(actor)</p>
<p> end
</p>
<h3>人物取消外显时装时候触发</h3>
<p>
function PnaleName.onNotShowFashion(actor)
-- 人物取消外显时装时候触发
-- 参数(actor)</p>
<p> end
</p>
<h3>英雄勾选外显时装生效触发</h3>
<p>
function PnaleName.onHeroShowFashion(actor,hero)
-- 英雄勾选外显时装生效触发
-- 参数(actor,hero)</p>
<p> end
</p>
<h3>英雄取消外显时装时候触发</h3>
<p>
function PnaleName.onHeroNotShowFashion(actor,hero)
-- 英雄取消外显时装时候触发
-- 参数(actor,hero)</p>
<p> end
</p>
<h3>人物身上装备掉落前触发,人物死亡装备掉落前触发支持stop</h3>
<p>
function PnaleName.onCheckDropUseItems(actor,pos,itemid)
-- 人物身上装备掉落前触发,人物死亡装备掉落前触发支持stop
-- 参数(actor,pos,itemid)</p>
<p> end
</p>
<h3>释放技能触发传</h3>
<p>
function PnaleName.onMagtagFuncExx
-- 释放技能触发传
-- 参数</p>
<p> end
</p>
<h3>点击背包未开启格子锁头触发</h3>
<p>
function PnaleName.onClosedBagItemClick(actor)
-- 点击背包未开启格子锁头触发
-- 参数(actor)</p>
<p> end
</p>
<h3>货币超出21/42亿触发</h3>
<p>
function PnaleName.onChangeMoneyOut(actor,moneyId,count)
-- 货币超出21/42亿触发
-- 参数(actor,moneyId,count)</p>
<p> end
</p>
<h3>使用31类和200类道具触发</h3>
<p>
function PnaleName.onUseItem(actor,itemobj,itemid)
-- 使用31类和200类道具触发
-- 参数(actor,itemobj,itemid)</p>
<p> end
</p>
<h3>使用41类道具触发</h3>
<p>
function PnaleName.onUseItem42(actor,itemobj)
-- 使用41类道具触发
-- 参数(actor,itemobj)</p>
<p> end
</p>
<h3>穿套装触发</h3>
<p>
function PnaleName.onGroupItemOnEx(actor,id)
-- 穿套装触发
-- 参数(actor,id)</p>
<p> end
</p>
<h3>脱套装触发</h3>
<p>
function PnaleName.onGroupItemOffEx(actor,id)
-- 脱套装触发
-- 参数(actor,id)</p>
<p> end
</p>
<h3>角色pk值变化触发</h3>
<p>
function PnaleName.onPkPointChanged(actor,value)
-- 角色pk值变化触发
-- 参数(actor,value)</p>
<p> end
</p>
<h3>寻路开启</h3>
<p>
function PnaleName.onFindPathBegin()
-- 寻路开启</p>
<p> end
</p>
<h3>寻路中断</h3>
<p>
function PnaleName.onFindPathStop()
-- 寻路中断</p>
<p> end
</p>
<h3>寻路结束 </h3>
<p>
function PnaleName.onFindPathEnd()
-- 寻路结束 </p>
<p> end
</p>
<h3>商城购买后触发 </h3>
<p>
function PnaleName.onBuyShopItem()
-- 商城购买后触发 </p>
<p> end
</p>
<h3>QF重载前触发</h3>
<p>
function PnaleName.onQFloadBegin()
-- QF重载前触发 </p>
<p> end
</p>
<h3>QF重载后触发</h3>
<p>
function PnaleName.onQFloadEnd()
-- QF重载后触发</p>
<p> end
</p>
<h3>创建行会时触发</h3>
<p>
function PnaleName.onLoadguild(actor, guildobj)
-- 创建行会时触发
-- 参数(actor, guildobj)</p>
<p> end
</p>
<h3>自身使用技能触发</h3>
<p>
function PnaleName.onMagSelfFunc(actor)
-- 自身使用技能触发
-- 参数(id) 技能id</p>
<p> end
</p>
<h3>不确定 是什么触发</h3>
<p>
function PnaleName.onHumNameFilter()
-- 不确定</p>
<p> end
</p>
<h3>不确定 是什么触发</h3>
<p>
function PnaleName.onQueringHumName()
-- 不确定</p>
<p> end
</p>
<h3>检测玩家名是否存在触发</h3>
<p>
function PnaleName.onHumNameExists()
-- 检测玩家名是否存在触发 不确定</p>
<p> end
</p>
<h3>修改玩家名称触发</h3>
<p>
function PnaleName.onChangeingHumName()
-- 修改玩家名称触发</p>
<p> end
</p>
<h3>修改玩家名成功触发</h3>
<p>
function PnaleName.onChangeHumNameOk()
-- 修改玩家名成功触发</p>
<p> end
</p>
<h3> 获得宠物触发[人物上线首次加载宠物时也会触发]</h3>
<p>
function PnaleName.onGetNewPet(actor,petidx)
-- 获得宠物触发[人物上线首次加载宠物时也会触发]</p>
<p> end
</p>
<h3>修改玩家名称失败触发</h3>
<p>
function PnaleName.onChangeHumNameFail()
-- 修改玩家名称失败触发</p>
<p> end
</p>
<p>
</p>
<h2>自定义事件</h2>
<h3> 游戏开服触发</h3>
<p>
function PnaleName.onOpenGame(actor)
-- 游戏开服触发
-- 参数(actor第一个玩家对象)第一个玩家登录游戏即为开服</p>
<p> end
</p>
<h3> buff改变事件</h3>
<p>
function PnaleName.onChangeBuff(actor,buffid, groupid, model)
-- buff改变事件
-- 参数(actor,buffid, groupid = 组别ID, model = 1.增加;2.更新;4.删除;)</p>
<p> end
</p>
<h3> 界面开放事件</h3>
<p>
function PnaleName.onOpenPanel(actor,panelObj)
-- 界面开放事件
-- 参数(actor,panelObj)</p>
<p> end
</p>
<h3> 跨周第一次登录触发,每个角色每周只触发一次</h3>
<p>
function PnaleName.onNewWeek(actor)
-- 跨周第一次登录触发,每个角色每周只触发一次
-- 参数(actor)</p>
<p> end
</p>
<h3> 跨月第一次登录触发,每个角色每月只触发一次</h3>
<p>
function PnaleName.onNewMonth(actor)
-- 跨月第一次登录触发,每个角色每月只触发一次
-- 参数(actor)</p>
<p> end
</p>
<h3> 合服第一次登录触发,每个角色每次合服只触发一次</h3>
<p>
function PnaleName.onNewMerge(actor,count)
-- 合服第一次登录触发,每个角色每次合服只触发一次
-- 参数(actor,count = 合区次数)</p>
<p> end
</p>
<h3> 每天第一次充值触发,每个角色每天只触发一次</h3>
<p>
function PnaleName.onTodayPay(actor)
-- 每天第一次充值触发,每个角色每天只触发一次
-- 参数(actor)</p>
<p> end
</p>
<h3> 合服全局触发</h3>
<p>
function PnaleName.onMergeGame(count)
-- 合服全局触发
-- 参数(count = 合区次数)</p>
<p> end
</p>
<h3> 连续充值事件,每个角色每天触发一次 形参不确定</h3>
<p>
function PnaleName.onContinuPay(actor,true连续,false间断)
-- 连续充值事件,每个角色每天触发一次 形参不确定
-- 参数(actor,true连续,false间断),如果间断会触发一次间断,在充值会在触发一次连续</p>
<p> end
</p>
<h3> 连续登录事件,每个角色每天触发一次 形参不确定</h3>
<p>
function PnaleName.onContinuLogin(actor,true连续,false间断)
-- 连续登录事件,每个角色每天触发一次 形参不确定
-- 参数(actor,true连续,false间断)</p>
<p> end
</p>
<h3> 新角色触发,每个人物只触发一次</h3>
<p>
function PnaleName.onNewRole(actor)
-- 新角色触发,每个人物只触发一次
-- 参数(actor)</p>
<p> end
</p>
<h3> 转生等级发生改变</h3>
<p>
function PanelName.onReinLevel(actor)
-- 转生等级发生改变</p>
<p> end
</p>
<h3> 开启功能触发</h3>
<p>
function PnaleName.onOpenModel(table{界面数据})
-- 开启功能触发
-- 参数(table{界面数据})</p>
<p> end
</p>
<h3> 关闭功能触发</h3>
<p>
function PnaleName.onCloseModel(table{界面数据})
-- 关闭功能触发
-- 参数(table{界面数据})</p>
<p> end
</p>
<h3> 变量改变事件</h3>
<p>
function PnaleName.onChangeParam(actor,p)
-- 变量改变事件
-- 参数(actor,{id,value,key}) 整数变量无key</p>
<p> end
</p>
<h3> (个人触发)活动状态改变触发</h3>
<p>
function PnaleName.onActivityChange(actor,p)
-- 个人触发)活动状态改变触发
-- 参数(actor,{id = 唯一ID,state = 0关闭,1预告,2开启,activityId = 活动ID,flag = 活动标记})</p>
<p> end
</p>
<h3> (系统触发)活动状态改变触发</h3>
<p>
function PnaleName.onActivityChangeSys(p)
-- 系统触发)活动状态改变触发
-- 参数({id = 唯一ID,state = 0关闭,1预告,2开启,activityId = 活动ID,flag = 活动标记})</p>
<p> end
</p>
<h3> 注册个人变量</h3>
<p>
function PanelName.onRegisterVar()
-- 注册个人变量</p>
<p> end
</p>
<h3> 玩家战斗力改变</h3>
<p>
function PanelName.onChangeAttrCount()
-- 玩家战斗力改变</p>
<p> end
</p>
<h3> 属性改变事件</h3>
<p>
function PnaleName.onChangeAttr(actor,attrData,befValue,curValue)
-- 属性改变事件
-- 参数(actor,attrData,befValue,curValue),关联cfg_att_score表event字段有值的会触发该事件</p>
<p> end
</p>
<h3> 变量初始化完成</h3>
<p>
function PnaleName.onInitParam()
-- 变量初始化完成</p>
<p> end
</p>
<h3> 登录推送自定义临时属性</h3>
<p>
function PnaleName.onLoginAttr()
-- 登录推送自定义临时属性</p>
<p> end
</p>
<h3> 假人登录触发</h3>
<p>
function PnaleName.onDummyLogin(actor)
-- 假人登录触发
-- 参数(actor)</p>
<p> end
</p>
<h3> 客户端角色初始化完毕,回调触发,此时客户端已经正常登录跳过黑屏期,可处理登录给予未发放完的奖励等</h3>
<p>
function PnaleName.onClientInitDone()
-- 客户端角色初始化完毕,回调触发,此时客户端已经正常登录跳过黑屏期,可处理登录给予未发放完的奖励等</p>
<p> end
</p>
<h3> 完成所有充值后触发,关联cfg_ManagePayStore表type字段是1类型的充值</h3>
<p>
function PnaleName.onDoneAllPay()
-- 完成所有充值后触发,关联cfg_ManagePayStore表type字段是1类型的充值</p>
<p> end
</p>
<h3> 刷新世界BOSS时触发</h3>
<p>
function PnaleName.onGenWorldBoss(mapName,monName,mapid)
-- 刷新世界BOSS时触发
-- 参数(mapName,monName,mapid)</p>
<p> end
</p>
<h3> 关联ManageUseItem表内类型2,不允许直接使用的道具双击后触发</h3>
<p>
function PnaleName.onNotUseItem(actor,itemId,itemobj)
-- 关联ManageUseItem表内类型2,不允许直接使用的道具双击后触发
-- 参数(actor,itemId,itemobj)</p>
<p> end
</p>
<h3> 推送变量前触发</h3>
<p>
function PnaleName.onVarPushBafore(actor)
-- 推送变量前触发
-- 参数(actor)</p>
<p> end
</p>
<h3> BOSS归属掉落触发</h3>
<p>
function PnaleName.onBossBelongerDrop(actor,type,monId,items,data)
-- BOSS归属掉落触发
-- 参数(actor,type,monId,items,data),type(2.所有人共享归属),monId(怪物ID),items(掉落的归属物品),data(cfg_ManageBelonger表配置数据)</p>
<p> end
</p>
<h3> 通过装备位移除装备触发</h3>
<p>
function PnaleName.onRemoveByPos(actor,itemId,pos)
-- 通过装备位移除装备触发
-- 参数(actor,itemId,pos)</p>
<p> end
</p>
<h3> 离开跨服地图触发</h3>
<p>
function PnaleName.onLeaveMapCustom(actor,mapId)
-- 离开跨服地图触发
-- 参数(actor,mapId)</p>
<p> end
</p>
<h3> 客户端重载事件</h3>
<p>
function PnaleName.onReload()
-- 客户端重载事件</p>
<p> end
</p>
<h3> 服务端重载QF后触发</h3>
<p>
function PnaleName.onReloadQF()
-- 服务端重载QF后触发</p>
<p> end
</p>
<h3> 测试区结束,正式区返利触发</h3>
<p>
function PnaleName.onRetateMoney(actor,id,count)
-- 测试区结束,正式区返利触发
-- 参数(actor,id=货币ID,count=返利数量)</p>
<p> end
</p>
<h3> 断线重连</h3>
<p>
function PnaleName.onRoleDisconnect(actor)
-- 断线重连
-- 参数(actor)</p>
<p> end
</p>
<h3> 角色复活触发</h3>
<p>
function PnaleName.onRoleRevive(actor)
-- 角色复活触发
-- 参数(actor),事件来自客户端注意条件判断防止封包</p>
<p> end
</p>
<h3>任务相关</h3>
<h3> 开始任务触发(任务进行中)lua</h3>
<p>
function PnaleName.onTaskBegin(actor,param)
-- 开始任务触发(任务进行中)
-- 参数(actor,{id,type})</p>
<p> end
</p>
<h3> 完成任务触发(此刻可领取奖励)</h3>
<p>
function PnaleName.onTaskDone(actor,param)
-- 完成任务触发(此刻可领取奖励)
-- 参数(actor,{id,type})</p>
<p> end
</p>
<h3> 结束任务触发(此刻已领过奖励)</h3>
<p>
function PnaleName.onTaskEnded(actor,param)
-- 结束任务触发(此刻已领过奖励)
-- 参数(actor,{id,type})</p>
<p> end
</p>
<h3> 完成一组任务触发(此刻可领取组别奖励)</h3>
<p>
function PnaleName.onTaskGroupDone(actor,param)
-- 完成一组任务触发(此刻可领取组别奖励)
-- 参数(actor,{id,type,group})</p>
<p> end
</p>
<h3> 结束一组任务触发(此刻已领取组别奖励)</h3>
<p>
function PnaleName.onTaskGroupEnded(actor,param)
-- 结束一组任务触发(此刻已领取组别奖励)
-- 参数(actor,{group})</p>
<p> end
</p>
<h3> 跳到下一个任务触发</h3>
<p>
function PnaleName.onJumpToNextOneTask(actor,param)
-- 跳到下一个任务触发
-- 参数(actor,{id.type})</p>
<p> end
</p>
<h3> 跳到下一组任务触发</h3>
<p>
function PnaleName.onJumpToNextGroupTask(actor,param)
-- 跳到下一组任务触发
-- 参数(actor,{group})</p>
<p> end
</p>
<h2>装扮相关</h2>
<h3> 激活装扮触发</h3>
<p>
function PnaleName.onFashionActivate(actor,itemid)
-- 激活装扮触发
-- 参数(actor,itemid)</p>
<p> end
</p>
<h3> 穿戴装扮触发</h3>
<p>
function PnaleName.onFashionWear(actor,itemid)
-- 穿戴装扮触发
-- 参数(actor,itemid)</p>
<p> end
</p>
<h3> 卸下装扮触发</h3>
<p>
function PnaleName.onFashionTake(actor,itemid)
-- 卸下装扮触发
-- 参数(actor,itemid)</p>
<p> end
</p>
<h3> 移除装扮触发</h3>
<p>
function PnaleName.onFashionRemove(actor,itemid)
-- 移除装扮触发
-- 参数(actor,itemid)</p>
<p> end
</p>
<h3> 升级装扮触发</h3>
<p>
function PnaleName.onFashionUpdate(actor,itemid,level)
-- 升级装扮触发
-- 参数(actor,itemid,level)</p>
<p> end
</p>
<h3> 装扮过期触发</h3>
<p>
function PnaleName.onFashionExpired(actor,itemid)
-- 装扮过期触发
-- 参数(actor,itemid)</p>
<p> end
</p>
<h2>副本触发 (cfg_ManageCopy表配置的副本才会触发)</h2>
<h3> 进入副本事件</h3>
<p>
function PnaleName.onEnterCopy(actor,data)
-- 进入副本事件
-- 参数(actor,data副本配置)</p>
<p> end
</p>
<h3> 退出副本事件</h3>
<p>
function PnaleName.onExitCopy(actor,data)
-- 退出副本事件
-- 参数(actor,data副本配置)</p>
<p> end
</p>
<h3> 完成副本事件</h3>
<p>
function PnaleName.onDoneCopy(actor,data)
-- 完成副本事件
-- 参数(actor,{id = 副本id}),玩法1:杀完怪物后触发</p>
<p> end
</p>
<p> </p>
<h3> 神兽合成</h3>
<p>
function PanelName.onShenshouSynthesisy()
-- 神兽合成</p>
<p> end
</p>