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)

Experienced Elementalist
Joined
Nov 26, 2013
Messages
270
Reaction score
90
in static effect there is no effect like storm wing. To get that effect u need to findout what "sub_6D8F20" or sub_545030 do
Code:
case 7351:
                              v258 = 0.0;
                              v259 = 0.0;
                              v260 = 0.0;
                              *(float *)&v288 = 0.0;
                              v289 = 0.0;
                              v290 = 0.0;
                              v38 = flt_5EF5A1C * 0.0003999999898951501;
                              logf_0(v38);
                              v261 = sub_639050(v38) * 0.4000000059604645;
                              *(float *)&v284 = v261 + 0.5;
                              v285 = v261 + 0.5;
                              v286 = v261 + 0.5;
                              v297 = 9;
                              v298 = 20;
                              v299 = 19;
                              v300 = 10;
                              v301 = 18;
                              v302 = 28;
                              v303 = 27;
                              v304 = 36;
                              v305 = 35;
                              v306 = 38;
                              v307 = 37;
                              v308 = 53;
                              v309 = 48;
                              v310 = 62;
                              v311 = 70;
                              v312 = 72;
                              v313 = 71;
                              v314 = 78;
                              v315 = 79;
                              v316 = 80;
                              v317 = 87;
                              v318 = 90;
                              v319 = 91;
                              v320 = 106;
                              v321 = 102;
                              v287 = 0.0;
                              for ( k = 0; k < 25; ++k )
                              {
                                sub_545030((float *)v386,(int)&unk_7BC08A0 + 48 * *(&v297 + k),(int)&v258,(int)&v288, 1); 
                                v287 = 0.5;
                                v39 = flt_5EF5A1C * 0.009999999776482582;
                                pPlayStaticEffect(32260, (int)&v288, 0.5, (int)&v284, a1, v39, 1);
                              }
                              v291 = 11;
                              v292 = 21;
                              v293 = 29;
                              v294 = 63;
                              v295 = 81;
                              v296 = 89;
                              if ( !(rand() % 2) )
                              {
                                for ( l = 0; l < 6; ++l )
                                {
                                  sub_545030(
                                    (float *)v386,
                                    (int)&unk_7BC08A0 + 48 * *(&v291 + l),
                                    (int)&v258,
                                    (int)&v288,
                                    1);
                                  if ( !(rand() % 20) )
                                  {
                                    *(float *)&v284 = 0.60000002;
                                    v285 = 0.60000002;
                                    v286 = 0.89999998;
                                    sub_6D8F20(388, (int)&v288, a1 + 264, (int)&v284, 1, a1, -1, 0, 0, 0, 0.0, -1);
                                  }
                                }
                              }
                              v262 = 64;
                              v263 = 61;
                              v264 = 69;
                              v265 = 77;
                              v266 = 86;
                              v267 = 98;
                              v268 = 97;
                              v269 = 99;
                              v270 = 104;
                              v271 = 103;
                              v272 = 105;
                              v273 = 12;
                              v274 = 8;
                              v275 = 17;
                              v276 = 26;
                              v277 = 34;
                              v278 = 52;
                              v279 = 44;
                              v280 = 51;
                              v281 = 50;
                              v282 = 49;
                              v283 = 45;
                              v40 = flt_5EF5A1C * 0.003000000026077032;
                              logf_0(v40);
                              v287 = sub_639050(v40) * 0.2000000029802322;
                              for ( m = 0; m < 22; ++m )
                              {
                                sub_545030(
                                  (float *)v386,
                                  (int)&unk_7BC08A0 + 48 * *(&v262 + m),
                                  (int)&v258,
                                  (int)&v288,
                                  1);
                                if ( *(&v262 + m) != 12
                                  && *(&v262 + m) != 64
                                  && *(&v262 + m) != 98
                                  && *(&v262 + m) != 52 )
                                {
                                  *(float *)&v284 = 0.80000001;
                                  v285 = 0.5;
                                  v286 = 0.2;
                                  v42 = v287 + 0.300000011920929;
                                  pPlayStaticEffect(32002, (int)&v288, v42, (int)&v284, a1, 0.0, 0);
                                }
                                else
                                {
                                  *(float *)&v284 = 0.89999998;
                                  v285 = 0.0;
                                  v286 = 0.0;
                                  v41 = v287 + 1.399999976158142;
                                  pPlayStaticEffect(32002, (int)&v288, v41, (int)&v284, a1, 0.0, 0);
                                }
                              }
                              break;

#define pCustomEffGet ((int(__thiscall*)(int This, int a2, int *a3, MU3Float *a4, char a5)) 0x00545030)
#define pCustomDynamicEffect ((void(__cdecl*) (int ModelID, int, int, int, int, int, int, int, int, int, float, int)) 0x006D8F20)
 
Junior Spellweaver
Joined
Aug 11, 2013
Messages
112
Reaction score
64
Code:
LPVOID  F1_This;
DWORD   F1_Arg1;
DWORD   F1_Arg11;
DWORD   F1_Arg2;
DWORD   F2_Arg5;
DWORD   F3_Arg3;
float Color[3];
DWORD F1Arg11;
DWORD F2Arg5;
DWORD F1Arg2;

DWORD EffectList[60];

DWORD RandomedEffect;


    EffectList[0] = 31738;
    EffectList[1] = 32002;
    EffectList[2] = 32003;
    EffectList[3] = 32005;
    EffectList[4] = 32048;
    EffectList[5] = 32049;
    EffectList[6] = 32054;
    EffectList[7] = 32066;
    EffectList[8] = 32072;
    EffectList[9] = 32073;
    EffectList[10] = 32077;
    EffectList[11] = 32279;
    EffectList[12] = 32101;
    EffectList[13] = 32113;
    EffectList[14] = 32114;
    EffectList[15] = 32115;
    EffectList[16] = 32116;
    EffectList[17] = 32118;
    EffectList[18] = 32119;
    EffectList[19] = 32126;
    EffectList[20] = 32127;
    EffectList[21] = 32128;
    EffectList[22] = 32131;
    EffectList[23] = 32132;
    EffectList[24] = 32140;
    EffectList[25] = 32141;
    EffectList[26] = 32147;
    EffectList[27] = 32217;
    EffectList[28] = 32226;
    EffectList[29] = 32229;
    EffectList[30] = 32231;
    EffectList[31] = 32257;
    EffectList[32] = 32258;
    EffectList[33] = 32258;
    EffectList[34] = 32260;
    EffectList[35] = 32265;
    EffectList[36] = 32066;
    EffectList[37] = 32279;
    EffectList[38] = 32281;
    EffectList[39] = 32287;
    EffectList[40] = 32288;
    EffectList[41] = 32290;
    EffectList[42] = 32292;
    EffectList[43] = 32002;
    EffectList[44] = 32309;
    EffectList[45] = 32310;
    EffectList[46] = 32355;
    EffectList[47] = 32371;
    EffectList[48] = 32376;
    EffectList[49] = 32376;
    EffectList[50] = 32380;
    EffectList[51] = 32402;
    EffectList[52] = 32403;
    EffectList[53] = 32431;
    EffectList[54] = 32492;
    EffectList[55] = 32494;
    EffectList[56] = 32501;
    EffectList[57] = 32523;
    EffectList[58] = 32631;
    EffectList[59] = 32691;

