Jump to content

Recommended Posts

Posted
1 hour ago, DenArt Designs said:

I think there is no value or some "reward" to feel some positions example if your title says l2jdev everybody ask you for codes (even for free) you waste your time at some point while you could sell your knowledge, the forum is leaded by diva sharers if i am not over the line here, guides are 10 year outdated links dead there are no updates, very few shared from their time like you as far i remember shared something new also nobody fixes old codes that sure dont work, some know how to adapt and 99% dont.

My point is reward <-> activity.

this was able to be achieved when reputation had value now its just abused or childplay.

even the scam percent rised after the reputation value stop working.

I can see the logic there. A site with name Maxcheaters is selling bot protection while all exploit sections are dead. The 90% of the community is from the l2 while the 90% of that community is now out. There are really about 20 members who posting there and a few randoms that creating account just to ask for help about 1 thing. The owner visiting his site only to enable ads in these terrible banners and answering to Skype only to check PSC validation. 

 

It's not our fault. 

 

I am really thankful to this forum because I worked for many members for free but not really for free. I didn't ask for money but I earned knowledge. When I became l2jdev I had more than 200 PM's for free codes (root , can confirm that) and I was ok with that, but after some time I said alright, enough. It's getting boring the whole thing especially if you have a 'role' there (like daily cleaning the responsible section) without any single reason . Any mod here,have daily jobs to do based on their position. Why? They won't win something except the fame. Ppl like root, Sweets,elfo,xdem who have a good knowledge they don't care about that. That's why I said "I doubt they will accept it". 

 

I fully agree with you . 

  • Like 4
Posted
13 hours ago, melron said:

I can see the logic there. A site with name Maxcheaters is selling bot protection while all exploit sections are dead. The 90% of the community is from the l2 while the 90% of that community is now out. There are really about 20 members who posting there and a few randoms that creating account just to ask for help about 1 thing. The owner visiting his site only to enable ads in these terrible banners and answering to Skype only to check PSC validation. 

 

It's not our fault. 

 

I am really thankful to this forum because I worked for many members for free but not really for free. I didn't ask for money but I earned knowledge. When I became l2jdev I had more than 200 PM's for free codes (root , can confirm that) and I was ok with that, but after some time I said alright, enough. It's getting boring the whole thing especially if you have a 'role' there (like daily cleaning the responsible section) without any single reason . Any mod here,have daily jobs to do based on their position. Why? They won't win something except the fame. Ppl like root, Sweets,elfo,xdem who have a good knowledge they don't care about that. That's why I said "I doubt they will accept it". 

 

I fully agree with you . 

fun fact previous month I was about to get epilepsy with a banner trembling oposite colors:evil:

  • Like 1
  • Haha 2
Posted
21 hours ago, Bioshock` said:

I vote for xdem as L2J dev too. He is level 2 programmer but he can handle a simple code.

7th account, here it comes. Any new-account resolutions to last longer? :D

 

@topic

i support Elfocrash in his support of the other guy

Posted
7 hours ago, AlmostGood said:

7th account, here it comes. Any new-account resolutions to last longer? :D

 

@topic

i support Elfocrash in his support of the other guy

Is anyone care about you anyway? Do you think anyone care for you or ill think how many acc ill make? 

  • Maxtor locked this topic
  • Maxtor unpinned this topic
Guest
This topic is now closed to further replies.


  • 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.
    • 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
  • Topics

×
×
  • Create New...