Reklam
nasıl ve nereye ?Merhaba grupheal kısmına kontrol ekle sadece parti uyulerine heal atsın
if (CMagicProcess::UserRegionCheck(pSkillCaster, pTarget, pSkill, pType->bRadius + added, sData[0], sData[2]))
{
// MORAL_PARTY_ALL ise sadece parti üyelerini ekle
if (pSkill.bMoral == MORAL_PARTY_ALL && pTarget != pSkillCaster)
{
if (!pSkillCaster->isPlayer() || !pTarget->isPlayer())
continue;
CUser* pCaster = TO_USER(pSkillCaster);
CUser* pTUser = TO_USER(pTarget);
// Caster partide değilse sadece kendine at
if (!pCaster->isInParty())
continue;
// Hedef partide değilse veya farklı partideyse atla
if (!pTUser->isInParty() || pCaster->GetPartyID() != pTUser->GetPartyID())
continue;
}
casted_member.push_back(pTarget);
if (pTarget->isPlayer() && pSkillCaster->GetNation() != pTarget->GetNation())
TO_USER(pTarget)->RemoveStealth();
}
hocam teşekkür ederim sorun moral_party_all kısmındaymış yapı biraz farklıydı fakat hallettim.MagicProcess.cpp de hangi gameserver kullanıyorsunuz bilmiyorum fakat mantık şudur;
MagicProcess.cpp'deki MORAL_PARTY_ALL casesinde parti kontrolü var ama o sadece yüksek ihtimal sende tek hedef için çalışıyor.
UserRegionCheck sonrasında, casted_member.push_back öncesinde parti kontrolü eklenmeli:
C++:if (CMagicProcess::UserRegionCheck(pSkillCaster, pTarget, pSkill, pType->bRadius + added, sData[0], sData[2])) { // MORAL_PARTY_ALL ise sadece parti üyelerini ekle if (pSkill.bMoral == MORAL_PARTY_ALL && pTarget != pSkillCaster) { if (!pSkillCaster->isPlayer() || !pTarget->isPlayer()) continue; CUser* pCaster = TO_USER(pSkillCaster); CUser* pTUser = TO_USER(pTarget); // Caster partide değilse sadece kendine at if (!pCaster->isInParty()) continue; // Hedef partide değilse veya farklı partideyse atla if (!pTUser->isInParty() || pCaster->GetPartyID() != pTUser->GetPartyID()) continue; } casted_member.push_back(pTarget); if (pTarget->isPlayer() && pSkillCaster->GetNation() != pTarget->GetNation()) TO_USER(pTarget)->RemoveStealth(); }
Yine söylüyorum kodunu görmedim sıkıntıyı tahminen çözmeye çalışıyoruz kimse burda kesin şudur diyemez deneme yanılma yapman lazım.