hahaha you think it XD
Printable View
cool..
mauro07 clear yours mps plz its full
For all this that sources used? : o I want to learn * - *
Original source Freiay.dll for Main 1.04J by MuGlobal , with new character Vampires (Freiya) / Pincof LolQuote:
;EasyCodeName=Module1,1
;;;;;;;;;;;;;;;;;;;;;;;;;;; VERSION 1.04j ;;;;;;;;;;;;;;;;;;;
.586
.Model flat, StdCall
Option CaseMap:none
Include \masm32\include\windows.inc
Include \masm32\include\user32.inc
Include \masm32\include\kernel32.inc
Include \masm32\include\masm32.inc
IncludeLib \masm32\lib\user32.lib
IncludeLib \masm32\lib\kernel32.lib
IncludeLib \masm32\lib\masm32.lib
Include \masm32\macros\MACROS.ASM
PutCanBeEquippedByFreiya Proto :DWord
CheckFreiyaCanEquipItem Proto :DWord, :DWord
FixClassID Proto :DWord
ChangeModelID2 Proto :DWord, :DWord
ChangeModelID Proto :DWord, :DWord, :DWord
LoadVampiressTextures Proto :DWord
LoadVampiressModel Proto :DWord
SetNameVampiress Proto :DWord, :DWord, :DWord
LoadVampiressLogo Proto :DWord
.Const
IniBuffer Equ 30H
.Data
;Buscar por CMP DWORD PTR DS:[EAX+BC],-1
; Setle Cl
Main1 DD 004019CAH ; 1.04j
;Buscar por FSTCW WORD PTR SS:[EBP-2]
Main2 DD 0073906CH ; 1.04j
;Buscar por MOV DWORD PTR DS:[ECX+8],-1
Main3 DD 0041FD65H ; 1.04j
;Buscar por MOV ECX,DWORD PTR SS:[EBP+20]
Main4 DD 00420024H ; 1.04j
;Buscar por CMP DWORD PTR DS:[EAX+4],0
Main5 DD 0041FF6CH ; 1.04j
;Buscar por SUB ESP,0C
; PUSH EBX
; MOV EBX,DWORD PTR SS:[ESP+14]
Main6 DD 0065CDC0H ; 1.04j
;Buscar por ADD EDX, 0A8H
Main7 DD 00403A56H ; 1.04j
;Buscar por PUSH 1
; PUSH 6C
Main8 DD 0052143DH ; 1.04j
;Buscar por MOV BYTE PTR SS:[EBP-10],0A
Main9 DD 0053217DH ; 1.04j
Main10 DD 00402380H ; 1.04j
;Buscar por AND EAX,7
Main11 DD 004570B0H ; 1.04j
;No se
Main12 DD 0053AEF0H ; 1.05g
Main13 DD 00553700H ; 1.05g
Main14 DD 005435E0H ; 1.05g
Main15 DD 00561830H ; 1.05g
;Buscar por AND EDX,1
; CMP EDX,1
Main16 DD 0052A78CH ; 1.04j
;Buscar por IMUL ECX,ECX,0F0
Main17 DD 004FF0EAH ; 1.04j
;Buscar por %s.bmd
LoadBMD DD 0062B803H ; 1.04j
;Buscar por CMP ECX,73
LoadTexture DD 0062B387H ; 1.04j
;Buscar por smd
LoadSMD DD 0062B799H ; 1.04j
;Esta justo arriba de LoadSMD
LoadSMDWithAnimation DD 0062B60EH ; 1.04j
;Buscar por SAR ECX,5
GetClassID DD 00532138H ; 1.04j
VampiressText DB "Freiya", 0
VampiressStr DB "25", 0
VampiressAgi DB "25", 0
VampiressVit DB "25", 0
VampiressEne DB "25", 0
VampiressDescription DB "Freiya combines different abilities of all Mu classes and truly is one of the most efficient characters for battles and hunting.", 0
VampiressClassText DB "Freiya", 0
CanBeEquipedMSG DB "Can be equipped by %s", 0
ModelFolder DB "Data\Player", 0
HelmClassText DB "HelmClass", 0
ArmorClassText DB "ArmorClass", 0
PantClassText DB "PantClass", 0
GloveClassText DB "GloveClass", 0
BootClassText DB "BootClass", 0
TextureFolder DB "Player", 0
LogoFolder DB "Data\Logo", 0
NewFaceModel DB "NewFace", 0
;NewFaceModel DB "NewFace06.bmd", 0
;NewFaceAnimation1 DB "NewFace07_000.smd", 0
EndText DB "end", 0
LogoFolder2 DB "Logo", 0
HelmClass2Text DB "HelmClass2", 0
ArmorClass2Text DB "ArmorClass2", 0
PantClass2Text DB "PantClass2", 0
GloveClass2Text DB "GloveClass2", 0
BootClass2Text DB "BootClass2", 0
Vampiress2ClassText DB "Alchemy Vampiress", 0
HelmClass3Text DB "HelmClass3", 0
ArmorClass3Text DB "ArmorClass3", 0
PantClass3Text DB "PantClass3", 0
GloveClass3Text DB "GloveClass3", 0
BootClass3Text DB "BootClass3", 0
Vampiress3ClassText DB "Acore Vampiress", 0
SpiritHelm DB "Spirit Helm", 0
SpiritArmor DB "Spirit Armor", 0
SpiritGloves DB "Spirit Gloves", 0
SpiritPants DB "Spirit Pants", 0
SpiritBoots DB "Spirit Boots", 0
HeavenWings DB "Heaven Wings", 0
SmallAxe DB "Small Axe", 0
VolcanoArmor DB "Volcano Armor", 0
VolcanoPants DB "Volcano Pants", 0
VolcanoBoots DB "Volcano Boots", 0
VolcanoGloves DB "Volcano Gloves", 0
LegendaryStaff DB "Legendary Staff", 0
ElementalShield DB "Elemental Shield", 0
RuneBlade DB "Rune Blade", 0
FairyWings DB "Fairy Wings", 0
SatanWings DB "Satan Wings", 0
ThreadID DD ?
lpAddress DD 802024H
lpOld DD ?
Buffer1 DB 30H Dup (0)
EBPDLL DB 30H Dup (0)
ModelsLoaded DD 0
LogoModelLoaded DD 0
.Data?
.Code
DllEntry Proc hInstDLL:HINSTANCE, reason:DWord, reserved1:DWord
Mov Eax, TRUE
Ret
DllEntry EndP
Init Proc
Local SType:DWord
Local FloatLocal:DWord
;Activamos todos los personajes
Mov Byte Ptr Ds:[7B0274CH], 5
Mov DWord Ptr Ds:[Buffer1], Eax
Mov Eax, DWord Ptr Ss:[Ebp + 8]
Mov SType, Eax
Switch SType
Case 1
;Eliminamos este offset, de esa forma al crear una freiya
;aparecera una freiya y no un DW.
Mov DWord Ptr Ds:[52AAB1H], 90909090H
Mov Word Ptr Ds:[52AAB5H], 909090H
Mov Byte Ptr Ds:[52AAB7H], 90H
;Aumentamos de 6 a 7 para Vampiress
Mov Byte Ptr Ds:[402A26H], 6 ; 1.04j
;Aumentamos a 7
Mov Byte Ptr Ds:[74D5E4H], 6 ; 1.04j
;Aumentamos a 7
Mov Byte Ptr Ds:[74D637H], 6 ; 1.04j
;Aumentamos a 7 otra vez
Mov Byte Ptr Ds:[402AD1H], 6 ; 1.04j
;Aumentamos a 7 otra vez
Mov Byte Ptr Ds:[4030E6H], 6 ; 1.04j
;Aumentamos a 7 otra vez
Mov Byte Ptr Ds:[4032B4H], 6 ; 1.04j
;Aumentamos a 7 otra vez
Mov Byte Ptr Ds:[4033AAH], 6 ; 1.04j
;Aumentamos a 7 otra vez
Mov Byte Ptr Ds:[40336DH], 6 ; 1.04j ESTARA MAL?
;Aumentamos loop de carga de botones
Mov Byte Ptr Ds:[402CE2H], 6 ; 1.04j
;Aumentando a 6 hacemos espacio de posicion
;para el boton vampiress
Mov Byte Ptr Ds:[402F82H], 6 ; 1.04j
;Aumentamos a 7
Mov Byte Ptr Ds:[40336DH], 6 ; 1.04j
;Aumentamos a 7
Mov Byte Ptr Ds:[4A06ACH], 6 ; 1.04j
;Al haber aumentado de 6 a 7, 7 seria 7B0
;por lo que aumentamos el 7B0 siguiente a 1310
Mov Byte Ptr Ds:[402A55H], 10H ; 1.04j
Mov Byte Ptr Ds:[402A56H], 13H ; 1.04j
;Aumentamos a 890
Mov Byte Ptr Ds:[402ABDH], 10H ; 1.04j
Mov Byte Ptr Ds:[402ABEH], 13H ; 1.04j
;Ahora todos los offsets que tengan 7B0 los
;pasaremos a 1310
;Los 890 los pasaremos a 13F0
Mov Byte Ptr Ds:[402DBDH], 10H ; 1.04j
Mov Byte Ptr Ds:[402DBEH], 13H ; 1.04j
Mov Byte Ptr Ds:[402DD8H], 10H ; 1.04j
Mov Byte Ptr Ds:[402DD9H], 13H ; 1.04j
Mov Byte Ptr Ds:[403132H], 10H ; 1.04j
Mov Byte Ptr Ds:[403133H], 13H ; 1.04j
Mov Byte Ptr Ds:[402FCFH], 10H ; 1.04j
Mov Byte Ptr Ds:[402FD0H], 13H ; 1.04j
Mov Byte Ptr Ds:[403413H], 10H ; 1.04j
Mov Byte Ptr Ds:[403414H], 13H ; 1.04j
Mov Byte Ptr Ds:[4DF36DH], 10H ; 1.04j
Mov Byte Ptr Ds:[4DF36EH], 13H ; 1.04j
Mov Byte Ptr Ds:[66E2D4H], 10H ; 1.04j
Mov Byte Ptr Ds:[66E2D5H], 13H ; 1.04j
Mov Byte Ptr Ds:[66E67CH], 10H ; 1.04j
Mov Byte Ptr Ds:[66E67DH], 13H ; 1.04j
Mov Byte Ptr Ds:[402FEDH], 0F0H ; 1.04j
Mov Byte Ptr Ds:[402FEEH], 13H ; 1.04j
Mov Byte Ptr Ds:[403437H], 0F0H ; 1.04j
Mov Byte Ptr Ds:[403438H], 13H ; 1.04j
;Model Vampiress
;Mov Byte Ptr Ds:[5C5698H], 7 ; 1.05g
;Mov Byte Ptr Ds:[5C56A4H], 7 ; 1.05g
;Mov Byte Ptr Ds:[5C40CFH], 7 ; 1.05g
;Aumentamos a 0AF para que soporte el boton de
;vampiress (0AE)
Mov Byte Ptr Ds:[510BE2H], 0AEH ; 1.04j
Mov Byte Ptr Ds:[513BD0H], 0AEH ; 1.04j
Mov Byte Ptr Ds:[52AAA8H], 0AEH ; 1.04j
;Nopeamos estos offsets, asi no sobreescribira
;el Texto de Vampiress por "Error:Cord"
Mov DWord Ptr Ds:[5325A4H], 90909090H ; 1.04j
Mov DWord Ptr Ds:[5325A8H], 90909090H ; 1.05g
Mov DWord Ptr Ds:[5325ACH], 90909090H ; 1.05g
Mov Word Ptr Ds:[5325B0H], 9090H ; 1.04j
Mov Byte Ptr Ds:[5325B2H], 90H ; 1.04j
;Aumentamos a 7 para mostrar "Can be Equiped by
;Vampiress
Mov Byte Ptr Ds:[5AD4ACH], 6 ; 1.04j
Mov Byte Ptr Ds:[5AD4B1H], 6 ; 1.04j
Mov Byte Ptr Ds:[5AD9FFH], 6 ; 1.04j
;Modificamos a 1C para que no problemas de stack
;Mov Byte Ptr Ds:[5683CFH], 1CH
;Aumentamos el espacio de memoria para soportar texturas y modelos
;nuevos
Mov DWord Ptr Ds:[62B94DH], 97597468H ; 1.04j
Case 2
;Este case pone las posiciones del boton Vampiress
;Cambia la posicion del boton de summoner y pone
;la del vampiress abajo del todo
;Boton Vampiress
Mov Byte Ptr Ds:[865302H], 4DH ; 1.05g
Mov Byte Ptr Ds:[86530AH], 33H ; 1.05g
Mov Byte Ptr Ds:[865312H], 33H ; 1.05g
Mov Byte Ptr Ds:[86531AH], 4DH ; 1.05g
;Boton Summoner
Mov Byte Ptr Ds:[865222H], 93H ; 1.05g
Mov Byte Ptr Ds:[86522AH], 86H ; 1.05g
Mov Byte Ptr Ds:[865232H], 86H ; 1.05g
Mov Byte Ptr Ds:[86523AH], 93H ; 1.05g
;El boton de summoner se ponia en la posicion
;del vampiress por eso la cambio
;Restauro lo que borre haciendo el call
Mov Eax, DWord Ptr Ds:[Ebp + 34H]
Add Eax, 145H
Case 3
Mov Eax, DWord Ptr Ds:[Ebp + 14H]
Mov Ecx, DWord Ptr Ds:[Ebp + 10H]
Mov Edx, DWord Ptr Ds:[Ebp + 0CH]
Invoke SetNameVampiress, Ecx, Edx, Eax
Case 4
Push 0
Push 1
Push 0
Push 0
Mov Eax, DWord Ptr Ds:[Ebp + 18H]
Mov Ecx, DWord Ptr Ds:[Eax + 890H] ; Character Class
Cmp Ecx, 5
Je VampiressClass
Shl Ecx, 4
Mov DWord Ptr Ds:[EBPDLL], Ebp
Mov Ebp, DWord Ptr Ds:[Ebp + 1CH]
Lea Edx, DWord Ptr Ss:[Ebp + Ecx - 54H]
Mov Ebp, DWord Ptr Ds:[EBPDLL]
Mov Eax, DWord Ptr Ds:[Ebp + 14H] ;Contador
Mov Ecx, DWord Ptr Ds:[Edx + Eax * 4] ;Str, Agi, Vit, Energy.
Continue:
Push Ecx
Mov Edx, DWord Ptr Ds:[Ebp + 10H]
Push Edx
Mov Eax, DWord Ptr Ds:[Ebp + 0CH]
Add Eax, 36H
Mov FloatLocal, Eax
Fild FloatLocal
Fdiv DWord Ptr Ds:[78F5C8H] ; 1.04j
Call Main2
Push Eax
Call Main3
Mov Ecx, Eax
Call Main4
Push - 1
Call Main3
Mov Ecx, Eax
Call Main5
Jmp Finish
VampiressClass:
Shl Ecx, 4
Mov DWord Ptr Ds:[EBPDLL], Ebp
Mov Ebp, DWord Ptr Ds:[Ebp + 1CH]
Lea Edx, DWord Ptr Ss:[Ebp + Ecx - 54H]
Mov Ebp, DWord Ptr Ds:[EBPDLL]
Mov Eax, DWord Ptr Ds:[Ebp + 14H] ;Contador
Cmp Eax, 0
Je VampiressStrenght
Cmp Eax, 1
Je VampiressAgility
Cmp Eax, 2
Je VampiressVitality
Cmp Eax, 3
Je VampiressEnergy
Jmp Finish
VampiressStrenght:
Lea Ecx, VampiressStr
Jmp Continue
VampiressAgility:
Lea Ecx, VampiressAgi
Jmp Continue
VampiressVitality:
Lea Ecx, VampiressVit
Jmp Continue
VampiressEnergy:
Lea Ecx, VampiressEne
Jmp Continue
Finish:
Case 5
Mov Eax, DWord Ptr Ds:[Buffer1]
Cmp Byte Ptr Ds:[Eax], "E"
Jnz Finish2
Cmp Byte Ptr Ds:[Eax + 1], "x"
Jnz Finish2
Cmp Byte Ptr Ds:[Eax + 2], "c"
Jnz Finish2
Cmp Byte Ptr Ds:[Eax + 3], "e"
Jnz Finish2
Cmp Byte Ptr Ds:[Eax + 4], "s"
Jnz Finish2
Cmp Byte Ptr Ds:[Eax + 5], "s"
Jnz Finish2
Cmp Byte Ptr Ds:[Eax + 6], "i"
Jnz Finish2
Cmp Byte Ptr Ds:[Eax + 7], "v"
Jnz Finish2
Cmp Byte Ptr Ds:[Eax + 8], "e"
Jnz Finish2
Lea Eax, VampiressDescription
Finish2:
Mov Ecx, DWord Ptr Ds:[Ebp + 10H]
Push Ecx ;4B
Mov Ecx, DWord Ptr Ds:[Ebp + 1CH]
Push Ecx ;4B
Mov Edx, DWord Ptr Ds:[Ebp + 14H]
Push Edx ; 00868AF4
Push Eax
Call Main6
Add Esp, 10H
Mov Edx, DWord Ptr Ds:[Ebp + 0CH]
Mov DWord Ptr Ds:[Edx + 92CH], Eax
;Mov Ecx, DWord Ptr Ds:[Ebp + 0CH]
;Call Main7
Mov Eax, DWord Ptr Ds:[Ebp + 0CH]
Mov Cl, Byte Ptr Ds:[Eax + 890H]
Mov Byte Ptr Ds:[74CF274H], Cl
Push 0
Push 0
Push 0
Xor Edx, Edx
Mov Dl, Byte Ptr Ds:[74CF274H] ; Class
Cmp Dl, 5
Je ItsVampiressLogo
Jmp NormalCharacter
ItsVampiressLogo:
Push 623EH ; ID del Modelo Logo de la vampiress
Jmp Continue9232
NormalCharacter:
Add Edx, 0A8H
Push Edx
Continue9232:
Push 74CF068H
Call Main16
Add Esp, 14H
Mov Byte Ptr Ds:[74CF124H], 0
Push 1
Push 74CF068H
Call Main17
Add Esp, 8
Case 6
Cmp Byte Ptr Ds:[74CF274H], 5 ; 1.04j
Jnz IsNotVampiress
Mov Eax, DWord Ptr Ds:[Ebp + 0CH]
Mov DWord Ptr Ds:[Eax + 1CH], 0
Mov Eax, DWord Ptr Ds:[Ebp + 0CH]
Mov DWord Ptr Ds:[Eax + 20H], 0
Mov Eax, DWord Ptr Ds:[Ebp + 0CH]
Mov DWord Ptr Ds:[Eax + 24H], 0C2200000H
Mov Eax, DWord Ptr Ds:[Ebp + 0CH]
Mov DWord Ptr Ds:[Eax + 0CH], 40BCCCCDH
IsNotVampiress:
Push 0
Mov Edx, DWord Ptr Ds:[Ebp + 0CH]
Push Edx
Push 74CF068H ; 1.04j
Call Main8
Add Esp, 0CH
Case 7
;Este proc cambia todos los Dark Wizzard por
;Vampiress. Sin sustituirlos.
Mov Eax, DWord Ptr Ds:[Ebp + 0CH]
And Eax, 0FFH
Cmp Eax, 5
Je IsVampiress
Cmp Eax, 0EH
Je IsVampiress2
Cmp Eax, 1EH
Je IsVampiress3
Jmp IsNotVampiress2
IsVampiress:
Lea Eax, VampiressClassText
Mov DWord Ptr Ds:[Esp + 0CH], 005325B3H ; 1.04j
;Modifico la direccion de retorno para saltarme
;todas las modificaciones de text.
Jmp Finish3
IsVampiress2:
Lea Eax, Vampiress2ClassText
Mov DWord Ptr Ds:[Esp + 0CH], 005325B3H ; 1.04j
;Modifico la direccion de retorno para saltarme
;todas las modificaciones de text.
Jmp Finish3
IsVampiress3:
Lea Eax, Vampiress3ClassText
Mov DWord Ptr Ds:[Esp + 0CH], 005325B3H ; 1.04j
;Modifico la direccion de retorno para saltarme
;todas las modificaciones de text.
Jmp Finish3
IsNotVampiress2:
Push Eax
Call Main9
Add Esp, 4
Finish3:
Case 8
Cmp Cl, 1
Jnz Finish5
Lea Eax, DWord Ptr Ss:[Ebp + 1CH]
Lea Ecx, DWord Ptr Ss:[Ebp + 18H]
Push Eax
Push Ecx
Mov Ecx, 750DF88H ; 1.04j
Mov DWord Ptr Ss:[Ebp + 14H], 15H
Call Main10
Mov Eax, DWord Ptr Ds:[Eax]
Mov Ecx, DWord Ptr Ds:[750DF8CH] ; 1.04j
Cmp Eax, Ecx
Je @1
Add Eax, 10H
Jmp @2
@1:
Mov Eax, 750DF98H ; 1.04j
@2:
Lea Eax, VampiressText
Mov Esi, 75665CH ; 1.04j
Cmp Eax, Ebx
Je @3
Mov Esi, Eax
@3:
Lea Edx, DWord Ptr Ss:[Ebp + 10H]
Mov DWord Ptr Ss:[Ebp + 10H], Ebp
Push Edx
Lea Eax, DWord Ptr Ss:[Ebp + 0CH]
Push Eax
Mov Ecx, 750DF88H ; 1.04j
Call Main10
Mov Eax, DWord Ptr Ds:[Eax]
Mov Ecx, DWord Ptr Ds:[750DF8CH] ; 1.04j
Cmp Eax, Ecx
Je @4
Add Eax, 10H
Jmp @5
@4:
Mov Eax, 750DF98H ; 1.04j
@5:
Lea Eax, CanBeEquipedMSG
Cmp Eax, Ebx
Jnz @6
Jmp @7
@6:
Ret
;Retorna ahi
;0057B043 | > \56 | Push Esi
@7:
Ret
;Retorna ahi
;0057B03E | > \ B8 84668000 | Mov Eax, mainVAMP.00806684
Finish5:
;Retornar en Cmp cl, 2
;0057ABB7 | > \80F9 02 | Cmp Cl, 2
Case 9
Mov Edx, DWord Ptr Ds:[Ebp + 0CH]
Xor Eax, Eax
Mov Al, Byte Ptr Ds:[Edx + 20CH]
Push Eax
Call Main11
Add Esp, 4
Cmp Eax, 4
Je DarkLord11
Cmp Eax, 5
Je Vampiress
Jmp NoCharacter
NoCharacter:
Xor Eax, Eax
Jmp Finish11
DarkLord11:
Mov Eax, 1
Jmp Finish11
Vampiress:
Mov Eax, 1
;Aсadimos 1 para despues checkear y diferenciar
;la vampiress de los demas characters asi le doy
;la velocidad especial.
;Le ponemos 28 para que la Vampiress este siempre corriendo.
Mov Byte Ptr Ds:[Edx + 24H], 28H
Mov Byte Ptr Ds:[Edx + 25H], 1
Jmp Finish11
Finish11:
Case 10H
;Este proc setea las velocidades de los characters
Mov Eax, DWord Ptr Ds:[Ebp + 0CH]
Xor Ecx, Ecx
Mov Cl, Byte Ptr Ds:[Eax + 24H]
Cmp Ecx, 28H ; Esta corriendo? Si es mayor de 28 SI
Jge ItsRunning
Mov Eax, 41400000H ;Velocidad normal de Andar
Jmp Finish12
ItsRunning:
Cmp Byte Ptr Ds:[Eax + 25H], 1 ; 1 = Es Vampiress
Je Vampiress22
Mov Eax, 41700000H ;Velocidad Correr
Jmp Finish12
Vampiress22:
Mov Eax, 41910000H ;Velocidad Vampiress Correr
Jmp Finish12
Finish12:
Case 12H
;Este proc tambien habilita skills para Vampiress
;como Drain Life
Mov Eax, DWord Ptr Ds:[Buffer1]
Cmp Eax, 5
Je GoodClass2 ;Esa class puede usar ese skill
Cmp Eax, 6
Je GoodClass2
Mov DWord Ptr Ds:[Esp + 50H], 0
Ret ;Le ponemos 0 para que salte el JE de afuera.
GoodClass2:
Ret
Case 13H
;Lo hemos borrado asi que lo ponemos
Cmp Ebx, 2
Je GoodClass3
Cmp Ebx, 6
Je VampiressSkills
Cmp Ebx, 1
Je OthersClass
Cmp Ebx, 3
Je OthersClass
Cmp Ebx, 4
Je OthersClass
Test Ebx, Ebx
Je OthersClass2
Cmp Ebx, 3
Je OthersClass2
Cmp Ebx, 5
Je OthersClass2
Cmp Esi, 43H
Jl Finish14
Cmp Esi, 48H
Jg Finish14
CheckFinalSkills:
Mov DWord Ptr Ds:[EBPDLL], Ebp
Mov Edi, DWord Ptr Ss:[Esp + 2CH]
Push Edi
Push Esi
Mov Ebp, DWord Ptr Ds:[Ebp + 0CH]
Push Ebp
Call Main15
Add Esp, 0CH
Mov Ebp, DWord Ptr Ds:[EBPDLL]
Ret ;Retorna en 005683CC
OthersClass:
Mov DWord Ptr Ds:[EBPDLL], Ebp
Mov Edi, DWord Ptr Ss:[Esp + 2CH]
Push Edi
Push Esi
Mov Ebp, DWord Ptr Ds:[Ebp + 0CH]
Push Ebp
Call Main14
Add Esp, 0CH
Mov Ebp, DWord Ptr Ds:[EBPDLL]
OthersClass2:
Mov DWord Ptr Ds:[EBPDLL], Ebp
Mov Edi, DWord Ptr Ss:[Esp + 2CH]
Push Edi
Push Esi
Mov Ebp, DWord Ptr Ds:[Ebp + 0CH]
Push Ebp
Call Main13
Add Esp, 0CH
Mov Ebp, DWord Ptr Ds:[EBPDLL]
Jmp CheckFinalSkills
VampiressSkills:
Cmp Byte Ptr Ds:[Esp - 0CH], 1BH ;Greater Defense
Je ElfSkill
Cmp Byte Ptr Ds:[Esp - 0CH], 1CH ;Greater Attack
Je ElfSkill
Cmp Byte Ptr Ds:[Esp - 0CH], 0D6H ;Drain Life
Je SummonerSkill
Cmp Byte Ptr Ds:[Esp - 0CH], 0D9H ;Reflect
Je SummonerSkill
Cmp Byte Ptr Ds:[Esp - 0CH], 40H ;Increase Critical DMG
Je DarkLordSkill
Cmp Byte Ptr Ds:[Esp - 0CH], 10H ;Mana Shield
Je DarkWizzardSkill
Cmp Byte Ptr Ds:[Esp - 0CH], 30H ;Greater Fortitude
Je DarkKnightSkill
Cmp Byte Ptr Ds:[Esp - 0CH], 0EEH ;Bats (Birds)
Je DarkLordSkill
Jmp Finish14
DarkKnightSkill:
Mov DWord Ptr Ds:[EBPDLL], Ebp
Mov Edi, DWord Ptr Ss:[Esp + 2CH]
Push Edi
Push Esi
Mov Ebp, DWord Ptr Ds:[Ebp + 0CH]
Push Ebp
Call Main14
Mov Ebp, DWord Ptr Ds:[EBPDLL]
Ret ; Retornar aqui 00568400
DarkWizzardSkill:
Mov DWord Ptr Ds:[EBPDLL], Ebp
Mov Edi, DWord Ptr Ss:[Esp + 2CH]
Push Edi
Push Esi
Mov Ebp, DWord Ptr Ds:[Ebp + 0CH]
Push Ebp
Call Main13
Mov Ebp, DWord Ptr Ds:[EBPDLL]
Ret ; Retornar aqui 00568400
DarkLordSkill:
Mov DWord Ptr Ds:[EBPDLL], Ebp
Mov Edi, DWord Ptr Ss:[Esp + 2CH]
Push Edi
Push Esi
Mov Ebp, DWord Ptr Ds:[Ebp + 0CH]
Push Ebp
Call Main14
Mov Ebp, DWord Ptr Ds:[EBPDLL]
Ret ; Retornar aqui 00568400
ElfSkill:
Mov DWord Ptr Ds:[EBPDLL], Ebp
Mov Edi, DWord Ptr Ss:[Esp + 28H]
Push Edi
Push Esi
Mov Ebp, DWord Ptr Ds:[Ebp + 0CH]
Push Ebp
Call Main12
Mov Ebp, DWord Ptr Ds:[EBPDLL]
Ret ; Retornar aqui 00568400
SummonerSkill:
Mov DWord Ptr Ds:[EBPDLL], Ebp
Mov Edi, DWord Ptr Ss:[Esp + 28H]
Push Edi
Push Esi
Mov Ebp, DWord Ptr Ds:[Ebp + 0CH]
Push Ebp
Call Main13
Mov Ebp, DWord Ptr Ds:[EBPDLL]
Ret ; Retornar aqui 00568400
GoodClass3:
;Lo hemos borrado asi que lo ponemos
Mov Edi, DWord Ptr Ss:[Esp + 24H]
Finish14:
Ret
Case 14H ;Este case carga el modelo de la Vampiress
;con mis nuevas IDs asi no reemplaza nada
Invoke LoadVampiressModel, 0
Case 15H ;Este case carga las texturas de la Vampiress
;con mis nuevas IDs asi no reemplaza nada
Invoke LoadVampiressTextures, 0
Case 16H ; Este case cambia las IDs antiguas de los modelos
;a las nuevas, solo en el caso de que sea Vampiress
Mov Eax, DWord Ptr Ds:[Ebp + 0CH] ; Local2
Mov Edx, DWord Ptr Ds:[Ebp + 10H] ; Cabeza, Cuerpo, Guantes, etc
Mov Ecx, DWord Ptr Ds:[Ebp + 14H] ; Class
Invoke ChangeModelID, Eax, Edx, Ecx
Case 17H ; Este case tambien cambia las IDs antiguas de los modelos
;a las nuevas, solo en el caso de que sea Vampiress
Mov Eax, DWord Ptr Ds:[Ebp + 0CH] ; Class
Mov Edx, DWord Ptr Ds:[Ebp + 10H] ; Local1
Invoke ChangeModelID2, Eax, Edx
Case 18H ; Fixea la ID de la class
Mov Eax, DWord Ptr Ds:[Ebp + 0CH] ; Class ID
Invoke FixClassID, Eax
Case 19H
Invoke LoadVampiressLogo, 0
Case 20H
Mov Eax, DWord Ptr Ds:[Ebp + 0CH]
Mov Edx, DWord Ptr Ds:[Ebp + 10H]
Invoke CheckFreiyaCanEquipItem, Eax, Edx
Case 21H
Mov Eax, DWord Ptr Ds:[Ebp + 0CH] ; ItemName
Invoke PutCanBeEquippedByFreiya, Eax
EndSw
Ret
Init EndP
SetNameVampiress Proc Counter:DWord, Value2:DWord, Value3:DWord
;Este case cambia el texto Blade Knight por Vampiress
;en los botones de creacion
Mov Eax, DWord Ptr Ds:[Buffer1] ;En Buffer1 esta el nombre de la class
Cmp Byte Ptr Ds:[Eax], "S"
Jnz Finish
Cmp Byte Ptr Ds:[Eax + 1], "o"
Jnz Finish
Cmp Byte Ptr Ds:[Eax + 2], "u"
Jnz Finish
Cmp Byte Ptr Ds:[Eax + 3], "l"
Jnz Finish
Cmp Byte Ptr Ds:[Eax + 4], " "
Jnz Finish
Cmp Byte Ptr Ds:[Eax + 5], "M"
Jnz Finish
Cmp Byte Ptr Ds:[Eax + 6], "a"
Jnz Finish
Cmp Byte Ptr Ds:[Eax + 7], "s"
Jnz Finish
Cmp Byte Ptr Ds:[Eax + 8], "t"
Jnz Finish
Cmp Byte Ptr Ds:[Eax + 9], "e"
Jnz Finish
Cmp Byte Ptr Ds:[Eax + 0AH], "r"
Jnz Finish
Jmp Continue
Finish:
;No es Blade Knight
Mov Ecx, Value3
Push Ecx
Push Eax
Mov Ecx, Counter
IMul Ecx, Ecx, 0E0H
Mov Edx, Value2
Lea Ecx, DWord Ptr Ds:[Edx + Ecx + 270H]
Call Main1
Jmp FinishNOW
Continue:
;Es Blade Knight lo paso a Vampiress
Mov Ecx, Value3
Push Ecx
Lea Eax, VampiressText
Push Eax
Mov Ecx, Counter
IMul Ecx, Ecx, 0E0H
Mov Edx, Value2
Lea Ecx, DWord Ptr Ds:[Edx + Ecx + 270H]
Call Main1
FinishNOW:
Ret
SetNameVampiress EndP
LoadVampiressModel Proc Nothing:DWord
;Comprobamos si los modelos ya estan cargados, si es asi FUERA
Cmp ModelsLoaded, 1
Je Finish
;Cargamos la Cabeza (Casco)
Push 6 ; Vampiress
Lea Eax, HelmClassText ; HelmClass
Push Eax
Lea Edx, ModelFolder ; Ruta de donde se encuentra el modelo
Push Edx
Push 632FH ; ID del modelo
Call LoadBMD
Add Esp, 10H
;Cargamos la Armadura(Cuerpo)
Push 6 ; Vampiress
Lea Eax, ArmorClassText ; ArmorClass
Push Eax
Lea Edx, ModelFolder ; Ruta de donde se encuentra el modelo
Push Edx
Push 6330H ; ID del modelo
Call LoadBMD
Add Esp, 10H
;Cargamos los Pantalones
Push 6 ; Vampiress
Lea Eax, PantClassText ; PantClass
Push Eax
Lea Edx, ModelFolder ; Ruta de donde se encuentra el modelo
Push Edx
Push 6331H ; ID del modelo
Call LoadBMD
Add Esp, 10H
;Cargamos los Guantes
Push 6 ; Vampiress
Lea Eax, GloveClassText ; GloveClass
Push Eax
Lea Edx, ModelFolder ; Ruta de donde se encuentra el modelo
Push Edx
Push 6332H ; ID del modelo
Call LoadBMD
Add Esp, 10H
;Cargamos las Botas
Push 6 ; Vampiress
Lea Eax, BootClassText ; BootClass
Push Eax
Lea Edx, ModelFolder ; Ruta de donde se encuentra el modelo
Push Edx
Push 6333H ; ID del modelo
Call LoadBMD
Add Esp, 10H
;;;;;;
;;;;;; A PARTIR DE AQUI CARGAMOS LOS MODELOS DE LA 2є EVOLUCION
;;Cargamos la Cabeza (Casco) de la 2є Evolucion
; Push 6 ; Vampiress
; Lea Eax, HelmClass2Text ; HelmClass2
; Push Eax
; Lea Edx, ModelFolder ; Ruta de donde se encuentra el modelo
; Push Edx
; Push 6334H ; ID del modelo
; Call LoadBMD
; Add Esp, 10H
;;Cargamos la Armadura(Cuerpo) de la 2є Evolucion
; Push 6 ; Vampiress
; Lea Eax, ArmorClass2Text ; ArmorClass2
; Push Eax
; Lea Edx, ModelFolder ; Ruta de donde se encuentra el modelo
; Push Edx
; Push 6335H ; ID del modelo
; Call LoadBMD
; Add Esp, 10H
;;Cargamos los Pantalones de la 2є Evolucion
; Push 6 ; Vampiress
; Lea Eax, PantClass2Text ; PantClass2
; Push Eax
; Lea Edx, ModelFolder ; Ruta de donde se encuentra el modelo
; Push Edx
; Push 6336H ; ID del modelo
; Call LoadBMD
; Add Esp, 10H
;;Cargamos los Guantes de la 2є Evolucion
; Push 6 ; Vampiress
; Lea Eax, GloveClass2Text ; GloveClass2
; Push Eax
; Lea Edx, ModelFolder ; Ruta de donde se encuentra el modelo
; Push Edx
; Push 6337H ; ID del modelo
; Call LoadBMD
; Add Esp, 10H
;;Cargamos las Botas de la 2є Evolucion
; Push 6 ; Vampiress
; Lea Eax, BootClass2Text ; BootClass2
; Push Eax
; Lea Edx, ModelFolder ; Ruta de donde se encuentra el modelo
; Push Edx
; Push 6338H ; ID del modelo
; Call LoadBMD
; Add Esp, 10H
;;;;;; A PARTIR DE AQUI CARGAMOS LOS MODELOS DE LA 3є EVOLUCION
; Push 6 ; Vampiress
; Lea Eax, HelmClass3Text ; HelmClass3
; Push Eax
; Lea Edx, ModelFolder ; Ruta de donde se encuentra el modelo
; Push Edx
; Push 6339H ; ID del modelo
; Call LoadBMD
; Add Esp, 10H
;;Cargamos la Armadura(Cuerpo) de la 3є Evolucion
; Push 6 ; Vampiress
; Lea Eax, ArmorClass3Text ; ArmorClass3
; Push Eax
; Lea Edx, ModelFolder ; Ruta de donde se encuentra el modelo
; Push Edx
; Push 633AH ; ID del modelo
; Call LoadBMD
; Add Esp, 10H
;;Cargamos los Pantalones de la 3є Evolucion
; Push 6 ; Vampiress
; Lea Eax, PantClass3Text ; PantClass3
; Push Eax
; Lea Edx, ModelFolder ; Ruta de donde se encuentra el modelo
; Push Edx
; Push 633BH ; ID del modelo
; Call LoadBMD
; Add Esp, 10H
;;Cargamos los Guantes de la 3є Evolucion
; Push 6 ; Vampiress
; Lea Eax, GloveClass3Text ; GloveClass3
; Push Eax
; Lea Edx, ModelFolder ; Ruta de donde se encuentra el modelo
; Push Edx
; Push 633CH ; ID del modelo
; Call LoadBMD
; Add Esp, 10H
;;Cargamos las Botas de la 3є Evolucion
; Push 6 ; Vampiress
; Lea Eax, BootClass3Text ; BootClass3
; Push Eax
; Lea Edx, ModelFolder ; Ruta de donde se encuentra el modelo
; Push Edx
; Push 633DH ; ID del modelo
; Call LoadBMD
; Add Esp, 10H
Mov ModelsLoaded, 1
Finish:
Ret
LoadVampiressModel EndP
LoadVampiressTextures Proc Nothing:DWord
;Textura para la cabeza
Push 1
Push 2600H
Push 2901H
Lea Eax, TextureFolder
Push Eax
Push 632FH ; ID del modelo
Call LoadTexture
Add Esp, 14H
;Textura para la armadura
Push 1
Push 2600H
Push 2901H
Lea Eax, TextureFolder
Push Eax
Push 6330H ; ID del modelo
Call LoadTexture
Add Esp, 14H
;Textura para los pantalones
Push 1
Push 2600H
Push 2901H
Lea Eax, TextureFolder
Push Eax
Push 6331H ; ID del modelo
Call LoadTexture
Add Esp, 14H
;Textura para los guantes
Push 1
Push 2600H
Push 2901H
Lea Eax, TextureFolder
Push Eax
Push 6332H ; ID del modelo
Call LoadTexture
Add Esp, 14H
;Textura para las botas
Push 1
Push 2600H
Push 2901H
Lea Eax, TextureFolder
Push Eax
Push 6333H ; ID del modelo
Call LoadTexture
Add Esp, 14H
;;A PARTIR DE AQUI CARGAMOS LAS TEXTURAS PARA LA 2є EVOLUCION
;;Textura para la cabeza
; Push 1
; Push 2600H
; Push 2901H
; Lea Eax, TextureFolder
; Push Eax
; Push 6334H ; ID del modelo
; Call LoadTexture
; Add Esp, 14H
;;Textura para la armadura
; Push 1
; Push 2600H
; Push 2901H
; Lea Eax, TextureFolder
; Push Eax
; Push 6335H ; ID del modelo
; Call LoadTexture
; Add Esp, 14H
;;Textura para los pantalones
; Push 1
; Push 2600H
; Push 2901H
; Lea Eax, TextureFolder
; Push Eax
; Push 6336H ; ID del modelo
; Call LoadTexture
; Add Esp, 14H
;;Textura para los guantes
; Push 1
; Push 2600H
; Push 2901H
; Lea Eax, TextureFolder
; Push Eax
; Push 6337H ; ID del modelo
; Call LoadTexture
; Add Esp, 14H
;;Textura para las botas
; Push 1
; Push 2600H
; Push 2901H
; Lea Eax, TextureFolder
; Push Eax
; Push 6338H ; ID del modelo
; Call LoadTexture
; Add Esp, 14H
;;A PARTIR DE AQUI CARGAMOS LAS TEXTURAS PARA LA 3є EVOLUCION
; Push 1
; Push 2600H
; Push 2901H
; Lea Eax, TextureFolder
; Push Eax
; Push 6339H ; ID del modelo
; Call LoadTexture
; Add Esp, 14H
;;Textura para la armadura
; Push 1
; Push 2600H
; Push 2901H
; Lea Eax, TextureFolder
; Push Eax
; Push 633AH ; ID del modelo
; Call LoadTexture
; Add Esp, 14H
;;Textura para los pantalones
; Push 1
; Push 2600H
; Push 2901H
; Lea Eax, TextureFolder
; Push Eax
; Push 633BH ; ID del modelo
; Call LoadTexture
; Add Esp, 14H
;;Textura para los guantes
; Push 1
; Push 2600H
; Push 2901H
; Lea Eax, TextureFolder
; Push Eax
; Push 633CH ; ID del modelo
; Call LoadTexture
; Add Esp, 14H
;;Textura para las botas
; Push 1
; Push 2600H
; Push 2901H
; Lea Eax, TextureFolder
; Push Eax
; Push 633DH ; ID del modelo
; Call LoadTexture
; Add Esp, 14H
Ret
LoadVampiressTextures EndP
ChangeModelID Proc Local2:DWord, SType:DWord, Class:DWord
Local Switch2:DWord
;SType es la parte del item : cabeza, pantalones, armadura, etc
Mov Eax, Class
And Eax, 0FFH
Cmp Eax, 5
Je Vampiress
Cmp Eax, 7 ; Soul Master
Je SecondClass
Cmp Eax, 8 ; Blade Knight
Je SecondClass
Cmp Eax, 9 ; Muse Elf
Je SecondClass
Cmp Eax, 0DH ; Bloody Summoner
Je SecondClass
Cmp Eax, 0AH ; Muse Elf
Je SecondClass
Cmp Eax, 1DH
Je ThirdClass
Cmp Eax, 19H
Je ThirdClass
Cmp Eax, 18H
Je ThirdClass
Cmp Eax, 1BH
Je ThirdClass
Cmp Eax, 1CH
Je ThirdClass
Cmp Eax, 1AH ; Grand Elf
Je ThirdClass
Jmp NoVampiress
Vampiress:
;Si llega aqui es Vampiress
Mov Eax, SType
Mov Switch2, Eax
Switch Switch2
Case 1 ; Cabeza
Mov Eax, 0
Add Eax, 632FH ; Model ID NUEVO
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 250H], Ax
Jmp Finish
Case 2 ; Armadura (Cuerpo)
Mov Eax, 0
Add Eax, 6330H ; Model ID NUEVO
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 270H], Ax
Jmp Finish
Case 3 ; Pantalones
Mov Eax, 0
Add Eax, 6331H ; Model ID NUEVO
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 290H], Ax
Jmp Finish
Case 4 ; Guantes
Mov Eax, 0
Add Eax, 6332H ; Model ID NUEVO
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 2B0H], Ax
Jmp Finish
Case 5 ; Botas
Mov Eax, 0
Add Eax, 6333H ; Model ID NUEVO
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 2D0H], Ax
Jmp Finish
EndSw
NoVampiress:
Mov Eax, SType
Mov Switch2, Eax
Switch Switch2
Case 1 ; Cabeza
Mov Eax, Class
And Eax, 7
Add Eax, 2289H ; Model ID
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 250H], Ax
Jmp Finish
Case 2 ; Armadura (Cuerpo)
Mov Eax, Class
And Eax, 7
Add Eax, 229DH ; Model ID
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 270H], Ax
Jmp Finish
Case 3 ; Pantalones
Mov Eax, Class
And Eax, 7
Add Eax, 22B1H ; Model ID
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 290H], Ax
Jmp Finish
Case 4 ; Guantes
Mov Eax, Class
And Eax, 7
Add Eax, 22C5H ; Model ID
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 2B0H], Ax
Jmp Finish
Case 5 ; Botas
Mov Eax, Class
And Eax, 7
Add Eax, 22D9H ; Model ID
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 2D0H], Ax
Jmp Finish
EndSw
Vampiress2:
;Si llega aqui es Vampiress 2є Evolucion
Mov Eax, SType
Mov Switch2, Eax
Switch Switch2
Case 1 ; Cabeza
Mov Eax, 0
Add Eax, 6334H ; Model ID NUEVO
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 250H], Ax
Jmp Finish
Case 2 ; Armadura (Cuerpo)
Mov Eax, 0
Add Eax, 6335H ; Model ID NUEVO
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 270H], Ax
Jmp Finish
Case 3 ; Pantalones
Mov Eax, 0
Add Eax, 6336H ; Model ID NUEVO
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 290H], Ax
Jmp Finish
Case 4 ; Guantes
Mov Eax, 0
Add Eax, 6337H ; Model ID NUEVO
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 2B0H], Ax
Jmp Finish
Case 5 ; Botas
Mov Eax, 0
Add Eax, 6338H ; Model ID NUEVO
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 2D0H], Ax
Jmp Finish
EndSw
SecondClass:
Mov Eax, SType
Mov Switch2, Eax
Switch Switch2
Case 1 ; Cabeza
Mov Eax, Class
And Eax, 7
Add Eax, 228EH ; Model ID
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 250H], Ax
Jmp Finish
Case 2 ; Armadura (Cuerpo)
Mov Eax, Class
And Eax, 7
Add Eax, 22A2H ; Model ID
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 270H], Ax
Jmp Finish
Case 3 ; Pantalones
Mov Eax, Class
And Eax, 7
Add Eax, 22B6H ; Model ID
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 290H], Ax
Jmp Finish
Case 4 ; Guantes
Mov Eax, Class
And Eax, 7
Add Eax, 22CAH ; Model ID
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 2B0H], Ax
Jmp Finish
Case 5 ; Botas
Mov Eax, Class
And Eax, 7
Add Eax, 22DEH ; Model ID
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 2D0H], Ax
Jmp Finish
EndSw
Vampiress3:
;Si llega aqui es Vampiress 3є Evolucion
Mov Eax, SType
Mov Switch2, Eax
Switch Switch2
Case 1 ; Cabeza
Mov Eax, 0
Add Eax, 6339H ; Model ID NUEVO
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 250H], Ax
Jmp Finish
Case 2 ; Armadura (Cuerpo)
Mov Eax, 0
Add Eax, 633AH ; Model ID NUEVO
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 270H], Ax
Jmp Finish
Case 3 ; Pantalones
Mov Eax, 0
Add Eax, 633BH ; Model ID NUEVO
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 290H], Ax
Jmp Finish
Case 4 ; Guantes
Mov Eax, 0
Add Eax, 633CH ; Model ID NUEVO
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 2B0H], Ax
Jmp Finish
Case 5 ; Botas
Mov Eax, 0
Add Eax, 633DH ; Model ID NUEVO
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 2D0H], Ax
Jmp Finish
EndSw
ThirdClass:
Mov Eax, SType
Mov Switch2, Eax
Switch Switch2
Case 1 ; Cabeza
Mov Eax, Class
And Eax, 7
Add Eax, 2293H ; Model ID
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 250H], Ax
Jmp Finish
Case 2 ; Armadura (Cuerpo)
Mov Eax, Class
And Eax, 7
Add Eax, 22A7H ; Model ID
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 270H], Ax
Jmp Finish
Case 3 ; Pantalones
Mov Eax, Class
And Eax, 7
Add Eax, 22BBH ; Model ID
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 290H], Ax
Jmp Finish
Case 4 ; Guantes
Mov Eax, Class
And Eax, 7
Add Eax, 22CFH ; Model ID
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 2B0H], Ax
Jmp Finish
Case 5 ; Botas
Mov Eax, Class
And Eax, 7
Add Eax, 22E3H ; Model ID
Mov Ecx, Local2
Mov Word Ptr Ds:[Ecx + 2D0H], Ax
Jmp Finish
EndSw
Finish:
Ret
ChangeModelID EndP
ChangeModelID2 Proc Class:DWord, Local1:DWord
Local SType:DWord
Mov Eax, Class
And Eax, 7
Cmp Class, 5
Je Vampiress
;Comprobamos si es de la 2є evolucion el personaje
Cmp Class, 7 ; Soul Master
Je SecondClass
Cmp Class, 8 ; Blade Knight
Je SecondClass
Cmp Class, 9 ; Muse Elf
Je SecondClass
Cmp Class, 0DH ; Bloody Summoner
Je SecondClass
Cmp Class, 0AH ; Muse Elf
Je SecondClass
Cmp Class, 1DH
Je ThirdClass
Cmp Class, 19H
Je ThirdClass
Cmp Class, 18H
Je ThirdClass
Cmp Class, 1BH
Je ThirdClass
Cmp Class, 1CH
Je ThirdClass
Cmp Class, 1AH ; Grand Elf
Je ThirdClass
;Cabeza
Mov Eax, Class
And Eax, 7
Add Eax, 2289H ; ID del modelo
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 250H], Ax
;Armadura
Mov Eax, Class
And Eax, 7
Add Eax, 229DH ; ID del modelo
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 270H], Ax
;Pantalones
Mov Eax, Class
And Eax, 7
Add Eax, 22B1H ; ID del modelo
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 290H], Ax
;Guantes
Mov Eax, Class
And Eax, 7
Add Eax, 22C5H ; ID del modelo
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 2B0H], Ax
;Botas
Mov Eax, Class
And Eax, 7
Add Eax, 22D9H ; ID del modelo
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 2D0H], Ax
Jmp Finish
Vampiress:
;Cabeza
Mov Eax, 0
Add Eax, 632FH ; ID del modelo NUEVA
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 250H], Ax
;Armadura
Mov Eax, 0
Add Eax, 6330H ; ID del modelo NUEVA
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 270H], Ax
;Pantalones
Mov Eax, 0
Add Eax, 6331H ; ID del modelo NUEVA
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 290H], Ax
;Guantes
Mov Eax, 0
Add Eax, 6332H ; ID del modelo NUEVA
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 2B0H], Ax
;Botas
Mov Eax, 0
Add Eax, 6333H ; ID del modelo NUEVA
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 2D0H], Ax
Jmp Finish
Vampiress2:
;Cabeza
Mov Eax, 0
Add Eax, 6334H ; ID del modelo NUEVA
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 250H], Ax
;Armadura
Mov Eax, 0
Add Eax, 6335H ; ID del modelo NUEVA
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 270H], Ax
;Pantalones
Mov Eax, 0
Add Eax, 6336H ; ID del modelo NUEVA
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 290H], Ax
;Guantes
Mov Eax, 0
Add Eax, 6337H ; ID del modelo NUEVA
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 2B0H], Ax
;Botas
Mov Eax, 0
Add Eax, 6338H ; ID del modelo NUEVA
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 2D0H], Ax
Jmp Finish
SecondClass:
;Cabeza
Mov Eax, Class
And Eax, 7
Add Eax, 228EH ; ID del modelo
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 250H], Ax
;Armadura
Mov Eax, Class
And Eax, 7
Add Eax, 22A2H ; ID del modelo
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 270H], Ax
;Pantalones
Mov Eax, Class
And Eax, 7
Add Eax, 22B6H ; ID del modelo
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 290H], Ax
;Guantes
Mov Eax, Class
And Eax, 7
Add Eax, 22CAH ; ID del modelo
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 2B0H], Ax
;Botas
Mov Eax, Class
And Eax, 7
Add Eax, 22DEH ; ID del modelo
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 2D0H], Ax
Jmp Finish
Vampiress3:
;Cabeza
Mov Eax, 0
Add Eax, 6339H ; ID del modelo NUEVA
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 250H], Ax
;Armadura
Mov Eax, 0
Add Eax, 633AH ; ID del modelo NUEVA
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 270H], Ax
;Pantalones
Mov Eax, 0
Add Eax, 633BH ; ID del modelo NUEVA
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 290H], Ax
;Guantes
Mov Eax, 0
Add Eax, 633CH ; ID del modelo NUEVA
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 2B0H], Ax
;Botas
Mov Eax, 0
Add Eax, 633DH ; ID del modelo NUEVA
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 2D0H], Ax
Jmp Finish
ThirdClass:
;Cabeza
Mov Eax, Class
And Eax, 7
Add Eax, 2293H ; ID del modelo
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 250H], Ax
;Armadura
Mov Eax, Class
And Eax, 7
Add Eax, 22A7H ; ID del modelo
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 270H], Ax
;Pantalones
Mov Eax, Class
And Eax, 7
Add Eax, 22BBH ; ID del modelo
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 290H], Ax
;Guantes
Mov Eax, Class
And Eax, 7
Add Eax, 22CFH ; ID del modelo
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 2B0H], Ax
;Botas
Mov Eax, Class
And Eax, 7
Add Eax, 22E3H ; ID del modelo
Mov Ecx, Local1
Mov Word Ptr Ds:[Ecx + 2D0H], Ax
Jmp Finish
Finish:
Ret
ChangeModelID2 EndP
LoadVampiressLogo Proc Nothing:DWord
;Cargamos el Logo , NewFace (Retrato) de la Vampiress
;Primero cargamos el modelo
Cmp LogoModelLoaded, 1
Je LoadOnlyTexture
; Lea Eax, EndText ; Indica "end" cuando no hay mas animaciones
; Push Eax
; Lea Eax, NewFaceAnimation1 ; Primera animacion
; Push Eax
; Lea Eax, NewFaceModel ; Modelo a cargar
; Push Eax
; Lea Edx, LogoFolder ; Carpeta de Logo (Data\Logo\)
; Push Edx
; Push 623EH ; ID del modelo
; Call LoadSMDWithAnimation
Push 6 ; Vampiress
Lea Eax, NewFaceModel ; Modelo a cargar
Push Eax
Lea Edx, LogoFolder ; Ruta de donde se encuentra el modelo
Push Edx
Push 623EH ; ID del modelo
Call LoadBMD
Mov Edx, 623EH
IMul Edx, Edx, 0F0H
Mov Eax, DWord Ptr Ds:[5801AE8H]
Mov Ecx, DWord Ptr Ds:[Eax + Edx + 30H]
Mov DWord Ptr Ds:[Ecx + 4], 3E99999AH
Mov Edx, 623EH
IMul Edx, Edx, 0F0H
Mov Eax, DWord Ptr Ds:[5801AE8H]
Mov Ecx, DWord Ptr Ds:[Eax + Edx + 30H]
Mov DWord Ptr Ds:[Ecx + 14H], 3E99999AH
;LoadSMDWithAnimation carga SMDs que tengan animaciones mientras
;LoadSMD carga SMD sin animaciones
;Ahora cargamos las texturas para el Modelo
LoadOnlyTexture:
Push 1
Push 2600H
Push 2901H
Lea Eax, LogoFolder2 ; Logo\
Push Eax
Push 623EH ; ID del modelo
Call LoadTexture
Add Esp, 14H
Mov LogoModelLoaded, 1
Ret
LoadVampiressLogo EndP
FixClassID Proc Class:DWord
;Mov Eax, Class
;And Eax, 0FFH
;Cmp Eax, 0C0H ; 3є Evolucion de Vampiress
;Je ThirdVampiress
;Si llega aqui no es 3є Evo vampiress
; Mov Eax, Class
; Push Eax
; Call GetClassID
; Add Esp, 4
Mov Eax, Class
And Eax, 0FFH
Sar Eax, 4
And Eax, 1
Shl Eax, 3
Mov Ecx, Class
And Ecx, 0FFH
Sar Ecx, 5
Or Eax, Ecx
Mov Edx, Class
And Edx, 0FFH
Sar Edx, 3
And Edx, 1
Shl Edx, 4
Or Eax, Edx
And Eax, 0FFH
Jmp Finish
ThirdVampiress:
Mov Eax, 1EH
;Si es la 3є Evolucion de la Vampiress retorno 1E, ya que 1D
;es la 3є Evo de Summoner que es el ultimo personaje, retorno 1EH
;para despues usarlo en otros procs y lo hago solo para la 3є Evo
;porque para las demas les saca bien el ID.
Jmp Finish
Finish:
Ret
FixClassID EndP
CheckFreiyaCanEquipItem Proc ItemName:DWord, Class:DWord
Mov Edx, Class
Cmp Dl, 5
Jnz NoFreiya
Freiya:
Lea Eax, DWord Ptr Ds:[SpiritHelm]
Mov Ecx, DWord Ptr Ds:[Ebp + 8] ; ItemName
Invoke lstrcmp, Ecx, Eax
Cmp Eax, 0
Je FreiyaCanEquip
Lea Eax, DWord Ptr Ds:[SpiritArmor]
Mov Ecx, DWord Ptr Ds:[Ebp + 8] ; ItemName
Invoke lstrcmp, Ecx, Eax
Cmp Eax, 0
Je FreiyaCanEquip
Lea Eax, DWord Ptr Ds:[SpiritGloves]
Mov Ecx, DWord Ptr Ds:[Ebp + 8] ; ItemName
Invoke lstrcmp, Ecx, Eax
Cmp Eax, 0
Je FreiyaCanEquip
Lea Eax, DWord Ptr Ds:[SpiritPants]
Mov Ecx, DWord Ptr Ds:[Ebp + 8] ; ItemName
Invoke lstrcmp, Ecx, Eax
Cmp Eax, 0
Je FreiyaCanEquip
Lea Eax, DWord Ptr Ds:[SpiritBoots]
Mov Ecx, DWord Ptr Ds:[Ebp + 8] ; ItemName
Invoke lstrcmp, Ecx, Eax
Cmp Eax, 0
Je FreiyaCanEquip
Lea Eax, DWord Ptr Ds:[HeavenWings]
Mov Ecx, DWord Ptr Ds:[Ebp + 8] ; ItemName
Invoke lstrcmp, Ecx, Eax
Cmp Eax, 0
Je FreiyaCanEquip
Lea Eax, DWord Ptr Ds:[SmallAxe]
Mov Ecx, DWord Ptr Ds:[Ebp + 8] ; ItemName
Invoke lstrcmp, Ecx, Eax
Cmp Eax, 0
Je FreiyaCanEquip
Lea Eax, DWord Ptr Ds:[VolcanoArmor]
Mov Ecx, DWord Ptr Ds:[Ebp + 8] ; ItemName
Invoke lstrcmp, Ecx, Eax
Cmp Eax, 0
Je FreiyaCanEquip
Lea Eax, DWord Ptr Ds:[VolcanoPants]
Mov Ecx, DWord Ptr Ds:[Ebp + 8] ; ItemName
Invoke lstrcmp, Ecx, Eax
Cmp Eax, 0
Je FreiyaCanEquip
Lea Eax, DWord Ptr Ds:[VolcanoGloves]
Mov Ecx, DWord Ptr Ds:[Ebp + 8] ; ItemName
Invoke lstrcmp, Ecx, Eax
Cmp Eax, 0
Je FreiyaCanEquip
Lea Eax, DWord Ptr Ds:[VolcanoBoots]
Mov Ecx, DWord Ptr Ds:[Ebp + 8] ; ItemName
Invoke lstrcmp, Ecx, Eax
Cmp Eax, 0
Je FreiyaCanEquip
Lea Eax, DWord Ptr Ds:[LegendaryStaff]
Mov Ecx, DWord Ptr Ds:[Ebp + 8] ; ItemName
Invoke lstrcmp, Ecx, Eax
Cmp Eax, 0
Je FreiyaCanEquip
Lea Eax, DWord Ptr Ds:[ElementalShield]
Mov Ecx, DWord Ptr Ds:[Ebp + 8] ; ItemName
Invoke lstrcmp, Ecx, Eax
Cmp Eax, 0
Je FreiyaCanEquip
Lea Eax, DWord Ptr Ds:[RuneBlade]
Mov Ecx, DWord Ptr Ds:[Ebp + 8] ; ItemName
Invoke lstrcmp, Ecx, Eax
Cmp Eax, 0
Je FreiyaCanEquip
Lea Eax, DWord Ptr Ds:[FairyWings]
Mov Ecx, DWord Ptr Ds:[Ebp + 8] ; ItemName
Invoke lstrcmp, Ecx, Eax
Cmp Eax, 0
Je FreiyaCanEquip
Lea Eax, DWord Ptr Ds:[SatanWings]
Mov Ecx, DWord Ptr Ds:[Ebp + 8] ; ItemName
Invoke lstrcmp, Ecx, Eax
Cmp Eax, 0
Je FreiyaCanEquip
;Si llega aqui es que Freiya no pudo equipar ningun item
Mov Ebx, Class
Mov Edx, ItemName
Mov Eax, 1
Ret
FreiyaCanEquip:
Mov Ebx, Class
Mov Edx, ItemName
Xor Eax, Eax
Ret
NoFreiya:
Mov Ebx, Class
Mov Edx, ItemName
Xor Eax, Eax
Ret
CheckFreiyaCanEquipItem EndP
PutCanBeEquippedByFreiya Proc ItemName:DWord
Local Class:DWord
Local Counter:DWord
Mov Counter, 0
Mov Class, 0
RepeatLoop:
Mov Esi, ItemName
Mov Ecx, Class
Cmp Byte Ptr Ds:[Esi + Ecx + 45H], 1
Jnz @1
Mov Edx, Counter
Inc Edx
Mov Counter, Edx
@1:
Inc Ecx
Mov Class, Ecx
Cmp Ecx, 5
Je Freiya
Cmp Ecx, 6
Jl RepeatLoop
Mov Edx, Counter
Xor Ebx, Ebx
Ret
Freiya:
Invoke CheckFreiyaCanEquipItem, Esi, 5
Cmp Eax, 1 ; Si es 1 no se puede equipar el item
Je RepeatLoop
Mov Esi, ItemName
Mov Ecx, Class
Mov Byte Ptr Ds:[Esi + Ecx + 45H], 1
Cmp Ecx, 6
Jl RepeatLoop
Mov Edx, Counter
Xor Ebx, Ebx
Ret
PutCanBeEquippedByFreiya EndP
End DllEntry
?? are you kidding me? this no is a full source and my source is very different.
Quote:
//FixHelmvoid __declspec(naked) NewPlayer10()
{
_asm
{
MOV AL,BYTE PTR DS:[EDX+0x20C]
cmp al,0x15
jnz sigo
mov eax,0x229A
mov ecx,0xxxx
jmp ecx
sigo:
mov ecx,
jmp ecx
}
}
//FixArmor
void __declspec(naked) NewPlayer11()
{
_asm
{
MOV cl,BYTE PTR DS:[EaX+0x20C]
cmp cl,0x15
jnz sigo
mov eax,0x22AE
mov eDx,0xxxx
jmp eDx
sigo:
mov EAX,
jmp EAX
}
}
//FIX PANTS
void __declspec(naked) NewPlayer12()
{
_asm
{
MOV DL,BYTE PTR DS:[EcX+0x20C]
cmp DL,0x15
jnz sigo
mov eax,0x22C2
mov eDx,0xxxx
jmp eDx
sigo:
mov EAX,
jmp EAX
}
}
//GLOVES
void __declspec(naked) NewPlayer13()
{
_asm
{
MOV cl,BYTE PTR DS:[EaX+0x20C]
cmp cl,0x15
jnz sigo
mov eax,0x22D6
mov eDx,
jmp eDx
sigo:
mov EAX,0xxxx
jmp EAX
}
}
//BOOTS
void __declspec(naked) NewPlayer14()
{
_asm
{
MOV DL,BYTE PTR DS:[EcX+0x20C]
cmp DL,0x15
jnz sigo
mov eax,0X22EA
mov eDx,0xxxx
jmp eDx
sigo:
mov EAX,0xxxx
jmp EAX
}
}
Quote:
*(DWORD*)(0xxx+1) = (DWORD)&NewPlayer - (0xxx+5);
*(BYTE*)(0xxx) = 0xE9;
*(DWORD*)(0xxx+1) = (DWORD)&NewPlayer2 - (0xxx+5);
*(BYTE*)(0xxx) = 0xE9;
*(DWORD*)(0xxx+1) = (DWORD)&NewPlayer3 - (0xxx+5);
*(BYTE*)(0xxx) = 0xE9;
*(DWORD*)(0xxx+1) = (DWORD)&NewPlayer4 - (0xxx+5);
*(BYTE*)(0x0403361) = 0xE9;
*(DWORD*)(0xxx+1) = (DWORD)&NewPlayer5 - (0xxx+5);
*(BYTE*)(0xxx) = 0xE9;
*(DWORD*)(0xxx+1) = (DWORD)&NewPlayer6 - (0xxx+5);
*(BYTE*)(0xxx) = 0xE9;
*(DWORD*)(0xxx+1) = (DWORD)&NewPlayer7 - (0xxx+5);
*(BYTE*)(0xxx) = 0xE9;
*(DWORD*)(0xxx+1) = (DWORD)&NewPlayer8 - (0xxx+5);
*(BYTE*)(0xxx) = 0xE9;
*(DWORD*)(0xxx+1) = (DWORD)&NewPlayer9 - (0xxx+5);
*(BYTE*)(0xxx) = 0xE9;
*(DWORD*)(0xxx+1) = (DWORD)&NewPlayer10 - (0xxx+5);
*(BYTE*)(0xxx) = 0xE9;
*(DWORD*)(0xxx+1) = (DWORD)&NewPlayer11 - (0xxx+5);
*(BYTE*)(0X052D31E) = 0xE9;
*(DWORD*)(0xxx+1) = (DWORD)&NewPlayer12 - (0xxx+5);
*(BYTE*)(0xxx) = 0xE9;
*(DWORD*)(0xxx+1) = (DWORD)&NewPlayer13 - (0xxx+5);
*(BYTE*)(0xxx) = 0xE9;
*(DWORD*)(0xxx+1) = (DWORD)&NewPlayer14 - (0xxx+5);
*(BYTE*)(0xxx) = 0xE9;
*(DWORD*)(0xxx+1) = (DWORD)&NewPlayer15 - (0xxx+5);
*(BYTE*)(0xxx) = 0xE9;
a question, someone could tell me how to put sources to create the dll in visual studio. use the VS2010 and vs2012, thanks. I want to put the jewels Horcrux client Zteam s6e3, it may?
Is also interesting - how to do this. Author, you have what category of objects involved? 13 or 14? If you have no value given source code - could you share it? Thank U!
of course, I understand. And you do not know whether to complete its work so share or sell?
Mu Online developing battle? I love it xDDD