Jump to content

Recommended Posts

Posted

Complete Guide to Fractals of the Mists

 
gw2-fractals-guide.png

With Fractals out for as long as they have been it was warranted that we took another close look at them and offer a new complete guide. Here you'll find explanations of Agony, Ascended Gear, Infusions and Fractal Relics. Everything to prepare you for the Fractals, face the Jade Maw without fear and gather all your well earned rewards without ever meeting a surprise. 

FractalGate_0.jpg

I. Fractal Levels, Difficulty and Agony

Fractals are unique in that they are a dungeon with a difficulty that scales the more times you fully complete it. Unique things happen to bosses the higher the difficulty is and the overall difficulty of the ordinary mobs rise with each level as well. As such, when forming a party for Fractals it is very important to note who the party leader is. The party leader will control how difficult the over-all fractal settings will be, and can assign what the level of the fractal is. However, this does not effect your personal level rising so long as it is lower than, or equal to, the difficulty level decided by the leader of the party. For example, if the overall Fractal difficulty is 10, and your difficulty is 2, you will be fighting mobs and bosses of level 10 difficulty; but, when you complete the fractals your level will still rise to 3.

NewFractalLevels_1.jpg

Fractal levels are still very important to every player, though. A level 1 Fractal player will not want to group up with a Level 30 Fractal Group, as a thing called Agony will be in play. At level 10 and every ten levels there after the bosses will be able to inflict a condition called Agony. This condition will drain a percentage of the player's health as well as reduce healing the player receives by 50%. The percentage of damage Agony inflicts will increase the higher in difficulty you go in Fractals. However, these is Agony Resistance you can get to apply to various Ascended Items in order to mitigate this damage.

II. Fractals

Currently there are nine fractals to go through, with one of these nine (Solid Ocean) only being able to be accessed every even level of fractal difficulty. Each time you and your party goes through the Fractals the game will decide randomly which three you will have to face, with a fourth always being Solid Ocean on every even Fractal Difficulty.

  • Aquatic Ruins
  • Cliffside
  • Snowblind
  • Solid Ocean
  • Swampland
  • Underground Facility
  • Urban Battlegrounds
  • Volcanic
  • Uncategorized

Some of these Fractals will have multiple paths of completion that will be chosen by the AI when you enter the Fractal. For instance there are two paths in Aquatic Ruins in order to get to the Jellyfish Boss, but the AI will decide which way you have to go; or, in Swampland there will be two different bosses to face and the AI will decide which ones.

III. Rewards

When going through the Fractals occasionally an item of ascended rarity will drop from various mobs, depending on your Fractal Difficulty. 0-9 there will be Vials of Condensed Mists Essence, 10-19 will be Globs of Coagulated Mists Essence and finally form 20 on will be Shards of Crystallized Mists Essence. These Mists Essences are used to craft and infuse Ascended Tier equipment which will be covered more later.

VoCME_0.jpg

When completing a Fractal there will be a chest that spawn after you defeat the boss. Among getting various random rolled loot, you will get Fractal Relics equivalent to differing tiers of Fractal Difficulty you are in. These Relics are used to purchase various items from BUY-4373 in Mistlock Observatory. Additionally, when you complete an even Fractal level once a day you will acquire a daily chest in the form of that like of the daily achievement reward. This chest will have fractal relics in it. When you reach level 10 fractals, however, the daily fractal chest will start to reward you with Pristine Fractal Relics which are used to purchase from a different tab of items from BUY-4373.

FractalShop.jpg FractalShop2.jpg

IV. Ascended Items and Infusions

With fractals came a new tier of equipment: Ascended. It's higher than Exotic in terms of stats, offer a new customization slot called “Infusions” and offer higher numbered stats. These items are limited to trinkets and are considered Unique, meaning only one of each named piece can be equipped (For example: You can't equip two Rings of Red Death, but you can equip Ring of Red Death and Bagh Nakh).

Now there are a few methods to gather these Ascended items. You can complete 10+ Difficulty level Fractals and the chests have a chance to drop rings, the laurels you gain from dailies and monthlies can be used to purchase all sorts of Ascended trinkets, the Buy-4373 merchant can sell some for Pristine Fractal Relics, Guild Commendations can be used and finally you can use Vial of Condensed Mists to make some.

