Exemplo n.º 1
0
        public void Cal(RequsetFishData fish_data)
        {
            var normal = _Visitor.Farm.FindDataRoot(_Visitor.FocusBlockName, FarmDataRoot.BufferNode.BUFFER_NAME.NORMAL);

            long dieRate = normal.Buffer.Rate;

            dieRate += normal.TempValueNode.HiLoRate;

            if(_Visitor.PlayerRecord.Status != 0)
            {
                dieRate += 200; // 提高20%
            }

            if(dieRate < 0)
            {
                dieRate = 0;
            }

            dieRate *= 0x0FFFFFFF; // 自然死亡率

            dieRate *= _Request.WeaponData.WeaponOdds; // 子弹威力

            dieRate *= fish_data.HitDieRate;

            dieRate /= 1000;

            dieRate /= fish_data.GetRealOdds(); // 翻倍後鱼的倍数

            dieRate /= 1000; // 死亡率换算回实际百分比

            if(dieRate > 0x0FFFFFFF)
            {
                dieRate = 0x10000000; // > 100%
            }

            fish_data.HitDieRate = dieRate;
        }
Exemplo n.º 2
0
        private void _Record(RequsetFishData fish_data)
        {
            var bet = _Request.WeaponData.GetTotalBet();
            var winScore = fish_data.GetRealOdds() * bet;

            new SaveDeathFishHistory(_Visitor, fish_data, _Request.WeaponData).Run();

            new SaveScoreHistory(_Visitor, winScore).Run();

            new SaveTreasure(_Visitor, fish_data).Run();
        }