else if (AddWingsEffect_Buff == ITEM2(12, 165))
        {


            
            Color[0] = ((float)(rand() % 100) / 100);
            Color[1] = ((float)(rand() % 100) / 100);
            Color[2] = ((float)(rand() % 100) / 100);//
            
            
            for (int i = 1; i < 48; i++)
            {
            
            memcpy(&F1Arg11, &F1_Arg11, sizeof(F1_Arg11));
            memcpy(&F2Arg5, &F2_Arg5, sizeof(F2_Arg5));
            memcpy(&F1Arg2, &F1_Arg2, sizeof(F1_Arg2));
            pAllowStaticEffect(F1_This, &F1Arg11, F1Arg2, i, 0);
            
            RandomedEffect = EffectList[rand() % 59];
            pPlayStaticEffect(RandomedEffect, &F1Arg11, 1, Color, F2Arg5, 1.0, 0);
            }
        }


my results :S

 
Last edited:
Joined
Oct 29, 2007
Messages
1,267
Reaction score
1,284
Here my release.. for: Flamberge, Sword Bracker and Imperial Sword (Season 4 Socket Swords) on: 1.04d GMO Effects:

Code:
    case 1197:    // Flamberge
          *(float *)&v448 = 0.80000001;
          v449 = 0.60000002;
          v450 = 0.2;
          sub_544E60(v438, (int)&v440, v437, 11, 0);
          sub_7711C0(32002, (int)&v440, 0.60000002, (int)&v448, v436, 0.0, 0);
          sub_7711C0(32002, (int)&v440, 0.60000002, (int)&v448, v436, 0.0, 0);
          *(float *)&v448 = 0.30000001;
          v449 = 0.80000001;
          v450 = 0.69999999;
          sub_544E60(v438, (int)&v440, v437, 12, 0);
          sub_7711C0(32002, (int)&v440, 0.5, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 13, 0);
          sub_7711C0(32002, (int)&v440, 0.5, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 12, 0);
          sub_7711C0(32002, (int)&v440, 0.30000001, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 13, 0);
          sub_7711C0(32002, (int)&v440, 0.30000001, (int)&v448, v436, 0.0, 0);
          *(float *)&v448 = 0.89999998;
          v449 = 0.1;
          v450 = 0.1;
          sub_544E60(v438, (int)&v440, v437, 1, 0);
          sub_7711C0(32402, (int)&v440, 0.80000001, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 2, 0);
          sub_7711C0(32402, (int)&v440, 0.69999999, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 3, 0);
          sub_7711C0(32402, (int)&v440, 0.69999999, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 4, 0);
          sub_7711C0(32402, (int)&v440, 0.69999999, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 5, 0);
          sub_7711C0(32402, (int)&v440, 0.60000002, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 6, 0);
          sub_7711C0(32402, (int)&v440, 0.5, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 7, 0);
          sub_7711C0(32402, (int)&v440, 0.5, (int)&v448, v436, 0.0, 0);
          break;
// -------------------------------------------------------------------------------------------
        case 1198:    // Sword Bracker
          *(float *)&v448 = 0.1;
          v449 = 0.89999998;
          v450 = 0.1;
          sub_544E60(v438, (int)&v440, v437, 1, 0);
          sub_7711C0(32402, (int)&v440, 0.60000002, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 2, 0);
          sub_7711C0(32402, (int)&v440, 0.5, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 3, 0);
          sub_7711C0(32402, (int)&v440, 0.5, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 4, 0);
          sub_7711C0(32402, (int)&v440, 0.5, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 5, 0);
          sub_7711C0(32402, (int)&v440, 0.40000001, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 6, 0);
          sub_7711C0(32402, (int)&v440, 0.30000001, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 7, 0);
          sub_7711C0(32402, (int)&v440, 0.30000001, (int)&v448, v436, 0.0, 0);
          for ( i10 = 1; i10 <= 7; ++i10 )
          {
            if ( !(sub_9CFA0D(a1, a2) % 4) )
            {
              *(float *)&v440 = 0.0;
              v441 = 0.0;
              v442 = 0.0;
              sub_544E60(v438, (int)&v440, v437, i10, 0);
              sub_74CBE0(a1, a2, 32290, (int)&v440, v437 + 264, (int)&v448, 12, 0.5, v437);
            }
          }
          break;
