public static void SerializeData(BinaryWriter br, CustomSyncMsg msg)
    {
        br.Write((short)msg.player_id);
        br.Write((char)msg.msg_type);

        if (msg.msg_type == (int)RequestType.ENTERAREA)
        {
            EnterAreaMessage enterArea = msg as EnterAreaMessage;
            // br.Write(enterArea.id);
            br.Write(enterArea.health);;
            br.Write(enterArea.position.x);
            br.Write(enterArea.position.y);
            br.Write(enterArea.position.z);
            br.Write(enterArea.direction.x);
            br.Write(enterArea.direction.y);
            br.Write(enterArea.direction.z);
            //br.Write(enterArea.rotation.x);
            //br.Write(enterArea.rotation.y);
        }
        else if (msg.msg_type == (int)RequestType.INPUT)
        {
            InputMessage input = msg as InputMessage;
            // br.Write(input.id);
            br.Write(input.moving.x);
            // br.Write(input.moving.y);
            br.Write(input.moving.z);
        }
        else if (msg.msg_type == (int)RequestType.LEAVEAREA)
        {
            LeaveAreaMessage leaveArea = msg as LeaveAreaMessage;
            //br.Write(leaveArea.id);
        }
        else if (msg.msg_type == (int)RequestType.ROTATE)
        {
            RotateMessage rotate = msg as RotateMessage;
            // br.Write(rotate.id);
            br.Write(rotate.delta.x);
            br.Write(rotate.delta.y);
        }
        else if (msg.msg_type == (int)RequestType.POSITION)
        {
            PositionMessage rotate = msg as PositionMessage;
            //br.Write(rotate.id);
            br.Write(rotate.delta.x);
            br.Write(rotate.delta.y);
        }
        else if (msg.msg_type == (int)RequestType.SPAWN)
        {
            SpawnMessage spawn = msg as SpawnMessage;
            //br.Write(spawn.id);
            br.Write(spawn.position.x);
            br.Write(spawn.position.y);
            br.Write(spawn.position.z);
        }
    }
示例#2
0
 public void RecordCustomSyncMsg(CustomSyncMsg customSyncMsg)
 {
     if (TotallFrames.Count > 0)
     {
         SyncFrame CurrentSyncFrame = TotallFrames[TotallFrames.Count - 1];
         CurrentSyncFrame.conbine_msg(customSyncMsg);
     }
     else
     {
         UnityEngine.Debug.Log("RecordCustomSyncMsg  TotallFrames count" + 0);
     }
 }
 public void handle_msg(CustomSyncMsg msg)
 {
     if (msg.msg_type == (int)RequestType.SPAWN)
     {
         // Console.WriteLine(" SPAWN_msg " + msg.msg_type);
         SpawnMessage s_msg = msg as SpawnMessage;
         spawn_player(msg.player_id, s_msg.position);
     }
     else if (msg.msg_type == (int)RequestType.INPUT)
     {
         // Console.WriteLine(" INPUT_msg " + msg.msg_type);
         InputMessage i_msg = msg as InputMessage;
         // Console.WriteLine( "client " + game.player_id + " player_id: " + msg.player_id  +  " area_id: " + mArea.get_area_id() + "handle input: player_id:" + msg.player_id + "move direction" + i_msg.moving);
         on_receive_player_input(msg.player_id, i_msg.moving);
     }
     else if (msg.msg_type == (int)RequestType.ROTATE)
     {
         RotateMessage r_msg = msg as RotateMessage;
         on_plyaer_rotate(msg.player_id, r_msg.delta);
     }
     else if (msg.msg_type == (int)RequestType.ENTERAREA)
     {
         //Console.WriteLine("msg.player_id " + msg.player_id +" ENTER_AREA_msg " + mgr_id);
         EnterAreaMessage e_msg = msg as EnterAreaMessage;
         on_player_enter_area(msg.player_id,
                              e_msg.health,
                              e_msg.rotation,
                              e_msg.direction,
                              e_msg.position);
     }
     else if (msg.msg_type == (int)RequestType.LEAVEAREA)
     {
         // Console.WriteLine("msg.player_id " + msg.player_id + " LEAVE_AREA_msg " + mgr_id);
         on_player_leave_area(msg.player_id);
     }
     else if (msg.msg_type == (int)RequestType.POSITION)
     {
         PositionMessage p_msg = msg as PositionMessage;
         on_player_position(msg.player_id, p_msg.delta);
     }
 }
示例#4
0
 //帧内transaction记录
 // 这应该是一个统一msg的类list变量,Area通过enum一些cmd handler去做相应操作
 public void dump_actions(CustomSyncMsg msg)
 {
     msg_list.Add(msg);
 }
示例#5
0
 public void conbine_msg(CustomSyncMsg msg)
 {
     this.msg_list.Add(msg);
 }