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



Search Forums

(Advanced Search)

Forum Statistics
» Members: 1,150
» Latest member: Good Chemistry Tuition
» Forum threads: 126
» Forum posts: 631

Full Statistics

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

Latest Threads
Nav Mesh
Forum: Support
Last Post: m0use0ver
10-15-2019, 09:37 PM
» Replies: 6
» Views: 3,030
Forum: General
Last Post: m0use0ver
10-14-2019, 02:37 PM
» Replies: 0
» Views: 19
Classic - oGasai 2.1.23 -...
Forum: Bot Base
Last Post: bigday928
08-27-2019, 03:56 AM
» Replies: 154
» Views: 67,562
gasai for wow classic 1.1...
Forum: General
Last Post: xrom2002
08-26-2019, 11:57 AM
» Replies: 0
» Views: 354
TBC - oGasai - Grinder, F...
Forum: Bot Base
Last Post: vovan
08-07-2019, 07:45 PM
» Replies: 52
» Views: 9,512
Immediate Auto Logout
Forum: Support
Last Post: zerger
07-11-2019, 01:57 PM
» Replies: 1
» Views: 452
Quest leveling (not a jok...
Forum: General
Last Post: zerger
05-16-2019, 10:11 AM
» Replies: 1
» Views: 864
Bot functions support
Forum: Support
Last Post: Thotitout
03-22-2019, 12:58 AM
» Replies: 2
» Views: 988
single static mob avoidan...
Forum: Script development - Lua ressources
Last Post: zerger
03-12-2019, 01:35 PM
» Replies: 0
» Views: 507
Guide / Tutorial for Wow ...
Forum: Support
Last Post: icencoffe
03-10-2019, 03:50 AM
» Replies: 3
» Views: 1,097

Posted by: m0use0ver - 10-14-2019, 02:37 PM - Forum: General - No Replies

Hey there, dear community.

First of all thank you Darkenedlinux for developing this masterpiece.
oGasai works perfectly for me on Kronos 1.12 server.

But.. it doesn't seem to work perfectly for them^^
Recently when I was testing oGasai - and totally amazed by it's capabilities - I got my accounts banned on Kronos.
lol x))

I figured that it took the server about 10 minutes to point out the bots, since all of them got caught at the same time after starting.
So now I figured my workaround for this issue, and would like to share it. I added a script for auto-logoff, and perform a relog with another program.
I added the following script to my Combat Profile LUA files of oGasai:

function script_mage:relog()
    --Kronos seems to detect out bots after 10 minutes. Use this with relog function of vanilla botter
    self.waitTimer = GetTimeEX() + 30000;
    self.message = "Performing /logout command Wink";

