Jump to content

Recommended Posts

Posted

Γειά σας. Σήμερα θα σας δείξω έναν οδηγό για το class Doomcryer, σε Interlude server mid/high rate.

Ας ξεκινήσουμε από τα class που αποτελείται.

 


 

~Class Transfer~

 

(Level 1-19) Orc Mystic

(Level 20-39) Orc Shaman

(Level 40-75) Warcryer

(Level 76-80) Doomcryer

 

 

~XP Zones~

 

(1-11) Το μέρος όπου ξεκινάτε με τα Gremlins.

(12-24) Dark Elven Areas - Altar of Rites.

(25-41) Giran Areas - Dragon Valley Entrance.

(42-52) Dion Areas - Cruma Tower - 1st floor.

(53-65) Giran Areas - Dragon Valley Cave.

(66-76) Goddard Areas - Monastery of Silence.

(77-80) Dino Island (Εάν υπάρχει στην gatekeeper, ειδάλλως Monastery of Silence έως τα 80!).

 

 

~Εξοπλισμός~

 

D Grade:

 

Για όπλο προτιμήστε ένα One hunted blunt - Staff of Life 34r7v9f.jpg.

Από Jewels πάρτε τα Elven: (Elven Ring, Elven Necklace, Elven Earring) htsba1.jpg.

Όσο για την armor: (Mitrhil Tunic, Mithril Stockings, Elven Mithril Boots, Elven Mithril Gloves, Brigandine Helmet) 255819x.jpg.

 

C Grade:

 

Για όπλο προτιμήστε ένα Homonculus sword Acumen 315mzir.jpg.

Από Jewels πάρτε τα Blessed Jewels 6tfrz8.jpg.

Όσο για την armor: (Demon's Tunic, Demon's Stockings, Demon's Boots, Demon's Gloves, Composite Helmet) 1zew3t.jpg.

 

 

B Grade:

 

Για όπλο προτιμήστε ένα Sword of Valhalla Acumen 24xjcjr.jpg.

Από Jewels πάρτε τα Black Ore Jewels 23safq9.jpg.

Όσο για την armor: Προτιμήστε την Doom Robe Armor 2yl7ed1.jpg.

 

 

A Grade:

 

Για όπλο προτιμήστε ένα Sword of Miracles Acumen fpblvt.jpg.

Από Jewels πάρτε τα Majestic Jewels i3yja9.jpg.

Όσο για την armor: Προτιμήστε την Dark Crystal Robe Armor 2j6p7r.jpg.

 

 

S Grade:

 

Για όπλο προτιμήστε ένα Arcana Mace Acumen 2u5awkg.jpg.

Από Jewels πάρτε τα Tatteosian Jewels 33es908.jpg.

Όσο για την armor: Είτε κρατείστε την Dark Crystal Robe Που σας δίνει casting, είτε πάρτε μία Major Arcane Robe Armor 1qfh3l.jpg.

 

 

 

~Dyes~

 

Πολλοί θα αναρωτιέστε ποια είναι τα κατάλληλα dyes. Λοιπόν εδώ θα σας δώσω αυτά που χρησιμοποιώ εγώ!

(1ο) WIT +3 MEN -3

(2o) WIT +2 MEN -2

(3o) CON +4 STR -4

 

Σημείωση: Σε περίπτωση που γνωρίζετε το trick για να βάζετε dyes σε μία class, ακόμα και αν δεν ταιριάζουν, τότε θα σας πρότεινα αντί για CON +4 STR -4, να βάλετε INT +4 MEN -4, διότι ο Doomcryer έχει λίγο m atk.

 

 

 

~Γενικές Πληροφορίες~

 

