HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!
Sorunsuz çalışıyor teşekkürler.
Bu tarz bir sistem hali hazırda var ancak çalışma stilini beğenmediğim için tekrar yazmak istedim. O sistem eşyaların vnuma göre biraz daha düzensiz şekilde çalışmaktaydı.
Ben daha temiz bir kodlama ile eşyaların etkisine göre çalışacak şekilde revize ettim. Kodları okuduğunuzda belirgin şekilde anlayabilirsiniz.
Her şebnem kullanıldığında 2 değil sadece 1 etki çalışmaktadır. Bonuslar, yeni sunulan etkiler üzerinden sağlanmaktadır.
![]()
[CODE lang="cpp" title="Fix"]
void CHARACTER::ClearAffect(bool bSave)
{
TAffectFlag afOld = m_afAffectFlag;
WORD wMovSpd = GetPoint(POINT_MOV_SPEED);
WORD wAttSpd = GetPoint(POINT_ATT_SPEED);
itertype(m_list_pkAffect) it = m_list_pkAffect.begin();
while (it != m_list_pkAffect.end())
{
CAffect * pkAff = *it;
if (bSave)
{
if ( IS_NO_CLEAR_ON_DEATH_AFFECT(pkAff->dwType) || IS_NO_SAVE_AFFECT(pkAff->dwType) )
{
++it;
continue;
}
#ifdef ENABLE_TUNGA_BLEND_AFFECT
int pkAff_blend[] = {RED_BLEND_POTION, ORANGE_BLEND_POTION, YELLOW_BLEND_POTION, GREEN_BLEND_POTION, BLUE_BLEND_POTION, WHITE_BLEND_POTION};
if ((pkAff->dwType == pkAff_blend[0]) || (pkAff->dwType == pkAff_blend[1]) || (pkAff->dwType == pkAff_blend[2]) ||
(pkAff->dwType == pkAff_blend[3]) || (pkAff->dwType == pkAff_blend[4]) || (pkAff->dwType == pkAff_blend[5]))
{
++it;
continue;
}
#endif
if (IsPC())
{
SendAffectRemovePacket(GetDesc(), GetPlayerID(), pkAff->dwType, pkAff->bApplyOn);
}
}
ComputeAffect(pkAff, false);
it = m_list_pkAffect.erase(it);
CAffect::Release(pkAff);
}
if (afOld != m_afAffectFlag ||
wMovSpd != GetPoint(POINT_MOV_SPEED) ||
wAttSpd != GetPoint(POINT_ATT_SPEED))
UpdatePacket();
CheckMaximumPoints();
if (m_list_pkAffect.empty())
event_cancel(&m_pkAffectEvent);
}
[/CODE]
Acest gen de sistem deja există, dar am vrut să-l scriu din nou pentru că nu mi-a plăcut stilul de lucru. Acest sistem a funcționat puțin mai neregulat, în funcție de dimensiunea articolelor.
L-am revizuit pentru a funcționa în funcție de efectele articolelor cu o codare mai curată. Puteți înțelege clar codurile când le citiți.
De fiecare dată când se folosește roua, funcționează doar 1 efect, nu 2. Bonusurile sunt oferite prin efecte nou introduse.
thnx![]()
TeşekkürlerBu tarz bir sistem hali hazırda var ancak çalışma stilini beğenmediğim için tekrar yazmak istedim. O sistem eşyaların vnuma göre biraz daha düzensiz şekilde çalışmaktaydı.
Ben daha temiz bir kodlama ile eşyaların etkisine göre çalışacak şekilde revize ettim. Kodları okuduğunuzda belirgin şekilde anlayabilirsiniz.
Her şebnem kullanıldığında 2 değil sadece 1 etki çalışmaktadır. Bonuslar, yeni sunulan etkiler üzerinden sağlanmaktadır.
![]()
ne
nereye ekliyoruz[CODE lang="cpp" title="Fix"]
void CHARACTER::ClearAffect(bool bSave)
{
TAffectFlag afOld = m_afAffectFlag;
WORD wMovSpd = GetPoint(POINT_MOV_SPEED);
WORD wAttSpd = GetPoint(POINT_ATT_SPEED);
itertype(m_list_pkAffect) it = m_list_pkAffect.begin();
while (it != m_list_pkAffect.end())
{
CAffect * pkAff = *it;
if (bSave)
{
if ( IS_NO_CLEAR_ON_DEATH_AFFECT(pkAff->dwType) || IS_NO_SAVE_AFFECT(pkAff->dwType) )
{
++it;
continue;
}
#ifdef ENABLE_TUNGA_BLEND_AFFECT
int pkAff_blend[] = {RED_BLEND_POTION, ORANGE_BLEND_POTION, YELLOW_BLEND_POTION, GREEN_BLEND_POTION, BLUE_BLEND_POTION, WHITE_BLEND_POTION};
if ((pkAff->dwType == pkAff_blend[0]) || (pkAff->dwType == pkAff_blend[1]) || (pkAff->dwType == pkAff_blend[2]) ||
(pkAff->dwType == pkAff_blend[3]) || (pkAff->dwType == pkAff_blend[4]) || (pkAff->dwType == pkAff_blend[5]))
{
++it;
continue;
}
#endif
if (IsPC())
{
SendAffectRemovePacket(GetDesc(), GetPlayerID(), pkAff->dwType, pkAff->bApplyOn);
}
}
ComputeAffect(pkAff, false);
it = m_list_pkAffect.erase(it);
CAffect::Release(pkAff);
}
if (afOld != m_afAffectFlag ||
wMovSpd != GetPoint(POINT_MOV_SPEED) ||
wAttSpd != GetPoint(POINT_ATT_SPEED))
UpdatePacket();
CheckMaximumPoints();
if (m_list_pkAffect.empty())
event_cancel(&m_pkAffectEvent);
}
[/CODE]
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 0
- Görüntüleme
- 124
- Kilitli
- Cevaplar
- 259
- Görüntüleme
- 39K
- Cevaplar
- 6
- Görüntüleme
- 1K
