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



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 18 online users.
» 0 Member(s) | 18 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: 10
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

  Beest Vanilla Server atm?
Posted by: Bokutox - 03-02-2017, 08:58 AM - Forum: General - Replies (1)

I know a lot of new servers are out - I was curious which would be the Most popular - a Rising Sttar so to speak.

What servers has this ben tested on?

Do you have a preference? is Kronoss still Numb 1?

  Love the Bot! Working on Profile Packages
Posted by: Bokutox - 03-02-2017, 08:07 AM - Forum: General - Replies (2)

Im loving the fucking bot.

Wish zzukbot would hury up and get his shit going =x this has so much awesome feattures.

got a full 1-300 mining / herb

1-60 Profile pack (horde atm - like 20 alliance)

and a few rotation CC's

  Best bot in town
Posted by: wowbot - 03-01-2017, 06:15 AM - Forum: General - Replies (2)

Keep up the great work.

  In-Game Radar using Draw Text (now improved!)
Posted by: Logitech - 02-26-2017, 10:11 PM - Forum: Support - Replies (3)

I accidentally removed the old thread, sorry about that.

Update: Improved outline and range indication. 

Two things still remains:
1. Correct the transformation from game coordinates to 2D pixel coordinates... Right now it works but its not optimal, see scaleX / scaleY.
2. Find a function/method of determine which direction we are facing

Other stuff is easy to add, such as displaying hostile players, friendly players etc. Or any object for that matter. You will get all objects within 100 yards of your character if you are alive. Right now I only display pull-able targets and players.

Code below:

function Radar()
        local radarOffsetX = 512; local radarOffsetY = 369; local radius = 200; local pi = 3.14;
       local numberOfValidTargets = 0; local numberOfPlayers = 0; local targets = {}; local players = {}; local localObj = GetLocalPlayer();
        local currentObj, typeObj = GetFirstObject();
        while currentObj ~= 0 do
        if typeObj == 3 then -- Save pull-able targets in an array
                   if CanAttack(currentObj) == 1 and IsDead(currentObj) == 0 and ((IsTapped(currentObj) == 0 or IsTappedByMe(currentObj) == 1)) then
                       numberOfValidTargets = numberOfValidTargets + 1;
                        targets[numberOfValidTargets] = currentObj;
        elseif typeObj == 4 then -- Save players in an array
            numberOfPlayers = numberOfPlayers+1;
            players[numberOfPlayers]= currentObj;
        currentObj, typeObj = GetNextObject(currentObj);
    -- Draw the radar's outline        
        DrawText('*', radarOffsetX, radarOffsetY, 0, 255, 0);
        for i= 1, 360 do
            local cX = radarOffsetX + radius*math.cos(i/(2*pi)); local cY = radarOffsetY + radius*math.sin(i/(2*pi)); DrawLine(cX, cY, cX+1, cY+1, 0, 255, 0, 1);
    -- Get the radar's center game coordinates
        local centerX, centerY, __ = GetPosition(localObj);
        -- Draw all the valid monster targets
        for i=1, numberOfValidTargets do
        -- Transform the game coordinates to 2D pixel coords.
        local cX, cY, __ = GetPosition(targets[i]);     
        -- X and Y coordinates are swapped dunno why
        local vectorLength = math.sqrt(cX^2 + cY^2);
        local scaleX = radius/85;
 local scaleY = radius/50;

        local distance = math.floor(GetDistance(targets[i]));
        local drawX = scaleX*(cY - centerY)*(centerY/vectorLength);
            local drawY = scaleY*(cX - centerX)*(centerX/vectorLength);
            if (GetTarget() == targets[i]) then
                DrawText('Target', radarOffsetX+drawX-10, radarOffsetY+drawY, 255, 0, 0);
        DrawText('(' .. distance .. ' yd)', radarOffsetX+drawX-9, radarOffsetY+drawY+10, 255, 0, 0);
                DrawText('Monster', radarOffsetX+drawX-10, radarOffsetY+drawY, 0, 0, 255);
        DrawText('(' .. distance .. ' yd)', radarOffsetX+drawX-10, radarOffsetY+drawY+10, 0, 0, 255);

    -- Draw the players nearby
        for i=1, numberOfPlayers do
        -- Transform the game coordinates to 2D pixel coords.
        local cX, cY, __ = GetPosition(players[i]);     
        -- X and Y coordinates are swapped dunno why
        local vectorLength = math.sqrt(cX^2 + cY^2);
        local scaleX = radius/85;
 local scaleY = radius/50;

        local distance = math.floor(GetDistance(players[i]));
        local drawX = scaleX*(cY - centerY)*(centerY/vectorLength);
            local drawY = scaleY*(cX - centerX)*(centerX/vectorLength);
            if (GetTarget() == players[i] and players[i] ~= localObj) then
                DrawText('Target', radarOffsetX+drawX-10, radarOffsetY+drawY, 255, 0, 0);
        DrawText('(' .. distance .. ' yd)', radarOffsetX+drawX-9, radarOffsetY+drawY+10, 255, 0, 0);
            elseif (players[i] ~= localObj) then
                if (CanAttack(players[i]) == 1) then
                      DrawText('!PLAYER!', radarOffsetX+drawX-10, radarOffsetY+drawY, 255, 0, 0);
                      DrawText('(' .. distance .. ' yd)', radarOffsetX+drawX-10, radarOffsetY+drawY+10, 255, 0, 0);
                      DrawText('!PLAYER!', radarOffsetX+drawX-10, radarOffsetY+drawY, 0, 255, 0);
                      DrawText('(' .. distance .. ' yd)', radarOffsetX+drawX-10, radarOffsetY+drawY+10, 0, 255, 0);


