Ejemplo n.º 1
0
 public void sendTo3x3AreaLeave(Character character, Area area)
 {
     if (!this.areaExists(area))
     {
         return;
     }
     for (int i = 0; i < 3; i++)
     {
         for (int u = 0; u < 3; u++)
         {
             Area nearCentral = getArea(new int[] { area.getAreaPosition()[0] - 1 + i, area.getAreaPosition()[1] - 1 + u });
             if (nearCentral == null)
             {
                 continue;
             }
             foreach (Character characterAround in nearCentral.getCharacters())
             {
                 if (characterAround == character)
                 {
                     continue;
                 }
                 try {
                     Console.WriteLine("AreaLeave> vanPacket from: {0} for {1}", character.getName(), characterAround.getName());
                     characterAround.getAccount().mClient.WriteRawPacket(CharacterPackets.vanCharPacket(character));
                 } catch (Exception e) { Console.WriteLine(e); }
             }
         }
     }
     character.getArea().removeCharacter(character);
     character.removeInnitedAreas();
     WMap.Instance.removeFromSynchronizedAreas(area);
 }
Ejemplo n.º 2
0
 public void sendTo3x3Area(Character character, Area area, byte[] packet)
 {
     if (!this.areaExists(area))
     {
         return;
     }
     for (int i = 0; i < 3; i++)
     {
         for (int u = 0; u < 3; u++)
         {
             Area nearCentral = getArea(new int[] { area.getAreaPosition()[0] - 1 + i, area.getAreaPosition()[1] - 1 + u });
             if (nearCentral == null)
             {
                 continue;
             }
             foreach (Character characterAround in nearCentral.getCharacters())
             {
                 if (characterAround == character)
                 {
                     continue;
                 }
                 try {
                     Console.WriteLine("Area> Packet sent for {0} from {1}", characterAround.getName(), character.getName());
                     characterAround.getAccount().mClient.WriteRawPacket(packet);
                 } catch (Exception e) { Console.WriteLine(e); }
             }
         }
     }
 }
Ejemplo n.º 3
0
 public Fightable getFightableNear(Area area, int uID)
 {
     for (int i = 0; i < 3; i++)
     {
         for (int u = 0; u < 3; u++)
         {
             Area nearCentral = getArea(new int[] { area.getAreaPosition()[0] - 1 + i, area.getAreaPosition()[1] - 1 + u });
             if (nearCentral == null)
             {
                 continue;
             }
             foreach (Fightable f in nearCentral.getMobs())
             {
                 if (f.getuID() == uID)
                 {
                     return(f);
                 }
             }
             foreach (Fightable f in nearCentral.getCharacters())
             {
                 if (f.getuID() == uID)
                 {
                     return(f);
                 }
             }
         }
     }
     return(null);
 }
Ejemplo n.º 4
0
 public void sendTo3x3AreaRemoveItem(Area area, int uID)
 {
     for (int i = 0; i < 3; i++)
     {
         for (int u = 0; u < 3; u++)
         {
             Area nearCentral = getArea(new int[] { area.getAreaPosition()[0] - 1 + i, area.getAreaPosition()[1] - 1 + u });
             if (nearCentral == null)
             {
                 continue;
             }
             foreach (Character characterAround in nearCentral.getCharacters())
             {
                 try
                 {
                     characterAround.getAccount().mClient.WriteRawPacket(ItemPackets.removeDroppedItemForCharacter(characterAround, uID));
                 }
                 catch (Exception e)
                 {
                     Console.WriteLine(e);
                 }
             }
         }
     }
 }
