SHHook(void*, Level$$playSound, Level* self, Entity* entity, void* string, float a, float b) { if(inArrowTick) arrowHit = true; return _Level$$playSound(self, entity, string, a, b); } SHHook(Entity*, LocalPlayer$$LocalPlayer, Entity* self, Minecraft* minecraft, Level* newLevel, User* user, int a, bool b) { level = newLevel; return _LocalPlayer$$LocalPlayer(self, minecraft, newLevel, user, a, b); } SHConstructor { SHAppVersion("0.6.1.0") { SHStub(SHAddr(0xa2e58), Entity$$remove); SHStub(SHAddr(0xdf8a0), Level$$explode); SHStub(SHAddr(0xb8e3c), Arrow$$tick); SHStub(SHAddr(0xddae8), Level$$playSound); SHStub(SHAddr(0x52ca0), LocalPlayer$$LocalPlayer); } SHAppVersion("0.7.1.0") { SHStub(SHAddr(0xb1a64), Entity$$remove); SHStub(SHAddr(0xf0e48), Level$$explode); SHStub(SHAddr(0xc87e0), Arrow$$tick); SHStub(SHAddr(0xeec88), Level$$playSound); SHStub(SHAddr(0x5abc0), LocalPlayer$$LocalPlayer); } SHOtherVersion { return; }
SHHook(void*, Level$$playSound, Level* self, Entity* entity, void* string, float a, float b) { if(inArrowTick) arrowHit = true; return _Level$$playSound(self, entity, string, a, b); } SHHook(Entity*, LocalPlayer$$LocalPlayer, Entity* self, Minecraft* minecraft, Level* newLevel, User* user, int a, bool b) { level = newLevel; return _LocalPlayer$$LocalPlayer(self, minecraft, newLevel, user, a, b); } SHConstructor { SHAppVersion("0.7.3.0") { SHStub(SHAddr(0xb51d8), Entity$$remove); SHStub(SHAddr(0xf4828), Level$$explode); SHStub(SHAddr(0xcbfbc), Arrow$$tick); SHStub(SHAddr(0xf2668), Level$$playSound); SHStub(SHAddr(0x5de5c), LocalPlayer$$LocalPlayer); } SHAppVersion("0.7.2.0") { SHStub(SHAddr(0xb51d8), Entity$$remove); SHStub(SHAddr(0xf4828), Level$$explode); SHStub(SHAddr(0xcbfbc), Arrow$$tick); SHStub(SHAddr(0xf2668), Level$$playSound); SHStub(SHAddr(0x5de5c), LocalPlayer$$LocalPlayer); } SHAppVersion("0.7.1.0") { SHStub(SHAddr(0xb1a64), Entity$$remove); SHStub(SHAddr(0xf0e48), Level$$explode);
#include <stubhook.h> /* Zombies move twice as fast. Scary. */ SHHook(float, Zombie$$getWalkingSpeedModifier, void* self) { return 2 * _Zombie$$getWalkingSpeedModifier(self); } /* One does not simply harm the undead. */ SHHook(int, Zombie$$getDamageAfterArmorAbsorb, void* self, int amount) { return 0; } SHConstructor { SHAppVersion("0.7.1.0") { SHPtrHook(SHAddr(0x2045bc), Zombie$$getWalkingSpeedModifier); SHPtrHook(SHAddr(0x2045c0), Zombie$$getDamageAfterArmorAbsorb); } SHOtherVersion { return; } }
return _LocalPlayer$$LocalPlayer(self,mcpe,newLevel,user,a,b); } //to make all blocks explode and not just some SHHook(float, Tile$$getExplosionResistance, void *self, void *entity) { return 0.0f; } SHConstructor { SHAppVersion("0.7.1.0") { SHStub(SHAddr(0xF0E48), Level$$explode); SHStub(SHAddr(0x5abc0), LocalPlayer$$LocalPlayer); SHStub(SHAddr(0x186B4C), SurvivalMode$$continueDestroyBlock); SHStub(SHAddr(0x10CFF0), Tile$$getExplosionResistance); } SHOtherVersion { return; } SHApplyHook(SurvivalMode$$continueDestroyBlock); SHApplyHook(LocalPlayer$$LocalPlayer); SHApplyHook(Tile$$getExplosionResistance);