Beispiel #1
0
        public void Init()
        {
            IsDead = false;

            if (LastSkillUse != null)
            {
                LastSkillUse.Clear();
            }
            else
            {
                LastSkillUse = new Dictionary <byte, DateTime>();
            }

            if (SpawnedMobs != null)
            {
                SpawnedMobs.Clear();
            }
            else
            {
                SpawnedMobs = new Dictionary <int, Mob>();
            }

            MobData data = DataProvider.Mobs[MobID];

            HP           = data.MaxHP;
            MP           = data.MaxMP;
            EXP          = data.EXP;
            Owner        = null;
            Controller   = null;
            AllowedSpeed = (100 + data.Speed) / 100.0f;
            lastMove     = DateTime.Now;
        }
Beispiel #2
0
        private void MateLife()
        {
            Owner?.Session?.SendPacket(GeneratePst());
            if (!IsAlive)
            {
                if (LastDeath.AddMinutes(3) < DateTime.Now)
                {
                    GenerateRevive();
                }
                return;
            }

            if (LastHealth.AddSeconds(IsSitting ? 1.5 : 2) <= DateTime.Now)
            {
                LastHealth = DateTime.Now;
                if (LastDefence.AddSeconds(4) <= DateTime.Now && LastSkillUse.AddSeconds(2) <= DateTime.Now && Hp > 0)
                {
                    Hp += Hp + HealthHpLoad() < HpLoad() ? HealthHpLoad() : HpLoad() - Hp;
                    Mp += Mp + HealthMpLoad() < MpLoad() ? HealthMpLoad() : MpLoad() - Mp;
                }
            }
        }