Jump to content
Moopler
Sign in to follow this  
Razz

Outdated Kami v114.1

Recommended Posts

// AIRRIDE Kami v110.1
 
// updated v114.1
// moopler.net
 
[Enable]
Alloc(Kami,128)
Alloc(ItemHook,128)
Alloc(GetMobXY,512)
Alloc(NewTeleportXY,128)
Alloc(PressKey,128)
Alloc(TeleTopLeft,128)
Alloc(ItemX,4)
Alloc(ItemY,4)
Label(GetMobXYFalse)
Label(GetMobXYTrue)
Label(TeleportEnd)
Label(NextMob)
Label(Loot)
Label(KamiExit)
 
//MapleStory keycodes
define(CTRL,001D0000)
define(SHIFT,002A0000)
define(INSERT,01520000)
define(DEL,01530000)
define(HOME,01470000)
define(END,014F0000)
define(PAGEUP,01490000)
define(PAGEDOWN,01510000)
define(ALT,00380000)
define(Z,002C0000)
 
GetMobXY:
// TSingleton<CMobPool>::ms_pInstance (Mob Base):
// 8B 0D ? ? ? ? ? E8 ? ? ? ? 8B ? 85 ? 74 ? 8B ? ? 8B
mov esi,[0199B290] // v114.1
test esi,esi
je GetMobXYFalse
mov edx,[esi+10] // mob count
test edx,edx
je GetMobXYFalse
mov esi,[esi+28] // mob 1
test esi,esi
je GetMobXYFalse
mov edx,[esi+04] // mob 2 - 0x10
test edx,edx
je GetMobXYFalse
 
// mob 3 offset 83 ? ? ? ? ? ? 0F 84 ? ? ? ? 83 ? ? 39 ? ? ? ? ? 0F 8E ? ? ? ? 68 ? ? ? ? 8D ? ? ? E8 ? ? ? ? 68 ? ? ? ? 8D ? ? ? C7 ? ? ? ? ? ? ? E8 ? ? ? ? 8B ? ? ? ? ? C6 ? ? ? ? 85
mov edx,[edx+1B8] // v114.1
 
test edx,edx
je GetMobXYFalse
mov edx,[edx+24] // mob 4
test edx,edx
je GetMobXYFalse
mov ebx,[edx+60] // mob invx
or ebx,[edx+64] // mob invy
test ebx,ebx
jne GetMobXYTrue
mov esi,[esi-0C] // next mob - 0x10
test esi,esi
je GetMobXYFalse
 
NextMob:
mov edx,[esi+14] // mob 2
test edx,edx
je GetMobXYFalse
 
// mob 3 offset 83 ? ? ? ? ? ? 0F 84 ? ? ? ? 83 ? ? 39 ? ? ? ? ? 0F 8E ? ? ? ? 68 ? ? ? ? 8D ? ? ? E8 ? ? ? ? 68 ? ? ? ? 8D ? ? ? C7 ? ? ? ? ? ? ? E8 ? ? ? ? 8B ? ? ? ? ? C6 ? ? ? ? 85
mov edx,[edx+1B8] // v114.1
 
test edx,edx
je GetMobXYFalse
mov edx,[edx+24] // mob 4
test edx,edx
je GetMobXYFalse
mov ebx,[edx+60] // mob invx
or ebx,[edx+64] // mob invy
test ebx,ebx
jne GetMobXYTrue
mov esi,[esi+04] // next mob
test esi,esi
je GetMobXYFalse
jmp NextMob
 
GetMobXYFalse:
xor eax,eax
ret
 
GetMobXYTrue:
lea eax,[edx+58] // mob x
ret
 
NewTeleportXY:
// TSingleton<CUserLocal>::ms_pInstance (char base)
// A1 ? ? ? ? 85 C0 75 ? 5F C3 8D
mov esi,[01996DE4] // v114.1
lea ecx,[esi+04]
 
// 8B ? ? ? ? ? 85 ? 74 ? 83 ? ? 74 ? 83 ? ? C3
// mov eax,[ecx+00007xxxx], usually the last result (8th)
// or just get the value of edx at FF D2 89 84 24 ? ? ? ? 8D 84 24 ? ? ? ? 50 8B CF
call 01274CE0 // v114.1
 
test eax,eax
je TeleportEnd
push ebx
push edx
push 00
mov ecx,eax
 
