private void OnRecvWorldMarketAttribute(IChannel channel, Message message) { SWorldMarketAttribute msg = message as SWorldMarketAttribute; Debug.Log("OnRecvWorldMarketAttribute"); WorldMarket.world_market_item_name.Clear(); WorldMarket.world_market_item_price.Clear(); WorldMarket.world_market_item_seller.Clear(); WorldMarket.world_market_item_name = msg.world_market_item_name; WorldMarket.world_market_item_seller = msg.world_market_item_seller; WorldMarket.world_market_item_price = msg.world_market_item_price; }
private void OnRecvGetWorldMarket(IChannel channel, Message message) { CGetWorldMarket request = message as CGetWorldMarket; Player player = (Player)channel.GetContent(); var connString = "Host=localhost;Port=5432;Username=postgres;Password=123456;Database=postgres"; SWorldMarketAttribute response = new SWorldMarketAttribute(); Console.WriteLine("Getting world market items"); var conn = new NpgsqlConnection(connString); conn.Open(); var cmd = new NpgsqlCommand("SELECT item_id,item,seller,price,state FROM worldmarket", conn); Console.WriteLine("sql finished"); var reader = cmd.ExecuteReader(); String world_market_item_id; player.world_market_item_name.Clear(); player.world_market_item_price.Clear(); player.world_market_item_seller.Clear(); while (reader.Read()) { if (Convert.ToInt16(reader["state"]) == 0) { world_market_item_id = Convert.ToString(reader["item_id"]); //Console.WriteLine(reader["item_id"]); player.world_market_item_name.Add(world_market_item_id, Convert.ToString(reader["item"])); //Console.WriteLine(reader["item"]); player.world_market_item_seller.Add(world_market_item_id, Convert.ToString(reader["seller"])); //Console.WriteLine(reader["seller"]); player.world_market_item_price.Add(world_market_item_id, Convert.ToInt16(reader["price"])); //Console.WriteLine(reader["price"]); } } reader.Close(); response.world_market_item_name = player.world_market_item_name; response.world_market_item_seller = player.world_market_item_seller; response.world_market_item_price = player.world_market_item_price; channel.Send(response); }
private void OnRecvPlayerEnter(IChannel channel, Message message) { CPlayerEnter request = message as CPlayerEnter; SPlayerAttribute response = new SPlayerAttribute(); Player player = (Player)channel.GetContent(); Scene scene = World.Instance.GetScene(player.scene); // add the player to the scene player.Spawn(); scene.AddEntity(player); Console.WriteLine("SPlayerAttribute response"); response.name = player.user; response.InteligenceValue = player.InteligenceValue; response.SpeedValue = player.SpeedValue; response.LevelValue = player.LevelValue; response.AttackValue = player.AttackValue; response.DefenseValue = player.DefenseValue; response.gold_coins = player.gold_coins; response.silver_coins = player.silver_coins; response.defense_item = player.defense_item; response.attack_item = player.attack_item; response.speed_item = player.speed_item; response.inteligence_item = player.inteligence_item; channel.Send(response); SMarketAttribute market_response = new SMarketAttribute(); Console.WriteLine("Getting market items"); var connString = "Host=localhost;Port=5432;Username=postgres;Password=123456;Database=postgres"; var conn = new NpgsqlConnection(connString); conn.Open(); var cmd = new NpgsqlCommand("SELECT item_name,item_type,item_value,gold_price,silver_price,durable FROM cartitems ", conn); Console.WriteLine("sql finished"); var reader = cmd.ExecuteReader(); //reader.Read(); //int i = 0; String item_name; while (reader.Read()) { /*for (i = 0; i < reader.FieldCount; i++) * { * Console.Write("{0} ", reader[i]); //获得字段名 * }*/ item_name = Convert.ToString(reader["item_name"]); // 获得指定字段的值 //market.item.item_type = Convert.ToString(reader["item_type"]); player.all_item_type.Add(item_name, Convert.ToString(reader["item_type"])); player.all_item_value.Add(item_name, Convert.ToInt16(reader["item_value"])); player.all_gold_price.Add(item_name, Convert.ToInt16(reader["gold_price"])); player.all_silver_price.Add(item_name, Convert.ToInt16(reader["silver_price"])); player.all_item_durable.Add(item_name, Convert.ToString(reader["durable"])); } reader.Close(); //market_response.items = market.items; market_response.all_item_type = player.all_item_type; market_response.all_item_value = player.all_item_value; market_response.all_gold_price = player.all_gold_price; market_response.all_silver_price = player.all_silver_price; market_response.all_item_durable = player.all_item_durable; /*foreach (KeyValuePair<string, short> kvp in market_response.all_gold_price) * { * Console.Write("{0},{1} ", kvp.Key,kvp.Value); * }*/ channel.Send(market_response); SWorldMarketAttribute response2 = new SWorldMarketAttribute(); //Console.WriteLine("Getting world market items"); var conn2 = new NpgsqlConnection(connString); conn2.Open(); var cmd2 = new NpgsqlCommand("SELECT item_id,item,seller,price,state FROM worldmarket", conn2); //Console.WriteLine("sql finished"); var reader2 = cmd2.ExecuteReader(); String world_market_item_id; player.world_market_item_name.Clear(); player.world_market_item_price.Clear(); player.world_market_item_seller.Clear(); while (reader2.Read()) { if (Convert.ToInt16(reader2["state"]) == 0) { world_market_item_id = Convert.ToString(reader2["item_id"]); //Console.WriteLine(reader2["item_id"]); player.world_market_item_name.Add(world_market_item_id, Convert.ToString(reader2["item"])); //Console.WriteLine(reader2["item"]); player.world_market_item_seller.Add(world_market_item_id, Convert.ToString(reader2["seller"])); //Console.WriteLine(reader2["seller"]); player.world_market_item_price.Add(world_market_item_id, Convert.ToInt16(reader2["price"])); //Console.WriteLine(reader2["price"]); } } reader2.Close(); response2.world_market_item_name = player.world_market_item_name; response2.world_market_item_seller = player.world_market_item_seller; response2.world_market_item_price = player.world_market_item_price; channel.Send(response2); SGetSellingInventory response3 = new SGetSellingInventory(); Console.WriteLine("Getting Init Selling Inventory"); var connString3 = "Host=localhost;Port=5432;Username=postgres;Password=123456;Database=postgres"; var conn3 = new NpgsqlConnection(connString3); conn3.Open(); var cmd3 = new NpgsqlCommand(string.Format("SELECT item_id,item FROM worldmarket WHERE seller = '{0}' and state=0;", player.user), conn3); Console.WriteLine("Select selling items finished"); var reader3 = cmd3.ExecuteReader(); string item_name3 = ""; string item_id = ""; while (reader3.Read()) { item_id = Convert.ToString(reader3["item_id"]); item_name3 = Convert.ToString(reader3["item"]); // 获得指定字段的值 player.selling_Inventory.Add(item_id, item_name3); } reader3.Close(); /*foreach (KeyValuePair<string, string> kvp in player.selling_Inventory) * { * Console.WriteLine(kvp.Key + " "+kvp.Value); * }*/ response3.player_selling_Inventory = player.selling_Inventory; channel.Send(response3); }