Attached Files Thumbnail(s)

  Beastmaster - Hunter Level Bot for oGasai 2.0.17
Posted by: Logitech - 02-23-2017, 04:10 PM - Forum: Hunter - Replies (17)

Beastmaster - Hunter Level Bot for oGasai 2.0.17

Since the script is very long you have to copy the text in e.g. notepad and paste it in the rotation ui of oGasai.

Beastmaster 1.5
- Update 2017-12-01:
       - Corrected a bug that prevented us from using special attacks in combat...
       - Now checks if we are able to auto attack before moving "in line of sight", really increased efficiency
       - Corrected the use of aspect of the cheetah instead of aspect of the pack
       - e.g. in Darkshore, instead of moving in line of sight for every tree, we shoot through them

- Fixed many bugs, e.g. before you get mend pet skill
- If too close to a target when pet got aggro, we try to run towards the last killed mob
- New function with lots of options for pulling mobs, also pull distance added
- Now pauses when feeding the pet for maximum happiness
- Stop if stuck feature added
- Uses scrolls if we have any
- Added timers when navigating / looting. PetAttack() and PetFollow() will disconnect you if you do it too fast.

See picture below if you dont know where to put your pet food etc.
You only have to babysist the pet food slot if your pet is new, or if it dies a lot. When all is normal you don't need much pet food. Higher level pets needs higher level meat...


Beastmaster 1.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)

Beastmaster 1.3

- Fixed the move back function
- Removed the timer after using Aspect of the Cheetah to not look so "botish"

Beastmaster 1.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

Beastmaster 1.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

Beastmaster 1.0
Sharing my own hunter rotation for leveling. I've spent a lot of free time on this to get everything working good with a pet. It's scripted for Beast Mastery talents. If you are below level 10 and have no pet. Set hasPet to false, and you should probably change stopOnFull to false too when low level. I don't bother to setup vendor paths etc. I grind to full inventory then logout. But you don't have to enable that. Just change the parameters to false (see settings). Make sure you have your quiver in the 5th slot (the one to the left) and your pet food in the last slot of your 4th bag or change the parameters in settings. Enable Status and you will see a lot of messages of what the script is doing at the time.

