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

Username
  

Password
  





Search Forums



(Advanced Search)

Forum Statistics
» Members: 1,072
» Latest member: Fishing Phillip Island
» Forum threads: 120
» Forum posts: 501

Full Statistics

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

Latest Threads
2.0.17 or 2.1.17
Forum: General
Last Post: NightCrawler504
11-10-2018, 01:03 AM
» Replies: 2
» Views: 45
3M silicone rubber window...
Forum: General
Last Post: danmei
11-05-2018, 06:38 AM
» Replies: 0
» Views: 34
folding bread box manufac...
Forum: General
Last Post: danmei
11-05-2018, 06:34 AM
» Replies: 0
» Views: 17
Security Seal Stickers su...
Forum: General
Last Post: danmei
11-05-2018, 06:31 AM
» Replies: 0
» Views: 17
China Knee Cap suppliers
Forum: General
Last Post: danmei
11-05-2018, 06:27 AM
» Replies: 0
» Views: 15
Click Model Vinyl Floorin...
Forum: General
Last Post: danmei
11-05-2018, 06:26 AM
» Replies: 0
» Views: 11
best Custom designed fash...
Forum: General
Last Post: danmei
11-05-2018, 06:21 AM
» Replies: 0
» Views: 17
Customized Carbon steel P...
Forum: General
Last Post: danmei
11-05-2018, 06:20 AM
» Replies: 0
» Views: 13
5V4.2A 3 USB car charger ...
Forum: General
Last Post: danmei
11-05-2018, 06:19 AM
» Replies: 0
» Views: 13
79418-78-3 CRO
Forum: General
Last Post: danmei
11-05-2018, 06:16 AM
» Replies: 0
» Views: 14

 
  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: 243)

  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


  Logitech's Releases for oGasai 2.1.x
Posted by: Logitech - 11-26-2017, 02:33 PM - Forum: Support - Replies (101)

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: 31.38 KB / Downloads: 899)
.lua   script_nav.lua (Size: 18.86 KB / Downloads: 801)
.lua   script_mage_frostbite.lua (Size: 19.01 KB / Downloads: 681)
.lua   script_rogue_hidden.lua (Size: 15.75 KB / Downloads: 635)
.lua   script_hunter_beastmaster.lua (Size: 24.9 KB / Downloads: 601)
.lua   script_helper.lua (Size: 8.9 KB / Downloads: 694)
.lua   script_warlock_shadowmaster.lua (Size: 17.53 KB / Downloads: 611)
.lua   script_warrior_fury.lua (Size: 11.17 KB / Downloads: 599)
.lua   script_paladin_ret.lua (Size: 18.04 KB / Downloads: 545)
.lua   script_priest_disc.lua (Size: 11.14 KB / Downloads: 595)
.lua   script_shaman_enhance.lua (Size: 11.14 KB / Downloads: 540)
.lua   coremenu.lua (Size: 3.98 KB / Downloads: 801)
.lua   script_follow.lua (Size: 23.81 KB / Downloads: 597)
.lua   script_vendor.lua (Size: 14.25 KB / Downloads: 644)
.lua   vendorDB.lua (Size: 4.48 KB / Downloads: 653)
.lua   script_druid_feral.lua (Size: 19.03 KB / Downloads: 530)

  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: Guides - Replies (1)

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]


[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
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)
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]
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]


[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()

[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


[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: 269)

  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


  Hunter Rotation v1.5c
Posted by: SomebodyFound - 11-10-2017, 07:11 PM - Forum: Hunter - Replies (6)

i modified the beastmaster v1.4 rotation to update it with some new logics, 

-- Rotation based on Beastmaster 1.4
-- v1.4
-- -Small fixes, regains Hp/Mana before looting now and turns around right after we walk out to shoot
-- -Added information on the screen of monster and players, you can disable it the settings (borrowed some for-statements from Beniamins rogue script for this)
-- v1.3
-- -Fixed the move back function
-- -Removed the timer after using Aspect of the Cheetah to not look so "botish"
-- v1.2
-- -Fixed logical errors when the player is in level range 1-12
-- -Added the move back function to run out and shoot if pet has aggro
-- v1.1
-- -Fixed ChooseAspect function
-- -Fixed check for Mend Pet (update 2017-03-10)
-- -Updated the check for targeting enemy players/pets, see the enemyFaction setting

-- Version 1.5 by SomebodyFound
-- v1.5
-- -added: Bandage logic
-- -added: Potion logic
-- -added: new eat logic
-- -added: new drink logic
-- all 4 logics are based on beniamin's rogue rotation
-- -added: new assign target logic
-- -added: pullDistance may now be configured
-- 1.5b
-- added: will now cast Feign Death if (2 or more enemies attacking us) or if (1 enemy attacking us and below 50% hp)
-- added: some new functions
-- fixed(?): sometimes drinking and looting were overlaping
-- fixed: clearing target after feeding pet
-- 1.5c
-- tried to improve the drinking/looting logic

have fun! Smile



Attached Files
.lua   Hunter.lua (Size: 27.57 KB / Downloads: 217)