[Development] ex wings effects for season 6

Page 1 of 2 12 LastLast
Results 1 to 15 of 20
  1. #1
    ^_^ ashlay is offline
    MemberRank
    Jun 2010 Join Date
    BrazilLocation
    874Posts

    [Development] ex wings effects for season 6

    Original source by @myheart i just make it works on s6 still need some work to looks exactly like ex effects.

    .cpp
    Spoiler:
    cCreateEffect gCreateEffect;
    float &WorldTime = *(float*)0x666C558; //
    float &flt_7BC08A0 = *(float*)0x7BC08A0;

    #define sub_545030 ((float(__thiscall*)(float *this, float *a2, float *a3, float *a4, char a5))0x545030)

    float sub_4EC46D(float a1, float a2) //Main S13; Not here
    {
    float v5;
    float v2 = a2 * 0.01745f;
    float v6 = (float)((int)(v2 * 1000.0f / a1 + timeGetTime()) % (int)(6283.185546875f / a1))* 0.001f * a1;

    if (v6 >= 3.14f)
    v5 = cosf(v6);
    else
    v5 = -cosf(v6);
    return (float)((v5 + 1.0f) * 0.5f);
    }

    void sub_92A1E9(vec3_t a1, float a2)
    {
    float v1 = a1[0] * a1[0] + a1[1] * a1[1] + a1[2] * a1[2];

    float v3 = sqrtf(v1);

    if (v3 < 0.000001f && v3 > -0.000001f)
    {
    a1[0] = 0.0;
    a1[1] = 0.0;
    a1[2] = 0.0;
    }
    else
    {
    float v2 = 1.0f / a2;

    a1[0] *= v2;
    a1[1] *= v2;
    a1[2] *= v2;
    }
    }
    double sub_639050(float a1)
    {
    double result; // st7

    if (a1 >= 0.0)
    result = a1;
    else
    result = -a1;
    return result;
    }

    void CreateItemEffect(int lpModel, int ItemID, vec3_t Light, float Alpha, int ItemLevel, int NewOption, int a10, int a11, int RenderType)
    {
    pSetItemEffect(lpModel, ItemID, Light, Alpha, ItemLevel, NewOption, a10, a11, RenderType);

    LPVOID Model = pGetModel(pModelThis(), ItemID);
    vec3_t p;
    vec3_t Bone;
    vec3_t Color;
    vec3_t WorldPos;

    Vector(0.0f, 0.0f, 0.0f, p);
    Vector(WorldPos[0], WorldPos[1], WorldPos[2], WorldPos);//ok

    switch (ItemID)
    {
    case ITEM2(12, 180): //wing of Conqueror
    {
    int BoneID1[4] = { 14, 19, 37 ,42 };
    if (*(BYTE*)(oUserPreviewStruct + 120)) //Is character moving
    {
    float v213 = sub_4EC46D(10.0f, 0.0);

    if (v213 > 0.800000011920929f) // <- Change here may 0.4,0.5 is best
    {
    Vector(1.0f, 0.55000001f, 0.050000001f, Color);
    for (int i = 0; i < 4; i++)
    {
    pAllowPlayEffect(Model, Bone, lpModel, BoneID1[i], 0);
    WorldPos[0] = Bone[0] - WorldPos[0];
    WorldPos[1] = Bone[1] - WorldPos[1];
    WorldPos[2] = Bone[2] - WorldPos[2];
    sub_92A1E9(WorldPos, WorldPos[2]);
    WorldPos[0] -= (0.25f - (float)(GetLargeRand() % 50) / 100.0f);
    WorldPos[2] -= (0.25f - (float)(GetLargeRand() % 50) / 100.0f);
    //WorldPos[0] = WorldPos[0] - (0.25f - (float)(GetLargeRand() % 50) / 100.0f);
    //WorldPos[2] = (float)0.0 - (0.25f - (float)(GetLargeRand() % 50) / 100.0f);
    gCreateEffect.DynamicEffectEx(32290, Bone, WorldPos, Color, 17, 1.5f, &*(ObjectModel*)*(DWORD*)lpModel);

    }
    }
    }

    float v266 = sub_4EC46D(-2.0, 0.0);
    if (v266 <= 0.800000011920929)
    {
    if (v266 < 0.6000000238418579)
    v266 = 0.60000002;
    }
    else
    {
    v266 = 0.80000001;
    }

    Vector(v266 * 1.0, v266 * 0.6000000238418579, 0.0f, Color);
    pQuickPlayStaticEffect(Model, 32842, 47, 0.60000002f, Color, lpModel);
    pQuickPlayStaticEffect(Model, 32842, 24, 0.60000002f, Color, lpModel);
    pQuickPlayStaticEffect(Model, 32842, 31, 0.60000002f, Color, lpModel);
    pQuickPlayStaticEffect(Model, 32842, 40, 0.60000002f, Color, lpModel);
    pQuickPlayStaticEffect(Model, 32842, 8, 0.60000002f, Color, lpModel);
    pQuickPlayStaticEffect(Model, 32842, 17, 0.60000002f, Color, lpModel);
    pQuickPlayStaticEffect(Model, 32842, 46, 1.2f, Color, lpModel);
    pQuickPlayStaticEffect(Model, 32842, 23, 1.2f, Color, lpModel);

    Vector(1.0f, 0.15000001f, 0.050000001f, Color);
    float rFloat = (double)(GetLargeRand() % 10) / 50.0 + 0.2000000029802322f;

    int BoneID2[8] = { 35, 39 ,44, 45, 12, 16, 21, 22 };
    for (int i = 0; i < 8; i++)
    {
    pQuickPlayStaticEffect(Model, 0x7E92, BoneID2[i], 0.40000001f + rFloat, Color, lpModel);
    }

    int BoneID3[7] = { 61, 59, 62, 55, 52, 53, 54 };
    for (int i = 0; i < 7; i++)
    {
    pQuickPlayStaticEffect(Model, 0x7E92, BoneID3[i], 0.2f + rFloat, Color,lpModel);
    }
    }
    break;
    case ITEM2(12, 181):
    {
    float WorldTime = (0.10f - (float)(GetLargeRand() % 50) / 100.0f);
    float ft1 = WorldTime * 0.5f + 1.8f;
    float ft2 = WorldTime * 0.5f + 2.5f;

    int BoneID[22] = { 61,42,60,41,63,44,42,59,40,62,43,65,46,58,39,64,45,13,15,25,27,3 };

    Vector(0.34f, 0.25f, 1.0f, Color);

    for (int x = 0; x < 22; x++)
    {
    pQuickPlayStaticEffect(Model, 32002, BoneID[x], ft1, Color ,lpModel);
    if (x >= 22 - 5)
    {
    pQuickPlayStaticEffect(Model, 32842, BoneID[x], (0.5 + 0), Color, lpModel);
    }
    }

    for (int i12 = 0; i12 < 4; ++i12)
    {
    float v134 = sub_4EC46D(2.0, 90.0f);
    float v135 = 1.0 - v134;
    v135 = v135 * 3.0;
    float ft3 = v134 * 0.300000011920929;

    Vector(v135 * 1.0f, v135 * 0.6000000238418579f, v135 * 0.4000000059604645f, Color);

    pQuickPlayStaticEffect(Model, 32781, 14, ft3, Color, lpModel);
    pQuickPlayStaticEffect(Model, 32781, 26, ft3, Color, lpModel);
    }

    int BoneID2[8] = { 65,46,59,40,11,12,23,24 };
    Vector(0.0f, 0.0f, 0.0f, Color);

    for (int i13 = 0; i13 < 8; i13++)
    {
    pAllowPlayEffect(Model, Bone, lpModel, BoneID2[i13], 0);
    WorldPos[0] = Bone[0] - WorldPos[0];
    WorldPos[1] = Bone[1] - WorldPos[1];
    WorldPos[2] = Bone[2] - WorldPos[2];

    if (!((signed int)GetLargeRand() % 10))
    {
    //sub_545030(Model, &flt_7BC08A0[12 * *(&v202 + i13)], &v237, &v188, 1);
    //Type,Position,Angle,Light,SubType,Owner,PKKey,Skill,Scale,SkillSerial,SkillAngle,SkillHotKey
    if (i13 >= 8 / 2)
    CreateEffect(299, Bone, WorldPos, Color, 2, lpModel, -1, 0, 0.005, 0, 0, -1);
    else//2
    CreateEffect(299, Bone, WorldPos, Color, 1, lpModel, -1, 0, 0.005, 0, 0, -1);
    }
    }
    }
    break;
    case ITEM2(12, 185):// Wings of Life
    {
    int BoneID[22] = { 8,9,19,21,29,37,6,11,18,22,5,10,17,20,27,35,7,16,28,36,44,50 };

    float v97 = WorldTime * 0.002000000094994903f;
    float v98 = cosf(v97);
    float v1263 = sub_639050(v98);

    for (int i10 = 0; i10 < 22; ++i10)
    {
    if (i10 >= 6)
    {
    Vector(v1263*1.0f, v1263*0.1000000014901161f, v1263*0.1000000014901161f, Color);
    if (i10 < 6 || i10 >= 10)
    {

    if (i10 < 10 || i10 >= 16)
    {
    if (i10 >= 16 && i10 < 22)
    {
    pQuickPlayStaticEffect(Model, 32002, BoneID[i10], 0.80000001f, Color, lpModel);
    }
    }
    else
    {
    pQuickPlayStaticEffect(Model, 32002, BoneID[i10], 1.0f, Color, lpModel);
    }
    }
    else
    {
    pQuickPlayStaticEffect(Model, 32002, BoneID[i10], 1.6f, Color, lpModel);
    }
    }
    else
    {
    Vector(v1263*1.0f, v1263 * 0.6499999761581421f, 0.0, Color);
    pQuickPlayStaticEffect(Model, 32002, BoneID[i10], 1.0999999f, Color, lpModel);
    }
    //if (!(rand() % 15))
    //{
    // Vector(1.0, 1.0, 0.34999999, Color);

    // pAllowPlayEffect(Model, Bone, lpModel, BoneID[i10], 0);
    // WorldPos[0] = Bone[0] - WorldPos[0];
    // WorldPos[1] = Bone[1] - WorldPos[1];
    // WorldPos[2] = Bone[2] - WorldPos[2];
    // //pPlayDynamicEffect(32587, Bone, WorldPos, Color, 5, 0.17f, lpModel);
    // gCreateEffect.DynamicEffectEx(32587, Bone, WorldPos, Color, 5, 0.17f, &*(ObjectModel*)*(DWORD*)lpModel);
    //}
    }
    }
    break;

    case ITEM2(12, 183)://Wings of chaos
    {
    float v89 = WorldTime * 0.002000000094994903f;
    float v90 = cosf(v89);
    float v308 = sub_639050(v90);

    Vector(v308 + 0.300000011920929f, v308 + 0.300000011920929f, v308 + 0.300000011920929f, Color);
    pQuickPlayStaticEffect(Model, 32501, 43, 0.40000001f, Color, lpModel);

    float v91 = WorldTime * 0.05000000074505806f;
    float v93 = cosf(v91);
    v308 = sub_639050(v93);

    Vector(v308 + 0.300000011920929f, v308 + 0.300000011920929f, v308 + 0.300000011920929f, Color);
    pQuickPlayStaticEffect(Model, 32836, 43, 0.60000002f, Color, lpModel);

    Vector(1.0, 0.30000001, 1.0, Color);
    pQuickPlayStaticEffect(Model, 32783, 43, 0.2f, Color, lpModel);

    Vector(1.0, 1.0, 1.0, Color);
    pQuickPlayStaticEffect(Model, 32836, 43, 0.15000001f, Color, lpModel);
    }
    break;

    case ITEM2(12, 184):
    {
    float v96 = WorldTime * 0.001000000047497451f;
    float v97 = cosf(v96);
    float v304 = sub_639050(v97) * 0.4000000059604645f;

    Vector((v304 + 0.5f) / 2.0f,
    (v304 + 0.5f) / 2.0f,
    (v304 + 0.5f) / 2.0f, Color);

    pQuickPlayStaticEffect(Model, 32836, 8, 0.80000001f, Color, lpModel);
    pQuickPlayStaticEffect(Model, 32836, 16, 0.80000001f, Color, lpModel);
    pQuickPlayStaticEffect(Model, 32231, 8, 0.60000002f, Color, lpModel);
    pQuickPlayStaticEffect(Model, 32231, 16, 0.60000002f, Color, lpModel);

    Vector(v304 + 0.5, v304 + 0.5, v304 + 0.5, Color);
    pQuickPlayStaticEffect(Model, 32231, 20, 0.60000002f, Color, lpModel);
    pQuickPlayStaticEffect(Model, 32231, 24, 0.60000002f, Color, lpModel);
    }
    break;
    }
    }

    DYNAMIC_EFFECT_INFO *m_DynamicEffectInfo = (DYNAMIC_EFFECT_INFO*)0x8907508;
    int cCreateEffect::DynamicEffectEx(DWORD ModelID, vec3_t VecPos, vec3_t WorldPos, vec3_t Color, int SubEffectID, float Scale, ObjectModel* lpModel)
    {
    DYNAMIC_EFFECT_INFO *lpEffect;

    for (int i = 0; i < 3000; ++i)
    {
    lpEffect = &m_DynamicEffectInfo[i];
    if (!lpEffect->Enable)
    break;
    }

    if (!lpEffect)
    {
    return 0;
    }

    lpEffect->Enable = 1;
    lpEffect->EffectID = ModelID;
    lpEffect->TextureID = ModelID;
    lpEffect->SubEffectID = SubEffectID;
    lpEffect->VecPos.X = VecPos[0];
    lpEffect->VecPos.Y = VecPos[1];
    lpEffect->VecPos.Z = VecPos[2];
    lpEffect->VecPos2.X = VecPos[0];
    lpEffect->VecPos2.Y = VecPos[1];
    lpEffect->VecPos2.Z = VecPos[2];
    lpEffect->Color.X = Color[0];
    lpEffect->Color.Y = Color[1];
    lpEffect->Color.Z = Color[2];
    lpEffect->Scale = Scale;
    lpEffect->Unknown80 = 0.0;
    lpEffect->Unknown60 = 2;
    lpEffect->Unknown72 = 0;
    lpEffect->m_Owner = lpModel;
    lpEffect->Unknown68 = 0.0;
    lpEffect->Unknown76 = 1;

    lpEffect->WorldPos.X = WorldPos[0];
    lpEffect->WorldPos.Y = WorldPos[1];
    lpEffect->WorldPos.Z = WorldPos[2];
    lpEffect->Unknown84.X = 0.0;
    lpEffect->Unknown84.Y = 0.0;
    lpEffect->Unknown84.Z = 0.0;

    switch (lpEffect->EffectID)
    {
    case 32587: //Texture ID Main Season 13 -- Effectshiny06.jpg
    if (lpEffect->SubEffectID)
    {
    if (lpEffect->SubEffectID > 0 && lpEffect->SubEffectID <= 3)
    {
    lpEffect->Unknown60 = GetLargeRand() % 11 + 20;
    lpEffect->Unknown56 = 0.0;
    lpEffect->Unknown68 = (float)(GetLargeRand() % 180);
    lpEffect->Scale = Scale - (float)(GetLargeRand() % 6) * (Scale / 10.0f);

    switch (lpEffect->SubEffectID)
    {
    case 1:
    lpEffect->VecPos.X = (float)(GetLargeRand() % 31) - 15.0f + lpEffect->VecPos.X;
    lpEffect->VecPos.Y = (float)(GetLargeRand() % 31) - 15.0f + lpEffect->VecPos.Y;
    lpEffect->VecPos.Z = (float)(GetLargeRand() % 21) + 12.0f + lpEffect->VecPos.Z;
    break;
    case 2:
    lpEffect->VecPos.X = (float)(GetLargeRand() % 31) / 30.0f * 40.0f - 20.0f + lpEffect->VecPos.X;
    lpEffect->VecPos.Y = (float)(GetLargeRand() % 31) / 30.0f * 40.0f - 20.0f + lpEffect->VecPos.Y;
    lpEffect->VecPos.Z = (float)(GetLargeRand() % 24) + 14.0f + lpEffect->VecPos.Z;
    break;
    case 3:
    lpEffect->VecPos.X = (float)(GetLargeRand() % 31) / 30.0f * 70.0f - 35.0f + lpEffect->VecPos.X;
    lpEffect->VecPos.Y = (float)(GetLargeRand() % 31) / 30.0f * 70.0f - 35.0f + lpEffect->VecPos.Y;
    lpEffect->VecPos.Z = (float)(GetLargeRand() % 30) + 20.0f + lpEffect->VecPos.Z;
    break;
    }
    }
    else
    {
    switch (lpEffect->SubEffectID)
    {
    case 4:
    break;
    case 6:
    lpEffect->Unknown60 = 15;
    lpEffect->Unknown68 = (float)(GetLargeRand() % 360);
    lpEffect->Unknown84.X = (float)-(GetLargeRand() % 2 - 1);
    lpEffect->Unknown84.Y = (float)-(GetLargeRand() % 4);
    lpEffect->Unknown84.Z = (float)-(GetLargeRand() % 4);
    break;
    case 7:
    lpEffect->Scale = (float)(GetLargeRand() % 8 + 1) * 0.1 * Scale;
    lpEffect->Unknown60 = GetLargeRand() % 20 + 20;
    lpEffect->Unknown56 = 1.0f;
    lpEffect->Unknown68 = (float)(GetLargeRand() % 180);
    break;
    }
    }
    }
    else
    {
    lpEffect->Unknown60 = 18;
    lpEffect->WorldPos.X = 45.0;
    }
    break; //return i; <---
    case 32355:
    if (lpEffect->SubEffectID)
    {
    if (lpEffect->SubEffectID > 0 && lpEffect->SubEffectID <= 3)
    {
    lpEffect->Unknown60 = GetLargeRand() % 11 + 20;
    lpEffect->Unknown56 = 0.0;
    lpEffect->Unknown68 = (float)(GetLargeRand() % 180);
    lpEffect->Scale = Scale - (float)(GetLargeRand() % 6) * (Scale / 10.0f);

    switch (lpEffect->SubEffectID)
    {
    case 1:
    lpEffect->VecPos.X = (float)(GetLargeRand() % 31) - 15.0f + lpEffect->VecPos.X;
    lpEffect->VecPos.Y = (float)(GetLargeRand() % 31) - 15.0f + lpEffect->VecPos.Y;
    lpEffect->VecPos.Z = (float)(GetLargeRand() % 21) + 12.0f + lpEffect->VecPos.Z;
    break;
    case 2:
    lpEffect->VecPos.X = (float)(GetLargeRand() % 31) / 30.0f * 40.0f - 20.0f + lpEffect->VecPos.X;
    lpEffect->VecPos.Y = (float)(GetLargeRand() % 31) / 30.0f * 40.0f - 20.0f + lpEffect->VecPos.Y;
    lpEffect->VecPos.Z = (float)(GetLargeRand() % 24) + 14.0f + lpEffect->VecPos.Z;
    break;
    case 3:
    lpEffect->VecPos.X = (float)(GetLargeRand() % 31) / 30.0f * 70.0f - 35.0f + lpEffect->VecPos.X;
    lpEffect->VecPos.Y = (float)(GetLargeRand() % 31) / 30.0f * 70.0f - 35.0f + lpEffect->VecPos.Y;
    lpEffect->VecPos.Z = (float)(GetLargeRand() % 30) + 20.0f + lpEffect->VecPos.Z;
    break;
    }
    }
    else
    {
    switch (lpEffect->SubEffectID)
    {
    case 4:

    break;
    case 6:
    lpEffect->Unknown60 = 15;
    lpEffect->Unknown68 = (float)(GetLargeRand() % 360);
    lpEffect->Unknown84.X = (float)-(GetLargeRand() % 2 - 1);
    lpEffect->Unknown84.Y = (float)-(GetLargeRand() % 4);
    lpEffect->Unknown84.Z = (float)-(GetLargeRand() % 4);
    break;
    case 7:
    lpEffect->Scale = (float)(GetLargeRand() % 8 + 1) * 0.1 * Scale;
    lpEffect->Unknown60 = GetLargeRand() % 20 + 20;
    lpEffect->Unknown56 = 1.0f;
    lpEffect->Unknown68 = (float)(GetLargeRand() % 180);
    break;
    }
    }
    }
    else
    {
    lpEffect->Unknown60 = 18;
    lpEffect->WorldPos.X = 45.0;
    }
    break; //return i; <---
    case 32290:
    if (lpEffect->SubEffectID)
    {
    switch (lpEffect->SubEffectID)
    {
    case 0x11://for wings of conqueror
    lpEffect->Unknown68 = (float)(GetLargeRand() % 360);
    lpEffect->Unknown60 = 25;
    lpEffect->Scale = Scale;
    break;
    }
    }
    else
    {
    lpEffect->Unknown60 = 20;
    lpEffect->Unknown84.Z = (GetLargeRand() % 5 + 2);
    }
    //lpEffect->Unknown68 = (double)(GetLargeRand() % 360);
    //lpEffect->Scale = (double)(GetLargeRand() % 10 + 10) * 0.01999999955296516;
    // --
    lpEffect->VecPos.X = (double)(GetLargeRand() % 40) - 20.0 + lpEffect->VecPos.X;
    lpEffect->VecPos.Y = (double)(GetLargeRand() % 40) - 20.0 + lpEffect->VecPos.Y;
    lpEffect->VecPos.Z = (double)(GetLargeRand() % 20) - 10.0 + lpEffect->VecPos.Z;
    break;
    }
    return 0;
    }
    void cCreateEffect::Load()
    {
    SetCompleteHook(0xE8, 0x0061041C, &CreateItemEffect);
    SetCompleteHook(0xE8, 0x00610466, &CreateItemEffect);
    SetCompleteHook(0xE8, 0x005666C1, &CreateItemEffect);
    }


    .h
    Spoiler:
    #pragma pack(push, 1)
    #define pQuickPlayStaticEffect ((int(__cdecl*)(LPVOID Model, int ModelID, int Joint, float size, vec3_t Color, int ObjModel)) 0x565560)//ok sub_565560
    #define pAllowPlayEffect ((void(__thiscall*)(LPVOID This, vec3_t Bone1, int lpModel, signed int joint, int a5)) 0x544E60)
    #define oUserPreviewStruct *(int*)0x7BC4F04
    #define pSetItemEffect ((void(__cdecl*)(int lpModel, int ItemID, vec3_t Light, float Alpha, int ItemLevel, int NewOption, int a10, int a11, int RenderType)) 0x00609E70)
    #define pModelThis ((LPVOID(*)())0x004CDA10)//ok
    #define pGetModel ((LPVOID(__thiscall*)(LPVOID This, signed int a2)) 0x00969C50)//ok

    struct DYNAMIC_EFFECT_INFO //(size: 132)
    {
    /*+0*/ bool Enable; //int
    BYTE gap1[3];
    /*+4*/ DWORD EffectID;
    /*+8*/ DWORD TextureID;
    /*+12*/ int SubEffectID;
    /*+16*/ float Scale;
    /*+20*/ VAngle VecPos;
    /*+32*/ VAngle WorldPos;
    /*+44*/ VAngle Color;
    /*+56*/ float Unknown56; //Alpha
    /*+60*/ DWORD Unknown60;
    /*+64*/ ObjectModel * m_Owner;
    /*+68*/ float Unknown68; //
    /*+72*/ DWORD Unknown72;
    /*+76*/ BYTE Unknown76; //int
    BYTE Gap01[3];
    /*+80*/ float Unknown80;
    /*+84*/ VAngle Unknown84;
    /*+96*/ VAngle Color2;
    /*+108*/ VAngle VecPos2;
    BYTE Gap02[12];
    };

    #pragma pack(pop)
    //Main 1.04C: 0x8905508
    //Main 1.04D/1.04E: 0x8907508
    #define CreateEffect ((void(__cdecl*)(int Type, vec3_t a5, vec3_t Angle, vec3_t Light, int SubType, int Owner, short PKKey, BYTE Skill, float Scale, BYTE SkillSerial, vec3_t SkillAngle, BYTE SkillHotKey))0x6D9070)


    class cCreateEffect
    {
    public:
    void Load();
    int DynamicEffectEx(DWORD ModelID, vec3_t VecPos, vec3_t WorldPos, vec3_t Color, int SubEffectID, float Scale, ObjectModel* lpModel);
    };
    extern cCreateEffect gCreateEffect;


    Any help to make it looks better is welcome.

    original effects source can be found here: http://forum.ragezone.com/f197/igcn-...ustom-1142304/
    s6 source i'm using can be found here: http://forum.ragezone.com/f197/relea...6-3-a-1133736/


  2. #2
    Apprentice k12leito is offline
    MemberRank
    Nov 2006 Join Date
    7Posts

    re: [Development] ex wings effects for season 6

    Hello,would have some example to add effect on the main old, ex: season 1?

    Thank you

  3. #3
    Member NaveMu is offline
    MemberRank
    Feb 2012 Join Date
    61Posts

    re: [Development] ex wings effects for season 6

    Ok but about the conqueror wing: *(BYTE*)(oUserPreviewStruct + 120) is the character, and anothe character? Would the smoke in the case be just visual to myself?

  4. #4
    ^_^ ashlay is offline
    MemberRank
    Jun 2010 Join Date
    BrazilLocation
    874Posts

    re: [Development] ex wings effects for season 6

    Quote Originally Posted by NaveMu View Post
    Ok but about the conqueror wing: *(BYTE*)(oUserPreviewStruct + 120) is the character, and anothe character? Would the smoke in the case be just visual to myself?
    well not sure its from original effect source.

    i did not research too deep on this part of the code if you want to check on main season9 igcn.

    sub_572C53

  5. #5
    Member NaveMu is offline
    MemberRank
    Feb 2012 Join Date
    61Posts

    re: [Development] ex wings effects for season 6

    Quote Originally Posted by ashlay View Post
    well not sure its from original effect source.

    i did not research too deep on this part of the code if you want to check on main season9 igcn.

    sub_572C53
    Ah ok, thanks for you attention :)

  6. #6
    0x4D696E68 myheart is offline
    MemberRank
    Jun 2017 Join Date
    354Posts

    re: [Development] ex wings effects for season 6

    WorldTime = timeGetTime()
    and
    sub_545030(Model, &flt_7BC08A0[12 * *(&v202 + i13)], &v237, &v188, 1);
    =
    Code:
    struct MATRIX4X3
    {
     float x1,x2,x3,y1,y2,y3,z1,z2,z3,w1,w2,w3;
    }
    Code:
    MATRIX4X3 * m_JointInfo = (MATRIX4X3*)0x7BC08A0; //Max 200 MATRIX4X3 m_JointInfo[200]; 
    
    Vec3D v237(0.0, 0.0, 0.0);
    Vec3D Vecpos;
    BoneTransform(Model, &m_JointInfo[v202[i]], &v237, &Vecpos, 1); 
    
    



  7. #7
    ^_^ ashlay is offline
    MemberRank
    Jun 2010 Join Date
    BrazilLocation
    874Posts

    Re: [Development] ex wings effects for season 6

    @myheart
    where i can find Vec3D class?

  8. #8
    0x4D696E68 myheart is offline
    MemberRank
    Jun 2017 Join Date
    354Posts

    Re: [Development] ex wings effects for season 6

    Quote Originally Posted by ashlay View Post
    @myheart
    where i can find Vec3D class?
    here http://forum.ragezone.com/f508/devel...pengl-1152596/

    Vec3D = vec3_t = float[3]

    but vec3_t have bug

  9. #9
    Member NaveMu is offline
    MemberRank
    Feb 2012 Join Date
    61Posts

    Re: [Development] ex wings effects for season 6

    Quote Originally Posted by myheart View Post
    here http://forum.ragezone.com/f508/devel...pengl-1152596/

    Vec3D = vec3_t = float[3]

    but vec3_t have bug
    What bug have in vec3_t?

  10. #10
    Enthusiast ZidSliver is offline
    MemberRank
    Mar 2017 Join Date
    31Posts

    Re: [Development] ex wings effects for season 6

    How can I use this in MUEMU SEASON 6, a guide to add it and compile it?

  11. #11
    Valued Member MaxVoll is offline
    MemberRank
    Aug 2013 Join Date
    112Posts

    Re: [Development] ex wings effects for season 6

    Quote Originally Posted by ZidSliver View Post
    How can I use this in MUEMU SEASON 6, a guide to add it and compile it?
    friend as is the .cpp and the .h you can use it in muemu.
    Last edited by allexander; 14-09-18 at 08:27 PM. Reason: English only.

  12. #12
    Account Upgraded | Title Enabled! BladeKnight109 is offline
    MemberRank
    Jun 2014 Join Date
    242Posts

    Re: [Development] ex wings effects for season 6

    offset in file .cpp and .h is main 1.04E.

    offset for main 1.04D
    Code:
    #define pSetItemEffect            ((void(__cdecl*)(int lpModel, int ItemID, vec3_t Light, float Alpha, int ItemLevel, int NewOption, int Arg7, int Arg8, int RenderType)) 0x609E70)
    #define pModelThis                ((LPVOID(*)())0x4CDA10)#define pGetModel                ((LPVOID(__thiscall*)(LPVOID This, signed int a2)) 0x969AD0)
    #define BoneTransform            ((float(__thiscall*)(LPVOID This, MATRIX4X3 * a2, vec3_t * a3, vec3_t * a4, char a5))0x545030)
    float &WorldTime = *(float*)0x666C558; (I can't find it), but you can use timeGetTime()


    @myheart: can you expand how to add texture effect to wing?
    i have found offset function, but i have some problem killer wings do not change color to red
    Last edited by BladeKnight109; 13-09-18 at 07:55 PM.

  13. #13
    ^_^ ashlay is offline
    MemberRank
    Jun 2010 Join Date
    BrazilLocation
    874Posts

    Re: [Development] ex wings effects for season 6

    Quote Originally Posted by BladeKnight109 View Post
    offset in file .cpp and .h is main 1.04E.

    offset for main 1.04D
    Code:
    #define pSetItemEffect            ((void(__cdecl*)(int lpModel, int ItemID, vec3_t Light, float Alpha, int ItemLevel, int NewOption, int Arg7, int Arg8, int RenderType)) 0x609E70)
    #define pModelThis                ((LPVOID(*)())0x4CDA10)#define pGetModel                ((LPVOID(__thiscall*)(LPVOID This, signed int a2)) 0x969AD0)
    #define BoneTransform            ((float(__thiscall*)(LPVOID This, MATRIX4X3 * a2, vec3_t * a3, vec3_t * a4, char a5))0x545030)
    float &WorldTime = *(float*)0x666C558; (I can't find it), but you can use timeGetTime()


    @myheart: can you expand how to add texture effect to wing?
    i have found offset function, but i have some problem killer wings do not change color to red
    Check gameserver source for timeGetTime().

  14. #14
    Account Upgraded | Title Enabled! BladeKnight109 is offline
    MemberRank
    Jun 2014 Join Date
    242Posts

    Re: [Development] ex wings effects for season 6

    Quote Originally Posted by ashlay View Post
    Check gameserver source for timeGetTime().
    #include <mmsystem.h>
    #pragma comment(lib, "winmm.lib")

  15. #15
    0x4D696E68 myheart is offline
    MemberRank
    Jun 2017 Join Date
    354Posts

    Re: [Development] ex wings effects for season 6

    Quote Originally Posted by BladeKnight109 View Post

    @myheart: can you expand how to add texture effect to wing?
    i have found offset function, but i have some problem killer wings do not change color to red
    i think you hooked on incorrect offset.




Page 1 of 2 12 LastLast

Advertisement