RevisionHistory

From ISXOgre\EverQuest1
Revision as of 12:41, 13 October 2014 by Kannkor (Talk | contribs)

Jump to: navigation, search

Revision history


This page needs some formatting! Later...


Oddities

  • This is mostly a section for Kannkor.. just odd things I need to look at, at a later time.
  • Necro "Night Fire" and "Pyre of Mori" are being listed as different spell lines because BookIcon is different. See if the trend continues, or if it's this one spell.
  • When an aura is auto-upgraded in the bot, the old one needs to be cancelled or you get a error that it can't be cast yet.

In development (Not released yet)

  • ISXOgre
    • Ogre Bot and Ogre Bot Toonname now work properly.
  • Face/Melee/send pet
    • Now all work when the NPCs health is correct, and no longer are concerned with your mana/hp/en thresholds.
  • Added 'ranged Attack'
    • Works like the following:
    • If MELEE ATTACK is checked also, then Ranged attack will only turn on if you are OUT of melee range.
    • The NPC has to be within 100 meters.
  • Note: 'Turn off attack' will turn off ranged attack now also.
  • Made 'Face NPC' only face if you are within 125 meters. I plan to revisit this later.
  • Bards are now immune to the Group Buff distance check.
  • Group members not in the zone will no longer cause the group buff check to fail.
  • MCP
    • Added CastOn <ForWho> <Spell|AA Name> <Player Name>
    • Added CastOn_AA <ForWho> <Spell|AA Name> <Player Name>
    • Added CastOn_Spell <ForWho> <Spell|AA Name> <Player Name>
      • All 3 of these work exactly the same as the "Cast" options, except these can target a player.
      • Tested AA using a priest 'Radiant Cure' and tested Spell version with Wizard's Damage shield.

In Closed Testing

