Skip to content
This repository has been archived by the owner on Jan 26, 2024. It is now read-only.

discussion #5

Open
saeedkhatami opened this issue Jan 31, 2023 · 42 comments
Open

discussion #5

saeedkhatami opened this issue Jan 31, 2023 · 42 comments

Comments

@saeedkhatami
Copy link

Hello
I really appreciate what you did, all the functions are working properly.
But the problem I have is related to the visibility section, the page it creates is completely black and does not show the background, which is Dota2.
At first, I thought that it was related to VSync settings, which did not solve the problem by changing it.

Capture

Inside the source code is also an option
GLFW_TRANSPARENT_FRAMEBUFFER was active.
Is the problem related to the launch option of the game, which should be opened with OpenGL?

@ExistedGit
Copy link
Owner

ExistedGit commented Jan 31, 2023

I do not launch the game with any special parameters, as the overlay is a separate window and should not interfere. If GLFW_TRANSPARENT_FRAMEBUFFER is indeed set to true, then my only guess is that in your case OpenGL is not properly supported. I haven't encountered this error, it should only be black in Debug mode(and also not fullscreen)
If it's because of OpenGL I might make a DirectX ImGui version to try and test it there(also from the information I gathered I'll need it anyway if I want to render icons from Panorama)

@saeedkhatami
Copy link
Author

Hi
is there a way to get the attack speed of hero value and address? I'm trying to add auto last hit and auto deny.

@saeedkhatami saeedkhatami changed the title window black screen discussion Feb 1, 2023
@ExistedGit
Copy link
Owner

ExistedGit commented Feb 1, 2023

Check out the Wiki page on Netvars, there is a link to a netvar dump, the class is C_DOTA_BaseNPC_Hero(they're in schema/classes/client.dll). Look for m_iBaseAttackSpeed and/or m_flBaseAttackTime(that "Base" can imply you/I'd need to reverse functions related to getting bonuses to it from items)
I'm pondering autolasthit and autodeny too, though you would also need to track projectiles(for ranged heroes) and other entities' attacks on your target(since e. g. your own creeps may screw up the timing). The values for these are mentioned in a September version of the dump but I suppose they're not netvars

@saeedkhatami
Copy link
Author

oh, I really appreciate the information you provided.

@saeedkhatami
Copy link
Author

isvisible

I changed revenant_brooch_ring_glow to selected_ring.vpcf with radius of 75 and RED color.

I think this one is more effective.

@ExistedGit
Copy link
Owner

ExistedGit commented Feb 2, 2023 via email

@saeedkhatami
Copy link
Author

oh nice, I think from C_DOTA_BaseNPC_Creep_Lane it should get the creep lane health.

@ExistedGit
Copy link
Owner

ExistedGit commented Feb 2, 2023 via email

@ExistedGit
Copy link
Owner

About ProjectileSpeed: you might've already noticed I hooked the file system(but have not yet added code for parsing, I already have it on my Test project)
The entity that a unit is attacking is impossible to obtain directly(as it's server-side). The only solution left is to "ray-trace" to the entity in front of the unit + check if the unit is in the attack anim AND also is not turning(angle speed = 0)

@saeedkhatami
Copy link
Author

oh, I didn't know that it's server-side, now it has been more complicated! Thank you for the information you give.
I'm working on DirectX ImGui version menu.

@ExistedGit
Copy link
Owner

ExistedGit commented Feb 7, 2023

I'm working on DirectX ImGui version menu.

Would be nice to add that to the project. Diversifying solutions can ensure we always have the fitting tools
Instead of autolasthitting I'll now look towards a Lua/JS API like the universe's best cheat ever. Wouldn't want to repeat the mistake of putting lambdas everywhere like I did with my SFML project 2 years ago

@saeedkhatami
Copy link
Author

saeedkhatami commented Feb 7, 2023

I found out this fork of Shadow-Dance-Menu called Shadow-Dance-Panda that is updated and DirectX version. but it's not like yours, it just have :

  • Display overlay if visible by enemy team
  • Draw blink dagger range
  • Change camera distance
  • Change weather
  • Remove fog
  • Show Particles on map

@ExistedGit
Copy link
Owner

As you've seen I already implemented the weather change thing from their repo(which I've found on UC) and credited them
The fork was made by the same Indonesian guy who forked&renamed this repo in its early stage. There's nothing more in his commits than number tweaks or commenting out parts of the original code
The naming tho...
Screenshot_400

