Effect hiba (ezerszer próbáltam)

Indította FloodX, 2018-01-29, 17:40:24

Sziasztok!

Pát napja egyfolytában megjelennek, ha a találati infó be van kapcsolva. Csatoltam képet.

Playersettingmodule:
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+60, "Bip01", "D:/ymir work/pc/common/effect/armor/kekleszek.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+61, "Bip01", "D:/ymir work/pc/common/effect/armor/mercury.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+62, "Bip01", "D:/ymir work/pc/common/effect/armor/youtuber.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+63, "Bip01", "D:/ymir work/pc/common/pirieffect.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+64, "Bip01", "D:/ymir work/effect/character/blue.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+65, "Bip01", "D:/ymir work/effect/character/green.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+66, "Bip01", "D:/ymir work/effect/character/red.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+67, "Bip01", "D:/ymir work/effect/character/yellow.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+68, "Bip01", "D:/ymir work/effect/character/black.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+69, "Bip01", "D:/ymir work/effect/character/brown.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+70, "Bip01", "D:/ymir work/effect/character/violet.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+71, "Bip01", "D:/ymir work/effect/character/white.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+72, "Bip01", "D:/ymir work/effect/character/orange.mse")

Ezeket ugye item_proto-ból olvassa be. De ugyanezeket beraktam forrásba a koszümökhöz.
Ez így néz ki: case CItemData::ITEM_TYPE_COSTUME:
__ClearArmorRefineEffect();

// °©żĘ ĆŻČ­ ŔĚĆĺĆ®
if (pItem->GetSubType() == CItemData::COSTUME_BODY)
{
DWORD vnum = pItem->GetIndex();

if (21009 <= vnum && vnum <= 21019)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_1);
}
if (21029 <= vnum && vnum <= 21039)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_2);
}
if (24000 <= vnum && vnum <= 24001)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_3);
}
if (24002 <= vnum && vnum <= 24003)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_4);
}
if (24004 <= vnum && vnum <= 24005)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_5);
}
if (24006 <= vnum && vnum <= 24007)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_6);
}
if (24008 <= vnum && vnum <= 24009)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_4);
}
if (24010 <= vnum && vnum <= 24011)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_7);
}
if (24012 <= vnum && vnum <= 24013)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_8);
}
if (24014 <= vnum && vnum <= 24015)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_9);
}
if (24020 <= vnum && vnum <= 24021)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_8);
}
if (24022 <= vnum && vnum <= 24023)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_8);
}
if (24024 <= vnum && vnum <= 24025)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_6);
}
if (24026 <= vnum && vnum <= 24027)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_9);
}
if (24028 <= vnum && vnum <= 24029)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_5);
}
if (24030 <= vnum && vnum <= 24031)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_3);
}
if (41456 <= vnum && vnum <= 41457)
{
__AttachEffect(EFFECT_REFINED + EFFECT_COSTUME_YOUTUBER);
}
}

if (refine < 7) //ÇöŔç Á¦·Ăµµ 7 ŔĚ»ó¸¸ ŔĚĆĺĆ®°ˇ ŔÖ˝Ŕ´Ď´Ů.
return 0;

if (pItem->GetSubType() == CItemData::COSTUME_BODY)
{
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_1 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_2 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_3 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_4 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_5 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_6 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_7 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_8 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_9 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_COSTUME_YOUTUBER + refine - 7;
__AttachEffect(m_armorRefineEffect);
}
break;

Az InstanceBase.h: EFFECT_BODYARMOR_LEG2_1 = 60,
EFFECT_BODYARMOR_LEG2_2 = 61,
EFFECT_BODYARMOR_LEG2_3 = 71,
EFFECT_BODYARMOR_LEG2_4 = 72,
EFFECT_BODYARMOR_LEG2_5 = 64,
EFFECT_BODYARMOR_LEG2_6 = 65,
EFFECT_BODYARMOR_LEG2_7 = 70,
EFFECT_BODYARMOR_LEG2_8 = 66,
EFFECT_BODYARMOR_LEG2_9 = 67,
EFFECT_COSTUME_YOUTUBER = 62,

Segítséget előre is megköszönöm!

EFFECT_REFINED_END = EFFECT_REFINED + EFFECT_REFINED_NUM,
A REFINED_NUM-ot megnövelted?


