//0051dcd0 -> BOOL CObjBaseAttack::PkCheck(LPOBJ lpObj, LPOBJ lpTargetObj) { if ( gLanguage == 0 || gLanguage == 2 || gLanguage == 4) { if ( lpObj->Type == OBJ_USER ) { BOOL bPlayerKiller = FALSE; //Season 2.5 add-on if(lpObj->PartyNumber >= 0) //Season 2.5 add-on { if(gParty.GetPKPartyPenalty(lpObj->PartyNumber) >= 6) { bPlayerKiller = TRUE; } } else if(lpObj->m_PK_Level >= 6) { bPlayerKiller = TRUE; } if(bPlayerKiller == TRUE) //Season 2.5 add-on { if (lpObj->PartyNumber >= 0 ) { if ( gPkLimitFree == FALSE ) { return FALSE; } } else if ( lpObj->m_PK_Count >= 3 ) { if ( gPkLimitFree == FALSE ) { return FALSE; } } } } } if ( lpObj->Type == OBJ_USER && lpTargetObj->Type == OBJ_USER) { if ( lpTargetObj->Level <= 5 || lpObj->Level <= 5 ) { return FALSE; } if ( gObjGetRelationShip(lpObj, lpTargetObj) == 2 ) // Rivals { if ( gNonPK == FALSE ) { return TRUE; } } if ( lpObj->lpGuild != NULL && lpTargetObj->lpGuild != NULL ) { if ( lpObj->lpGuild->WarState == 1 && lpTargetObj->lpGuild->WarState == 1 ) { if ( lpObj->lpGuild->Number == lpTargetObj->lpGuild->Number ) { return FALSE; } } } if ( gObjTargetGuildWarCheck(lpObj, lpTargetObj) == FALSE && lpTargetObj->lpGuild != NULL && lpTargetObj->lpGuild->WarState != 0) { if ( lpTargetObj->lpGuild->WarType == 1 ) { if ( lpTargetObj->MapNumber != 6 ) { if ( !gNonPK ) { return TRUE; } } } if ( CC_MAP_RANGE(lpTargetObj->MapNumber) == FALSE ) { return FALSE; } } if ( IT_MAP_RANGE(lpObj->MapNumber) != FALSE ) //season2.5 add-on { // } else if ( CC_MAP_RANGE(lpObj->MapNumber) != FALSE ) { if ( g_ChaosCastle.GetCurrentState(g_ChaosCastle.GetChaosCastleIndex(lpObj->MapNumber)) != 2 ) { return FALSE; } } else if ( gNonPK != FALSE ) { return FALSE; } if ( DS_MAP_RANGE(lpObj->MapNumber) ) // DEvil { return FALSE; } if ( BC_MAP_RANGE(lpObj->MapNumber) ) { return FALSE; } if ( gObjDuelCheck(lpObj, lpTargetObj) == FALSE ) { if ( gObjDuelCheck(lpTargetObj) ) { return FALSE; } } if ( gLanguage == 0 || gLanguage == 2 ) { BOOL bPlayerKiller = FALSE; //Season 2.5 add-on if(lpObj->PartyNumber >= 0) //Season 2.5 add-on { if(gParty.GetPKPartyPenalty(lpObj->PartyNumber) >= 6) { bPlayerKiller = TRUE; } } else if(lpObj->m_PK_Level >= 6) { bPlayerKiller = TRUE; } if(bPlayerKiller == TRUE) //Season 2.5 add-on { if (lpObj->PartyNumber >= 0 ) { if ( gPkLimitFree == FALSE ) { return FALSE; } } else if ( lpObj->m_PK_Count >= 3 ) { if ( gPkLimitFree == FALSE ) { return FALSE; } } } bPlayerKiller = FALSE; //Season 2.5 add-on if(lpTargetObj->PartyNumber >= 0) //Season 2.5 add-on { if(gParty.GetPKPartyPenalty(lpTargetObj->PartyNumber) >= 6) { bPlayerKiller = TRUE; } } else if(lpTargetObj->m_PK_Level >= 6) { bPlayerKiller = TRUE; } if(bPlayerKiller == 1) //Season 2.5 add-on { if (lpTargetObj->PartyNumber >= 0 ) { if ( gPkLimitFree == FALSE ) { if(g_CastleSiege.GetCastleState() != CASTLESIEGE_STATE_STARTSIEGE) { return FALSE; } } } else if ( lpTargetObj->m_PK_Count >= 3 ) { if ( gPkLimitFree == FALSE ) { if(g_CastleSiege.GetCastleState() != CASTLESIEGE_STATE_STARTSIEGE) { return FALSE; } } } } } } return TRUE; }
bool CObjBaseAttack::PkCheck(LPOBJ lpObj, LPOBJ lpTargetObj) { /*if ( gLanguage == 0 || gLanguage == 2 || gLanguage == 4) { if ( lpObj->Type == OBJ_USER ) { if (lpObj->m_PK_Level >= 6 ) { if ( lpObj->m_PK_Count >= 3 ) { if ( gPkLimitFree == FALSE ) { return false; } } } } }*/ if ( lpObj->Type == OBJ_USER && lpTargetObj->Type == OBJ_USER) { if ( lpTargetObj->Level <= 5 || lpObj->Level <= 5 ) { return false; } else if ( gObjGetRelationShip(lpObj, lpTargetObj) == 2 ) // Rivals { /*if ( gNonPK == FALSE ) { return true; }*/ } else if ( lpObj->lpGuild != NULL && lpTargetObj->lpGuild != NULL ) { if ( lpObj->lpGuild->WarState == 1 && lpTargetObj->lpGuild->WarState == 1 ) { if ( lpObj->lpGuild->Number == lpTargetObj->lpGuild->Number ) { return false; } } } if ( gObjTargetGuildWarCheck(lpObj, lpTargetObj) == FALSE && lpTargetObj->lpGuild != NULL && lpTargetObj->lpGuild->WarState != 0) { if ( lpTargetObj->lpGuild->WarType == 1 ) { if ( lpTargetObj->MapNumber != 6 ) { /*if ( !gNonPK ) { return true; }*/ } } if ( gUser.ChaosCastleMapRange(lpTargetObj->MapNumber) == false ) { return false; } } if ( gUser.ChaosCastleMapRange(lpObj->MapNumber) == true ) { if ( g_ChaosCastle.GetCurrentState(g_ChaosCastle.GetChaosCastleIndex(lpObj->MapNumber)) != 2 ) { return FALSE; } } /*else if ( gNonPK != FALSE ) { return false; }*/ if ( DS_MAP_RANGE(lpObj->MapNumber) ) // DEvil { return false; } if ( gUser.BloodCastleMapRange(lpObj->MapNumber) == true ) { return false; } if ( gDuel.AreOnDuel(lpObj, lpTargetObj) == false ) { if ( gDuel.IsOnDuel(lpTargetObj) == true ) { return false; } } if ( gLanguage == 0 || gLanguage == 2 ) { if (lpObj->m_PK_Level >= 6 ) { if ( lpObj->m_PK_Count >= 3 ) { /*if ( gPkLimitFree == FALSE ) { return false; }*/ } } if (lpTargetObj->m_PK_Level >= 6 ) { if ( lpTargetObj->m_PK_Count >= 3 ) { /*if ( gPkLimitFree == FALSE ) { #if(GS_CASTLE) if(g_CastleSiege.GetCastleState() != 7) { return false; } #else return false; #endif }*/ } } } } return true; }