Quest_123.cs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using CommonAI.Zone.Instance;
  2. using CommonLang.Vector;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using XmdsCommonServer.Plugin.Quest;
  8. namespace XmdsCommonQuest.Quest
  9. {
  10. [QuestListen("123")]
  11. public class Quest_123 : QuestScript
  12. {
  13. // 脚本开始
  14. protected override void OnStart()
  15. {
  16. // 玩家进入位面
  17. PlayerEnterAOI();
  18. //经过1
  19. var rg1 = Zone.getFlagAs<ZoneRegion>("rg1");
  20. //经过2
  21. var rg2 = Zone.getFlagAs<ZoneRegion>("rg2");
  22. // 终点
  23. var finish_region = Zone.getFlagAs<ZoneRegion>("finish_region");
  24. // 添加NPC单位
  25. var npc = this.AddUnitInRegion(
  26. "start", // 区域名
  27. 100500, // NPC模板ID
  28. Player.Force, // Force
  29. true, // 是否进入AOI
  30. "NPC", // 名字
  31. 0, // 等级
  32. "waypoint"); // 寻路点
  33. npc.SetMaxHP(10000, true);
  34. npc.SetMoveSpeed(npc.MoveSpeedSEC / 2);
  35. // 当NPC死亡
  36. npc.OnDead += (u, attacker) =>
  37. {
  38. // 任务失败,放弃任务
  39. QuestFailed("NPC死亡");
  40. };
  41. // 当NPC走到怪点1
  42. rg1.ListenUnitEnterOnce(npc, (rg, u) =>
  43. {
  44. // 刷5只怪
  45. AddUnitsInRegion("monster_region1", 100500, 5, Player.Force + 1, true);
  46. });
  47. // 当NPC走到怪点2
  48. rg2.ListenUnitEnterOnce(npc, (rg, u) =>
  49. {
  50. // 刷5只怪
  51. AddUnitsInRegion("monster_region2", 100500, 5, Player.Force + 1, true);
  52. });
  53. // 当NPC走到头
  54. finish_region.ListenUnitEnterOnce(npc, (rg, u) =>
  55. {
  56. // 任务成功,提交任务
  57. QuestAccomplish("NPC走到终点");
  58. });
  59. }
  60. // 脚本结束
  61. protected override void OnDispose()
  62. {
  63. // 单位离开位面
  64. this.PlayerLeaveAOI();
  65. }
  66. }
  67. }