Jump to content

Recommended Posts

Posted
1 minute ago, lFinalFantasyl said:

Yeah i know the power of my team thats why so much self confidence :D And i ensure you that i wont dissapoint you Sir ;) anyway good "luck"

You missunderstood, it was sarcasm.

You're actually so scared and aware that i'm a true challange to your server and you're gonna lose so many players because of me.

 

Otherwise why would you bother with me and come threaten me at my own server's advertising topic if you're so sure it'll fail and you got nothing to lose?

Posted (edited)

no hate ovc, but they seem to look better bcoz of these main things, 1 a well known brand name server, and 2 they have stability and keep longtime  servers imo

instead looks like ovc miss both,i just mean that it's pointless arguing,just try make server better,just let playas tell their opinions, best luck tho

Edited by camenomat0
  • Upvote 1
Posted
1 minute ago, camenomat0 said:

no hate ovc, but they look better bcoz of these main things, 1 they have a well known brand name server, and 2 they have stability and keep longtime  servers imo

instead looks like ovc miss both,i just mean that it's pointless arguing,just try make server better,just let playas tell their opinions, best luck tho

That's fine, I already made my point on this in the first page of this topic, you can feel free to read and then tell me what you think.

And i'm good with players opinions, but so far 50% of replies here are from other servers admins and their bots.

Posted

in l2ovc you can farm with bishop/ol/tanks without party you can play also and spoiler 
no custom shits, like dynasty set/wep/jws .. 
Thats mean perfect balanced between all classes is not only mage and archer server 

 

Posted

This is how real features looks like!

 

Shot00028.jpg.0d61caa69d94f7f1d9e6a61071

 

Shot00034.jpg.b5f42551e41d659107fe47df0d

 

2 Sealable Altars
4 Destroyable Flags
1 Domination Zone

 

And hundreds of players to try and rule them all!

 

massgk.png.a9e0e63be023db1c17c34d6400e4a

 

Many more new and trully unique features you will find only in L2 OvC.

  • Like 2
Posted
On 1/3/2018 at 3:10 PM, Zeff♂ said:

in l2ovc you can farm with bishop/ol/tanks without party you can play also and spoiler 
no custom shits, like dynasty set/wep/jws .. 
Thats mean perfect balanced between all classes is not only mage and archer server 

 

 how is it perfect balanced if you can farm the same way with support classes? 

that looks invalid,u could say this another way if u mean that all classes are usefull,but that's another thing

 

Posted (edited)
2 hours ago, camenomat0 said:

 how is it perfect balanced if you can farm the same way with support classes? 

that looks invalid,u could say this another way if u mean that all classes are usefull,but that's another thing

Obviously you need to play to understand, don't expect people to teach you how things work.

 

Zeff is correct with what he says, all classes can farm properly because not only PvP brings rewards, but also doing objectives gives rewards - that way even a tank or bishop who is inside a domination zone or seal an event altar can win rewards with ease.

 

Even in events where its all about PvP (Team VS Team maps mostly) such classes can get rewards depends on their chunk of help to their team.

You can get rewards by simply healing and ressing friendlies, debuffing and agroing enemies etc.

Spoilers can spoil enemies to steal some of their adena or get few extra materials, aswell as get XP/SP.

And the list goes on...

Edited by L2 OvC
Posted
On 3/3/2018 at 3:01 PM, L2 OvC said:

This is how real features looks like!

 

Shot00028.jpg.0d61caa69d94f7f1d9e6a61071

 

Shot00034.jpg.b5f42551e41d659107fe47df0d

 

2 Sealable Altars
4 Destroyable Flags
1 Domination Zone

 

And hundreds of players to try and rule them all!

 

massgk.png.a9e0e63be023db1c17c34d6400e4a

 

Many more new and trully unique features you will find only in L2 OvC.


Awesome. Guys, prepare your clan and reg in forum. 6DAYS left to the best GvE server.

Posted
13 hours ago, AnitahIsBack said:

2k18 and ppl still playing this f1-f2-f3 chronicle?XD

When done properly this game version is still enjoyable by most players, it has nothing to do with being a "f1 chronicle".

 

I wonder though, what made you reply with this offtopic exactly to this topic while there's like 70% Interlude topics on every page.

Posted

As promised, youtube event announced:

http://l2ovc.com/forums/index.php?/topic/3712-youtube-event/

 

If you wanna play and also win money from it then this event is for you!

All you have to do is take a video of yourself playing L2 OvC and you're in.

Posted

Dear players,
We are glad to be hosting once again the best Interlude faction server exists!
Many new features, including: Castle VS Castle map, new sounds and more!
Many improved features: ranks, rewards, enchanting, expert skills and more!
You don't want to miss this one out, join now!
http://l2ovc.com

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

×
×
  • Create New...