-
Posts
2,025 -
Joined
-
Last visited
-
Days Won
60 -
Feedback
0%
Content Type
Articles
Profiles
Forums
Store
Everything posted by Elfo
-
Yeah that is probably the reason, it you shouldn’t be doing that anyway because they are not meant to be spawned in a foreaxh loop. Normal spawn of 200 bots should take around 2 minutes, at least the way I do it. On the other hand bots need to be assigned their skills so it has to happen. The root of the problem is how poorly the giveavailableskills method is coded on acid and other l2j packs but it is not my job to optimise that.
-
It is however properly structured and it is a good base for everyone that wants to expand on it. As you said the dashboard to make it controllable ingame is key but functionality comes first
-
I don’t need them for l2j I mean lel
-
Resellers has been selling my stuff my whole life in l2j development. Can’t do something about it. That’s why the project is mit. I could package it, obfuscate it and sell it but I already make enough money so I don’t need them. whenever you see someone bragging or selling just point them to the right place. That’s the best you can do
-
The npe is actually fixed but I haven’t shared the game server patch. Things like that are fixed but I can’t find a solid way to share them with version control without sharing the whole project. i will share the pm fix twhen I get home
-
Yeah the init loading is not really my issue as other players can’t notice it. i have many things in my optimisation list but functionality comes first for now. Feel free to help solve it if you have the time.
-
Its because of the item give and equip. You can also notice it on the startup system. Because most of the code of he creation is copied from things like enterworld, it sends some packets to the fake player that it doesnt need. Again, the project is under development so things like this will be fixed and more features will be added. Good point it is only some html files. I'm off for work today but i will be uploading it when i get home
-
This project is discontinued Please find the new Autobots commercial engine below _____________________________________________________________________________________________ L2j Roboto So as I've already said i would share the fake player engine that i started working on. It is WIP so DO NOT use it on any production environment. I only share it cuz someone might be interested in giving a hand. Features Features implemented: Only attack logic for bots to bots (plan to make it configurable even ingame) Task auto scaling logic in order to have less iterations in more tasks Buff bots with auto rebuff Soulshots/Spiritshots with auto refill Arrows/Bones with auto refill One AI per class (Only a few implemented for now) Random attack picked with probability Commands //fakes - opens the fake player dashboard (will probably change to //roboto) //spawnrandom - spawns a random bot with default AI How to install L2jRoboto has minimal dependencies Find the patch.diff folder under the dist folder Github repo: https://github.com/Elfocrash/L2jRoboto Please star the project is you can. The project is licensed under MIT so take it and do whatever you want with it. Have fun
-
Also an extra update. Implemented a auto scaling system where AI tasks are being spawned based on how many fake players are currently live (in the video the players per task value is 10). This allows admins to configure how much stress they will put on a single task. Currently each task will iterate over all the players responsive for it and trigger the thingAndAct() method for them. The rest is up to the FakePlayerAI to decide. Also started building a little bit of a dashboard to allow easy control of the bots.
-
Awesome job as always. In terms of code review and improvements here are my comments. Line : Comment 51: ChristmasEvent should be extending an abstract class called event and shouldn't be a singleton. The XML Document should be on it's own EventConfigLoader. Remember that classes should be doing one job only. 53: Rewards shouldn't be static. 156-157: Should be extracted to their own method called something like determineSpawnProbability() 160-167: Should be extracted to spawnRandomNpc 169-171: Should be extracted to handleNpcDespawn 205-252: This is bad class design because it limits you to a very specific type of a set. Something like this should be generic, so i would suggest you check the Pair class. 271: Loading singletons like this is deceiving to the reader because what you express via your code is that the only reason this line is there is to print the reward size while in reality you are initialising the singleton. Just a .getInstance() should be enough. 332: applyTo is a bad method name not indicating the actions. A reward is not applied. It's given/rewarded. Should be rewardPlayer 337-341: Should be extracted to a method called handleXpReward() 343-347: Should be extracted to a method called handleSpReward() 349-353: Should be extracted to a method called handleRecReward() 355-356: Should be extracted to a method called handleRewardItems() I won't comment on the onBypassFeedback method because the whole thing is poorly designed to begin with anyway. Comments: Here are some guides that you should keep on your mind when you are coding any type of system. Those are not the only ones, but they apply on what i saw. Classes should only have one responsibility. You should always use long self descriptive names for methods, classes, etc. Your code is your documentation. I am only giving you really constructive feedback because i know you are keen to learn. Don't take it the wrong way. It is amazing effort.
-
Discussion L2 Revolution Private Server
Elfo replied to Elfo's topic in Server Development Discussion [L2J]
a -
Neither i have the intention that this will kill any game nor i think that this a bad think. On a personal level i like seeing populated servers rather than non populated server. I wouldn't recommend to someone to use this as in a ratio of 200/200 real/fake bur a 200/50 ratio. Trust me all of you have been playing in high profile servers with bots and you don't even know it.
-
What you guys don't get is that people are already using similar things like that. They are just poorly written, moronic and not sophisticated at all. If you are to do it anyway then might as well do it right. Also i still consider the possibility of releasing it for free. But this will depend on how much effort it will take to get it to a good place.
-
Discussion Give your server a meaning
Elfo replied to HarryHoudini's topic in General Discussion [English]
As I said countless times before, unless you update the content to keep the experience fresh then once people hit max items there is nothing else for them but pvp. Pvp requires engagement from other players as well. If there are no players to pvp with then there is nothing to do and you quit. It's a circle that you have to make self fulfilling. Unless you update adding more items and armors through an updater you will fail every time on high rates. -
Implemented a small functionality that allows the admin to take control of a fake player. For now it only supports movement but it is easy to add things like attack/skill casting.
-
a
-
Been working on the decision making and skill picking. Some skills are more likely to be used by others. Also bots have automatic internal rebuffing and refueling of consumables (shots/arrows/bones) when they are about to run out. Performance is solid.
-
Some wizard combat stuff. The players are unbuffed and just use spiritshot thats why some of them stop casting for a sec some times when all skills are on cooldown.
-
So i finally have 3 days off to work on this. I started by remaking the way the bots think about how they will do stuff. Previously i had one task running per player just to see how far this could go and it because obvious that after 200 players the thing went kraaaa. However i reworked the way this logic in handled and now with a reasonably low cpu usage. To test it i spawned 666 bots of two types, AttackerAI (general purpose) and SpellHowlerAI (class specific) and the load is kept low, so im happy withe the performance side of things. Next thing in the todo list is to create individual class based AI for combat and social interaction. Bots should behave differently in different scenarios and even though fake, their decisions should at least look authentic.
-
Discussion L2 Revolution Private Server
Elfo replied to Elfo's topic in Server Development Discussion [L2J]
Ok i finally got the decryption of the packets working. Packet identification is next :D -
Discussion L2 Revolution Private Server
Elfo replied to Elfo's topic in Server Development Discussion [L2J]
If that's what the game itself is using then yeah SessionNetwork.java seems to be containing all the encryption info as it is getting iv key and salt from the server -
Discussion L2 Revolution Private Server
Elfo replied to Elfo's topic in Server Development Discussion [L2J]
Exactly what Sdw said basically. I packaged some points of interest from the APK. If you wanna dig around you can download them here: http://www.mediafire.com/file/nf4ito90fhl4vbo/l2revonetwork.zip There is a network folder in there but im not 100% sure if that is the socket code that the game itself is using. -
Discussion L2 Revolution Private Server
Elfo replied to Elfo's topic in Server Development Discussion [L2J]
Haven't validated that yet, but asymmetric encryption for packets sounds bad. public key cryptography seems is slow and packets on TCP need to be lightning fast. Could be wrong tho. I ain't experienced in game development at all. -
So long story short ever since L2 Revolution came out i couldn't stop thinking how good the game would be if it didn't have the restrictions and the paywalls it has. I've been working on creating the login server and after a lot of decompiling and tests i was able to replicate the login process outside of the application programmatically . It is just a simple back end forth over simple SSL and it happens as part of the java side of the app so i was able to emulate it because i decompiled the APK. The gameserver connections is a TCP socket connection over the 12000 port. The problem is that the payload of the packets is encrypted (ofc) but the whole decryption thing happens inside the UE4 side of the app and im not good with encryption so I don't know how to find the key. I would assume that a key is being exchanged during the login but there was nothing i could find. Anyone tried to do something similar or anyone good with packets and encryption? Thanks
-
Make melron L2jDev end of story
