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

热血传奇任务脚本编写:接任务杀怪交任务流程

热度:
热血传奇中实现完整任务流程需通过NPC脚本控制接取、杀怪检测与奖励发放。以下以“击杀5只野猪回城交任务”为例,说明标准Mir2服务端脚本写法。

一、创建任务NPC脚本
在Npc_def目录新建文件,如“QuestGiver.txt”:

[@main]
勇士,帮我个忙!




[@accept]
IF
EQUALD00
ACT
MOVD01
MOVD10
SENDMSG6任务已接取:击杀5只野猪。
ELSEACT
MESSAGE你已有未完成任务。

[@check]
IF
EQUALD01
ACT
SENDMSG6已击杀野猪:D1/5
ELSEACT
MESSAGE暂无进行中任务。

[@complete]
IF
EQUALD01
LARGED14
ACT
MOVD00
GIVE金创药10
CHANGEEXP5000
SENDMSG6任务完成!获得5000经验和10瓶金创药。
ELSEACT
MESSAGE任务未完成或未接取。

D0标记任务状态(0=未接,1=进行中),D1记录杀怪数量。

二、配置杀怪触发事件
在MapQuest_def目录下找到野猪所在地图编号(如CA01对应比奇野外),创建或编辑“CA01.txt”:

;野猪怪物编号为10
[@Kill_10]
IF
EQUALD01
ACT
INCD11

当玩家击杀编号10的野猪且D0=1时,D1自动加1。若野猪在多张地图出现,需在每张地图的Quest文件中添加相同逻辑。

三、怪物编号确认方法
怪物编号需与MonItems.txt或Monster.db中定义一致。常见默认编号:野猪=10,稻草人=11,钉耙猫=12。若自定义怪物,需使用实际配置编号。

四、扩展多阶段任务(可选)
若任务分多步,可用D0不同值表示阶段。例如:
D0=1:杀野猪
D0=2:杀鹿
交任务时依次检测各阶段完成状态。

五、防止重复接任务
当前脚本通过D0非零值阻止重复接取。若需允许多次接取,可在交任务后重置D0=0,并用其他变量记录总完成次数。

六、经验与物品奖励说明
CHANGEEXP数值:直接增加经验值
GIVE物品名数量:发放物品,名称需与Item.db一致
奖励可叠加,如同时给金币、装备、药品

七、测试要点
确保NPC坐标位于安全区,避免战斗中断对话;
杀怪脚本文件名必须与地图编号严格对应(如地图号001对应CA001.txt);
D变量为持久存储,重启服务端不丢失;
若杀怪不计数,检查怪物编号是否正确及MapQuest_def目录是否被加载。

此结构适用于所有“接任务→杀指定怪→交任务”类玩法,只需替换怪物编号、数量及奖励内容即可快速部署新任务。
[顶部]