Ogrebot 0.008

  • ISXOgre
    • Help is now displayed any time a valid command is not typed. IE: ogre toonname will display help instead of doing nothing (for the record, ogre bot toonname is the correct syntax).
  • Fixed a crash if you tried to load Ogrebot without a spell export.
  • Ability Export
    • Fixed bard AE songs
    • Exports are no longer loaded prior to running a new one. Because they are person specific, there is never a reason to load the old information anymore. This way there will never be any garbage data in them.
  • OgreBot
    • Bard songs with Ranks should now twist properly
  • Export
    • Cleaned up a ton of stuff with the export. There will be some... 'oddities', for example on the bard.
      • It shows 3 different regen songs:
        • Cantata of Replenishment
          • In-game labeled as "Group v2"
        • Cantata of Rodcet
          • In-game labeled as "Group v1"
        • Chorus of Renewal
          • In-game labeled as "AE PC v2"
    • Bard "Spell Focus" should now be more widely available. I've attempted to make some spell lines based on what the focus offers. It should either work out great, or completely fail... :) So far it seems to be working.
  • AA's with no duration (IE: that are suppose to last a very long time/forever) and show up in song window, should now work properly. (Tested with bard's Sionachie's Crescendo)
  • Single target and self Mana Flow SPELLS should now be working. Tested with (Wizard) Tranquil Harvest and Necro's Twitch. Note: Do NOT use @Group, as you can't twitch yourself. Use @GroupMinusMe.
  • Added "ManaHeal" as an option. This checks Mana levels instead of Health levels.
    • Any spells that were previously using Heal but were used for mana, need to be changed (I don't think this effects anyone as I just coded it in).
  • AA-ManaHeal options should now work. Tested using Wizards Harvest of Druzzil
  • Wrote a VERY crude autologin. You will have to edit a file and fill in information. I have no plans of providing any support for this hack job script.
  • Fixed a bunch of bad code inside of campspot. Was forcing everything to be invalid for a few parameters (change campspot, for example).
  • Removed some debug spam from the console.
  • Changed some debug spam from always showing, to only showing if you have 'WhatIsTheBotDoing' checked. Some of this spam isn't really related to what the bot is doing, but it keeps it out of the console for now.
  • Added the ability to automediate based on endurance. You can set both a mana AND an endurance threshold, however, as long as either one is met, you will meditate.
    • Example: You set it to auto med if you are < 50% mana, < 50% endurance. If you had 75% mana and 25% endurance, you WOULD meditate, since one of the two is below.
  • Added the "Load" tab. This tab executes all lines of code in here as if they were typed into the console. For example:
    • runscript SetUpBindKeys
  • Added 'Enable OgreMCP' to the 'Settings' tab. When clicked OR when a profile is loaded, will ensure the MCP is opened (or closed) based on the checkbox. (Works identical to how eq2 works)
  • Added the following MCP commands
    • Camp <ForWho>
      • Camp to desktop.
    • RawCommand
      • Executes into the console. Basically anything that you could type into the console yourself. Each parameter should be on it's own line.
    • OgreBot_Load
      • Relay's: ogre bot
    • OgreBot_Load_Dev
      • Relay's: ogre dev
    • OgreBot_End
      • Relay's: Ogre end bot
    • ISXOgreEQ1_Load
      • relay all ext ISXOgreEQ1
    • ISXOgreEQ1_Unload
      • relay all ext -unload ISXOgreEQ1
    • Press_IS <ForWho> <Key>
      • Uses innerspace's "press"
    • Press_ISXEQ <ForWho> <Key>
      • Uses ISXEQ's "KeyPress"
  • Shaman's GROUP unity spells are starting to work. These require me to code something special for each version, unfortunately. If anyone has one that isn't working, just send me your export, then I'll send you back what additional information I need to code it.
    • At this moment, single target unity spells are NOT supported. Will add this to my todo list later.
  • Added "Cast" options to MCP.
    • As of right now, there are no "CastOn" options, they will be coming later.
    • Cast takes 2 parameters, <ForWho> and <Name of Spell/Ability/AA>
    • Checks to see if the spell is gemmed already. If not, skips it (at this time no support for gemming, will be added at a later date).
    • Checks to see if said ability can be cast as the next ability. IE: if it is available now, or will be available when you are done with recovery time.
    • Checks to ensure the spell could be cast right now, even if it has to wait 1.5 seconds for the recovery. IE: Not moving, not stunned, etc.
    • So far, this seems to work excellent on a fully botted toon. It gets a little quirky if you're "playing" a toon and pressing a few MCP buttons to make it cast some spells. To.. avoid some of this quirkiness, the following now happens (again, this is basically when YOU are casting spells manually also).
      • When you manually cast a spell, the bot basically goes into a short loop of doing nothing while a manual spell was cast, while still checking a few important things, to see if you are zoning, and to process any queued commands, this unfortunately includes MCP cast requests.
      • If you manually cast a spell, and while it's mid cast, hit an MCP button to cast another, the bot will enter the new cast routine immediately, then wait for your current cast to finish, then do the MCP cast.
      • In short, bot your botted toons, and play your played toons for best results.
    • There are 5 versions of Cast. I'd say 99% of the time, you could just use "Cast" and be fine.
      • Cast - Auto determines what the spell is. IE: Is it an AA? A Spell? An ability? A CombatAbility? Then uses the appropriate checks and casts.
        • Right now the order of checking is: AA, Spell, CombatAbility, Ability
      • Cast_AA - This will only check the AA abilities.
      • Cast_Spell - This will only check spells. This could be useful (although I fail to see why) if you had an AA and a spell with the exact same name, but wanted to use the spell version).
      • Cast_CombatAbility - This will only check 'Combat Abilities' (Your /disc's).
      • Cast_Abilities - This will only check Abilities (Things like bash/taunt/kick).
    • At this time, all spells must be their actual spell names. For example: Cannibalization for the AA. NOT Cannibalization[AA]. That is how it looks in the CastStack, but that is merely for human readability.
  • Added an Announce tab!
    • Allows you to announce to your group or raid, what abilities you are casting, and with whatever message you want. I don't recommend you go overboard, or you'll just spam yourself, but it can be extremely useful for a few things. Such as:
      • Buffing Unity...
        • This would let you know, you should probably wait to pull more until it's done. (Unity has like a 48 hour cast time...)
      • Slowing *Target*
        • Just informational really.
      • Casting AA_Emergency_Heal_01 on *Target* (I couldn't remember a name...)
        • Would let you know when your priest blows that 4 hour cooldown ability to keep your ass alive.
  • Group buffs should now only start to cast if all group members are within range. No more buffing if someone is miles away! This should not have an impact on group heals.
  • All 4 mage pets should now be pet summons.

Ogrebot 0.007

  • Did a pretty big fundamental change to how abilities are listed to the user, and a bit of how they are passed around behind the scenes.
  • A new export is required immediately.
    • DELETE YOUR EXPORT AND MAKE A NEW ONE
  • All AA abilities will have [AA] appended to the end. For example:
    • Harmtouch and Harmtouch[AA] will co-exist now.
  • Changed (again) how wizard spell lines are determined. Should be much more accurate for non-detrimental abilities. All non-detrimental abilities of wizards will need to be re-added to the cast stack.
  • Export - Slightly modified offensive abilities with a duration work
  • Added the following MCP buttons:
    • Summon_Mount(ForWho, MountName)
    • Summon_Mountx2(ForWho, MountName, ForWho, MountName)
    • Discmount(ForWho)
  • Bot now understand recovery time, and shouldn't attempt to cast another spell (or look for one being ready) until the recovery time is completed.
    • Bot now understands it can calculate recovery time before the server can. It is now a little bit slower to calculate it... :)
  • Bards now twist songs MUCH quicker.
  • All "tells" are now (admittly, not very elegantly) sent to IS1 in a message box. Excluded from this are pets, mercenaries, and your target (IE: vendors you are interacting with).
    • This is all temporary until I get time to implement something better, but wanted something incase players/gm send you a tell in the mean time.
  • Buffs that go into the song window (HoTs, for example) previously were using a hardcoded spell timer to determine when they could be recast. For example, Cleric hot is listed as lasting 24 seconds, but duration increases push it way more. Now, these are based off of the worn off messages. I put a 60s 'safeguard' in for now, that will auto-expire the ability within 60 seconds, and allow the bot to recast it. Just incase something happens and the worn off message doesn't appear (I'm unsure if you get them out of group/out of zone).
  • Group heals (spell variant) should now have a type, and should work.
  • Group HoT's (spell variant) should now have a type, and should work. These will work based on the duration on YOU.
  • For example: If you have selected: GroupHoT - Heal - 75% - 3 people. It has to meet those requirements AND it cannot have the HoT on you.
  • Fixed a bug with determining group heals. Previously no matter how many people met the criteria, it only counted 1. (Not sure the group heal code was ever released, but noting it here that it has been fixed)
  • Enchanter pets should now show up in the bot as a type and should work as a pet summon.
  • Made another massive change to exports. Unfortunately, every single ability in the caststack will need to be re-entered. You can blame enchanters for this.
  • So, after I redid my profiles AGAIN. I decided that was really stupid. Completely changed the way it handles saving/loading spell lines. It will take a tiny bit longer for the bot to load (probably 1-2 seconds), but you should never, ever, have to redo your profiles from any changes I make, ever again.
    • I believe with this change, if you do the following, you will not have to redo your profiles either:
    • When this is patched out, do NOT do an export right away. Load the bot, save your profiles. This should save them differently.
    • THEN do an export, and reload your bot. It should have everything in tact.
    • No promises... :)
  • Export
    • Fixed a typo that was limiting AA abilities to 999, instead of 9999.