// -------------------------------------------------------------------------------------------
        case 1199:    // Imperial Sword
          v89 = (double)(sub_9CFA0D(a1, a2) % 15) / 30.0;
          v349 = v89 + 0.5;
          *(float *)&v440 = 0.0;
          v441 = 0.0;
          v442 = 0.0;
          *(float *)&v448 = 0.1;
          v449 = 0.40000001;
          v450 = 0.89999998;
          sub_545030((void *)v438, (int)&unk_7BC0A20, (int)&v440, (int)&v445, 1);
          sub_7711C0(32229, (int)&v445, 0.40000001, v436 + 156, v436, 0.0, 0);
          sub_7711C0(32119, (int)&v445, v349, (int)&v448, v436, 0.0, 0);
          *(float *)(v436 + 300) = *(float *)&v445;
          *(float *)(v436 + 304) = v446;
          *(float *)(v436 + 308) = v447;
          v346 = 0.0;
          v347 = 0.0;
          v348 = 0.89999998;
          sub_72D060(a1, a2, a3, 32223, (int)&v445, (int)&v445, v436 + 264, 17, v436, 25.0, -1, 0, 0, -1, 0, -1);
          sub_545030((void *)v438, (int)&unk_7BC0A50, (int)&v440, (int)&v445, 1);
          sub_7711C0(32229, (int)&v445, 0.40000001, v436 + 156, v436, 0.0, 0);
          sub_7711C0(32119, (int)&v445, v349, (int)&v448, v436, 0.0, 0);
          sub_545030((void *)v438, (int)&unk_7BC0A80, (int)&v440, (int)&v445, 1);
          sub_7711C0(32229, (int)&v445, 0.40000001, v436 + 156, v436, 0.0, 0);
          sub_7711C0(32119, (int)&v445, 0.40000001, (int)&v448, v436, 0.0, 0);
          sub_545030((void *)v438, (int)&unk_7BC0AB0, (int)&v440, (int)&v445, 1);
          sub_7711C0(32229, (int)&v445, 0.40000001, v436 + 156, v436, 0.0, 0);
          sub_7711C0(32119, (int)&v445, 0.40000001, (int)&v448, v436, 0.0, 0);
          *(float *)&v448 = 0.0;
          v449 = 0.30000001;
          v450 = 0.69999999;
          sub_545030((void *)v438, (int)&unk_7BC0900, (int)&v440, (int)&v445, 1);
          sub_7711C0(32402, (int)&v445, 1.0, (int)&v448, v436, 0.0, 0);
          sub_545030((void *)v438, (int)&unk_7BC0930, (int)&v440, (int)&v445, 1);
          sub_7711C0(32402, (int)&v445, 0.80000001, (int)&v448, v436, 0.0, 0);
          sub_545030((void *)v438, (int)&unk_7BC0960, (int)&v440, (int)&v445, 1);
          sub_7711C0(32402, (int)&v445, 0.60000002, (int)&v448, v436, 0.0, 0);
          sub_545030((void *)v438, (int)&unk_7BC0990, (int)&v440, (int)&v445, 1);
          sub_7711C0(32402, (int)&v445, 0.40000001, (int)&v448, v436, 0.0, 0);
          sub_545030((void *)v438, (int)&unk_7BC09C0, (int)&v440, (int)&v445, 1);
          sub_7711C0(32402, (int)&v445, 0.2, (int)&v448, v436, 0.0, 0);
          sub_545030((void *)v438, (int)&unk_7BC09F0, (int)&v440, (int)&v445, 1);
          sub_7711C0(32402, (int)&v445, 0.1, (int)&v448, v436, 0.0, 0);
          break;

PS: Decompiled from IDA 6.6

PS 2: Here my created: "Legendary Lightning Effects" to: Season 4.6 (JPN) or (ENG) main.exe

Code:
        // ----
        // Legendary Set
        case ITEM2(7, 3):
        {
            if(rand() %15 <= 2)
            {
                Vector(1.f,1.f,1.f,Light2);
                Vector(1.f,1.f,1.f,Position);
                // ---
                b->TransformByObjectBone(Position,o,20);
                CreateEffect(387,Position,o->Angle,Light2,2,o,-1,0,-2.1f,0,0);
            }
        }
        break;
        // ---
        case ITEM2(8, 3):
        {
            if(rand() %15 <= 2)
            {
                Vector(1.f,1.f,1.f,Light2);
                Vector(1.f,1.f,1.f,Position);
                // ---
                b->TransformByObjectBone(Position,o,19);
                CreateEffect(387,Position,o->Angle,Light2,2,o,-1,0,-2.1f,0,0);
            }
            if(rand() %12 <= 2)
            {
                float Formula1 = (float)(rand() % 100) / 100.0f;
                
                vec3_t fVal;
                
                Vector( Formula1*0.5f + 4.0f,
                        Formula1*0.5f + 4.0f,
                        Formula1*0.5f + 2.0f, fVal );
                // ---
                Vector(0.f,0.5833f,1.f,Light2);
                Vector(1.f,1.f,1.f,Position);
                // ---
                b->TransformByObjectBone(Position,o,19);
                CreateSprite(32002,Position,fVal[1],Light2,o,fVal[0],0);
            }
        }
        break;
        // ---
        case ITEM2(9, 3):
        {
            if(rand() %15 <= 2)
            {
                Vector(1.f,1.f,1.f,Light2);
                Vector(1.f,1.f,1.f,Position);
                // ---
                b->TransformByObjectBone(Position,o,45);
                CreateEffect(387,Position,o->Angle,Light2,2,o,-1,0,-2.1f,0,0);
                // ---
                b->TransformByObjectBone(Position,o,49);
                CreateEffect(387,Position,o->Angle,Light2,2,o,-1,0,-2.1f,0,0);
            }
        }
        break;
        // ---
        case ITEM2(10, 3):
        {
            if(rand() %15 <= 2)
            {
                Vector(1.f,1.f,1.f,Light2);
                Vector(1.f,1.f,1.f,Position);
                // ---
                b->TransformByObjectBone(Position,o,36);
                CreateEffect(387,Position,o->Angle,Light2,2,o,-1,0,-2.1f,0,0);
            }
        }
        break;
        // ---
        case ITEM2(11, 3):
        {
            if(rand() %15 <= 2)
            {
                Vector(1.f,1.f,1.f,Light2);
                Vector(1.f,1.f,1.f,Position);
                // ---
                b->TransformByObjectBone(Position,o,4);
                CreateEffect(387,Position,o->Angle,Light2,2,o,-1,0,-2.1f,0,0);
                // ---
                b->TransformByObjectBone(Position,o,11);
                CreateEffect(387,Position,o->Angle,Light2,2,o,-1,0,-2.1f,0,0);
            }
        }
        break;
        // ----

PS 3: From this video ->



PS 4: Here I leave another Research by me on: 1.04d GMO main.exe and 1.03k JPN main.exe:

Code:
0x0074F901 -> JNZ por JMP (1.03k)


0x0082F07C -> JNZ por JMP (1.04d)

This is for Allow: Seed Spheres Combination (on Research Master NPC) from the same Types.. this is only for Client Side.. is necesary quit this check functions on your: GameServer Source too.. (is not difficult).
 
Last edited:
Joined
Jul 31, 2012
Messages
490
Reaction score
92
Please help with ExTeam main.exe finish bows and staff.

Or at least the programs that I use for smaller instructions on how to ExTeam.

Thank you

My
 
Newbie Spellweaver
Joined
Feb 12, 2012
Messages
60
Reaction score
2
Code:
LPVOID  F1_This;
DWORD   F1_Arg1;
DWORD   F1_Arg11;
DWORD   F1_Arg2;
DWORD   F2_Arg5;
DWORD   F3_Arg3;
float Color[3];
DWORD F1Arg11;
DWORD F2Arg5;
DWORD F1Arg2;

DWORD EffectList[60];

