Jump to content

Recommended Posts

Posted

News: Server will be online in official launch on 19th April

 

After wipe we will have five buffers. Basic,Advanced,Clan Hall,Forttress,Castel ... more details here

Posted

Addy I want to know that:except by buffers,we can make a AIO buffer? Btw join guys and read the recruit topic of Nomercy^^

Posted

exactly, if we can't bot and all will make necro/sph/sps/sorc/glad/ty/de no1 got time to make buffer

and when they are done finishing lvl 85 they are tiered to make another one 85

Posted

Here you can see the bufss that each npc has. We will probably add some more buffs or change some buffs levels.

http://www.l2iplay.com/buffs.html

 

I was thinking to make a system like this:

You make your character as a buffer on main class. Than you go with it at an npc and register that class as buffer only. If the class is buffer only you get 100% more exp, but you can't pvp, pk, evolve items and your drops will be lower. You can add subclasses but the same thing applies to subclasses too.

 

When you think you are ready leveling it or have all the buffs you want from it you can go whit it again at that npc and exchange the class for an item you can use to unlock buffs from a custom npc buffer. (Buff duration at this npc will be a bit lower).

 

What do you think of this system?

Posted

Here you can see the bufss that each npc has. We will probably add some more buffs or change some buffs levels.

http://www.l2iplay.com/buffs.html

 

I was thinking to make a system like this:

You make your character as a buffer on main class. Than you go with it at an npc and register that class as buffer only. If the class is buffer only you get 100% more exp, but you can't pvp, pk, evolve items and your drops will be lower. You can add subclasses but the same thing applies to subclasses too.

 

When you think you are ready leveling it or have all the buffs you want from it you can go whit it again at that npc and exchange the class for an item you can use to unlock buffs from a custom npc buffer. (Buff duration at this npc will be a bit lower).

 

What do you think of this system?

I agree with this system man,but Imo u should modify this npc buffer system so I agree with chucky and snelka
Posted

Well then... tell us how you would make the buffers?

I don't want to add all buffs at one npc because:

- you kill all buffer classes. Those classes are good because even if they don't have powerful skills their buffs increase the base stats so quite the same thing.

- you lose the support function from clan halls, fortress, castle <-- On official they have the same idea behind our system for buffing and no one is OP.

- you ruin the balance if everyone runs around full buffed.

 

Note 1: Buffs you see in that scheme are NOT last level and you don't get all buffs showed there from start (for clan hall, fortress, castle), they are implemented in the support function so you have to pay for them.

Note 2: With the system i was talking above you can unlock other buffs and get same buffs as a castle (probably even better buffs). So there are 2 ways to get good buffs:

          - get clan hall, fortress, castle than pay the fee for better level support function.

          - make an buff-only char and exchange it for an item to unlock buffs.

So even if you get a castle or make buff-only char the time it takes to achieve the buffs will be the same.

 

And if you are new, than don't pvp who is strong ( you can see their stats by shift+clicking on them). And if you are afraid of getting pked as a noob than don't worry.

I am working on a system that can tell if you are Strong, Average or Weak and if someone tries to kill you when you are weaker than him by PK, than your hp will not get lower than half.

Posted

Well then... tell us how you would make the buffers?

I don't want to add all buffs at one npc because:

- you kill all buffer classes. Those classes are good because even if they don't have powerful skills their buffs increase the base stats so quite the same thing.

- you lose the support function from clan halls, fortress, castle <-- On official they have the same idea behind our system for buffing and no one is OP.

- you ruin the balance if everyone runs around full buffed.

 

Note 1: Buffs you see in that scheme are NOT last level and you don't get all buffs showed there from start (for clan hall, fortress, castle), they are implemented in the support function so you have to pay for them.

Note 2: With the system i was talking above you can unlock other buffs and get same buffs as a castle (probably even better buffs). So there are 2 ways to get good buffs:

          - get clan hall, fortress, castle than pay the fee for better level support function.

          - make an buff-only char and exchange it for an item to unlock buffs.

So even if you get a castle or make buff-only char the time it takes to achieve the buffs will be the same.

 

And if you are new, than don't pvp who is strong ( you can see their stats by shift+clicking on them). And if you are afraid of getting pked as a noob than don't worry.

I am working on a system that can tell if you are Strong, Average or Weak and if someone tries to kill you when you are weaker than him by PK, than your hp will not get lower than half.

You know ... bots, dual, triple, quad box...

it's not the way to balance your server or make this classes useful.

Posted

You know ... bots, dual, triple, quad box...

it's not the way to balance your server or make this classes useful.

Bots and dual box or more are NOT allowed. Where did you took that one from alphar O.o. Read everything first please -.-'

And i was speaking about buffs not bots or dual and more box...

I think we better have the buffs discussion after about 2 weeks from 19th' April (when server goes LIVE), so you can play and see/test for yourself what my ideas are, because it is hard to know/understand how it will really be.

For now just try it like this.

 

And @ Chucky, what you said is almost like it is now, except you removed fortress buffer for who knows why reason.

Posted

because to get fortress hall, and keep it

especialy in the beginning. is hard...

and it requires high clan lvl:)

And why should we remove buffers from fortress if they are even more difficult to obtain ? Or you said you would add better buffs at fortress ?

Guest
This topic is now closed to further replies.



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