Spectra füst

Indította kati8411, 2017-04-25, 18:14:41

Sziasztok!
Spectra klienst használok és olyan problémám van, ha vérthez füstöt szeretnék rendelni nem mindegyik id-hez engedi, ez miért van?
pl:
8199-hez rendelem akkor nem működik, sőt olyan efektet ad, mintha támadnék és ez miss lenne
12019- hez adom hozzá akkor tökéletesen működik!
12018-nál már megint nem jó!
Esetleg van erre valami magyarázat?

2017-04-25, 18:42:53 #1 Utolsó szerkesztés: 2017-04-25, 18:49:08 Szerző: 5310pati
ID-től függően rendeli hozzá az effektet.
[spoiler]DWORD refine = max(pItem->GetRefine() + pItem->GetSocketCount(),CItemData::ITEM_SOCKET_MAX_NUM) - CItemData::ITEM_SOCKET_MAX_NUM;
m_armorRefineEffect = EFFECT_REFINED+EFFECT_BODYARMOR_REFINED7+refine-7;
[/spoiler]
Ahogy csökken az ID úgy kell egyre nagyobbat írni protoban az effectnek.
Pl 20-as effect 19-es kardnál:
EFFECT_REFINED ez ugye alap és az utána lévő rész: 16 + (9 + 20 - 3) - 7 = 35
18-nál a 9-es változik csak és eggyel csökken az érték: 16 + (8 + 20 - 3) - 7 = 34
és hogy ez szintén a 35-ös effect legyen 1-gyel nagyobb effect ID kell protoban, tehát 21
stb...
Nekem régen nem volt kedvem ezzel szórakozni, hogy mikor mennyit kell kivonni/hozzáadni, ezért újraírtam a fv-t, így azt az effectet rendeli hozzá amit megadok (tőrnél a bal kézhez egy 3-al nagyobbat adtam meg).
Ha érdekel itt a kód, csak akkor az összes alap effect ID-t át kell írni:
[spoiler]UINT CInstanceBase::__GetRefinedEffect(CItemData* pItem)
{
DWORD refine = pItem->GetSocketCount();
switch (pItem->GetType())
{
case CItemData::ITEM_TYPE_COSTUME:
{
switch (pItem->GetSubType())
{
case CItemData::COSTUME_BODY:
{
__ClearArmorRefineEffect();
m_armorRefineEffect = EFFECT_REFINED + refine;
__AttachEffect(m_armorRefineEffect);
}
break;
#ifdef ENABLE_COSTUME_WEAPON
case CItemData::COSTUME_WEAPON_SWORD:
case CItemData::COSTUME_WEAPON_BOW:
case CItemData::COSTUME_WEAPON_BELL:
case CItemData::COSTUME_WEAPON_FAN:
case CItemData::COSTUME_WEAPON_TWO_HANDED:
{
__ClearWeaponRefineEffect();
m_swordRefineEffectRight = EFFECT_REFINED + refine;
__AttachEffect(m_swordRefineEffectRight);
}
break;
case CItemData::COSTUME_WEAPON_DAGGER:
{
__ClearWeaponRefineEffect();
m_swordRefineEffectRight = EFFECT_REFINED + refine;
m_swordRefineEffectLeft = EFFECT_REFINED + refine + 3;
__AttachEffect(m_swordRefineEffectRight);
__AttachEffect(m_swordRefineEffectLeft);
}
break;
#endif
}
}
break;
case CItemData::ITEM_TYPE_WEAPON:
{
__ClearWeaponRefineEffect();
m_swordRefineEffectRight = EFFECT_REFINED + refine;
if (pItem->GetSubType() == CItemData::WEAPON_DAGGER)
m_swordRefineEffectLeft = EFFECT_REFINED + refine + 3;
if (IsMountingHorse())
if (pItem->GetSubType() == CItemData::WEAPON_FAN)
m_swordRefineEffectLeft = EFFECT_REFINED + refine + 1;

if (m_swordRefineEffectRight)
m_swordRefineEffectRight = __AttachEffect(m_swordRefineEffectRight);
if (m_swordRefineEffectLeft)
m_swordRefineEffectLeft = __AttachEffect(m_swordRefineEffectLeft);
}
break;
case CItemData::ITEM_TYPE_ARMOR:
{
__ClearArmorRefineEffect();
if (pItem->GetSubType() == CItemData::ARMOR_BODY)
{
m_armorRefineEffect = EFFECT_REFINED + refine;
__AttachEffect(m_armorRefineEffect);
}
}
break;
}
return 0;
}
[/spoiler]