Fura mert én is piszkálgattam már arrafelé és semmi bajom nincs vele.

Üzenet összefésülés: 2018-01-29, 17:54:59

Várjunk csak...
if (pItem->GetSubType() == CItemData::COSTUME_BODY)
{
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_1 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_2 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_3 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_4 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_5 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_6 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_7 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_8 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_9 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_COSTUME_YOUTUBER + refine - 7;
__AttachEffect(m_armorRefineEffect);
}
break;

Ez mia... akar lenni? :o ??? :o ???

Fogalmam sincs, valójában én se értem  ???

2018-01-29, 18:21:09 #5 Utolsó szerkesztés: 2018-01-29, 18:23:17 Szerző: 5310pati
Csak mert 2 effectet rendel minden kosztümhöz amit ott megadtál id-k alapján.
Ugyanaz a feltétel
if (pItem->GetSubType() == CItemData::COSTUME_BODY)
Először hozzárendeli a megfelelőt id alapján, majd a 2.ban amit előbb másoltam ki, az hozzárendeli a youtubeos effectet de mégse azt, mivel hozzáadod a refine-t majd még kivonsz 7-et belőle.
Mondjuk egy 9-re végződő vértnél, te a youtubeos effecthez képest 2-vel nagyobbat adsz hozzá ami a 74-es effect.

if (pItem->GetSubType() == CItemData::COSTUME_BODY)
{
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_1 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_2 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_3 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_4 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_5 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_6 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_7 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_8 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_9 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_COSTUME_YOUTUBER + refine - 7;
__AttachEffect(m_armorRefineEffect);
}
break;

Ezt a részt kommentezd ki és úgy próbáld meg.


Ha csak bizonyos ID-re akarsz effectet és azok mind szerepelnek az első if-ben akkor kommentezheted/törölheted.
Ha viszont a többihez vmi alapot akarsz lásd alap vérteknél 7-8-9en akkor kéne az egész funkció, mert így nemtom h kéne módosítani.

Kikommenteztem, de ugyan az.

case CItemData::ITEM_TYPE_COSTUME:
__ClearArmorRefineEffect();

// °©żĘ ĆŻČ­ ŔĚĆĺĆ®
if (pItem->GetSubType() == CItemData::COSTUME_BODY)
{
DWORD vnum = pItem->GetIndex();

if (21009 <= vnum && vnum <= 21019)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_1);
}
if (21029 <= vnum && vnum <= 21039)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_2);
}
if (24000 <= vnum && vnum <= 24001)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_3);
}
if (24002 <= vnum && vnum <= 24003)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_4);
}
if (24004 <= vnum && vnum <= 24005)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_5);
}
if (24006 <= vnum && vnum <= 24007)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_6);
}
if (24008 <= vnum && vnum <= 24009)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_4);
}
if (24010 <= vnum && vnum <= 24011)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_7);
}
if (24012 <= vnum && vnum <= 24013)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_8);
}
if (24014 <= vnum && vnum <= 24015)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_9);
}
if (24020 <= vnum && vnum <= 24021)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_8);
}
if (24022 <= vnum && vnum <= 24023)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_8);
}
if (24024 <= vnum && vnum <= 24025)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_6);
}
if (24026 <= vnum && vnum <= 24027)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_9);
}
if (24028 <= vnum && vnum <= 24029)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_5);
}
if (24030 <= vnum && vnum <= 24031)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_3);
}
if (41456 <= vnum && vnum <= 41457)
{
__AttachEffect(EFFECT_REFINED + EFFECT_COSTUME_YOUTUBER);
}
}

if (refine < 7) //ÇöŔç Á¦·Ăµµ 7 ŔĚ»ó¸¸ ŔĚĆĺĆ®°ˇ ŔÖ˝Ŕ´Ď´Ů.
return 0;

/*if (pItem->GetSubType() == CItemData::COSTUME_BODY)
{
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_1 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_2 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_3 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_4 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_5 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_6 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_7 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_8 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_9 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_COSTUME_YOUTUBER + refine - 7;
__AttachEffect(m_armorRefineEffect);
}*/

Kliens syserem (liteos, semmi érdekes): 0130 19:27:13877 :: Unknown Server Command xmas_snow 1 | xmas_snow
0130 19:27:13877 :: Unknown Server Command xmas_boom 2 | xmas_boom