DWORD RandomedEffect;


	EffectList[0] = 31738;
	EffectList[1] = 32002;
	EffectList[2] = 32003;
	EffectList[3] = 32005;
	EffectList[4] = 32048;
	EffectList[5] = 32049;
	EffectList[6] = 32054;
	EffectList[7] = 32066;
	EffectList[8] = 32072;
	EffectList[9] = 32073;
	EffectList[10] = 32077;
	EffectList[11] = 32279;
	EffectList[12] = 32101;
	EffectList[13] = 32113;
	EffectList[14] = 32114;
	EffectList[15] = 32115;
	EffectList[16] = 32116;
	EffectList[17] = 32118;
	EffectList[18] = 32119;
	EffectList[19] = 32126;
	EffectList[20] = 32127;
	EffectList[21] = 32128;
	EffectList[22] = 32131;
	EffectList[23] = 32132;
	EffectList[24] = 32140;
	EffectList[25] = 32141;
	EffectList[26] = 32147;
	EffectList[27] = 32217;
	EffectList[28] = 32226;
	EffectList[29] = 32229;
	EffectList[30] = 32231;
	EffectList[31] = 32257;
	EffectList[32] = 32258;
	EffectList[33] = 32258;
	EffectList[34] = 32260;
	EffectList[35] = 32265;
	EffectList[36] = 32066;
	EffectList[37] = 32279;
	EffectList[38] = 32281;
	EffectList[39] = 32287;
	EffectList[40] = 32288;
	EffectList[41] = 32290;
	EffectList[42] = 32292;
	EffectList[43] = 32002;
	EffectList[44] = 32309;
	EffectList[45] = 32310;
	EffectList[46] = 32355;
	EffectList[47] = 32371;
	EffectList[48] = 32376;
	EffectList[49] = 32376;
	EffectList[50] = 32380;
	EffectList[51] = 32402;
	EffectList[52] = 32403;
	EffectList[53] = 32431;
	EffectList[54] = 32492;
	EffectList[55] = 32494;
	EffectList[56] = 32501;
	EffectList[57] = 32523;
	EffectList[58] = 32631;
	EffectList[59] = 32691;

else if (AddWingsEffect_Buff == ITEM2(12, 165))
		{


			
			Color[0] = ((float)(rand() % 100) / 100);
			Color[1] = ((float)(rand() % 100) / 100);
			Color[2] = ((float)(rand() % 100) / 100);//
			
			
			for (int i = 1; i < 48; i++)
			{
			
			memcpy(&F1Arg11, &F1_Arg11, sizeof(F1_Arg11));
			memcpy(&F2Arg5, &F2_Arg5, sizeof(F2_Arg5));
			memcpy(&F1Arg2, &F1_Arg2, sizeof(F1_Arg2));
			pAllowStaticEffect(F1_This, &F1Arg11, F1Arg2, i, 0);
			
			RandomedEffect = EffectList[rand() % 59];
			pPlayStaticEffect(RandomedEffect, &F1Arg11, 1, Color, F2Arg5, 1.0, 0);
			}
		}



where I meet: pPlayStaticEffect and pAllowStaticEffect which version of main?
 
Newbie Spellweaver
Joined
Feb 12, 2012
Messages
60
Reaction score
2
Here my release.. for: Flamberge, Sword Bracker and Imperial Sword (Season 4 Socket Swords) on: 1.04d GMO Effects:

Code:
    case 1197:    // Flamberge
          *(float *)&v448 = 0.80000001;
          v449 = 0.60000002;
          v450 = 0.2;
          sub_544E60(v438, (int)&v440, v437, 11, 0);
          sub_7711C0(32002, (int)&v440, 0.60000002, (int)&v448, v436, 0.0, 0);
          sub_7711C0(32002, (int)&v440, 0.60000002, (int)&v448, v436, 0.0, 0);
          *(float *)&v448 = 0.30000001;
          v449 = 0.80000001;
          v450 = 0.69999999;
          sub_544E60(v438, (int)&v440, v437, 12, 0);
          sub_7711C0(32002, (int)&v440, 0.5, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 13, 0);
          sub_7711C0(32002, (int)&v440, 0.5, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 12, 0);
          sub_7711C0(32002, (int)&v440, 0.30000001, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 13, 0);
          sub_7711C0(32002, (int)&v440, 0.30000001, (int)&v448, v436, 0.0, 0);
          *(float *)&v448 = 0.89999998;
          v449 = 0.1;
          v450 = 0.1;
          sub_544E60(v438, (int)&v440, v437, 1, 0);
          sub_7711C0(32402, (int)&v440, 0.80000001, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 2, 0);
          sub_7711C0(32402, (int)&v440, 0.69999999, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 3, 0);
          sub_7711C0(32402, (int)&v440, 0.69999999, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 4, 0);
          sub_7711C0(32402, (int)&v440, 0.69999999, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 5, 0);
          sub_7711C0(32402, (int)&v440, 0.60000002, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 6, 0);
          sub_7711C0(32402, (int)&v440, 0.5, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 7, 0);
          sub_7711C0(32402, (int)&v440, 0.5, (int)&v448, v436, 0.0, 0);
          break;
// -------------------------------------------------------------------------------------------
        case 1198:    // Sword Bracker
          *(float *)&v448 = 0.1;
          v449 = 0.89999998;
          v450 = 0.1;
          sub_544E60(v438, (int)&v440, v437, 1, 0);
          sub_7711C0(32402, (int)&v440, 0.60000002, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 2, 0);
          sub_7711C0(32402, (int)&v440, 0.5, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 3, 0);
          sub_7711C0(32402, (int)&v440, 0.5, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 4, 0);
          sub_7711C0(32402, (int)&v440, 0.5, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 5, 0);
          sub_7711C0(32402, (int)&v440, 0.40000001, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 6, 0);
          sub_7711C0(32402, (int)&v440, 0.30000001, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 7, 0);
          sub_7711C0(32402, (int)&v440, 0.30000001, (int)&v448, v436, 0.0, 0);
          for ( i10 = 1; i10 <= 7; ++i10 )
          {
            if ( !(sub_9CFA0D(a1, a2) % 4) )
            {
              *(float *)&v440 = 0.0;
              v441 = 0.0;
              v442 = 0.0;
              sub_544E60(v438, (int)&v440, v437, i10, 0);
              sub_74CBE0(a1, a2, 32290, (int)&v440, v437 + 264, (int)&v448, 12, 0.5, v437);
            }
          }
          break;