// 8B ? 24 ? 8B ? ? 8B ? ? ? 8D ? ? 8B ? ? ? ? ? ? FF ? 85 C0 ? ? ? ? ? ? ? ? ? E8
call 012E8710 // v114.1
 
TeleportEnd:
ret
 
PressKey:
// TSingleton<CWndMan>::ms_pInstance
// 8B 15 ? ? ? ? 85 D2 74 23
mov esi,[0199B39C] // v114.1
push edx // lparam (keycode)
push 00 // unused wparam
call 0131A2E0 // CWndMan::OnKey v114.1
ret
 
Kami:
// mov ecx, eax below 8B ? ? FF ? 8B ? B8 ? ? ? ? F7 ? C1 ? ? 8B ? C1 ? ? 03 ? 83 ? ? 74 ? 81 ? ? ? ? ? 75 ? 80 ? ? ? ? ? ? 74
cmp dword ptr [esp], 01199A4A // v114.1
pushad
jne KamiExit
// TSingleton<CUserLocal>::ms_pInstance (char base)
// A1 ? ? ? ? 85 C0 75 ? 5F C3 8D
mov eax,[01996DE4]
test eax,eax
je KamiExit
call GetMobXY
test eax,eax
je Loot
//jmp Loot
mov ebx,[eax+4]
sub ebx,#0
mov edx,[eax]
sub edx,#50
call NewTeleportXY
//mov edx, CTRL //Change attack key here
//Call PressKey
jmp KamiExit
 
Loot:
// TSingleton<CDropPool>::ms_pInstance (item base):
// 89 3D ? ? ? ? 8D 4E ? C7 06
mov esi,[0199B8D4] // v114.1
mov esi,[esi+14] // item count offset (shouldnt change)
cmp esi,0
je TeleTopLeft
mov edx, Z //Change loot key here
call PressKey
mov ebx,[ItemY]
mov edx,[ItemX]
call NewTeleportXY
jmp KamiExit
 
TeleTopLeft:
// TSingleton<CWvsPhysicalSpace2D>::ms_pInstance (map base)
// A1 ? ? ? ? 8B 50 ? 83 C0
mov edx,[0199B298] // v114.1
mov edx,[edx+1C] // left offset (shouldnt change)
mov ebx,[0199B298] // v114.1
mov ebx,[ebx+20] // top offset (shouldnt change)
call NewTeleportXY
 
KamiExit:
popad
jmp 011A8860 // v114.1
// original value of the pointer
 
ItemHook:
// 85 C0 75 ? 8D ? 24 ? C7 ? 24 ? ? ? ? ? E8 ? ? ? ? 8B
cmp [esp],00666384 // v114.1
jne PtInRect
push eax
mov eax,[esp+0C]
mov [ItemX],eax
mov eax,[esp+10]
mov [ItemY],eax
pop eax
jmp PtInRect
 
// base:  C7 06 ? ? ? ? C7 46 04 ? ? ? ? C7 46 08 ? ? ? ? C7 86 AC 00 00 00 ? ? ? ? 89 18 89 9E
// offset: 8B ? ? FF ? 8B ? B8 ? ? ? ? F7 ? C1 ? ? 8B ? C1 ? ? 03 ? 83 ? ? 74 ? 81 ? ? ? ? ? 75 ? 80 ? ? ? ? ? ? 74
017E85F8+70: // v114.1
dd Kami
 
// pointer call above 85 C0 75 ? 8D ? 24 ? C7 ? 24 ? ? ? ? ? E8 ? ? ? ? 8B
019AABD0: // v114.1
dd ItemHook
 
[Disable]
017E85F8+70: // v114.1
dd 011A8860 // v114.1
// original value of the pointer
 
019AABD0: // v114.1
dd PtInRect
 
Dealloc(Kami)
Dealloc(ItemHook)
Dealloc(GetMobXY)
Dealloc(NewTeleportXY)
Dealloc(PressKey)
Dealloc(TeleTopLeft)
Dealloc(ItemX)
Dealloc(ItemY)

 

Edited by Razz
New codeblock
  • Like 1

Share this post


Link to post

I hope this does not need any explaining, but for the love of god, please attach CE to MapleStory.exe first before adding this script.

Also, @Razz, I forgot to change the AoB of '017E85F8' as the code around the AoB changed to much for it to still match. The following AoB seems to be more accurate and works for v113 as well as v114;

