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

Username
  

Password
  





Search Forums



(Advanced Search)

Forum Statistics
» Members: 1,269
» Latest member: sonusood
» Forum threads: 127
» Forum posts: 633

Full Statistics

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

Latest Threads
single static mob avoidan...
Forum: Script development - Lua ressources
Last Post: Syntax
02-01-2020, 08:08 PM
» Replies: 1
» Views: 5,120
Newbie question about Wel...
Forum: Support
Last Post: leperche
11-02-2019, 06:32 PM
» Replies: 0
» Views: 2,970
Nav Mesh
Forum: Support
Last Post: m0use0ver
10-15-2019, 09:37 PM
» Replies: 6
» Views: 10,768
Relog-Snippet
Forum: General
Last Post: m0use0ver
10-14-2019, 02:37 PM
» Replies: 0
» Views: 4,062
Classic - oGasai 2.1.23 -...
Forum: Bot Base
Last Post: bigday928
08-27-2019, 03:56 AM
» Replies: 154
» Views: 235,042
gasai for wow classic 1.1...
Forum: General
Last Post: xrom2002
08-26-2019, 11:57 AM
» Replies: 0
» Views: 3,582
TBC - oGasai - Grinder, F...
Forum: Bot Base
Last Post: vovan
08-07-2019, 07:45 PM
» Replies: 52
» Views: 66,068
Immediate Auto Logout
Forum: Support
Last Post: zerger
07-11-2019, 01:57 PM
» Replies: 1
» Views: 3,437
Quest leveling (not a jok...
Forum: General
Last Post: zerger
05-16-2019, 10:11 AM
» Replies: 1
» Views: 5,092
Bot functions support
Forum: Support
Last Post: Thotitout
03-22-2019, 12:58 AM
» Replies: 2
» Views: 4,977

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

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

  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


  Log4cplus: ERROR No appenders coud be found for logger <AdSyncNamespace>
Posted by: Akaronte - 11-07-2017, 11:48 AM - Forum: Support - No Replies

Log4cplus: ERROR No appenders coud be found for logger <AdSyncNamespace>



Attached Files Thumbnail(s)
   

Star Shaman 1.2b (w/ totems)
Posted by: SomebodyFound - 11-06-2017, 07:05 AM - Forum: Shaman - Replies (5)

i've had a hard time with those totems, it should be so simple, but the bot sometimes did landed the totems, sometimes it didn't....

now it seems to be working properly, so i decided to release, but consider it as a beta, feedback would be nice <3 


-- Version 1.1 and beyond modified by SomebodyFound
-- from original 1.0 Logitech work
--
-- V1.1
-- -fixed: walking stuttering for low level shamans
-- -added: new drinking logic with driking lists
-- -added: new eating logic with drinking lists
-- -added: new potion logic with potion lists
-- -added: new bandage logic with bandage lists
-- all logics implemented from beniamin rogue's rotation
-- V1.2b
-- -added: totems
-- -added: now you can choose wich elemental shock
-- will be used (earth by default)
-- -added: flame shock will be used to renew the debuff
-- (toggleable)
-- -added: ice shock may now be used to renew debuff
-- (toggleable, false by default)
-- V1.3
-- -added: Lightning bolt is now toggleable
-- -added: air totem
-- -fixed: bandage wasn't working as intended
-- -added: stormstrike (toggleable, false by default)


have fun!



Attached Files
.lua   Shaman.lua (Size: 26.38 KB / Downloads: 625)

  Simple Druid profile 1.6
Posted by: SomebodyFound - 11-04-2017, 10:52 PM - Forum: Druid - Replies (15)

-- 1.1 minor fixes
-- 1.2 added bear fight
-- 1.3 fixed some heal issues 
-- version 1.4 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
-- version 1.5 by somebodyfound
-- -added: rejuvenation to the rotation
-- -fixed: Bandage logic wasn't working as intended
-- -fixed: re-cast moonfire when debuff ends
-- -added: demoralizing roar to the rotation
-- -added: will now use enrage in-combat (toggleable)
-- -added: demoralizing roar is now toggleable 
-- -added: rejuvenate is now toggleable 
-- and also used out of combat
-- version 1.6 by somebodyfound and teewee
-- -added: now demoralizing roar can be
-- configured to use only when fighting
-- a certain number of enemies
-- -added: new paranoid function for elven druids
-- 1.6b
-- -added: use maul faster depending on cost red. talent
-- -fixed: enrage wasn't working as intended
-- (still need better fix, but it's at least working now)


have fun



Attached Files
.lua   Druid.lua (Size: 33.45 KB / Downloads: 662)