//广播移动
        public void BroadcastMoveTo(ObjCharacter _this)
        {
            if (!_this.mActive)
            {
                return;
            }
            if (null == _this.Zone)
            {
                return;
            }
            var msg = new CharacterMoveMsg
            {
                ObjId = _this.ObjId
            };

            foreach (var pos in _this.mTargetPos)
            {
                msg.TargetPos.Add(new Vector2Int32
                {
                    x = Utility.MultiplyPrecision(pos.X),
                    y = Utility.MultiplyPrecision(pos.Y)
                });
            }
            if (ObjCharacter.BroadcastMoveToType == 1)
            {
                _this.Zone.PushMoveToMsg(msg);
                return;
            }
            SceneServer.Instance.ServerControl.SyncMoveTo(_this.EnumAllVisiblePlayerIdExclude(_this.ObjId), msg);
        }
Exemplo n.º 2
0
 public void PushMoveToMsg(Zone _this, CharacterMoveMsg temp)
 {
     _this.movetoList.Moves.Add(temp);
     if (_this.movetoTrigger == null)
     {
         _this.movetoTrigger =
             SceneServerControl.Timer.CreateTrigger(DateTime.Now.AddMilliseconds(ObjCharacter.BroadcastCd),
                                                    () => { MoveToSend(_this); });
     }
 }
Exemplo n.º 3
0
    public void SyncMoveTo(CharacterMoveMsg msg)
    {
        var character = ObjManager.Instance.FindCharacterById(msg.ObjId);

        if (null == character)
        {
            Logger.Warn("NotifyMoveTo: obj[{0}]=null", msg.ObjId);
            return;
        }
        if (msg.ObjId == PlayerDataManager.Instance.GetGuid())
        {
            return;
        }
        var v =
            msg.TargetPos.Select(
                item =>
                new Vector3(GameUtils.DividePrecision(item.x), 0, GameUtils.DividePrecision(item.y))).ToList();

        character.MoveTo(v, 0);
        if (character.GetObjType() == OBJ.TYPE.NPC)
        {
            (character as ObjNPC).DelayedMove = null;
        }
    }
Exemplo n.º 4
0
 public void PushMoveToMsg(CharacterMoveMsg temp)
 {
     mImpl.PushMoveToMsg(this, temp);
 }