C7 06 ? ? ? ? C7 46 04 ? ? ? ? C7 46 08 ? ? ? ? C7 86 AC 00 00 00 ? ? ? ? 89 18 89 9E

 

Share this post


Link to post

i got a question about the script i had to remove the "//" before 

mov edx, CTRL
Call PressKey
jmp Loot

but when i do so he is just hanging in the left corner of the map and is waiting for drops so i added the "//" before 

jmp Loot

again and he started to attack but hes no looting now how can i change it so that he is attacking and looting?

or do i have to enter somewhere when to start to loot like at how much items ?

Edited by Schuchi

Share this post


Link to post

i got a question about the script i had to remove the "//" before 

mov edx, CTRL

Call PressKey

jmp Loot

but when i do so he is just hanging in the left corner of the map and is waiting for drops so i added the "//" before 

jmp Loot

again and he started to attack but hes no looting now how can i change it so that he is attacking and looting?

or do i have to enter somewhere when to start to loot like at how much items ?

Currently it only loots when it cannot find a new mob to attack, adding the 'jmp' will cause it to always loot, even if there are mobs. So the priority is Mobs > Items.

I guess it is possible to add a few things so it loots e.g., when X mobs are killed.

  • Like 1

Share this post


Link to post

Use this script to filter out invisible items in map, make sure to change channel/refresh map after enabling this script:

[Enable]
Alloc(Hook,64)
Label(Return)
Label(RealItem)

Hook:
cmp eax,00
jne RealItem
mov [esi+40],00
RealItem:
mov ecx,ebx
mov [esi+44],eax
jmp Return

0066DF7D:
jmp Hook
Return:

[Disable]
0066DF7D:
mov ecx,ebx
mov [esi+44],eax

DeAlloc(Hook)

 

Script to loot when X amount of item in map. This will also hide when other player enter the map.

// AIRRIDE Kami v110.1

// updated v114.1
// moopler.net

[Enable]
Alloc(Kami,128)
Alloc(ItemHook,128)
Alloc(GetMobXY,512)
Alloc(NewTeleportXY,128)
Alloc(PressKey,128)
Alloc(TeleTopLeft,128)
Alloc(ItemX,4)
Alloc(ItemY,4)
Label(GetMobXYFalse)
Label(GetMobXYTrue)
Label(TeleportEnd)
Label(NextMob)
Label(Loot)
Label(KamiExit)

Alloc(minike,4)
RegisterSymbol(minike)
Alloc(dupe,16)
Alloc(pls,16)

dupe:
dec [minike]
jmp GetMobXYFalse

pls:
mov [minike],#100
jmp GetMobXYFalse

define(CTRL,001D0000)
define(SHIFT,002A0000)
define(INSERT,01520000)
define(DEL,01530000)
define(HOME,01470000)
define(END,014F0000)
define(PAGEUP,01490000)
define(PAGEDOWN,01510000)
define(ALT,00380000)
define(Z,002C0000)

GetMobXY:
mov esi,[0199B290]
test esi,esi
je GetMobXYFalse

mov edx,[esi+10]
test edx,edx
je GetMobXYFalse
cmp [minike],00
jne dupe
push ebx
mov ebx,[0199B8D4]
mov ebx,[ebx+14]
cmp ebx,#10 // loot when X amount of item in map
pop ebx
jg pls

mov esi,[esi+28]
test esi,esi
je GetMobXYFalse
mov edx,[esi+04]
test edx,edx
je GetMobXYFalse
mov edx,[edx+1B8]
test edx,edx
je GetMobXYFalse
mov edx,[edx+24]
test edx,edx
je GetMobXYFalse
mov ebx,[edx+60]
or ebx,[edx+64]
test ebx,ebx
jne GetMobXYTrue
mov esi,[esi-0C]
test esi,esi
je GetMobXYFalse

NextMob:
mov edx,[esi+14]
test edx,edx
je GetMobXYFalse
mov edx,[edx+1B8]
test edx,edx
je GetMobXYFalse
mov edx,[edx+24]
test edx,edx
je GetMobXYFalse
mov ebx,[edx+60]
or ebx,[edx+64]
test ebx,ebx
jne GetMobXYTrue
mov esi,[esi+04]
test esi,esi
je GetMobXYFalse
jmp NextMob

GetMobXYFalse:
xor eax,eax
ret

