public void SendEquipItem(int item_id) { var item = inventory[item_id]; if (wearing.ContainsKey(item.item_type)) { SendChangeItem(wearing[item.item_type].item_id, item_id); return; } //SendUnEquipItem(wearing.Contains) CPlayerEquipItem msg = new CPlayerEquipItem(); msg.item_id = item_id; Client.Instance.Send(msg); }
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(); }