using CommonAI.Zone.Instance; using CommonLang.Vector; using System; using System.Collections.Generic; using System.Linq; using System.Text; using XmdsCommonServer.Plugin.Quest; namespace XmdsCommonQuest.Quest { [QuestListen("123")] public class Quest_123 : QuestScript { // 脚本开始 protected override void OnStart() { // 玩家进入位面 PlayerEnterAOI(); //经过1 var rg1 = Zone.getFlagAs("rg1"); //经过2 var rg2 = Zone.getFlagAs("rg2"); // 终点 var finish_region = Zone.getFlagAs("finish_region"); // 添加NPC单位 var npc = this.AddUnitInRegion( "start", // 区域名 100500, // NPC模板ID Player.Force, // Force true, // 是否进入AOI "NPC", // 名字 0, // 等级 "waypoint"); // 寻路点 npc.SetMaxHP(10000, true); npc.SetMoveSpeed(npc.MoveSpeedSEC / 2); // 当NPC死亡 npc.OnDead += (u, attacker) => { // 任务失败,放弃任务 QuestFailed("NPC死亡"); }; // 当NPC走到怪点1 rg1.ListenUnitEnterOnce(npc, (rg, u) => { // 刷5只怪 AddUnitsInRegion("monster_region1", 100500, 5, Player.Force + 1, true); }); // 当NPC走到怪点2 rg2.ListenUnitEnterOnce(npc, (rg, u) => { // 刷5只怪 AddUnitsInRegion("monster_region2", 100500, 5, Player.Force + 1, true); }); // 当NPC走到头 finish_region.ListenUnitEnterOnce(npc, (rg, u) => { // 任务成功,提交任务 QuestAccomplish("NPC走到终点"); }); } // 脚本结束 protected override void OnDispose() { // 单位离开位面 this.PlayerLeaveAOI(); } } }