@saeedkhatami
Copy link
Author

I'm working on DirectX ImGui version menu.

Would be nice to add that to the project. Diversifying solutions can ensure we always have the fitting tools Instead of autolasthitting I'll now look towards a Lua/JS API like the universe's best cheat ever. Wouldn't want to repeat the mistake of putting lambdas everywhere like I did with my SFML project 2 years ago

And you know there are many LUA source codes like

  • Autolast hit
  • auto ult axe
  • tinker auto script
    and many many stuffs

@saeedkhatami
Copy link
Author

saeedkhatami commented Feb 7, 2023

As you've seen I already implemented the weather change thing from their repo(which I've found on UC) and credited them The fork was made by the same Indonesian guy who forked&renamed this repo in its early stage. There's nothing more in his commits than number tweaks or commenting out parts of the original code The naming tho... Screenshot_400

wow LMAO, I didn't see the commits.

@ExistedGit
Copy link
Owner

I'm working on DirectX ImGui version menu.

Would be nice to add that to the project. Diversifying solutions can ensure we always have the fitting tools Instead of autolasthitting I'll now look towards a Lua/JS API like the universe's best cheat ever. Wouldn't want to repeat the mistake of putting lambdas everywhere like I did with my SFML project 2 years ago

And you know there are many LUA source codes like

  • Autolast hit
  • auto ult axe
  • tinker auto script
    and many many stuffs

Idk about Lua scripts in dota(since it's more of a CS:GO thing) but there is a D2JS repo around with scripts like Rubick's auto-steal. For me sol3 looks easier to implement than V8, but we'll see

@saeedkhatami
Copy link
Author

V8 is much more complicated, I just saw the Hello World example.
Did you see the dota2-lua-engine? this repo is old but I think this one is much helpful.

@ExistedGit
Copy link
Owner

10 year old repo

That LuaJIT bit is on point though, they say it's faster than normal Lua
I'm now having the default problem of nothing working with embedding Lua into sol3 into a project, but I'll get through it

@Aligg20
Copy link

Aligg20 commented Feb 8, 2023

I've always looked for a skin changer like Overwolf and FEMIDA, but no one has progressed along the way, can you do something about it?

@ExistedGit
Copy link
Owner

image

For your information, I too have always looked for a skinchanger. It's the primary underlying purpose of all these developments. Not that I don't make advances into that direction, but it's going to take a lof of time. I'm not a team of experienced hackers making a private cheat, after all

@KennyGump
Copy link

Hi there, after I injected your build, it seems to crash when my hero started to spawn in fountain. I had to run my client and inject again, and reconnect to game, and it works fine after that. Any special instructions to prevent crashing every first time I load the game?

@ExistedGit
Copy link
Owner

ExistedGit commented Feb 9, 2023

The only thing I noticed is that it sometimes crashes right in the menu without visible reason(somewhen after initializing interfaces). I will try to reproduce the crash. Did you load into a filled lobby(with bots/someone else)? I remember there were some problems with that
Maybe you can attach Visual Studio via Ctrl + Alt + P to see where the exception comes up and/or debug step-by-step to understand what step causes it
EDIT: I just noticed it sometimes crashes when entering the game because of vtable hooking. Strange.

@Aligg20
Copy link

Aligg20 commented Feb 9, 2023

Is it possible to add automatic armlet mode for Huskar like magic wand?

@saeedkhatami
Copy link
Author

Hi there, after I injected your build, it seems to crash when my hero started to spawn in fountain. I had to run my client and inject again, and reconnect to game, and it works fine after that. Any special instructions to prevent crashing every first time I load the game?

in Extreme injector I use Thread Hijacking method, and I didn't get any crashes in game.

@KennyGump
Copy link

Hi there, after I injected your build, it seems to crash when my hero started to spawn in fountain. I had to run my client and inject again, and reconnect to game, and it works fine after that. Any special instructions to prevent crashing every first time I load the game?

in Extreme injector I use Thread Hijacking method, and I didn't get any crashes in game.

Same here, except that I additionally used "Start in Secure Mode".

The only thing I noticed is that it sometimes crashes right in the menu without visible reason(somewhen after initializing interfaces). I will try to reproduce the crash. Did you load into a filled lobby(with bots/someone else)? I remember there were some problems with that Maybe you can attach Visual Studio via Ctrl + Alt + P to see where the exception comes up and/or debug step-by-step to understand what step causes it EDIT: I just noticed it sometimes crashes when entering the game because of vtable hooking. Strange.

After injection, I start finding game, accept, loads in hero selection, loads loading screen, then crashes while I see a glimpse of fountain. Yes, its filled with 9 other players. I will try and debug and see.

@Wolf49406
Copy link

Видел тебя на югейме. Как насчет коллаба? Уже перегораю 2+ года в соло реверсить.
image
image
image
image

@ExistedGit
Copy link
Owner

ExistedGit commented Feb 12, 2023

Видел тебя на югейме. Как насчет коллаба? Уже перегораю 2+ года в соло реверсить. image image image image

Тебя тоже на югейме видел. Я только за, одному скучно
Кодобаза выглядит внушительно, особенно тема с миникартой

2+ года

Так у вас же группа какая-то была, в хуманайзер-треде видел

Экстрим инжектор просто умер + что-то перепидорасило мою DLLку, да так, что LoadLibrary не работал. Откат сделан, буду смотреть что там такое
EDIT: It was LWSS's Protobuf.h file, apparently

@ExistedGit
Copy link
Owner

So I'm currently suffering with linking the protobufs in such a way that they will actually WORK
It's painful

@Wolf49406
Copy link

Wolf49406 commented Feb 14, 2023

Так и не понял, что у тебя за проблемы с протобафами.
Пробовал просто через vcpkg установить? Я у себя так и сделал.
Да, там дллки создаются, но их можно просто лоудером при запуске копировать из папки чита в \dota 2 beta\game\bin\win64\.
И никаких проблем вообще не испытывать. Только не забудь debug-версию либы у себя туда же кинуть.
Я вообще не уверен, что получится через .lib это организовать. Я лично так и не осилил, постоянно инжектор (и мой мануалмапный, и Extreme) ошибками сыпал.
vcpkg-версия тебе и либы, и дллки, и компилятор protoc.exe даст. Потом простым батником (ps1 тащемта) можно обновлять\компилить протобафы с гитхаба.
Типа такого. Можно и получше сделать, но мне лень :^)

