Testing BugCraft Studio in WoW Alpha Bugcraft Studio
Testing BugCraft Studio in WoW Alpha Bugcraft Studio
The ultimate Machinima tool -> Bugcraft Studio https://noggaholic.github.io
I found a CVector3 field on the CM2Model class (not sure what the real name is) that is used to apply an emissive color to the model. The client uses it for highlighting when you mouse over units and gameobjects, and maybe other things. Then I wrote code to walk the visible object list and apply different emissive colors based on the object type. I'm working with the mac client but this stuff should be the same across platforms and versions.
Code:local Draw = TextHook.Instance() function Startup() local pos = Vec2.new(300, 300) Draw:AddText('LuaTest', pos) end function Update() Draw:SetText('LuaTest', 'Hello from Lua!') end
Simple stuff but nice to know my scripting engine is working as expected. Time to implement more fun stuff
BugCraft Studio Colorizer. Everything made with JS, CSS3 and HTML5. Thanks Torpedoes for creating Robot-js.
The ultimate Machinima tool -> Bugcraft Studio https://noggaholic.github.io
An update on my bot project. Although I'm not working on it much nowadays a lot has happened since my last post.
Theres been a lot of trial and error going into this, trying new ideas and improving old ones. Rethinking structuring which stopped scaling with a larger codebase, staring at assembler and decompiled c for days, hoping time will make sense of things. I've really poured everything I got into this project, and loved every moment of it! While its not perfect Im happy to share these videos showcasing some of its features
Current main features:
- Chat monitoring with push notification forwarding
- Session timer (auto quit/shutdown)
- Multi clients
- Spirit walking
- Basic vendoring (repair/sell greys)
- Grinding botbase
- Gathering botbase
- Fishing botbase
- "Loot everything" botbase
- Profile creation tools,
- Basic player avoidance and alarms.
- Waypoint/graph navigation
Mixed grinding demo,
Gathering herbs:
Many thx to the community at ownedcore, the resources available here have been invaluable.
nothing new just loaded the old project for some ingame drawing and Astar
someone know something about this tool? is it shared? or project closed
[EmuDevTool] Preview: Objects Rotation - YouTube
[EDT] Messing around with objects - YouTube
i can pay if someone could do things like this
cobbled together a tracky thing while trying out VS2019, pretty happy with it
edit: for tbc
Last edited by Valmere; 03-30-2019 at 02:52 AM. Reason: no
wat
Got hyped for wow classic
so i made this a few days ago:
Final result:
Going to level now wont be touching this for a while
Last edited by maikel23350; 06-15-2019 at 05:48 PM.
Kinda sad to see so little activity after Classic is launched. Anyways, here's something new:
I wanted to have my bots prefer roads/paths since it's safer in regards to hostile mobs and has the added benefit of looking more human. There's nothing in the game files/databases to distinguish a road from other terrain types (it's purely visual,) so I made a tool to quickly map out individual textures based on the selected tiles.
Within a couple hours I had all of Kalimdor and Eastern Kingdoms mapped out and had finished touching up the roads in photoshop. From there I projected the bitmap on to the navmeshes in the form of areas - ie. polygons with explicitly lower "cost" than regular terrain. Depending on the task at hand, my bot can now prioritize using roads.
With a little more time in photoshop I should also be able to produce a 2D roads-only navmesh for long distance pathing since all polys are guaranteed to be walkable.
Bonus edit: I've also been messing around with R&D a lot and coming up with some post-processing functions to stop my bot from clinging to the walls. With some Bézier curves and keyturning it should look almost like a stupid human. Yay!
https://dl.dropboxusercontent.com/s/...3466301ac2.mp4
Last edited by Jadd; 11-20-2019 at 08:37 AM.
@jadd I did something similar with the use of the ReallyLowQualityTextureingMap in the MCNK chunk. I was able to build a list of "road" textures and mark them when building the mesh. I never tested it on a huge botting scale just in a few places like elwynn and stv but it worked well.
Last edited by aeo; 11-21-2019 at 07:30 AM.
I've recently been resurrecting my pathfinding code and adding python bindings so that the author of the questie ui mod can improve his quest objective tracking database. Example python script:
And resulting output:Code:#!/usr/bin/python3 import time import sys import os import math import argparse sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'lib'))) import pathfind # Depends on the psutil python package: # pip install psutil def try_print_mem_usage(): try: import psutil mem_gb = psutil.Process().memory_info().rss / (1024.0**3) print('Memory usage: %.2f Gb' % mem_gb) except ModuleNotFoundError: return def time_load(data_path): print('Loading Azeroth from %s' % data_path) start = time.time() map = pathfind.Map(data_path, 'Azeroth') load_time = time.time() - start print('Loaded Azeroth map in %.2f seconds' % load_time) start = time.time() count = map.load_all_adts() load_time = time.time() - start print('Loaded entire Azeroth mesh (%d tiles) in %d seconds' % (count, load_time)) return map def path_length(path): result = 0 for i in range(1, len(path)): delta_x = path[i-1][0] - path[i][0] delta_y = path[i-1][1] - path[i][1] delta_z = path[i-1][2] - path[i][2] result += delta_x * delta_x + delta_y * delta_y + delta_z * delta_z return math.sqrt(result) if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('-n', '--navdata', help='Path to navigation data', default=r'f:\nav_vanilla') args = parser.parse_args() try: if not os.path.isdir(args.navdata): raise RuntimeError('Navigation data directory %s does not exist' % args.navdata) map = time_load(args.navdata) start = time.time() test_path = map.find_path(-8949.95, -132.493, 83.5312, -8833.38, 628.628, 94.0066) find_path_time = time.time() - start print('Path from Human start to Stormwind (length = %.2f, took %.2f seconds):' % (path_length(test_path), find_path_time)) for point in test_path: print(' (%.2f, %.2f, %.2f)' % (point[0], point[1], point[2])) except: raise sys.exit(1) finally: try_print_mem_usage() sys.exit(0)
Code:Loading Azeroth from /var/questie/navmesh/ Loaded Azeroth map in 0.29 seconds Loaded entire Azeroth mesh (736 tiles) in 246 seconds Path from Human start to Stormwind (length = 277.27, took 0.01 seconds): (-8949.95, -132.49, 83.53) (-8959.22, -119.64, 83.48) (-8966.67, -100.00, 85.85) (-8970.83, -68.15, 91.45) (-8970.83, -67.56, 91.70) (-8969.05, -61.01, 91.95) (-8969.05, -60.71, 91.70) (-9000.00, 0.00, 93.63) (-9014.29, 27.68, 104.83) (-9014.88, 28.57, 106.58) (-9066.67, 100.00, 131.74) (-9073.81, 137.20, 117.74) (-9073.81, 138.09, 116.99) (-9066.67, 300.00, 93.40) (-9066.67, 366.67, 93.40) (-9085.12, 397.92, 93.65) (-9085.12, 398.81, 93.65) (-9084.52, 399.40, 93.65) (-9083.33, 400.60, 93.65) (-9082.14, 401.79, 93.40) (-9080.95, 402.98, 93.15) (-9078.57, 405.06, 92.90) (-9076.49, 406.85, 92.90) (-9069.05, 412.50, 92.90) (-8977.98, 512.20, 96.65) (-8971.73, 523.81, 97.15) (-8961.90, 555.65, 93.90) (-8961.61, 555.95, 93.90) (-8949.11, 555.95, 93.90) (-8929.17, 550.59, 94.40) (-8928.87, 550.59, 94.40) (-8928.27, 550.89, 94.40) (-8927.68, 551.19, 94.40) (-8900.00, 566.67, 92.90) (-8847.32, 614.29, 93.40) (-8833.38, 628.63, 94.01) Memory usage: 1.88 Gb
hey guys, i have been reading this forum for a few months and i am very grateful for all the resources provided by all of you.
I learned a lot thank you so much!
Im working on a simple bot base for 3.3.5 on linux.
I managed get some hooks and imgui working, and implemented a simple waypoint system, a fishing bot, simple teleport and 3dradar/esp.
I also tough about implementing a python scripting interface as soon as my core is good structured.
I finally got lua setup the way I want. I have a script that I can make adjustments to then just reinject the lua and release the dll/close exe; it's great for testing. In the screenshot I'm just testing closeby waypoints, but soon I'll pass in a position instead. "after(ms, 'func')" is my C_Timer.After method. I plan on making a C_Timer.NewTicker script as well. For now, I'm pretty excited because it will be super easy to do dungeons or whatnot until I actually implement navmeshes.
script.png
Here's the full video of it..
Last edited by GlittPrizes; 08-04-2020 at 03:31 PM.