Most akkor mi lehet a baj?

Arra nem fog sysserezni, nem mindenre sysserezik. A számok 60-75 között nem tudom mennyire előnyösök, sosem próbáltam ekkora számokat. A kezdő effekt nálam 1-től megy 32-ig.

[spoiler]
EFFECT_BODYARMOR_REFINED7,
EFFECT_BODYARMOR_REFINED8,
EFFECT_BODYARMOR_REFINED9,

EFFECT_BODYARMOR_SPECIAL, // °©żĘ 4-2-1
EFFECT_BODYARMOR_SPECIAL2, // °©żĘ 4-2-2

BLUE = 19,
GREEN = 20,
RED = 21,
YELLOW = 22,
WHITE = 23,
BLUE_GREEN = 24,
PURPLE = 25,

NEW_BLUE = 26,
NEW_YELLOW = 27,
NEW_WHITE = 28,

TOP1 = 29,
MOBKING = 30,

//////////////////////////////////
#ifdef ENABLE_SASH_SYSTEM
EFFECT_SASH = 32,
#endif
//////////////////////////////////
[/spoiler]


Én azt mondom, hogy kisebb számokkal próbáld meg, és folytatólagos legyen az effektek sorrendje. Mert ha kihagysz 21 és 59 között egy csomó helyet, akkor ilyen effektek jelentek meg még a kőkorszaki szerverekben, mikor forrásunk nem volt.  ;D

2018-01-30, 20:37:40 #10 Utolsó szerkesztés: 2018-01-30, 20:49:22 Szerző: FloodX
Addig volt jó így és nem volt ilyen effekt, ameddig nem raktam be a kosztümhöz  ???

Üzenet összefésülés: 2018-01-30, 20:49:22

Ugyan az. Bármilyen ID van. De az kosztüm effektes résszel lesz szerintem baj.

2018-01-30, 21:13:29 #11 Utolsó szerkesztés: 2018-01-30, 21:15:34 Szerző: 5310pati
Lényegtelen mekkorára állítja be őket, amíg kellően növeli a REFINED_MAX_NUM-ot.
Rakd fel az egész __GetRefinedEffect fv-ed, könnyebb úgy segíteni mint tippelgetni.

Üzenet összefésülés: 2018-01-30, 21:15:34

Idézetet írta: Pisti95 Dátum 2018-01-30, 20:01:32
Én azt mondom, hogy kisebb számokkal próbáld meg, és folytatólagos legyen az effektek sorrendje. Mert ha kihagysz 21 és 59 között egy csomó helyet, akkor ilyen effektek jelentek meg még a kőkorszaki szerverekben, mikor forrásunk nem volt.  ;D
Ez jogos, hisz akkoriban nemigen tudták megnöveli ezt a változót.

