示例#1
0
        public override bool TakeDamage(Living source, ref int damageAmount, ref int criticalAmount, int type, int delay)
        {
            bool result = false;
            bool result2;

            if (this.Blood > 0)
            {
                if (type == 0)
                {
                    this.OnBeforeTakedDamage(source, ref damageAmount, ref criticalAmount, delay);
                    this.StartAttacked();
                }
                WorldBossMgr.TakeDamage(damageAmount + criticalAmount, Game.FindRandomPlayer().PlayerDetail.GamePlayerId);
                if (this.m_syncAtTime)
                {
                    {
                        this.m_game.SendGameUpdateHealth(this, 1, damageAmount + criticalAmount);
                    }
                }
                this.OnAfterTakedDamage(source, damageAmount, criticalAmount, delay);
                if (this.Blood <= 0)
                {
                    this.Die();
                }
                source.OnAfterKillingLiving(this, damageAmount, criticalAmount, delay);
                result = true;
            }
            else
            {
                this.Die();
            }
            result2 = result;
            return(result2);
        }
        public override int HandlePacket(GamePlayer player, GSPacketIn packet)
        {
            int a = packet.ReadInt();

            //just for debug
            // if (false)
            if (!WorldBossMgr.CanJoin)
            {
                player.Out.SendMessage(eMessageType.Normal, "世界Boss尚未开放");
                // player.Out.SendMessage(eMessageType.Normal, "世界Boss尚未开放,世界boss只于每天10点、14点、20点开放,并于击杀后结束");
            }
            else
            {
                WorldBossMgr.AddPlayer(player);
                player.Out.SendEnterWorldBossRoom(player);
            }
            return(0);
        }