juan249 Administrador
Cantidad de envíos : 68 Fecha de inscripción : 08/01/2008
| Tema: [FIX] Berserk Wand Jue 10 Ene 2008, 21:27 | |
| Este code fixea el Damage que produce el Berserk Wand. HGSources. Game.cpp. Buscar en: - Código:
-
CGame::Effect_Damage_Spot( Esto: - Código:
-
case DEF_OWNERTYPE_PLAYER: Reemplazarlo por: - Código:
-
case DEF_OWNERTYPE_PLAYER: if ((m_bAdminSecurity == TRUE) && (m_pClientList[sAttackerH]->m_iAdminUserLevel > 0)) return; if (m_pClientList[sAttackerH]->m_cHeroArmourBonus == 2) iDamage += 4; if ((m_pClientList[sAttackerH]->m_sItemEquipmentStatus[DEF_EQUIPPOS_LHAND] == -1) || (m_pClientList[sAttackerH]->m_sItemEquipmentStatus[DEF_EQUIPPOS_TWOHAND] == -1)) { sItemIndex = m_pClientList[sAttackerH]->m_sItemEquipmentStatus[DEF_EQUIPPOS_RHAND]; if ((sItemIndex != -1) && (m_pClientList[sAttackerH]->m_pItemList[sItemIndex] != NULL)) { if (m_pClientList[sAttackerH]->m_pItemList[sItemIndex]->m_sIDnum == 861 || m_pClientList[sAttackerH]->m_pItemList[sItemIndex]->m_sIDnum == 862) { iDamage *= (int)1.5; //Aca podran establecer cual es la puntuacion de damage adherida } if (m_pClientList[sAttackerH]->m_pItemList[sItemIndex]->m_sIDnum == 863 || m_pClientList[sAttackerH]->m_pItemList[sItemIndex]->m_sIDnum == 864) { if (m_pClientList[sAttackerH]->m_iRating > 0) { iRepDamage = m_pClientList[sAttackerH]->m_iRating/100; if (iRepDamage < 5) iRepDamage = 5; iDamage += iRepDamage; } if (cTargetType == DEF_OWNERTYPE_PLAYER) { if (m_pClientList[sTargetH] != NULL) { if (m_pClientList[sTargetH]->m_iRating < 0) { iRepDamage = (abs(m_pClientList[sTargetH]->m_iRating)/10); if (iRepDamage > 10) iRepDamage = 10; iDamage += iRepDamage; } } } } } sItemIndex = m_pClientList[sAttackerH]->m_sItemEquipmentStatus[DEF_EQUIPPOS_NECK]; if ((sItemIndex != -1) && (m_pClientList[sAttackerH]->m_pItemList[sItemIndex] != NULL)) { if (m_pClientList[sAttackerH]->m_pItemList[sItemIndex]->m_sIDnum == 859) { // NecklaceOfKloness if (cTargetType == DEF_OWNERTYPE_PLAYER) { if (m_pClientList[sTargetH] != NULL) { iRepDamage = (abs(m_pClientList[sTargetH]->m_iRating)/20); if (iRepDamage > 5) iRepDamage = 5; iDamage += iRepDamage; } } } } }
if ((m_bIsCrusadeMode == FALSE) && (m_pClientList[sAttackerH]->m_bIsPlayerCivil == TRUE) && (cTargetType == DEF_OWNERTYPE_PLAYER)) return;
dTmp1 = (double)iDamage; if ((m_pClientList[sAttackerH]->m_iMag + m_pClientList[sAttackerH]->m_iAngelicMag) <= 0) dTmp2 = 1.0f; else dTmp2 = (double)(m_pClientList[sAttackerH]->m_iMag + m_pClientList[sAttackerH]->m_iAngelicMag); dTmp2 = dTmp2 / 3.3f; dTmp3 = dTmp1 + (dTmp1 * (dTmp2 / 100.0f)); iDamage = (int)(dTmp3 +0.5f);
iDamage += m_pClientList[sAttackerH]->m_iAddMagicalDamage; if (iDamage <= 0) iDamage = 0;
if (m_pMapList[m_pClientList[sAttackerH]->m_cMapIndex]->m_bIsFightZone == TRUE) iDamage += iDamage/3;
if (bCheckHeldenianMap(sAttackerH, m_iBTFieldMapIndex, DEF_OWNERTYPE_PLAYER) == 1) { iDamage += iDamage/3; }
if ((cTargetType == DEF_OWNERTYPE_PLAYER) && (m_bIsCrusadeMode == TRUE) && (m_pClientList[sAttackerH]->m_iCrusadeDuty == 1)) { if (m_pClientList[sAttackerH]->m_iLevel <= 80) { iDamage += (iDamage*7)/10 ; } else if (m_pClientList[sAttackerH]->m_iLevel <= 100) { iDamage += iDamage/2; } else iDamage += iDamage/3; } cAttackerSide = m_pClientList[sAttackerH]->m_cSide; sAtkX = m_pClientList[sAttackerH]->m_sX; sAtkY = m_pClientList[sAttackerH]->m_sY; iPartyID = m_pClientList[sAttackerH]->m_iPartyID; break;
case DEF_OWNERTYPE_NPC: cAttackerSide = m_pNpcList[sAttackerH]->m_cSide; sAtkX = m_pNpcList[sAttackerH]->m_sX; sAtkY = m_pNpcList[sAttackerH]->m_sY; break; } | |
|