arkadaş çok ilgili ve kısa zaman çözüm üretti teşekkürler.
sadece src de ekliydi wolfman kaldırdım fakat sorun ondan değildi.O zaman sistem sizde ekli olmalı. common/service.h 'ye
yazıp deneyebilir misiniz?C++:#define ENABLE_WOLFMAN_CHARACTER
eğer sorunsuz build oluduysa ve çalışmıyorsa tek sorun skil_protodan kaynaklıdostum ben'de de çalışmadı sorunu nasıl çözdün ?
'ATTACK','USE_MELEE_DAMAGE','COMPUTE_ATTGRADE','SELFONLY','USE_MAGIC_DAMAGE','USE_HP_AS_COST','COMPUTE_MAGIC_DAMAGE','SPLASH','GIVE_PENALTY','USE_ARROW_DAMAGE','PENETRATE','IGNORE_TARGET_RATING','ATTACK_SLOW','ATTACK_STUN','HP_ABSORB','SP_ABSORB','ATTACK_FIRE_CONT','REMOVE_BAD_AFFECT','REMOVE_GOOD_AFFECT','CRUSH','ATTACK_POISON','TOGGLE','DISABLE_BY_POINT_UP','CRUSH_LONG','WIND','ELEC','FIRE','PARTY'
Grup olarak çalışmasını istediğiniz yeteneklerin flaglarına PARTY değerini eklemeniz gerekiyor.Herşeyi yaptım game falan build oldu onda sıkıntı yok ama oyunda grup kutsama çalışmıyor sadece kendini kutsuyor, syserr falan yok. Locale üzerinden skilltable.txt dosyasından da güncelleme yapmama gerek var galiba değil mi?
Grup olarak çalışmasını istediğiniz yeteneklerin flaglarına PARTY değerini eklemeniz gerekiyor.
fectManager::CreateEffectInstance - NO DATA :1427859766
CEffectManager::CreateEffectInstance - NO DATA :-1827400434
CEffectManager::CreateEffectInstance - NO DATA :-1894888259
Hortlatabilirsiniz, sorun yok.Biraz hortlatmış olacağım ama bu sistemin tamamımı yoksa sadece fix mi?
if (IS_SET(pkSk->dwFlag, SKILL_FLAG_SELFONLY))
ComputeSkill(dwVnum, this);
else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && !GetParty() && !pkVictim )
ComputeSkill(dwVnum, this);
else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && GetParty())
{
FPartyPIDCollector f;
GetParty()->ForEachOnMapMember(f, GetMapIndex());
for (std::vector <DWORD>::iterator it = f.vecPIDs.begin(); it != f.vecPIDs.end(); it++)
{
LPCHARACTER ch = CHARACTER_MANAGER::instance().FindByPID(*it);
ComputeSkill(dwVnum, ch);
}
}
else if (!IS_SET(pkSk->dwFlag, SKILL_FLAG_ATTACK))
ComputeSkill(dwVnum, pkVictim);
else if (dwVnum == SKILL_BYEURAK)
ComputeSkill(dwVnum, pkVictim);
else if (dwVnum == SKILL_MUYEONG || pkSk->IsChargeSkill())
ComputeSkill(dwVnum, pkVictim);
m_dwLastSkillTime = get_dword_time();
return true;
}
if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && !GetParty() && !pkVictim)
ComputeSkill(dwVnum, this);
else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && GetParty())
{
FPartyPIDCollector f;
GetParty()->ForEachOnMapMember(f, GetMapIndex());
for (std::vector <DWORD>::iterator it = f.vecPIDs.begin(); it != f.vecPIDs.end(); it++)
{
LPCHARACTER ch = CHARACTER_MANAGER::instance().FindByPID(*it);
ComputeSkill(dwVnum, ch);
}
}
if (dwVnum == SKILL_CHAIN)
{
ResetChainLightningIndex();
AddChainLightningExcept(pkVictim);
}
if (IS_SET(pkSk->dwFlag, SKILL_FLAG_SELFONLY))
ComputeSkill(dwVnum, this);
else if (!IS_SET(pkSk->dwFlag, SKILL_FLAG_ATTACK))
ComputeSkill(dwVnum, pkVictim);
else if (dwVnum == SKILL_BYEURAK)
ComputeSkill(dwVnum, pkVictim);
else if (dwVnum == SKILL_MUYEONG || pkSk->IsChargeSkill())
ComputeSkill(dwVnum, pkVictim);
m_dwLastSkillTime = get_dword_time();
return true;
}
herhangi bir sorun yok ama sende olmuş olabilir veya bende fixli olabilir :dGrup dışındakini kutsama fix demişsinizde fixlenmiyor nedense. Sistemi direk anlatımdan yaptım test ettim grubu kutsadı grup dışını kutsamadı. Bu fixlemeyi yapınca sorun düzeldi.
char_skill:if (IS_SET(pkSk->dwFlag, SKILL_FLAG_SELFONLY)) ComputeSkill(dwVnum, this); else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && !GetParty() && !pkVictim ) ComputeSkill(dwVnum, this); else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && GetParty()) { FPartyPIDCollector f; GetParty()->ForEachOnMapMember(f, GetMapIndex()); for (std::vector <DWORD>::iterator it = f.vecPIDs.begin(); it != f.vecPIDs.end(); it++) { LPCHARACTER ch = CHARACTER_MANAGER::instance().FindByPID(*it); ComputeSkill(dwVnum, ch); } } else if (!IS_SET(pkSk->dwFlag, SKILL_FLAG_ATTACK)) ComputeSkill(dwVnum, pkVictim); else if (dwVnum == SKILL_BYEURAK) ComputeSkill(dwVnum, pkVictim); else if (dwVnum == SKILL_MUYEONG || pkSk->IsChargeSkill()) ComputeSkill(dwVnum, pkVictim); m_dwLastSkillTime = get_dword_time(); return true; }
DEĞİŞTİR:
C++:if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && !GetParty() && !pkVictim) ComputeSkill(dwVnum, this); else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && GetParty()) { FPartyPIDCollector f; GetParty()->ForEachOnMapMember(f, GetMapIndex()); for (std::vector <DWORD>::iterator it = f.vecPIDs.begin(); it != f.vecPIDs.end(); it++) { LPCHARACTER ch = CHARACTER_MANAGER::instance().FindByPID(*it); ComputeSkill(dwVnum, ch); } } if (dwVnum == SKILL_CHAIN) { ResetChainLightningIndex(); AddChainLightningExcept(pkVictim); } if (IS_SET(pkSk->dwFlag, SKILL_FLAG_SELFONLY)) ComputeSkill(dwVnum, this); else if (!IS_SET(pkSk->dwFlag, SKILL_FLAG_ATTACK)) ComputeSkill(dwVnum, pkVictim); else if (dwVnum == SKILL_BYEURAK) ComputeSkill(dwVnum, pkVictim); else if (dwVnum == SKILL_MUYEONG || pkSk->IsChargeSkill()) ComputeSkill(dwVnum, pkVictim); m_dwLastSkillTime = get_dword_time(); return true; }