private void OnRecvPlayerEquipItem(IChannel channel, Message message) { CPlayerEquipItem request = message as CPlayerEquipItem; using (var conn = GameDataBase.GetConnection()) { using (var trans = conn.BeginTransaction()) { using (var cmd = conn.CreateCommand()) { cmd.CommandText = "Update Item Set status='Using' Where item_id=@item_id;"; cmd.Parameters.AddWithValue("item_id", request.item_id); int res = cmd.ExecuteNonQuery(); if (res != 1) { ClientTipInfo(channel, "Equip Error!"); trans.Rollback(); return; } } using (var cmd = conn.CreateCommand()) { cmd.CommandText = "Update Player Set items_count=items_count-1 Where player_id=@player_id"; cmd.Parameters.AddWithValue("player_id", ((Player)channel.GetContent()).player_id); int res = cmd.ExecuteNonQuery(); if (res != 1) { ClientTipInfo(channel, "Equip Error!"); trans.Rollback(); return; } } trans.Commit(); } } SPlayerEquipItem response = new SPlayerEquipItem(); response.item_id = request.item_id; channel.Send(response); var player = (Player)channel.GetContent(); var ditem = player.inventory[request.item_id]; player.inventory.Remove(request.item_id); player.wearing.Add(ditem.item_type, ditem); player.refreshAttr(); }
private void OnRecvPlayerEquipItem(IChannel channel, Message message) { SPlayerEquipItem msg = message as SPlayerEquipItem; World.Instance.fPlayer.EquipItem(msg.item_id); }