当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇人物死亡触发脚本:怪物击杀必掉屠龙,PK死亡按几率掉落

热度:
在传奇SKY版本中实现“被怪物杀死时必定收回指定武器(如屠龙),被玩家杀死时按几率收回”,需利用死亡事件标签[@Death]配合死亡类型判断。以下为完整可执行脚本,直击需求,无需多余修饰。

死亡事件入口:使用[@Death]标签

SKY引擎在角色死亡时自动触发[@Death],无需手动绑定。在QFunction-0.txt中编写:

[@Death]
;判断是否携带屠龙(物品代码40)
IF
CHECKITEM401
ACT
MOVS0;获取击杀者名称
;若击杀者为空或为系统(即怪物所杀)
IF
EQUALS0
ACT
TAKE401;立即收回屠龙
SENDMSG7您被怪物击杀,屠龙已被系统回收。
BREAK

;若击杀者为玩家(名称非空且非系统)
IF
NOTEQUALS0
ACT
;判断击杀者是否为NPC或系统(部分版本怪物名为空,玩家名不为空即可)
;进行20%几率判定(random5表示0-4,等于0则触发,即1/5=20%)
RANDOM5
IF
EQUALD00
ACT
TAKE401
SENDMSG7您被击杀,屠龙有几率被系统回收。

关键逻辑解析

检测屠龙存在:CHECKITEM401确保玩家身上有屠龙(代码40),避免无谓操作。
区分死亡类型:
在被怪物杀死时返回空字符串;
被玩家杀死时返回对方角色名;
被自己毒死、掉悬崖等特殊情况也可能为空,但通常归为“非玩家击杀”。
必掉逻辑:怪物击杀时直接TAKE401,立即移除屠龙,不给掉落机会。
几率掉落:RANDOM5生成0~4的随机数,EQUALD00表示1/5概率(20%)。可调整数字改变几率,如RANDOM10+EQUALD00=10%。

注意事项(SKY版本特性)

SKY引擎支持变量,部分旧版Mir2需用,但SKY已统一为。
TAKE命令仅移除玩家身上的物品,不会发送到地面,符合“系统收回”要求。
若需同时处理多把指定武器(如屠龙+嗜魂),可叠加CHECKITEM和TAKE:
#IF
CHECKITEM401
#ACT
TAKE401
#IF
CHECKITEM411
#ACT
TAKE411

避免使用DELITEM,该命令可能删除背包内物品,而TAKE仅针对穿戴或手持状态。

完整脚本整合(放入QFunction-0.txt)

[@Death]
IF
CHECKITEM401
ACT
MOVS0
IF
EQUALS0
ACT
TAKE401
SENDMSG7您被怪物击杀,屠龙已被系统回收。
BREAK
IF
NOTEQUALS0
ACT
RANDOM5
IF
EQUALD00
ACT
TAKE401
SENDMSG7您被击杀,屠龙被系统回收。

测试方法

创建角色,使用GM命令GIVE401获得屠龙并佩戴;
找怪物攻击至死亡,观察屠龙是否消失;
用另一角色PK将其杀死,多次测试是否按设定几率掉落;
检查SENDMSG提示是否准确反映死亡原因。

此脚本严格满足需求:怪物杀必收屠龙,玩家杀按几率收,其他装备不受影响,适用于SKY版本服务端。
[顶部]