AzzyAI 1.41 - Legacy version. Latest 1.50 is recommended. - Page 2 - Homunculus Headquarters - WarpPortal Community Forums

Jump to content


Photo
- - - - -

AzzyAI 1.41 - Legacy version. Latest 1.50 is recommended.


  • Please log in to reply
80 replies to this topic

#26 DrAzzy

DrAzzy

    Really Azzy? Already?

  • VMod Retired
  • 15606 posts
  • LocationNew England
  • Playing:Ragnarok Online
  • Server:Chaos-Clandestine Society

Posted 14 April 2012 - 02:14 PM

A friend of mine has this issue where his Vanilmirth will double or triple bolt everything in OD1, even when everything on his settings appears to be telling it to use Caprice only once. I can't really reproduce the issue because my homunculus one-shots everything there, but I'm pretty sure a critical issue like this one would have been noticed before... so it must be something on his settings, we just can't figure out what. Would you please take a look, Azzy?

http://dl.dropbox.co...UG/H_Config.lua
http://dl.dropbox.co...BUG/H_Extra.lua
http://dl.dropbox.co...G/H_Tactics.lua
http://dl.dropbox.co...BUG/TraceAI.txt


Rescue forces target changes, target changes cause skill use status to be forgotten. If you've got it repeatedly rescuing monsters, it will use skills more than it is supposed to. I'm aware of this issue, but fixing it is a semi-big deal (means replacing a single variable with a global array, and then maintaining that array to address dead/vanished targets), and I'm not sure it's worth doing and debugging.


Okay, i'm probably not using the right search words, but i'm having a hard time trying to get Mercenaries to ignore monsters. They just go and attack everything they see(unless its a plant).

I have the monster ID there correctly. i know i'm using the correct one because i just copied it from the Homunculus tab. and My homunculus listens to me.(i dont have them out at the same time)

If i set the default tactic to ignore, then they just ignore everything. So that seems to tell me that for whatever reason, the mercenary just isn't seeing that i programmed it to ignore certain monsters. But know my Homunculus ignores them.

Mercenaries cannot detect the type of monster, whilst homunculus can. The only way to do what you want is to use a homunculus to find out the ids of all of that type of monster on that map. i.e. If there are 80 Piranas on a map then you will need 80 lines of tactics for each individial monster.

The monster ids will usually change with every maintainence.

Autodetect plant is a special case where it is simply detecting a monster that doesn't move.


Exactly. There are only two cases in which mercenaries can recognize and react to differnet kinds of monsters:
1) if AutoDetectPlant=1, the AI will use the plant tactic for monsters that it has not seen move or attack.
2) Monsters which are created through artificial means can be recognized by how the server assigns actor ID's to them, and use the Default Summon tactic (these are set to react by default, so your merc won't attack things summoned with Summon Flora). This isn't perfect, because on maps with timed spawns, under certain adverse conditions, mobs can spawn with unnatural looking IDs, when they're natural spawns. But this is overall not a major problem.

In 1.50, the GUI will not allow you to add new tactics for mercs if there isn't some approximation of a MobID file present, to prevent complaints of this sort. I've really tried to make this clear, and it seems that even bright red text, and multiple warnings in the documentation isn't sufficient, so we'll be more forceful about communicating this to the user in 1.50.

When I set up tactics support for mercenaries, I had high hopes that I would be able to generate a MobID file with only a few measurements (derive the list for the whole map server from observing one specific monster's ID). This turned out not to be possible, so we're left with a lovely tactics system that is of severely limited utility. Oh well.
  • 0

#27 furianz

furianz

    I am New.

  • Members
  • 4 posts
  • Playing:Ragnarok Online

Posted 14 April 2012 - 03:15 PM

Hey there, I've searched and couldn't find anything about it so figured I'd post it here. The move bounds and aggro distance do not seem to have an effect. I had an issue where my homun would run so far that it would dissapear so I lowered move bounds to 8 and aggro dist to 7 and I'm still having the same problem. All other features of the AI seem to be working fine.
Was also having an issue with homun randomly switching targets (usually after casting on its first target once) but this seems to have been fixed after updating yesterday.
  • 0

#28 DrAzzy

DrAzzy

    Really Azzy? Already?

  • VMod Retired
  • 15606 posts
  • LocationNew England
  • Playing:Ragnarok Online
  • Server:Chaos-Clandestine Society

Posted 14 April 2012 - 03:30 PM

Hey there, I've searched and couldn't find anything about it so figured I'd post it here. The move bounds and aggro distance do not seem to have an effect. I had an issue where my homun would run so far that it would dissapear so I lowered move bounds to 8 and aggro dist to 7 and I'm still having the same problem. All other features of the AI seem to be working fine.
Was also having an issue with homun randomly switching targets (usually after casting on its first target once) but this seems to have been fixed after updating yesterday.


You apparently didn't search the documentation included with the AI. Per documentation, AggroDist and MoveBounds are no longer used, instead StationaryMoveBounds/MobileMoveBounds and StationaryAggroDist/MobileAggroDist - these are used when the owner is stationary or moving (they're different so you can have it go to the edges of the screen while standing still, and also hopefully have it not get left behind while you're moving. These are set in H_Extra and M_Extra (for homun and merc respectively. Note that you need to hand edit these files because my GUI doesn't save them correctly, see the documentation for more details).

