Exemplo n.º 1
0
        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!!!!"));
                }
            }
        }
Exemplo n.º 2
0
    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);
             */
        }
    }