$BaseURL = "https://raw.githubusercontent.com/SteamDatabase/GameTracking-Dota2/master/Protobufs/"
$SRCPath = "C:/CPP/vcpkg/installed/x64-windows/tools/protobuf/src/"
$BuildPath = "C:\CPP\vcpkg\installed\x64-windows\tools\protobuf\build"
$LibraryPath = "C:\CPP\Repos\CrimsonDota\Source\Library\proto"

Invoke-WebRequest -URI $BaseURL"network_connection.proto" -OutFile $SRCPath"network_connection.proto"
Invoke-WebRequest -URI $BaseURL"networkbasetypes.proto" -OutFile $SRCPath"networkbasetypes.proto"
Invoke-WebRequest -URI $BaseURL"netmessages.proto" -OutFile $SRCPath"netmessages.proto"
Invoke-WebRequest -URI $BaseURL"usermessages.proto" -OutFile $SRCPath"usermessages.proto"
Invoke-WebRequest -URI $BaseURL"dota_shared_enums.proto" -OutFile $SRCPath"dota_shared_enums.proto"
Invoke-WebRequest -URI $BaseURL"dota_commonmessages.proto" -OutFile $SRCPath"dota_commonmessages.proto"
Invoke-WebRequest -URI $BaseURL"dota_clientmessages.proto" -OutFile $SRCPath"dota_clientmessages.proto"
Invoke-WebRequest -URI $BaseURL"dota_usermessages.proto" -OutFile $SRCPath"dota_usermessages.proto"
Invoke-WebRequest -URI $BaseURL"steammessages.proto" -OutFile $SRCPath"steammessages.proto"
Invoke-WebRequest -URI $BaseURL"steammessages_unified_base.steamworkssdk.proto" -OutFile $SRCPath"steammessages_unified_base.steamworkssdk.proto"
Invoke-WebRequest -URI $BaseURL"steammessages_steamlearn.steamworkssdk.proto" -OutFile $SRCPath"steammessages_steamlearn.steamworkssdk.proto"
Invoke-WebRequest -URI $BaseURL"gcsdk_gcmessages.proto" -OutFile $SRCPath"gcsdk_gcmessages.proto"
Invoke-WebRequest -URI $BaseURL"econ_shared_enums.proto" -OutFile $SRCPath"econ_shared_enums.proto"
Invoke-WebRequest -URI $BaseURL"econ_gcmessages.proto" -OutFile $SRCPath"econ_gcmessages.proto"
Invoke-WebRequest -URI $BaseURL"dota_gcmessages_msgid.proto" -OutFile $SRCPath"dota_gcmessages_msgid.proto"