Οι doomcryers σε high/mid rate servers, δεν είναι κάποια ιδιέταιρη class στα PvP, το αντίθετο με τους low rate servers, όπου, λόγω των chants τους, έχουν μεγάλο πλεονέκτημα ενάντια σε άλλες Class! Κάτι πολύ βασικό είναι πως οι doomcryers σε όλα τα ήδη των servers, σε σχέση με τα rates, έχουν ένα τεράστιο πλεονέκτημα στην olympiad. Αυτό λόγω του drain τους, με το οποίο κάνουν damage στον αντίπαλο, μα αναζωογοννούν και τη δική τους ζωή, μα το κυρίως λόγω των chants τους, τα οποία τους ανεβάζουν τα στατιστικά υψηλά, σε όλους τους τομείς! Δεν θα σας συνιστούσα όμως αυτήν την class για farm καθώς αν και έχει υψηλή άμυνα, το M. Atk τους είναι σχετικά χαμηλό...Αυτά φυσικά σε έναν high rate server, καθώς σε έναν low rate είναι ότι πρέπει, λόγω των chants τους! Όσο για το play style τους, δεν έχουν κάτι το ιδιέταιρο, όπως έχουν τα ξαδερφάκια τους οι dominators...

 

 

 

~Buffs~

 

Εδώ θα σας δώσω μία εικόνα, για το πως θα ήταν καλό να έχετε τα buffs σας.

 

dwf9s.jpg

 

Αυτό βέβαια είναι κάτι προσωπικό, που, ανάλογα με τις διαθέσεις σας και τον αντίπαλό σας, ίσως χρειαστεί να αλλάξει.

 

 

 

~Skills~

 

Και εδώ είναι ο πιο βασικός τομέας. Τα skills των doomcryers. Παρακάτω θα σας δώσω εικόνες των βασικών skills τους, και μια μικρή εξήγηση δίπλα.

 

skill1413_0.png Το magnus chant είναι ένα πολύ βασικό buff το οποίο δίνει ιδιέταιρα καλά στατιστικά στο casting speed, M atk, P def, M def, MP και άλλα.

 

skill1363_0.png Το Chant of Victory είναι το αδεφάκι του Magnus Chant. Δίνει λιγότερο M atk και MP, μα περισσότερο P Def, M def kai Hp.

 

skill0336_0.png To Arcane Wisdom ανεβάζει το ποσοστό επιτυχίας των skills σας, και το MP που χρειάζονται για να γίνουν, με κόστος την μείωση του Casting Speed σας, και την μείωση του MP σας σταδιακά.

 

skill1362_0.png To Chant of Spirit μειώνει την πιθανότητα να αφαιρεθούν τα buffs σας από skills όπως το Cancellation.

 

skill1092_0.png Το Fear τρομάζει τους αντιπάλους σας και τους αναγκάζει να τρέξουν μακριά από τον φόβο.

 

skill1105_0.png Το Madness ζαλίζει τον αντίπαλό σας και τον κάνει να βαράει τυχόντες.

 

skill1245_0.png Το Steal Essence είναι το βασικότερό σας attacking skill, το οποίο κάνει damage στον αντίπαλό σας και αναζωογοννεί το δικό σας HP.

 

skill1252_0.png To Chant of Evasion ανεβάζει το Evasion σας.

 

skill1006_0.png To Chant of Fire ανεβάζει το M Def σας.

 

skill1229_0.png To Chant of Life ανεβάζει το HP regeneration σας.

 

skill1009_0.png To Chant of Shielding ανεβάζει το P Def σας.

 

skill1097_0.png To Dreaming Spirit κοιμίζει τους αντιπάλους σας.

 

skill1007_0.png To Chant of Battle ανεβάζει το P Atk σας, ανούσιο φυσικά για εσάς μιας και είστε μάγος.

 

skill1253_0.png To Chant of Rage ανεβάζει το Critical Attack Power σας.

 

skill1310_0.png To Chant of Revenge αναζωογοννεί το HP σας, κάθε φορά που βαράτε τον αντίπαλό σας χωρίς επιθέσεις από μακριά.

 

skill1309_0.png Το Chant of Eagle ανεβάζει το Accuracy σας.

 

skill1251_0.png Το Chant of Fury ανεβάζει το atk speed σας.

 

skill1002_0.png To Flame Chant ανεβάζει το casting speed σας.

 

