在传奇F引擎中实现“合成怒斩需消耗10个金刚石,且金刚石必须在背包内”的功能,需通过物品检测、数量判断与合成执行三步完成。以下为完整可直接使用的脚本,适用于标准F引擎服务端。
第一步:准备合成NPC界面
在EnvirMarket_def目录下创建HeChengNPC.txt,内容如下:
[@main]
\
\
『』(需10个金刚石)\
『』\
第二步:编写合成逻辑分支
在同文件中添加[@HeChengNuZhan]标签,处理合成请求:
[@HeChengNuZhan]
; 检查背包中是否有至少10个金刚石(物品代码假设为123)
IF
CHECKITEM 123 10
ACT
; 扣除10个金刚石
TAKE 123 10
; 给予怒斩(假设怒斩代码为45)
GIVE 45 1
SENDMSG 7 合成成功!获得怒斩。
CLOSEMERCHANT
BREAK
ELSEACT
SENDMSG 7 背包中金刚石不足10个,无法合成。
CLOSEMERCHANT
关键说明
物品代码确认:
金刚石代码需根据实际StdItems.ini或数据库确认,常见为123、1024或自定义值;
怒斩代码通常为45,但部分版本可能不同,请核对装备列表。
若不确定,可通过GM命令@ITEMLIST查询物品编号。
CHECKITEM作用范围:
CHECKITEM仅检测玩家背包(含扩展栏),不包括仓库、身上穿戴或地面;
自动排除仓库物品,符合“不在背包则不能合成”要求。
TAKE与GIVE顺序:
先扣除材料,再给予成品,防止因背包满导致材料丢失;
若担心背包满,可加判断:
#IF
CHECKBAGGAGE 1
; 表示背包至少有1格空位
防重复点击:
CLOSEMERCHANT立即关闭窗口,避免快速连点导致多次扣除。
第三步:注册NPC到游戏
在!Setup.txt末尾添加:
NHeChengNPC 300 300 HeChengNPC.txt
并在对应地图文件(如0.txt)中放置坐标:
300 300 NHeChengNPC
扩展:支持多种合成选项
若需在同一NPC提供多合成项,例如同时合成屠龙、逍遥扇等:
[@main]
\
\
『』(10金刚石)\
『』(20金刚石)\
『』\
[@HeChengTuLong]
IF
CHECKITEM 123 20
ACT
TAKE 123 20
GIVE 40 1
SENDMSG 7 合成成功!获得屠龙。
CLOSEMERCHANT
BREAK
ELSEACT
SENDMSG 7 金刚石不足20个。
CLOSEMERCHANT
测试步骤
启动服务端,进入游戏;
使用GM命令获取金刚石:@GIVE 123 10;
打开NPC,点击“合成怒斩”;
观察是否成功获得怒斩,金刚石是否扣除10个;
若失败,检查:
物品代码是否正确;
脚本文件编码是否为ANSI;
NPC是否正确注册并出现在地图。
此脚本严格满足需求:仅当背包内有10个金刚石时才能合成怒斩,材料不足则提示,逻辑清晰,无冗余操作,适用于F引擎单机或联机环境。