Ejemplo n.º 5
0
        public void sendTo3x3AreaMovement(Character character, Area area, byte[] packet)
        {
            if (!this.areaExists(area))
            {
                return;
            }
            List <int> relistInnitedAreas = new List <int>();

            for (int i = 0; i < 3; i++)
            {
                for (int u = 0; u < 3; u++)
                {
                    Area nearCentral = getArea(new int[] { area.getAreaPosition()[0] - 1 + i, area.getAreaPosition()[1] - 1 + u });
                    if (nearCentral == null)
                    {
                        continue;
                    }
                    foreach (Character characterAround in nearCentral.getCharacters())
                    {
                        if (characterAround == character)
                        {
                            continue;
                        }
                        if (!character.getInnitedAreas().Contains(nearCentral.getaID()))
                        {
                            characterAround.getAccount().mClient.WriteRawPacket(CharacterPackets.extCharPacket(character));
                        }
                        try {
                            Console.WriteLine("AreaMove> Packet sent for {0} from {1}", characterAround.getName(), character.getName());
                            characterAround.getAccount().mClient.WriteRawPacket(packet);
                        }
                        catch (Exception e) {
                            Console.WriteLine(e);
                        }
                    }
                    if (character.getInnitedAreas().Contains(nearCentral.getaID()))
                    {
                        relistInnitedAreas.Add(nearCentral.getaID());
                        continue;
                    }
                    nearCentral.sendAreaInit(character);
                    relistInnitedAreas.Add(nearCentral.getaID());
                }
            }
            character.removeInnitedAreas();
            character.setInnitedAreas(relistInnitedAreas);
        }
Ejemplo n.º 6
0
 public void sendTo3x3AreaSpawn(Character character, Area area, Boolean just_a_refresh_for_the_world = false)
 {
     if (!this.areaExists(area))
     {
         return;
     }
     character.removeInnitedAreas();
     for (int i = 0; i < 3; i++)
     {
         for (int u = 0; u < 3; u++)
         {
             Area nearCentral = getArea(new int[] { area.getAreaPosition()[0] - 1 + i, area.getAreaPosition()[1] - 1 + u });
             if (nearCentral == null)
             {
                 continue;
             }
             if (!just_a_refresh_for_the_world)
             {
                 nearCentral.sendAreaInit(character);
             }
             foreach (Character characterAround in nearCentral.getCharacters())
             {
                 if (characterAround == character)
                 {
                     continue;
                 }
                 try {
                     Console.WriteLine("AreaSpawn> extCharPacket from: {0} for {1}", character.getName(), characterAround.getName());
                     characterAround.getAccount().mClient.WriteRawPacket(CharacterPackets.extCharPacket(character));
                 }
                 catch (Exception e) {
                     Console.WriteLine(e);
                 }
             }
             character.addInnitedArea(nearCentral.getaID());
             WMap.Instance.addToSynchronizedAreas(area);
         }
     }
 }
Ejemplo n.º 7
0
 public Fightable getFightableNear(Area area, int uID)
 {
     for(int i = 0;i < 3;i++)
     {
         for(int u = 0;u < 3;u++)
         {
             Area nearCentral = getArea(new int[] { area.getAreaPosition()[0] - 1 + i, area.getAreaPosition()[1] - 1 + u });
             if(nearCentral == null)
                 continue;
             foreach(Fightable f in nearCentral.getMobs())
             {
                 if(f.getuID() == uID)
                     return f;
             }
             foreach(Fightable f in nearCentral.getCharacters())
             {
                 if(f.getuID() == uID)
                     return f;
             }
         }
     }
     return null;
 }
Ejemplo n.º 8
0
 public void sendTo3x3AreaSpawn(Character character, Area area, Boolean just_a_refresh_for_the_world = false)
 {
     if(!this.areaExists(area)) return;
     character.removeInnitedAreas();
     for (int i =0; i < 3; i++) {
         for (int u =0; u < 3; u++) {
             Area nearCentral = getArea(new int[] { area.getAreaPosition()[0]-1+i, area.getAreaPosition()[1]-1+u });
             if(nearCentral == null) continue;
             if(!just_a_refresh_for_the_world) nearCentral.sendAreaInit(character);
             foreach(Character characterAround in nearCentral.getCharacters()) {
                 if(characterAround == character) continue;
                 try {
                     Console.WriteLine("AreaSpawn> extCharPacket from: {0} for {1}", character.getName(), characterAround.getName());
                     characterAround.getAccount().mClient.WriteRawPacket(CharacterPackets.extCharPacket(character));
                 }
                 catch(Exception e) {
                     Console.WriteLine(e);
                 }
             }
             character.addInnitedArea(nearCentral.getaID());
             WMap.Instance.addToSynchronizedAreas(area);
         }
     }
 }
