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

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now



  • Posts

    • L2 Insignia High Five 20x MID SERVER FOCUSED ON OLYMPIAD | PVP | AUTOFARM       OPEN BETA TEST SERVER 3 MAY 2024   GRAND OPENING 10 MAY 2024    Rates: 📜 XP/SP 20x | Spoil 15x | Drop 10x | Adena 10x 📜     Server Features: 🔥 No Olf-T Shirt, No big over-enchant, No over-power Donate 🔥 🔥 VIP Gold Color Chat, Unique Olympiad Extra Points Engine, GvG Event 🔥 🔥 Auto-Farm, LoA and DV scheduled PvP Zone, Calendar Daily Reward 🔥 🔥 Castle Instance, Solo Instance, PvP Solo Rift, Dress me system, Adena Boxes 🔥        Website: https://www.l2insignia.com  Discord: https://discord.com/invite/yEgsrHn2hQ      
    • I am selling the essence project which includes versions 388 and 439 that have been running for over 2 years or (447 as custom PVP like Pride). I have a test server for you to test them out. If you are really interested in it then contact my seller at discord: kiwi7106. Price: 4000 Euro P/s: This is a project that I have spent a lot of money and time developing, so if you are not interested in it, please get out of this topic, thank you. P/s 2: If you find the price too expensive, it's best to skip this article and find another project and don't comment negatively on my topic, thank you.
    • Someone ask me for this, it should work on any client that has Kamael race, preview:     Installation - there are two ways to install depending on how you want to use it:   Method 1: If you want to completely replace the original, do:   Copy all lines from your armorgrp to Notepad++, press Ctrl+H, check the "match whole word" option and replace:   kamael.Mkamael_m000_w_ad00   by:   AvengersKamaelWings.Avengers_MKamael_m001_w_ad00   Then replace:   MKamael.Mkamael_m000_t00_w   by:   AvengersKamaelWings.MKamael_m001_t00_w   Now repeat the same process with the female, replace:   kamael.Fkamael_m000_w_ad00   by:   AvengersKamaelWings.Avengers_FKamael_m001_w_ad00   Then replace:   FKamael.Fkamael_m000_t00_w   by:   AvengersKamaelWings.FKamael_m001_t00_w   You're done, paste everything back into File Edit and save!   Method 2: If you only want to replace in specific sets, execute the above process only on the armorgrp of those sets.   Repack by: AvengersTeamBr Password: LadrãoDeFrango      
    • 用于解密、加密和编辑 .u 文件的工具。
  • Topics

×
×
  • Create New...