DefensiveInfusion.jpg

Now another thing to mention is Infusions. Infusions are largely purchased through Laurel Merchants and with Fractal Relics and for most of them their key feature is Agony resistance which comes in bonuses of +5. Each piece of Ascended equipment offers and Infusion slot that is either Offensive or Defensive, and you have to match an infusion with a similar description. The exclusion to this are Omni Infusions that are made almost exclusively with Passion Flowers and various other tier 6 materials in the Mystic Forge.

V. Beta Capacitors

One thing of special note are Prototype Fractal Capacitors. One of the exotic back pieces found within the selection from BUY-4373. This item can be upgraded three times, with the assistance of Gifts of Ascension. These items are very heavy investments, but end up with an inherent bonus of +5 Agony Resistance. So it can be worthwhile to pursue if you wish to push for truly high levels of Fractal Difficulty.

 
 

 

  • Upvote 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Posts

    • hello, i want to wtt my charracter in l2elmorelab 1x harbor for 1.5kkk adena in l2reborn 10x new. Or if you interested tell me your offer. :)) Clean Mail 30 lvl Cleric Naked   Updated.
    • package ai.npc.NFWalker; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Random; import l2r.gameserver.enums.CtrlIntention; import l2r.gameserver.model.Location; import l2r.gameserver.model.actor.L2Npc; import l2r.gameserver.model.quest.Quest; import l2r.gameserver.network.clientpackets.Say2; import l2r.gameserver.network.serverpackets.NpcSay; public class NFWalkerAI extends Quest { private static final int WALKER_NPC_ID = 20116; private final Map<String, Route> routes = new HashMap<>(); private final Map<Integer, Integer> npcIndexes = new HashMap<>(); private final Map<Integer, Boolean> npcReverse = new HashMap<>(); private final Map<Integer, String> npcCurrentRoute = new HashMap<>(); public NFWalkerAI() { super(-1, NFWalkerAI.class.getSimpleName(), "ai/npc/NFWalker"); loadRoutes(); addSpawnId(WALKER_NPC_ID); } private void loadRoutes() { // Route 1 Data Route route1 = new Route("route1"); route1.addPoint(new RoutePoint(0, 149363, 172341, -941, 0, false, "")); route1.addPoint(new RoutePoint(1, 148568, 172328, -980, 5, true, "Puff")); route1.addPoint(new RoutePoint(2, 148536, 172792, -980, 0, false, "")); // Route 2 Data Route route2 = new Route("route2"); route2.addPoint(new RoutePoint(0, 149363, 172341, -941, 0, false, "")); route2.addPoint(new RoutePoint(1, 150248, 172328, -980, 5, true, "Rise my children! Bring me the servants of the god! Let them be offered to our god Bifrons!")); route2.addPoint(new RoutePoint(2, 150248, 172776, -980, 0, false, "")); // Add routes to the map routes.put("route1", route1); routes.put("route2", route2); } @Override public String onSpawn(L2Npc npc) { if (npc.getId() == WALKER_NPC_ID) { selectInitialRouteForNpc(npc); } return super.onSpawn(npc); } @Override public String onAdvEvent(String event, L2Npc npc, l2r.gameserver.model.actor.instance.L2PcInstance player) { if (event.equalsIgnoreCase("move")) { moveNpc(npc); } else if (event.equalsIgnoreCase("check_reached")) { checkIfReached(npc); } return null; } private void moveNpc(L2Npc npc) { String routeName = npcCurrentRoute.get(npc.getObjectId()); Route route = routes.get(routeName); Integer pointIndex = npcIndexes.get(npc.getObjectId()); if (route != null && pointIndex != null) { RoutePoint point = route.getPoints().get(pointIndex); if (point.isRun()) { npc.setRunning(); } else { npc.setWalking(); } if (!point.getChat().isEmpty()) { npc.broadcastPacket(new NpcSay(npc.getObjectId(), Say2.NPC_ALL, npc.getId(), point.getChat())); } npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(point.getX(), point.getY(), point.getZ())); // Log movement intention System.out.println("NPC " + npc.getObjectId() + " moving to " + point.getX() + ", " + point.getY() + ", " + point.getZ()); // Schedule a check to see if the NPC has reached its destination startQuestTimer("check_reached", 1000, npc, null); } } private void checkIfReached(L2Npc npc) { String routeName = npcCurrentRoute.get(npc.getObjectId()); Route route = routes.get(routeName); Integer pointIndex = npcIndexes.get(npc.getObjectId()); if (route != null && pointIndex != null) { RoutePoint point = route.getPoints().get(pointIndex); Location currentLocation = npc.getLocation(); Location targetLocation = new Location(point.getX(), point.getY(), point.getZ()); // Check if the NPC has reached the target location if (currentLocation.equals(targetLocation)) { // Log that the NPC has reached the target System.out.println("NPC " + npc.getObjectId() + " reached target " + targetLocation); // Schedule the next movement startQuestTimer("move", point.getDelay() * 1000, npc, null); if (!npcReverse.get(npc.getObjectId())) { pointIndex++; if (pointIndex >= route.getPoints().size()) { npcReverse.put(npc.getObjectId(), true); pointIndex = route.getPoints().size() - 1; } } else { pointIndex--; if (pointIndex < 0) { npcReverse.put(npc.getObjectId(), false); pointIndex = 0; // Choose a new route after completing the current one in both directions switchRouteForNpc(npc); return; } } npcIndexes.put(npc.getObjectId(), pointIndex); } else { // Check again after 1 second startQuestTimer("check_reached", 1000, npc, null); } } } private void selectInitialRouteForNpc(L2Npc npc) { // Randomly select either route1 or route2 String selectedRouteName = "route" + (new Random().nextInt(2) + 1); npcCurrentRoute.put(npc.getObjectId(), selectedRouteName); npcIndexes.put(npc.getObjectId(), 0); npcReverse.put(npc.getObjectId(), false); startQuestTimer("move", 5000, npc, null); // Log initial route selection System.out.println("NPC " + npc.getObjectId() + " selected initial route " + selectedRouteName); } private void switchRouteForNpc(L2Npc npc) { String currentRoute = npcCurrentRoute.get(npc.getObjectId()); String newRoute = currentRoute.equals("route1") ? "route2" : "route1"; npcCurrentRoute.put(npc.getObjectId(), newRoute); npcIndexes.put(npc.getObjectId(), 0); npcReverse.put(npc.getObjectId(), false); startQuestTimer("move", 5000, npc, null); // Log route switching System.out.println("NPC " + npc.getObjectId() + " switched to route " + newRoute); } private static class Route { private List<RoutePoint> points = new ArrayList<>(); public Route(String name) { } public void addPoint(RoutePoint point) { points.add(point); } public List<RoutePoint> getPoints() { return points; } } private static class RoutePoint { private int id; private int x, y, z, delay; private boolean run; private String chat; public RoutePoint(int id, int x, int y, int z, int delay, boolean run, String chat) { this.id = id; this.x = x; this.y = y; this.z = z; this.delay = delay; this.run = run; this.chat = chat; } public int getId() { return id; } public int getX() { return x; } public int getY() { return y; } public int getZ() { return z; } public int getDelay() { return delay; } public boolean isRun() { return run; } public String getChat() { return chat; } } } I looking for help, with this, the npc not start to move. Im trying to create, an NPC wich have multiple walk routes basic logic is  random pick a route complite the route  like Route 1 start form zero (0 -> 1 -> 2(or more) -> 1 -> 0) When the npc return to 0, the script should pic the other route and start again.  And if there is a message like point 1 here     "route1.addPoint(new RoutePoint(1, 148568, 172328, -980, 5, true, "Puff"));" The npc should display the chat message. Currently my problem is the npc not moving, but if I manage it to start moving its randomly move between the route 1 and 2 set of coordinates. Currently for me its  a nightmare. I hope anyone can help somhow.
    • We are certainly not an ambulance, but we will definitely cure you of blacklists and empty pockets. Live freely with SX! Each of you will receive a trial version of SX to familiarize yourself with the product, all you have to do is post in this thread
    • qual e o valor pra atualizar o java da soucer ?
  • Topics

×
×
  • Create New...