Skip to content

Commit

Permalink
added herobrine
Browse files Browse the repository at this point in the history
  • Loading branch information
TheSillyDoggo committed Feb 7, 2024
1 parent 554e737 commit 4fa06c2
Show file tree
Hide file tree
Showing 12 changed files with 25,198 additions and 22 deletions.
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ project(CheatClient VERSION 1.0.0)

file(GLOB SOURCES
src/*.cpp
src/*.h
src/Hacks/*.cpp
src/Client/*.cpp
src/Client/*.h
Expand Down
7 changes: 7 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
# 1.1.3

- Fixed Level Edit breaking level page
- Added Force Trail On and Force Trail Off
- Added No Camera Shake
- Added ~~Herobrine~~ Zulguroth

# 1.1.2

- Added Level Edit
Expand Down
Binary file added resources/replay.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
41 changes: 41 additions & 0 deletions src/AttemptAtReversingDialogObject.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#pragma once

#include <Geode/Geode.hpp>

using namespace geode::prelude;
/*
i took this class from FigmentBoy (https://github.com/FigmentBoy/DialogHandler)
*/

class AttemptAtReversingDialogObject : public cocos2d::CCObject {
protected:
char pad_0x00[0x60]; // 0x00

std::string m_content; // 0x32
std::string m_title; // 0x56
int type; // 0x80
_ccColor3B color; // 9x84
char pad_0x87[0x01]; // 0x87
float m_unknown; // 0x88
char pad_0x92[0x04]; // 0x92
bool m_unknown_2; // 0x96

public:
bool init(std::string title, std::string text, int type, float unknown, bool also_unknown, _ccColor3B textColor) {
uintptr_t base = (uintptr_t)GetModuleHandle(0);

return reinterpret_cast<bool(__thiscall*)(AttemptAtReversingDialogObject*, std::string, std::string, int, float, bool, _ccColor3B)>
(base + 0x9a6c0)(this, title, text, type, unknown, also_unknown, textColor);
}

static AttemptAtReversingDialogObject* create(std::string title, std::string text, int type, float text_scale, bool is_unskippable, _ccColor3B textColor) {
AttemptAtReversingDialogObject* obj = new AttemptAtReversingDialogObject();

obj->init(title, text, type, text_scale, is_unskippable, textColor);
obj->autorelease();

return obj;
}
};
107 changes: 99 additions & 8 deletions src/Client/AndroidUI.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
#include <Geode/modify/CCScene.hpp>
#include <Geode/modify/CCNode.hpp>

#include "../AttemptAtReversingDialogObject.h"

using namespace geode::prelude;

class AndroidUI : public cocos2d::CCLayerColor {
Expand All @@ -21,6 +23,8 @@ class AndroidUI : public cocos2d::CCLayerColor {

static inline int lastTab = 0;
static inline int selectedTab = 0;

int secret = 0;

void goToPage(int p, bool transition = false)
{
Expand Down Expand Up @@ -92,14 +96,101 @@ class AndroidUI : public cocos2d::CCLayerColor {

if (btn->getTag() == 5)
{
FLAlertLayer::create("Coming soon", "Replay is not ready...", "Ok")->show();
//auto dO = DialogObject::create("Shopkeeper", "Hewwo :3", 1, 1.0f, true, {255, 255, 255});
//auto dialog = DialogObject::create("Scratch", "<cr><s005>RobTop</s></c>", 13, 1.0f, true, _ccColor3B({255, 255, 255}));

// auto layer = DialogLayer::create(dO, 0);
//layer->setZOrder(999999);
//CCScene::get()->addChild(layer);
//layer->animateIn(DialogAnimationType::FromCenter);
CCArray* arr = CCArray::create();

AttemptAtReversingDialogObject* Object = nullptr;
std::stringstream ss; // why do i have to declare this outside? seems stupid

switch (secret)
{
case 0:
Object = AttemptAtReversingDialogObject::create("The Shopkeeper", "A replay bot is planned, <d050>But I still need more time to develop it.", 5, 1, true, { 255,255,255 });
arr->addObject(Object);

break;

case 1:
Object = AttemptAtReversingDialogObject::create("The Shopkeeper", "It still isn't finished, <d050>wait a bit.", 6, 1, true, { 255,255,255 });
arr->addObject(Object);

break;

case 2:
Object = AttemptAtReversingDialogObject::create("The Shopkeeper", "I just said, <d050>it isn't done yet.", 31, 1, true, { 255,255,255 });
arr->addObject(Object);

break;

case 3:
Object = AttemptAtReversingDialogObject::create("The Shopkeeper", "I'm warning you!", 30, 1, true, { 255,255,255 });
arr->addObject(Object);

break;

case 4:
FMODAudioEngine::sharedEngine()->playMusic("dangerLoop.mp3", true, 0, 0);

Object = AttemptAtReversingDialogObject::create("The Shopkeeper", "STOP! <d050>ASKING!", 34, 1, true, { 255,255,255 });
arr->addObject(Object);

Object = AttemptAtReversingDialogObject::create("The Shopkeeper", "Oh no! <d100>Just<d010>.<d010>.<d010>. <d050>Stop asking and it'll be fine.", 36, 1, true, { 255,255,255 });
arr->addObject(Object);

break;

case 5:
Object = AttemptAtReversingDialogObject::create("The Shopkeeper", "I<d010>.<d010>.<d010>. I said stop!", 36, 1, true, { 255,255,255 });
arr->addObject(Object);

break;

case 6:
Object = AttemptAtReversingDialogObject::create("The Shopkeeper", "It's best if you stop<d010>.<d010>.<d010>.", 35, 1, true, { 255,255,255 });
arr->addObject(Object);

break;

case 7:
Object = AttemptAtReversingDialogObject::create("The Shopkeeper", ".<d010>.<d010>.", 34, 1, true, { 255,255,255 });
arr->addObject(Object);

break;

case 8:
Object = AttemptAtReversingDialogObject::create("The Shopkeeper", "Oh no<d010>.<d010>.<d010>. not again.", 35, 1, true, { 255,255,255 });
arr->addObject(Object);

break;

case 9:
Object = AttemptAtReversingDialogObject::create("Zulguroth", "You DARE<d050> disturb a GOD!", 33, 1, true, { 255,255,255 });
arr->addObject(Object);

ss << "I have big plans for you, <d020><cl>";
ss << GameManager::get()->m_playerName.c_str();
ss << "</c>";

Object = AttemptAtReversingDialogObject::create("Zulguroth", ss.str(), 33, 1, true, { 255,255,255 });
arr->addObject(Object);

Object = AttemptAtReversingDialogObject::create("Zulguroth", "Now<d010>.<d010>.<d010>. BEGONE!", 33, 1, true, { 255,255,255 });
arr->addObject(Object);

break;

default:
break;
}

auto dl = DialogLayer::createDialogLayer(nullptr, arr, 2);
dl->animateIn(DialogAnimationType::FromLeft);
dl->setZOrder(999999);
CCScene::get()->addChild(dl);

secret++;

if (secret > 10)
secret = 0;

return;
}
Expand Down
21 changes: 14 additions & 7 deletions src/Client/ClientSetup.h
Original file line number Diff line number Diff line change
Expand Up @@ -106,12 +106,8 @@ class ClientUtils

//cosmetic->modules.push_back(new Module("Hide Endscreen BTN", "end-screen", "Adds an arrow to hide the end screen"));
cosmetic->modules.push_back(new Module("No Transition", "no-trans", "Disables the fade scene transitions"));
#ifndef GEODE_IS_ANDROID32
cosmetic->modules.push_back(new Module("No Player Rotation", "no-rot", "Disables rotation on players"));
#endif
#ifdef GEODE_IS_WINDOWS
cosmetic->modules.push_back(new Module("No Particles", "no-particles", "Disables particles, seems pretty obvious what this does imo"));
#endif
cosmetic->modules.push_back(new Module("Thicker Hitboxes", "thick-hitbox", "Makes the hitboxes in gd thicker ;)"));

cosmetic->modules.push_back(new Module("No Shaders", "no-shaders", "Disables shaders, <cl>maybe read</c> the name"));
cosmetic->modules.push_back(new Module("No Death Effect", "no-death", "Disables the death effect on the player"));

Expand All @@ -121,7 +117,18 @@ class ClientUtils
cosmetic->modules.push_back(new Module("Transparent BG", "trans-bg", "Disables the colouring on the gradient backgrounds"));
cosmetic->modules.push_back(new Module("Transparent Lists", "trans-lists", "Disables the colouring on all cells"));

cosmetic->modules.push_back(new Module("Thicker Hitboxes", "thick-hitbox", "Makes the hitboxes in gd thicker ;)"));
cosmetic->modules.push_back(new Module("Force Trail On", "trail-on", "Forces the trail on"));
cosmetic->modules.push_back(new Module("Force Trail Off", "trail-off", "Forces the trail off"));

#ifndef GEODE_IS_ANDROID32
cosmetic->modules.push_back(new Module("No Player Rotation", "no-rot", "Disables rotation on players"));
#endif
#ifdef GEODE_IS_WINDOWS
cosmetic->modules.push_back(new Module("No Particles", "no-particles", "Disables particles, seems pretty obvious what this does imo"));
#endif

//cosmetic->modules.push_back(new Module("No Camera Movement", "no-camera", "Disables camera movements that are made with <cl>triggers</c>"));
cosmetic->modules.push_back(new Module("No Camera Shake", "no-shake", "Disables camera shake globally"));
//cosmetic->modules.push_back(new Module("No Player Rotation", "no-plr-rot", "Disables Player Rotation :3\nIt looks ugly imo but you do you"));

Client::instance->windows.push_back(cosmetic);
Expand Down
19 changes: 19 additions & 0 deletions src/Hacks/ForceTrail.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#include <Geode/Geode.hpp>
#include <Geode/modify/CCMotionStreak.hpp>
#include "../Client/Client.h"

using namespace geode::prelude;

class $modify (CCMotionStreak)
{
virtual void update(float delta)
{
if (Client::GetModuleEnabled("trail-off"))
m_bStroke = false;

if (Client::GetModuleEnabled("trail-on"))
m_bStroke = true;

CCMotionStreak::update(delta);
}
};
4 changes: 4 additions & 0 deletions src/Hacks/LevelEdit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,13 @@ class $modify (PauseLayer)
{
virtual TodoReturn customSetup()
{
auto a = PlayLayer::get()->m_level->m_levelType;

if (Client::GetModuleEnabled("level-edit"))
PlayLayer::get()->m_level->m_levelType = GJLevelType::Editor;

PauseLayer::customSetup();

PlayLayer::get()->m_level->m_levelType = a;
}
};
25 changes: 25 additions & 0 deletions src/Hacks/NoCamera.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#include <Geode/Geode.hpp>
#include <Geode/modify/GJBaseGameLayer.hpp>
#include "../Client/Client.h"

using namespace geode::prelude;

class $modify (GJBaseGameLayer)
{
TodoReturn applyShake(cocos2d::CCPoint& p0)
{
if (!Client::GetModuleEnabled("no-shake"))
GJBaseGameLayer::applyShake(p0);
}

/*TodoReturn updateStaticCameraPos(cocos2d::CCPoint p0, bool p1, bool p2, bool p3, float p4, int p5, float p6)
{
}*/

/*TodoReturn updateCamera(float p0) // delta probably ?
{
if (!Client::GetModuleEnabled("no-camera"))
GJBaseGameLayer::updateCamera(p0);
}*/
};
Loading

0 comments on commit 4fa06c2

Please sign in to comment.