killspree
07-07-2003, 04:39 AM
The following are additions to the SE_CurrentHP code in spells.cpp to allow players to increase their heal values by a certain percentage permenantly, as well as crit their heals for double the value of the spell on occasion.
zone/spells.cpp ~line 1907 change:
else if (spells[spell_id].effectid[i] == SE_CurrentHP && dmg > 0) {
if (caster && caster->IsClient()) {
dmg = caster->CastToClient()->GetActSpellValue(spell_id, dmg);
}
}
To:
else if (spells[spell_id].effectid[i] == SE_CurrentHP && dmg > 0) {
if (caster && caster->IsClient()) {
dmg = caster->CastToClient()->GetActSpellValue(spell_id, dmg);
/*healing adept*/
uint8 *aa_item = &(((uint8 *)&caster->CastToClient()->aa)[18]);
if(*aa_item == 1) { dmg = dmg*1.02; }
if(*aa_item == 2) { dmg = dmg*1.05; }
if(*aa_item == 3) { dmg = dmg*1.10; }
int chance =0;float ratio =1.0;
/*healing gift*/
uint8 *aa_item2 = &(((uint8 *)&caster->CastToClient()->aa)[19]);
if(*aa_item2 == 1) {chance+=3; ratio += 1.0;}
if(*aa_item2 == 2) {chance+=6; ratio += 1.0;}
if(*aa_item2 == 3) {chance+=10; ratio += 1.0;}
if(rand()%100 <= chance) { dmg*= ratio;
CastToClient()->Message(0, "You perform an exceptional heal! (%d)", dmg); // crit message
}
}
}
zone/spells.cpp ~line 1907 change:
else if (spells[spell_id].effectid[i] == SE_CurrentHP && dmg > 0) {
if (caster && caster->IsClient()) {
dmg = caster->CastToClient()->GetActSpellValue(spell_id, dmg);
}
}
To:
else if (spells[spell_id].effectid[i] == SE_CurrentHP && dmg > 0) {
if (caster && caster->IsClient()) {
dmg = caster->CastToClient()->GetActSpellValue(spell_id, dmg);
/*healing adept*/
uint8 *aa_item = &(((uint8 *)&caster->CastToClient()->aa)[18]);
if(*aa_item == 1) { dmg = dmg*1.02; }
if(*aa_item == 2) { dmg = dmg*1.05; }
if(*aa_item == 3) { dmg = dmg*1.10; }
int chance =0;float ratio =1.0;
/*healing gift*/
uint8 *aa_item2 = &(((uint8 *)&caster->CastToClient()->aa)[19]);
if(*aa_item2 == 1) {chance+=3; ratio += 1.0;}
if(*aa_item2 == 2) {chance+=6; ratio += 1.0;}
if(*aa_item2 == 3) {chance+=10; ratio += 1.0;}
if(rand()%100 <= chance) { dmg*= ratio;
CastToClient()->Message(0, "You perform an exceptional heal! (%d)", dmg); // crit message
}
}
}