GetMobXYTrue:
lea eax,[edx+58]
ret

NewTeleportXY:
mov esi,[01996DE4]
lea ecx,[esi+04]
call 01274CE0
test eax,eax
je TeleportEnd
push ebx
push edx
push 00
mov ecx,eax
call 012E8710
TeleportEnd:
ret

PressKey:
mov esi,[0199B39C]
push edx
push 00
call 0131A2E0
ret

Kami:
cmp dword ptr [esp],01199A4A
pushad
jne KamiExit
mov eax,[0199B28C]
mov eax,[eax+18]
cmp eax,01
jge TeleTopLeft
mov eax,[01996DE4]
test eax,eax
je KamiExit
call GetMobXY
test eax,eax
je Loot
mov ebx,[eax+4]
sub ebx,#0
mov edx,[eax]
sub edx,#50
call NewTeleportXY
mov edx,CTRL
Call PressKey
jmp KamiExit

Loot:
mov edx,Z
call PressKey
mov ebx,[ItemY]
mov edx,[ItemX]
call NewTeleportXY
jmp KamiExit

TeleTopLeft:
mov edx,[0199B298]
mov edx,[edx+1C]
mov ebx,[0199B298]
mov ebx,[ebx+20]
call NewTeleportXY

KamiExit:
popad
jmp 011A8860

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

017E85F8+70:
dd Kami

019AABD0:
dd ItemHook

[Disable]
017E85F8+70:
dd 011A8860

019AABD0:
dd PtInRect

Dealloc(Kami)
Dealloc(ItemHook)
Dealloc(GetMobXY)
Dealloc(NewTeleportXY)
Dealloc(PressKey)
Dealloc(TeleTopLeft)
Dealloc(ItemX)
Dealloc(ItemY)

hf.

Edited by Taku
  • Like 7

Share this post


Link to post

If you want combo attack, replace KeyPress function with this:

PressKey:
mov esi,[0199B39C]
push edx
push 00
call 0131A2E0
push 801D0000 // Combo
push 00
call 0131A2E0
ret
Edited by Taku
  • Like 3

Share this post


Link to post

I've been using this script for 3-4 days. but after today it just made me instantly DC on every character. Yes even flame wizard...

Is this just me or anyone else?

Share this post


Link to post

I've been using this script for 3-4 days. but after today it just made me instantly DC on every character. Yes even flame wizard...

Is this just me or anyone else?

go ch14

Share this post


Link to post

 

I've been using this script for 3-4 days. but after today it just made me instantly DC on every character. Yes even flame wizard...

 

Is this just me or anyone else?

 

go ch14

It only worked it ch4 but since today i just get way to fast DC's

Im only using godmode, unlim attack, kami loot.

Share this post


Link to post

 

 

 

 

I've been using this script for 3-4 days. but after today it just made me instantly DC on every character. Yes even flame wizard...

 

 

 

Is this just me or anyone else?

 

 

 

 

go ch14

 

It only worked it ch4 but since today i just get way to fast DC's

Im only using godmode, unlim attack, kami loot.

Some gm's checked ch14 yesterday, im not sure for now wait it out stay low i've encountered them while hacking LOL so be careful

Share this post


Link to post

Use this script to filter out invisible items in map, make sure to change channel/refresh map after enabling this script:

[Enable]
Alloc(Hook,64)
Label(Return)
Label(RealItem)

Hook:
cmp eax,00
jne RealItem
mov [esi+40],00
RealItem:
mov ecx,ebx
mov [esi+44],eax
jmp Return

0066DF7D:
jmp Hook
Return:

[Disable]
0066DF7D:
mov ecx,ebx
mov [esi+44],eax

DeAlloc(Hook)

 

Script to loot when X amount of item in map. This will also hide when other player enter the map.

// AIRRIDE Kami v110.1

// updated v114.1
// moopler.net

[Enable]
Alloc(Kami,128)
Alloc(ItemHook,128)
Alloc(GetMobXY,512)
Alloc(NewTeleportXY,128)
Alloc(PressKey,128)
Alloc(TeleTopLeft,128)
Alloc(ItemX,4)
Alloc(ItemY,4)
Label(GetMobXYFalse)
Label(GetMobXYTrue)
Label(TeleportEnd)
Label(NextMob)
Label(Loot)
Label(KamiExit)

Alloc(minike,4)
RegisterSymbol(minike)
Alloc(dupe,16)
Alloc(pls,16)

