Пример #1
0
        public override void Tick()
        {
            if (timeSpan < TIME_DELAY)
            {
                timeSpan += Time.deltaTime;
                return;
            }

            timeSpan = 0;

            if (!hasPlayFight && Owner.GetLastedTime() > _actorBehaviour.AttackInterval)
            { // 战斗动画播放结束, 休息一会儿
                hasPlayFight = true;
                ActorPlayAni output = new ActorPlayAni()
                {
                    RoomId  = _actorBehaviour.RoomId,
                    OwnerId = _actorBehaviour.OwnerId,
                    ActorId = _actorBehaviour.ActorId,
                    AiState = 2, // FSMStateActor.StateEnum.Fight
                };
                GameRoomManager.Instance.SendMsg(ROOM.ActorPlayAni, output.ToByteArray());
            }

            if (Owner.TimeIsUp())
            {
                Owner.TriggerTransition(StateEnum.IDLE);
            }
        }
Пример #2
0
    private void OnActorPlayAni(SocketAsyncEventArgs args, byte[] bytes)
    {
        ActorPlayAni input = ActorPlayAni.Parser.ParseFrom(bytes);

        if (input.RoomId != RoomId)
        {
            return; // 不是自己房间的消息,略过
        }
        ActorPlayAniReply output = new ActorPlayAniReply()
        {
            RoomId  = input.RoomId,
            OwnerId = input.OwnerId,
            ActorId = input.ActorId,
            AiState = input.AiState,
            Ret     = true,
        };

        BroadcastMsg(ROOM_REPLY.ActorPlayAniReply, output.ToByteArray());
    }