skill1390_0.png To War Chant ανεβάζει ακόμα περισσότερο το P Atk σας!

 

skill1391_0.png To Earth Chant ανεβάζει ακόμα περισσότερο το P Def σας!

 

skill1284_0.png To Chant of Revenge αντανακλά τις κοντινές επιθέσεις του αντιπάλου σας, πίσω σε αυτόν!

 

skill1099_0.png To Seal of Slow κάνει τους κοντινούς αντιπάλους σας να κινείται αργά.

 

skill1208_0.png Κρατάει τους κοντινούς αντιπάλους σας ριζωμένους στο έδαφος!

 

Αυτά για τα skills! Ορίστε και μία photo με την μπάρα που χρησιμοποιώ εγώ, για να βοηθηθείτε!

 

jfjkgk.jpg

 

 

Αυτό ήταν! Credits σε εμένα και ΜΟΝΟ. Το guide είναι απολύτως δικό μου, οι photo Των items δικές μου και οι photo των skills από το internet.

 

TO LEECH ΑΠΑΓΟΡΕΥΕΤΑΙ.

Σε περίπτωση που σκεφτήκατε να μου δώσετε karma, ευχαριστώ αλλα ΔΕΝ θέλω.

 

Regards.

Posted

Ωραιος φενεται ο οδηγος, θα επρεπε βαιβεα να "επαιζες" λιγο περισσοτερο με τα Βolt και τα χρωματα αν με πιανεις.

 

 

ΒΤW προσθεσε και αυτο στην SIG σου  ::) :P :

rewards

Posted

πρόσθεσε dyes και τότε θα είναι ολοκληρομένο

Επίσης όπως είπε ο uneffect βάλε χρώματα και bolt για να γίνει πιο εύχρηστο το guide

Thx for share :D

Posted

πρόσθεσε dyes και τότε θα είναι ολοκληρομένο

Επίσης όπως είπε ο uneffect βάλε χρώματα και bolt για να γίνει πιο εύχρηστο το guide

Thx for share :D

 

Dyes έχουν ήδη προστεθεί.

Χρώματα υπάρχει ένα μικροπρόβλημα με τους χαρακτήρες και δεν μπαίνουν σωστά.

Bolt? Δεν υπάρχει κάτι τέτοιο...

Posted

Καλά γράψε ότι πηγαίνει με pt. Γιατί ο wc δε πάει solo με την καμία :P

 

καλύτερο c grade είναι club of nature

b grade ένα blunt spell master Κάπως έτσι το λένε...

a grade bomt

 

Θέλει Blunt που παίρνουν acumen για να μπορεί να κάνει stun και γρήγορα Buff.

 

Επίσης σε όλα τα pvp εκτός Oly το μόνο που κάνει είναι buff/sleep :P

Posted

Καλά γράψε ότι πηγαίνει με pt. Γιατί ο wc δε πάει solo με την καμία :P

 

E3artatai. Se Low rate, an kai den exei curses metraei!

Posted

Δες το edit που έκανα....

 

Ok aplws epeidh se enan p.x. x250 server, me to aplo life drain kai ena acumen, 8a pairnei pio grhgora xp, kai den vasisthka sta warrior abilities tou, opws to stun.

Epikentrw8hka se high rate dioti oi low rate stis meres mas spanizoun :P

 

Kai btw eipa hdh oti gia pvp kai farm dn einai auto pou xreiazetai kapoios ;p

Posted

Με drain μπορεί να παίξει μόνο αν έχει mana pots. Χαλάνε τρελό mp και δεν έχει και καλό m atk ο wc

 

nai omws sta skills pou exeis ftiaxei tin mpara exeis sto f1 sleep ti na to kaneis efoson ama kaneis steel esseance 8a xipnisei? :S

 

sleep, drain, sleep,drain incorrect target incorrect target

 

C4 style και καλά...

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

    • Verify if following is supposed to be the way to handle movement npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(point.getX(), point.getY(), point.getZ())); For me, it's not enough. And if it's the case, whole AI system is probably buggy.
    • 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.
  • Topics

×
×
  • Create New...