UINT CInstanceBase::__GetRefinedEffect(CItemData* pItem)
{
DWORD refine = max(pItem->GetRefine() + pItem->GetSocketCount(),CItemData::ITEM_SOCKET_MAX_NUM) - CItemData::ITEM_SOCKET_MAX_NUM;
switch (pItem->GetType())
{
case CItemData::ITEM_TYPE_WEAPON:
__ClearWeaponRefineEffect();
if (refine < 7) //ÇöŔç Á¦·Ăµµ 7 ŔĚ»ó¸¸ ŔĚĆĺĆ®°ˇ ŔÖ˝Ŕ´Ď´Ů.
return 0;
switch(pItem->GetSubType())
{
case CItemData::WEAPON_DAGGER:
m_swordRefineEffectRight = EFFECT_REFINED+EFFECT_SMALLSWORD_REFINED7+refine-7;
m_swordRefineEffectLeft = EFFECT_REFINED+EFFECT_SMALLSWORD_REFINED7_LEFT+refine-7;
break;
case CItemData::WEAPON_FAN:
m_swordRefineEffectRight = EFFECT_REFINED+EFFECT_FANBELL_REFINED7+refine-7;
break;
case CItemData::WEAPON_ARROW:
case CItemData::WEAPON_BELL:
m_swordRefineEffectRight = EFFECT_REFINED+EFFECT_SMALLSWORD_REFINED7+refine-7;
break;
case CItemData::WEAPON_BOW:
m_swordRefineEffectRight = EFFECT_REFINED+EFFECT_BOW_REFINED7+refine-7;
break;
default:
m_swordRefineEffectRight = EFFECT_REFINED+EFFECT_SWORD_REFINED7+refine-7;
}
if (m_swordRefineEffectRight)
m_swordRefineEffectRight = __AttachEffect(m_swordRefineEffectRight);
if (m_swordRefineEffectLeft)
m_swordRefineEffectLeft = __AttachEffect(m_swordRefineEffectLeft);
break;
case CItemData::ITEM_TYPE_COSTUME:
__ClearArmorRefineEffect();

// °©żĘ ĆŻČ­ ŔĚĆĺĆ®
if (pItem->GetSubType() == CItemData::COSTUME_BODY)
{
DWORD vnum = pItem->GetIndex();

if (21009 <= vnum && vnum <= 21019)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_1);
}
if (21029 <= vnum && vnum <= 21039)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_2);
}
if (24000 <= vnum && vnum <= 24001)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_3);
}
if (24002 <= vnum && vnum <= 24003)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_4);
}
if (24004 <= vnum && vnum <= 24005)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_5);
}
if (24006 <= vnum && vnum <= 24007)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_6);
}
if (24008 <= vnum && vnum <= 24009)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_4);
}
if (24010 <= vnum && vnum <= 24011)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_7);
}
if (24012 <= vnum && vnum <= 24013)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_8);
}
if (24014 <= vnum && vnum <= 24015)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_9);
}
if (24020 <= vnum && vnum <= 24021)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_8);
}
if (24022 <= vnum && vnum <= 24023)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_8);
}
if (24024 <= vnum && vnum <= 24025)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_6);
}
if (24026 <= vnum && vnum <= 24027)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_9);
}
if (24028 <= vnum && vnum <= 24029)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_5);
}
if (24030 <= vnum && vnum <= 24031)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_3);
}
if (41456 <= vnum && vnum <= 41457)
{
__AttachEffect(EFFECT_REFINED + EFFECT_COSTUME_YOUTUBER);
}
}

if (refine < 7) //ÇöŔç Á¦·Ăµµ 7 ŔĚ»ó¸¸ ŔĚĆĺĆ®°ˇ ŔÖ˝Ŕ´Ď´Ů.
return 0;

if (pItem->GetSubType() == CItemData::COSTUME_BODY)
{
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_1 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_2 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_3 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_4 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_5 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_6 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_7 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_8 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_9 + refine - 7;
m_armorRefineEffect = EFFECT_REFINED + EFFECT_COSTUME_YOUTUBER + refine - 7;
__AttachEffect(m_armorRefineEffect);
}
break;
case CItemData::ITEM_TYPE_ARMOR:
__ClearArmorRefineEffect();

// °©żĘ ĆŻČ­ ŔĚĆĺĆ®l
if (pItem->GetSubType() == CItemData::ARMOR_BODY)
{
DWORD vnum = pItem->GetIndex();

if (12010 <= vnum && vnum <= 12049)
{
__AttachEffect(EFFECT_REFINED+EFFECT_BODYARMOR_SPECIAL);
__AttachEffect(EFFECT_REFINED+EFFECT_BODYARMOR_SPECIAL2);
}
}

if (refine < 7) //ÇöŔç Á¦·Ăµµ 7 ŔĚ»ó¸¸ ŔĚĆĺĆ®°ˇ ŔÖ˝Ŕ´Ď´Ů.
return 0;

if (pItem->GetSubType() == CItemData::ARMOR_BODY)
{
m_armorRefineEffect = EFFECT_REFINED+EFFECT_BODYARMOR_REFINED7+refine-7;
__AttachEffect(m_armorRefineEffect);
}
break;
}
return 0;
}

