传奇服务端合成脚本编写教程 物品合成脚本完整示例

来源: 作者: 点击:
传奇服务端合成脚本,核心是通过脚本命令判断玩家背包内材料是否齐全,设置合成成功率,定义成功与失败的物品奖惩规则,适配GOM、GEE、HERO、SKY等所有主流引擎,全程可直接复制修改使用,无需复杂编程,新手也能快速上手,以下脚本严格按照要求编写,以乌木剑、黑铁矿、金矿合成铁剑为例,包含两种合成场景,明确成功与失败的奖惩,可直接套用至服务端。
编写合成脚本前,需确认两个核心前提:一是明确合成所需物品的数据库ID,所有物品(材料、成品)均需对应服务端数据库中的正确ID,避免因ID错误导致合成失效;二是确认脚本存放路径,所有合成脚本均需放在服务端Mir200\Envir\Market_Def文件夹下,通常写入“功能NPC.txt”(部分版本为“NPC.txt”),无需修改其他文件夹文件,确保脚本能正常触发。
首先获取物品数据库ID,这是脚本编写的基础,不同版本传奇物品ID可能略有差异,获取方法通用:打开服务端数据库(多数为DBC2000,控制面板中找到DBC2000,打开后选择HeroDB别名,路径指向服务端MirServer\Mud2\DB),找到“StdItems.DB”数据表(物品数据库),双击打开,搜索对应物品名称,找到“ID”字段,记录对应数字即为物品ID。
以用户举例物品为例,常见默认ID参考(可根据自身服务端版本修改):乌木剑ID=13,黑铁矿ID=44,金矿ID=45,铁剑ID=14,后续脚本均以该ID编写,若自身服务端ID不同,直接替换对应数字即可,无需修改脚本其他格式。
合成脚本核心命令说明(适配所有主流引擎,无需修改命令格式):CHECKITEM 物品ID 数量(判断背包内是否有对应数量的材料);TAKE 物品ID 数量(扣除背包内对应材料);GIVE 物品ID 数量(给予玩家对应成品或奖励);RANDOM 1 100(设置合成成功率,1-100之间,数字越大成功率越高);SENDMSG 5 提示内容(向玩家发送合成结果提示,5为提示颜色,可自行调整1-7)。
第一种合成场景:物品A+物品B合成(乌木剑+黑铁矿合成铁剑),成功得到物品C(铁剑),失败失去所有材料,脚本完整编写及说明如下,可直接复制到“功能NPC.txt”中使用。
完整脚本示例(通用版,适配所有引擎):
(@合成铁剑1)#IFCHECKITEM 13 1 ;判断背包内是否有1把乌木剑(ID=13)CHECKITEM 44 1 ;判断背包内是否有1个黑铁矿(ID=44)#ACT RANDOM 1 100 ;设置合成成功率为100%可修改,如50代表50%成功率IF RANDOM > 50 ;判断合成是否成功(此处设为50%成功率,可调整)GIVE 14 1 ;合成成功,给予1把铁剑(ID=14)SENDMSG 5 合成成功!获得铁剑1把!ELSETAKE 13 1 ;合成失败,扣除1把乌木剑TAKE 44 1 ;合成失败,扣除1个黑铁矿SENDMSG 5 合成失败!所有材料已扣除!ENDIF#SAY乌木剑+黑铁矿合成铁剑\n合成成功率:50%\n成功:获得铁剑1把\n失败:失去所有材料
脚本修改说明:1. 成功率调整:将“IF RANDOM > 50”中的“50”修改为目标成功率,如30代表30%成功率,100代表100%成功,0代表100%失败;2. 物品ID修改:若乌木剑、黑铁矿、铁剑ID与示例不同,替换对应数字(13、44、14)即可;3. 材料数量修改:若合成需多个材料,如2个黑铁矿,将“CHECKITEM 44 1”改为“CHECKITEM 44 2”,同时将“TAKE 44 1”改为“TAKE 44 2”;4. 提示内容修改:可修改“SENDMSG 5”后的文字,以及#SAY后的NPC对话提示,贴合自身服务端风格。
第二种合成场景:物品A+物品B+物品D合成(乌木剑+黑铁矿+金矿合成铁剑),成功得到物品C(铁剑),失败得到物品A(乌木剑),脚本完整编写及说明如下,与第一种场景脚本分开编写,避免冲突,可直接复制添加到“功能NPC.txt”中。
完整脚本示例(通用版,适配所有引擎):
(@合成铁剑2)#IFCHECKITEM 13 1 ;判断背包内是否有1把乌木剑(ID=13)CHECKITEM 44 1 ;判断背包内是否有1个黑铁矿(ID=44)CHECKITEM 45 1 ;判断背包内是否有1个金矿(ID=45)#ACT RANDOM 1 100 ;设置合成成功率,可自由调整IF RANDOM > 60 ;此处设为60%成功率,可修改GIVE 14 1 ;合成成功,给予1把铁剑(ID=14)TAKE 13 1 ;扣除1把乌木剑TAKE 44 1 ;扣除1个黑铁矿TAKE 45 1 ;扣除1个金矿SENDMSG 5 合成成功!获得铁剑1把!ELSETAKE 44 1 ;合成失败,扣除1个黑铁矿TAKE 45 1 ;合成失败,扣除1个金矿SENDMSG 5 合成失败!返还乌木剑,黑铁矿和金矿已扣除!ENDIF#SAY乌木剑+黑铁矿+金矿合成铁剑\n合成成功率:60%\n成功:获得铁剑1把\n失败:返还乌木剑,失去黑铁矿和金矿
脚本修改说明:1. 成功率调整:将“IF RANDOM > 60”中的“60”改为目标成功率,如40代表40%成功率,80代表80%成功;2. 物品ID修改:替换13(乌木剑)、44(黑铁矿)、45(金矿)、14(铁剑)为自身服务端对应物品ID;3. 材料数量修改:若需多个材料,如2个金矿,将“CHECKITEM 45 1”改为“CHECKITEM 45 2”,“TAKE 45 1”改为“TAKE 45 2”;4. 返还规则:脚本默认失败返还乌木剑,无需额外添加命令,因未扣除乌木剑,若需调整返还物品,可添加“GIVE 物品ID 数量”命令。
分引擎脚本适配补充(针对不同引擎的细微调整,确保脚本生效,无需修改核心逻辑):
1. GOM引擎:无需额外修改脚本,直接复制到“功能NPC.txt”,保存后删除Mir200\Envir\Cache下的缓存文件,重启服务端即可生效;若合成无反应,可在#IF下方添加“CHECKONLINE”命令,确保玩家在线触发,修改后为:#IF CHECKONLINE CHECKITEM 13 1 CHECKITEM 44 1。
2. GEE引擎:脚本中“RANDOM”命令需改为“RAND”,其余内容不变,示例:将“RANDOM 1 100”改为“RAND 1 100”,“IF RANDOM > 50”改为“IF RAND > 50”,修改后保存,删除缓存并重启服务端。
3. HERO引擎:需在脚本开头添加“#DEFINE”命令定义成功率,示例:#DEFINE 合成成功率 50,然后将“IF RANDOM > 50”改为“IF RANDOM > 合成成功率”,其余内容不变,同时确保物品ID与HERO引擎数据库ID一致。
4. SKY引擎:脚本无需修改,直接复制使用,若合成后物品无法正常给予,可在“GIVE 物品ID 数量”后添加“ADDTOBAG”命令,示例:GIVE 14 1 ADDTOBAG,确保物品直接放入玩家背包。
NPC设置方法(让玩家可找到合成NPC,触发合成脚本):打开“功能NPC.txt”,在脚本开头添加NPC基础配置,示例:[合成NPC] 3 330 330 1 0 0 0 0,其中“3”为新手村地图ID,“330 330”为NPC坐标,可根据自身服务端地图调整,“合成NPC”为NPC名称,玩家可在该坐标找到NPC,点击后选择对应合成选项(@合成铁剑1、@合成铁剑2),即可触发合成脚本。
脚本测试步骤(确保合成功能正常,避免报错):第一步,保存所有脚本文件,删除Mir200\Envir\Cache下的缓存文件,重新启动服务端,按顺序启动DBServer.exe、LoginGate.exe、M2Server.exe,确保服务端无报错弹窗;第二步,登录游戏,前往NPC所在坐标,背包内放入对应合成材料(乌木剑、黑铁矿、金矿);第三步,点击NPC,选择合成选项,测试合成成功和失败的效果,确认成功能获得铁剑,失败能触发对应奖惩;第四步,若合成无反应或报错,按后续排查方法解决。
常见脚本失效及报错排查方法(新手必看):
1. 物品ID错误:这是最常见原因,重新打开StdItems.DB数据表,核对乌木剑、黑铁矿、金矿、铁剑的ID,确保脚本中的ID与数据库一致,替换错误ID后,保存脚本、删除缓存、重启服务端。
2. 脚本格式错误:确保#IF、#ACT、#SAY、IF、ELSE、ENDIF均为大写,命令之间有空格,无多余符号,如“CHECKITEM13 1”(缺少空格)会导致脚本失效,需改为“CHECKITEM 13 1”;同时确保脚本无换行错误,每一条命令单独对应,避免一行多个命令。
3. 引擎适配错误:未根据引擎修改对应命令,如GEE引擎未将“RANDOM”改为“RAND”,导致合成无法触发,按分引擎适配步骤修改脚本,重新测试。
4. 缓存未删除:修改脚本后,未删除Mir200\Envir\Cache下的缓存文件,导致脚本无法生效,删除缓存文件后,重启服务端即可解决。
5. 材料数量不足:脚本中设置需要1个黑铁矿,玩家背包内只有1个,合成正常;若玩家背包内材料数量不足,脚本会不触发,可在#IF下方添加提示,示例:#IF NOT CHECKITEM 13 1 SENDMSG 5 背包内缺少乌木剑,无法合成! BREAK,让玩家明确知道缺少的材料。
脚本拓展方法(根据自身需求调整,适配更多合成场景):
1. 调整合成成功率:根据需求修改“IF RANDOM > 数字”中的数字,如10代表10%成功率,90代表90%成功率,100代表必成,0代表必败。
2. 增加合成材料:若需4种及以上材料合成,在#IF下方添加“CHECKITEM 物品ID 数量”命令,在#ACT的TAKE命令中添加对应材料扣除,示例:添加物品E(ID=46),脚本#IF中添加“CHECKITEM 46 1”,#ACT中添加“TAKE 46 1”。
3. 修改奖惩规则:若失败需返还部分材料,如返还黑铁矿,可在ELSE中添加“GIVE 44 1”命令;若成功需额外奖励,如奖励金币,添加“GIVEGAMEGOLD 10000”(奖励10000金币)命令。
4. 限制合成次数:若需限制每日合成次数,可添加变量判断,示例:#IF CHECKVAR HUMAN 合成次数 < 5,设置每日最多合成5次,超过次数提示无法合成,需在脚本中添加变量存储命令。
操作关键技巧:编写脚本时,建议用记事本打开“功能NPC.txt”,保存时选择ANSI编码,避免乱码导致脚本失效;修改脚本前,备份“功能NPC.txt”文件,避免误改原有脚本,导致其他功能失效;所有修改完成后,务必删除缓存并重启服务端,确保脚本生效;若服务端有多个合成脚本,可按合成场景分类编写,避免脚本冲突。
另外,部分传奇服务端的合成脚本,可添加音效提示,如合成成功播放音效,在“GIVE 14 1”后添加“PLAYSOUND 音效ID”命令,音效ID可在服务端Sound文件夹中查找;若需设置合成等级限制,可在#IF下方添加“CHECKLEVEL > 10”命令,限制玩家等级达到10级才能合成,适配更多场景需求。
总结来说,传奇服务端合成脚本编写难度低,核心是明确物品ID、设置合成成功率、定义奖惩规则,以上脚本以用户举例为核心,适配所有主流引擎,可直接复制修改使用,无需复杂编程。只要确保物品ID正确、脚本格式规范、引擎适配到位,删除缓存并重启服务端,就能实现正常合成功能,满足玩家合成需求,新手也能轻松完成脚本编写和设置。