Exemplo n.º 1
0
        public static void PvPInviteResponses(InPacket lea, Client c)
        {
            int CharacterID = lea.ReadInt();
            int Respons     = lea.ReadInt();
            Map map         = MapFactory.GetMap(c.Character.MapX, c.Character.MapY);

            PvPPacket.PvPInviteResponses(c.Character.Competitor.Client, CharacterID, Respons);
            if (Respons == 1)
            {
                PvPPacket.PvPStart(c, c.Character.CharacterID, c.Character.Competitor.CharacterID);
                PvPPacket.PvPStart(c.Character.Competitor.Client, c.Character.CharacterID, c.Character.Competitor.CharacterID);
            }
        }
Exemplo n.º 2
0
        public static void PvPInvite(InPacket lea, Client c)
        {
            int CharacterID = lea.ReadInt();
            Map map         = MapFactory.GetMap(c.Character.MapX, c.Character.MapY);

            foreach (Character chr in map.Characters)
            {
                if (chr.CharacterID == CharacterID)
                {
                    c.Character.Competitor = chr;
                    chr.Competitor         = c.Character;
                    PvPPacket.PvPInvite(chr.Client, CharacterID);
                    break;
                }
            }
        }
Exemplo n.º 3
0
        public static void Char_Damage_Req(InPacket lea, Client c)
        {
            short Damage = lea.ReadShort();
            var   chr    = c.Character;

            if (Damage < 0)
            {
                Damage = short.MaxValue;
            }

            chr.Hp -= Damage;
            if (chr.Hp <= 0)
            {
                chr.IsAlive = false;
                if (!(chr.MapX == 10 && chr.MapY == 60) && !(chr.MapX == 10 && chr.MapY == 61) &&
                    !(chr.MapX == 10 && chr.MapY == 62) && !(chr.MapX == 10 && chr.MapY == 63) &&
                    !(chr.MapX == 10 && chr.MapY == 64))
                {
                    chr.Exp -= (int)(GameConstants.getExpNeededForLevel(chr.Level) * 0.2);
                    if (chr.Exp < 0)
                    {
                        chr.Exp = 0;
                    }
                    StatusPacket.UpdateExp(c);
                }

                MapPacket.userDead(c);
                if (chr.Competitor != null)
                {
                    PvPPacket.PvPEnd(c, chr.Competitor.CharacterID);
                    PvPPacket.PvPEnd(chr.Competitor.Client, chr.Competitor.CharacterID);
                    chr.Competitor            = null;
                    chr.Competitor.Competitor = null;
                }

                chr.Hp = 1;
                chr.Mp = 1;
            }

            StatusPacket.UpdateHpMp(c, chr.Hp, chr.Mp, chr.Fury, chr.MaxFury);
        }