// -------------------------------------------------------------------------------------------
        case 1199:    // Imperial Sword
          v89 = (double)(sub_9CFA0D(a1, a2) % 15) / 30.0;
          v349 = v89 + 0.5;
          *(float *)&v440 = 0.0;
          v441 = 0.0;
          v442 = 0.0;
          *(float *)&v448 = 0.1;
          v449 = 0.40000001;
          v450 = 0.89999998;
          sub_545030((void *)v438, (int)&unk_7BC0A20, (int)&v440, (int)&v445, 1);
          sub_7711C0(32229, (int)&v445, 0.40000001, v436 + 156, v436, 0.0, 0);
          sub_7711C0(32119, (int)&v445, v349, (int)&v448, v436, 0.0, 0);
          *(float *)(v436 + 300) = *(float *)&v445;
          *(float *)(v436 + 304) = v446;
          *(float *)(v436 + 308) = v447;
          v346 = 0.0;
          v347 = 0.0;
          v348 = 0.89999998;
          sub_72D060(a1, a2, a3, 32223, (int)&v445, (int)&v445, v436 + 264, 17, v436, 25.0, -1, 0, 0, -1, 0, -1);
          sub_545030((void *)v438, (int)&unk_7BC0A50, (int)&v440, (int)&v445, 1);
          sub_7711C0(32229, (int)&v445, 0.40000001, v436 + 156, v436, 0.0, 0);
          sub_7711C0(32119, (int)&v445, v349, (int)&v448, v436, 0.0, 0);
          sub_545030((void *)v438, (int)&unk_7BC0A80, (int)&v440, (int)&v445, 1);
          sub_7711C0(32229, (int)&v445, 0.40000001, v436 + 156, v436, 0.0, 0);
          sub_7711C0(32119, (int)&v445, 0.40000001, (int)&v448, v436, 0.0, 0);
          sub_545030((void *)v438, (int)&unk_7BC0AB0, (int)&v440, (int)&v445, 1);
          sub_7711C0(32229, (int)&v445, 0.40000001, v436 + 156, v436, 0.0, 0);
          sub_7711C0(32119, (int)&v445, 0.40000001, (int)&v448, v436, 0.0, 0);
          *(float *)&v448 = 0.0;
          v449 = 0.30000001;
          v450 = 0.69999999;
          sub_545030((void *)v438, (int)&unk_7BC0900, (int)&v440, (int)&v445, 1);
          sub_7711C0(32402, (int)&v445, 1.0, (int)&v448, v436, 0.0, 0);
          sub_545030((void *)v438, (int)&unk_7BC0930, (int)&v440, (int)&v445, 1);
          sub_7711C0(32402, (int)&v445, 0.80000001, (int)&v448, v436, 0.0, 0);
          sub_545030((void *)v438, (int)&unk_7BC0960, (int)&v440, (int)&v445, 1);
          sub_7711C0(32402, (int)&v445, 0.60000002, (int)&v448, v436, 0.0, 0);
          sub_545030((void *)v438, (int)&unk_7BC0990, (int)&v440, (int)&v445, 1);
          sub_7711C0(32402, (int)&v445, 0.40000001, (int)&v448, v436, 0.0, 0);
          sub_545030((void *)v438, (int)&unk_7BC09C0, (int)&v440, (int)&v445, 1);
          sub_7711C0(32402, (int)&v445, 0.2, (int)&v448, v436, 0.0, 0);
          sub_545030((void *)v438, (int)&unk_7BC09F0, (int)&v440, (int)&v445, 1);
          sub_7711C0(32402, (int)&v445, 0.1, (int)&v448, v436, 0.0, 0);
          break;

PS: Decompiled from IDA 6.6

PS 2: Here my created: "Legendary Lightning Effects" to: Season 4.6 (JPN) or (ENG) main.exe

Code:
        // ----
        // Legendary Set
        case ITEM2(7, 3):
        {
            if(rand() %15 <= 2)
            {
                Vector(1.f,1.f,1.f,Light2);
                Vector(1.f,1.f,1.f,Position);
                // ---
                b->TransformByObjectBone(Position,o,20);
                CreateEffect(387,Position,o->Angle,Light2,2,o,-1,0,-2.1f,0,0);
            }
        }
        break;
        // ---
        case ITEM2(8, 3):
        {
            if(rand() %15 <= 2)
            {
                Vector(1.f,1.f,1.f,Light2);
                Vector(1.f,1.f,1.f,Position);
                // ---
                b->TransformByObjectBone(Position,o,19);
                CreateEffect(387,Position,o->Angle,Light2,2,o,-1,0,-2.1f,0,0);
            }
            if(rand() %12 <= 2)
            {
                float Formula1 = (float)(rand() % 100) / 100.0f;
                
                vec3_t fVal;
                
                Vector( Formula1*0.5f + 4.0f,
                        Formula1*0.5f + 4.0f,
                        Formula1*0.5f + 2.0f, fVal );
                // ---
                Vector(0.f,0.5833f,1.f,Light2);
                Vector(1.f,1.f,1.f,Position);
                // ---
                b->TransformByObjectBone(Position,o,19);
                CreateSprite(32002,Position,fVal[1],Light2,o,fVal[0],0);
            }
        }
        break;
        // ---
        case ITEM2(9, 3):
        {
            if(rand() %15 <= 2)
            {
                Vector(1.f,1.f,1.f,Light2);
                Vector(1.f,1.f,1.f,Position);
                // ---
                b->TransformByObjectBone(Position,o,45);
                CreateEffect(387,Position,o->Angle,Light2,2,o,-1,0,-2.1f,0,0);
                // ---
                b->TransformByObjectBone(Position,o,49);
                CreateEffect(387,Position,o->Angle,Light2,2,o,-1,0,-2.1f,0,0);
            }
        }
        break;
        // ---
        case ITEM2(10, 3):
        {
            if(rand() %15 <= 2)
            {
                Vector(1.f,1.f,1.f,Light2);
                Vector(1.f,1.f,1.f,Position);
                // ---
                b->TransformByObjectBone(Position,o,36);
                CreateEffect(387,Position,o->Angle,Light2,2,o,-1,0,-2.1f,0,0);
            }
        }
        break;
        // ---
        case ITEM2(11, 3):
        {
            if(rand() %15 <= 2)
            {
                Vector(1.f,1.f,1.f,Light2);
                Vector(1.f,1.f,1.f,Position);
                // ---
                b->TransformByObjectBone(Position,o,4);
                CreateEffect(387,Position,o->Angle,Light2,2,o,-1,0,-2.1f,0,0);
                // ---
                b->TransformByObjectBone(Position,o,11);
                CreateEffect(387,Position,o->Angle,Light2,2,o,-1,0,-2.1f,0,0);
            }
        }
        break;
        // ----

PS 3: From this video ->



PS 4: Here I leave another Research by me on: 1.04d GMO main.exe and 1.03k JPN main.exe:

Code:
0x0074F901 -> JNZ por JMP (1.03k)


0x0082F07C -> JNZ por JMP (1.04d)