Ejemplo n.º 9
0
 public void sendTo3x3AreaRemoveItem(Area area, int uID)
 {
     for(int i = 0;i < 3;i++)
     {
         for(int u = 0;u < 3;u++)
         {
             Area nearCentral = getArea(new int[] { area.getAreaPosition()[0] - 1 + i, area.getAreaPosition()[1] - 1 + u });
             if(nearCentral == null)
                 continue;
             foreach(Character characterAround in nearCentral.getCharacters())
             {
                 try
                 {
                     characterAround.getAccount().mClient.WriteRawPacket(ItemPackets.removeDroppedItemForCharacter(characterAround, uID));
                 }
                 catch(Exception e)
                 {
                     Console.WriteLine(e);
                 }
             }
         }
     }
 }
Ejemplo n.º 10
0
 public void sendTo3x3AreaMovement(Character character, Area area, byte[] packet)
 {
     if(!this.areaExists(area)) return;
     List<int> relistInnitedAreas = new List<int>();
     for (int i =0; i < 3; i++) {
         for (int u =0; u < 3; u++) {
             Area nearCentral = getArea(new int[] { area.getAreaPosition()[0]-1+i, area.getAreaPosition()[1]-1+u });
             if(nearCentral == null) continue;
             foreach(Character characterAround in nearCentral.getCharacters()) {
                 if(characterAround == character)
                     continue;
                 if(!character.getInnitedAreas().Contains(nearCentral.getaID()))
                 {
                     characterAround.getAccount().mClient.WriteRawPacket(CharacterPackets.extCharPacket(character));
                 }
                 try {
                     Console.WriteLine("AreaMove> Packet sent for {0} from {1}", characterAround.getName(), character.getName());
                     characterAround.getAccount().mClient.WriteRawPacket(packet);
                 }
                 catch(Exception e) {
                     Console.WriteLine(e);
                 }
             }
             if(character.getInnitedAreas().Contains(nearCentral.getaID()))
             {
                 relistInnitedAreas.Add(nearCentral.getaID());
                 continue;
             }
             nearCentral.sendAreaInit(character);
             relistInnitedAreas.Add(nearCentral.getaID());
         }
     }
     character.removeInnitedAreas();
     character.setInnitedAreas(relistInnitedAreas);
 }
Ejemplo n.º 11
0
 public void sendTo3x3AreaLeave(Character character, Area area)
 {
     if(!this.areaExists(area)) return;
     for (int i =0; i < 3; i++) {
         for (int u =0; u < 3; u++) {
             Area nearCentral = getArea(new int[] { area.getAreaPosition()[0]-1+i, area.getAreaPosition()[1]-1+u });
             if(nearCentral == null) continue;
             foreach(Character characterAround in nearCentral.getCharacters()) {
                 if(characterAround == character) continue;
                 try {
                     Console.WriteLine("AreaLeave> vanPacket from: {0} for {1}", character.getName(), characterAround.getName());
                     characterAround.getAccount().mClient.WriteRawPacket(CharacterPackets.vanCharPacket(character));
                 } catch (Exception e) { Console.WriteLine(e); }
             }
         }
     }
     character.getArea().removeCharacter(character);
     character.removeInnitedAreas();
     WMap.Instance.removeFromSynchronizedAreas(area);
 }
Ejemplo n.º 12
0
 public void sendTo3x3Area(Character character, Area area, byte[] packet)
 {
     if(!this.areaExists(area)) return;
     for (int i =0; i < 3; i++) {
         for (int u =0; u < 3; u++) {
             Area nearCentral = getArea(new int[] { area.getAreaPosition()[0]-1+i, area.getAreaPosition()[1]-1+u });
             if(nearCentral == null) continue;
             foreach(Character characterAround in nearCentral.getCharacters()) {
                 if(characterAround == character) continue;
                 try {
                     Console.WriteLine("Area> Packet sent for {0} from {1}", characterAround.getName(), character.getName());
                     characterAround.getAccount().mClient.WriteRawPacket(packet);
                 } catch (Exception e) { Console.WriteLine(e); }
             }
         }
     }
 }