如何在脚本中调用ITEMRECYCLESET命令
在 GEE 引擎的脚本中,调用 ITEMRECYCLESET 命令的核心是先定义回收规则,再通过 ITEMRECYCLEEX 命令调用规则 ID 执行回收。该命令通常用于 NPC 脚本或全局配置脚本中,以下是具体的调用方法、示例及关键注意事项:一、基础调用逻辑
ITEMRECYCLESET 的作用是预设回收规则(定义 “回收什么物品、满足什么条件、给什么奖励”),而实际触发回收需要通过 ITEMRECYCLEEX 调用规则 ID。完整流程为:
在脚本中用 ITEMRECYCLESET 定义规则(指定规则 ID、物品、条件、奖励)。
在需要触发回收的位置(如玩家对话选择、任务完成时)用 ITEMRECYCLEEX 调用规则 ID。
二、NPC 脚本中的调用示例(最常用场景)
以 “回收商人” NPC 为例,脚本结构如下(文件路径:Envir/QuestDiary/回收商人.txt):
plaintext
#TITLE 装备回收商人
#Say
欢迎使用装备回收系统!\
1. 回收普通武器(木剑、青铜剑)\
2. 回收高级武器(裁决之杖、屠龙)\
3. 退出
// 步骤1:预设回收规则(放在脚本开头,定义一次即可)
#ACT
// 规则ID=1:回收任意普通武器,奖励少量金币和经验
ITEMRECYCLESET 1 木剑|青铜剑 0 0 1 1000 2 5000
// 规则ID=2:回收强化≥5、品质≥4的高级武器,奖励大量金币和金刚石
ITEMRECYCLESET 2 裁决之杖|屠龙 5 4 1 500000 3 102
// 步骤2:玩家选择“1. 回收普通武器”时调用规则ID=1
#CASE 1
#ACT
// 调用规则1执行回收
ITEMRECYCLEEX <$USERNAME> 规则ID=1
SENDMSG 6 普通武器回收成功!获得1000金币和5000经验!
// 玩家选择“2. 回收高级武器”时调用规则ID=2
#CASE 2
#IF
// 可选:先检查玩家是否有符合条件的物品,提升体验
CHECKITEM 裁决之杖 1
CHECKITEMEX 裁决之杖 UpgradeCount >=5// 检查强化等级≥5
#ACT
ITEMRECYCLEEX <$USERNAME> 规则ID=2
SENDMSG 6 高级武器回收成功!获得50万金币和金刚石!
#ELSEACT
SENDMSG 6 你没有符合条件的高级武器(强化≥5、品质≥4)!
// 玩家选择“3. 退出”
#CASE 3
#ACT
CLOSE
三、全局脚本中的调用示例(多 NPC 共用规则)
如果多个 NPC 需要共用同一套回收规则,可在全局脚本(Envir/GlobalQuest.txt)中定义规则,避免重复代码:
plaintext
// 全局脚本:GlobalQuest.txt(引擎启动时自动加载)
#ACT
// 定义全服通用的回收规则(ID=100~199)
ITEMRECYCLESET 100 沃玛手镯|沃玛戒指 0 2 3 205// 回收沃玛首饰,奖励材料ID=205
ITEMRECYCLESET 101 祖玛头盔|祖玛项链 3 3 4 10 // 回收强化≥3的祖玛装备,奖励10元宝
// 其他NPC脚本(如“新手向导.txt”)直接调用全局规则
#CASE 5
#ACT
// 调用全局规则ID=100回收沃玛首饰
ITEMRECYCLEEX <$USERNAME> 规则ID=100
SENDMSG 6 沃玛首饰回收成功,获得指定材料!
四、结合变量与条件的灵活调用
ITEMRECYCLESET 支持通过变量动态定义规则参数(如物品名称、奖励值),适用于需要根据玩家状态动态调整的场景:
plaintext
#TITLE 动态回收NPC
#ACT
// 根据玩家等级动态设置奖励值
MOV N1 <$LEVEL>// 变量N1=玩家等级
MUL N1 1000 // 奖励金币=等级×1000
// 动态定义规则(物品名称从变量S1读取,奖励值从N1读取)
MOV S1 赤月腰带
ITEMRECYCLESET 3 <$STR(S1)> 0 3 1 <$STR(N1)> 2 <$STR(N1)*2>// 经验=金币×2
#SAY
回收赤月腰带可获得与等级挂钩的奖励!\
点击回收 →
#CASE 1
#ACT
ITEMRECYCLEEX <$USERNAME> 规则ID=3
SENDMSG 6 回收成功!获得<$STR(N1)>金币和<$STR(N1)*2>经验!
五、调用注意事项
规则 ID 的定义时机:
规则需在调用前定义(建议放在脚本 #ACT 块的开头,或全局脚本中)。
引擎重启或脚本重载后,需重新执行 ITEMRECYCLESET 定义规则(NPC 脚本会在玩家对话时重新执行,无需手动重载)。
调用格式严格性:
ITEMRECYCLEEX 调用规则时必须使用 规则ID=XXX 格式,不能省略前缀或添加空格:
正确:ITEMRECYCLEEX 玩家名 规则ID=1
错误:ITEMRECYCLEEX 玩家名 1(引擎会误认为 “物品名称 = 1”)、ITEMRECYCLEEX 玩家名 规则ID= 1(=后有空格)。
多规则的优先级:
若同一 ID 被多次定义,最后一次定义的规则会覆盖之前的规则。例如:
plaintext
#ACT
ITEMRECYCLESET 5 木剑 0 0 1 1000// 规则5:奖励1000金币
ITEMRECYCLESET 5 木剑 0 0 1 2000// 规则5被覆盖,奖励2000金币
批量回收的控制:
单次调用会回收玩家背包中所有符合规则的物品。若需限制回收数量,需结合 TAKE 命令手动控制:
plaintext
#ACT
TAKE 木剑 1// 先取出1把木剑
ITEMRECYCLEEX <$USERNAME> 规则ID=1// 仅回收取出的1把
六、调试与验证
日志检查:回收操作会记录在 Log/Recycle.log 中,包含规则 ID、回收物品、奖励等信息,可确认规则是否被正确调用:
示例日志:2023-10-01 18:00:00 玩家[测试] 调用规则ID=2 回收[裁决之杖] 成功,奖励。
游戏内测试:创建测试账号,携带符合规则的物品与 NPC 对话,检查物品是否被回收、奖励是否到账,验证规则是否生效。
通过上述方法,可在脚本中灵活调用 ITEMRECYCLESET 定义回收规则,并通过 ITEMRECYCLEEX 触发回收,实现从简单到复杂的物品回收功能。核心是确保规则 ID 唯一、调用格式正确,并结合实际场景设计条件判断和动态参数。
页:
[1]