C:\CPP\vcpkg\installed\x64-windows\tools\protobuf\protoc.exe --proto_path=$SRCPath --cpp_out=$BuildPath $SRCPath\network_connection.proto
C:\CPP\vcpkg\installed\x64-windows\tools\protobuf\protoc.exe --proto_path=$SRCPath --cpp_out=$BuildPath $SRCPath\networkbasetypes.proto
C:\CPP\vcpkg\installed\x64-windows\tools\protobuf\protoc.exe --proto_path=$SRCPath --cpp_out=$BuildPath $SRCPath\netmessages.proto
C:\CPP\vcpkg\installed\x64-windows\tools\protobuf\protoc.exe --proto_path=$SRCPath --cpp_out=$BuildPath $SRCPath\usermessages.proto
C:\CPP\vcpkg\installed\x64-windows\tools\protobuf\protoc.exe --proto_path=$SRCPath --cpp_out=$BuildPath $SRCPath\dota_shared_enums.proto
C:\CPP\vcpkg\installed\x64-windows\tools\protobuf\protoc.exe --proto_path=$SRCPath --cpp_out=$BuildPath $SRCPath\dota_commonmessages.proto
C:\CPP\vcpkg\installed\x64-windows\tools\protobuf\protoc.exe --proto_path=$SRCPath --cpp_out=$BuildPath $SRCPath\dota_clientmessages.proto
C:\CPP\vcpkg\installed\x64-windows\tools\protobuf\protoc.exe --proto_path=$SRCPath --cpp_out=$BuildPath $SRCPath\dota_usermessages.proto
C:\CPP\vcpkg\installed\x64-windows\tools\protobuf\protoc.exe --proto_path=$SRCPath --cpp_out=$BuildPath $SRCPath\steammessages.proto
C:\CPP\vcpkg\installed\x64-windows\tools\protobuf\protoc.exe --proto_path=$SRCPath --cpp_out=$BuildPath $SRCPath\steammessages_unified_base.steamworkssdk.proto
C:\CPP\vcpkg\installed\x64-windows\tools\protobuf\protoc.exe --proto_path=$SRCPath --cpp_out=$BuildPath $SRCPath\steammessages_steamlearn.steamworkssdk.proto
C:\CPP\vcpkg\installed\x64-windows\tools\protobuf\protoc.exe --proto_path=$SRCPath --cpp_out=$BuildPath $SRCPath\gcsdk_gcmessages.proto
C:\CPP\vcpkg\installed\x64-windows\tools\protobuf\protoc.exe --proto_path=$SRCPath --cpp_out=$BuildPath $SRCPath\econ_shared_enums.proto
C:\CPP\vcpkg\installed\x64-windows\tools\protobuf\protoc.exe --proto_path=$SRCPath --cpp_out=$BuildPath $SRCPath\econ_gcmessages.proto
C:\CPP\vcpkg\installed\x64-windows\tools\protobuf\protoc.exe --proto_path=$SRCPath --cpp_out=$BuildPath $SRCPath\dota_gcmessages_msgid.proto

Get-ChildItem -Path "$BuildPath*.*" -Recurse | Move-Item -Destination $LibraryPath -Force

@ExistedGit
Copy link
Owner

Кстати вспкг изначально и ставил, но что-то там не получилось и мне перехотелось
Протобафы вполне себе собираются в статик-версию без лишней DLLки(но там CRT включается тогда и размер больше), мне лишь бы версию рабочую
За скрипт пасиба, идея с закидыванием DLL в папку весьма интересная

@Wolf49406
Copy link

Попробуй таки еще раз с vcpkg, это оптимальный вариант -- и делается, и обновляется просто.
В проекте указывай инклюды: \vcpkg\installed\x64-windows\include.
И либы: \vcpkg\installed\x64-windows\lib.
Нужны только libprotobuf.lib и libprotobuf-lite.lib, если что.
dll, которые нужно рядом с dota2.exe класть, лежат в \vcpkg\installed\x64-windows\bin.
Debug-версии .lib и .dll лежат в \vcpkg\installed\x64-windows\debug.
А в \vcpkg\installed\x64-windows\tools\protobuf будет и protoc.exe для компиляции.

