Author Topic: Rampage AI Lite  (Read 33681 times)

Offline Rae

  • Jr. Member
  • **
  • Posts: 9
    • View Profile
Re: Rampage AI Lite
« Reply #15 on: April 30, 2010, 01:45:19 PM »
This AI seemed to work fine with my Vani but for some reason it errors constantly that I have to force quit RO when I have Lif out. is there any way to fix it? :confused: it was something about the skills not working I wasn't really sure x_x;



Offline faithful

  • Jr. Member
  • **
  • Posts: 36
    • View Profile
Re: Rampage AI Lite
« Reply #16 on: May 04, 2010, 05:52:12 AM »
Quote from: johnnycakes;749537
I started using RAIL yesterday. It's awesome! I'm new to the whole AI thing, but it is alot of fun. Thanks! I'll send any bugs I find your way.


Thanks. I'm glad you like it, and look forward to bug reports!

Quote from: Sittius;753133
Big thanks to faithful. RAIL seems to be worth trying.
I have a problem with homunculus tactics. Can't figure out how to configure it. Which file should I edit? Maybe someone will post example?
Thank you in advance.


In addition to the time it takes to write the script, I've also spent time to write documentation. The documentation can be found on the website (under the Wiki section). With default settings, your configuration file will be located in the same directory as "ragnarok.exe" or "ragexe.exe". It will be called something along the lines of RAIL_State.xyz.lua. You may be able to find it by searching for a file named "RAIL_State".

Quote from: Rae;759317
This AI seemed to work fine with my Vani but for some reason it errors constantly that I have to force quit RO when I have Lif out. is there any way to fix it? :confused: it was something about the skills not working I wasn't really sure x_x;


Unfortunately, this was due to a bug introduced right before I went on a long weekend trip. It should be fixed now. Let me know if you're still having problems.

Offline Sittius

  • Jr. Member
  • **
  • Posts: 3
    • View Profile
Re: Rampage AI Lite
« Reply #17 on: May 04, 2010, 07:31:08 PM »
Quote from: faithful;764322
Quote from: Sittius;753133
Big thanks to faithful. RAIL seems to be worth trying.
I have a problem with homunculus tactics. Can't figure out how to configure it. Which file should I edit? Maybe someone will post example?
Thank you in advance.

In addition to the time it takes to write the script, I've also spent time to write documentation. The documentation can be found on the website (under the Wiki section). With default settings, your configuration file will be located in the same directory as "ragnarok.exe" or "ragexe.exe". It will be called something along the lines of RAIL_State.xyz.lua. You may be able to find it by searching for a file named "RAIL_State".


I've seen Wiki, of course, prior to writing here, and the file is in folder with RO. Perhaps there is some misunderstanding?
I meant configuration of homunculus (without mercenary) for fighting with monsters certain types using predefined tactics, like in Rampage AI file Monsters.lua. Something like this:
{ 1078, prio=0, atk=true, skLvl=0, aSkLv=0 }
Or is it not implemented? Sorry if I'm bother you with wrong questions. I'm newbie in this AI things.

Offline faithful

  • Jr. Member
  • **
  • Posts: 36
    • View Profile
Re: Rampage AI Lite
« Reply #18 on: May 04, 2010, 11:20:19 PM »
Quote from: Sittius;765245
I've seen Wiki, of course, prior to writing here, and the file is in folder with RO. Perhaps there is some misunderstanding?
I meant configuration of homunculus (without mercenary) for fighting with monsters certain types using predefined tactics, like in Rampage AI file Monsters.lua. Something like this:
{ 1078, prio=0, atk=true, skLvl=0, aSkLv=0 }
Or is it not implemented? Sorry if I'm bother you with wrong questions. I'm newbie in this AI things.


Monster configuration is also contained in the RAIL_State file. I haven't yet had time to document the "ActorOptions" set. There are three sub-sets for ActorOptions: Default, ByType, ByID. (Naturally, ByType is not used by mercenaries unless they use Mob-ID file or actively coordinate with a homunculus.) The RAIL_State file is more verbose than the original's Monsters.lua file, and your example would be written in the RAIL_State file as:

Code: [Select]
rail_state["ActorOptions"]["ByType"][1078] = {}  -- Create subtable for monsters of type 1078 *** Very Important to include this line ***
rail_state["ActorOptions"]["ByType"][1078]["Priority"] = 0 -- Set priority of type-1078 monsters to 0.
rail_state["ActorOptions"]["ByType"][1078]["AttackAllowed"] = true  -- Allow attacks against type-1078 monsters
rail_state["ActorOptions"]["ByType"][1078]["SkillsAllowed"] = false -- Don't allow skills against type-1078 monsters


