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

Username
  

Password
  





Search Forums



(Advanced Search)

Forum Statistics
» Members: 1,014
» Latest member: Uselesstool
» Forum threads: 109
» Forum posts: 480

Full Statistics

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

Latest Threads
Phytolast - Boost Your Li...
Forum: General
Last Post: PhytolastMaleEnhancement
9 hours ago
» Replies: 0
» Views: 3
Useful Methods for your s...
Forum: General
Last Post: ponponpon
07-10-2018, 01:16 AM
» Replies: 2
» Views: 2,797
Logitech's Releases for o...
Forum: Support
Last Post: Thuzadin
07-08-2018, 02:57 AM
» Replies: 98
» Views: 24,468
Hunter won't auto shot?
Forum: Support
Last Post: KahluanMilk
04-15-2018, 04:12 PM
» Replies: 0
» Views: 398
Hidden for oGasai 2.0.17
Forum: Rogue
Last Post: Shparkz
04-14-2018, 10:35 AM
» Replies: 6
» Views: 2,577
Logitechs feral druid - i...
Forum: Druid
Last Post: SomebodyFound
03-31-2018, 06:42 PM
» Replies: 1
» Views: 921
How to edit the attack di...
Forum: Support
Last Post: zerger
03-27-2018, 11:56 AM
» Replies: 3
» Views: 448
Rotation Framework
Forum: Bot Base
Last Post: Schaka
03-01-2018, 09:31 AM
» Replies: 0
» Views: 1,326
Improved Logitech's Grind...
Forum: Support
Last Post: zerger
02-22-2018, 11:06 AM
» Replies: 1
» Views: 759
Set speed or lock speed f...
Forum: Support
Last Post: Onixwow
02-09-2018, 05:24 PM
» Replies: 6
» Views: 1,054

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

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: 691)
.lua   script_nav.lua (Size: 18.86 KB / Downloads: 607)
.lua   script_mage_frostbite.lua (Size: 19.01 KB / Downloads: 504)
.lua   script_rogue_hidden.lua (Size: 15.75 KB / Downloads: 474)
.lua   script_hunter_beastmaster.lua (Size: 24.9 KB / Downloads: 448)
.lua   script_helper.lua (Size: 8.9 KB / Downloads: 502)
.lua   script_warlock_shadowmaster.lua (Size: 17.53 KB / Downloads: 446)
.lua   script_warrior_fury.lua (Size: 11.17 KB / Downloads: 435)
.lua   script_paladin_ret.lua (Size: 18.04 KB / Downloads: 392)
.lua   script_priest_disc.lua (Size: 11.14 KB / Downloads: 426)
.lua   script_shaman_enhance.lua (Size: 11.14 KB / Downloads: 387)
.lua   coremenu.lua (Size: 3.98 KB / Downloads: 576)
.lua   script_follow.lua (Size: 23.81 KB / Downloads: 414)
.lua   script_vendor.lua (Size: 14.25 KB / Downloads: 448)
.lua   vendorDB.lua (Size: 4.48 KB / Downloads: 475)
.lua   script_druid_feral.lua (Size: 19.03 KB / Downloads: 363)

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

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

  Functions for logging out when if we get stuck or the nav mesh crash
Posted by: Logitech - 11-08-2017, 02:56 PM - Forum: General - Replies (1)

Im back leveling with this bot and since I've been having problems with the nav mesh crashing I dont wanna get banned standing still forever... So I made some functions for detection this...

Add these functions and run: StopIfStuck(); on every iteration.

function SavePos()
    local x, y, z = GetUnitsPosition(GetLocalPlayer());
    SetVar('myX', x);
    SetVar('myY', y);
    SetVar('myZ', z);  
    SetVar('myTime', GetTimeX());
end

function GetSavedX() if (GetVar('myX') ~= 0) then return GetVar('myX'); else return 0; end end
function GetSavedY() if (GetVar('myY') ~= 0) then return GetVar('myY'); else return 0; end end
function GetSavedZ() if (GetVar('myZ') ~= 0) then return GetVar('myZ'); else return 0; end end
function GetSavedTime() if (GetVar('myTime') ~= 0) then return GetVar('myTime'); else return 0; end end

function GetDistanceDif()
    local x, y, z = GetUnitsPosition(GetLocalPlayer());
    local xV = GetSavedX()-x;
    local yV = GetSavedY()-y;
    local zV = GetSavedZ()-z;
    return math.sqrt(xV^2 + yV^2 + zV^2);
end

function StopIfStuck()
    -- Draw functions
    DrawText('Stuck feature:', 250, 240, 255, 255, 0);
    DrawText('Current distance to last saved coordinates: ' .. math.floor(GetDistanceDif()) .. ' yards...', 250, 250, 255, 255, 255);
    DrawText('Logging out in' .. ' ' .. math.floor(30-((GetTimeX()-GetSavedTime())/1000)) .. ' s if we do not move or save a new position...', 250, 260, 255, 255, 255);
    DrawText('New position is saved if we move more than 20 yards or when we are in combat or eating...', 250, 270, 255, 255, 255);

    -- Save our pos if we moved more then 20 yards or if we are in combat or eating
    if (GetDistanceDif() > 20 or IsInCombat() == 1 or IsEating() == 1) then
        SavePos();
        return;
    end

    -- Check if we are stuck/standing still (moved less than 20 yards) since 30 sec since last saved position
    if (GetDistanceDif() < 20 and ((GetTimeX()-GetSavedTime())/1000) > 30) then
        if (logOutIfStuck) then Logout(); end
        StopBot();
        return;
    end
end