This is for Allow: Seed Spheres Combination (on Research Master NPC) from the same Types.. this is only for Client Side.. is necesary quit this check functions on your: GameServer Source too.. (is not difficult).



could spend the .h the b-> TransformByObjectBone and CreateEffect?
 
Newbie Spellweaver
Joined
Feb 12, 2012
Messages
60
Reaction score
2
someone help me with the main pAllowStaticEffect 1:03:25? offset: 0x004E171E

decompilation IDA: int __thiscall sub_4E171E (float * this, int a2, a3 int, int a4, a5 char)

It would be like this?

#define pAllowStaticEffect ((void(__thiscall*)(LPVOID This, int Arg1, int Arg2, float Arg3, char Arg4)) 0x004E171E)


game closes when entering; /
 
Newbie Spellweaver
Joined
Jun 30, 2015
Messages
22
Reaction score
0
PS 1 :
Sorry for put the same effect on this Staff you must add your item case ObjectID in: WingsOfIllusion Inline function of my code and usage this model:

PLEASE Upload Link ..........
 
Newbie Spellweaver
Joined
May 15, 2014
Messages
99
Reaction score
4
nobody will LINK up the full code? :bawling:
 
Initiate Mage
Joined
Nov 23, 2016
Messages
4
Reaction score
0
Well, I now have a much better method than this, so I made this for those who want to learn something interesting..

First thing to understand: Formulas for calc "ItemID" and "ObjectID"

for ItemID is: #define ItemId(x, y) ((x * 512) + y)

Small explain:

x = item type get of your: Item(XXX).txt from server side
y = item index get of your: Item(XXX).txt from server side
512 = is max item index possible on: Item.bmd from client side

For example:

for calculate ItemID for item: "Divine Sword of Archangel" you must apply the Formula

Divine Sword ItemId = 0 * 512 + 19 = 19 (This value must be passed to hexadecimal: 0x13)

then: 0x13 is ItemId for: Divine Sword of Archangel (on any main.exe version more than: 1.01 series)

but, for example for calculate ItemID for: "Wings of Storm" of Blade Master:

Wings of Storm ItemId = 12 * 512 + 36 = 6180 (This value must be passed to hexadecimal: 0x1824)

then: 0x1824 is ItemId for: Wings of Storm (of course than on any main.exe more than: 1.01 series, and in main.exe from versions more old not exists this wings :p)

for ObjectID is: #define ObjectId(x, y) ((x * 512) + y + ItemArray)

Well is the same.. but have 1 aditional factor: ItemArray?? is very simple to find for any version of main.exe, in my case is: 834 (in decimal value) but in hexadecimal value is: 0x342

Small Guide to find: "ItemArray" in any main.exe (more than: 1.01 series)

http://forum.ragezone.com/f508/item-smoke-effect-868154/

Well then to calculate our ObjectID for each case of Item:

for example: Wings of Storm ObjectID = 12 * 512 + 36 + 834 = 7014 (in decimal value but passed to hexadecimal value is: 0x1B66)

then: 0x1B66 is ObjectID for: Wings of Storm in own main.exe version: 1.03.11 JPN :)

with main.exe open in ollydbg -> second click -> search for -> all constants and write: 1B66

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


the function allocated on: 005CFAC0 is the function for identifier: Wings of Storm and Render Sprites and Effects on this..

Well here a Individual part of code for understand..

Code:
void __declspec(naked) WingsOfStormEffect(){
    _asm
    {
        MOV EAX, DWORD PTR SS:[EBP+0x0C]
        MOV dwItem, EAX


        CMP dwItem,[COLOR=#ff0000]ObjectId(12,36) //Original case for Wings of Storm item[/COLOR]
        JE Return


        Return:
        MOV ECX,0x005CFAC7
        JMP ECX
    }
}

then.. If you add your own item to this Assembler Inline function re-writed of 1 asm Line of main.exe, and you put on your added item like: .smd the same count of Bones or Nodes, and convert to: .bmd, put on your client folder ussually: "Data/Item", and hook your compiled: Nemesis.dll to your: 1.03k JPN main.exe, you can see something like this:

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


Download FULL SOURCE CODE (100% FIXED NOT EXTRANGE CRASHS):



PS 1 :
Sorry for put the same effect on this Staff you must add your item case ObjectID in: WingsOfIllusion Inline function of my code and usage this model:


PS 2 :
For create your own items using this method of: "COPY" of original Wings 3 Effects every one of your added models .bmd must have exactly the same: counts of: Bones or Nodes, than original Wings Models effect, because main.exe get bone positions for calculate the effect lights positions.

Example with: Staff of Angel .smd:

Code:
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

38 is Bone count on: Wings of Illusion original one item than get this effects. :):

Credits for this: ONLY FOR ME (I create this method, like 1 easy way to render cool lights on Items)

And this is like Small Guide for noobs, because people with more knowledge, they may think that this is a silly method, but silly.. or not silly, this method works.

Does it work on MU Season 2?
 

Attachments

You must be registered for see attachments list
Joined
Oct 29, 2007
Messages
1,267
Reaction score
1,284
Does it work on MU Season 2?

hmm... no bro... on: Season 2 main.exe not exists: "3rd Level Wings" then... not exists: "Sprite Effects from this". Sorry. you must try to use: Season 3 Episode 1 or Season 2.5 JPN Protocol main.exe (or any version that have: 3rd Level Wings).

PS: But this method is old. maybe is more simple than another more complex ways to put cool Light effects on items, that require some minimum knowledge on programming. but maybe you can search here on forum, more related to this.
 
Newbie Spellweaver
Joined
May 7, 2016
Messages
5
Reaction score
1
Test Efects main 1.04j Kor

If someone has an interest in working on this version call

