private void OnRecvMinesGolds(IChannel channel, Message message) { CMinesGolds msg = message as CMinesGolds; Console.WriteLine(string.Format("Start deal death;"));// var conn = db.Instance.Connect(); //Database.Instance.AddGolds(msg.gold_nums, msg.dbid); int nums = db.Instance.GetGoldCoins(msg.Sdbid, conn); int Adbid = -1; //List<int> Players = ; //Player player = new Player(channel); Scene scenes = World.Instance.GetScene("Level1"); Console.WriteLine(string.Format("Start match")); foreach (var tmp in scenes.Players) { Console.WriteLine(string.Format("Read entityID = {0} ", tmp.Value.entityId)); if (tmp.Value.entityId == msg.AentityId) { Adbid = tmp.Value.dbid; break; } } Console.WriteLine("============================="); Console.WriteLine(string.Format("dbid = {0};", Adbid)); if (msg.gold_nums >= nums)//身上的钱足够 { db.Instance.MinesGolds(msg.gold_nums, msg.Sdbid, conn); Console.WriteLine(string.Format("Player {0} Mines nums = {1}", msg.Sdbid, msg.gold_nums)); if (Adbid != -1) { db.Instance.AddGolds(msg.gold_nums, Adbid, conn); db.Instance.DuelLog(Adbid, msg.gold_nums, msg.Sdbid, conn); } else { Console.WriteLine(string.Format("Error to find Attacker!!!!")); } } else { db.Instance.MinesGolds(nums, msg.Sdbid, conn); Console.WriteLine(string.Format("Player {0} Mines nums = {1}", msg.Sdbid, nums)); if (Adbid != -1) { db.Instance.AddGolds(nums, Adbid, conn); db.Instance.DuelLog(Adbid, nums, msg.Sdbid, conn); } else { Console.WriteLine(string.Format("Error to find Attacker!!!!")); } } }
public void Deal_Death() { MessageBox.Show("You dead"); //1.获得打人的id int Aid = World.Instance._deathId; Debug.Log(string.Format("AttackID = {0};", Aid)); //2.是人杀死的id就不是-1 if (Aid != -1) { World.Instance._deathId = -1; int golds; //3.计算战斗金币结算 int sum = 1; foreach (var temp in World.Instance.intelligence) { sum += temp.Value.status; } int basic = 0; int probability = new System.Random().Next(1, 11); if (probability < 8) { basic = new System.Random().Next(10, 200); } else { basic = new System.Random().Next(200, 1000); } golds = (int)(sum * 0.2 * basic); Debug.Log(string.Format("goldnums = {0};", golds)); //4.死亡玩家扣除金币 CMinesGolds smsg = new CMinesGolds(); smsg.Sdbid = World.Instance.selfDbid; smsg.gold_nums = golds; smsg.AentityId = Aid; Debug.Log(string.Format("start send death deal function")); Client.Instance.Send(smsg); //5.最后一击玩家获得金币,同时获得dbid /* * CAddGolds amsg = new CAddGolds(); * amsg.dbid = Aid; * amsg.gold_nums = golds; * Client.Instance.Send(amsg); */ } }