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; }
public void SendTrigerMessage() { lock (used_lock) { if (used) { return; } used = true; } CTrigerOnEnter msg = new CTrigerOnEnter(); string name = gameObject.name; if (name.Contains("PressurePad")) { msg.pressurePad = new PressurePad(false, 0, name); } else if (name.Contains("Switch")) { msg.switchCrystal = new SwitchCrystal(false, 0, name); } else if (name.Contains("HealthCrate")) { msg.healthBox = new HealthBox(false, 0, name); World.Instance.fPlayer.ResetHP(); } else if (name.Contains("Trans")) { CChangeScene cs = new CChangeScene(); cs.player_id = 0; cs.level = "Level2"; Client.Instance.Send(cs); return; } Client.Instance.Send(msg); }