After the character is logged off, another Botter(Vanilla Botter - nulled https://www.nulled.to/topic/120738-vanil...1-cracked/) handles the relog.
It works for multiple bots at the same time, and I am already happily botting since 12 hours AFK.
Let's see how long it lasts this time^^

Btw, would it be possible to add such a function to oGasai in future?
Auto-Relog and panic-timer.

Kind Greetz

  gasai for wow classic 1.13
Posted by: xrom2002 - 08-26-2019, 11:57 AM - Forum: General - No Replies

gasai for wow classic 1.13 ??

  Immediate Auto Logout
Posted by: Dementor - 07-02-2019, 05:43 AM - Forum: Support - Replies (1)

I am new to the whole botting scene and am trying my hand at it. I have been able to follow along with Logitech's "TBC - Ogasai - Grinder, Follower, Fishing & Combat Included" article. I am attempting to use on Warmane Outland (2.4.3) Server.

I have the files from there (the latest as I can see, from last post on page 6). I have downloaded/updated the Visual C++ Distributable and Direct X Runtime.

I start up wow, inject using cheatengine, all seems well with the menus appearing in the top left. I then log in, choose my toon and enter world. Once it loads up, it is immediately attempting to log out (the 20 seconds to log out window). I cancel the log out pop up and it re appears. I am unable to do anything because it is constantly attempting to log me out.

Not sure where to even start with this one. Any clues I can start looking into?

Thanks in advance.

  Quest leveling (not a joke)
Posted by: Nonstopich - 05-09-2019, 04:33 PM - Forum: General - Replies (1)

The idea is simple: to implement another bot mode - questing.
Not to be unfounded I will leave here a video, which shows the "primitive" implementation of this process on Wotlk.

My Mooo-girl will make few quest for you.

The video clearly shows that the character does not know how to bypass obstacles.
I'm from Russia, so sorry for link to ya.ru.

But even this is not the main problem  Big Grin 

How to get from the Red Cloud Mesa to the pig on the this quest ? Navigation system from oGossai can help us.
I want to try to use the opportunity oGassai.

You may ask: how are profiles created for the performance of tasks?

I wrote a small application that uses the MySQL DB home server.

The application is looking for the ID of the required quest in the database, determines who gives the task, who accepts it.
And if in the task you need to kill + loot from th mob or loot from the object, remember where and from whom it can be obtained.
Saves this information to a LUA file that can be used already in script code.

How do you think? I want to hear the opinion of the developers. I want to find partners Smile
Logitech, We are not familiar, but I think it will interest you  Rolleyes

Best Regards,

  single static mob avoidance
Posted by: zerger - 03-12-2019, 01:35 PM - Forum: Script development - Lua ressources - No Replies

(disclaimer: i am just a hobby programmer)

i started with a basic concept, if i can write a logic that can walk around a single mob i should be able to modify it 
and walk around multiple mobs. I want to the avoidance behavour look human like

live steering vs pre calculated  waypoints (wp)
since the environment and mobs are static  wp are a good solution
i can test the area for obstacles with raycasts and literally see if the way to the wp is good

my first approach was that i have a circle around a mob "aggro circle" and if i construct a tangent of that circle which
runs through my destination xy i should be able to calculate a wp (random spot in blue area)

if i take a An isosceles triangle in front of me, combine it with the tangent of the mob in my path i end up with an 
area in my isosceles triangle that is save to walk to.

[Image: tagent.png]

if i have a second mob i just take its tangent into consideration 

[Image: tangent2.png]

BUT when i imagine more mobs that approach starts to look less appealing

[Image: tagent_3.png]

second approach: construct wp left and right of a mob with a triangle
[Image: triangle.png]

i have two sides of a right triangle
a is the distance me <---> mob
b is the distance mob <---> wp (which should be greater than the aggro range)
c is root of (a*a+b*b)

to calculate both wp left and right of the mob i construct two circles and the wp are at the circle intersections
first circle has a the radius "b" and the other circle the radius "c" 

[Image: circles.png]

where the two circles intersect i have my left and right waypoint
i ended up with a working solution 

third approach: construct two wp left and right of the mob
although approach two works it is not good enough and i refine my wp selection logic
i construct two wp left and right of the mob and the distance between these wp is 1.5*radius of the aggrorcircle  

based on the point from approach two i construct the two new wp
i again have two sides of a right triangle
a is old wp <---> mob
b is 0.75* aggroradius
c is root of (a*a+b*b)

and again circle intersections are used to calculate both wp

[Image: 2wp.png]

video of the code in action

so far so good but with obstacles it gets more complicated and should be somehow solved

first idea:
calculate more wp left right so if some of them are blocked the others can be used (again check with raycast)

[Image: 4.png]

[Image: 3.png]

  Bot functions support
Posted by: Thotitout - 03-06-2019, 08:53 AM - Forum: Support - Replies (2)


I've had great success with Logitech's scripts / grinder. Yay to Logi but that's a different post for a different thread. That being said I'm using his grinder and frost mage script as a base.

I've been doing some testing with a frost mage and noticed that it never takes advantage of the 10% or 20% range increase on frostbolt when spending points into the Arctic Reach talent. I scoured through all the various scripts he included but realized that the IsSpellInRange function is apart of the WoWUnits API. In his scripts he calls targetObj:IsSpellInRange('Frostbolt') but it only returns true when less than or equal to 30 yards which is the default range of frostbolt.

Arctic reach talent doesn't seem to modify the name of the spells it affects but only their spell range value. The only other thing I figured that I would ask is if the spell range is hard coded in the API?

I'm not certain if it is possible to have it conditionally flag 0 pts /30 yd, 1 pts /33 yd, and 2 pts /36 yd range based upon how many talents are spent in arctic reach. I looked through all of the other functions included with the API but didn't see anything that would check talent points in something that doesn't add a spell to the spellbook or modify a spells name.


Heart Basic Warlock Script [TBC]
Posted by: SomebodyFound - 02-25-2019, 04:13 AM - Forum: Bot Base - No Replies

Hello everyone, i've used logitech's work as a base to make a basic warlock rotation ( Heart http://darkenedlinux.com/ogasai/showthread.php?tid=377 )

***You will need to download his files***

it will have some bugs, and i've made it to basically use spells rotation, summon and sacrifice voidwalker, create and use healthstones

it may not work properly if you don't have some of those skills, in any case i've made a setup of "useSkill"

feel free to change it, the rotation if all skills are set to true will be:

agony as opener, 


Life Tap (if conditions met) -> drain soul (if out of stones and enemy dying) -> heal with stone (if conditions met) -> shadow bolt (if in Shadow Trance) -> siphon life -> corruption -> agony -> immolate -> drain life

each debuff will only be used if the enemy does not already have it

just download it and put the scripts in script folder and the menu on the main folder

The menu.lua is already updated to have warlock script

ps: the code has an option  doesTheServerYouPlayHealsPetWhenMounting because my server is currently bugged and if you mount, your pet is re-summoned when you get out of your horse, so it gets full life and mana, it's set to true as default, you'll need to change it by opening the file and manually changing the text from "true" to "false"

--[edit 27/feb/2019]--
> updated menu.lua
> added shaddow bolt as an option to replace drain life

--[edit 28/feb/2019]--
> added option to change hotfix drink if you're having trouble as well and want to use another drink just edit the name in the first few lines of the file
> added script_grind.lua file hotfix, i'm having some errors using current version, i commented the lines and the script is not working properly but at least is working for me now

--[edit 2/mar/2019]--
> removed edited script_grind.lua attachment as the current version provided by logitech is currently working for me
> updated the whole code to be compatible with new logitech's script
> added menu tab configuration, you can now config it by opening ogasai's menu in-game

Attached Files
.lua   menu.lua (Size: 1.22 KB / Downloads: 98)
.lua   script_warlock.lua (Size: 10.8 KB / Downloads: 118)

  TBC - oGasai - Grinder, Follower, Fishing & Combat Scripts Included
Posted by: Logitech - 02-16-2019, 02:41 PM - Forum: Bot Base - Replies (52)

oGasai & Grinder for TBC

New release: new .dll and reorganized script files
New raycast navigation, no mapfiles required can be used in TBC zones (needs testing)

Download all files here, latest 2019-05-09:

* NavMesh files (mmaps): https://mega.nz/#!g0U2xI4a!aoJICAY34DLvM...Xz4J3rg9dM
* In TBC zones you can use raycast pathing (it handles most sitatuations, but not all)
* Wow has to be in window mode
* Enable auto loot corpse in WoW interface settings. Otherwise it will not loot.

How to install:
1. Extract the .rar archive
2. Extract the mmaps into the same dir
3. Start oGasaiLoader.exe
3. Select your WoW.exe

After injection:
1. Log into the server, choose char, enter world...
2. Choose a Mode and a combat script for your class...
3. Press Start, nav mesh files loads automaticly...

Hotspot Grinding
*There is a hotspot database that auto loads hotspots depending on your level and race. So far there are only some human and night elf locations in the DB.
*Press set current location as hotspot button to see what line you should add in the scripts//db//hotspotDB.lua
* Now you can select any hotspot from the DB in the Path options menu

* You can add vendors to scripts//db//vendorDB.lua for automatic load on startup
* You can set vendors manually in the UI, this will print the addVendor code to put in the DB if you want
* You can set repair, sell, food, drink, arrow and bullet vendors at the same time
* You can set it to refill food/drinks when below a certain amount

* Skinning, Herbalism & Mining while grinding

Auto Spend Talents
* Change talents in script_talent.lua

* script_helper.lua includes food and drinks that the bot searches for you can add more ofc

* If the bot doesn't mount, check in script_helper.lua if your mount name is added

Class combat scripts:
* Frost Mage
* Beastmaster Hunter (be sure to disable 'Auto Attack/Auto Shot' in Interface Options -> Combat
* Affliction/Demon Warlock (pet choice Fel Guard > Voidwalker > Imp)
* Retribution Paladin
* Shadow Priest
* Basic Fury Warrior
* Basic Feral Druid
* Basic Rogue Combat
* Basic Shaman Enhancement

Hunter default bag setup:

* Uses the same combat scripts used by the grinder
* A priest follower heals the whole party
* You can set a grinder bot to be group leader with free for all loot
* If a grinder bot is in group it will wait for the group to rest and catch up

* Uses the same combat scripts used by the grinder
* Auto attaches lure
* Set a sell vendor and it will sell at full inventory, otherwise it stops then

If you setup it right should look like:
[Image: tbc.png]

Attached Files
.txt   changelog.txt (Size: 2.64 KB / Downloads: 97)

  Mob avoidance and pathing
Posted by: zerger - 02-12-2019, 10:56 PM - Forum: Script development - Lua ressources - No Replies

i am working on scripts that can avoid mobs.
i started to write a script for single static mob avoidance and i try to end up with a system that can avoid/path through groups of moving mobs.

here is some theory crafting:

1. we have general navigation through the world using a navmesh
2. we have "steering" which should avoid mobs locally

General assumption:
we want the bot to think/behave human like
we cant see more than 100 yards ahead

we have different character situations:

-"llnm" low level compared to the zone/area mobs without mount (level 5 character in wetlands)
-"slnm" same level compared to the zone/area mobs without mount
-"hlnm" same level compared to the zone/area mobs without mount (level 60 in STV)

-"llm" low level compared to the zone/area mobs with mount (level 40 character in winterspring)
-"slm" same level compared to the zone/area mobs with mount
-"hlsm" higher level compared to the zone/area mobs with 'super' mount

we have different travel situations:

"ldt" long distance travel (getting from menethil to dun modr or from eastern wetlands to a vendor)
"sdt" short different travel (getting to a ore node or avoiding an elite while moving to the next grind target)

in the case of wetlands
steering is useful when:
slnm/llnm sdt

steering is NOT useful when:
llnm ldt (running through the area of 1 will us either get stuck or takes us a long time to find a path)

steering might not be necessary
hlnm/hlsm doing ldt/sdt

[Image: wetlands_abc.png]
[Image: wetlands_numbered.png]

  Resurrection function that avoids mobs for Logitechs grinder
Posted by: zerger - 02-03-2019, 03:14 PM - Forum: Bot Base - No Replies

i wrote a function that tries to find a better spot for res 

go to corpse
create 1000 random spots and check their distance to surrounding mobs
if there is a spot that has enough distance to all mobs around go there and repop
if not stay at corpse and repop

doesn't check when at "save res spot" if there are mobs that are closer now (because they patrol)
doesn't check if you can actually walk to res spot, so you might get stuck

is use fr0s4 improved version but it should also work for logitechs original grinder 

you can change and test 2 variable
1) v.r is aggro range of mobs, so here it would be aggrorange + 10 yards (increase if you want the safespot to be further away from mobs)

if GetDistance3D(v.x,v.y,v.z,self.move_res_x, self.move_res_y,self.move_res_z) < v.r+10 then

2) you can increase the area that is searched by raisng the ressdistance, on Lh its more like 30 or 35
ressDistance = 25,

if you want to use it you have to edit "script_grind_logitech.lua"

in the top part add these variables
    searched_save_repop_spot = false,
    move_res_x = 0,
    move_res_y = 0,
    move_res_z = 0,

somewhere above "function script_grind:run()" add
function script_grind:MobTable()
-- put enemies in a table    
    local me = GetLocalPlayer();
    objectTable = {};
    local obj_, type_ = GetFirstObject();
    while obj_ ~= 0 do
        if type_ == 3 or type_ == 4 then
            local objX, objY, objZ = obj_:GetPosition();
            -- objR is mob aggro ranged, i tested it  and it is at least 6 and maximum 46, on same lvl its 21
            local objR = obj_:GetLevel() - me:GetLevel() + 21
            if objR > 46 then objR = 46 end;
            if objR < 6 then objR = 6 end;
            local objGUID = obj_:GetGUID();
            local objName = obj_:GetUnitName();
            objectTable[obj_] = {x = objX, y = objY, z = objZ, type = type_, r = objR, GUID = objGUID, name = objName};
        obj_, type_ = GetNextObject(obj_);

and replace the  resurrect part in the code between "-- Corpse-walk if we are dead" and "-- Check: If in group wait for members to be within 60 yards and 75% mana" with :
        if(localObj:IsDead()) then
            self.message = "Walking to corpse...";
            -- Release body
            if(not IsGhost()) then RepopMe(); self.waitTimer = GetTimeEX() + 5000; return; end
            -- Ressurrect within the ress distance to our corpse
            local _lx, _ly, _lz = localObj:GetPosition();
            if(GetDistance3D(_lx, _ly, _lz, GetCorpsePosition()) > 2) and self.searched_save_repop_spot == false then -- if we are more than 2 yards away from corpse AND havent looked for a save resspot
                script_nav:moveToNav(localObj, GetCorpsePosition());
                if self.searched_save_repop_spot == false then -- if we havent looked for a spot
                    local c_x,c_y,c_z = GetCorpsePosition();
                    for i=1,1000 do  -- there might be no save xy then res at corpse_xy

                         r = self.ressDistance * sqrt(math.random())
                         theta = math.random() * 2 * math.pi
                        save_res_x = c_x + r * math.cos(theta)
                         save_res_y = c_y + r * math.sin(theta)
                        self.move_res_x = save_res_x
                        self.move_res_y = save_res_y
                         isVis, _hx, _hy, _hz = Raycast(self.move_res_x, self.move_res_y, 10000, self.move_res_x, self.move_res_y, -10000);
                        self.move_res_z = _hz
                         self.Is_spot_save = true

                        for i,v in pairs(objectTable) do
                            if v.type == 3     and i:CanAttack() == true  and i:IsCritter() == false then

                                if GetDistance3D(v.x,v.y,v.z,self.move_res_x, self.move_res_y,self.move_res_z) < v.r+10 then -- aggro radius PLUS a save distance
                                    self.Is_spot_save = false;


                        if self.Is_spot_save == true then
                            self.searched_save_repop_spot = true;
                            break; -- break for i do        
                        if i == 1000 then -- if we dont find a savespot till the last i then there is no savespot
                            self.Is_spot_save = false;
                            self.searched_save_repop_spot = true;
                    end -- for i do end

                    if self.Is_spot_save == false then -- if we didnt find a save spot to res, res at corpse xyz
                        self.move_res_x = c_x
                        self.move_res_y = c_y
                        self.move_res_z = c_z
                end -- if not searched_save_repop_spot end
                if self.searched_save_repop_spot == true and--if we looked for a save res position
                 GetDistance3D(_lx, _ly, _lz, self.move_res_x,self.move_res_y,self.move_res_z) < 2 then -- if a we are close to safe res spot
                    script_grind:savePos(); -- save pos so we don't log out (stuck feature)
                else -- we looked for a save spot and are more than 2 yards away