dupe:
dec [minike]
jmp GetMobXYFalse

pls:
mov [minike],#100
jmp GetMobXYFalse

define(CTRL,001D0000)
define(SHIFT,002A0000)
define(INSERT,01520000)
define(DEL,01530000)
define(HOME,01470000)
define(END,014F0000)
define(PAGEUP,01490000)
define(PAGEDOWN,01510000)
define(ALT,00380000)
define(Z,002C0000)

GetMobXY:
mov esi,[0199B290]
test esi,esi
je GetMobXYFalse

mov edx,[esi+10]
test edx,edx
je GetMobXYFalse
cmp [minike],00
jne dupe
push ebx
mov ebx,[0199B8D4]
mov ebx,[ebx+14]
cmp ebx,#10 // loot when X amount of item in map
pop ebx
jg pls

mov esi,[esi+28]
test esi,esi
je GetMobXYFalse
mov edx,[esi+04]
test edx,edx
je GetMobXYFalse
mov edx,[edx+1B8]
test edx,edx
je GetMobXYFalse
mov edx,[edx+24]
test edx,edx
je GetMobXYFalse
mov ebx,[edx+60]
or ebx,[edx+64]
test ebx,ebx
jne GetMobXYTrue
mov esi,[esi-0C]
test esi,esi
je GetMobXYFalse

NextMob:
mov edx,[esi+14]
test edx,edx
je GetMobXYFalse
mov edx,[edx+1B8]
test edx,edx
je GetMobXYFalse
mov edx,[edx+24]
test edx,edx
je GetMobXYFalse
mov ebx,[edx+60]
or ebx,[edx+64]
test ebx,ebx
jne GetMobXYTrue
mov esi,[esi+04]
test esi,esi
je GetMobXYFalse
jmp NextMob

GetMobXYFalse:
xor eax,eax
ret

GetMobXYTrue:
lea eax,[edx+58]
ret

NewTeleportXY:
mov esi,[01996DE4]
lea ecx,[esi+04]
call 01274CE0
test eax,eax
je TeleportEnd
push ebx
push edx
push 00
mov ecx,eax
call 012E8710
TeleportEnd:
ret

PressKey:
mov esi,[0199B39C]
push edx
push 00
call 0131A2E0
ret

Kami:
cmp dword ptr [esp],01199A4A
pushad
jne KamiExit
mov eax,[0199B28C]
mov eax,[eax+18]
cmp eax,01
jge TeleTopLeft
mov eax,[01996DE4]
test eax,eax
je KamiExit
call GetMobXY
test eax,eax
je Loot
mov ebx,[eax+4]
sub ebx,#0
mov edx,[eax]
sub edx,#50
call NewTeleportXY
mov edx,CTRL
Call PressKey
jmp KamiExit

Loot:
mov edx,Z
call PressKey
mov ebx,[ItemY]
mov edx,[ItemX]
call NewTeleportXY
jmp KamiExit

TeleTopLeft:
mov edx,[0199B298]
mov edx,[edx+1C]
mov ebx,[0199B298]
mov ebx,[ebx+20]
call NewTeleportXY

KamiExit:
popad
jmp 011A8860

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

017E85F8+70:
dd Kami

019AABD0:
dd ItemHook

[Disable]
017E85F8+70:
dd 011A8860

019AABD0:
dd PtInRect

Dealloc(Kami)
Dealloc(ItemHook)
Dealloc(GetMobXY)
Dealloc(NewTeleportXY)
Dealloc(PressKey)
Dealloc(TeleTopLeft)
Dealloc(ItemX)
Dealloc(ItemY)

hf.

Could you remove the option that hides me when theres more than 1 people on the map? Cuz I'm playing with a friend, and i can't loot or anything i keep killing but cant pick up anything =), if u could I really hate to bother like this

Share this post


Link to post
@YaBishSince93Power

Change the:
mov eax,[0199B28C]
mov eax,[eax+18]
cmp eax,01

too:

mov eax,[0199B28C]
mov eax,[eax+18]
cmp eax,02 // Amount of people u want to be in map to CC
Edited by Taku
  • Like 3

Share this post


Link to post

Advance Kami 114.1 

//Advance Kami V114.1
// original script by AIRRIDE
// additional customization and code refactoring by Franc[e]sco
// Taku Is Love, Taku is Life <3 Thanks to him now i can update scripts, Taku is god ! Thank you Taku ! 
define(KEY_NORMAL,0)
define(KEY_EXTENDED,1)
 