UINT CInstanceBase::__GetRefinedEffect(CItemData* pItem)
{
DWORD refine = max(pItem->GetRefine() + pItem->GetSocketCount(),CItemData::ITEM_SOCKET_MAX_NUM) - CItemData::ITEM_SOCKET_MAX_NUM;
switch (pItem->GetType())
{
case CItemData::ITEM_TYPE_WEAPON:
__ClearWeaponRefineEffect();
if (refine < 7) //ÇöŔç Á¦·Ăµµ 7 ŔĚ»ó¸¸ ŔĚĆĺĆ®°ˇ ŔÖ˝Ŕ´Ď´Ů.
return 0;
switch(pItem->GetSubType())
{
case CItemData::WEAPON_DAGGER:
m_swordRefineEffectRight = EFFECT_REFINED+EFFECT_SMALLSWORD_REFINED7+refine-7;
m_swordRefineEffectLeft = EFFECT_REFINED+EFFECT_SMALLSWORD_REFINED7_LEFT+refine-7;
break;
case CItemData::WEAPON_FAN:
m_swordRefineEffectRight = EFFECT_REFINED+EFFECT_FANBELL_REFINED7+refine-7;
break;
case CItemData::WEAPON_ARROW:
case CItemData::WEAPON_BELL:
m_swordRefineEffectRight = EFFECT_REFINED+EFFECT_SMALLSWORD_REFINED7+refine-7;
break;
case CItemData::WEAPON_BOW:
m_swordRefineEffectRight = EFFECT_REFINED+EFFECT_BOW_REFINED7+refine-7;
break;
default:
m_swordRefineEffectRight = EFFECT_REFINED+EFFECT_SWORD_REFINED7+refine-7;
}
if (m_swordRefineEffectRight)
m_swordRefineEffectRight = __AttachEffect(m_swordRefineEffectRight);
if (m_swordRefineEffectLeft)
m_swordRefineEffectLeft = __AttachEffect(m_swordRefineEffectLeft);
break;
case CItemData::ITEM_TYPE_COSTUME:
__ClearArmorRefineEffect();

// °©żĘ ĆŻČ­ ŔĚĆĺĆ®
if (pItem->GetSubType() == CItemData::COSTUME_BODY)
{
DWORD vnum = pItem->GetIndex();

if (21009 <= vnum && vnum <= 21019)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_1);
}
if (21029 <= vnum && vnum <= 21039)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_2);
}
if (24000 <= vnum && vnum <= 24001)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_3);
}
if (24002 <= vnum && vnum <= 24003)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_4);
}
if (24004 <= vnum && vnum <= 24005)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_5);
}
if (24006 <= vnum && vnum <= 24007)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_6);
}
if (24008 <= vnum && vnum <= 24009)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_4);
}
if (24010 <= vnum && vnum <= 24011)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_7);
}
if (24012 <= vnum && vnum <= 24013)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_8);
}
if (24014 <= vnum && vnum <= 24015)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_9);
}
if (24020 <= vnum && vnum <= 24021)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_8);
}
if (24022 <= vnum && vnum <= 24023)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_8);
}
if (24024 <= vnum && vnum <= 24025)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_6);
}
if (24026 <= vnum && vnum <= 24027)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_9);
}
if (24028 <= vnum && vnum <= 24029)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_5);
}
if (24030 <= vnum && vnum <= 24031)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_3);
}
if (41456 <= vnum && vnum <= 41457)
{
__AttachEffect(EFFECT_REFINED + EFFECT_COSTUME_YOUTUBER);
}
}
break;
case CItemData::ITEM_TYPE_ARMOR:
__ClearArmorRefineEffect();

// °©żĘ ĆŻČ­ ŔĚĆĺĆ®l
if (pItem->GetSubType() == CItemData::ARMOR_BODY)
{
DWORD vnum = pItem->GetIndex();

if (12010 <= vnum && vnum <= 12049)
{
__AttachEffect(EFFECT_REFINED+EFFECT_BODYARMOR_SPECIAL);
__AttachEffect(EFFECT_REFINED+EFFECT_BODYARMOR_SPECIAL2);
}
}

if (refine < 7) //ÇöŔç Á¦·Ăµµ 7 ŔĚ»ó¸¸ ŔĚĆĺĆ®°ˇ ŔÖ˝Ŕ´Ď´Ů.
return 0;

if (pItem->GetSubType() == CItemData::ARMOR_BODY)
{
m_armorRefineEffect = EFFECT_REFINED+EFFECT_BODYARMOR_REFINED7+refine-7;
__AttachEffect(m_armorRefineEffect);
}
break;
}
return 0;
}

Nem a legszebb de elv működőképesnek kell lennie.

