Triggers.Zone.cs 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using CommonLang.Property;
  5. using CommonAI.Zone.ZoneEditor;
  6. using CommonAI.Zone.Instance;
  7. using CommonAI.Zone.Attributes;
  8. using CommonAI.Zone.EventTrigger;
  9. namespace CommonAI.Zone.ZoneEditor.EventTrigger
  10. {
  11. [DescAttribute("场景初始化", "场景")]
  12. public class SceneInitialized : AbstractTrigger
  13. {
  14. public override string ToString()
  15. {
  16. return string.Format("当场景初始化时");
  17. }
  18. public override void Listen(EventTriggerAdapter api, EventArguments args)
  19. {
  20. api.listen_SceneInit(args, api.ZoneAPI);
  21. }
  22. }
  23. [DescAttribute("时间逝去", "时间")]
  24. public class TimeElapsed : AbstractTrigger
  25. {
  26. [DescAttribute("时间(秒)")]
  27. public float TimeSEC = 5.0f;
  28. public override string ToString()
  29. {
  30. return string.Format("当{0}秒之后", TimeSEC);
  31. }
  32. public override void Listen(EventTriggerAdapter api, EventArguments args)
  33. {
  34. api.listen_TimeDelaySEC(args, TimeSEC);
  35. }
  36. }
  37. [DescAttribute("时间间隔", "时间")]
  38. public class TimePeriodic : AbstractTrigger
  39. {
  40. [DescAttribute("时间(秒)")]
  41. public float EveryTimeSEC = 5.0f;
  42. public override string ToString()
  43. {
  44. return string.Format("每隔{0}秒", EveryTimeSEC);
  45. }
  46. public override void Listen(EventTriggerAdapter api, EventArguments args)
  47. {
  48. api.listen_TimePeriodicSEC(args, EveryTimeSEC);
  49. }
  50. }
  51. [DescAttribute("时间间隔按次数", "时间")]
  52. public class TimeTask : AbstractTrigger
  53. {
  54. [DescAttribute("延时时间(秒)")]
  55. public float DelayTimeSEC = 0f;
  56. [DescAttribute("间隔时间(秒)")]
  57. public float EveryTimeSEC = 5.0f;
  58. [DescAttribute("重复次数")]
  59. public int RepeatCount = 0;
  60. public override string ToString()
  61. {
  62. return string.Format("延时{0}秒,每隔{1}秒,执行{2}次", DelayTimeSEC, EveryTimeSEC, RepeatCount);
  63. }
  64. public override void Listen(EventTriggerAdapter api, EventArguments args)
  65. {
  66. api.listen_TimeTaskSEC(args, EveryTimeSEC, DelayTimeSEC, RepeatCount);
  67. }
  68. }
  69. [DescAttribute("(变量)时间逝去", "时间")]
  70. public class ValuedTimeElapsed : AbstractTrigger
  71. {
  72. [DescAttribute("时间(秒)")]
  73. public RealValue TimeSEC = new RealValue.VALUE(5);
  74. public override string ToString()
  75. {
  76. return string.Format("当{0}秒之后", TimeSEC);
  77. }
  78. public override void Listen(EventTriggerAdapter api, EventArguments args)
  79. {
  80. api.listen_TimeDelaySEC(args, TimeSEC.GetValue(api, args));
  81. }
  82. }
  83. [DescAttribute("(变量)时间间隔", "时间")]
  84. public class ValuedTimePeriodic : AbstractTrigger
  85. {
  86. [DescAttribute("时间(秒)")]
  87. public RealValue EveryTimeSEC = new RealValue.VALUE(5);
  88. public override string ToString()
  89. {
  90. return string.Format("每隔{0}秒", EveryTimeSEC);
  91. }
  92. public override void Listen(EventTriggerAdapter api, EventArguments args)
  93. {
  94. api.listen_TimePeriodicSEC(args, EveryTimeSEC.GetValue(api, args));
  95. }
  96. }
  97. [DescAttribute("(变量)时间间隔按次数", "时间")]
  98. public class ValuedTimeTask : AbstractTrigger
  99. {
  100. [DescAttribute("延时时间(秒)")]
  101. public RealValue DelayTimeSEC = new RealValue.VALUE(5);
  102. [DescAttribute("间隔时间(秒)")]
  103. public RealValue EveryTimeSEC = new RealValue.VALUE(5);
  104. [DescAttribute("重复次数")]
  105. public IntegerValue RepeatCount = new IntegerValue.VALUE(0);
  106. public override string ToString()
  107. {
  108. return string.Format("延时{0}秒,每隔{1}秒,执行{2}次", DelayTimeSEC, EveryTimeSEC, RepeatCount);
  109. }
  110. public override void Listen(EventTriggerAdapter api, EventArguments args)
  111. {
  112. api.listen_TimeTaskSEC(args, EveryTimeSEC.GetValue(api, args), DelayTimeSEC.GetValue(api, args), RepeatCount.GetValue(api, args));
  113. }
  114. }
  115. [DescAttribute("当从游戏服收到消息", "游戏服")]
  116. public class RecvMessageFromGS : AbstractTrigger
  117. {
  118. [DescAttribute("消息name")]
  119. public string Message;
  120. [DescAttribute("选择特定Unit作为触发单位(类型:数量:阵营;)。类型=1为死亡单位")]
  121. public string TriggerUnits;
  122. public override string ToString()
  123. {
  124. if(!string.IsNullOrEmpty(TriggerUnits))
  125. {
  126. return string.Format("当从游戏服收到消息“{0}”, 附加触发单位({1})", Message, TriggerUnits);
  127. }
  128. return string.Format("当从游戏服收到消息“{0}”", Message);
  129. }
  130. public override void Listen(EventTriggerAdapter api, EventArguments args)
  131. {
  132. api.listen_RecvMessageFromGS(args, api.ZoneAPI, Message, TriggerUnits);
  133. }
  134. }
  135. }