Jump to content
Kari

Homunculus AI Improvement?

Recommended Posts

Sorry if this has been mentioned before, I did a bunch of searches and couldn't find anything on the topic.

 

Is it possible for Hercules to update the way Homunculus AI interacts with it, so that AIs such as AzzyAI would work with it?

Currently, AzzyAI is hands down, the best public AI for Homunculus and Mercenaries.

 

However, it doesn't work on any private server that I know of.

 

On the Warp Portal forums, Azzy said:

 

AzzyAI does not work on illegal private servers. Identification of actor
types (particularly for mercenaries, though I think homuns break too)
relies on the actor ID distribution scheme used by the official server.
Illegal private servers do not distribute actor IDs in the same way, and
hence, all targeting functionality will be lost.


 

So, would it be possible to update this at all? As-is, most AIs do not properly work with Hercules [or e/rAthena for that matter], and the few that do are so basic that Homunculus are rarely used outside of AFKing.

Share this post


Link to post
Share on other sites

I don't know if that works, but maybe try to use it and see if it's working? It's possible Azzy's bluffing his way out. Other AIs I know for Homunculus are, for example, Rampage AI Lite, which claims it's better to AzzyAI?

Share this post


Link to post
Share on other sites

I don't know if that works, but maybe try to use it and see if it's working? It's possible Azzy's bluffing his way out. Other AIs I know for Homunculus are, for example, Rampage AI Lite, which claims it's better to AzzyAI?

 

I've tried it on the server I'm playing on, which is running Hercules, and it didn't work. Homunculus wouldn't attack or pretty much do anything. I tried RAIL at some point, I think it produced errors with the client, that or it didn't work.

 

The only reason I found Azzy's quote is because I googled to see if anyone else got AzzyAI working on private servers.

Share this post


Link to post
Share on other sites

Yommy has analysed it and provided information on the necessary changes, I'll play with it a bit and with luck commit the fix today.

Share this post


Link to post
Share on other sites

Yommy has analysed it and provided information on the necessary changes, I'll play with it a bit and with luck commit the fix today.

Amazing. Looking forward to it.

Share this post


Link to post
Share on other sites

wooo. I forgot to update this =x. Through the data Yommy harvested on November 29th, my findings:

- The official ID ranges are dumb: mob/homun/merc/elem/skill-units share the 1-50k range (his script caps the range at 42k, thats wrong btw) aegis sucky design is able to maintain that, thus why officials run on so many servers, because the 50k range can be offset into multiple zones, on our design (thousand times better (and efficient), must I emphasise) it would limit the amount of such units (e.g. default settings have 47k mobs, by using the official range map servers would have little room for more or custom mobs, nevermind homuns/skill-units/etca)

- Thanks to yommy again I was able to determine no client functionality is lost by us using custom ranges, the game clients do not rely on the ranges (have not for many years), instead it relies on objecttype -- this is used to determine what a unit is, not by its id.

- Even though the ids are different, it doesn't mean the AI cannot be used (I was successful at getting it to work, with 6 edits, as I will demonstrate)

-- all files that follow are located in his ./AI/USER_AI, do not mistake it for those in the ./AI/ folder.

--- in AI_MAIN.lua

---- Find "if (v > MagicNumber2) then" change to "if (v >= MagicNumber2 and v <= MagicNumber3) then"

---- Find "if (v < MagicNumber) then" change to "if (v >= MagicNumber) then"

---- Find "elseif (v < MagicNumber) then" change to "elseif (v >= MagicNumber) then"

--- in AzzyUtil.lua

---- Find "if (m < MagicNumber) then" change to "if (m >= MagicNumber) then"

---- Find "elseif (id > MagicNumber2) then" change to "elseif (id >= MagicNumber2 and id <= MagicNumber3) then"

---- Find "if (id>MagicNumber2) then" change to "if (id>=MagicNumber2 and id <= MagicNumber3) then"

--- Lastly, in Defaults.lua

---- Find:

MagicNumber		=42000MagicNumber2		=100000
Replace the chunk with:
MagicNumber		=110000000MagicNumber2		=2000000MagicNumber3		=100000000
- Special Thanks to Yommy, Haru.

Share this post


Link to post
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.   Restore formatting

  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.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.