12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- namespace ET.Client
- {
- public class AI_Attack: AAIHandler
- {
- public override int Check(AIComponent aiComponent, AIConfig aiConfig)
- {
- long sec = TimeHelper.ClientNow() / 1000 % 15;
- if (sec >= 10)
- {
- return 0;
- }
- return 1;
- }
- public override async ETTask Execute(AIComponent aiComponent, AIConfig aiConfig, ETCancellationToken cancellationToken)
- {
- Scene clientScene = aiComponent.DomainScene();
- Unit myUnit = UnitHelper.GetMyUnitFromClientScene(clientScene);
- if (myUnit == null)
- {
- return;
- }
- // 停在当前位置
- clientScene.GetComponent<SessionComponent>().Session.Send(new C2M_Stop());
-
- Log.Debug("开始攻击");
- for (int i = 0; i < 100000; ++i)
- {
- Log.Debug($"攻击: {i}次");
- // 因为协程可能被中断,任何协程都要传入cancellationToken,判断如果是中断则要返回
- await TimerComponent.Instance.WaitAsync(1000, cancellationToken);
- if (cancellationToken.IsCancel())
- {
- return;
- }
- }
- }
- }
- }
|