private void OnRecvPlayerAttribute(IChannel channel, Message message) { SPlayerAttribute msg = message as SPlayerAttribute; PlayerInfo.playerId = msg.playerId; PlayerInfo.name = msg.name; PlayerInfo.currentHP = msg.currentHP; PlayerInfo.level = msg.level; PlayerInfo.speed = msg.speed; PlayerInfo.defense = msg.defense; PlayerInfo.attack = msg.attack; PlayerInfo.intelligence = msg.intelligence; PlayerInfo.GoldNum = msg.GoldNum; PlayerInfo.SilverNum = msg.SilverNum; }
private void OnRecvPlayerAttribute(IChannel channel, Message message) { SPlayerAttribute msg = message as SPlayerAttribute; var player = World.Instance.fPlayer; player.base_health = msg.health; player.base_intelligence = msg.intelligence; player.base_defence = msg.defence; player.base_speed = msg.speed; player.base_damage = msg.damage; player.gold = msg.gold; player.silver = msg.silver; player.hp = msg.hp; player.pos = msg.pos; var trans = GameObject.FindObjectOfType <PlayerMyController>().transform; trans.position = new Vector3(msg.pos.x, msg.pos.y, msg.pos.z); }
private void OnRecvPlayerEnter(IChannel channel, Message message) { CPlayerEnter request = message as CPlayerEnter; Player player = (Player)channel.GetContent(); Scene scene = World.Instance.GetScene(player.scene); // add the player to the scene player.Spawn(); scene.AddEntity(player); // send player attributes SPlayerAttribute attrMessage = new SPlayerAttribute() { playerId = player.entityId, name = player.user, currentHP = player.currentHP, level = player.level, intelligence = player.intelligence, speed = player.speed, attack = player.attack, defense = player.defense, GoldNum = player.GoldNum, SilverNum = player.SilverNum }; channel.Send(attrMessage); // add online player OnlinePlayers.Add(player.user, player); // send oneline player to frontend Dictionary <int, string> SendDic = new Dictionary <int, string>(); foreach (KeyValuePair <string, Player> tmp in OnlinePlayers) { SendDic.Add(tmp.Value.entityId, tmp.Key); Console.WriteLine("contains user:{0}", tmp.Key); } SFindFriends response = new SFindFriends() { friends = SendDic }; player.Broadcast(response); // send treasure attributes ConnectDB connect = new ConnectDB(); if (treasureAttributes.Count == 0) { treasureAttributes = new Dictionary <string, DTreasure>(connect.GetTreasureAttri()); } STreasureAttribute treasureAttribute = new STreasureAttribute() { treasureAttri = new Dictionary <string, DTreasure>(treasureAttributes) }; channel.Send(treasureAttribute); // send mall if (backMall.Count == 0) { backMall = new Dictionary <string, DTreasureMall>(connect.DBGetMall()); } SMall mall = new SMall() { goods = new Dictionary <string, DTreasureMall>(backMall) }; channel.Send(mall); // send package SPackage package = new SPackage() { goods = new Dictionary <string, DTreasurePackage>(connect.DBGetPackage(player.user)) }; channel.Send(package); // send friends SFriends friendList = new SFriends() { friends = new List <string>(connect.GetFriends(player.user)) }; channel.Send(friendList); // send friend requests SFindFriendRequests requestList = new SFindFriendRequests() { requests = new List <string>(connect.GetFriendRequest(player.user)) }; channel.Send(requestList); }
private void OnRecvBuy(IChannel channel, Message message) { CBuy request = message as CBuy; Player player = (Player)channel.GetContent(); SPlayerAttribute response = new SPlayerAttribute(); Console.WriteLine("Buying"); Console.WriteLine(request.sum_gold_price); var connString = "Host=localhost;Port=5432;Username=postgres;Password=123456;Database=postgres"; var conn = new NpgsqlConnection(connString); conn.Open(); var cmd = new NpgsqlCommand(string.Format("SELECT gold_coins,silver_coins FROM users WHERE name = '{0}'", player.user), conn); Console.WriteLine("Select finished"); Console.WriteLine(player.user); var reader = cmd.ExecuteReader(); reader.Read(); Console.WriteLine(reader.GetInt16(0)); Console.WriteLine(reader.GetInt16(1)); int remain_gold_coins = reader.GetInt16(0) - request.sum_gold_price; int remain_silver_coins = reader.GetInt16(1) - request.sum_silver_price; reader.Close(); Console.WriteLine(remain_gold_coins); Console.WriteLine(remain_silver_coins); Dictionary <String, int> products = new Dictionary <string, int>(); products = request.products; foreach (KeyValuePair <string, int> kvp in products) { Console.Write("{0},{1} ", kvp.Key, kvp.Value); } if (request.buy_by_gold == 1) { var conn2 = new NpgsqlConnection(connString); conn2.Open(); Console.WriteLine("writing gold_coins"); var cmd2 = new NpgsqlCommand(string.Format("UPDATE users SET gold_coins='{0}' WHERE name = '{1}';", remain_gold_coins, player.user), conn2); var reader2 = cmd2.ExecuteReader(); reader2.Read(); Console.WriteLine("write coins finished"); ClientTipInfo(channel, string.Format("Bought successfully,your remainning gold_coin is {0}", remain_gold_coins)); player.gold_coins = remain_gold_coins; reader2.Close(); } else if (request.buy_by_silver == 1) { var conn2 = new NpgsqlConnection(connString); conn2.Open(); Console.WriteLine("writing silver_coins"); var cmd2 = new NpgsqlCommand(string.Format("UPDATE users SET silver_coins='{0}' WHERE name = '{1}';", remain_silver_coins, player.user), conn2); var reader2 = cmd2.ExecuteReader(); reader2.Read(); Console.WriteLine("write coins finished"); ClientTipInfo(channel, string.Format("Bought successfully,your remainning silver_coin is {0}", remain_silver_coins)); player.silver_coins = remain_silver_coins; reader2.Close(); } Console.WriteLine("writing products"); foreach (KeyValuePair <string, int> kvp in products) { Console.WriteLine("iterating"); int current_num = 0; var conn3 = new NpgsqlConnection(connString); conn3.Open(); var cmd3 = new NpgsqlCommand(string.Format("SELECT item_num FROM users_items WHERE item_name = '{0}'and user_name='{1}';", kvp.Key, player.user), conn3); Console.WriteLine("conn3 select"); var reader3 = cmd3.ExecuteReader(); int count = 0; while (reader3.Read()) { count++; current_num = reader3.GetInt16(0); } reader3.Close(); Console.WriteLine(count); if (count != 0) { Console.WriteLine("if 1"); Console.WriteLine(current_num); var conn4 = new NpgsqlConnection(connString); conn4.Open(); var cmd4 = new NpgsqlCommand(string.Format("update users_items set item_num=item_num+{0} where user_name='{1}'and item_name='{2}';", kvp.Value, player.user, kvp.Key), conn4); var reader4 = cmd4.ExecuteReader(); reader4.Read(); reader4.Close(); Console.WriteLine("success if 1"); } else { Console.WriteLine("if 2"); var conn4 = new NpgsqlConnection(connString); conn4.Open(); var cmd4 = new NpgsqlCommand(string.Format("INSERT INTO users_items VALUES ('{0}','{1}',{2});", kvp.Key, player.user, kvp.Value), conn4); var reader4 = cmd4.ExecuteReader(); reader4.Read(); reader4.Close(); Console.WriteLine("success if 2"); } } Console.WriteLine("write products finished"); 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; channel.Send(response); }
private void OnRecvPlayerAttribute(IChannel channel, Message message) { //MyNetwork network = GameObject.FindObjectOfType<MyNetwork>(); //GameStart startup = GameObject.FindObjectOfType<GameStart>(); SPlayerAttribute msg = message as SPlayerAttribute; Attribute.name = msg.name; Attribute.InteligenceValue = msg.InteligenceValue; Attribute.SpeedValue = msg.SpeedValue; Attribute.LevelValue = msg.LevelValue; Attribute.AttackValue = msg.AttackValue; Attribute.DefenseValue = msg.DefenseValue; Attribute.gold_coins = msg.gold_coins; Attribute.silver_coins = msg.silver_coins; Attribute.inteligence_item = msg.inteligence_item; Attribute.speed_item = msg.speed_item; Attribute.defense_item = msg.defense_item; Attribute.attack_item = msg.attack_item; //GameObject.FindObjectOfType<CoinsUI>().GValue.SetText(Convert.ToString(Gamekit3D.Attribute.gold_coins), true); //GameObject.FindObjectOfType<CoinsUI>().SValue.SetText(Convert.ToString(Gamekit3D.Attribute.silver_coins), true); if (Attribute.defense_item != "0") { Sprite defense_icon = GetAllIcons.icons[Attribute.defense_item]; GameObject.Find("DefenseImage").GetComponent <Image>().sprite = defense_icon; } if (Attribute.defense_item.Equals("0")) { GameObject.Find("DefenseImage").GetComponent <Image>().sprite = null; } if (Attribute.inteligence_item != "0") { Sprite in_icon = GetAllIcons.icons[Attribute.inteligence_item]; GameObject.Find("InteligenceImage").GetComponent <Image>().sprite = in_icon; } if (Attribute.inteligence_item == "0") { GameObject.Find("InteligenceImage").GetComponent <Image>().sprite = null; } if (Attribute.attack_item != "0") { Sprite attack_icon = GetAllIcons.icons[Attribute.attack_item]; GameObject.Find("AttackImage").GetComponent <Image>().sprite = attack_icon; } if (Attribute.attack_item == "0") { GameObject.Find("AttackImage").GetComponent <Image>().sprite = null; } if (Attribute.speed_item != "0") { Sprite speed_icon = GetAllIcons.icons[Attribute.speed_item]; GameObject.Find("SpeedImage").GetComponent <Image>().sprite = speed_icon; } if (Attribute.speed_item == "0") { GameObject.Find("SpeedImage").GetComponent <Image>().sprite = null; } }
private void OnRecvUnapply(IChannel channel, Message message) { CUnapply request = message as CUnapply; SPlayerAttribute response = new SPlayerAttribute(); //SGetInventory response2 = new SGetInventory(); Player player = (Player)channel.GetContent(); string item_name = request.to_unapply; int item_value = player.all_item_value[item_name]; string item_type = player.all_item_type[item_name]; var connString = "Host=localhost;Port=5432;Username=postgres;Password=123456;Database=postgres"; var sqlstring = ""; var sqlstring2 = ""; if (item_type.Equals("defense")) { Console.WriteLine("if defense"); player.defense_item = "0"; sqlstring = string.Format("update users set {0}={1}-{2} where name='{3}';", item_type, player.DefenseValue, item_value, player.user); sqlstring2 = string.Format("update users set defense_item='0' WHERE name='{0}'", player.user); } if (item_type.Equals("attack")) { Console.WriteLine("if attack"); player.attack_item = "0"; sqlstring = string.Format("update users set {0}={1}-{2} where name='{3}';", item_type, player.AttackValue, item_value, player.user); sqlstring2 = string.Format("update users set defense_item='0' WHERE name='{0}'", player.user); } if (item_type.Equals("inteligence")) { Console.WriteLine("if inteligence"); player.inteligence_item = "0"; sqlstring = string.Format("update users set {0}={1}-{2} where name='{3}';", item_type, player.InteligenceValue, item_value, player.user); sqlstring2 = string.Format("update users set defense_item='0' WHERE name='{0}'", player.user); } if (item_type.Equals("speed")) { Console.WriteLine("if speed"); player.speed_item = "0"; sqlstring = string.Format("update users set {0}={1}-{2} where name='{3}';", item_type, player.SpeedValue, item_value, player.user); sqlstring2 = string.Format("update users set defense_item='0' WHERE name='{0}'", player.user); } var conn = new NpgsqlConnection(connString); conn.Open(); var cmd = new NpgsqlCommand(sqlstring, conn); var reader = cmd.ExecuteReader(); reader.Read(); reader.Close(); var conn5 = new NpgsqlConnection(connString); conn5.Open(); var cmd5 = new NpgsqlCommand(sqlstring2, conn5); var reader5 = cmd5.ExecuteReader(); reader5.Read(); reader5.Close(); Console.WriteLine(" item and attribute update finished"); var conn2 = new NpgsqlConnection(connString); conn2.Open(); var cmd2 = new NpgsqlCommand(string.Format("SELECT password,Inteligence,Speed,Level,Attack,Defense,gold_coins,silver_coins,defense_item,attack_item,speed_item,inteligence_item FROM users WHERE name = '{0}';", player.user), conn2); var reader2 = cmd2.ExecuteReader(); reader2.Read(); player.InteligenceValue = Convert.ToString(reader2.GetInt16(1)); player.SpeedValue = Convert.ToString(reader2.GetInt16(2)); player.LevelValue = Convert.ToString(reader2.GetInt16(3)); player.AttackValue = Convert.ToString(reader2.GetInt16(4)); player.DefenseValue = Convert.ToString(reader2.GetInt16(5)); player.gold_coins = reader2.GetInt16(6); player.silver_coins = reader2.GetInt16(7); player.defense_item = reader2.GetString(8); player.attack_item = reader2.GetString(9); player.speed_item = reader2.GetString(10); player.inteligence_item = reader2.GetString(11); Console.WriteLine("sending response"); 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.speed_item = player.speed_item; response.attack_item = player.attack_item; response.defense_item = player.defense_item; response.inteligence_item = player.inteligence_item; reader2.Close(); Console.WriteLine("update finished"); channel.Send(response); ClientTipInfo(channel, "Unapplied successfully"); }
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); }
private void OnRecvApply(IChannel channel, Message message) { CApply request = message as CApply; SPlayerAttribute response = new SPlayerAttribute(); SGetInventory response2 = new SGetInventory(); Player player = (Player)channel.GetContent(); Console.WriteLine("Applying"); Console.WriteLine(request.to_apply); int item_value = 0; int current_defense_item_value = 0; int current_attack_item_value = 0; int current_speed_item_value = 0; int current_inteligence_item_value = 0; String item_type = ""; String if_durable = ""; foreach (KeyValuePair <string, int> kvp in player.all_item_value) { if (kvp.Key.Equals(request.to_apply)) { item_value = kvp.Value; Console.WriteLine(item_value); } if (kvp.Key.Equals(player.defense_item)) { current_defense_item_value = kvp.Value; } if (kvp.Key.Equals(player.attack_item)) { current_attack_item_value = kvp.Value; } if (kvp.Key.Equals(player.speed_item)) { current_speed_item_value = kvp.Value; } if (kvp.Key.Equals(player.inteligence_item)) { current_inteligence_item_value = kvp.Value; } } foreach (KeyValuePair <string, string> kvp in player.all_item_type) { if (kvp.Key.Equals(request.to_apply)) { item_type = kvp.Value; Console.WriteLine(item_type); } } foreach (KeyValuePair <string, string> kvp in player.all_item_durable) { if (kvp.Key.Equals(request.to_apply)) { if_durable = kvp.Value; Console.WriteLine(if_durable); } } var connString = "Host=localhost;Port=5432;Username=postgres;Password=123456;Database=postgres"; var sqlstring = ""; var sqlstring2 = ""; if (if_durable.Equals("1")) { Console.WriteLine("not durable"); if (item_type.Equals("defense")) { Console.WriteLine("if defense"); sqlstring = string.Format("update users set {0}={1}+{2} where name='{3}';", item_type, player.DefenseValue, item_value, player.user); Console.WriteLine(sqlstring); } if (item_type.Equals("attack")) { Console.WriteLine("if attack"); sqlstring = string.Format("update users set {0}={1}+{2} where name='{3}';", item_type, player.AttackValue, item_value, player.user); } if (item_type.Equals("inteligence")) { Console.WriteLine("if inteligence"); sqlstring = string.Format("update users set {0}={1}+{2} where name='{3}';", item_type, player.InteligenceValue, item_value, player.user); } if (item_type.Equals("speed")) { Console.WriteLine("if speed"); sqlstring = string.Format("update users set {0}={1}+{2} where name='{3}';", item_type, player.SpeedValue, item_value, player.user); } var conn3 = new NpgsqlConnection(connString); conn3.Open(); var cmd3 = new NpgsqlCommand(string.Format("update users_items set item_num=item_num-1 where user_name='{0}'and item_name='{1}';", player.user, request.to_apply), conn3); var reader3 = cmd3.ExecuteReader(); reader3.Read(); reader3.Close(); Console.WriteLine("update item number finished"); } else if (if_durable.Equals("n")) { Console.WriteLine("if durable"); if (item_type.Equals("defense")) { Console.WriteLine("if defense"); player.defense_item = request.to_apply; sqlstring = string.Format("update users set {0}={1}-{2}+{3} where name='{4}';", item_type, player.DefenseValue, current_defense_item_value, item_value, player.user); sqlstring2 = string.Format("update users set defense_item='{0}' WHERE name='{1}'", request.to_apply, player.user); } if (item_type.Equals("attack")) { Console.WriteLine("if attack"); player.attack_item = request.to_apply; sqlstring = string.Format("update users set {0}={1}-{2}+{3} where name='{4}';", item_type, player.AttackValue, current_attack_item_value, item_value, player.user); sqlstring2 = string.Format("update users set attack_item='{0}' WHERE name='{1}'", request.to_apply, player.user); } if (item_type.Equals("inteligence")) { Console.WriteLine("if inteligence"); player.inteligence_item = request.to_apply; sqlstring = string.Format("update users set {0}={1}-{2}+{3} where name='{4}';", item_type, player.InteligenceValue, current_inteligence_item_value, item_value, player.user); sqlstring2 = string.Format("update users set inteligence_item='{0}' WHERE name='{1}'", request.to_apply, player.user); } if (item_type.Equals("speed")) { Console.WriteLine("if speed"); player.speed_item = request.to_apply; sqlstring = string.Format("update users set {0}={1}-{2}+{3} where name='{4}';", item_type, player.SpeedValue, current_speed_item_value, item_value, player.user); sqlstring2 = string.Format("update users set speed_item='{0}' WHERE name='{1}'", request.to_apply, player.user); } } var conn = new NpgsqlConnection(connString); conn.Open(); var cmd = new NpgsqlCommand(sqlstring, conn); var reader = cmd.ExecuteReader(); reader.Read(); reader.Close(); var conn5 = new NpgsqlConnection(connString); conn5.Open(); var cmd5 = new NpgsqlCommand(sqlstring2, conn5); var reader5 = cmd5.ExecuteReader(); reader5.Read(); reader5.Close(); Console.WriteLine("update finished"); var conn2 = new NpgsqlConnection(connString); conn2.Open(); var cmd2 = new NpgsqlCommand(string.Format("SELECT password,Inteligence,Speed,Level,Attack,Defense,gold_coins,silver_coins,defense_item,attack_item,speed_item,inteligence_item FROM users WHERE name = '{0}';", player.user), conn2); var reader2 = cmd2.ExecuteReader(); reader2.Read(); player.InteligenceValue = Convert.ToString(reader2.GetInt16(1)); player.SpeedValue = Convert.ToString(reader2.GetInt16(2)); player.LevelValue = Convert.ToString(reader2.GetInt16(3)); player.AttackValue = Convert.ToString(reader2.GetInt16(4)); player.DefenseValue = Convert.ToString(reader2.GetInt16(5)); player.gold_coins = reader2.GetInt16(6); player.silver_coins = reader2.GetInt16(7); player.defense_item = reader2.GetString(8); player.attack_item = reader2.GetString(9); player.speed_item = reader2.GetString(10); player.inteligence_item = reader2.GetString(11); Console.WriteLine("sending response"); 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.speed_item = player.speed_item; response.attack_item = player.attack_item; response.defense_item = player.defense_item; response.inteligence_item = player.inteligence_item; reader2.Close(); Console.WriteLine("update finished"); channel.Send(response); player.Inventory.Clear(); var conn4 = new NpgsqlConnection(connString); conn4.Open(); var cmd4 = new NpgsqlCommand(string.Format("SELECT item_name,item_num from users_items WHERE user_name = '{0}'", player.user), conn4); var reader4 = cmd4.ExecuteReader(); String item_name; while (reader4.Read()) { item_name = Convert.ToString(reader4["item_name"]); // 获得指定字段的值 player.Inventory.Add(item_name, Convert.ToInt16(reader4["item_num"])); } reader4.Close(); response2.player_Inventory = player.Inventory; channel.Send(response2); ClientTipInfo(channel, "Applied successfully"); }
private void OnRecvPlayerEnter(IChannel channel, Message message) { CPlayerEnter request = message as CPlayerEnter; SOtherPlayerEnter broundcast = new SOtherPlayerEnter(); Player player = (Player)channel.GetContent(); Scene scene = World.Instance.GetScene(player.scene); // add the player to the scene // broadcast a new player to all players broundcast.user = player.token; broundcast.id = player.entityId; broundcast.scene = player.scene; World.Instance.Broundcast(broundcast); // return all players online SOnlinePlayers onlinePlayers = new SOnlinePlayers(); List <string> names = new List <string>(); List <int> ids = new List <int>(); List <string> scenes_ = new List <string>(); var scenes = World.Instance.Scenes; foreach (KeyValuePair <string, Scene> kv in scenes) { foreach (KeyValuePair <int, Player> p in kv.Value.Players) { names.Add(p.Value.token); ids.Add(p.Value.entityId); scenes_.Add(p.Value.scene); } } onlinePlayers.users = names.ToArray(); onlinePlayers.ids = ids.ToArray(); onlinePlayers.scenes = scenes_.ToArray(); channel.Send(onlinePlayers); // get attributes SPlayerAttribute attribute = new SPlayerAttribute(); var attr_reader = GameDataBase.SQLQuery(string.Format( "Select gold, silver, speed, damage, intelligence, defence, health, hp, pos_x, pos_y, pos_z From Player where player_id={0};", player.player_id )); attr_reader.Read(); attribute.gold = attr_reader.GetInt32(0); attribute.silver = attr_reader.GetInt32(1); attribute.speed = attr_reader.GetInt32(2); attribute.damage = attr_reader.GetInt32(3); attribute.intelligence = attr_reader.GetInt32(4); attribute.defence = attr_reader.GetInt32(5); attribute.health = attr_reader.GetInt32(6); attribute.hp = attr_reader.GetInt32(7); attribute.pos.x = attr_reader.GetFloat(8); attribute.pos.y = attr_reader.GetFloat(9); attribute.pos.z = attr_reader.GetFloat(10); channel.Send(attribute); // get all items SPlayerInventory inventory = new SPlayerInventory(); var reader = GameDataBase.SQLQuery(string.Format( "Select * From Item Where player_id={0} And status!='Drop';", player.player_id )); List <DItem> items = new List <DItem>(); while (reader.Read()) { var item = new DItem(); item.item_id = reader.GetInt32(0); item.status = (ItemStatus)System.Enum.Parse(typeof(ItemStatus), reader.GetString(2)); item.name = reader.GetString(3); item.health_value = reader.GetInt32(4); item.speed_value = reader.GetInt32(5); item.damage_value = reader.GetInt32(6); item.intelligence_value = reader.GetInt32(7); item.defence_value = reader.GetInt32(8); item.icon_name = reader.GetString(9); item.item_type = (ItemType)System.Enum.Parse(typeof(ItemType), reader.GetString(10)); item.silver_value = reader.GetInt32(11); if (item.status != ItemStatus.Drop) { items.Add(item); } } reader.Close(); inventory.dItems = items.ToArray(); channel.Send(inventory); System.Console.WriteLine("{0} Enter", player.token); System.Console.WriteLine("Get items {0}", items.Count); player.Position = Entity.V3ToPoint3d(attribute.pos); player.Spawn(); player.maxHP = attribute.health; player.currentHP = attribute.hp; player.base_damage = attribute.damage; player.base_speed = attribute.speed; player.base_health = attribute.health; player.base_intelligence = attribute.intelligence; player.base_defence = attribute.defence; foreach (var ditem in items) { switch (ditem.status) { case ItemStatus.Storing: player.inventory.Add(ditem.item_id, ditem); break; case ItemStatus.Selling: player.selling.Add(ditem.item_id, ditem); break; case ItemStatus.Using: player.wearing.Add(ditem.item_type, ditem); break; } } player.refreshAttr(); player.currentHP = attribute.hp; scene.AddEntity(player); // send triger status STrigerStatus sTriger = new STrigerStatus(); sTriger.doors = new Door[World.Instance.Doors.Values.Count]; World.Instance.Doors.Values.CopyTo(sTriger.doors, 0); sTriger.pressurePads = new PressurePad[World.Instance.PressurePads.Count]; World.Instance.PressurePads.Values.CopyTo(sTriger.pressurePads, 0); sTriger.switchCrystals = new SwitchCrystal[World.Instance.SwitchCrystals.Count]; World.Instance.SwitchCrystals.Values.CopyTo(sTriger.switchCrystals, 0); channel.Send(sTriger); }