char_skill.cpp ekle struct FComputeSkillParty { FComputeSkillParty(DWORD dwVnum, LPCHARACTER pkAttacker, BYTE bSkillLevel = 0) : m_dwVnum(dwVnum), m_pkAttacker(pkAttacker), m_bSkillLevel(bSkillLevel) { } void operator () (LPCHARACTER ch) { m_pkAttacker->ComputeSkill(m_dwVnum, ch, m_bSkillLevel); } DWORD m_dwVnum; LPCHARACTER m_pkAttacker; BYTE m_bSkillLevel; }; int CHARACTER::ComputeSkillParty(DWORD dwVnum, LPCHARACTER pkVictim, BYTE bSkillLevel) { FComputeSkillParty f(dwVnum, pkVictim, bSkillLevel); if (GetParty() && GetParty()->GetNearMemberCount()) GetParty()->ForEachNearMember(f); else f(this); return BATTLE_NONE; } like // ADD_GRANDMASTER_SKILL if (GetUsedSkillMasterType(pkSk->dwVnum) >= SKILL_GRAND_MASTER && pkSk->bPointOn3 != POINT_NONE) { int iDur = (int)pkSk->kDurationPoly3.Eval(); if (iDur > 0) { iDur += GetPoint(POINT_PARTY_BUFFER_BONUS); AddAffect(pkSk->dwVnum, pkSk->bPointOn3, iAmount3, 0 /*pkSk->dwAffectFlag3*/, iDur, 0, !bAdded); } else { PointChange(pkSk->bPointOn3, iAmount3); } } // END_OF_ADD_GRANDMASTER_SKILL return BATTLE_NONE; } } /* #ifdef ENABLE_WOLFMAN_CHARACTER*/ struct FComputeSkillParty { FComputeSkillParty(DWORD dwVnum, LPCHARACTER pkAttacker, BYTE bSkillLevel = 0) : m_dwVnum(dwVnum), m_pkAttacker(pkAttacker), m_bSkillLevel(bSkillLevel) { } void operator () (LPCHARACTER ch) { m_pkAttacker->ComputeSkill(m_dwVnum, ch, m_bSkillLevel); } DWORD m_dwVnum; LPCHARACTER m_pkAttacker; BYTE m_bSkillLevel; }; int CHARACTER::ComputeSkillParty(DWORD dwVnum, LPCHARACTER pkVictim, BYTE bSkillLevel) { FComputeSkillParty f(dwVnum, pkVictim, bSkillLevel); if (GetParty() && GetParty()->GetNearMemberCount()) GetParty()->ForEachNearMember(f); else f(this); return BATTLE_NONE; } /* #endif */ ekle if (GetParty() && (dwVnum == 94 || dwVnum == 95 || dwVnum == 96 || dwVnum == 109 || dwVnum == 110 || dwVnum == 111)) { if (pkVictim && pkVictim->GetParty()) { if (pkVictim->GetParty() == GetParty()) { if (GetParty()->GetNearMemberCount()) ComputeSkillParty(dwVnum, this); else ComputeSkill(dwVnum, pkVictim); } else ComputeSkill(dwVnum, pkVictim); } else if (pkVictim && !pkVictim->GetParty()) { ComputeSkill(dwVnum, pkVictim); } } like if (GetParty() && (dwVnum == 94 || dwVnum == 95 || dwVnum == 96 || dwVnum == 109 || dwVnum == 110 || dwVnum == 111)) { if (pkVictim && pkVictim->GetParty()) { if (pkVictim->GetParty() == GetParty()) { if (GetParty()->GetNearMemberCount()) ComputeSkillParty(dwVnum, this); else ComputeSkill(dwVnum, pkVictim); } else ComputeSkill(dwVnum, pkVictim); } else if (pkVictim && !pkVictim->GetParty()) { ComputeSkill(dwVnum, pkVictim); } } if (IS_SET(pkSk->dwFlag, SKILL_FLAG_SELFONLY)) ComputeSkill(dwVnum, this); char.h ekle int ComputeSkillParty(DWORD dwVnum, LPCHARACTER pkVictim, BYTE bSkillLevel = 0); like /* #ifdef ENABLE_WOLFMAN_CHARACTER*/ int ComputeSkillParty(DWORD dwVnum, LPCHARACTER pkVictim, BYTE bSkillLevel = 0); /*#endif*/ int ComputeSkillAtPosition(DWORD dwVnum, const PIXEL_POSITION& posTarget, BYTE bSkillLevel = 0); void ComputeSkillPoints();