Jump to content

Recommended Posts

Posted (edited)

Hello everybody

 

NFvMEjp.png

 

So almost 3 years ago I released a very primitive Fake Players engine called L2jRoboto. It lacked many features and it wasn't really manageable.

Thanks to the quarantine situation I decided to spend some of my spare time writing a completely new engine from scratch. 

 

So without any further ado I present to you, Autobots, the most Advanced Fake Player & Autofarm Engine.

 

The engine currently supports every class except for the summoner classes and prophet-like classes.

 

Features Autobots

  • Full autobot control through an in game dashboard with amazing UX
    • Spawn/Despawn/Delete
    • Inspect a bot's inventory, status, skills and buffs
    • Customise the bot's combat and social preferences in game
      • Target radius
      • PvP aggression and preferences
    • Self sustain with potions that can be configured in game
    • Infinite buff replenishing
    • Infinite consumable replenishing
    • Ingame bot filtering
  • Persistent bots that are saved in the database and can be logged in where they logged out
  • Unique behaviour on each bot based on its class
    • Archers will kite
    • Spoilers will spoil and sweeper
    • Pet owners will have pets following or assisting them
  • Create an autobot in game
    • Name
    • Level
    • Class
    • Appearance
  • Create random Autobot
  • Bot chat control
    • You can see what the bot sees in the chat and you can do things like talk in general chat or shout chat and also use PMs
  • Bot clan control
    • Create a bot clan in game and change the members of the clan from the dashboard, including clan crests for remote locations
  • Full ingame bot control (movement, attack, skills, chat)
  • Automatic return to death area using gatekeepers

 

Features Autofarm

  • Fully automatic farming with targeting, attacking and self sustain logic

 

Here is a video showcasing the features as of 04/05/2020

 

 

Some images: https://imgur.com/a/ttFkkef

 

 New feature: Full bot control

  • Movement
  • Chat
  • Skills
  • Action
  • Combat
  • PvP/PK (Ctrl button support)

 

 

Configurable skill preferences per class

wNV2KO6.gif

 

Configurable Private Sell Store

aTKWULr.gif

 

 

Configurable Private Buy Store

QZl20wL.gif

 

Bots will now return to their death area after they respawn in town

 

 

 

Features under development

  • Social in-town behaviour
  • Party creation and coordination
  • Bot anchor points
  • A lot more

 

Possible usages

  • Calibrate how long it will take for a player farming to get the top gear
  • Tweak the PvP match-up between classes to enhance the balance
  • Make your server look more populated than it really is, (obviously)

 

Project support

  • aCis
  • L2jEternity

Adaptations available on demand

 

Licensing

The engine is licensed, which means you buy the right to run it.

There is a initial fixed fee of £150 and if you want to get updates you need to pay an extra £50 every month. This is a premium product and I wanna keep it to those who are willing to invest.

The initial fee includes one month of updates.

The license is bound to the person, not the server but you can only use it on one server at a time, meaning that you are free to open 10 servers with the same purchase but only one server can use it at a time.

 

To ensure customer satisfaction, you will have as much time as you want on my private server, testing everything about the engine before you make any purchase. 

 

Contact

Interested in the development progress or more info?

Join our discordhttps://discord.gg/6DYMDV4

Edited by Elfocrash
  • Like 3
  • Thanks 1
  • Haha 1
  • Upvote 8
  • Downvote 1
Posted

New feature - Activity preferences

 

Choose one of 3 activity options for your bots.

  • None - Bot is manually logged in and logged out
  • Uptime -  Bot will stay online for the specified amount of minutes
  • Schedule - Bot will login and logout at a specified time of day

 

wrXyqSl.png

 

Interested in the development progress or more info?

Join our discordhttps://discord.gg/6DYMDV4

Posted
On 5/4/2020 at 2:17 PM, Elfocrash said:

Hello everybody

 

So almost 3 years ago I released a very primitive Fake Players engine called L2jRoboto. It lacked many features and it wasn't really manageable.

Thanks to the quarantine situation I decided to spend some of my spare time writing a completely new engine from scratch. 

 

So without any further ado I present to you, Autobots, the most Advanced Fake Player Engine.

 

The engine currently supports every class between level 40-80 except for the summoner classes and prophet-like classes.

 