Note: I don't follow code standard since I want the script to be able to load easily (minimal number of lines). Often you have to scroll down and remove random characters in the end of the rotation after the first load. Or you copy paste the full script at once.

- Calls, Revives, Mends and Feeds your pet
- Keeps Serpent Sting DoT up if the target isn't an elemental
- Swaps Aspects depending on the situation
- Using Cooldowns such as: Intimidation, Bestial Wrath, Troll Racial
- Stops for 30s when targeting other players or pets
   (can bug on some monsters in Arathi Highland counted as players, please add: and UnitFactionGroup("target") == "Alliance" to the if statement if you play horde.
- Options for stopping on full inventory and using Hearthstone then logging out

- Function for moving out to shoot if the mob is too close and the pet has aggro, right now we just go ham in meele instead. I can do this but its too buggy in small areas. One idea is to navigate to the last killed target until we get in auto shot range.
- Use feign death, is not really needed but if someone wants it.
- Report bugs in this thread, I can probably fix them

Attached Files
.lua   Beastmaster 1.1.lua (Size: 18.09 KB / Downloads: 220)
.lua   Beastmaster 1.2.lua (Size: 18.51 KB / Downloads: 196)
.lua   Beastmaster 1.3.lua (Size: 18.82 KB / Downloads: 201)
.lua   Beastmaster 1.4.lua (Size: 21.34 KB / Downloads: 412)
.lua   Beastmaster 1.5.lua (Size: 34.05 KB / Downloads: 300)

Posted by: Google - 02-17-2017, 08:15 PM - Forum: Support - No Replies

test thread for something im working on

  Useful Methods for your scripts
Posted by: Logitech - 02-13-2017, 10:33 PM - Forum: General - Replies (2)

Here you can post code segments of any implementation of racial skills or useful checks. I will start with some... (sorry for good/bad solutions... and not following code standards)
Some of my rotations gets very long that's why I have to skip using more lines then necessary. I've worked a lot on hunter methods... I've now shared my full hunter rotation on this forum.

In my scripts I use the timer functions for Global Cooldowns when using skills. Then add a return statement early so the scripts does nothing during that duration (to not spam abilities).

Undead  Racial Cannibalize:
function SetCannibalizeTarget(targetObj) SetVar('cannibTarget', targetObj); end -- Saves a target to Cannibalize later
function GetCannibalizeTarget() return GetVar('cannibTarget'); end -- Gets the target that should be Cannibalized

-- Set the current target as a "Cannibalize-target" if it's Humanoid or Undead
 if (GetCreatureType(targetObj) == 'Humanoid' or GetCreatureType(targetObj) == 'Undead') then SetCannibalizeTarget(targetObj); else SetCannibalizeTarget(0); end

-- Check: If we can use Cannibalize on a corpse
if (IsTimeGood() == 1 and IsInCombat() == 0 and localHealth < eatHealth and IsEating() == 0) then          
     if (IsMoving() == 1 and GetDistance(GetCannibalizeTarget()) < 3) then StopMoving(); return; end
      -- Cannibalize if possible
      if(HasSpell('Cannibalize') == 1 and IsSpellOnCD('Cannibalize') == 0 and GetCannibalizeTarget() ~= 0) then  
            SetSatusText('Cannibalize possible: ', 'Moving to corpse to feed...');
            if (GetDistance(GetCannibalizeTarget()) > 3) then

Customizable check if bags are full, e.g. with ignore hunter quiver (quiverBagNr = quiver bag index):
-- Check bags 1-5, except the quiver bag (quiverBagNr)
for i=1,5 do
     if (i ~= quiverBagNr) then
            for y=1,GetContainerNumSlots(i-1) do
                  texture, itemCount, locked, quality, readable = GetContainerItemInfo(i-1,y);
                  if (itemCount == 0 or itemCount == nil) then
                          inventoryFull = false;

if (inventoryFull) then
    -- do something, e.g. I use Hearthstone and stop the bot.

Use Hearthstone with check of CD, does HS if on CD then stops the bot:
hsBag = 1; -- local setting variable: bag 1 (index is 0 for bag 1!)
hsSlot = 1; -- local setting variable: slot 1 (index is 1 for slot 1)
hsWhenStop = true; -- local setting

SetSatusText('Inventory is full', 'Stopping the bot...');
if (GetContainerItemCooldown(hsBag-1,hsSlot) == 0 and hsWhenStop and IsTimeGood() == 1) then

First Aid, bandage:
bandageName = "Linen Bandage"; -- Name of the bandage to use

function UpdateBandageTimer() SetVar('bandageTimer', GetTimeX() + 62000); end -- Set the CD time for the bandage debuff (60s)
function CanBandage() if (GetVar('bandageTimer') < GetTimeX()) then return 1; end return 0; end -- Has the bandage debuff CD timer passed?

-- Check: Use Bandage if possible
if(HasItem(bandageName) == 1 and CanBandage() == 1 and IsInCombat() == 0 and localHealth < eatHealth and IsEating() == 0 and IsTimeGood() == 1) then
    SetSatusText('Bandage possible: ', 'Using bandage...');
    if (UseItem(bandageName) == 1)  then

Display the player's HP, Mana, Energy, Rage, Pet's Hp and Target's HP on the screen

DrawText('HP:' .. GetHealth(localObj) .. ' (' .. round(GetHealthPercentage(localObj),2) .. '%)', 25, 150, 0, 255, 0);
DrawText('Mana:' .. GetMana(localObj) .. ' (' .. round(GetManaPercentage(localObj),2) .. '%)', 25,165, 0, 255, 255);
if (hasPet and UnitExists("pet")) then DrawText('PET HP:' .. UnitHealth("pet") .. ' (' .. round(UnitHealth("pet")*100/UnitHealthMax("pet"),2) .. '%)', 25, 180, 0, 255, 0); end

DrawText('Energy:' .. GetEnergy(localObj), 25,165, 255, 255, 0);
DrawText('Energy:' ..GetRage(localObj), 25,165, 255, 255, 0);

if (GetTarget() ~= 0) then DrawText('Target HP:' .. GetHealth(GetTarget()) .. ' (%)', 25, 180, 255, 0, 0); end

Hunter choose aspect function:
function chooseAspect()
    hasHawk, hasMonkey, hasCheetah  = HasSpell("Aspect of the Hawk"), HasSpell("Aspect of the Monkey"), HasSpell("Aspect of the Cheetah");
    if (hasMonkey and GetLevel(localObj) < 10) then if (HasBuff(localObj, 'Aspect of the Monkey') == 0) then SetSatusText('Choosing Aspect: ', 'Aspect of the Monkey...'); CastSpellByName('Aspect of the Monkey'); return; end    
    elseif (hasCheetah and IsInCombat() == 0 and GetNearestEnemy() == 0) then if (HasBuff(localObj, 'Aspect of the Cheetah') == 0) then SetSatusText('Choosing Aspect: ', 'Aspect of the Cheetah...'); CastSpellByName('Aspect of the Cheetah'); return; end
    elseif (hasHawk and IsInCombat() == 1) then if (HasBuff(localObj, 'Aspect of the Hawk') == 0) then SetSatusText('Choosing Aspect: ', 'Aspect of the Hawk...'); CastSpellByName('Aspect of the Hawk'); return; end end

Feed pet for hunters:
bagWithPetFood = 4; -- 4th bag slot has pet food in it (ALWAYS PUT PET FOOD IN THE LAST SLOT OF THE BAG!)

function SetFeedTimer() SetVar('feedTimer', GetTimeX() + 20000); end -- 20s duration on Feed Pet
function IsFeedPetDone() if (GetVar('feedTimer') < GetTimeX()) then return 1; end return 0; end

-- Check: If pet isn't happy, feed it (see the bagWithPetFood, pet food have to be in the last slot of the bag)
happiness, damagePercentage, loyaltyRate = GetPetHappiness();
if (UnitExists("Pet") and IsFeedPetDone() == 1 and IsInCombat() == 0 and hasPet and UnitHealth("pet") > 0) then
    if (happiness < 3 or loyaltyRate < 0) then
        SetSatusText('Pet is not happy!', 'Feeding the pet...');
        if (IsStanding() == 0) then SitOrStand(); return; end
        CastSpellByName("Feed Pet"); TargetUnit("Pet"); PickupContainerItem(bagWithPetFood-1, GetContainerNumSlots(bagWithPetFood-1));
        -- Set a 20 seconds timer for this check (Feed Pet duration)
        SetFeedTimer(); end

Check: If pet is dead/dismissed then Revive/Call pet:
if (UnitHealth("pet") == 0 and hasPet) then
    SetSatusText('Pet is missing', 'Calling/reviving pet...');
    if (not UnitExists("pet")) then CastSpellByName('Call Pet'); return; end
    if (IsMoving() == 1) then StopMoving(); return; else
        if (IsStanding() == 0) then SitOrStand(); return; end
        __, __, __, __, reviveCost = GetSpellInfoX('Revive Pet');
        if (GetMana(localObj) >= reviveCost) then CastSpellByName('Revive Pet'); else return; end end

Check: Dont pull if pet has lower than 70% HP and out of combat, use mend pet
if (hasPet and UnitHealth("pet")/UnitHealthMax("pet") < 0.70 and IsInCombat() == 0 and UnitHealth("pet") > 0) then
    __, __, __, __, mendCost = GetSpellInfoX('Mend Pet');
    SetSatusText('Pet has lower than 70 procent HP!', 'Mend pet if not in combat...');
    if (IsMoving(localObj)) then StopMoving(); end
    if (IsDrinking() == 0 and GetMana(localObj) >= mendCost) then CastSpellByName("Mend Pet"); return; end

Check: Mend the pet if it has less than 35% HP and we are in combat and pet isn't dead
if (hasPet and UnitHealth("pet")/UnitHealthMax("pet") < 0.35 and IsInCombat() == 1 and UnitHealth("pet") ~= nil) then
    SetSatusText('Pet has lower than 30 percent HP!', 'Mend pet...');
    __, __, __, __, mendCost = GetSpellInfoX('Mend Pet');
    -- Check: If in range to mend the pet
    if (GetDistance(targetObj) < 20 and GetMana(localObj) >= mendCost) then if (IsMoving(localObj) == 1 and GetDistance(targetObj) < 20) then StopMoving(); return; end CastSpellByName("Mend Pet"); return;
    elseif (GetMana(localObj) >= mendCost) then MoveToTarget(targetObj); return; end

  Official download link?
Posted by: derpus - 02-05-2017, 04:08 PM - Forum: General - No Replies

Hey sorry i was unable to find a "Official download link"
I am going back to ownedcore frequently to check if there has been an update however the newest version is not even on there it is only on discord from what i can see.

  34-38 Alterac Mountains
Posted by: Zeth'Kur - 01-28-2017, 04:17 AM - Forum: 30 to 39 - Replies (2)

This profile I ran with Priest Mage from 34-39, zero deaths.

Attached Files
.xml   Ogres Alterac Mountains 35+.xml (Size: 6.68 KB / Downloads: 206)

Thumbs Up Progress report - report in!
Posted by: Zeth'Kur - 01-26-2017, 10:01 PM - Forum: General - Replies (13)

How is everyone progressing - love to hear where everyone is at in their 1-60 grind.

Currently 34 Mage and 35 Priest, nothing seem's to slow me down!