It should not, EVER, be able to move off the screen if the owner is standing still. 1.41 actually overrides the Move() function and will not move (with an error message in AAI_ERROR.log) if the AI tries to move off screen. Is it walking off screen or is it getting knocked off screen?

If it's walking off screen, can you please take a tracert while it walks off screen, if possible, as well as providing any entries in AAI_ERROR.log (made in your RO folder, same place as traceai.txt)
  • 0

#29 BrunoFerreira

BrunoFerreira

    I made it Off Topic

  • Members
  • 21 posts
  • LocationRio de Janeiro, Brazil
  • Playing:Ragnarok Online
  • Server:Valkyrie

Posted 14 April 2012 - 06:13 PM

Rescue forces target changes, target changes cause skill use status to be forgotten. If you've got it repeatedly rescuing monsters, it will use skills more than it is supposed to. I'm aware of this issue, but fixing it is a semi-big deal (means replacing a single variable with a global array, and then maintaining that array to address dead/vanished targets), and I'm not sure it's worth doing and debugging.


Thanks for the quick response, Azzy. I considered that option, though, and according to our tests his homunculus is still going berserk on monsters, even when there's only one in the screen. And no, the berserk options are all disabled... should we try to generate a better TraceAI file?

Edited by BrunoFerreira, 14 April 2012 - 06:15 PM.

  • 0

#30 DrAzzy

DrAzzy

    Really Azzy? Already?

  • VMod Retired
  • 15606 posts
  • LocationNew England
  • Playing:Ragnarok Online
  • Server:Chaos-Clandestine Society

Posted 14 April 2012 - 06:52 PM

Thanks for the quick response, Azzy. I considered that option, though, and according to our tests his homunculus is still going berserk on monsters, even when there's only one in the screen. And no, the berserk options are all disabled... should we try to generate a better TraceAI file?

That traceai does not contain an instance of one target being cast on twice, so yeah.
  • 0

#31 furianz

furianz

    I am New.

  • Members
  • 4 posts
  • Playing:Ragnarok Online

Posted 16 April 2012 - 03:53 AM

You apparently didn't search the documentation included with the AI. Per documentation, AggroDist and MoveBounds are no longer used, instead StationaryMoveBounds/MobileMoveBounds and StationaryAggroDist/MobileAggroDist - these are used when the owner is stationary or moving (they're different so you can have it go to the edges of the screen while standing still, and also hopefully have it not get left behind while you're moving. These are set in H_Extra and M_Extra (for homun and merc respectively. Note that you need to hand edit these files because my GUI doesn't save them correctly, see the documentation for more details).

It should not, EVER, be able to move off the screen if the owner is standing still. 1.41 actually overrides the Move() function and will not move (with an error message in AAI_ERROR.log) if the AI tries to move off screen. Is it walking off screen or is it getting knocked off screen?

If it's walking off screen, can you please take a tracert while it walks off screen, if possible, as well as providing any entries in AAI_ERROR.log (made in your RO folder, same place as traceai.txt)