General

  • Clean up Auto Gemming, should be much more reliable to not mem an ability, then mem something else, or mem something that needs to be cast 5 times, only to demem it after 1 cast.
  • Added support for Pet Summon abilities (currently no support for anything with pets at this time, including pet only abilities, or regular abilities on pets. P.S. I hate pets).
  • Added support for Pet only haste abilities (tested using necro/shaman). If there are other pet only abilities that are classified different, I'll need to know the name of them.
    • There is still no support for single target abilities on pets (only abilities that are pet only). This isn't planned in the near future... cause I hate pets :)
  • Main Assist (IE: your tank) won't every try to change his target to the correct Assist target.
    • Basically what was happening, is you would change targets on your tank as he was using a spell/ability, and it takes time for the assist to update, so he would change his assist back to the old target. Tank targeting should now really be in your control
  • Fixed logic for combat abilities (Warriors 'Combat abilities' and anyone else who has those) should now properly list them up (up to 999 anyways). Previously it would only list 8.
  • Added support for AA abilities of the following type:
    • CA
    • Self buffs ( group buffs should work also, but don't have one to test ). Note: That just because YOU know it's a self buff, doesn't mean the bot knows. If you want to check, you can open the export, if it has IsASelfAbility=TRUE, then it knows it is a self buff.
    • Single target buffs (Labeled: IsASingleTargetAbility in export). Unlikely to have proper tracking of the buffs, but unless the reuse is < duration, it won't matter.
  • For abilities/spells/combat abilities/AA's that don't have enough data for the bot to determine it's proper use, all options are shown. This will open it up to user error, so be smart about what you are selecting... Dark, I'm looking at you.
  • Buffs - Group abilities should no longer cast if you are by yourself. (IE: ungrouped).
  • Bard
    • Many of the bard abilities are labeled exactly the same in code, but do slightly different things. For example, the snare that slows attack speed, and the attack speed slow, are both labeled identically.
    • For the time being, I removed the spell line identification for the 'common' lines. This means these abilities will NOT auto upgrade, but it does mean you can select any of them in the cast stack. May revisit this at a later date.
    • Unrelated to the above, I believe all stacking bard haste songs should properly show up.
  • Self / Group AA buffs will check to see if the buff is on you before trying to cast it.
  • Shaman - I personally don't recommend you scribe the level 58 heal "Kragg's Healing" because it has a 10 second cast time.
  • Spell lines now take resist type into consideration.
    • Note: This will probably break every single offensive ability in your cast stack.
  • Filtered out "Portal", "Gate", and "Translocate" from showing in the CastStack. (Wizard ports)
  • Filtered out "Circle of", "Ring of", "Zephyr:" from showing in the CastStack. (Druid ports)
  • Wizard
    • Changed how filtering of their spells work. Unfortunately, because most of their spells are exactly the same, except for 1 aspect, it means every single spell is different. Some spells cast quicker, some spells are resisted less, some have a reuse. All these factors were taken into consideration when automating the spell lines. The bot will do it's best at creating the spell lines, but there are some cases where it just won't work without taking away options.
    • Good example are cast times. There may be a time were you want a short fast spell with a low nuke amount, vs a long cast spell with a high nuke amount. Or a middle of the ground. To allow options, any spell with a different cast time is displayed. This does have the negative effect of showing some random one off abilities that are very low level. (Such as a level 8 AE nuke on the wizard, because it has a 'odd' cast time).
  • Added support for Spell Auras (The ones in your spell book that go into gem slots).
  • Added support for Combat Ability Auras (Tested with Warrior).
  • Added Endurance (EN) option on the CastStack for people with no mana only.
    • You will notice when you first open the CastStack, it displays all available options until you select an ability. It will "look" scrambled, because the "My MP" and "My EN" are on the same spot, however when you select an ability, only the appropriate one is shown. This is intended.
  • Added global Endurance options on the setup tab.
  • NPC HUDs now displays Named NPC, and NPC under it.
  • Following classes now have any ability with a recast time (more than 1.5) will have that spell listed in the caststack.
    • Paladin
  • Good old Spirit of Wolf will now always appear in the export
  • Added support for Single target group only abilities, such as Boon of the Garu. It currently doesn't do any checks to make sure that person is grouped. That'll be in the future.
  • Enchanter's illusion forms should all appear in the cast stack. (Technically anything under Combat innantes should appear)

OgreBot

  • Logic implementations/changes
    • If you try to snare a mob and get the message they are immune to snare, it flags your current target as immune and will not try to cast snares again. This flag resets when you acquire a new target. This should probably remember the target incase you tab to adds then back to the named, no reason to recast the ability again to find out it's still immune... In the future!
  • Profile saving/loading. Works the same as EQ2.
  • Even though abilities have vasty different names, if it's a direct upgrade, Ogrebot will upgrade your abilities in the profile as you level up. For example, Healing will become Greater Healing.
  • Assisting is done by assigning someone Group Main Assist. You can do this via MCP: SetMainAssist.
  • When OgreBot is loaded, it assigns XTarget slot 5 as the Group Main Assist's Target. This has to stay here, as the bot uses that information.
  • For AutoTargetWhenHated to work, the character has to be the Group Main Assist, have no target at all, and XTarget slot 1 has to be set up to "Auto Add Hater Targets" / Auto.

Ogre Export

  • Typing "Ogre Export" into the console, will create an export file for OgreBot to use. It contains information about each ability from the game, as well as additional information provided by the exporter. Any time you acquire a new ability, you need to run a new export to capture the information, then reload OgreBot to load the new information.

OgreFollow

  • Fully functional OgreFollow. Same as EQ2 minus the flying.
  • Add more details here for any non-EQ2er

OgreMCP

  • Fully functional MCP. Same as EQ2.
  • Add more details here for any non-EQ2er

Campspot

  • Fully functional Campspot. Same as EQ2.
  • Add more details here for any non-EQ2er

Tabs

Settings

  • Melee Attack
    • If within Melee range, turns on attack
  • Turn Off Attack
    • If you do NOT have a valid target, turns attack off. This normally happens naturally, but some times it gets stuck on and needs to be turned off.
  • Ignore NPC HP (100%)
    • Ignores the option on the Setup tab. IE: you will attack anything regardless of it's health. This can be overridden on a per spell basis on the cast stack. This option also determines when you turn auto attack on.
  • Enable Aliases
    • Enables the use of Aliases.
  • Auto meditate
    • Will try to "sit" you to meditate in combat if your mana is below the threshold on the Setup tab. Will NOT attempt to sit if your assist target is within melee range.
  • Auto meditate out of combat only
    • Same as above, but only happens when you do not have a valid assist target.
  • Loot Corpses/Chests
    • Does exactly that. Only does it when you do not have a kill target.. the problem is, it happens when a mob dies before switching to the next target. Needs some tweaking that's for sure!
  • Move To Area
    • Required to turn on campspot
  • Auto Assist
    • Pretty sure it does nothing at this time.
  • Dynamic Camp Spot
    • Visual indicator if campspot is on. You can also turn it off by unchecking it.

Setup

  •  % NPC HP to attack
    • The % of health the bad guy has to be at, for you to attack. IE: 99% if you want to wait for your tank to "start" the fight.
    • This can be overridden globally by using the Ignore NPC HP (100%) checkbox on the Settings tab, or on an individual spell basis on the CastStack tab.
  •  % NPC HP to move into attack range
    • Not implemented yet, but once in-combat movement is done, you won't move to engage until the mob is at this percent health.
  •  % NPC HP for pet to attack
    • Only send your pet to attack if NPC health is at or below
  • Mana Required to use CAs
    • CAs is just a global word used to describe any offensive attack
    • Can be overridden on a spell basis on the CastStack
  • Health required to use CAs
    • Can be overridden on a spell basis on the CastStack

Aliases

  • Can set up aliases
  • Explain more why this is used... later.

HUDs

  • Displays neareset NPC/PC/group members

Uplink Info

  • Not sure this is working... It's reading from EQ2 directory, which will change in the future.. Or I copied my eq2 ones over.
  • None the less, not used at this time, will be used for a full on auto login.

Chars

  • Contains information about your characters. Be their username/password/toonname/server.
  • This information is used for autologin.
  • It is also used as an authorization list.
    • For example, when someone invites you to a group, if it is an authorized person, you accept the invite automatically.

Key Binds

  • I think they work.. ? Probably needs some testing.

Debug

  • CastingDebug - works.
  • What is the bot doing - Works.

CastStack

  • Left side lists all available abilities the bot knows about. If you're missing any, do an 'ogre export' in the console. Once it is done, reload the bot.
  • Selecting an ability from the left list, populates the combo boxes in the center. You are telling the bot how it should use this ability. For example, as a heal, as a CA, as a Named CA (on named only), as a buff, or Non-Combat-Buff.
  • After selecting the type (CA/Heal etc), it displays various other options.
  • [ID] - Ignore duration
    • If NOT checked, if the ability has a duration, the bot will not recast the ability on the same target, until it has faded (or is about to fade, once the ability has completed 90% of it's duration, it's considered to be rebuffable).
    • If checked, the bot ignores the duration, and will recast as if the ability was not on the NPC. (Not sure this is useful in EQ1, but ported it over from EQ2).
  • # of Ppl
    • Not used yet... but it's for:
    • If you select a Group heal, you would say 3 people have to be at the threshold before it would heal.
  • HP/Mana %
    • Used for heal abilities. At what percent will the ability fire?
    • Example: Greater Healing -> @ Group -> 85%
      • This would cast Greater Healing on any member in the group that is below 85% health.
  • My HP < __
  • My HP > __
  • My MP < __
  • My MP > __
  • NPC HP > __
  • NPC HP < __
    • The 4 above override the global %health/mana required to use CAs. These can also be assigned to ANY ability.
    • For example: If you wanted to... be weird... You could assign a buff to only cast when a mob has > 50% HP but less than 75% health, while you're mana is < 25% and your health is > 75%.
      • This greatly changes how the ability works, because buffs don't normally require a check to the mobs health, but by assigning a mob HP check, it now checks, so will only cast if you have a valid kill target.
  • Auto Gem When needed
    • When this option is selected, it will mem the ability to gem # (Forced Gem Slot). If that is not entered, it uses gem #8
    • This will ONLY de-mem abilities that are available to be cast. This way you aren't dememing an ability that the bot is wanting to use.
    • In short, use 'Auto Gem' for buffs that will rotate in and out. I recommend you pick 1 gem slot, and let the bot use it.
  • Forced Gem Slot
    • When this is filled out AND Auto Gem is checked, this is the gem slot Auto will use. Again, with Auto checked, it only gems an ability if the gem slot is available (or empty).
    • When Auto is NOT checked, this will mem the ability immediately when said ability could be used, regardless if the gem is available or not. This is a good option for when you are leveling up, and your abilities will convert to the higher ability, the bot will then mem the new version for you.