GetStat() public method

public GetStat ( string stat, bool bas = false ) : ushort
stat string
bas bool
return ushort
コード例 #1
0
ファイル: FSofdk.cs プロジェクト: hsnks100/LakingServer
 public int Proc(Player player, script.monster.Monster mob, Player play = null)
 {
     int take = 0;
     Point2D targetLoc = (play != null) ? play.Loc : mob.m_Loc;
     if (Util.Dice(1, 100, 0) <= ((Stage < 7) ? 7 : 11))
     {
         take += Util.Dice(((player.GetStat("str") + player.GetStat("dex")) / 1000), 50, (player.GetStat("str") + player.GetStat("dex")) / 32);
         int mobile = Serial.NewMobile;
         World.SendToAll(new QueDele(player.Map, new CreateMagicEffect(mobile, 1, (short)targetLoc.X, (short)targetLoc.Y, new byte[] { 4, 0, 0, 0, 0, 0, 0, 0, 0, 16 }, 0).Compile()));
         var tmp = new QueDele(LKCamelot.Server.tickcount.ElapsedMilliseconds + 1300, player.m_Map, new DeleteObject(mobile).Compile());
         tmp.tempser = mobile;
         World.TickQue.Add(tmp);
     }
     return take;
 }
コード例 #2
0
ファイル: KVSword.cs プロジェクト: sepharoph/LK2
 public int Proc(Player player, script.monster.Monster mob, Player play = null)
 {
     int take = 0;
     Point2D targetLoc = (play != null) ? play.Loc : mob.m_Loc;
     if (Util.Dice(1, 100, 0) <= (Stage < 7 ? 10 : 14))
     {
         take += Util.Dice((player.GetStat("str") / 1000), 50, player.GetStat("str") / 16);
         int mobile = Serial.NewMobile;
         World.SendToAll(new QueDele(player.Map, new CreateMagicEffect(mobile, 1, (short)targetLoc.X, (short)targetLoc.Y, new byte[] { 4, 0, 0, 0, 0, 0, 0, 0, 0, 110 }, 0).Compile()));
         var tmp = new QueDele(System.Environment.TickCount + 1300, player.m_Map, new DeleteObject(mobile).Compile());
         tmp.tempser = mobile;
         World.TickQue.Add(tmp);
     }
     return take;
 }
コード例 #3
0
ファイル: Packets.cs プロジェクト: hsnks100/LakingServer
 public UpdateCharStats(Player player)
     : base(0x14)
 {
     m_Stream.Write(Util.checkUShort((uint)player.HPCur));
     m_Stream.Write(Util.checkUShort((uint)player.HP));
     m_Stream.Write(Util.checkUShort((uint)player.MPCur));
     m_Stream.Write(Util.checkUShort((uint)player.MP));
     m_Stream.Write(Util.checkUShort(player.GetStat("str", true)));
     m_Stream.Write(Util.checkUShort(player.GetStat("men", true)));
     m_Stream.Write(Util.checkUShort(player.GetStat("dex", true)));
     m_Stream.Write(Util.checkUShort(player.GetStat("vit", true)));
     m_Stream.Write(Util.checkUShort(player.GetStat("str")));
     m_Stream.Write(Util.checkUShort(player.GetStat("men")));
     m_Stream.Write(Util.checkUShort(player.GetStat("dex")));
     m_Stream.Write(Util.checkUShort(player.GetStat("vit")));
     m_Stream.Write(Util.checkUShort((uint)player.AC));
     m_Stream.Write(Util.checkUShort((uint)player.Hit));
     m_Stream.Write(Util.checkUShort((uint)player.Dam));
     m_Stream.Write(Util.checkUShort(player.Extra));
 }
コード例 #4
0
ファイル: Monster.cs プロジェクト: sepharoph/LK2
        public virtual void TakeDamage(Player player, script.spells.Spell spell)
        {
            float h = ((float)player.Hit / ((float)player.Hit + (float)Hit)) * 200;

            if (h >= 100 || new Random().Next(0, 100) < (int)h)
            {
                int take = spell.DamBase + (spell.DamPl * spell.Level);// + (spell.DamPl * spell.SLevel2);
                if (spell.ManaCostPl != 0)
                    take += (player.GetStat("men") / spell.menCoff);
                if (spell is script.spells.DemonDeath)
                    take = Convert.ToInt32(player.HP * 0.5) + player.GetStat("dex");

                HPCur -= (take - AC);
                World.SendToAll(new QueDele(m_Map, new HitAnimation(m_Serial,
                   Convert.ToByte(((((float)m_HPCur / (float)HP) * 100) * 1))).Compile()));

                if (HPCur <= 0)
                {
                    if (player.Promo > 0)
                    {
                        var temp = XP;
                        int y = player.Promo >= 7 ? 2 : 1;
                        for (int x = 0; x < y; x++)
                            temp = (int)(temp * 0.1);

                        player.XP += temp * XPMulti;
                    }
                    else
                        player.XP += XP * XPMulti;
                    DropLoot(player);
                    m_Loc.X = m_SpawnLoc.X;
                    m_Loc.Y = m_SpawnLoc.Y;
                }
            }
        }
コード例 #5
0
ファイル: CastHandler.cs プロジェクト: vans163/LKEmu
        public void TakeDamage(Player caster, Player target, script.spells.Spell spell)
        {
            float h = ((float)caster.Hit / ((float)caster.Hit + (float)target.Hit)) * 200;

            if (h >= 100 || new Random().Next(0, 100) < (int)h)
            {
                int take = spell.DamBase + (spell.DamPl * spell.Level);// +(spell.DamPl * spell.SLevel2);
                if (spell.ManaCostPl != 0)
                {
                    take += (caster.GetStat("men") / spell.menCoff);
                    take += (caster.GetStat("str") / spell.strCoff);
                    take += (caster.GetStat("dex") / spell.dexCoff);
                }
                if (spell is script.spells.DemonDeath)
                    take = Convert.ToInt32(caster.HP * 0.5) + caster.GetStat("dex");

                if (target.Color == 0)
                    caster.pkpinkktime = Server.tickcount.ElapsedMilliseconds;

                target.HPCur -= (take - target.AC);
                if (target.Map == "Rest" && target.Color != 1)
                {
                    caster.pklastpk.Add(Server.tickcount.ElapsedMilliseconds);
                    caster.pklastred = Server.tickcount.ElapsedMilliseconds;
                }
                World.SendToAll(new QueDele(caster.m_Map, new HitAnimation(target.Serial,
                   Convert.ToByte(((((float)target.m_HPCur / (float)target.HP) * 100) * 1))).Compile()));
            }
        }