Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Development] Adding Effects to Items (Easy Way)

Junior Spellweaver
Joined
Jul 13, 2012
Messages
103
Reaction score
13
yeah works with any main.exe version, you only must research offsets for every function, fix registers and test! xD

PS: I can make for 1.04d GMO main.exe too, without extrange bugs and 100% usable, If you like wait for my release, maybe in 1 hour, I can have ready 1 interesting code for u man. :)

Excellent Thank you verry much! Watting release for you!
 
Joined
Oct 29, 2007
Messages
1,290
Reaction score
1,310
Well look this brothers.. xD

Code:
[COLOR=#008000]THIS IS FOR .H FILE:[/COLOR]

#define ItemArray 1171 [B][COLOR=#008000]//IS ITEMARRAY FOR MAIN 1.04d GMO[/COLOR][/B]
#define ItemId(x, y) ((x * 512) + y)
#define ObjectId(x, y) ((x * 512) + y + ItemArray)
[COLOR=#008000]
AND THIS FOR .CPP FILE XD:[/COLOR]
void __declspec(naked) WingsOfVortexEffect()
{
    DWORD dwItem;
    _asm
    {
        MOV EAX, DWORD PTR SS:[EBP+0x0C]
        MOV dwItem, EAX
        // ----
        CMP dwItem,ObjectId(12,37)
        JE Return
        // ----
        CMP dwItem,ObjectId(12,180)
        JE Return
        // ----
        Return:
        MOV EAX,0x0060C764
        JMP EAX
    }
}


void HookEffects()
{
    Utils.SetNop(0x0060C75D, 5);
    Utils.WriteJmp(0x0060C75D, (DWORD)&WingsOfVortexEffect);
}

extern "C" _declspec(dllexport) void InitEngine()
{
    DWORD OldProtect;
    if(VirtualProtect(LPVOID(0x401000),0x00D21FFF,PAGE_EXECUTE_READWRITE,&OldProtect))
    {
        ItemCoreInit();
        HookEffects();
    }
    else
    {
        MessageBoxA(NULL,"Cannot load Engine.dll","Error",MB_OK);
        ExitProcess(0);
    }
}

PS: 0x00D21FFF -> REAL VIRTUALPROTECT OFFSET ON 1.04d GMO VIRGIN MAIN.EXE

PS 2: I'm uploading to: YT, my video test of this function.. not crashes, not bad registers return.. you can make the same with another wings level 3 cases, the only important thing is that your custom added model wing (3d .bmd) must have the same count of Bones that original item that get this hooked effect.

Sorry for my very bad English people..
:tongue:
 
Junior Spellweaver
Joined
Jul 13, 2012
Messages
103
Reaction score
13
I think that you don't understand what is developing here.. should learn more. :lol::lol::lol:

VIDEO TEST:



Thanks mauro07!I sory! I do not see the difference here! Ecfffect is no different.
You can test one another on Wing Effect 3 DW?
Sorry for my very bad English people.. :p:



Example: One of your differ effect on set

 
Newbie Spellweaver
Joined
May 25, 2009
Messages
52
Reaction score
5
version 1
nodes
0 "Box01" -1
1 "Bone01" 0
2 "Bone02" 1
3 "Bone03" 2
4 "Bone35" 2
5 "Bone34" 2
6 "Bone33" 2
7 "Bone32" 2
8 "Bone31" 2
9 "Bone36" 1
10 "Bone04" 1
11 "Bone05" 10
12 "Bone06" 11
13 "Bone37" 11
14 "Bone38" 1
15 "Bone07" 0
16 "Bone08" 15
17 "Bone09" 16
18 "Bone40" 16
19 "Bone39" 15
20 "Bone51" 0
21 "Bone52" 20
22 "Bone53" 21
23 "Bone43" 21
24 "Bone42" 21
25 "Bone41" 21
26 "Bone45" 21
27 "Bone44" 21
28 "Bone54" 20
29 "Bone55" 28
30 "Bone56" 29
31 "Bone47" 29
32 "Bone46" 20
33 "Bone48" 20
34 "Bone57" 0
35 "Bone58" 34
36 "Bone59" 35
37 "Bone50" 35
38 "Bone49" 34
end
skeleton
time 0
0 0.000000 -100.000000 -0.333302 1.570796 -0.000000 0.000000
1 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
2 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
3 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
4 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
5 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
6 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
7 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
8 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
9 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
10 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
11 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
12 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
13 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
14 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
15 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
16 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
17 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
18 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
19 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
20 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
21 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
22 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
23 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
24 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
25 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
26 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
27 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
28 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
29 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
30 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
31 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
32 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
33 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
34 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
35 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
36 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
37 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
38 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
end
Mauro: You can explain things on what to do?
 
Skilled Illusionist
Joined
Dec 29, 2007
Messages
312
Reaction score
34
@huythao229
,
would you post your code and the main version to see if I can better understand? For purposes aidcionar tried on an item custon more'm not having success. :/:


Thanks in advance for your attention.
 
Newbie Spellweaver
Joined
May 25, 2009
Messages
52
Reaction score
5
mauro07.
Kiosani - [Development] Adding Effects to Items (Easy Way) - RaGEZONE Forums

I try Legendary lighting your like a but the problem is that there are red spots underneath.
void __declspec(naked) WingsOfStormEffect()
{
_asm
{
MOV EAX, DWORD PTR SS:[EBP+0x0C]
MOV dwItem, EAX

CMP dwItem,ObjectId(12,36)
JE Return
CMP dwItem,ObjectId(7,3)
JE Return
CMP dwItem,ObjectId(8,3)
JE Return
CMP dwItem,ObjectId(9,3)
JE Return
CMP dwItem,ObjectId(10,3)
JE Return
CMP dwItem,ObjectId(11,3)
Return:
MOV ECX,0x0060C153
JMP ECX
}
}
 
Joined
Oct 29, 2007
Messages
1,290
Reaction score
1,310
mauro07.
Kiosani - [Development] Adding Effects to Items (Easy Way) - RaGEZONE Forums

I try Legendary lighting your like a but the problem is that there are red spots underneath.

you must decompile some important functions on main.exe for draw different effects in scene.. because this code is only for make a: "copy" of the original sprites effects on 3rd level wings from wz

and I say this bro: "Well, I now have a much better method than this" in main thread:cool:

PS: Legendary Set or another sets of Player they not have: "The same bone counts that original Wings of Storm bro"



Mauro: You can explain things on what to do?

yeah, sure bro.. this is my modified Skeleton struct of: Wings of Illusion (ObjectId: 12,38) from: High Elf, for: "Collect" all bones that model originally used in the tips of my staff added, I mean.. look this:

skeleton
time 0
0 0.000000 -100.000000 -0.333302 1.570796 -0.000000 0.000000

to simple view.. this is the only line on this struct of skeleton in added staff model to effect, that have some values differents from: 0.000000 or: 0.0 (is the same), but this is not important for learn to correct usage this method, because the only thing important is: "Bone Count", get by the main.exe by: BoneId, this is..

Simple Ex:

time 0
0 0.000000 -100.000000 -0.333302 1.570796 -0.000000 0.000000
1 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
2 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
3 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
4 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
5 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
6 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
7 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
8 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
9 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
10 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
11 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
12 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
13 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
14 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
15 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
16 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
17 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
18 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
19 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
20 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
21 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
22 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
23 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
24 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
25 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
26 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
27 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
28 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
29 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
30 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
31 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
32 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
33 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
34 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
35 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
36 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
37 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
38 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000
end


from: 0 to 38... then -> 38 is total count of bones on original: Wings of Illusion .bmd file.. in your client folder: "Data/Item".. is easy to understand in really.. main.exe get every bone position in real time and transform this position using vectors positions (X,Y,Z) in 1: "Billboard" or: "Sprite" of course that not all bones from every model.. but you must look in every original model 3rd wings, in: GAME and in: MILKSHAPE like: .smd for understand every Light (by different colors and all this poop..) and put on different parts of your added model to effect, If you model not have the same count of bones that original one, then main.exe can't to find every bone seated in 1 sprite and some vectors of every light are scattered anywhere on the scene.
:thumbup1:
 
Last edited:
selling server files is against RZ rules
Joined
Feb 26, 2013
Messages
542
Reaction score
131
Well look this brothers.. xD

Code:
[COLOR=#008000]THIS IS FOR .H FILE:[/COLOR]

#define ItemArray 1171 [B][COLOR=#008000]//IS ITEMARRAY FOR MAIN 1.04d GMO[/COLOR][/B]
#define ItemId(x, y) ((x * 512) + y)
#define ObjectId(x, y) ((x * 512) + y + ItemArray)
[COLOR=#008000]
AND THIS FOR .CPP FILE XD:[/COLOR]
void __declspec(naked) WingsOfVortexEffect()
{
    DWORD dwItem;
    _asm
    {
        MOV EAX, DWORD PTR SS:[EBP+0x0C]
        MOV dwItem, EAX
        // ----
        CMP dwItem,ObjectId(12,37)
        JE Return
        // ----
        CMP dwItem,ObjectId(12,180)
        JE Return
        // ----
        Return:
        MOV EAX,0x0060C764
        JMP EAX
    }
}


void HookEffects()
{
    Utils.SetNop(0x0060C75D, 5);
    Utils.WriteJmp(0x0060C75D, (DWORD)&WingsOfVortexEffect);
}

extern "C" _declspec(dllexport) void InitEngine()
{
    DWORD OldProtect;
    if(VirtualProtect(LPVOID(0x401000),0x00D21FFF,PAGE_EXECUTE_READWRITE,&OldProtect))
    {
        ItemCoreInit();
        HookEffects();
    }
    else
    {
        MessageBoxA(NULL,"Cannot load Engine.dll","Error",MB_OK);
        ExitProcess(0);
    }
}

PS: 0x00D21FFF -> REAL VIRTUALPROTECT OFFSET ON 1.04d GMO VIRGIN MAIN.EXE

PS 2: I'm uploading to: YT, my video test of this function.. not crashes, not bad registers return.. you can make the same with another wings level 3 cases, the only important thing is that your custom added model wing (3d .bmd) must have the same count of Bones that original item that get this hooked effect.

Sorry for my very bad English people..
:tongue:

it does not work (
I tried to add these effects zTeam main, but when you log on to your account when the scene starts to load the character selection, main would crash.
q3l1sT - [Development] Adding Effects to Items (Easy Way) - RaGEZONE Forums

0OkaPPw - [Development] Adding Effects to Items (Easy Way) - RaGEZONE Forums

aCrmn7H - [Development] Adding Effects to Items (Easy Way) - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Experienced Elementalist
Joined
Nov 26, 2013
Messages
270
Reaction score
90
hmm.. something is wrong..

Screenshot_2 - [Development] Adding Effects to Items (Easy Way) - RaGEZONE Forums
Screenshot_3 - [Development] Adding Effects to Items (Easy Way) - RaGEZONE Forums
Screen(07_02-18_13)-0000 - [Development] Adding Effects to Items (Easy Way) - RaGEZONE Forums

1.03Y offsets

item array = 887 (decimal)



Kiosani - [Development] Adding Effects to Items (Easy Way) - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Elite Diviner
Joined
Sep 9, 2014
Messages
469
Reaction score
498
huythao229, hola. me podrias decir o pasar el codigo .cpp , .h para agregar ese effecto en main 1.04d en zclient.dll. gracias y disculpa las molestias
 
Newbie Spellweaver
Joined
Feb 12, 2012
Messages
60
Reaction score
2
could help me with the offsets the main 1:03:13?
 
Skilled Illusionist
Joined
Dec 9, 2009
Messages
373
Reaction score
42
@mauro07: can you tell me which tool can I see the bone ID of a item? I am trying to add effect on wing 2.5 for season 6 server but don't know the bone ID of those :|

Thanks a lot,
 
Newbie Spellweaver
Joined
Dec 24, 2007
Messages
61
Reaction score
5
thanks mauro07!i sory! I do not see the difference here! Ecfffect is no different.
You can test one another on wing effect 3 dw?
Sorry for my very bad english people.. :p:



example: One of your differ effect on set




¡¡¡pleaseee this effect who is???!!
 
Back
Top