(You'll notice, of course, that RAIL does not have a corresponding option for aSkLvl because Alchemist skills are obsolete now.)

Because of the way that RAIL works with its state files, the comments would be automatically removed. This is one side-effect of having an actively checked and updated state-file. On the other hand, advantages include the ability to write:

Code: [Select]

rail_state.ActorOptions.ByType[1078] = {
  Priority = 0,
  AttacksAllowed = true,
  SkillsAllowed = false,
}


This example would work just as well, and RAIL will convert it to the above format.

Offline Sittius

  • Jr. Member
  • **
  • Posts: 3
    • View Profile
Re: Rampage AI Lite
« Reply #19 on: May 05, 2010, 04:11:59 AM »
Quote
I haven't yet had time to document the "ActorOptions" set.

Maybe you should just put this entire post in project wiki  :)
So, it is "ActorOptions". Great! Now it's time for some testing :)
Looking forward to RAIL updates.
Thank you very much :)

Offline fatealerion

  • Full Member
  • ***
  • Posts: 147
    • View Profile
Re: Rampage AI Lite
« Reply #20 on: May 05, 2010, 05:40:28 PM »
As for leveling with the lif it would be nice to have a threshold of alchemist HP to have it cast healing hands, such as if you are at 20% hp lif casts healing hands if able. As for MC on a lif, once you get that, that is all you do; MC with your lif. Maybe would you use it to heal yourself but rarely if ever would you.
FateAlerion 99/70 SinX
Broken Staff 9x/6x HP

one of these days i\'ll get around to fixing this profile, Till then I lurk.

Offline Blueness

  • Sharklets
  • Administrator
  • Hero Member
  • *****
  • Posts: 7680
    • View Profile
    • http://rostory.org
Re: Rampage AI Lite
« Reply #21 on: May 05, 2010, 08:40:50 PM »
Problem is, it can't use healing hands if it has MC up, so the only time that would be useful is if you could program it to HH you after you tele but before it auto casts MC.
iRO Classic, iRO Ymir, iRO Loki, iRO Valkyrie, iRO Sakray Goodbye RO! | ropd | http://www.rainymood.com

breeg : if you ds fast enough it\'s kinda like having them exp tap shit for you

Doddler: I feel bad for anyone who came to classic RO actually wanting the classic experience.

Offline faithful

  • Jr. Member
  • **
  • Posts: 36
    • View Profile
Re: Rampage AI Lite
« Reply #22 on: May 07, 2010, 07:49:22 AM »
Quote from: Bluedreams;766909
Problem is, it can't use healing hands if it has MC up, so the only time that would be useful is if you could program it to HH you after you tele but before it auto casts MC.


That's what I figured, but what I'm trying to get as is what it should do when you teleport into a mob with low HP. Should it first MC and try to kill faster, or should it try to keep you alive with HH while it more slowly takes things down? Or should it just forget about you because there's a mob?

Offline Steax

  • So why am I here again?
  • Hero Member
  • *****
  • Posts: 1780
    • View Profile
    • http://r7.web.id/
Re: Rampage AI Lite
« Reply #23 on: May 07, 2010, 10:27:49 AM »
I'd love to see an adaptive AI, please, since this seems to be the most currently active AI. For example, if leveling at high orcs, a merc can attempt to kill an or archer and then a high orc, and evaluates the damage taken and time it took to kill. Use this data to then evaluate which monster to engage with first, or if it should run to a position with potentially more monsters, or if it should concentrate on monsters attacking it's master first because the master is in too much danger.
Recently moved to iRO Renewal. Usually on the character Afrost.
If I\'m not ingame, I\'m often online for wiki editing.

Offline Blueness

  • Sharklets
  • Administrator
  • Hero Member
  • *****
  • Posts: 7680
    • View Profile
    • http://rostory.org
Re: Rampage AI Lite
« Reply #24 on: May 07, 2010, 04:38:06 PM »
Quote from: faithful;768859
Quote from: Bluedreams;766909
Problem is, it can't use healing hands if it has MC up, so the only time that would be useful is if you could program it to HH you after you tele but before it auto casts MC.


That's what I figured, but what I'm trying to get as is what it should do when you teleport into a mob with low HP. Should it first MC and try to kill faster, or should it try to keep you alive with HH while it more slowly takes things down? Or should it just forget about you because there's a mob?


From my experience, best option is to MC and start killing stuff while I spam pots ;)

A lif without MC up is a useless lif.
iRO Classic, iRO Ymir, iRO Loki, iRO Valkyrie, iRO Sakray Goodbye RO! | ropd | http://www.rainymood.com

breeg : if you ds fast enough it\'s kinda like having them exp tap shit for you

Doddler: I feel bad for anyone who came to classic RO actually wanting the classic experience.

