Jump to content

L2jRoboto - A Fake Player Engine


Elfo

Recommended Posts

9 hours ago, .Elfocrash said:

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

 

If you want unique skillset per AI, and it doesn't follow player level (or you want to allow people to add custom skills or passive), you are currently right. But you risk to forget a shitload of skills that way (notably passive).

 

If it follows player level, a simple getAllAvailableSkills() is enough. It still can't be generic (aka you still need one Map per instance), since it's calculated using the level.

 

Archer AI (whatever task you use to compute the behavior) handles the dodge system, it's not related to skills :P. You can litteraly copy-paste ARCHER AI behavior.

Edited by Tryskell
Link to comment
Share on other sites

5 minutes ago, Tryskell said:

 

If you want unique skillset per AI, and it doesn't follow player level (or you want to allow people to add custom skills or passive), you are currently right. But you risk to forget a shitload of skills that way (notably passive).

 

If it follows player level, a simple getAllAvailableSkills() is enough. It still can't be generic (aka you still need one Map per instance), since it's calculated using the level.

 

Archer AI (whatever task you use to compute the behavior) handles the dodge system, it's not related to skills :P. You can litteraly copy-paste ARCHER AI behavior.

Im not talking about run away to hit. Im talking about the thing that players do when they move right and left for no real reason.

 

Also the skill lists are only related to the active skills. The bots do learn all the skills including the passives for their levels.

What he was talking about is the ones that the bots will actually use not the ones they learn.

Link to comment
Share on other sites

Well, you still can use NPC system. They hold skills according types (HEAL, DEBUFF, etc). Distribution and map feed is done on loading, so there isn't redundant containers. See addSkills on NpcTemplate.

Edited by Tryskell
Link to comment
Share on other sites

11 minutes ago, maverickbomber said:

alguém poderia postar a revisão compilada, por favor, não consigo baixar por página

https://github.com/Elfocrash/L2jRoboto/archive/master.zip

Link to comment
Share on other sites

Did some testing with many bots in one area and that's where shit hits the fan. Did some optimisations but threading was never my thing in java.

 

I was able to load up to 280 bots that were fighting with Antharas at the same time. Could go higher but then i doubt i could move easily.

There is definitely a lot of room for improvement but iterating over 50 players per task in 1 second comes with performance sacrifice.

I will probably add a queue decision system where if the next decision is available at the time of the first iteration then i will queue it and exclude the bot from the next one.

 

Also keep in mind that this is the case only for the combat bots.

Idle bots, chat bots, movement/movement path bots and any other type of bot that won't require any intense calculation won't have any performance drawback.

 

 

Edited by .Elfocrash
  • Like 1
Link to comment
Share on other sites

Except from the optimization part,u should move on to the decision making.

Using full capabilities of each class (light vor + solar -> sur hydro // weakness if fighter // slow for hit n run).

Bots just spamming f1 f2 randomly (?) is less than half way.

 

i wonder how much resources that will cost.It isnt costful to prioritize 2 skill combo and do 2 extra checks per class,is it?

Link to comment
Share on other sites

12 hours ago, bravetobe said:

Except from the optimization part,u should move on to the decision making.

Using full capabilities of each class (light vor + solar -> sur hydro // weakness if fighter // slow for hit n run).

Bots just spamming f1 f2 randomly (?) is less than half way.

 

i wonder how much resources that will cost.It isnt costful to prioritize 2 skill combo and do 2 extra checks per class,is it?

They spam what’s available based on probability which means that the cooldowns drive priority. The plan is ofc to do what I did with the support skills and also add priority and target criteria

Edited by .Elfocrash
Link to comment
Share on other sites

31 minutes ago, Stive said:

Sharing this shity things you help every noob out there and kill the l2 more... Just delete this shity post..

I think you are missing the point.

i don’t encourage anyone to use it but it is insanely fun to develop so so why not share it as well.

 

now if someone wants to use it that’s none of my business

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.




×
×
  • Create New...