Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums



(Advanced Search)

Forum Statistics
» Members: 1,107
» Latest member: atwxhd
» Forum threads: 122
» Forum posts: 594

Full Statistics

Online Users
There are currently 21 online users.
» 0 Member(s) | 21 Guest(s)

Latest Threads
Classic - oGasai 2.1.23 -...
Forum: Bot Base
Last Post: Logitech
Yesterday, 07:45 AM
» Replies: 132
» Views: 44,625
TBC - oGasai - Grinder, F...
Forum: Bot Base
Last Post: Logitech
04-04-2019, 05:54 PM
» Replies: 44
» Views: 2,385
Bot functions support
Forum: Support
Last Post: Thotitout
03-22-2019, 12:58 AM
» Replies: 2
» Views: 221
single static mob avoidan...
Forum: Script development - Lua ressources
Last Post: zerger
03-12-2019, 01:35 PM
» Replies: 0
» Views: 85
Guide / Tutorial for Wow ...
Forum: Support
Last Post: icencoffe
03-10-2019, 03:50 AM
» Replies: 3
» Views: 413
Basic Warlock Script [TBC...
Forum: Bot Base
Last Post: SomebodyFound
02-25-2019, 04:13 AM
» Replies: 0
» Views: 172
Mob avoidance and pathing
Forum: Script development - Lua ressources
Last Post: zerger
02-12-2019, 10:56 PM
» Replies: 0
» Views: 115
Bot functions (for 2.1.7)
Forum: Script development - Lua ressources
Last Post: zerger
02-10-2019, 03:51 PM
» Replies: 6
» Views: 4,125
Resurrection function tha...
Forum: Bot Base
Last Post: zerger
02-03-2019, 03:14 PM
» Replies: 0
» Views: 153
Lua emulator
Forum: Script development - Lua ressources
Last Post: zerger
01-16-2019, 06:05 PM
» Replies: 0
» Views: 137

 
  Make bot to not attack totems
Posted by: ejaboz - 12-06-2017, 07:05 PM - Forum: General - Replies (1)

Hi is there any specific script to get the character to ignore attacking totems?
I already have setPVE(1) and enemyFaction = "Horde"; -- Set to "Horde" if you play Alliance


  Cat Form grinding v0.3 (2.1.7)
Posted by: Crobeus - 12-06-2017, 11:38 AM - Forum: Druid - No Replies

preface: I've never used Lua before and didn't bother looking up documentation before copypasting this combat routine together. If you use this script and make some changes please post them here so I can see what I did wrong, it helps everyone out in the end. Also, if someone can enlighten me on how to have the bot skin mobs that would be wonderful.

With my current gear and the mobs I'm botting this setup is 100% self sufficient with 0 downtime. Most healing is done on the run with rejuv and if mana ever drops low enough it'll pop innervate which has a short 6 minute cooldown.

Current flow goes like this:

  1. Checks for and buffs Omen of Clarity/Thorns/Mark of the Wild
  2. Pops rejuv if under 80% hp, regrowth if under 65%
  3. Switches to cat if hp % is high enough or currently affected by regrowth
  4. pulls with faerie fire (feral) at 30 yards then closes distance
  5. spams claw at 40 energy or if clearcasting proccd, ferocious bite at 5 combo
  6. shifts out mid combat to regrowth if health drops under 65%, healing touch if under 40%
What I'd like to add in future versions:
  • food/drink options
  • skinning
To use cat form for movement instead of running around or mounting, make the following changes to script_grind.lua:
add the variable "isCat = true" at the top with all the others and set "use mount" to false, then find this bit of code:
Code:
        if(self.useMount and not IsMounted()) then
            self.message = "Mounting";
            if(RunMountScript()) then
                return;
            end
            return --FIX, return not working (Could be in water, need to move)
        end

and duplicate it right below with some modifications like so:
Code:
        if(self.isCat and not self.useMount) then
            self.message = "Going back to cat";
            if(not localObj:HasBuff('Cat Form')) then
                Cast('Cat Form', localObj);
            end
        end


changelog:
0.1 - initial attempt
0.2 - fixed spam shifting
0.3 - combat healing implemented



Attached Files
.lua   script_cat.lua (Size: 5.35 KB / Downloads: 292)

  New User Groups
Posted by: DarkLinux - 11-28-2017, 09:09 PM - Forum: General - No Replies

Moderator
-Help out other members of the forum and discord
-Strong leadership
-Forum + Discord title

Script Developer
-Post a good amount of scripts
-Help out other members of the forum and discord
-Forum + Discord title

Supporter
-Donate $10+
-Forum + Discord title
-Name will be added to the bot

Donation Link: http://darkenedlinux.com/ogasai/donate.php


  Classic - oGasai 2.1.23 - Grind, Follow, Gather, Fish
Posted by: Logitech - 11-26-2017, 02:33 PM - Forum: Bot Base - Replies (132)

New release for oGasai 2.1.23 (dll included)

  • New windows for the grinder's menu and combat scripts. The menus are simplified and better arranged now.
  • Fixed an annoying bug with timers that froze the bot/combat scripts when using it for the first time.
  • Mage conjuring water/food fixed, stands up now...
  • I've added some functionality, made it easier to use auto path.
  • Added auto talent picker, see script_talent.lua
  • Added gather while grinding, herb/mining
  • Improved the vendor script
  • Added a hotspot database, see scripts\\db\\hotspotDB.lua
  • Added more target creature selections.
  • Added a new more advanced unstuck script with a new .dll (2019-04-16)
It's only been tested with the latest oGasai 2.1.23. So I've included the .dll in a .rar archive. The file coremenu.lua is also included, so be careful not to overwrite your own if you wish to save it.

Download: https://cdn.discordapp.com/attachments/5..._04_18.rar

Mmaps download: mmaps: https://mega.nz/#!g0U2xI4a!aoJICAY34DLvM...Xz4J3rg9dM

[Image: update.png]


Old release described below, see script files attached...



Releases for oGasai 2.1.x

I will post and update all my scripts for the new framework in this thread. Be sure to use the latest oGasai version (right now 2.1.12)!

New to my grinder:
Simple vendor:
[Image: attachment.php?aid=205]

Auto pathing enabled by default. It will create path nodes of dead valid mob's locations with 60 yards in between. Move to a hotspot and make sure to increase pull distance.

Added hotspots. Generally your start up location will be set as a hotspot. Then you can change Distance to hotspot to grind closer/further away from that hotspot.
You can also add static level-range hotspots in script_nav.lua. There is one example there.

You can also manually enter walk path file. E.g. paths\1-5 UD.xml If you want a specific path to auto load on start up just edit the pathName in script_grind_logitech.lua. But disable auto pathing to use walk path.

Simple vendor looks for vendors in vendorDB.lua in your current zone (you have to add vendors).
All items that you had when you started the bot will be saved to a keep list (won't be sold).
The hunter script will look for ammo vendor when only 1 stack of ammo is left. (Will buy the same ammo we currently use.) Again you have to add ammo vendors.
If a sell vendor can repair it will do that too. See script_vendor.lua for more functions.


How to use:
  1. Put the scripts in the folder //scripts// (at least script_grind_logitech , script_nav , script_helper and a combat script)
  2. Add these lines INSIDE the isSetup-if-statement in //core//coremenu.lua for the scripts to load at start up (comment out the default grinder & mage script): or use my coremenu.lua
Code:
-- Load the grinder
LoadScript("Logitech's Grinder", "scripts\\script_grind_logitech.lua");
AddScriptToMode("Logitech's Grinder", "script_grind");

-- Load the follower
LoadScript("Logitech's Follower", "scripts\\script_follow.lua");
AddScriptToMode("Logitech's Follower", "script_follow");

-- Include the vendor
include("scripts\\script_vendor.lua")
script_vendor:setup();

-- Load combat scripts
LoadScript("Frostbite - Mage", "scripts\\script_mage_frostbite.lua");
AddScriptToCombat("Frostbite - Mage", "script_mage");
LoadScript("Hidden - Rogue", "scripts\\script_rogue_hidden.lua");
AddScriptToCombat("Hidden - Rogue", "script_rogue");
LoadScript("Beastmaster - Hunter", "scripts\\script_hunter_beastmaster.lua");
AddScriptToCombat("Beastmaster - Hunter", "script_hunter");
LoadScript("Shadowmaster - Warlock", "scripts\\script_warlock_shadowmaster.lua");
AddScriptToCombat("Shadowmaster - Warlock", "script_warlock");
LoadScript("Fury - Warrior", "scripts\\script_warrior_fury.lua");
AddScriptToCombat("Fury - Warrior", "script_warrior");
LoadScript("Ret - Paladin", "scripts\\script_paladin_ret.lua");
AddScriptToCombat("Ret - Paladin", "script_paladin");
LoadScript("Disc - Priest", "scripts\\script_priest_disc.lua");
AddScriptToCombat("Disc - Priest", "script_priest");
LoadScript("Enhance - Shaman", "scripts\\script_shaman_enhance.lua");
AddScriptToCombat("Enhance - Shaman", "script_shaman");
LoadScript("Feral - Druid", "scripts\\script_druid_feral.lua");
AddScriptToCombat("Feral - Druid", "script_druid");
  3. Add these lines BELOW the isSetup-if-statement in //core//coremenu.lua for the menu's to load, or use my coremenu.lua:
Code:
-- Add the Grinder Menu
Separator();
script_grind:menu();

-- Add the Follow Menu
Seprator();
script_follow:menu();

-- Add vendor options to the menu
Separator();
script_vendor:menu();


-- Add combat script menus
Separator();
Text("Combat Script Settings");
script_rogue:menu();
script_mage:menu();      
script_hunter:menu();
script_warlock:menu();
script_warrior:menu();
script_paladin:menu();
script_priest:menu();
script_shaman:menu();
script_druid:menu();
      4. Make sure you got the mmaps: https://mega.nz/#!g0U2xI4a!aoJICAY34DLvM...Xz4J3rg9dM
      5. Start WoW and attach oGasai 2.1.x, then log into the server and into the game
      6. Select my grinder, select a combat script, walk to spot where you want to grind (auto path) or load/create a walk path
      7. See the Grinder's and Combat Script's options, change the ones you need (can be changed while the script is running too)
      8: Push run
        
Grinder 
  • Navigation functions are located in script_nav.lua
  • Auto pathing is on by default
  • Eat, drink, mount and potion logics are located in script_helper.lua
  • The nav mesh loads automatically when you start the grinder
  • Anti-stuck works pretty well, requires the log out if stuck feature to be enabled
  • Paranoia options exists: Players within range and/or if we get targeted
  • Target selection options e.g.: Skip certain creatures and/or elites
  • Avoid elites option, can be a bit messy in some situations, but it basically just moving away if an elite is within the avoid range
  • Eat/drink/potion feature: Tries to use any food, potion or drink that you can buy from vendors or get from mages (see script_helper.lua)
  • Mount feature: Tries to mount any mount that is obtainable (see script_helper.lua), including mount with spells (warlock , paladin)
  • Blacklisting targets such as player pets and totems (called in the combat scripts)
  • Displays info about players and monster on screen (name, type, distance, level)
Follower
  • Auto accept group invite
  • Follows the leader
  • If you follow with a priest it will heal and buff the group, other classes dps for now (will add more buffs, options)
  • Use together with my combat scripts
    How to use:
    1. Choose Mode Follower 2. Choose Combat script 3. Push run
Frostbite - Mage
Basically a copy of my mage script for oGasai 2.0.17, added potion logic.
Written for frost talents, at level 40 you should get Ice Barrier e.g.: https://db.vanillagaming.org/?talent#oZZMAGco0tVo

Hidden - Rogue
Basically a copy of my rogue script for oGasai 2.0.17.
Written for combat talents, perhaps: https://db.vanillagaming.org/?talent#fbxfoxZMhEz0Vzxfo (will work with e.g. Hemo build too)
If you have the skill Riposte, put it in one of your action bars for the script to recognize when it's ready for use.

Beastmaster - Hunter
Basically a copy of my hunter script for oGasai 2.0.17, added feign death and potion logic.
Written for Beastmaster talents, perhaps: https://db.vanillagaming.org/?talent#cE0GzxgRtVVoZh
If you don't change the options put your quiver/ammo punch in your most left bag slot and pet food in the second most left bag's last slot.
See this picture below:
   

Shadowmaster - Warlock
Basically a copy of my warlock script for oGasai 2.0.17, added use of healthstone and potions.
Written for Affliction/Demonology talents, perhaps: https://db.vanillagaming.org/?talent#IE0ihMboVZ0gh0xxo

Fury - Warrior
Basically a copy of my warrior script for oGasai 2.0.17, added use of potions.
Written for Fury talents without stance dancing, perhaps: https://db.vanillagaming.org/?talent#LVG0bhbZVV0VgxoVo
If you dont change overpower action bar number, put Overpower in battlestance bar number 5:
   

Ret - Paladin
I've never played a paladin but I think I understand the rotation by checking out Zerger's basic pala script for 2.0.17.
I've added LoH, BoP, Divine Protection and potion logic. Combo logic for HoJ -> SoC -> Judgement.
Possible talent build using this rotation: https://db.vanillagaming.org/?talent#sxxubMZZVfxtbfV (Ret Aura, BoW)
Or this build: https://db.vanillagaming.org/?talent#sE0zZxhZVfctbfq (Sanctity , BoW)

Disc - Priest
Simple priest script uses: renew, shield, all heals at different thresh holds, smite, shadow word pain, mind blast and the UD damage spell.
Fears with Psychic Scream if more than one enemy attacks us. Uses the wand a lot.
Much can probably be added to this script, e.g. Shadowform logics.

Enhance - Shaman
Simple shaman script for enhancement:
Weapon Enchants: WF > Flametongue > Rockbiter | Totem: Strength of the Earth Totem > Grace of Air Totem | Healing: Lesser Healing Wave > Healing Wave
Pulls with lightning ball, attacks with Stormstrike. Uses Earth Shock when the target uses spells. Buffs with Lightning Shield.

Feral - Druid
Simple druid script for cat form. Should work from level 1-60. I've tested it from level 1-10 and on a 60 druid.
Using heals: Healing Touch, Regrowth, Rejuvenation, Buffing Mark of the Wild, Thorns, Tiger's Fury.

TODO:     
  • Add logic for mount with spells, e.g. warlock / paladin in script_helper.lua
  • Logic for not switching between multiple targets within melee range
  • Code vendor functions (simple sell/repair buy works)
  • Translate my other class scripts from 2.0.17 to this framework
  • Detect if we are swimming before mounting or resting (IsSwimming() not working, should be fixed in the next version of oGasai)
  • Correct bugs, post bugs in this thread please



Attached Files Thumbnail(s)
   

.lua   script_grind_logitech.lua (Size: 34.42 KB / Downloads: 1112)
.lua   script_nav.lua (Size: 23.71 KB / Downloads: 990)
.lua   script_mage_frostbite.lua (Size: 19.76 KB / Downloads: 833)
.lua   script_rogue_hidden.lua (Size: 16.25 KB / Downloads: 757)
.lua   script_hunter_beastmaster.lua (Size: 25.42 KB / Downloads: 740)
.lua   script_helper.lua (Size: 8.9 KB / Downloads: 864)
.lua   script_warlock_shadowmaster.lua (Size: 17.88 KB / Downloads: 750)
.lua   script_warrior_fury.lua (Size: 11.78 KB / Downloads: 736)
.lua   script_paladin_ret.lua (Size: 18.38 KB / Downloads: 668)
.lua   script_priest_disc.lua (Size: 11.4 KB / Downloads: 739)
.lua   script_shaman_enhance.lua (Size: 11.31 KB / Downloads: 676)
.lua   coremenu.lua (Size: 4.33 KB / Downloads: 965)
.lua   script_follow.lua (Size: 24.46 KB / Downloads: 746)
.lua   script_vendor.lua (Size: 14.53 KB / Downloads: 819)
.lua   vendorDB.lua (Size: 5.38 KB / Downloads: 830)
.lua   script_druid_feral.lua (Size: 19.3 KB / Downloads: 676)
.lua   script_talent.lua (Size: 11.73 KB / Downloads: 20)
.lua   script_runner.lua (Size: 16.86 KB / Downloads: 20)

  Resurrecting
Posted by: meegadoo - 11-26-2017, 12:28 AM - Forum: Support - No Replies

Hey im having issues when i die and run back to my corpse some how the bot will go past my corpse and not resurrect and just sit there dead like not far at all from my body. Please help thank you


  Bot functions (for 2.1.7)
Posted by: zerger - 11-21-2017, 09:01 AM - Forum: Script development - Lua ressources - Replies (6)

Wow APIs:
http://wowwiki.wikia.com/wiki/World_of_W...did=293138 version of October 2006

oGasai APIs:
[WoWUnits]
WoWUnits:FaceTarget([bool] skipCheck = false)
WoWUnits:GetDistance() [number] distance
WoWUnits:HasDebuff([string] spellName) [bool]
WoWUnits:HasBuff([string] spellName) [bool]
WoWUnits:TargetEnemy() [bool]
WoWUnits:IsTargetingMe() [bool]
WoWUnits:GetDebuffStacks([string] spellName) [number] debuffStacks
WoWUnits:GetBuffStacks([string] spellName) [number] buffStacks
WoWUnits:IsSpellInRange([string] spellName) [bool]
WoWUnits:CanAttack() [bool]
WoWUnits:IsDead() [bool]
WoWUnits:GetHealth() [number]
WoWUnits:GetHealthPercentage() [number]
WoWUnits:GetMana() [number]
WoWUnits:GetManaPercentage() [number]
WoWUnits:GetRage() [number]
WoWUnits:GetRagePercentage() [number]
WoWUnits:GetFocus() [number]
WoWUnits:GetRagePercentage() [number]
WoWUnits:GetEnergy() [number]
WoWUnits:GetEnergyPercentage() [number]
WoWUnits:GetComboPoints() [number]
WoWUnits:GetLevel() [number]
WoWUnits:GetPosition() [number] x, [number] y, [number] z
WoWUnits:HasRangedWeapon() [bool]
WoWUnits:IsMovementDisabed() [bool]
WoWUnits:IsFleeing() [bool]
WoWUnits:IsConfused() [bool]
WoWUnits:IsStunned() [bool]
WoWUnits:GetCreatureType() [string]
WoWUnits:GetCreatureTypeIndex() [number]
WoWUnits:IsInLineOfSight() [bool]
WoWUnits:IsTapped() [bool]
WoWUnits:IsTappedByMe() [bool]
WoWUnits:IsSkinnable() [bool]
WoWUnits:IsCritter() [bool]
WoWUnits:GetUnitsTarget() [WoWUnits*] pObject
WoWUnits:UnitInteract() [bool]
WoWUnits:CastSpell([string] spellName) [bool])
WoWUnits:GetFieldFlags() [number]
WoWUnits:IsLootable() [bool]
WoWUnits:GetGUID() [string] GUID
WoWUnits:GetPointer() [nmber]
-- returns native pointer to object, used more for dev debugging
WoWUnits:IsChanneling() [bool]
WoWUnits:GetChanneling() [number] spellId
WoWUnits:IsCasting() [bool]
WoWUnits:GetCasting() [number] spellId
WoWUnits:GetClassification() [number] type
-- Normal = 0
-- Elite = 1 
-- RareElite = 2 
-- WorldBoss = 3 
-- Rare = 4
WoWUnits:GetUnitName() [string]
-- returns name of unit
WoWUnits:CastSpellById([number] spellId) [bool]
PersistLoadingScreen(true) -- the bot restarts itself after a loading screen (dungeon or boat) but variables are cleared

[WoWGameObject]
WoWGameObject:FaceTarget([bool] skipCheck = false)
WoWGameObject:GetCreatorsGUID() [string] GUID
WoWGameObject:GetObjectPosition() [number] x,  [number] y,  [number] z
WoWGameObject:GameObjectInteract() [bool]
WoWGameObject:GetObjectDisplayID() [number] displayID
WoWGameObject:GetObjectState() [number] state
WoWGameObject:IsGatherNode() [bool]
WoWGameObject:GetPointer() [nmber]
WoWGameObject:GetGUID() [string] GUID
WoWGameObject:IsValid() [bool]


[LocalPlayer]
GetNearestEnemy() [WoWUnits*] pObject
GetTarget() [WoWUnits*] pObject
GetFirstObject() [WoWUnits*] pObject, [number] type -- Player = 4 Unit = 3,
GetNextObject([WoWUnits*] pObject) [WoWUnits*] pObject, [number] type
GetGUIDObject([string] GUID) [WoWUnits*] pObject
GetLocalPlayer() [WoWUnits*] pObject
GetContinentID() [number]
GetFaction() [number]
GetMapID() [number]
GetCorpsePosition() [number] x, [number] y, [number] z
FaceAngle([number] angle)
-- turn towards that angle, angle is not relative 
in rad not degree, if you want to face 90° you need to convert to rad first
x = math.rad(90)
FaceAngle(x)
GetSpellInfoX([string] spellName) [number] CastTime, [number] MaxRange, [number] MinRange,
[number] PowerType, [number] Cost, [number] SpellId, [CSpellInfo*] SpellObj
HasSpell([string] spellName) [bool]
IsSpellOnCD([string] spellName) [bool]
AutoAttackTarget()
ResetNavigate()
IsDrinking() [bool]
IsEating() [bool]
IsMoving() [bool]
IsStanding() [bool]
IsInCombat() [bool]
IsIndoors() [bool]
DisMount()
IsMounted() [bool]
IsGhost() [bool]
Move([number] x, [number] y, [number] z) [bool]
CanOverpower() [bool]
IsAutoCasting([string] spellName) bool
DeleteItem([string] itemName) [bool]
HasItem([string] itemName) [bool]
UseItem([string] itemName) [bool]
UseItemOnWeapon([string] itemName) [bool]
AreBagsFull() [bool]
IsSwimming() [bool]
GetPartyMember([number] index) [WoWUnits*] pObject
GetPet() [WoWUnits*] pObject
LootTarget() [bool]
IsLooting() [bool]
MountID([number] mountId)
CastSpellById([number] spellId) [bool]
IsSpellOnCoolDownById([number] spellId) [bool]
JumpOrAscendStart()
AutoAttack()
IsChanneling() [bool]
IsCasting() [bool]
StopFalling()


[Core]
StartBot()
StopBot()
-- stops the bot
Exit()
-- closes the wow client
GetTime() [number]
-- returns games time, used for timers
GetTimeStamp() [string]
-- returns time stamp, used for logging ie 08:15:20
ToFile([string] text)
-- outputs text to file in logs foler
ToConsole([string] text)
-- outputs text to external console window
ToWoWConsole([string] text)
-- outputs text to interal wow dev console
SetVarX([string*] name, [number] var)
-- Like SetCVar, best practice is to use self. over SetVar 
GetVarX([string* name]) [number]
-- Like GetCVar, best practice is to use self. over GetVar 
GetDistance3D([number] x1, [number] y1, [number] z1, [number] x2, [number] y2, [number] z2) [number] distance
-- returns distance between 2 3d points
Raycast([number] x1, [number] y1, [number] z1, [number] x2, [number] y2, [number] z2) [bool] hit, [number] x, [number] y, [number] z
-- returns true if the ray intersects with a collider
SetMaxTargetLevel([number] maxlevel) [void]
-- deprecated setting for GetNearestEnemy
SetMinTargetLevel([number] minlevel) [void]
-- deprecated setting for GetNearestEnemy
SetTargetLevel([number] minlevel, [number] maxnlevel) [void]
-- deprecated setting for GetNearestEnemy
SetPVE([bool] on)
-- deprecated setting for GetNearestEnemy
SetPullDistance([number] distance)
-- deprecated setting for GetNearestEnemy
DrawPath([bool] onORoff)
-- draws walk path, lines between nodes
DrawPoints([bool] onORoff)
-- draws walk path nodes
NewTheme([bool] onORoff)
-- disabled new theme, makes menu look like the old one
GetLastError() [number] spellId, [number] errorCode
ClearLastError()


[Pathing]
StopMoving() [bool]
-- stops character from moving by clicking on its current position,
-- do not call more then 1x, character will start to rotate due to some ctm bug,
MoveToTarget([WoWUnits*] pTarget || [number] x, [number] y,  [number] z) [bool]
-- deprecated call
GetPathAsyncInfo() [number] state, [number] time, [number] blackListSize
IsNodeBlacklisted([number] x, [number] y,  [number] z,  [number] r) [bool]
ClearNodeBlacklist() [number] nodesCleared
IsSearchingForPath() [bool]
GetPathSize([number] pathType) [number]
GetPathPositionAtIndex([number] pathType, [number] index) [number] x, [number] y, [number] z
IsPathLoaded([number] pathId) [bool]
-- IsPathLoaded(5) would return if the navmesh path is loaded
ClearPath([number] pathId)
SavePath([string] fileName, [number] pathId)
LoadPath([string] fileName, [number] pathId)
IsUsingNavmesh() [bool]
GeneratePath([number] x1, [number] y1, [number] x1, [number] x2, [number] y2, [number] z2) [bool]
UseNavmesh () -- ticks the "use navmesh" menu option
IsUsingNavmesh() -- checks if the "use navmesh" option is true or false
LoadNavmesh() -- loads the mmtiles into the bot
GetLoadNavmeshProgress() -- returns 0 and 1 for navmesh loaded or not

[pathId]
walk path = 0
navmesh blacklist = 4 --blacklist node list
navmesh path = 5 -- can only read from
-- The following are no longer used in 2.1.X framework,
-- but can still be used to load other paths to swap between 
grave path = 1 -- deprecated
vendor path = 2 -- deprecated
repair path = 3 -- deprecated

[Drawing]
SetSatusText([string] title, [string] text) [void]
DrawText([string] text, [number] x, [number] y, [number] r, [number] g, [number] b) [void]
WorldToScreen([number] x, [number] y, [number] z) [number] x, [number] y, [bool] isOnScreen
DrawLine([number] x1, [number] y1, [number] x2, [number] y2, [number] r, [number] g, [number] b, [number] thickness)
DrawRect([number] x1, [number] y1, [number] x2, [number] y2, [number] r, [number] g, [number] b,  [number] rounding, [number] rounding_corners, [number] thickness)
DrawRectFilled([number] x1, [number] y1, [number] x2, [number] y2, [number] r, [number] g, [number] b, [number] w,  [number] rounding, [number] rounding_corners)

[Vendor]
SkipGossip()
-- Skips vendor text and opens items page 
IsVendorWindowOpen() [bool]
-- Check is vendor page is open
BuyItem([string] itemName, [number] num) [bool]
-- Buys item from vendor, vendor window must be open
VendorHasItem([string] itemName) [bool]
-- Check if vendor has item, vendor window must be open
SellItems([string] itemName) [bool]
-- Sell item to vendor
-- Moves item to trade window
-- Moves item to mailbox

[Menu]
ShowBar()
HideBar()
CollapsingHeader([string] title) [bool]
Checkbox([string] text, [bool] isChecked) [bool] isChecked, [bool] wasChecked
Text([string] text)
Button([string] text)
SameLine()
SameSeparatorLine()
InputText([string] title, [string] inputText) [string] inputText
SliderFloat([string] title, [number] min, [number] max, [number] value) [number] value
SliderInt([string] title, [number] min, [number] max, [number] value) [number] value
ProgressBar([string] title, [number] progress)
NewWindow([string] title, [number] width, [number] hight) [bool] isOpen
EndWindow()
RadioButton([string] title, [number] isSelected, [number] groupId) [number] isSelected, [bool] wasSelected
AddScriptToMode([string] scriptText, [string] scriptName) [bool] wasAdded
AddScriptToCombat([string] scriptText, [string] scriptName) [bool] wasAdded
RunCombatDraw()
ComboBox([string] title, [number] indexSelected, [string] ...) [number] indexSelected, [bool] newSelection
CreateImage(([string] fileName) [image]


[Image]
image: DrawImage([number] width = defaultWidth, [number] height = defaultHeight)
image: DrawImageButton(([number] width = defaultWidth, [number] height = defaultHeight) [bool]


[Script]
include([string] fileName) [bool] wasLoaded
RunScript([string] scriptName)
GetScript([string] scriptName) [string] script
LoadScript([string] scriptName, [string] script) [bool] wasLoaded
RunCombatScript([string] GUID) [number] error
RunMountScript()
RunRestScript()




[errorCode]
SPELL_FAILED_AFFECTING_COMBAT = 0x0,
SPELL_FAILED_ALREADY_AT_FULL_HEALTH = 0x1,
SPELL_FAILED_ALREADY_AT_FULL_MANA = 0x2,
SPELL_FAILED_ALREADY_BEING_TAMED = 0x3,
SPELL_FAILED_ALREADY_HAVE_CHARM = 0x4,
SPELL_FAILED_ALREADY_HAVE_SUMMON = 0x5,
SPELL_FAILED_ALREADY_OPEN = 0x6,
SPELL_FAILED_MORE_POWERFUL_SPELL_ACTIVE = 0x7,
SPELL_FAILED_BAD_IMPLICIT_TARGETS = 0x9,
SPELL_FAILED_BAD_TARGETS = 0xA,
SPELL_FAILED_CANT_BE_CHARMED = 0xB,
SPELL_FAILED_CANT_BE_DISENCHANTED = 0xC,
SPELL_FAILED_CANT_BE_PROSPECTED = 0xD,
SPELL_FAILED_CANT_CAST_ON_TAPPED = 0xE,
SPELL_FAILED_CANT_DUEL_WHILE_INVISIBLE = 0xF,
SPELL_FAILED_CANT_DUEL_WHILE_STEALTHED = 0x10,
SPELL_FAILED_CANT_TOO_CLOSE_TO_ENEMY = 0x11,
SPELL_FAILED_CANT_DO_THAT_YET = 0x12,
SPELL_FAILED_CASTER_DEAD = 0x13,
SPELL_FAILED_CHARMED = 0x14,
SPELL_FAILED_CHEST_IN_USE = 0x15,
SPELL_FAILED_CONFUSED = 0x16,
SPELL_FAILED_DONT_REPORT = 0x17,
SPELL_FAILED_EQUIPPED_ITEM = 0x18,
SPELL_FAILED_EQUIPPED_ITEM_CLASS = 0x19,
SPELL_FAILED_EQUIPPED_ITEM_CLASS_MAINHAND = 0x1A,
SPELL_FAILED_EQUIPPED_ITEM_CLASS_OFFHAND = 0x1B,
SPELL_FAILED_ERROR = 0x1C,
SPELL_FAILED_FIZZLE = 0x1D,
SPELL_FAILED_FLEEING = 0x1E,
SPELL_FAILED_FOOD_LOWLEVEL = 0x1F,
SPELL_FAILED_HIGHLEVEL = 0x20,
SPELL_FAILED_IMMUNE = 0x22,
SPELL_FAILED_INTERRUPTED = 0x23,
SPELL_FAILED_INTERRUPTED_COMBAT = 0x24,
SPELL_FAILED_ITEM_ALREADY_ENCHANTED = 0x25,
SPELL_FAILED_ITEM_GONE = 0x26,
SPELL_FAILED_ENCHANT_NOT_EXISTING_ITEM = 0x27,
SPELL_FAILED_ITEM_NOT_READY = 0x28,
SPELL_FAILED_LEVEL_REQUIREMENT = 0x29,
SPELL_FAILED_LINE_OF_SIGHT = 0x2A,
SPELL_FAILED_LOWLEVEL = 0x2B,
SPELL_FAILED_SKILL_NOT_HIGH_ENOUGH = 0x2C,
SPELL_FAILED_MAINHAND_EMPTY = 0x2D,
SPELL_FAILED_MOVING = 0x2E,
SPELL_FAILED_NEED_AMMO = 0x2F,
SPELL_FAILED_NEED_REQUIRES_SOMETHING = 0x30,
SPELL_FAILED_NEED_EXOTIC_AMMO = 0x31,
SPELL_FAILED_NOPATH = 0x32,
SPELL_FAILED_NOT_BEHIND = 0x33,
SPELL_FAILED_NOT_FISHABLE = 0x34,
SPELL_FAILED_NOT_HERE = 0x35,
SPELL_FAILED_NOT_INFRONT = 0x36,
SPELL_FAILED_NOT_IN_CONTROL = 0x37,
SPELL_FAILED_NOT_KNOWN = 0x38,
SPELL_FAILED_NOT_MOUNTED = 0x39,
SPELL_FAILED_NOT_ON_TAXI = 0x3A,
SPELL_FAILED_NOT_ON_TRANSPORT = 0x3B,
SPELL_FAILED_NOT_READY = 0x3C,
SPELL_FAILED_NOT_SHAPESHIFT = 0x3D,
SPELL_FAILED_NOT_STANDING = 0x3E,
SPELL_FAILED_NOT_TRADEABLE = 0x3F,
SPELL_FAILED_NOT_TRADING = 0x40,
SPELL_FAILED_NOT_UNSHEATHED = 0x41,
SPELL_FAILED_NOT_WHILE_GHOST = 0x42,
SPELL_FAILED_NO_AMMO = 0x43,
SPELL_FAILED_NO_CHARGES_REMAIN = 0x44,
SPELL_FAILED_NO_CHAMPION = 0x45,
SPELL_FAILED_NO_COMBO_POINTS = 0x46,
SPELL_FAILED_NO_DUELING = 0x47,
SPELL_FAILED_NO_ENDURANCE = 0x48,
SPELL_FAILED_NO_FISH = 0x49,
SPELL_FAILED_NO_ITEMS_WHILE_SHAPESHIFTED = 0x4A,
SPELL_FAILED_NO_MOUNTS_ALLOWED = 0x4B,
SPELL_FAILED_NO_PET = 0x4C,
SPELL_FAILED_NO_POWER = 0x4D,
SPELL_FAILED_NOTHING_TO_DISPEL = 0x4E,
SPELL_FAILED_NOTHING_TO_STEAL = 0x4F,
SPELL_FAILED_ONLY_ABOVEWATER = 0x50,
SPELL_FAILED_ONLY_DAYTIME = 0x51,
SPELL_FAILED_ONLY_INDOORS = 0x52,
SPELL_FAILED_ONLY_MOUNTED = 0x53,
SPELL_FAILED_ONLY_NIGHTTIME = 0x54,
SPELL_FAILED_ONLY_OUTDOORS = 0x55,
SPELL_FAILED_ONLY_SHAPESHIFT = 0x56,
SPELL_FAILED_ONLY_STEALTHED = 0x57,
SPELL_FAILED_ONLY_UNDERWATER = 0x58,
SPELL_FAILED_OUT_OF_RANGE = 0x59,
SPELL_FAILED_PACIFIED = 0x5A,
SPELL_FAILED_POSSESSED = 0x5B,
SPELL_FAILED_REQUIRES_AREA = 0x5D,
SPELL_FAILED_REQUIRES_SPELL_FOCUS = 0x5E,
SPELL_FAILED_ROOTED = 0x5F,
SPELL_FAILED_SILENCED = 0x60,
SPELL_FAILED_SPELL_IN_PROGRESS = 0x61,
SPELL_FAILED_SPELL_LEARNED = 0x62,
SPELL_FAILED_SPELL_UNAVAILABLE = 0x63,
SPELL_FAILED_STUNNED = 0x64,
SPELL_FAILED_TARGETS_DEAD = 0x65,
SPELL_FAILED_TARGET_AFFECTING_COMBAT = 0x66,
SPELL_FAILED_TARGET_AURASTATE = 0x67,
SPELL_FAILED_TARGET_DUELING = 0x68,
SPELL_FAILED_TARGET_ENEMY = 0x69,
SPELL_FAILED_TARGET_ENRAGED = 0x6A,
SPELL_FAILED_TARGET_FRIENDLY = 0x6B,
SPELL_FAILED_TARGET_IN_COMBAT = 0x6C,
SPELL_FAILED_TARGET_IS_PLAYER = 0x6D,
SPELL_FAILED_TARGET_NOT_DEAD = 0x6E,
SPELL_FAILED_TARGET_NOT_IN_PARTY = 0x6F,
SPELL_FAILED_TARGET_NOT_LOOTED = 0x70,
SPELL_FAILED_TARGET_NOT_PLAYER = 0x71,
SPELL_FAILED_TARGET_NO_POCKETS = 0x72,
SPELL_FAILED_TARGET_NO_WEAPONS = 0x73,
SPELL_FAILED_TARGET_UNSKINNABLE = 0x74,
SPELL_FAILED_THIRST_SATIATED = 0x75,
SPELL_FAILED_TOO_CLOSE = 0x76,
SPELL_FAILED_TOO_MANY_OF_ITEM = 0x77,
SPELL_FAILED_TRAINING_POINTS = 0x79,
SPELL_FAILED_TRY_AGAIN = 0x7A,
SPELL_FAILED_UNIT_NOT_BEHIND = 0x7B,
SPELL_FAILED_UNIT_NOT_INFRONT = 0x7C,
SPELL_FAILED_WRONG_PET_FOOD = 0x7D,
SPELL_FAILED_NOT_WHILE_FATIGUED = 0x7E,
SPELL_FAILED_TARGET_NOT_IN_INSTANCE = 0x7F,
SPELL_FAILED_NOT_WHILE_TRADING = 0x80,
SPELL_FAILED_TARGET_NOT_IN_RAID = 0x81,
SPELL_FAILED_DISENCHANT_WHILE_LOOTING = 0x82,
SPELL_FAILED_PROSPECT_WHILE_LOOTING = 0x83,
SPELL_FAILED_TARGET_FREEFORALL = 0x85,
SPELL_FAILED_NO_EDIBLE_CORPSES = 0x86,
SPELL_FAILED_ONLY_BATTLEGROUNDS = 0x87,
SPELL_FAILED_TARGET_NOT_GHOST = 0x88,
SPELL_FAILED_TOO_MANY_SKILLS = 0x89,
SPELL_FAILED_CANT_USE_NEW_ITEM = 0x8A,
SPELL_FAILED_WRONG_WEATHER = 0x8B,
SPELL_FAILED_DAMAGE_IMMUNE = 0x8C,
SPELL_FAILED_PREVENTED_BY_MECHANIC = 0x8D,
SPELL_FAILED_PLAY_TIME = 0x8E,
SPELL_FAILED_REPUTATION = 0x8F,
SPELL_FAILED_MIN_SKILL = 0x90,
SPELL_FAILED_UNKNOWN = 0x91,
SPELL_CAST_OK = 0xFF,


  how to load a script?
Posted by: ROCKY25579 - 11-19-2017, 12:13 AM - Forum: Support - Replies (4)

I have downloaded the bot. have it launched.  but when i click load script it only says Mage v1. and no options for anything else. what am I doing wrong here?


  Mage 1.8
Posted by: SomebodyFound - 11-18-2017, 10:17 AM - Forum: Mage - Replies (2)

added the same modifications i made to 1.6 from logitech to his 1.7 version
with some new things

-- The original 1.7 and before were made by Logitech
-- Version 1.8 by SomebodyFound
-- -added: Bandage logic
-- -added: Potion logic
-- -added: new eat logic
-- -added: new drink logic
-- all new logics are based on beniamin's rogue rotation
-- -fixed: won't try to conjure food or drink when inventory is full
-- -fixed: getStatus() now has a default return to avoid 'nil' problems
-- -added: will now also try to conjure crystal water
-- -added: cone of cold (toggleable, false by default)
-- -modified: now the information text will be shown on the left/top corner of screen

have fun! Smile



Attached Files
.lua   Mage.lua (Size: 37.77 KB / Downloads: 339)

  Auto delete all grey items from your bags
Posted by: Logitech - 11-13-2017, 08:29 PM - Forum: Support - Replies (2)

Since I usually stop botting when the bags are full (except if there is a "working" vendor close to the path), I hate all the grey items taking up bagspace so I added this to my scripts.

-- Check: Delete grey items from our bags
if (IsInCombat() == 0 and IsDead(localObj) == 0) then
        
    for bag = 0, 4 do
        for slot = 1, GetContainerNumSlots(bag) do
            local name = GetContainerItemLink(bag,slot)
            if name and string.find(name,"ff9d9d9d") then
                PickupContainerItem(bag,slot);
                DeleteCursorItem();
            end
        end
    end

end


  My own: assign target functionhttp://darkenedlinux.com/ogasai/showthread.php?tid=192
Posted by: Logitech - 11-11-2017, 07:33 PM - Forum: Support - No Replies

When leveling there is a lot of humanoid packs thats most likely will kill you that I like to ignore. So I made my own "get nearest target" function with some extra parameters. I share it if anyone would wanna use it. Basicly I grind on beasts, and "ignore" humanoids since they are usually in large groups.

-- Target selection parameters
pullDistance = 88;  -- searches for enemies within X yards
skipHumanoid = true; -- Skip killing humanoid (usually in groups etc...)
skipUndead = true; -- Skip killing undead (usually in groups etc...)
maxLevelDiff = 1; -- pull mobs who are maximum X level above our own level
minLevelDiff = 5; -- pull mobs who are minimum X levels below our own level

function AssignTarget(localObj, bot_)
    if (bot_ == 1) then
        targetObj = 0;
        -- Fetch last target
        lastTarget = GetTarget();
        -- Clear last target if it's dead or tapped by other player
        if (IsDead(lastTarget) == 1 or (IsTapped(lastTarget) == 1 and IsTappedByMe(lastTarget) == 0)) then
            ClearTarget();
            lastTarget = 0;
        else
            targetObj = lastTarget;
        end
        -- Fetch the nearest valid target
        nearestTarget = 0;
        mobDistance = pullDistance;
        local objectTable = GetObjects();
        for i,v in pairs(objectTable) do
            if IsDead(i) == 0 and v.type == 3 and CanAttack(i) == 1 and IsCritter(i) == 0
            and ((GetLevel(i) <= GetLevel(localObj) + maxLevelDiff and GetLevel(i) >= GetLevel(localObj) - minLevelDiff) or GetUnitsTarget(i) == localObj)
            and GetDistance(i) < pullDistance and (IsTapped(i) == 0 or IsTappedByMe(i) == 1) then
                if (skipHumanoid and GetCreatureType(i) == 'Humanoid' and GetUnitsTarget(i) ~= localObj) then
                    -- do nothing
                elseif (skipUndead and GetCreatureType(i) == 'Undead' and GetUnitsTarget(i) ~= localObj) then
                    -- do nothing
                else
                    -- return the closest mob, or a mob that is attacking us
                    if (GetDistance(i) < mobDistance) then
                        -- New closest distance
                        mobDistance = GetDistance(i);    
                        nearestTarget = i;
                    end
                end
            end
        end

        -- Select the closest target if our last target is dead
        if (lastTarget == 0) then
            targetObj = nearestTarget;
        end

        -- Check: If we are in combat but we have no targets perhaps it's low level mob, kill it
        if (lastTarget == 0 and nearestTarget == 0 and IsInCombat() == 1) then
            targetObj = GetTarget();
        end

        -- Check: Swap to the nearest enemy if not in combat yet
        if (IsInCombat() == 0 and GetDistance(nearestTarget) < GetDistance(lastTarget)) then
            targetObj = nearestTarget;
        end

        -- Check: Swap to the target with lowest HP
        lastTargetHP = GetHealthPercentage(lastTarget);
        nearestTargetHP = GetHealthPercentage(nearestTarget);
        if (lastTargetHP >= nearestTargetHP and GetUnitsTarget(nearestTarget) == localObj) then
            targetObj = nearestTarget;
        end
    else
        targetObj = GetTarget(); -- Set target for rotation (player selection)
    end
    return targetObj;
end