Пример #1
0
        private void OnRecvChangeScene(IChannel channel, Message message)
        {
            SChangeScene msg     = message as SChangeScene;
            GameStart    startup = GameObject.FindObjectOfType <GameStart>();

            startup.PlayerEnter(msg.level);
        }
Пример #2
0
        private void OnRecvChangeScene(IChannel channel, Message message)
        {
            CChangeScene msg    = message as CChangeScene;
            Player       player = channel.GetContent() as Player;

            using (var conn = DataBase.GameDataBase.GetConnection())
            {
                using (var cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "Update Player Set scene=@scene, pos_x=@pos_x, pos_y=@pos_y, pos_z=@pos_z Where player_id=@player_id";
                    cmd.Parameters.AddWithValue("scene", msg.level);
                    cmd.Parameters.AddWithValue("player_id", player.player_id);
                    cmd.Parameters.AddWithValue("pos_x", Scene.initPos[msg.level].x);
                    cmd.Parameters.AddWithValue("pos_y", Scene.initPos[msg.level].y);
                    cmd.Parameters.AddWithValue("pos_z", Scene.initPos[msg.level].z);
                    int res = cmd.ExecuteNonQuery();
                    if (res != 1)
                    {
                        return;
                    }
                }
            }
            Scene scene = World.Instance.GetScene(player.scene);

            scene.RemoveEntity(player.entityId);
            SPlayerDie die = new SPlayerDie();

            die.entityId = player.entityId;
            die.isMine   = false;
            SChangeScene response = new SChangeScene();

            response.level = msg.level;
            channel.Send(response);

            scene.Broadcast(die);

            player.scene = msg.level;
        }