2018-01-30, 22:05:22 #14 Utolsó szerkesztés: 2018-01-31, 21:14:15 Szerző: FloodX
Ugyan az. Nem lehet, hogy az a baja, hogy a vért meg a kosztüm is ugyan azt az effekt IDt használja? Mert akkor is megjelenik egy a "füst felhő" ??? amikor sima kard (19) és sima vértel ütök.

Üzenet összefésülés: 2018-01-31, 18:35:37

Ha az indító forrásába teljesen mást adok meg, akkor tökéletes, csak a kosztümön nem látszik az effekt.

Üzenet összefésülés: 2018-01-31, 18:53:45

Ha valaki tud segíteni, akár fizetek is

Üzenet összefésülés: 2018-01-31, 21:14:15

Megoldva. Sokat próbálkoztam, vagy 20-szor fordítottam ma indító forrást. Ha valakinek hasonló problémája van.

Most így néz ki:
InstanceBase.h:
EFFECT_BODYARMOR_SPECIAL, // °©żĘ 4-2-1
EFFECT_BODYARMOR_SPECIAL2, // °©żĘ 4-2-2
EFFECT_BODYARMOR_LEG2_7,
EFFECT_BODYARMOR_LEG2_1,
EFFECT_BODYARMOR_LEG2_2,
EFFECT_BODYARMOR_LEG2_3,
EFFECT_BODYARMOR_LEG2_4,
EFFECT_BODYARMOR_LEG2_5,
EFFECT_BODYARMOR_LEG2_6,
EFFECT_BODYARMOR_LEG2_8,
EFFECT_BODYARMOR_LEG2_9,
EFFECT_COSTUME_YOUTUBER,

InstanceBase.cpp (köszi 5310pati):
case CItemData::ITEM_TYPE_COSTUME:
__ClearArmorRefineEffect();

// °©żĘ ĆŻČ­ ŔĚĆĺĆ®
if (pItem->GetSubType() == CItemData::COSTUME_BODY)
{
DWORD vnum = pItem->GetIndex();

if (21009 <= vnum && vnum <= 21019)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_1);
}
if (21029 <= vnum && vnum <= 21039)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_2);
}
if (24000 <= vnum && vnum <= 24001)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_3);
}
if (24002 <= vnum && vnum <= 24003)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_4);
}
if (24004 <= vnum && vnum <= 24005)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_5);
}
if (24006 <= vnum && vnum <= 24007)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_6);
}
if (24008 <= vnum && vnum <= 24009)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_4);
}
if (24010 <= vnum && vnum <= 24011)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_7);
}
if (24012 <= vnum && vnum <= 24013)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_8);
}
if (24014 <= vnum && vnum <= 24015)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_9);
}
if (24020 <= vnum && vnum <= 24021)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_8);
}
if (24022 <= vnum && vnum <= 24023)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_8);
}
if (24024 <= vnum && vnum <= 24025)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_6);
}
if (24026 <= vnum && vnum <= 24027)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_9);
}
if (24028 <= vnum && vnum <= 24029)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_5);
}
if (24030 <= vnum && vnum <= 24031)
{
__AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_LEG2_3);
}
if (41456 <= vnum && vnum <= 41457)
{
__AttachEffect(EFFECT_REFINED + EFFECT_COSTUME_YOUTUBER);
}
}
break;

Playersettingmodule.py:
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+22, "Bip01", "D:/ymir work/pc/common/effect/armor/bulis.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+23, "Bip01", "D:/ymir work/pc/common/effect/armor/mercury.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+24, "Bip01", "D:/ymir work/effect/character/black.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+25, "Bip01", "D:/ymir work/effect/character/brown.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+26, "Bip01", "D:/ymir work/effect/character/blue.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+27, "Bip01", "D:/ymir work/effect/character/green.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+28, "Bip01", "D:/ymir work/effect/character/red.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+29, "Bip01", "D:/ymir work/effect/character/yellow.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+30, "Bip01", "D:/ymir work/effect/character/youtuber.mse")

A megoldás az volt, hogy valamiért nem szerette, hogy megadtam az ID-t az InstanceBase.h-ban  ??? . Miután ugye folytatólagosan tettem, tehát ugye a SPECIAL2 a psm-ben 20, így 21-el kezdtem és most már nincs az a "felhő" effekt. Köszönöm Pisti95 és 5310pati ment a +