Jump to content

L2jRoboto - A Fake Player Engine


Elfo

Recommended Posts

2 hours ago, valentin said:

excused the question , I saw from those videos, hit or skill is delay a 1 second,this is a problem?

 

 

No, players are barely buffed.

Melee users and archers have autoattack so its more than once a second when possible.

For mages yeah it is one per second but when i add the queuing system it will be more.

Link to comment
Share on other sites

42 minutes ago, valentin said:

372 last version dont  work

Well apparently (If you read the comments above) if you fix one change that acis did, it will work.

Link to comment
Share on other sites

I will start working on a kinda important update today.

The FakePlayerAI will be split two two AIs, one for combat and one for general functions. This makes the system more flexible.

 

Here is a list of things that will be added. It also shows the hierarchy system im going for.

 

  • FakePlayerAI
    • CombatAI
      • Class Ais Here
    • SocialAI
      • WalkerAI
      • EnchanterAI    
    • MerchantAI
      • PrivateStoreSellAI
      • PrivateStoreBuyAI
      • CrafterAI
    • TraderAI    

 

setFakeAi drives the current AI
onFakeAiSet event will be triggered which will give all the necessary items for this ai

 

After the separation the methods will be split in the following way.

 

FakePlayerAI methods
public abstract void thinkAndAct(); 
protected void tryTargetRandomCreatureByTypeInRadius(Class<? extends Creature> creatureClass, int radius)
protected void applyDefaultBuffs()
protected abstract int[][] getBuffs();
public void castSpell(L2Skill skill)
protected void castSelfSpell(L2Skill skill)
protected void clientStopMoving(SpawnLocation loc)
protected boolean checkTargetLost(WorldObject target)
protected boolean maybeMoveToPosition(Location worldPosition, int offset)
protected void moveToPawn(WorldObject pawn, int offset)
public void moveTo(int x, int y, int z)
protected boolean maybeMoveToPawn(WorldObject target, int offset)


CombatAI methods
protected volatile boolean _clientAutoAttacking;
public boolean isPickingMageSpell()
protected abstract List<OffensiveSpell> getOffensiveSpells();
protected abstract List<HealingSpell> getHealingSpells();
protected abstract List<SupportSpell> getSelfSupportSpells();
protected abstract ShotType getShotType();
protected void tryAttackingUsingMageOffensiveSkill()
protected void handleShots()
public HealingSpell getRandomAvaiableHealingSpellForTarget()
protected BotSkill getRandomAvaiableMageSpellForTarget()
private BotSkill waitAndPickAvailablePrioritisedSpell(List<? extends BotSkill> spellsOrdered, int skillListSize)
protected L2Skill getRandomAvaiableFighterSpellForTarget()
protected void selfSupportBuffs()
protected int getArrowId()
protected int getShotId()

  • Like 1
  • Upvote 1
Link to comment
Share on other sites

6 minutes ago, Stive said:

Dont understant why you update this for every boob here to use it and tale it ready...why you kill your time for this shit..

Why do you assume i kill me time?

It is pretty fun to develop. Closed development died a long time ago. I love open source development.

 

Projects in my Github page like L2dotNET and my L2ACP got me and amazing job in an amazing company (I am actually serious i was asked about L2 in job interviews).

As a professional software engineer my portfolio is my Github page with all the open source projects i have and the contributions i do on other projects.

Recruiters and companies value that even more than past experience (at least in London which is where i am).

 

Now should i care about a bunch of kids that will use my code to do shitty things? Ofc not, that's been happening for years now.

 

If you think i gain nothing from doing this then i really really (really) feel bad for you.

Link to comment
Share on other sites

Then go work in you job and dont kill l2 cause you killing it when every noob here gets unique free codes...

i got this fakes for acis since 2 years and updating it and its made from 2 ppl that working for me from l2j team, and its really good... and now see shity home server with system not like mine but same style..

Link to comment
Share on other sites

1 minute ago, Stive said:

Then go work in you job and dont kill l2 cause you killing it when every noob here gets unique free codes...

i got this fakes for acis since 2 years and updating it and its made from 2 ppl that working for me from l2j team, and its really good... and now see shity home server with system not like mine but same style..

Well why should i care about you and your files? Mate get real.

You are just triggered because something that you probably spend money on, is shared for free for everyone to use.

Go cry on another topic.

Link to comment
Share on other sites

java.lang.NullPointerException
        at com.elfocrash.roboto.FakePlayer.checkUseMagicConditions(FakePlayer.ja
va:89)
        at com.elfocrash.roboto.ai.CombatAI.selfSupportBuffs(CombatAI.java:158)
        at com.elfocrash.roboto.ai.DestroyerAI.thinkAndAct(DestroyerAI.java:31)
        at com.elfocrash.roboto.task.AITask.lambda$run$63(AITask.java:26)
        at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
        at java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
        at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(Unknown Sou
rce)
        at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
        at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Sour
ce)
        at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknow
n Source)
        at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
        at java.util.stream.ReferencePipeline.forEach(Unknown Source)
        at com.elfocrash.roboto.task.AITask.run(AITask.java:26)
        at net.sf.l2j.commons.concurrent.ThreadPool$TaskWrapper.run(ThreadPool.j
ava:248)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
 

pls help fix it (i bad speack english)

Link to comment
Share on other sites

2 hours ago, djdiablo said:

 

pls help fix it (i bad speack english)

DO NOT POST BUGS HERE. POST THEM IN HERE FOR CHRIST SAKE

https://github.com/Elfocrash/L2jRoboto/issues

 

Also update:

 

  • Added Duelist
  • Spellcasters will now run to the target to cast the spell instead of staying idle
Edited by .Elfocrash
Link to comment
Share on other sites

17 hours ago, Stive said:

Dont understant why you update this for every boob here to use it and tale it ready...why you kill your time for this shit..

they see it like a Hobby, @.Elfocrash cant feel lineage 2 scene like you Stive and me back to 2005-2009 [nice years], now we are already to go 2018. 

Example: call of duty or leauge of legends have bots system. but you choose to play it.  its the same.

Lineage 2 will be die or grow up the same with or without bots system, and why? Think about it!

 

Link to comment
Share on other sites

5 hours ago, ZOUMHS said:

they see it like a Hobby, @.Elfocrash cant feel lineage 2 scene like you Stive and me back to 2005-2009 [nice years], now we are already to go 2018. 

Example: call of duty or leauge of legends have bots system. but you choose to play it.  its the same.

Lineage 2 will be die or grow up the same with or without bots system, and why? Think about it!

 

Why you care so much old man?

Link to comment
Share on other sites

Update

 

  • Added EnchanterAI
  • Added //spawnenchanter which spawns a random fake player with EnchanterAI

 

Enchanter AI is using the server's chances and max rates (acis doenst have safe in a config so i hardcoded it) in order to emulate a player that is trying to enchant his weapons, assuming he has unlimited scrolls and weapons.

 

Again, i suggest you use this feature to see how long it takes for a user to get to your server's max.

 

 

  • Like 2
  • Upvote 1
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.
Note: Your post will require moderator approval before it will be visible.

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