Uh yeah ok so I feel like a dunce, nope didn't check the documentation. The only time I've actually seen my homun go off screen (rather than look back and he's just gone) was when chasing a zenorc so pretty sure he is actually moving off screen. Will try to get a traceai next time it happens.
  • 0

#32 Realus

Realus

    Amateur Blogger

  • Members
  • 108 posts

Posted 17 April 2012 - 06:33 AM

I know it isn't related to your most recent change to AzzyAI but...
What do I type in H_Extra.Lua if I have 2 homunc, on the same account. And I have it set up for multiple accounts already?

I currently use something like this:
function OnInit()
	 local owner=GetV(V_OWNER,MyID)
	 if owner==###### then
		  OldHomunType=VANILMIRTH
		  require "./AI/USER_AI/EIRA_Tactics.lua"
		  require "./AI/USER_AI/EIRA_Config.lua"
	 elseif owner==####### then
		  OldHomunType=VANILMIRTH
	 elseif owner==####### then
		  OldHomunType=FILIR
		  require "./AI/USER_AI/SERA_Tactics.lua"
	 end
end

But I recently added a second homunc to account 2. They will be different homunc S, so could I do something like this...

function OnInit()
	 local owner=GetV(V_OWNER,MyID)
	 if owner==###### then
		  OldHomunType=VANILMIRTH
		  require "./AI/USER_AI/EIRA_Tactics.lua"
		  require "./AI/USER_AI/EIRA_Config.lua"
	 elseif owner==####### then
***	 local htype=GetV(V_HOMUNTYPE,MyID)
***	 if htype==DIETER then
		  OldHomunType=VANILMIRTH
***	 elseif htype==BAYERI then
*** 		 OldHomunType=LIF
***	 end
	 elseif owner==####### then
		  OldHomunType=FILIR
		  require "./AI/USER_AI/SERA_Tactics.lua"
	 end
end
Stars in front of the additions I'm thinking should make it work (They aren't actually in the code; just as markers for forum use)... Unless Local or End aren't supposed to be in the middle of the code.
Unfortunately the two homunc on that account aren't quite Homunc S yet; so I can't quite just throw this in and test it myself.

==============

Edit: (I don't want to bump the thread making it look like someone has a problem, so I'll just edit this post)

Thanks, those tips will really simplify the H_Extra.Lua file.

Yeah, I'd normally indent passed the if-statements, but it was a copy paste job from your instructions to tell Homunc by S-Type, so it was kept with indention the same as the rest. I didn't actually put that in my H_Extra.Lua yet, only the one I wrote above is in that file.
When I saw it in the preview post, I was already too lazy to bring it back to a text editor and tab them all out.

Edited by Realus, 17 April 2012 - 12:54 PM.

  • 0

#33 DrAzzy

DrAzzy

    Really Azzy? Already?

  • VMod Retired
  • 15606 posts
  • LocationNew England
  • Playing:Ragnarok Online
  • Server:Chaos-Clandestine Society

Posted 17 April 2012 - 12:09 PM

