I would have enjoyed making some profit off my work, but the last 100 yard dash always feels impossible with my projects. It will eat away with me to have invested so much effort to just step away and let it rot, so I'm releasing my sources. I'm sorry if you think this is a poor decision to make it available to everyone, but in the cat and mouse game of game cheats if the mouse never ups the ante then the program will stay primitive.
WARNING: This is experimental software and may result in bans or might not work in your environment
ofdreams . GitHub
Sources:
Gleam - Unlock
Gem - Addon (Place 'Gemini' folder in WoW AddOns directory)
Cig - Signature Scanner
*Compile both Nydus and GG (from Gleam project) under x64 Release and Open Nydus to inject. After in the game world + 5 seconds it will register a minimap icon which you can left click to open the required lua addon (see README). Right click to free the module (uninject).
Over the next few days I will be keeping tabs on this thread as well as adding some documentation to the repository. I'm not interested in your vision for this software - go ahead and fork it. I want to have a slow crawl approach to adding new things, so it doesn't pull a World of Warcraft and morph into something that betrays its roots or chase features.
This is more of a developer tool to build your bot logic on top of and not the bot itself. For now, just compile and send through a Jump() command (Jump() is the alias see 'core.lua'). Tomorrow I will add a bunch more examples with some better documentation but these below should get you started.
WriteFile
LoadFileCode:local fileName = "Hello.lua" local appDir = GetDirApp() local modulePath = appDir .. "scripts\\" .. fileName print(modulePath) print(FileExists(modulePath)) WriteFile(modulePath, "print('Your file content here')")
ClickTerrainCode:local fileName = "Hello.lua" local appDir = GetDirApp() local modulePath = appDir .. "scripts\\" .. fileName print(modulePath) print(FileExists(modulePath)) LoadFile(modulePath)
Navigation (requires Trinity Core mesh files in App folder named 'Mesh')Code:local x,y,z = GetPosition() CastSpell("Cooking Fire") ClickTerrain(x,y,z, false) -- true == right click
GetPositionCode:local x,y,z = -829, 4284, 746 -- destination point function nav() if Gem:ContinuePath() then Gem:Move() else Gem:UpdatePath(Gem:GetInstanceID(), x, y, z) end C_Timer.After(0, nav) end nav()
InteractCode:local x, y, z = GetObjectPosition(UnitGUID('target')) print(x,y,z) C_Timer.After(3.0, function() local xx, yy, zz = GetObjectPosition(UnitGUID('mouseover')) print(xx,yy,zz) end)
FishingCode:local herb = GetObjectGuid("Silverleaf") Interact(herb)
RaycastCode:-- Go fish... RUN = true -- global RUN defaults to true to allow uninjecting during execution (core.lua) function fish() if RUN then if not UnitChannelInfo("player") then CastSpell("Fishing") end local bobber = FindPlayerBobber() local bobbing = IsBobbing(bobber) if bobbing then Interact(bobber) end C_Timer.After(0.5, fish) end end fish()
Waypoint RecorderCode:-- Raycasts from player position to target (true if collision with hit point) local tx,ty,tz = GetObjectPosition(UnitGUID("target")) local px,py,pz = GetHeadPosition() print(TraceLine(px, py, pz, tx, ty, tz, 273))
Code:RUN = true local filename = "Elwyn Forest.lua" local init = false local points = {} local minDist = 15 function addPoint(p) print("Adding waypoint: " .. p.x .. " " .. p.y .. " " .. p.z) table.insert(points, p) end function recordPath() if RUN then local px, py, pz = GetPosition() if IsShiftKeyDown() then if #points > 0 then local p = points[#points ] if Gem:DistanceTo(p.x, p.y, p.z, px, py, pz) >= minDist then addPoint({ x = px, y = py, z = pz}) end else addPoint({ x = px, y = py, z = pz}) end end C_Timer.After(0, recordPath) end end function loop() if IsControlKeyDown() and IsShiftKeyDown() then print("Stopping Recording!") writeFile(filename) RUN = false end if RUN then if init == false and IsControlKeyDown() then print("Initializing Path Recording...") init = true recordPath() end C_Timer.After(0, loop) end end function writeFile(name) local appDir = GetDirApp() local modulePath = appDir .. "scripts\" .. name print(modulePath) print(FileExists(modulePath)) WriteFile(modulePath, "Points = {\n" .. getPointsStr() .. "\n}") end function getPointsStr() local s = "" for i = 1, #points do s = s .. "{ x = " .. points[i].x .. ", y = " .. points[i].y .. ", z = " .. points[i].z .. " },\n" end return s end loop()







Reply With Quote

and yes it's too late to take it back. best to keep something like this private in the first place or it defeats the purpose.