private.__declspec(naked) void WingsAddSpecialEffect() // -> 16 -> 00522D1B
{
// ----
_asm
{
mov eax, dword ptr ss:[ebp+8]
mov esi, dword ptr ds:[eax+0x330]
mov WingsAddSpecialEffect_Pointer, esi
}
// ----
// ----
if( WingsAddSpecialEffect_Pointer == ITEM2(12, 200) || WingsAddSpecialEffect_Pointer == ITEM2(12, 200) ) // Complete
{
_asm
{
MOV DWORD PTR SS:[EBP-0x1C], 0xC1D00000
MOV DWORD PTR SS:[EBP-0x18], 0x40A00000
MOV DWORD PTR SS:[EBP-0x14], 0x428C0000
// ----
PUSH 1
LEA EAX,[EBP-0x44]
mov WingsAddSpecialEffect_Arg7, eax
PUSH EAX
LEA ECX,[EBP-0x1C]
mov WingsAddSpecialEffect_Arg6, ecx
PUSH ECX
MOV EDX,DWORD PTR SS:[EBP+0x0C]
MOV EAX,DWORD PTR DS:[EDX+0x154]
mov WingsAddSpecialEffect_Arg5, eax
PUSH EAX
MOV ECX,DWORD PTR SS:[EBP-0x34]
mov WingsAddSpecialEffect_This, ecx
mov WingsAddSpecialEffect_Buff, 0x005020D9
CALL WingsAddSpecialEffect_Buff
// ----
MOV ECX,DWORD PTR SS:[EBP+0x0C]
ADD ECX, 0x128
mov WingsAddSpecialEffect_Arg4, ecx
MOV EDX,DWORD PTR SS:[EBP+0x0C]
ADD EDX, 0x330
mov WingsAddSpecialEffect_Arg3, edx
LEA EAX,[EBP-0x44]
mov WingsAddSpecialEffect_Arg2, eax
}
MU_SetEffect(0x6C9, WingsAddSpecialEffect_Arg2, WingsAddSpecialEffect_Arg3, WingsAddSpecialEffect_Arg4, 1, 0.8, 1);

}
_asm
{
mov eax, dword ptr ss:[ebp+0x0c]
//mov esi, dword ptr ds:[eax+0x30]
MOVSX esi,WORD PTR DS:[EAX+0x02]
mov WingsAddSpecialEffect_Pointer, esi
}
// ----
if( WingsAddSpecialEffect_Pointer != 0x217 )
{
_asm
{
mov WingsAddSpecialEffect_Buff, 0x0052341A
jmp WingsAddSpecialEffect_Buff
}
}
else
{
_asm
{
mov WingsAddSpecialEffect_Buff, 0x00522D2E
jmp WingsAddSpecialEffect_Buff
}
}
}

SetCompleteHook(0xE9,0x00522D1B,&WingsAddSpecialEffect); // 1.04j 00522D1B ok testado
 
Newbie Spellweaver
Joined
Mar 9, 2017
Messages
35
Reaction score
27
please share me offset for main 1.05D muemu Season 4


#define HDK_SET_ITEM_EFFECT 0x004F31FB
#define HDK_SET_COLOR_EFFECT 0x004F326F
#define HDK_ITEM_EFFECT_ALLOW 0x0057AD8D
#define HDK_ITEM_EFFECT_NOT_ALLOW 0x0057B73B
#define HDK_NEXT_ITEM_COLOR 0x0057AF2E
 
Newbie Spellweaver
Joined
Apr 15, 2018
Messages
5
Reaction score
2
Here my release.. for: Flamberge, Sword Bracker and Imperial Sword (Season 4 Socket Swords) on: 1.04d GMO Effects:

Code:
    case 1197:    // Flamberge
          *(float *)&v448 = 0.80000001;
          v449 = 0.60000002;
          v450 = 0.2;
          sub_544E60(v438, (int)&v440, v437, 11, 0);
          sub_7711C0(32002, (int)&v440, 0.60000002, (int)&v448, v436, 0.0, 0);
          sub_7711C0(32002, (int)&v440, 0.60000002, (int)&v448, v436, 0.0, 0);
          *(float *)&v448 = 0.30000001;
          v449 = 0.80000001;
          v450 = 0.69999999;
          sub_544E60(v438, (int)&v440, v437, 12, 0);
          sub_7711C0(32002, (int)&v440, 0.5, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 13, 0);
          sub_7711C0(32002, (int)&v440, 0.5, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 12, 0);
          sub_7711C0(32002, (int)&v440, 0.30000001, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 13, 0);
          sub_7711C0(32002, (int)&v440, 0.30000001, (int)&v448, v436, 0.0, 0);
          *(float *)&v448 = 0.89999998;
          v449 = 0.1;
          v450 = 0.1;
          sub_544E60(v438, (int)&v440, v437, 1, 0);
          sub_7711C0(32402, (int)&v440, 0.80000001, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 2, 0);
          sub_7711C0(32402, (int)&v440, 0.69999999, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 3, 0);
          sub_7711C0(32402, (int)&v440, 0.69999999, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 4, 0);
          sub_7711C0(32402, (int)&v440, 0.69999999, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 5, 0);
          sub_7711C0(32402, (int)&v440, 0.60000002, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 6, 0);
          sub_7711C0(32402, (int)&v440, 0.5, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 7, 0);
          sub_7711C0(32402, (int)&v440, 0.5, (int)&v448, v436, 0.0, 0);
          break;
// -------------------------------------------------------------------------------------------
        case 1198:    // Sword Bracker
          *(float *)&v448 = 0.1;
          v449 = 0.89999998;
          v450 = 0.1;
          sub_544E60(v438, (int)&v440, v437, 1, 0);
          sub_7711C0(32402, (int)&v440, 0.60000002, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 2, 0);
          sub_7711C0(32402, (int)&v440, 0.5, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 3, 0);
          sub_7711C0(32402, (int)&v440, 0.5, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 4, 0);
          sub_7711C0(32402, (int)&v440, 0.5, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 5, 0);
          sub_7711C0(32402, (int)&v440, 0.40000001, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 6, 0);
          sub_7711C0(32402, (int)&v440, 0.30000001, (int)&v448, v436, 0.0, 0);
          sub_544E60(v438, (int)&v440, v437, 7, 0);
          sub_7711C0(32402, (int)&v440, 0.30000001, (int)&v448, v436, 0.0, 0);
          for ( i10 = 1; i10 <= 7; ++i10 )
          {
            if ( !(sub_9CFA0D(a1, a2) % 4) )
            {
              *(float *)&v440 = 0.0;
              v441 = 0.0;
              v442 = 0.0;
              sub_544E60(v438, (int)&v440, v437, i10, 0);
              sub_74CBE0(a1, a2, 32290, (int)&v440, v437 + 264, (int)&v448, 12, 0.5, v437);
            }
          }
          break;