// you can add more virtual key codes by getting them here
// http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx
// for letters, the uppercase character is enough
define(VK_CONTROL,11)
 
// Kami Setting (optional)
 
// 1 if you want the autoattack to trigger combos
// 0 for normal attacks
define(Kami_HoldAttack,1)
 
// attack key
define(Kami_AttackKey,VK_CONTROL)
 
// KEY_EXTENDED if the attack key is an extended key (such as CTRL, ALT, etc...)
// for every other key, use KEY_NORMAL
// NOTE: I dont think this actually matters for maplestory keypresses, but w/e
define(Kami_AttackKeyType,KEY_EXTENDED)
 
// loot key
define(Kami_LootKey,'Z')
define(Kami_LootKeyType,KEY_NORMAL)
 
// X, Y offset (you usually wont need to change this)
define(Kami_RangeX,#50)
define(Kami_RangeY,#0)
 
// loot when items > ...
// Options
// set to -1 to only loot when monsters run out
// set to 30 for looting periodically but not when monsters run out
define(Kami_LootWhen,#-1)
 
// Adresses and offsets
 
define(TSingleton_CUserLocal___ms_pInstance,01996DE4)
define(TSingleton_CMobPool___ms_pInstance,0199B290)
define(TSingleton_CWndMan___ms_pInstance,0199B39C)
define(CWndMan__OnKey,0131A2E0)
define(GetVectorController,01274CE0)
define(TeleportFunc,012E8710)
define(TSingleton_CDropPool___ms_pInstance,0199B8D4)
define(pUpdateFunc,017E85F8+70)
define(UpdateFunc,011A8860)
define(UpdateHook_ret,01199A4A)
define(TSingleton_CWvsPhysicalSpace2D___ms_pInstance,0199B298)
define(pPtInRect,019AABD0)
define(PtInRectHook_ret,00666384)
define(Mob3Offset,1B8)
 
//--------------------------------------------------//
 
[Enable]
alloc(Kami,512)
label(TeleTopLeft)
alloc(ItemHook,128)
alloc(GetMobXY,512)
alloc(NewTeleportXY,128)
alloc(PressKey,128)
alloc(ItemX,4)
alloc(ItemY,4)
alloc(HoldAttack,1)
alloc(IsLooting,1)
alloc(LootWhen,4)
label(GetMobXYFalse)
label(GetMobXYTrue)
label(TeleportEnd)
label(NextMob)
label(Loot)
label(KamiExit)
label(NoLoot)
 
HoldAttack:
db Kami_HoldAttack
 
LootWhen:
dw Kami_LootWhen
 
IsLooting:
db 0
 
GetMobXY:
push esi
push edx
push ebx
mov esi,[TSingleton_CMobPool___ms_pInstance]
test esi,esi
je GetMobXYFalse
mov edx,[esi+10] // mob count
test edx,edx
je GetMobXYFalse
mov esi,[esi+28] // mob 1
test esi,esi
je GetMobXYFalse
sub esi,10 // mob 1 points to first mob struct + 0x10 for some reason
 
NextMob:
mov edx,[esi+14] // mob 2
test edx,edx
je GetMobXYFalse
mov edx,[edx+Mob3Offset] // mob 3
test edx,edx
je GetMobXYFalse
mov edx,[edx+24] // mob 4
test edx,edx
je GetMobXYFalse
mov ebx,[edx+60] // mob invx
or ebx,[edx+64] // mob invy
test ebx,ebx
jne GetMobXYTrue
mov esi,[esi+04] // next mob
test esi,esi
je GetMobXYFalse
jmp NextMob
 
GetMobXYFalse:
pop ebx
pop edx
pop esi
xor eax,eax
ret
 
GetMobXYTrue:
lea eax,[edx+58] // mob x
pop ebx
pop edx
pop esi
ret
 
NewTeleportXY:
mov esi,[TSingleton_CUserLocal___ms_pInstance]
lea ecx,[esi+04]
call GetVectorController
test eax,eax
je TeleportEnd
push ebx
push edx
push 00
mov ecx,eax
call TeleportFunc
 
TeleportEnd:
ret
 
// PressKey flags and internal stuff
define(KEY_PRESS,0)
define(KEY_UP,1)
define(MAPVK_VK_TO_VSC,0)
 
// void __stdcall PressKey(uint32_t virtual_key, uint32_t extended_flag, uint32_t transition_state)
PressKey:
push ebx // backup
push edx // backup
push esi // backup
push ecx // backup
 
mov edx, [esp+10+4] // edx = virtual keycode
mov esi, [esp+10+8] // esi = is extended keycode
mov ebx, [esp+10+C] // ebx = transition state flag
mov ecx, edx        // ecx = virtual keycode (will later contain the scancode)
 
// generate scancode with MapVirtualKeyA(virtual_key, MAPVK_VK_TO_VSC) << 16
// credits to Shadow and Waty
push MAPVK_VK_TO_VSC
push ecx
call MapVirtualKeyA
shl eax,#16
shl esi,#24 // extended flag
shl ebx,#31 // transition state
or eax, esi
or eax, ebx
mov ecx,eax
 
push ecx // lparam (keycode)
push edx // wparam (virtual keycode)
mov ecx,[TSingleton_CWndMan___ms_pInstance]
call CWndMan__OnKey
 
pop ecx // backup
pop esi // backup
pop edx // backup
pop ebx // backup
ret 000C
 
Kami:
cmp dword ptr [esp], UpdateHook_ret
pushad
jne KamiExit
 
mov eax,[TSingleton_CUserLocal___ms_pInstance]
test eax,eax
je KamiExit
call GetMobXY
test eax,eax
je Loot
 
cmp byte ptr [IsLooting], 1
je Loot
 
cmp dword ptr [LootWhen], #-1
je NoLoot
mov esi,[TSingleton_CDropPool___ms_pInstance]
mov esi,[esi+14] // item count offset (shouldnt change)
cmp esi,dword ptr [LootWhen]
jge Loot
 
NoLoot:
mov ebx,[eax+4]
sub ebx,Kami_RangeY
mov edx,[eax]
sub edx,Kami_RangeX
call NewTeleportXY
 
push KEY_PRESS          // transition_state
push Kami_AttackKeyType // extended_flag
push Kami_AttackKey     // virtual_key
call PressKey
 
cmp byte ptr [HoldAttack], 0
je KamiExit
 
push KEY_UP             // transition_state
push Kami_AttackKeyType // extended_flag
push Kami_AttackKey     // virtual_key
call PressKey
 
jmp KamiExit
 
Loot:
mov esi,[TSingleton_CDropPool___ms_pInstance]
mov esi,[esi+14] // item count offset (shouldnt change)
cmp esi,0
je TeleTopLeft
 
mov byte ptr [IsLooting], 1
 
push KEY_PRESS        // transition_state
push Kami_LootKeyType // extended_flag
push Kami_LootKey     // virtual_key
call PressKey
 
mov ebx,[ItemY]
mov edx,[ItemX]
call NewTeleportXY
jmp KamiExit
 
TeleTopLeft:
mov byte ptr [IsLooting], 0
mov edx,[TSingleton_CWvsPhysicalSpace2D___ms_pInstance]
mov edx,[edx+1C] // left offset (shouldnt change)
mov ebx,[TSingleton_CWvsPhysicalSpace2D___ms_pInstance]
mov ebx,[ebx+20] // top offset (shouldnt change)
call NewTeleportXY
 
KamiExit:
popad
jmp UpdateFunc
 
ItemHook:
cmp [esp],PtInRectHook_ret
jne PtInRect
push eax
mov eax,[esp+0C]
mov [ItemX],eax
mov eax,[esp+10]
mov [ItemY],eax
pop eax
jmp PtInRect
 
pUpdateFunc:
dd Kami
 
pPtInRect:
dd ItemHook
 
[Disable]
pUpdateFunc:
dd UpdateFunc
 
pPtInRect:
dd PtInRect
 
dealloc(Kami)
dealloc(ItemHook)
dealloc(GetMobXY)
dealloc(NewTeleportXY)
dealloc(PressKey)
dealloc(TeleTopLeft)
dealloc(ItemX)
dealloc(ItemY)
dealloc(HoldAttack)
dealloc(IsLooting)
dealloc(LootWhen)

 

 

Portal Kami 114.1 (First requires - portal disable check ticked)

// Portal Kami 114.1
[Enable]
Alloc(Hook,256)
Alloc(GetPortal,256)
Alloc(FakePortal,128)
Alloc(Portal,128)
Label(NextPortal)
Label(Return)
Label(Ending)
Label(Next)
Label(Exit)
 
Alloc(GetMobXY,512)
Label(GetMobXYFalse)
Label(GetMobXYTrue)
Label(NextMob)
 
GetPortal:
xor eax,eax
xor edi,edi
mov ecx,[0199B720]
mov ecx,[ecx+04]
jmp NextPortal
 
NextPortal:
cmp [ecx-04],eax
jbe Exit
mov esi,[ecx+eax*8+04]
cmp [esi+1C],#999999999
je Next
inc edi
cmp edi,00
jb Next
mov eax,esi
ret
 
Next:
inc eax
jmp NextPortal
 
Exit:
xor eax,eax
ret
 
GetMobXY:
mov esi,[0199B290]
test esi,esi
je GetMobXYFalse
mov edx,[esi+10]
test edx,edx
je GetMobXYFalse
mov esi,[esi+28]
test esi,esi
je GetMobXYFalse
mov edx,[esi+04]
test edx,edx
je GetMobXYFalse
mov edx,[edx+01B8]
test edx,edx
je GetMobXYFalse
mov edx,[edx+24]
test edx,edx
je GetMobXYFalse
mov ebx,[edx+60]
or ebx,[edx+64]
test ebx,ebx
jne GetMobXYTrue
mov esi,[esi-0C]
test esi,esi
je GetMobXYFalse
jmp NextMob
 
NextMob:
mov edx,[esi+14]
test edx,edx
je GetMobXYFalse
mov edx,[edx+01B8]
test edx,edx
je GetMobXYFalse
mov edx,[edx+24]
test edx,edx
je GetMobXYFalse
mov ebx,[edx+60]
or ebx,[edx+64]
test ebx,ebx
jne GetMobXYTrue
mov esi,[esi+04]
test esi,esi
je GetMobXYFalse
jmp NextMob
 
GetMobXYFalse:
xor eax,eax
ret
 
GetMobXYTrue:
lea eax,[edx+58]
ret
 
Hook:
sub esp,0C
push ebx
push esi
pushad
call GetMobXY
test eax,eax
je Ending
mov ebx,[eax]
mov [Portal+0C],ebx
mov ebx,[eax+04]
mov [Portal+10],ebx
call GetPortal
test eax,eax
je Ending
mov edi,eax
mov eax,[edi+24]
mov ebx,[edi+04]
push 00
push 00
push eax
push ebx
push 00
push 00
mov ecx,[01996DE4]
call 011DEF10
jmp Ending
 
Ending:
popad
jmp Return
 
FakePortal:
lea edi,[Portal]
jmp 011DF2C6
 
0131C270:
jmp Hook
Return:
 
011DF2B0:
jmp FakePortal
nop
 
[Disable]
DeAlloc(Hook)
DeAlloc(GetPortal)
DeAlloc(FakePortal)
DeAlloc(Portal)
DeAlloc(BlockSend)
 
0131C270:
sub esp,0C
push ebx
push esi
 
011DF2B0:
mov ecx,[0199B720]

 

Portal disable check

// Portal disable check v114.1
[Enable]
Alloc(BlockSend,16)
 
BlockSend:
ret 0004
 
011DF3EA:
call BlockSend
 
011DF1AC:
db 90 90 90 90 90 90
 
011DEF54+3:
db 74
 
[Disable]
DeAlloc(BlockSend)
 
011DF3EA:
call 005B51C0
 
011DF1AC:
jg 01193FB2
 
011DEF54+3:
db 75

 

Bypassles Tubi 30ms Adjustable

// Bypassless 30ms Tubi (adjustable)
// EMS v113.1
// Original GMS script by DBLmao

[enable]
globalalloc(Tubi,100)
globalalloc(Stop,4)
label(LetsSlack)
CreateThread(Tubi)

Stop:
dd 0

Tubi:
mov esi,[01996CC4]
test esi,esi
je LetsSlack
mov [esi+0000221C],00

LetsSlack:
push 10 // delay (adjust it to your liking)
call Sleep
cmp [Stop],1
jne Tubi
ret

[disable]
Stop:
dd 1

Edited by mitakassss
  • Like 4

Share this post


Link to post

kami instant dc lolz does anyone got a soultion please?

thx

Only use it in Channel 14.

Share this post


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