-
Posts
2,009 -
Credits
0 -
Joined
-
Last visited
-
Days Won
54 -
Feedback
0%
Content Type
Articles
Profiles
Forums
Store
Everything posted by Elfo
-
Well you have the stacktrace, check that is null in the lines indicated
-
I know now it looks weird because it is hard coded and everything has an equal chance of being picked but the plan it that the user can have different skill sets and different probabilities per bot ai and it will also be configurable on a file and not hardcoded. I want them to be per class because I also need some class specific mannerisms (ie archers will move a bit every other shot to give a sense of realist etc). but yeah I thought about making them generic as well
-
Update Added Titan and Dominator Added self support spells Added spell conditions for self support spells Changed the way consumables work
-
The engine is insanely organised in a way to help people with coding. You can literally copy parse the whole packet in an acis project, adapt it and share diffs. I can do the rest. In fact the fact that you were able to run it so easily proves that everyone can do it easily.
-
As I said numerous times, this is not ready for production. It is shared at this point to get anyone interesting in helping to get their hands dirty. I have thought of all those things. Names will be coming from wordlist. There will be some fact checking on how players are named. Buffs will be configurable Skills with probability will be configurable Names will have duplication check Bots will have IQ levels I would appreciate if rather than pointing out the obvious you did some coding. :)
-
No it is not a big waste of memory. Databases, especially with those simple schema, don't affect performance unless you reach million marks and even then the queries are very simple. I could have a cleanup task when the engine starts to delete any items in the db that don't belong in players. However the long term plan is that the admin should be able to save some bots if he wants in the database and load them on demand or even log in them with and admin password.
-
Right, so after i got home i dig into it and it seems that the packet send doesn't effect it at all because if the client is null it won't send anything. However i will remove them to cleanup the code but it won't make things faster. Currently in my pc you can fully load a fake player on an average of 240ms.
-
[GR]Polu kalh h idea tou Path Walker. Euxaristw Added a patch file btw.
-
Yah even tho I have latest axis I didn’t develop this on latest because not everyone has it so people sorta have to deal with it until it becomes available. Anyway today I’m planning to add the rest of the attackig classes and start working on healers. i will also add an auto log off feature after x minutes online for bots. if you have an idea please raise it as en enhancement on github. Thanks
-
Add me on skype desolatedpewpew we can check it together but yeah I have a very high end pc so that’s probably why
-
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
- 254 replies
-
- 13
-
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.