// -------------------------------------------------------------------------------------------
        case 1199:    // Imperial Sword
          v89 = (double)(sub_9CFA0D(a1, a2) % 15) / 30.0;
          v349 = v89 + 0.5;
          *(float *)&v440 = 0.0;
          v441 = 0.0;
          v442 = 0.0;
          *(float *)&v448 = 0.1;
          v449 = 0.40000001;
          v450 = 0.89999998;
          sub_545030((void *)v438, (int)&unk_7BC0A20, (int)&v440, (int)&v445, 1);
          sub_7711C0(32229, (int)&v445, 0.40000001, v436 + 156, v436, 0.0, 0);
          sub_7711C0(32119, (int)&v445, v349, (int)&v448, v436, 0.0, 0);
          *(float *)(v436 + 300) = *(float *)&v445;
          *(float *)(v436 + 304) = v446;
          *(float *)(v436 + 308) = v447;
          v346 = 0.0;
          v347 = 0.0;
          v348 = 0.89999998;
          sub_72D060(a1, a2, a3, 32223, (int)&v445, (int)&v445, v436 + 264, 17, v436, 25.0, -1, 0, 0, -1, 0, -1);
          sub_545030((void *)v438, (int)&unk_7BC0A50, (int)&v440, (int)&v445, 1);
          sub_7711C0(32229, (int)&v445, 0.40000001, v436 + 156, v436, 0.0, 0);
          sub_7711C0(32119, (int)&v445, v349, (int)&v448, v436, 0.0, 0);
          sub_545030((void *)v438, (int)&unk_7BC0A80, (int)&v440, (int)&v445, 1);
          sub_7711C0(32229, (int)&v445, 0.40000001, v436 + 156, v436, 0.0, 0);
          sub_7711C0(32119, (int)&v445, 0.40000001, (int)&v448, v436, 0.0, 0);
          sub_545030((void *)v438, (int)&unk_7BC0AB0, (int)&v440, (int)&v445, 1);
          sub_7711C0(32229, (int)&v445, 0.40000001, v436 + 156, v436, 0.0, 0);
          sub_7711C0(32119, (int)&v445, 0.40000001, (int)&v448, v436, 0.0, 0);
          *(float *)&v448 = 0.0;
          v449 = 0.30000001;
          v450 = 0.69999999;
          sub_545030((void *)v438, (int)&unk_7BC0900, (int)&v440, (int)&v445, 1);
          sub_7711C0(32402, (int)&v445, 1.0, (int)&v448, v436, 0.0, 0);
          sub_545030((void *)v438, (int)&unk_7BC0930, (int)&v440, (int)&v445, 1);
          sub_7711C0(32402, (int)&v445, 0.80000001, (int)&v448, v436, 0.0, 0);
          sub_545030((void *)v438, (int)&unk_7BC0960, (int)&v440, (int)&v445, 1);
          sub_7711C0(32402, (int)&v445, 0.60000002, (int)&v448, v436, 0.0, 0);
          sub_545030((void *)v438, (int)&unk_7BC0990, (int)&v440, (int)&v445, 1);
          sub_7711C0(32402, (int)&v445, 0.40000001, (int)&v448, v436, 0.0, 0);
          sub_545030((void *)v438, (int)&unk_7BC09C0, (int)&v440, (int)&v445, 1);
          sub_7711C0(32402, (int)&v445, 0.2, (int)&v448, v436, 0.0, 0);
          sub_545030((void *)v438, (int)&unk_7BC09F0, (int)&v440, (int)&v445, 1);
          sub_7711C0(32402, (int)&v445, 0.1, (int)&v448, v436, 0.0, 0);
          break;

PS: Decompiled from IDA 6.6

PS 2: Here my created: "Legendary Lightning Effects" to: Season 4.6 (JPN) or (ENG) main.exe

Code:
        // ----
        // Legendary Set
        case ITEM2(7, 3):
        {
            if(rand() %15 <= 2)
            {
                Vector(1.f,1.f,1.f,Light2);
                Vector(1.f,1.f,1.f,Position);
                // ---
                b->TransformByObjectBone(Position,o,20);
                CreateEffect(387,Position,o->Angle,Light2,2,o,-1,0,-2.1f,0,0);
            }
        }
        break;
        // ---
        case ITEM2(8, 3):
        {
            if(rand() %15 <= 2)
            {
                Vector(1.f,1.f,1.f,Light2);
                Vector(1.f,1.f,1.f,Position);
                // ---
                b->TransformByObjectBone(Position,o,19);
                CreateEffect(387,Position,o->Angle,Light2,2,o,-1,0,-2.1f,0,0);
            }
            if(rand() %12 <= 2)
            {
                float Formula1 = (float)(rand() % 100) / 100.0f;
                
                vec3_t fVal;
                
                Vector( Formula1*0.5f + 4.0f,
                        Formula1*0.5f + 4.0f,
                        Formula1*0.5f + 2.0f, fVal );
                // ---
                Vector(0.f,0.5833f,1.f,Light2);
                Vector(1.f,1.f,1.f,Position);
                // ---
                b->TransformByObjectBone(Position,o,19);
                CreateSprite(32002,Position,fVal[1],Light2,o,fVal[0],0);
            }
        }
        break;
        // ---
        case ITEM2(9, 3):
        {
            if(rand() %15 <= 2)
            {
                Vector(1.f,1.f,1.f,Light2);
                Vector(1.f,1.f,1.f,Position);
                // ---
                b->TransformByObjectBone(Position,o,45);
                CreateEffect(387,Position,o->Angle,Light2,2,o,-1,0,-2.1f,0,0);
                // ---
                b->TransformByObjectBone(Position,o,49);
                CreateEffect(387,Position,o->Angle,Light2,2,o,-1,0,-2.1f,0,0);
            }
        }
        break;
        // ---
        case ITEM2(10, 3):
        {
            if(rand() %15 <= 2)
            {
                Vector(1.f,1.f,1.f,Light2);
                Vector(1.f,1.f,1.f,Position);
                // ---
                b->TransformByObjectBone(Position,o,36);
                CreateEffect(387,Position,o->Angle,Light2,2,o,-1,0,-2.1f,0,0);
            }
        }
        break;
        // ---
        case ITEM2(11, 3):
        {
            if(rand() %15 <= 2)
            {
                Vector(1.f,1.f,1.f,Light2);
                Vector(1.f,1.f,1.f,Position);
                // ---
                b->TransformByObjectBone(Position,o,4);
                CreateEffect(387,Position,o->Angle,Light2,2,o,-1,0,-2.1f,0,0);
                // ---
                b->TransformByObjectBone(Position,o,11);
                CreateEffect(387,Position,o->Angle,Light2,2,o,-1,0,-2.1f,0,0);
            }
        }
        break;
        // ----

PS 3: From this video ->



PS 4: Here I leave another Research by me on: 1.04d GMO main.exe and 1.03k JPN main.exe:

Code:
0x0074F901 -> JNZ por JMP (1.03k)


0x0082F07C -> JNZ por JMP (1.04d)

This is for Allow: Seed Spheres Combination (on Research Master NPC) from the same Types.. this is only for Client Side.. is necesary quit this check functions on your: GameServer Source too.. (is not difficult).


could share primary source hook?
 
Back
Top