Jump to content

Recommended Posts

Posted

Depends on what rev you are going to use. aCis implemented a lot of the retail formulas (that I personally supplied them with) that are critical for PVP around rev 398 or 399 or so. If you plan on buying the latest acis rev (402 currently) then no doubt, it's the best choice. Not only it's the closest pack to retail gameplay and bug-free mostly, but they are also frequently updating their pack.

 

The other option is using free revs from any l2j packs. In this case, I don't know which one is worse.

Posted
  On 10/22/2021 at 7:51 PM, Trance said:

aCis is a beauty comparing to any other pack.

Expand  

Agree, Acis is so clean and well done, but people with limited dev knowledge find hard deal with Acis for some reason, but always you can find help in MXC who will help you for some little reward, coz     time > money was and will be :) Have a nice evening folks I got 2 go till Zake not kicked my arse once again 😄 

Posted
  On 10/22/2021 at 8:24 PM, MrTitanas said:

Agree, Acis is so clean and well done, but people with limited dev knowledge find hard deal with Acis for some reason, but always you can find help in MXC who will help you for some little reward, coz     time > money was and will be 🙂 Have a nice evening folks I got 2 go till Zake not kicked my arse once again 😄 

Expand  

?

Posted
  On 10/22/2021 at 9:10 PM, 7Arn said:

In my opinion, if you have knowledge and time take aCis if not then take Lucera but you don't have source.

Expand  

 

Lucera not even a decent pack the developer not even cares asked to fix some issues and he was focusing only implementing new mods 😄 aCis or PainTeam i suggest nothing else.

Posted (edited)

players dont look at what is as writen (not see core side) 😄but this can write only any dev...

for palyers is important if game playable its all 🙂 (sux any quests what never make)

and i think 1st what must working for all on 100% is EPICS this is important for JAVA/PTS servers same 😉 

spawnmanager for java its rly good and its new era 🙂 but what its wrong on old set ?? 

when still not working other old things (maybe need it for fix other set dont know but for me its waste time to use for other things and now give time to fix spawn ) 😉 but maybe better start make 10 new things on 30% how finish 1 on 100% 😉

Edited by KejbL
Posted
  On 10/23/2021 at 1:17 AM, KejbL said:

players dont look at what is as writen (not see core side) 😄but this can write only any dev...

for palyers is important if game playable its all 🙂 (sux any quests what never make)

and i think 1st what must working for all on 100% is EPICS this is important for JAVA/PTS servers same 😉 

spawnmanager for java its rly good and its new era 🙂 but what its wrong on old set ?? 

when still not working other old things (maybe need it for fix other set dont know but for me its waste time to use for other things and now give time to fix spawn ) 😉 but maybe better start make 10 new things on 30% how finish 1 on 100% 😉

Expand  

 

If you can't understand what is SpawnManager and what it actually offers as possibilities, be sure then adding any random Frintezza found on the internet will fit your needs.

Posted (edited)
  On 10/23/2021 at 9:24 AM, Tryskell said:

 

If you can't understand what is SpawnManager and what it actually offers as possibilities, be sure then adding any random Frintezza found on the internet will fit your needs.

Expand  

i write epics 🙂 yes tezza miss but think not working only this epics 😉
and for playable side its lucera

and for writen side (but need next time to other fixes ) acis 

what is good for acis maybe need write list with problem too not only updates 🙂

Edited by KejbL
Posted

I have spawns by zones since 2014 ish.
People rarely use it to share spawns, because they simply do not have access to leaked OFF files.

 

Developing spawn monsters by zones could be "nice" to kill your time with.

Once you make it, it would be there just to show off, god willingly with not making new issues.

Like in my case, L2jUnity inherited, killing performance and breaking respawns when they get out of zone.

I am not telling you make a bad job, but personally I would stick to add actually missing stuff that players see.

When I finish visible things, then I focus on refurbishing old code.


I only say that because missing Frintezza was mentioned above... on a C6 project...

It is not like you have 300-400 scripted AIs...

Posted
  On 10/23/2021 at 12:40 PM, Mobius said:

I have spawns by zones since 2014 ish.
People rarely use it to share spawns, because they simply do not have access to leaked OFF files.

 

Developing spawn monsters by zones could be "nice" to kill your time with.

Once you make it, it would be there just to show off, god willingly with not making new issues.

Like in my case, L2jUnity inherited, killing performance and breaking respawns when they get out of zone.

I am not telling you make a bad job, but personally I would stick to add actually missing stuff that players see.

When I finish visible things, then I focus on refurbishing old code.


I only say that because missing Frintezza was mentioned above... on a C6 project...

It is not like you have 300-400 scripted AIs...

Expand  

 

If acis would have went commercial few years ago then Im sure priorities would have been different. 

  • Upvote 1
Posted
  On 10/23/2021 at 1:17 AM, KejbL said:

players dont look at what is as writen (not see core side) 😄but this can write only any dev...

for palyers is important if game playable its all 🙂 (sux any quests what never make)

and i think 1st what must working for all on 100% is EPICS this is important for JAVA/PTS servers same 😉 

spawnmanager for java its rly good and its new era 🙂 but what its wrong on old set ?? 

when still not working other old things (maybe need it for fix other set dont know but for me its waste time to use for other things and now give time to fix spawn ) 😉 but maybe better start make 10 new things on 30% how finish 1 on 100% 😉

Expand  

Players and clans would mostly care about: 1st Geodata, movement, stability and latency, 2nd Skills, formulas and classes, 3rd sieges and epics, 4th the rest.

Posted
  On 10/24/2021 at 6:06 AM, Trance said:

Players and clans would mostly care about: 1st Geodata, movement, stability and latency, 2nd Skills, formulas and classes, 3rd sieges and epics, 4th the rest.

Expand  

players and clans care how much admin pay for play at his serber,

 

even at shity files u can get decent online xd

  • Upvote 1
Posted
  On 10/23/2021 at 12:40 PM, Mobius said:

I have spawns by zones since 2014 ish.
People rarely use it to share spawns, because they simply do not have access to leaked OFF files.

 

Developing spawn monsters by zones could be "nice" to kill your time with.

Once you make it, it would be there just to show off, god willingly with not making new issues.

Like in my case, L2jUnity inherited, killing performance and breaking respawns when they get out of zone.

I am not telling you make a bad job, but personally I would stick to add actually missing stuff that players see.

When I finish visible things, then I focus on refurbishing old code.


I only say that because missing Frintezza was mentioned above... on a C6 project...

It is not like you have 300-400 scripted AIs...

Expand  

 

I don't think I got some lessons to pick from someone who ninja other ppl work. Ofc you got things since 2014, you can thank some people for that :). From what I know, my scripts and my geodata was also used for a good time - and that time you didn't spend, I spent it for you, basically.

 

I could fork L2JMobius and get "spawn zones since 2014" aswell. Pick your Frintezza, for exemple. Put some fixes upon it, and tell your version was shitty and mine is better.

 

That's basically what you achieved, so far. I'm not that sort of people, but good for you if you are, and if people follow.

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