Features

  • Full autobot control through an in game dashboard with amazing UX
    • Spawn/Despawn/Delete
    • Inspect a bot's inventory, status, skills and buffs
    • Customise the bot's combat and social preferences in game
      • Target radius
      • PvP aggression and preferences
    • Self sustain with potions that can be configured in game
    • Infinite buff replenishing
    • Infinite consumable replenishing
    • Ingame bot filtering
  • Persistent bots that are saved in the database and can be logged in where they logged out
  • Unique behaviour on each bot based on its class
    • Archers will kite
    • Spoilers will spoil and sweeper
    • Pet owners will have pets following or assisting them
  • Create an autobot in game
    • Name
    • Level
    • Class
    • Appearance
  • Create random Autobot
  • Bot chat control
    • You can see what the bot sees in the chat and you can do things like talk in general chat or shout chat and also use PMs
  • Bot clan control
    • Create a bot clan in game and change the members of the clan from the dashboard, including clan crests for remote locations

 

Here is a video showcasing the features as of 04/05/2020

 

 

Some images: https://imgur.com/a/ttFkkef

 

Features under development

  • Social in-town behaviour
  • Party creation and coordination
  • Bot anchor points
  • Bot maximum range
  • Full movement and attack/skills control of the bot from your admin character
  • A lot more

 

Possible usages

  • Calibrate how long it will take for a player farming to get the top gear
  • Tweak the PvP match-up between classes to enhance the balance
  • Make your server look more populated than it really is, (obviously)

 

Project support

  • aCis
  • L2jEternity

Adaptations available on demand

 

Licensing

The engine is licensed, which means you buy the right to run it.

There is a initial fixed fee of £150 and if you want to get updates you need to pay an extra £50 every month. This is a premium product and I wanna keep it to those who are willing to invest.

The initial fee includes one month of updates.

The license is bound to the person, not the server but you can only use it on one server at a time, meaning that you are free to open 10 servers with the same purchase but only one server can use it at a time.

 

To ensure customer satisfaction, you will have as much time as you want on my private server, testing everything about the engine before you make any purchase. 

 

Contact

Interested in the development progress or more info?

Join our discordhttps://discord.gg/6DYMDV4

i dont understand why all bot system are for acis and u havent create even one for frozen..

Posted (edited)
Just now, scraw said:

i dont understand why all bot system are for acis and u havent create even one for frozen..

I can adapt it to any project if someone wants to buy it. I already adapted it for a H5 project

Edited by Elfocrash
Posted

New feature: Full bot control

  • Movement
  • Chat
  • Skills
  • Action
  • Combat
  • PvP/PK (Ctrl button support)

 

  • Like 1
  • Upvote 1
Posted (edited)

great work! I would suggest implement party on the bot side, so it can accept party invitation, from any player, and assist the party leader. It would be great to have a healer with you somewhere or a party where it is harder to go alone. The ideia would be the Autobot follow you wherever you go, walking or being teleported if get an ordinary gatekeeper. That would be amazing.

Edited by Gryphon
Posted
7 hours ago, Gryphon said:

great work! I would suggest implement party on the bot side, so it can accept party invitation, from any player, and assist the party leader. It would be great to have a healer with you somewhere or a party where it is harder to go alone. The ideia would be the Autobot follow you wherever you go, walking or being teleported if get an ordinary gatekeeper. That would be amazing.

There are 3 features that will be implemented in the engine in the future:

  • Personal assistant (where you can invite bots to help you)
  • Autofarm helper (where your character can farm automatically like the bots do)
  • Autobalance (where the enigne will balance class matchups for you)

I am focusing on the core engine for now but there are plans of expansion that are coming up.

 

 

Posted

Oh great! It becomes even more amazing! The autofarm helper would benefit from the same AI of the AutoBOT, but would be used for your own character! Really great! That togheter with personal assistant would be the most incredible features of the engine.

 

This is becoming more and more interesting

Posted

Update

You can now edit the bot skill usage conditions for certain skills ingame!

 

 

  • Upvote 1
Posted
1 minute ago, Elfocrash said:

Update

You can now edit the bot skill usage conditions for certain skills ingame!

 

 

It looks nice ! 

Posted
4 hours ago, TouchOfFlames said:

Are they have sell, buy, craft option  ?  

Auto chat  ?  

No sell buy or craft option. They are secondary features.

 

Chat is currently only manual. After several tests I did with real people trying to detect a bot, Autochat was almost always what made them understand that it was a bot. The gms get notifications when a bot is talked to and they can respond on behalf of the bot but not automated chat. 

Still something I might add in the future but for now, it will hurt the engine more than it would help it.

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