Yeah, that should work (your indentations are wonky, but the interpreter doesn't care - it only matters in that I have trouble reading it so I fixed them)
function OnInit()
	 local owner=GetV(V_OWNER,MyID)
	 if owner==###### then
		  OldHomunType=VANILMIRTH
		  require "./AI/USER_AI/EIRA_Tactics.lua"
		  require "./AI/USER_AI/EIRA_Config.lua"
	 elseif owner==####### then
			  local htype=GetV(V_HOMUNTYPE,MyID)
			  if htype==DIETER then
				   OldHomunType=VANILMIRTH
			  elseif htype==BAYERI then
				   OldHomunType=LIF
			  end
	 elseif owner==####### then
		  OldHomunType=FILIR
		  require "./AI/USER_AI/SERA_Tactics.lua"
	 end
end

You can simplify it as follows though - recall that you never have to declare OldHomunType==VANILMIRTH, because the game can detect vani's (though you can overwrite that in OnInit() (that's done after autodetecting vani's), so you can muck things up by setting it to something else).

So:
function OnInit()
	 local owner=GetV(V_OWNER,MyID)
	 if owner==###### then
		  require "./AI/USER_AI/EIRA_Tactics.lua"
		  require "./AI/USER_AI/EIRA_Config.lua"
	 elseif owner==####### then
			  local htype=GetV(V_HOMUNTYPE,MyID)
			  if htype==BAYERI then
				   OldHomunType=LIF
			  end
	 elseif owner==####### then
		  OldHomunType=FILIR
		  require "./AI/USER_AI/SERA_Tactics.lua"
	 end
end

You don't need OldHomunType=FILIR either, if you've left the OldHomunType=FILIR line uncommented at the start of H_Extra

Actually, you could simplify it even further by setting OldHomunType=LIF at the start of H_Extra, and then the AI would be able to sort itself out for account number 2, and you could just do:

OldHomunType=LIF
... (all the rest of H_Extra will probably be here)
function OnInit()
	 local owner=GetV(V_OWNER,MyID)
	 if owner==###### then
		  require "./AI/USER_AI/EIRA_Tactics.lua"
		  require "./AI/USER_AI/EIRA_Config.lua"
	 elseif owner==####### then
		  OldHomunType=FILIR
		  require "./AI/USER_AI/SERA_Tactics.lua"
	 end
end

All three of those are different ways of achieving the same thing. I haven't tested any of them, so there may be typos or silly little things, but those approaches will all work.

Edited by DrAzzy, 17 April 2012 - 12:10 PM.

  • 0

#34 DrAzzy

DrAzzy

    Really Azzy? Already?

  • VMod Retired
  • 15606 posts
  • LocationNew England
  • Playing:Ragnarok Online
  • Server:Chaos-Clandestine Society

Posted 26 April 2012 - 07:09 AM

Didja all know that word autosave doesn't work if you're working with the document on a USB drive?

Had 1.50 documentation about 75% done, lost everything!
  • 0

#35 Tetsamaru

Tetsamaru

    Too Legit To Quit

  • Members
  • 1458 posts
  • Playing:Ragnarok Online
  • Server:Chaos

Posted 26 April 2012 - 08:41 AM

that suuuuuuuuuuuuuuuuuuuuuuuuuuuucks.............
  • 0

#36 Ramen

Ramen

    Too Legit To Quit

  • RO Fungineering
  • 1990 posts
  • LocationEientei
  • Playing:Ragnarok Online
  • Server:Chaos

Posted 26 April 2012 - 01:49 PM

Not sure if anyone else is experiencing this, but my Mercenary seems extremely sluggish. It's almost like he's on Standby, even though he shouldn't be. Half the time it won't go attack monsters unless they attack my character or the mercenary first. Very annoying.
  • 0

#37 Tetsamaru

Tetsamaru

    Too Legit To Quit

  • Members
  • 1458 posts
  • Playing:Ragnarok Online
  • Server:Chaos

Posted 26 April 2012 - 03:20 PM

Are you teleporting alot? Usually when I do that, the Ai doesn't kick in till after I give the Mercenary a direct command, then they go back to being super aggressive and attacking everything in sight without my input.
  • 0

#38 Ramen

Ramen

    Too Legit To Quit

  • RO Fungineering
  • 1990 posts
  • LocationEientei
  • Playing:Ragnarok Online
  • Server:Chaos

Posted 27 April 2012 - 12:11 AM

Nah, I'm in the habit of just walking around with them.
  • 0

#39 DrAzzy

DrAzzy

    Really Azzy? Already?

  • VMod Retired
  • 15606 posts
  • LocationNew England
  • Playing:Ragnarok Online
  • Server:Chaos-Clandestine Society

Posted 27 April 2012 - 05:54 AM

If you have walked within the past 1.5 seconds or so, it will have a much shorter aggro range (see StationaryAggroDist, StationaryMoveBounds in documentation, these options are in H_Extra which needs to be edited directly per documentation) - the intent here is to make it not get left behind when it aggros something near the edge of the screen while you walk away from said edge. If this is what's happening, raise those limits.

By default, the homunculus will behave aggressively only when it has more than 60% HP - you can change that with the AggroHP option.
  • 0

#40 FlorenciaRac

FlorenciaRac

    I made it Off Topic

  • Members
  • 66 posts
  • LocationBahia Blanca, Buenos Aires, Argentina
  • Playing:Ragnarok Online
  • Server:Valkyrie

Posted 27 April 2012 - 01:37 PM

It's only me, or the Vanilmirth/Bayeri have a huuuuuge delay after casting a bolt skill?

I mean, my Bayeri cast Caprice and sometimes he get like frozen for 3 seconds until he start attack with normal atk again... is this normal?
  • 0

#41 DrAzzy

DrAzzy

    Really Azzy? Already?

  • VMod Retired
  • 15606 posts
  • LocationNew England
  • Playing:Ragnarok Online
  • Server:Chaos-Clandestine Society

Posted 27 April 2012 - 04:08 PM

It's only me, or the Vanilmirth/Bayeri have a huuuuuge delay after casting a bolt skill?

I mean, my Bayeri cast Caprice and sometimes he get like frozen for 3 seconds until he start attack with normal atk again... is this normal?

This is a known game bug. It seems like if the homun gets hit at the wrong time while casting a bolt, the game shows it in the flinch animation and stops calling AI().

It gets better over time, or it seems to (seems to be a function of attack speed, and ofc, it only happens if it gets hit).
  • 0

#42 FlorenciaRac

FlorenciaRac

    I made it Off Topic

  • Members
  • 66 posts
  • LocationBahia Blanca, Buenos Aires, Argentina
  • Playing:Ragnarok Online
  • Server:Valkyrie

Posted 27 April 2012 - 04:56 PM

This is a known game bug. It seems like if the homun gets hit at the wrong time while casting a bolt, the game shows it in the flinch animation and stops calling AI().

It gets better over time, or it seems to (seems to be a function of attack speed, and ofc, it only happens if it gets hit).



Okay thanks! I wish it get better... anyway I'm starting to hate the idea of getting the AoE (And its just splash T_T) at lvl 135+.. and also that the Bayeri's skills aren't so great.
  • 0

#43 Perezoso15

Perezoso15

    Too Legit To Quit

  • Members
  • 1041 posts
  • LocationGironland~
  • Playing:Ragnarok Online
  • Server:Valk->Chaos

Posted 27 April 2012 - 06:12 PM

I've seen that Amistr doesn't cast Amistr bulwark automatically until it's around lvl 60 or so,maybe it's because of the low SP it has but i wanted to report to make sure.Now mine's lvl 66 and casts it normally.
  • 0

#44 DrAzzy

DrAzzy

    Really Azzy? Already?

  • VMod Retired
  • 15606 posts
  • LocationNew England
  • Playing:Ragnarok Online
  • Server:Chaos-Clandestine Society

Posted 27 April 2012 - 06:24 PM

I've seen that Amistr doesn't cast Amistr bulwark automatically until it's around lvl 60 or so,maybe it's because of the low SP it has but i wanted to report to make sure.Now mine's lvl 66 and casts it normally.

Turn off UseSmartBulwark to fix this - it assumes that all amistrs have bloodlust, so its trying to keep 120 SP available to cast that.

I'll smarten up the logic around that a bit for 1.50, so it will disable it if you don't have enough SP for it to make sense, or if bloodlust autocast is disabled.

Edited by DrAzzy, 27 April 2012 - 06:24 PM.

  • 0

#45 jakeymoo1

jakeymoo1

    I am New.

  • Members
  • 5 posts
  • LocationIn yo closet wearin yo clothes
  • Playing:Ragnarok Online
  • Server:Ymir, come at me

Posted 29 April 2012 - 05:55 PM

Hey, I was just wondering why exactly my mercenary doesn't attack monsters that are aggro on me until they actually attack me. I have been searching and looking for a way to make it attack them but its kinda getting irritating.
  • 0

#46 DrAzzy

DrAzzy

    Really Azzy? Already?

  • VMod Retired
  • 15606 posts
  • LocationNew England
  • Playing:Ragnarok Online
  • Server:Chaos-Clandestine Society

Posted 29 April 2012 - 06:52 PM

Hey, I was just wondering why exactly my mercenary doesn't attack monsters that are aggro on me until they actually attack me. I have been searching and looking for a way to make it attack them but its kinda getting irritating.

Do you have my AI installed correctly? (check for AAIStartM.txt in your RO folder).

On default settings, mercenary is aggressive when it has 60% or more of it's HP, and otherwise will only attack things that attack mercenary or owner.
  • 0

#47 jakeymoo1

jakeymoo1

    I am New.

  • Members
  • 5 posts
  • LocationIn yo closet wearin yo clothes
  • Playing:Ragnarok Online
  • Server:Ymir, come at me

Posted 29 April 2012 - 07:10 PM

Yes i do have the program installed as i have the AAIStartM and H
  • 0

#48 DrAzzy

DrAzzy

    Really Azzy? Already?

  • VMod Retired
  • 15606 posts
  • LocationNew England
  • Playing:Ragnarok Online
  • Server:Chaos-Clandestine Society

Posted 29 April 2012 - 07:13 PM

Are you fighting monsters that don't move like geographers?
  • 0

#49 jakeymoo1

jakeymoo1

    I am New.

  • Members
  • 5 posts
  • LocationIn yo closet wearin yo clothes
  • Playing:Ragnarok Online
  • Server:Ymir, come at me

Posted 29 April 2012 - 07:26 PM

I'm trying to mob up orc zombies on a lowbie swordie and get a level 10 fencer too BB them automaticly.
  • 0

#50 DrAzzy

DrAzzy

    Really Azzy? Already?

  • VMod Retired
  • 15606 posts
  • LocationNew England
  • Playing:Ragnarok Online
  • Server:Chaos-Clandestine Society

Posted 29 April 2012 - 07:32 PM

Likely MobileAggroDist and MobileMoveBounds are too low - the range that the merc/homun will attack within defaults to being fairly small if the owner has moved in the past 1 second or so - the idea being that he's probably trying to move, and the homun shouldn't wander off and start attacking stuff that it will just have to leave behind. Try lowering those, they're set in M_Extra.lua (has to be manually edited per documentation)
  • 0




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users