Помню, тоже в своё время несколько ночей на протобафы убил -- пытался компилить из сырцов.
Еще и LWSS писал, что нужна определенная его версия, но это херня полная :/
По итогу тупо через vcpkg сделал и всё без проблем заработало. А копирование либы в папку доты -- не большая цена.

ЗЫ: Кстати, насчет коллаба. У меня пека сдохла внезапно. А ноут не может в доту, лол, получаю ошибку, связанную видимо с директыксом -- forceloadshader() что-то там.

@ExistedGit
Copy link
Owner

ExistedGit commented Feb 14, 2023

ЗЫ: Кстати, насчет коллаба. У меня пека сдохла внезапно. А ноут не может в доту, лол, получаю ошибку, связанную видимо с директыксом -- forceloadshader() что-то там.

Вселенная, видимо, ещё не готова к такому коллабу
Но а вообще после контакта с протобафами у меня на два дня поллица опухло, тоже не было суждено нормально работать

@Wolf49406
Copy link

Ну я думаю просто через Parsec (типа удаленное управление ПК) заюзаю пеку моего саппорта, пока он на работе, только он чет не онлайн уже долго :/
Но в целом всё реализуемо. А насчет прото -- я хз, там же вообще всё оч просто, не?
Могу тебе архивом скинуть .lib и .dll, ну и компилер -- просто в проект себе их заинклюдь, ну и сделай оберт_очку для копирования .dll в папку доты.
И, да, каждый раз лучше при запуске лоудера копировать дллки. Мало ли, ты проток решишь обновить.

Еще нужно бы написать нормальный экзешник вместо этого всратого ps1-скрипта, шоб удобно было.
И, наверное, скрипт для Tampermonkey\браузера, чтобы он чекал обновление .proto в репозитории, ну и присылал уведомление, мол, "твои .proto обновились, иди запускай скрипт, уёба".

ЗЫ: Опять таки, насчет коллаба. Мб лучше куда-нибудь Вк или Телегу напишешь?

@Aligg20
Copy link

Aligg20 commented Mar 11, 2023

I can't figure out how to inject the new update, can you explain me?

@ExistedGit
Copy link
Owner

ExistedGit commented Mar 11, 2023

I mean, you're supposed to build Dota2Cheat and Dota2Loader in Release x64 and launch the .exe in Build/Release/ folder

@Aligg20
Copy link

Aligg20 commented Mar 16, 2023

Why does it crash on official servers, is there a way to fix it? And thank you for your hard work.

@ExistedGit
Copy link
Owner

ExistedGit commented Mar 16, 2023

It's a bit unstable, but I'm testing it on a bot-filled lobby too, it's not supposed to crash during the game(apart from some one-time nullptr issues because of some crazy synchronization).
Also you really shouldn't play with that on official servers

@ExistedGit
Copy link
Owner

Actually, you know what? I'm retarded
It didn't work properly on non-local servers due to some Dota mechanisms
For whatever reason it adds 11 CDOTAPlayerControllers out of 10. I found a way around it, expect a commit

@waccii
Copy link

waccii commented Apr 1, 2023

The cheat works "occasionally." (sometimes there are 5mins delay before it works)

I'm using the released build

Issue:

  1. crashed at some point
  2. In-game, ES and Magnus ulti does not work(even with enemy heroes).
    It also does not work in demo(test dummy), but it does function in demo(enemy)
    Untitled

PS: I'm using the crimsons cheat, but sadly yesterday it stopped working after the recent patch. So I tried this and surprisingly it worked.

@someuser32
Copy link

Hello I really appreciate what you did, all the functions are working properly. But the problem I have is related to the visibility section, the page it creates is completely black and does not show the background, which is Dota2. At first, I thought that it was related to VSync settings, which did not solve the problem by changing it.

Capture

Inside the source code is also an option GLFW_TRANSPARENT_FRAMEBUFFER was active. Is the problem related to the launch option of the game, which should be opened with OpenGL?

For everyone who has the same issue.
In NVIDIA Control Panel, OpenGL GDI Compatibility must be set to "Prefer Compatibility".
image

@AlexanderLevashov
Copy link

Hi! Has anyone had any problems with the fact that the cheat works displayed on top of other applications? You use alt + tab and nothing, it goes to dota, and the application is not active...

@riyushiki
Copy link

Wassup, guys! How to use lua scripts in this cheat?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants