Jump to content
Moopler Closing Read more... ×
Moopler
Sign in to follow this  
OuterHaven

Release GMS Script Library v174.3

Recommended Posts

Rules

  • Only post scripts in here
  • If you do post a script, credit the original creators
  • Please use Spoiler tag and Code tag within the spoiler tag for scripts 
  • Don't ask questions about using scripts in this topic
  • Post only tested scripts
  • Please indicate whether your script has a chance of autoban
  • If you know original creator of a script please PM me and I will edit it in. 

Physical+Magical Godmode

Spoiler

//v174.3
[ENABLE]
017C418E: 
db 0F 84

[disable]

017C418E: // 74 ? 8D ? ? ? ? ? E8 ? ? ? ? 85 C0 0F 85 ? ? ? ? 8D ? ? ? ? ? E8 [jne below]
db 0F 85

 

Heroes of Maple Act 1: Falling Glacier Godmode [Needs Update]

Spoiler

//v174.2
[Enable]
00892BB7:
db 0F 85
[Disable]
00892BB7:
db 0F 84

 

Slide and Attack

Spoiler

//Credits ?????
//v174.3
[enable]
018EE03C:
db 90 E9

0172B0B1:
db 75

[disable]
018EE03C: //0F ? ?? ?? ?? ?? 8B 4C 24 ?? E8 ?? ?? ?? ?? 85 C0 74 ?? 8B [4th Result]
db 0F 84 C8 00 00 00

//function start CUserlocal::IsImmovable
0172B0B1: // 74 ? 3D ? ? ? ? 74 ? 3D ? ? ? ? 74 ? 3D ? ? ? ? 74 ? 3D ? ? ? ? 74 ? 3D ? ? ? ? 74 ? 3D ? ? ? ? 74 ? 89
db 74

 

Mach GND

Spoiler

//Credits to Mach of CCPLZ
//v174.3

[Enable]
0178B4E1://Mach GND (Melee/Basic attacks)
db 8A

[Disable]
0178B4E1: //8B 95 ?? ?? ?? ?? 89 55 ?? 8B 85 ?? ?? ?? ?? 50 E8 ?? ?? ?? ?? 83 C4 ?? 85 C0
db 8B

 

Perfect Stance

Spoiler

/*
  Perfect Stance
  GMS v174.3
  Created by AIRRIDE
*/

[Enable]
017C642F: //85 F6 75 ? 39 ? 24 ? ? ? ? 74
xor esi,esi
nop
nop

017C643A: //address of JE below
db EB

[Disable]
017C642F:
db 85 F6 75 09

017C643A:
db 74

 

Mouse Grip:

Spoiler

/*
Creator ????
v174.3
Changes the skill you are dropping into a key into the skill you inputted.
Choose a skill like the beginner snail shell or old 1st,2nd,3rd job skills you dont' use to spoof the wanted skill. 
*/

define(SkillGrip_Addy,0074F953)
define(SkillGrip_RET,SkillGrip_Addy+7)
define(Skill_ID, #21120024) // Skill_ID
alloc(SkillGrip_Hook,305)

[Enable]

SkillGrip_Hook:
mov ecx,Skill_ID
mov [esi+01],ecx
mov ecx,[esp+14]
jmp SkillGrip_RET


SkillGrip_Addy:
jmp SkillGrip_Hook
nop
nop

[Disable]

SkillGrip_Addy:
mov [esi+01],ecx
mov ecx,[esp+14]

dealloc(SkillGrip_Hook,305)

 

Remove Screen Clutter

Spoiler

/*
  Remove Screen Clutter
  Created by Razz
  GMS v174.3
  Moopler Masterrace
*/
//CAnimationDisplayer::Effect_HP
define(NoDamageShown,005D3D30) //55 8d 6c ? ? 83 ec ? 6a ff 68 ? ? ? ? 64 a1 00 00 00 00 50 81 ec ? 00 00 00 a1 ? ? ? ? 33 c5 89 45 ? 53 56 57 50 8d 45 ? 64 a3 00 00 00 00 89 4d ? 33 ff
//CMob::ShowCombo
define(NoComboShown,00BB9A00) //6A FF 68 ? ? ? ? 64  A1 00 00 00 00 50 81 EC ? ? ? ? 53 55 56 57 A1 ? ? ? ? 33 C4 50 8D 84 ? ? ? ? ? 64 A3 00 00 00 00 89 4C 24 ? 33 DB 39 99 ? ? ? ?
//`anonymous namespace'::_DisplayMultiKill
define(NoMultiKill,019DED62) ////6A FF 68 ? ? ? ? 64 A1 00 00 00 00 50 83 EC ? 53 55 56 57 A1 ? ? ? ? 33 C4 50 8D 44 24 ? 64 A3 00 00 00 00 8D 44 24 ? 68 ? ? ? ? 50

[enable]
NoDamageShown:
retn 0038

NoComboShown:
ret

NoMultiKill:
ret

[disable]
NoDamageShown:
db 55 8D 6C

NoComboShown:
db 6A

NoMultiKill:
db 6A

 

Auto Aggro

Spoiler

/*
  Auto Aggro
  GMS v174.3
  Creator Sprux
*/
[ENABLE]
alloc(Aggro,128)

Aggro:
mov eax,[0225B6D4] // CUserLocal: 8B 3D ? ? ? ? 8B 40
lea eax,[eax+04]
mov [ecx+418+08],eax // Aggro Offset: 83 ? ? ? ? ? ? 0F 85 ? ? ? ? 8B ? ? 8B ? ? 8D ? ? FF D0 [Offset+0x08]

push ebp
mov ebp,esp
and esp,-40
jmp 018E4BB0+6

018E4BB0: // CVecCtrlMob::WorkUpdateActive
jmp Aggro
nop

[DISABLE]
018E4BB0: // 55 8B EC 83 E4 ? 6A ? 68 ? ? ? ? 64 A1 ? ? ? ? 50 83 EC ? 53 56 57 A1 ? ? ? ? 33 C4 50 8D 44 24 ? 64 A3 ? ? ? ? 8B F1 8B 4D ? 8B 06
push ebp
mov ebp,esp
and esp,-40

dealloc(Aggro)

 

MobSpeedUp

Spoiler

/*
  MobSpeedup
  Creator AIRRIDE
  v174.3
*/

[Enable]
Alloc(MobSpeedUp, 128)
Label(Return)

MobSpeedUp:
mov dword ptr [esp+50],00
cmp dword ptr [esp+50],00
jmp Return

00C5C00B://83 7C 24 ?? 00 89 87 ?? ?? ?? ?? 75 ?? 33 DB
jmp MobSpeedUp
Return:

[Disable]
00C5C00B:
cmp dword ptr [esp+50],00

DeAlloc(MobSpeedUp)

 

Mob Confusion

Spoiler

//Credits to ClanTag
//v174.3
[ENABLE]
018E471D: //Mob Confuse
db 0F 8B


[DISABLE]
//0F 8A ?? ?? ?? ?? D9 EE DC ?? ?? ?? DF E0 DD 05 ?? ?? ?? ?? F6 C4 05 7A 34
018E471D:
db 0F 8A

 

Unlimited Attack

Spoiler

//Creator ???
//v174.3
[ENABLE]
007516F0:
db EB


[DISABLE]
007516F0: // 7E ?? 83 F8 ?? 7D ?? 8B 41 ?? 2B C2
db 7E

 

Unlimited Skill Timer

Spoiler

//Creator ??????
//Unlimited Blazing Extinction Time (Blaze Wizard Skill)
//v174.3
[enable]
alloc(SkillTimer,1024)
label(AppearUnlimited)

00993DDA://89 86 ? ? ? ? 89 9e ? ? ? ? 89 9e ? ? ? ? e8 ? ? ? ? 83 ? ? 85 c0
jmp SkillTimer
db 90
AppearUnlimited:

SkillTimer:
mov [esi+000000F8],7FFFFFFF
jmp AppearUnlimited


[disable]
00993DDA:
mov [esp+000000F8],ebp

 

Unlimited Arrow Platter

Spoiler

//Credits to Chubbz
//v174.3
[ENABLE]
00924790: //55 8B ? 83 ? ? 6A ? 68 ? ? ? ? 64 A1 00 00 00 00 50 83 ? ? 53 56 57 A1 ? ? ? ? 33 ? 50 8D ? 24 ? 64 A3 00 00 00 00 8B ? 8B ? ? E8
db C2 04 00

[DISABLE]
00924790:
db 55 8B EC

 

Full Map Attack

Spoiler

//Credits to Clantag for reintroducing MsInterSectRect FMA 
//Credits to Original Creator ???
//v174.3

[enable]
00BFFB61: // MsInterSectRect
db 74
  
019A0B53: // Removes Level Up Damage
db EB

[disable]
00BFFB61: // E8 ? ? ? ? 83 C4 ? 85 C0 75 ? 81 BC 24 ? ? ? ? ? ? ? ? 0F 85 ? ? ? ? 83 [je below]
db 75
  
019A0B53: //89 9E ? ? ? ? 8B 0D ? ? ? ? 3B CB 74 ? 53 [je below]
db EB

 

Orbital Flame Full Map Attack

Spoiler

//Original Creator: Sprux
//v174.3
[ENABLE]
alloc(find_hit_mob_in_rect_hook,128)

find_hit_mob_in_rect_hook:
mov eax,[0225FEF4] // CWvsPhysicalSpace2D:
//B8 0A 00 00 00 EB ? 3D                  (mov ecx,[XXXXXXX])
lea eax,[eax+0C] // Left Wall Offset
mov [esp+04],eax
jmp 00BFF720 // Original call (CMobPool::FindHitMobInRect)

0095C0A9: // Function: CForceAtom_NonTargetAttack::UpdateAttackCollision
call find_hit_mob_in_rect_hook

[DISABLE]
dealloc(find_hit_mob_in_rect_hook)
0095C0A9: // E8 ? ? ? ? 8B ? 89 ? ? ? 85 ? 0F 8E [First Result]
call 00BFF720

 

No Delay Blazing Extinction

Spoiler

//Credits to OuterHaven
//v174.3
[enable]
//Function: CGrendate::Update
00995307:
db 0F 85

[disable]
00995307: //0F 84 ? ? ? ? D9 EE 8B ? ? ? DC 9E
db 0F 84
//JE Below Call CUserlocal:TrydoingFlameBall

 

BE Effect Removal

Spoiler

//Credits to OuterHaven
//Use with Mob Reaction to patch the hit sound
//v174.3
[enable]
//CFlameBallAttack::UpdateFlameBallAttack
00953AD0:
ret 0010

[disable]
00953AD0:
push -01
push 01B34830

 

No Mob Reaction

Spoiler

//Credits ????
[ENABLE]
00BF04B0: // No mob reaction, hitmarks or damage
ret 0068

[DISABLE]
00BF04B0: //83 C4 08 81 C2 ? ? ? ? 8B CE E8 [last] [function start]
push -01
push 01B81DE8


//Search Reference String "aTioOnMobDie", "tFavorite2"

 

Blazing Extinction Full Map Attack

Spoiler

//Credits to Sprux for FindHitInMobRect FMA Method
//v174.3
[ENABLE]
alloc(find_hit_mob_in_rect_hook,128)
find_hit_mob_in_rect_hook:

mov eax,[0225FEF4] ////CWvsPhysicalSpace2D: 
//B8 0A 00 00 00 EB ? 3D mov ecx,[XXXXXXXX] below
lea eax,[eax+0C] // Left Wall Offset
mov [esp+04],eax
jmp 00BFF720 // Original call (CMobPool::FindHitMobInRect)

017D38AC:
//Function CUser::TryDoingFlameBallAttack
call find_hit_mob_in_rect_hook

//Function //Function CGrendade::Update
0099529D: //FlameBallObject X/Y Check, allows continous attack
nop
nop

[disable]
017D38AC: //E8 ? ? ? ? 89 85 ? ? ? ? 8B 8D ? ? ? ? 89 8D ? ? ? ? 83 BD ? ? ? ? 00 75 ? C7 [SECOND RESULT]
call 00BFF720

0099529D: //0F 84 ? ? ? ? D9 EE 8B ? ? ? DC 9E [test eax,eax above]
test eax,eax

 

Kinesis FMA

Spoiler

/*
GMSv174.3
FMA Method Created by Sprux
*/

[ENABLE]
alloc(find_hit_mob_in_rect_hook,128)

find_hit_mob_in_rect_hook:
mov eax,[0225FEF4] ////CWvsPhysicalSpace2D: 
//B8 0A 00 00 00 EB ? 3D mov ecx,[XXXXXXXX] below
lea eax,[eax+0C] // Left Wall Offset
mov [esp+04],eax
jmp 00BFF720//Original call (CMobPool::FindHitMobInRect)


01817EB2
call find_hit_mob_in_rect_hook

[DISABLE]

01817EB2// E8 ? ? ? ? 8B ? 8B ? ? ? 8B ? ? ? 6A 00
call 00BFF720

dealloc(find_hit_mob_in_rect_hook)

 

Dragon Dive FMA

Spoiler

//Credits to Sprux for FindHitInMobRect FMA Method
//v174.3
//Only Use Dragon Dive Skill

[ENABLE]
alloc(find_hit_mob_in_rect_hook,128)

find_hit_mob_in_rect_hook:
mov eax,[0225FEF4] // CWvsPhysicalSpace2D:
//B8 0A 00 00 00 EB ? 3D
lea eax,[eax+0C] // Left Wall Offset
mov [esp+04],eax
jmp 00BFF720 // Original call (CMobPool::FindHitMobInRect)

007594B6: //Function CDragon:TryDoingMagicAttack
call find_hit_mob_in_rect_hook


[DISABLE]

007594B6: //FF 15 ? ? ? ? 80 7C 24 ? 00 8B 44 24 ? 6A 00 6A 00 6A 00 [call below]
call 00BFF720

dealloc(find_hit_mob_in_rect_hook)

 

No Skill Cooldowns

Spoiler

/*
Credits OuterHaven
No Skill Cooldowns 
(Only works for certain skills like Blazing Extinction,Evan Fusion Skills,etc)
v174.3
*/
//v174.3

[enable]
0173BEA0: //Generic Ignore Skill Cooldown
db 75

[disable]
0173BEA0:  //83 fe 01 7c ? 57 8b 3D ? ? ? ? 85 FF 74 49 [je below]
db 74

 

Earth Breath with Every Fusion Attack (use with dragon dive)

Spoiler

//Credits Outerhaven
//v174.3

[enable]
0075DFA2:: //Shoot Earth Breath every fusion attack
db 0F 84
  
[disable]
0075DFA2:
db 0F 85

 

No NameTags

Spoiler

[enable]
016BF410: //CUser:DrawNameTags
ret
 
[disable]
016BF410: 
//C7 44 24 ? FF FF FF FF 85 C0 74 ? 83 B8 [FUNCTION START]
//FF D2 85 C0 0F 85 ? ? 00 0 8B 3D ? ?  ? ? 85 FF [FUNCTION START]
push -01
push 01CC2888

 

No Fade Stages

Spoiler

[enable]
00E58B42: // CStage::FadeOut
db 0F 85

00E5857E: // CStage::FadeIn
DB 0F 85

[disable]
00E58B42: //33 C9 6A 00 E8 ? ? ? ? 8B 35 follow call --> Address is first JE
db 0F 84

00E5857E: //33 C9 6A 00 E8 ? ? ? ? 8B 44 follow call --> Address is first JE
db 0F 84

 

ClearFieldUI

Spoiler

//Credits to DAVHEED for function
[enable]
alloc(ClearFieldUI,128)

00E58B01:
jmp ClearFieldUI

ClearFieldUI:
mov ecx,[0225B840] //Above or Below the AOB below
call 019A10C0 //56 8B F1 8B 0D ? ? ? ? E8 ? ? ? ? A1 ? ? ? ? C7 80 ? ? ? ? 00 00 00 00 Call below

pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp,00000088
ret 0004

[disable]
dealloc(ClearFieldUI)

00E58B01: //85 C0 74 ? C7 ? ? ? 00 00 01 00 00 00 [end of function]
pop ecx
pop edi
pop esi
pop ebp
pop ebx

 

Instant Resolution Changer

Spoiler

//Credits to Nickerian of CCPLZ

[enable]
alloc(ResolutionChanger, 128)
label(AlreadyChanged)
alloc(height, 4)
alloc(width, 4)
registersymbol(height)
registersymbol(width)

alloc(IntersectRectAddy, 4)
alloc(ResolutionChangerAddy, 4)

IntersectRectAddy:
dd USER32.IntersectRect

ResolutionChangerAddy:
dd ResolutionChanger

width:
dd #1768

height:
dd #992


ResolutionChanger:
pushad
mov edi, [0225B840]//follow first call from aob below
mov eax, [edi+7BE8] //follow first call from aob below
cmp eax, [width]
je AlreadyChanged

mov eax, [edi+7BEC]
cmp eax, [height]
je AlreadyChanged

mov ecx, [height]
mov edx, [width]
push 00
push ecx
push edx
mov ecx,edi
call 01943930 //53 55 57 8B D9 E8 ? ? ? ? 8B ? ? ? 8B ? ? ? 3B F8 75 ? E8 ? ? ? ?

AlreadyChanged:
popad
jmp dword ptr [IntersectRectAddy]

0190EF5C:
call dword ptr [ResolutionChangerAddy]

[disable]
dealloc(ResolutionChanger)
dealloc(height)
dealloc(width)
dealloc(IntersectRectAddy)
dealloc(ResolutionChangerAddy)
unregistersymbol(height)
unregistersymbol(width)


0190EF5C: //FF 15 ? ? ? ? 85 C0 0F 84 ? ? ? ? 8D 54 24 ? 52 8D 44 24 ?
call dword ptr [02276C78]

 

No Delay Flash Jump

Spoiler

[ENABLE]
01726011:
db 90 90

017779C7:
db 90 90

0181098D:
db B8 00

[DISABLE]
01726011: // 7D ? 33 FF 68 ? ? ? ? 8D
db 7D 02

017779C7: // 7D ? 33 F6 81 7C
db 7D 02

0181098D: //B8 01 00 00 00 01 86 ? ? ? 00 89 86 ? ? ? ? C7 45
db B8 01

 

 

Edited by OuterHaven
  • Like 4

Share this post


Link to post

The godmode script protects from all types of attack?

 

Mob No Aggro (Mob Disarm) very safe and stable by airride:

Spoiler

[ENABLE]
alloc(MobNoAggro,128)

MobNoAggro:
xor eax,eax
mov [ecx+00000420],eax // Aggro Offset: 83 ? ? ? ? ? ? 0F 85 ? ? ? ? 8B ? ? 8B ? ? 8D ? ? FF D0 [Offset+0x08]
ret

018E3710:
jmp MobNoAggro
db 90

[DISABLE]
018E3710: // Assembly Scan
mov eax,[ecx+00000420]

dealloc(MobNoAggro)

 

Mob Suspend (all mobs stop moving NOT A MOB FREEZE) by airride safe and stable:

Spoiler

[ENABLE]
alloc(MobControl,256)
label(Return)
label(SuspendMob)

MobControl:
mov ecx,[esi+7E8] // Mob Direction
call 004C43C0
test eax,eax
je SuspendMob
push 00
mov ecx,[esi+7EC] // Set Delay
call 004C35B0
mov ecx,[esi+7EC]
call 004C43C0
jmp Return

SuspendMob:
push 10
mov ecx,[esi+7EC] // Set Delay
call 004C35B0
mov ecx,[esi+7EC]
call 004C43C0
jmp Return

018E01F7:
jmp MobControl
Return:

[DISABLE]
018E01F7: // 0F 8F ? ? 00 00 83 BE ? ? 00 00 00 0F 84 [Second Result & Call Above]
call 004C43C0

dealloc(MobControl)

 

IsTeleportSkillAvailabe teleport function on riremito pastebin:

Spoiler

[ENABLE]
alloc(Teleport,128)
CreateThread(Teleport)

Teleport:
mov esi,[0225B6D4] // CUserLocal: 8B 3D ? ? ? ? 8B 40
push #10 // Y
push #100 // X
push [esi+9540] // Character PID: 8B 86 ? ? 00 00 6A D8
call 018D76A0 // E8 ? ? ? ? 8D ? ? ? ? ? ? ? 89 ? ? ? ? ? E8 ? ? ? ? DB [FUNCTION START] (push esi)
ret

[DISABLE]
dealloc(Teleport)

 

C++ Kami (wallcheck, invisible mob broken [wrong offsets? idk]):

Spoiler

typedef struct {
	int X;
	int Y;
	BOOL Flag;
}MobData;

DWORD dwMob_Base_Pointer = 0x0225FF00; // 8B 0D ? ? ? ? ? E8 ? ? ? ? 8B ? 85 ? 74 ? 8B ? ? 8B ? ? 8D
DWORD dwMob_Count_Offset = 0x10;
DWORD dwMob_Struct_Offset = 0x28;
DWORD dwMob_Next_Offset = 0x04;
DWORD dwMob_1_Offset = 0x1B4; // 83 ? ? ? ? ? ? 0F 84 ? ? ? ? 83 ? ? 39 ? ? ? ? ? 0F 8E ? ? ? ? 68 ? ? ? ? 8D ? ? ? E8 ? ? ? ? 68 ? ? ? ? 8D ? ? ? C7 ? ? ? ? ? ? ? E8
DWORD dwMob_2_Offset = 0x24;
DWORD dwMob_Current_Offset = 0x14;
DWORD dwMob_Prev_Offset = 0x0C;
DWORD dwMob_X_Offset = 0x60;
DWORD dwMob_Y_Offset = 0x64;
DWORD dwMob_Invisible_X_Offset = 0x68;
DWORD dwMob_Invisible_Y_Offset = 0x6C;

MobData _stdcall GetMobXY()
{
	MobData Mob = { 0 };
	Mob.Flag = FALSE;

	_asm
	{
		mov esi, dwMob_Base_Pointer
		mov esi, [esi]
		test esi, esi
		je GetMobXY_False
		mov eax, esi
		add eax, dwMob_Count_Offset
		mov eax, [eax] // Count
		test eax, eax
		je GetMobXY_False
		add esi, dwMob_Struct_Offset
		mov esi, [esi] // Mob Struct
		test esi, esi
		je GetMobXY_False

		// GetMobXY_Mob1st
		mov edx, esi
		add edx, dwMob_Next_Offset
		mov edx, [edx]
		test edx, edx
		je GetMobXY_False
		add edx, dwMob_1_Offset
		mov edx, [edx]
		test edx, edx
		je GetMobXY_False
		add edx, dwMob_2_Offset
		mov edx, [edx]
		test edx, edx
		je GetMobXY_False
		mov eax, edx
		add eax, dwMob_Invisible_X_Offset
		mov eax, [eax]
		mov ebx, edx
		add ebx, dwMob_Invisible_Y_Offset
		mov ebx, [ebx]
		or eax, ebx
		test eax, eax
		jne GetMobXY_True

		// Prev
		sub esi, dwMob_Prev_Offset
		mov esi, [esi]
		test esi, esi
		je GetMobXY_False

		GetMobXY_NextMob : // 2~
		mov edx, esi
		add edx, dwMob_Current_Offset
		mov edx, [edx]
		test edx, edx
		je GetMobXY_False
		add edx, dwMob_1_Offset
		mov edx, [edx]
		test edx, edx
		je GetMobXY_False
		add edx, dwMob_2_Offset
		mov edx, [edx]
		test edx, edx
		je GetMobXY_False
		mov eax, edx
		add eax, dwMob_Invisible_X_Offset
		mov eax, [eax]
		mov ebx, edx
		add ebx, dwMob_Invisible_Y_Offset
		mov ebx, [ebx]
		or eax, ebx
		test eax, eax
		jne GetMobXY_True
		add esi, dwMob_Next_Offset
		mov esi, [esi]
		test esi, esi
		je GetMobXY_False
		jmp GetMobXY_NextMob

		GetMobXY_True:
		mov eax, edx
		add eax, dwMob_X_Offset
		mov eax, [eax]
		mov ebx, edx
		add ebx, dwMob_Y_Offset
		mov ebx, [ebx]
		mov dword ptr[Mob.X], eax
		mov dword ptr[Mob.Y], ebx
		inc [Mob.Flag] // TRUE
		GetMobXY_False:
	}
	return Mob;
}

DWORD dwCharacterBase = 0x0225B6D4; // CUserLocal: 8B 3D ? ? ? ? 8B 40
DWORD dwCharacterPID = 0x9540; // Character PID: 8B 86 ? ? 00 00 6A D8

DWORD dwMapBase = 0x0225FEF4;
DWORD dwLeftWallOffset = 0x000C;

DWORD dwCUserLocal__IsTeleportSkillAvailable = 0x018D76A0; // E8 ? ? ? ? 8D ? ? ? ? ? ? ? 89 ? ? ? ? ? E8 ? ? ? ? DB [FUNCTION START] (push esi)

ULONG_PTR ReadPointer(DWORD Address, INT nOffset)
{
	ULONG_PTR* ulBase = (ULONG_PTR *)Address;
	if (!IsBadReadPtr((VOID*)ulBase, sizeof(ULONG_PTR)))
		if (!IsBadReadPtr((VOID*)((*(ULONG_PTR*)ulBase) + nOffset), sizeof(ULONG_PTR)))
			return *(ULONG_PTR*)((*(ULONG_PTR*)ulBase) + nOffset);
	return 0;
}

bool LeftWall(int X)
{
	return ((int)ReadPointer(dwMapBase, dwLeftWallOffset) <= X);
}

bool TopWall(int Y)
{
	return ((int)ReadPointer(dwMapBase, dwLeftWallOffset + 4) <= Y);
}

bool RightWall(int X)
{
	return ((int)ReadPointer(dwMapBase, dwLeftWallOffset + 8) >= X);
}

bool BottomWall(int Y)
{
	return ((int)ReadPointer(dwMapBase, dwLeftWallOffset + 12) >= Y);
}

__declspec(naked) void CUserLocal__IsTeleportSkillAvailable()
{
	__asm
	{
		mov esi, [dwCharacterBase]
		mov esi, [esi]
		push ebx
		push edx
	    mov ecx, [dwCharacterPID]
		push [esi + ecx]
		call [dwCUserLocal__IsTeleportSkillAvailable]
	    ret
	}
}

void Teleport(int X, int Y)
{
	if (LeftWall(X) && RightWall(X) && TopWall(Y) && BottomWall(Y))
	{
		__asm
		{
			pushad;
			mov edx, X
			mov ebx, Y
			call CUserLocal__IsTeleportSkillAvailable;
			popad;
		}
	}
}

MobData Monster;
Monster = GetMobXY();
Teleport(Monster.X, Monster.Y);

 

 

Edited by CJ.
  • Like 2

Share this post


Link to post
30 minutes ago, CJ. said:

The godmode script protects from all types of attack?

I'm not sure about all kinds of damage but I know for sure physical and magical damage at least.

I don't even know who to credit because I simply logged a damage packet and looked for a jump that brings it the end of the function. 

I know for sure it didn't work for the falling glaciers in the Heroes quest-line, so I made one for that

Godmode.gif

Edited by OuterHaven
  • Like 1

Share this post


Link to post

Updated all of the scripts to GMS v174.3

Disregard any post inbetween the OP post and this one as they are not updated yet. 

I will also be posting some Evan scripts once a public bypass is out so keep in tune. 

Edited by OuterHaven
  • Like 2

Share this post


Link to post
9 minutes ago, CJ. said:

What exactly does mouse grip do?

You can take invisible skills/immovable skills that you inputted into #skill and key bind them, which of course has to be skills you have and are permitted to use.

Do take note, not all invisible skills can be keybound and some invisible skills will do nothing even when bound. 

Edited by OuterHaven
  • Like 2

Share this post


Link to post
Just now, CJ. said:

Can all skills be fma-able with the fma method by sprux?

If I'm in the chatbox please just use that. But those scripts are meant to be skill specific.

If you want all skills fma use Full Map Attack posted above. Most skills will D/C however. 

Share this post


Link to post

Got bored of Evan/things came prepatched so decided to dump what I have

Evan Dragon FMA

Spoiler

//Credits to Sprux for FindHitInMobRect FMA Method
//v174.3
//Only Use Dragon Dive Skill

[ENABLE]
alloc(find_hit_mob_in_rect_hook,128)

find_hit_mob_in_rect_hook:
mov eax,[0225FEF4] // CWvsPhysicalSpace2D:
//B8 0A 00 00 00 EB ? 3D
lea eax,[eax+0C] // Left Wall Offset
mov [esp+04],eax
jmp 00BFF720 // Original call (CMobPool::FindHitMobInRect)

007594B6: //Function CDragon:TryDoingMagicAttack
call find_hit_mob_in_rect_hook


[DISABLE]

007594B6: //FF 15 ? ? ? ? 80 7C 24 ? 00 8B 44 24 ? 6A 00 6A 00 6A 00 [call below]
call 00BFF720

dealloc(find_hit_mob_in_rect_hook)

 

Please only use it with the Dragon Dive Skill as you will D/C with everything esle. Then also use it with No Skill Cooldowns script in order to spam the fusion skills.

No Skill Cooldowns

Spoiler

/*
Credits OuterHaven
No Skill Cooldowns 
(Only works for certain skills like Blazing Extinction,Evan Fusion Skills,etc)
v174.3
*/
//v174.3

[enable]
0173BEA0: //Generic Ignore Skill Cooldown
db 75

[disable]
0173BEA0:  //83 fe 01 7c ? 57 8b 3D ? ? ? ? 85 FF 74 49 [je below]
db 74

 

Earth Breath with Every Fusion Attack (use with dragon dive)

Spoiler

//Credits Outerhaven
//v174.3

[enable]
0075DFA2:: //Shoot Earth Breath every fusion attack
db 0F 84
  
[disable]
0075DFA2:
db 0F 85

 

Now I don't really recommend these as they are not reliable and d/c often but here you go.

Earth Breath No Delay (use with scripts above + only mobs you can 1-3 hit)

Spoiler

[enable]
0075E2B9:
db 75

[disable]
0075E2B9:
db 74

 

Evan Dragon Dive ND

Spoiler

//v174.3
//D/C often probably can be used with a bot that if mobs less than > X, then do not attack
[enable]
0075DB7B: //Dragon Dive ND (Hold Down Skill)
db EB
  
[disable]
0075DB7B:
db 7E

 

 

Edited by OuterHaven
  • Like 2

Share this post


Link to post

Hello friend, i have question,Release GMS Script Library v174.3 in Orbital Flame Full Map Attack, what orginal call (CMobPool::FindHitMobInRect) is array? O.o

Share this post


Link to post
Use this with auto aggro, walking mobs type goes to specified X coords instead:
Spoiler

 


[ENABLE]
alloc(WalkingMobX,128)
alloc(X,4)

X:
dd #800

WalkingMobX:
push eax
call edx
fild dword ptr [X]
jmp 018E041F+5

018E041F:
jmp WalkingMobX

[DISABLE]
018E041F: // 50 FF D2 DB 00 DC [First Result]
db 50 FF D2 DB 00

dealloc(WalkingMobX)

Get Mob X,Y (Skips invisible mob):

Spoiler

// ation
// https://ccplz.net/threads/source-c-simple-kami.35577/
[ENABLE]
alloc(GetMobXY,128)
alloc(MobX,12)
alloc(MobY,12)
registersymbol(MobX)
registersymbol(MobY)

GetMobXY:
mov [MobX],eax
call 01A83830 // Original Opcode
mov [MobY],eax
jmp 018E4C22+5

018E4C22:
jmp GetMobXY

[DISABLE]
018E4C22: // E8 ? ? ? ? 89 86 ? ? 00 00 8B 86 ? ? 00 00 85 C0 74 ? 83 78 ? 00
call 01A83830

dealloc(GetMobXY)
unregistersymbol(MobX)
unregistersymbol(MobY)

 

 

  • Like 1

Share this post


Link to post

No Name Tags 

Spoiler

[enable]
016BF410: //CUser:DrawNameTags
ret
 
[disable]
016BF410: 
//C7 44 24 ? FF FF FF FF 85 C0 74 ? 83 B8 [FUNCTION START]
//FF D2 85 C0 0F 85 ? ? 00 0 8B 3D ? ?  ? ? 85 FF [FUNCTION START]
push -01
push 01CC2888

 

No Fade Stages

Spoiler

[enable]
00E58B42: // CStage::FadeOut
db 0F 85

00E5857E: // CStage::FadeIn
DB 0F 85

[disable]
00E58B42: //33 C9 6A 00 E8 ? ? ? ? 8B 35 follow call --> Address is first JE
db 0F 84

00E5857E: //33 C9 6A 00 E8 ? ? ? ? 8B 44 follow call --> Address is first JE
db 0F 84

 

ClearFieldUI

Spoiler

//Credits to DAVHEED for function
[enable]
alloc(ClearFieldUI,128)

00E58B01:
jmp ClearFieldUI

ClearFieldUI:
mov ecx,[0225B840] //Above or Below the AOB below
call 019A10C0 //56 8B F1 8B 0D ? ? ? ? E8 ? ? ? ? A1 ? ? ? ? C7 80 ? ? ? ? 00 00 00 00 Call below

pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp,00000088
ret 0004

[disable]
dealloc(ClearFieldUI)

00E58B01: //85 C0 74 ? C7 ? ? ? 00 00 01 00 00 00 [end of function]
pop ecx
pop edi
pop esi
pop ebp
pop ebx

 

Resolution Changer

Spoiler

//Credits to Nickerian of CCPLZ

[enable]
alloc(ResolutionChanger, 128)
label(AlreadyChanged)
alloc(height, 4)
alloc(width, 4)
registersymbol(height)
registersymbol(width)

alloc(IntersectRectAddy, 4)
alloc(ResolutionChangerAddy, 4)

IntersectRectAddy:
dd USER32.IntersectRect

ResolutionChangerAddy:
dd ResolutionChanger

width:
dd #1768

height:
dd #992


ResolutionChanger:
pushad
mov edi, [0225B840]//follow first call from aob below
mov eax, [edi+7BE8] //follow first call from aob below
cmp eax, [width]
je AlreadyChanged

mov eax, [edi+7BEC]
cmp eax, [height]
je AlreadyChanged

mov ecx, [height]
mov edx, [width]
push 00
push ecx
push edx
mov ecx,edi
call 01943930 //53 55 57 8B D9 E8 ? ? ? ? 8B ? ? ? 8B ? ? ? 3B F8 75 ? E8 ? ? ? ?

AlreadyChanged:
popad
jmp dword ptr [IntersectRectAddy]

0190EF5C:
call dword ptr [ResolutionChangerAddy]

[disable]
dealloc(ResolutionChanger)
dealloc(height)
dealloc(width)
dealloc(IntersectRectAddy)
dealloc(ResolutionChangerAddy)
unregistersymbol(height)
unregistersymbol(width)


0190EF5C: //FF 15 ? ? ? ? 85 C0 0F 84 ? ? ? ? 8D 54 24 ? 52 8D 44 24 ?
call dword ptr [02276C78]

 

Mainly mixed these scripts for recording/gyazo purposes and to have some privacy to which I thought it was pretty neat to record/take pictures with as most obstructions are removed. 

If you want to use ClearFieldUI you have to use the No Fade Stages above as I'm using the end of the function. The version that RETs the CStage::FadeIn/Out will not work with ClearFieldUI 

Edited by OuterHaven
  • Like 1

Share this post


Link to post

Character Movement Block (no aobs because it's not reliable each patch):

Spoiler

 


[ENABLE]
018ED978:
db EB

[DISABLE]
018ED978:
db 75

 

Edited by CJ.

Share this post


Link to post

No-Breath (if you use orbital flame you can cc without breath check idk about other skills):

Spoiler

[ENABLE]
0058AFCD:
db 78

[DISABLE]
0058AFCD: // 8B 86 ? ? 00 00 3B C3 74 ? 8B ? ? ? 2B D0 [Move Up]
db 79

 

Mob Control:

Spoiler

[ENABLE]
alloc(MobControl,1024)
label(Return)

MobControl:
mov [esi+418],4 // 0 = No Aggro, 1 = Mobs become 'Walking Mobs', 2 = Mobs become 'Jumping Mobs', 3 = Mobs become 'Flying Mobs', 4 = Mobs become 'Stationary Mobs', 5 = Mob Move Right (May be others values, this is called 'Mob Movement Offset')
jmp Return

018E3E10:
jmp MobControl
db 90
Return:

[DISABLE]
018E3E10:
fld qword ptr [esi+00000120]

dealloc(MobControl)

 

 

Edited by CJ.
  • Like 2

Share this post


Link to post

Change your character coords to specified coords, check your mini-map.

Spoiler

[ENABLE]
alloc(CUser__GetPos_Hook,128)

CUser__GetPos_Hook:
push ebp
mov ebp,esp
mov eax,[ebp+08]
mov [eax],#0 // X
mov [eax+04],#0 // Y
pop ebp
ret 0004
jmp 006B4B70+7

006B4B70: // CUser::GetPos
jmp CUser__GetPos_Hook
db 90 90

[DISABLE]
006B4B70: // 56 8D B1 ? ? 00 00 57 8D 4E ? E8 [Seventh Result]
push esi
lea esi,[ecx+000095B8]

dealloc(CUser__GetPos_Hook)

 

  • Like 3

Share this post


Link to post

Tubi:

Spoiler

[ENABLE]
alloc(CWvsContext__SetExclRequestSent_Hook,128)
label(Normal)
label(Return)

CWvsContext__SetExclRequestSent_Hook:
push 00
call Normal
ret 0004

Normal:
mov eax,[esp+04]
push esi
jmp Return

Return:
jmp 019550E0+5

019550E0: // CWvsContext::SetExclRequestSent
jmp CWvsContext__SetExclRequestSent_Hook

[DISABLE]
019550E0: // 8D 8E ? ? 00 00 E8 ? ? ? ? E8 ? ? ? ? 50 [Start]
mov eax,[esp+04]
push esi

dealloc(CWvsContext__SetExclRequestSent_Hook)

 

 

Edited by CJ.
  • Like 2

Share this post


Link to post

Teleport Mastery 'PG' (taken from Xenomorph source) seems to d/c after a set amount of hit even with timestamp bypassed more checks? maybe idk :

Spoiler

void __declspec(naked) Timestamp__asm()
{
	static unsigned int uTime = 0;

	__asm
	{
		add [uTime], 5000
		mov eax, [uTime]
		ret
	}
}

struct SKILLENTRY
{
	unsigned int uSkillId;
	char* lpszName;
	char* lpszDescription;
};

// E8 ? ? ? FF 8B D8 85 FF 74 ? 83 [Follow Call]
typedef SKILLENTRY*(__fastcall* CSkillInfo__GetSkill_t)(void* lpvEcx, void* lpvEdx, int iSkillId);
CSkillInfo__GetSkill_t CSkillInfo__GetSkill = reinterpret_cast<CSkillInfo__GetSkill_t>(0x00E2DD20);

// E8 ? ? ? 00 85 C0 7F ? 6A 00 [Follow Call]
// 6A FF 68 ? ? ? ? 64 A1 00 00 00 00 50 83 EC 08 53 56 57 A1 ? ? ? ? 33 C4 50 8D ? ? ? 64 A3 00 00 00 00 8B 0D ? ? ? ? 8D ? ? ? 50 E8 ? ? ? ? 8B ? ? ? 8B ? ? ? 8B ? ? 6A 01
typedef unsigned int(__fastcall* CUserLocal__GetSkillLevel_t)(void* lpvEcx, void* lpvEdx, int iSkillId, int bUnknown);
CUserLocal__GetSkillLevel_t CUserLocal__GetSkillLevel = reinterpret_cast<CUserLocal__GetSkillLevel_t>(0x0173D400);

// 6A 01 6A 00 6A 00 6A 00 51 8B 0D (mov ecx,[CSkillInfo])
void* const CSkillInfo = reinterpret_cast<void* const>(0x02253AC0);

// 50 52 8B CE E8 ? ? ? ? 5F 5E 83 C4 [Follow Call]
typedef int(__fastcall* CUserLocal__TryDoingBodyAttack_t)(void* lpvEcx, void* lpvEdx, SKILLENTRY* pSkill, int iSkillLevel, void* lpvMob, POINT ptHit);
static CUserLocal__TryDoingBodyAttack_t CUserLocal__TryDoingBodyAttack = reinterpret_cast<CUserLocal__TryDoingBodyAttack_t>(0x017E0140);

// 8B 50 ? 8D 48 ? 8B ? ? FF D0 84 [Start]
typedef void(__fastcall* CUserLocal__Update_t)(void* lpvEcx, void* lpvEdx);
static CUserLocal__Update_t CUserLocal__Update = reinterpret_cast<CUserLocal__Update_t>(0x017E5B00); 

void __fastcall CUserLocal__Update_Hook(void* lpvEcx, void* lpvEdx)
{

	/*static unsigned int iCounter = 0;

	if (iCounter < 10)
	{
		iCounter++;
		return CUserLocal__Update(lpvEcx, lpvEdx);
	}

	iCounter = 0;*/

	/*2111007,	// Fire/Poison
	2211007,	// Ice/Lightning
	2311007,	// Bishop
	12111007,	// Flame Wizard
	22161005,	// Evan
	32111010,	// Battle Mage
	32121003,	// Battle Mage (Twister Spin)*/

	static CMemory MagePgTimestamp(0x017E145B, 5); //E8 ? ? ? 00 89 45 ? C7 85 ? ? FF FF 00 00 00 00 (3rd)
	MagePgTimestamp.SetJumpCall(false, &Timestamp__asm);

	unsigned int uPgSkillId = 2211007;

	SKILLENTRY* pSkillEntry = CSkillInfo__GetSkill(*reinterpret_cast<void**>(CSkillInfo), NULL, uPgSkillId);
	unsigned int uSkillLevel = CUserLocal__GetSkillLevel(lpvEcx, NULL, uPgSkillId, FALSE);

	POINT ptNull = { 0, 0 };

	CUserLocal__TryDoingBodyAttack(lpvEcx, NULL, pSkillEntry, uSkillLevel, NULL, ptNull);

	return CUserLocal__Update(lpvEcx, lpvEdx);
}

 

 

Edited by CJ.
  • Like 1

Share this post


Link to post

Stuff from above post in CE scripts:

Teleport Mastery PG:

Spoiler

[ENABLE]
alloc(CUserLocal__Update_Hook,128)

CUserLocal__Update_Hook:
push ebx
push esi
push edi
mov edi,edx
mov ebx,ecx
mov ecx,[02253AC0]
mov eax,00E2DD20
push 0021BCBF // Skill ID in HEX
xor edx,edx
call eax
push 00
mov esi,eax
xor edx,edx
push 0021BCBF // Skill ID in HEX
mov eax,0173D400
mov ecx,ebx
call eax
push 00 // ptHit+4
xor edx,edx
mov ecx,ebx
push 00 // ptHit
push 00
push eax
push esi
mov eax,017E0140
call eax
mov edx,edi
mov ecx,ebx
pop edi
pop esi
pop ebx
jmp Ending

Ending:
push ebp
lea ebp,[esp-74]
jmp 017E5B00+5

017E5B00:
jmp CUserLocal__Update_Hook

[DISABLE]
017E5B00:
push ebp
lea ebp,[esp-74]

dealloc(CUserLocal__Update_Hook)

 

Mage Pg timestamp bypass:

Spoiler

[ENABLE]
alloc(MagePGTimeStampBypass,128)
alloc(uTime,64)

MagePGTimeStampBypass:
add [uTime], #5000
mov eax, [uTime]
ret

017E145B:
call MagePGTimeStampBypass

[DISABLE]
017E145B:
call 0185DA30

dealloc(MagePGTimeStampBypass)

 

 

Edited by CJ.
  • Like 1

Share this post


Link to post
8 hours ago, CJ. said:

Teleport Mastery 'PG' (taken from Xenomorph source) seems to d/c after a set amount of hit even with timestamp bypassed more checks? maybe idk :

  Reveal hidden contents


void __declspec(naked) Timestamp__asm()
{
	static unsigned int uTime = 0;

	__asm
	{
		add [uTime], 5000
		mov eax, [uTime]
		ret
	}
}

struct SKILLENTRY
{
	unsigned int uSkillId;
	char* lpszName;
	char* lpszDescription;
};

// E8 ? ? ? FF 8B D8 85 FF 74 ? 83 [Follow Call]
typedef SKILLENTRY*(__fastcall* CSkillInfo__GetSkill_t)(void* lpvEcx, void* lpvEdx, int iSkillId);
CSkillInfo__GetSkill_t CSkillInfo__GetSkill = reinterpret_cast<CSkillInfo__GetSkill_t>(0x00E2DD20);

// E8 ? ? ? 00 85 C0 7F ? 6A 00 [Follow Call]
// 6A FF 68 ? ? ? ? 64 A1 00 00 00 00 50 83 EC 08 53 56 57 A1 ? ? ? ? 33 C4 50 8D ? ? ? 64 A3 00 00 00 00 8B 0D ? ? ? ? 8D ? ? ? 50 E8 ? ? ? ? 8B ? ? ? 8B ? ? ? 8B ? ? 6A 01
typedef unsigned int(__fastcall* CUserLocal__GetSkillLevel_t)(void* lpvEcx, void* lpvEdx, int iSkillId, int bUnknown);
CUserLocal__GetSkillLevel_t CUserLocal__GetSkillLevel = reinterpret_cast<CUserLocal__GetSkillLevel_t>(0x0173D400);

// 6A 01 6A 00 6A 00 6A 00 51 8B 0D (mov ecx,[CSkillInfo])
void* const CSkillInfo = reinterpret_cast<void* const>(0x02253AC0);

// 50 52 8B CE E8 ? ? ? ? 5F 5E 83 C4 [Follow Call]
typedef int(__fastcall* CUserLocal__TryDoingBodyAttack_t)(void* lpvEcx, void* lpvEdx, SKILLENTRY* pSkill, int iSkillLevel, void* lpvMob, POINT ptHit);
static CUserLocal__TryDoingBodyAttack_t CUserLocal__TryDoingBodyAttack = reinterpret_cast<CUserLocal__TryDoingBodyAttack_t>(0x017E0140);

// 8B 50 ? 8D 48 ? 8B ? ? FF D0 84 [Start]
typedef void(__fastcall* CUserLocal__Update_t)(void* lpvEcx, void* lpvEdx);
static CUserLocal__Update_t CUserLocal__Update = reinterpret_cast<CUserLocal__Update_t>(0x017E5B00); 

void __fastcall CUserLocal__Update_Hook(void* lpvEcx, void* lpvEdx)
{

	/*static unsigned int iCounter = 0;

	if (iCounter < 10)
	{
		iCounter++;
		return CUserLocal__Update(lpvEcx, lpvEdx);
	}

	iCounter = 0;*/

	/*2111007,	// Fire/Poison
	2211007,	// Ice/Lightning
	2311007,	// Bishop
	12111007,	// Flame Wizard
	22161005,	// Evan
	32111010,	// Battle Mage
	32121003,	// Battle Mage (Twister Spin)*/

	static CMemory MagePgTimestamp(0x017E145B, 5); //E8 ? ? ? 00 89 45 ? C7 85 ? ? FF FF 00 00 00 00 (3rd)
	MagePgTimestamp.SetJumpCall(false, &Timestamp__asm);

	unsigned int uPgSkillId = 2211007;

	SKILLENTRY* pSkillEntry = CSkillInfo__GetSkill(*reinterpret_cast<void**>(CSkillInfo), NULL, uPgSkillId);
	unsigned int uSkillLevel = CUserLocal__GetSkillLevel(lpvEcx, NULL, uPgSkillId, FALSE);

	POINT ptNull = { 0, 0 };

	CUserLocal__TryDoingBodyAttack(lpvEcx, NULL, pSkillEntry, uSkillLevel, NULL, ptNull);

	return CUserLocal__Update(lpvEcx, lpvEdx);
}

 

 

That is because TP PG was patched ages ago and timestamp bypass doesn't do what you think it does.

Then for real tubi you have to be weary as its theorized to trigger auto-ban in GMS

Edited by OuterHaven
  • Like 1

Share this post


Link to post

Real Item Vac (d/c after 1 loot manually input item coords):

Spoiler

[ENABLE]
alloc(ItemVac,128)
label(Ending)

ItemVac:
push ebp
mov ebp,esp
mov eax,[ebp+08]
mov [eax],#-11 // ItemX
mov [eax+04],#130 // ItemY
mov [ebp+08],eax
pop ebp
jmp Ending

Ending:
push -01
push 01AFD588
jmp 007616F0+7

007616F0: // CDropPool::TryPickUpDrop
jmp ItemVac
db 90 90

[DISABLE]
007616F0:
push -01
push 01AFD588

dealloc(ItemVac)

 

Item Hook:

Spoiler

[ENABLE]
alloc(ItemXYHook,128)
alloc(ItemX,4)
alloc(ItemY,4)
registersymbol(ItemX)
registersymbol(ItemY)

ItemXYHook:
cmp [esp],00761904
jne PtInRect
push eax
mov eax,[esp+0C]
mov [ItemX],eax
mov eax,[esp+10]
mov [ItemY],eax
pop eax
jmp PtInRect

02276C54:
dd ItemXYHook

[DISABLE]
02276C54:
dd PtInRect

dealloc(ItemXY)
dealloc(ItemX)
dealloc(ItemY)
unregistersymbol(ItemX)
unregistersymbol(ItemY)

 

Spoiler

typedef void(__fastcall* CDropPool__TryPickUpDrop_t)(void* lpvEcx, void* lpvEdx, POINT* pt);
CDropPool__TryPickUpDrop_t CDropPool__TryPickUpDrop = reinterpret_cast<CDropPool__TryPickUpDrop_t>(0x007616F0);

void __fastcall CDropPool__TryPickUpDrop_Hook(void* lpvEcx, void* lpvEdx, POINT* pt)
{
	//...

	return CDropPool__TryPickUpDrop(lpvEcx, lpvEdx, pt);
}

 

 

Edited by CJ.
  • Like 1

Share this post


Link to post

Auto Pick Up (except Mesos)

Spoiler

/*
MooplerMasterRace
Created by Outerhaven
v174.3
*/

[Enable]
0076C323:
mov [ebp-34],00000001
nop
nop
nop

[Disable]
0076C323://83 ? ? 01 89 86 ? ? 00 00 C6 86 ? ? 00 00 01 0F 85 ? ? 00 00 83 7E ? 00
cmp dword ptr [ebp-34],01
mov [esi+000000BC],eax
mov byte ptr [esi+000000B4],01

 

Heroes of Maple had drops similar to combo parade, bonus stage items, etc.

Thought it was a good opportunity to easily see what triggers the auto pickup. 

Note: D/Cs on honor medal drops so filter it

 

Edited by OuterHaven
  • Like 2

Share this post


Link to post

When I posted the script I had the address below it nop'd

Anyways the fixed the Auto Pick Up script as well as a disable issue.

Edited by OuterHaven
  • Like 1

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
×