Offline Hrishi

  • Sliver
  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1103
    • View Profile
Re: Rampage AI Lite
« Reply #25 on: May 07, 2010, 05:41:18 PM »
^ agreed! If the Lif has MC, it's probably best to do that than anything else.

Offline faithful

  • Jr. Member
  • **
  • Posts: 36
    • View Profile
Re: Rampage AI Lite
« Reply #26 on: May 12, 2010, 07:49:11 AM »
Quote from: Steax;769021
I'd love to see an adaptive AI, please, since this seems to be the most currently active AI. For example, if leveling at high orcs, a merc can attempt to kill an or archer and then a high orc, and evaluates the damage taken and time it took to kill. Use this data to then evaluate which monster to engage with first, or if it should run to a position with potentially more monsters, or if it should concentrate on monsters attacking it's master first because the master is in too much danger.


I'm planning to add a plugin system to Rampage AI Lite in the near future, and this should be a perfect "example" plugin. It will take some work, so don't expect anything right away. (I'm also quite busy outside of working on RAIL, which slows things down more. Sorry.) That being said, I do plan to add such a feature.

You mentioned briefly "or if it should concentrate on monsters attacking it's master first." I should point out that Rampage AI Lite has a similar defense thresholding system as Rampage AI original, so it has a rather complex way of prioritizing defense. I have not yet written the documentation for Rampage AI Lite, but you can read the documentation for Rampage AI if you're curious.

Quote from: Bluedreams;769586
[From my experience, best option is to MC and start killing stuff while I spam pots ;)

A lif without MC up is a useless lif.


Quote from: Drazorn;769642
^ agreed! If the Lif has MC, it's probably best to do that than anything else.


Okay. With the most recent update (revision 168), I've implemented both Healing Hands and a bit of logic for MC. Healing Hands will automatically try to heal the alchemist/biochemist when HP drops below 50% (this is configurable). It will only start trying to heal after 3 seconds of being idle (again, configurable).

Urgent Escape will be activated if the alchemist moves, or if the lif starts chasing a monster. MC will be activated if the lif starts attacking or chasing a monster. By default, MC takes priority over UE.

Hopefully the default values will work intuitively. If you teleport into a mob, MC should activate right away. If you teleport to an empty room, Healing Hands should bring you up to 50% hp. And if you're running around town, UE should keep you moving faster than the pack.

And, of course, it can all be configured differently in the state-file if the defaults don't suffice. (This includes the conditions for cast, but I haven't written any documentation on that yet...)

In any case, please test it and let me know how it's working for you now. :D One situation that may not be working as intended is teleport-killing. It may remember the time that it cast, and think that MC is still active when its not. Can you check this for me?

Offline Blueness

  • Sharklets
  • Administrator
  • Hero Member
  • *****
  • Posts: 7680
    • View Profile
    • http://rostory.org
Re: Rampage AI Lite
« Reply #27 on: May 12, 2010, 07:56:55 AM »
The AI I used to use basically activated MC if it saw something to kill, but the problem with auto UE is that if I teleport somewhere and walk a screen to find something to kill and it already autocasted UE, I have to vap/recall to MC then. UE has a large delay before it lets you cast anything!
iRO Classic, iRO Ymir, iRO Loki, iRO Valkyrie, iRO Sakray Goodbye RO! | ropd | http://www.rainymood.com

breeg : if you ds fast enough it\'s kinda like having them exp tap shit for you

Doddler: I feel bad for anyone who came to classic RO actually wanting the classic experience.

Offline retsuya

  • Full Member
  • ***
  • Posts: 111
    • View Profile
Re: Rampage AI Lite
« Reply #28 on: May 14, 2010, 10:20:46 PM »
why cant i download rail? it says it cant connect to server.
"Error: OPTIONS of 'http://ro-rail.googlecode.com/svn/trunk': could not connect to  
Error: server (http://ro-rail.googlecode.com)"

Offline faithful

  • Jr. Member
  • **
  • Posts: 36
    • View Profile
Re: Rampage AI Lite
« Reply #29 on: May 18, 2010, 01:46:08 AM »
Quote from: retsuya;778515
why cant i download rail? it says it cant connect to server.
"Error: OPTIONS of 'http://ro-rail.googlecode.com/svn/trunk': could not connect to  
Error: server (http://ro-rail.googlecode.com)"


You've answered your own question: You can't download RAIL because you can't connect to the server. Since I don't host the code myself, I can only suggest actions for you to take:
  • Try again later; Google's servers could be temporarily down.
  • Check that you can connect to other Google services.
  • Check that your ISP is not blocking or filtering your connection attempts.
  • Try using OpenDNS; OpenDNS servers are more reliable than most ISP-run DNS servers.
  • Contact your ISP and/or Google for support.