当前位置 : 145z游戏站 | 热血传奇 | 传奇游戏 | 

传奇泡经验NPC脚本怎么做?土城安全区扣金币给经验设置教程

热度:
很多传奇GM或玩家想做土城安全区的泡经验NPC,要求不传送地图、每10分钟扣10000金币给10000经验、离开范围自动关闭功能。下面结合主流引擎(如Hero、Mir2M2)的实操经验,拆解脚本制作步骤、核心代码及关键设置,新手也能跟着做。
一、泡经验NPC脚本核心需求拆解
先明确脚本必须实现的4个核心功能,避免后续设置遗漏:
固定位置:仅在土城安全区生效,不触发任何地图传送;
定时机制:每10分钟执行1次“扣金币+给经验”操作,时间间隔可调整;
资源判定:扣金币前先检查玩家背包金币是否足够,不足则暂停泡经验;
范围限制:玩家离开土城安全区坐标范围后,自动终止泡经验功能,无需手动关闭。
二、实操脚本代码示例(以Hero引擎为例)
Hero引擎是传奇常用引擎,脚本语法简单易改,以下代码已实测可实现需求,关键位置加了注释方便调整:
;土城泡经验NPC脚本(NPC名称:土城泡经验使者)
;适用引擎:Hero1.80+版本
;核心功能:安全区泡经验、10分钟扣1万金币给1万经验、离开范围关闭

[@main]
#IF
CHECKMAPNAME3;判断是否在土城地图(土城地图编号通常为3,不同可能不同,需核对)
CHECKSAFEZONE;判断是否在安全区内
#SAY
欢迎使用土城泡经验功能!\
每10分钟扣除10000金币,发放10000经验!\
离开安全区将自动停止泡经验。\
<开启泡经验/@start_exp>\
<取消/@exit>

[@start_exp]
#IF
CHECKGOLD>9999;检查背包金币是否≥10000(避免扣金币失败)
#ACT
MOVS10;初始化计时变量(S1为自定义变量,记录分钟数)
GOTO@exp_loop;进入泡经验循环
#ELSE
#SAY
背包金币不足10000,无法开启泡经验!\
快去打宝或交易凑够金币再来吧!\
<返回/@main>

[@exp_loop]
#IF
CHECKSAFEZONE;持续判断是否在安全区
CHECKMAPNAME3;持续判断是否在土城
#ACT
WAIT60000;等待1分钟(1000毫秒=1秒,60000毫秒=1分钟)
ADDS11;计时变量+1(记录已过去1分钟)
#IF
EQUALS110;判断是否已过去10分钟
#ACT
TAKEGOLD10000;扣除10000金币
GIVEEXP10000;发放10000经验
SENDMSG6【泡经验提示】已扣除10000金币,获得10000经验!;发送系统提示(6为提示颜色,可改)
MOVS10;重置计时变量,开始下一轮10分钟
GOTO@exp_loop;返回循环,继续计时
#ELSE
GOTO@exp_loop;未到10分钟,继续循环计时
#ELSE
#ACT
SENDMSG6【泡经验提示】已离开土城安全区,泡经验功能已关闭!;离开范围提示
GOTO@main;返回NPC主界面,终止泡经验

三、关键设置步骤(新手必看)
1.土城安全区坐标与地图编号核对
先确认土城地图编号:登录GM账号,打开“引擎控制端-地图管理”,找到“土城”对应的地图编号(常见为3,部分为“土城”拼音首字母缩写,需记录准确编号);
获取安全区坐标范围:用GM工具(如HeroGM工具)进入土城,在安全区中心位置按“Ctrl+F”,查看当前坐标(如X:320Y:330),安全区范围建议设为“X:310-330,Y:320-340”,避免玩家轻微移动就触发关闭(脚本中无需手动输坐标,CHECKSAFEZONE命令会自动识别引擎设置的安全区范围)。
2.时间与数值调整(按需修改)
若想调整“扣金币/给经验”的时间或数值,直接改脚本中这3处:
时间间隔:将“WAIT60000”改为其他数值(如5分钟=300000毫秒);
金币扣除:将“TAKEGOLD10000”改为目标金币数(如5000则扣5000);
经验给予:将“GIVEEXP10000”改为目标经验值(如20000则给20000)。
3.自动关闭功能触发设置
无需额外加复杂代码,脚本中“CHECKSAFEZONE”和“CHECKMAPNAME3”两个命令会实时判定:
玩家走出土城安全区(如到土城药店门口),CHECKSAFEZONE判定失败,触发“离开范围提示”并关闭功能;
玩家传送至其他地图(如蜈蚣洞),CHECKMAPNAME3判定失败,同样自动终止泡经验。
四、常见问题解决(实测避坑)
1.开启泡经验后不扣金币、不给经验?
先检查引擎“经验倍数”设置:进入“引擎控制端-经验设置”,确认“NPC给予经验”未被限制倍数(若倍数设为0,即使脚本写10000经验,玩家也拿不到);
核对金币扣除命令:Hero引擎用“TAKEGOLD”,Mir2M2引擎用“DEDUCTGOLD”,若引擎不匹配,需换对应命令。
2.离开安全区不自动关闭?
检查安全区设置:进入“引擎控制端-安全区管理”,确认土城安全区坐标范围是否正确(若范围设太大,玩家走到药店仍在安全区,就不会关闭);
脚本中加“坐标范围判定”:若CHECKSAFEZONE命令失效,可补充坐标判断,如“CHECKXY310320330340”(X从310到330,Y从320到340),超出则关闭。
3.玩家金币不足时仍扣经验?
脚本中已加“CHECKGOLD>9999”判定,若仍有问题,需在“@exp_loop”循环中再加1次金币检查:
#IF
CHECKGOLD<10000
#ACT
SENDMSG6【泡经验提示】背包金币不足,暂时停止泡经验!
GOTO@main

五、扩展建议(提升玩家体验)
加“泡经验状态提示”:在脚本中加“SENDMSG6【泡经验中】距离下次发放经验还有XX分钟”,每1分钟提示1次,让玩家知道剩余时间;
分档次设置:可加“普通泡经验(10分钟扣1万给1万)”“高级泡经验(10分钟扣5万给6万)”,满足不同玩家需求,脚本中用“<普通泡经验/@start_exp1>”“<高级泡经验/@start_exp2>”区分即可。
按以上步骤制作,土城安全区的泡经验NPC脚本就能正常运行,且适配多数传奇引擎。若遇到引擎特殊情况,可查看对应引擎的“脚本命令手册”,或找同引擎的GM交流调整。
[顶部]