Code: Select all
pChar2->Buff[k].SlotData[i];
Code: Select all
pChar2->Buff[k].SlotData[i+1];
Original: ${Me.Dar}
Code: Select all
case Dar://returns combined number of spell and damage "absorbment"
Dest.DWord = 0;//should probably split these into spell vs melee
Dest.Type = pIntType;
if (PCHARINFO2 pChar2 = GetCharInfo2()) {
for (unsigned long k = 0; k < NUM_LONG_BUFFS; k++) {
if (PSPELL pSpell = GetSpellByID(pChar2->Buff[k].SpellID)) {
if (pSpell->SpellType != 1) {
LONG slots = GetSpellNumEffects(pSpell);
for (LONG i = 0; i < slots; i++) {
LONG attrib = GetSpellAttrib(pSpell, i);
if (attrib == 55 /*Absorb Damage*/ || attrib == 78 /*SpellShield*/
|| attrib == 161 /*Mitigate Spell Damage*/ || attrib == 162 /*Mitigate Melee Damage*/
|| attrib == 450 /*DoT Guard*/ || attrib == 451 /*Melee Threshold Guard*/
|| attrib == 452 /*Spell Threshold Guard*/) {
Dest.DWord += pChar2->Buff[k].SlotData[i];
}
}
}
}
}
}
return true;
Code: Select all
case Dar://returns combined number of spell and damage "absorbment"
Dest.DWord = 0;//should probably split these into spell vs melee
Dest.Type = pIntType;
if (PCHARINFO2 pChar2 = GetCharInfo2()) {
for (unsigned long k = 0; k < NUM_LONG_BUFFS; k++) {
if (PSPELL pSpell = GetSpellByID(pChar2->Buff[k].SpellID)) {
if (pSpell->SpellType != 0) {
LONG slots = GetSpellNumEffects(pSpell);
for (LONG i = 0; i < slots; i++) {
LONG attrib = GetSpellAttrib(pSpell, i);
if (attrib == 55 /*Absorb Damage*/ || attrib == 78 /*SpellShield*/
|| attrib == 161 /*Mitigate Spell Damage*/ || attrib == 162 /*Mitigate Melee Damage*/
|| attrib == 450 /*DoT Guard*/ || attrib == 451 /*Melee Threshold Guard*/
|| attrib == 452 /*Spell Threshold Guard*/) {
Dest.DWord += pChar2->Buff[k].SlotData[i+1];
}
}
}
}
}
}
return true;
Code: Select all
case Counters://this case adds all resist Counters and returns that, why is this useful?
Dest.DWord = 0;//should we split these into 4? one for each debuff?
Dest.Type = pIntType;
if (PCHARINFO2 pChar2 = GetCharInfo2()) {
for (unsigned long k = 0; k < NUM_LONG_BUFFS; k++) {
if (PSPELL pSpell = GetSpellByID(pChar2->Buff[k].SpellID)) {
if (pSpell->SpellType == 0) {
LONG slots = GetSpellNumEffects(pSpell);
for (LONG i = 0; i < slots; i++) {
LONG attrib = GetSpellAttrib(pSpell, i);
if (attrib == 35 /*Disease Counter*/ || attrib == 36 /*Poison*/ || attrib == 116 /*Curse*/ || attrib == 369/*Corruption*/) {
Dest.DWord += pChar2->Buff[k].SlotData[i];
}
}
}
}
}
}
return true;
Code: Select all
case Counters://this case adds all resist Counters and returns that, why is this useful?
Dest.DWord = 0;//should we split these into 4? one for each debuff?
Dest.Type = pIntType;
if (PCHARINFO2 pChar2 = GetCharInfo2()) {
for (unsigned long k = 0; k < NUM_LONG_BUFFS; k++) {
if (PSPELL pSpell = GetSpellByID(pChar2->Buff[k].SpellID)) {
if (pSpell->SpellType == 0) {
LONG slots = GetSpellNumEffects(pSpell);
for (LONG i = 0; i < slots; i++) {
LONG attrib = GetSpellAttrib(pSpell, i);
if (attrib == 35 /*Disease Counter*/ || attrib == 36 /*Poison*/ || attrib == 116 /*Curse*/ || attrib == 369/*Corruption*/) {
Dest.DWord += pChar2->Buff[k].SlotData[i+1];
}
}
}
}
}
}
return true;
Code: Select all
case Dar:
if (PSPELL pSpell = GetSpellByID(pBuff->SpellID))
{
if (pSpell->SpellType != 0)
{
Dest.DWord = 0;
Dest.Type = pIntType;
LONG slots = GetSpellNumEffects(pSpell);
for (LONG i = 0; i < slots; i++) {
LONG attrib = GetSpellAttrib(pSpell, i);
if (attrib == 55 || attrib == 78 || attrib == 161 || attrib == 162 || attrib == 450 || attrib == 451 || attrib == 452)
Dest.DWord += pBuff->SlotData[i];
}
return true;
}
}
return false;
Code: Select all
case Dar:
if (PSPELL pSpell = GetSpellByID(pBuff->SpellID))
{
if (pSpell->SpellType != 0)
{
Dest.DWord = 0;
Dest.Type = pIntType;
LONG slots = GetSpellNumEffects(pSpell);
for (LONG i = 0; i < slots; i++) {
LONG attrib = GetSpellAttrib(pSpell, i);
if (attrib == 55 || attrib == 78 || attrib == 161 || attrib == 162 || attrib == 450 || attrib == 451 || attrib == 452)
Dest.DWord += pBuff->SlotData[i+1];
}
return true;
}
}
return false;
Code: Select all
case Counters:
if (PSPELL pSpell = GetSpellByID(pBuff->SpellID))
{
if (pSpell->SpellType == 0) {
Dest.DWord = 0;
Dest.Type = pIntType;
LONG slots = GetSpellNumEffects(pSpell);
for (LONG i = 0; i < slots; i++) {
LONG attrib = GetSpellAttrib(pSpell, i);
if (attrib == 35 || attrib == 36 || attrib == 116 || attrib == 369)
Dest.DWord += pBuff->SlotData[i];
}
return true;
}
}
return false;
Code: Select all
case Counters:
if (PSPELL pSpell = GetSpellByID(pBuff->SpellID))
{
if (pSpell->SpellType == 0) {
Dest.DWord = 0;
Dest.Type = pIntType;
LONG slots = GetSpellNumEffects(pSpell);
for (LONG i = 0; i < slots; i++) {
LONG attrib = GetSpellAttrib(pSpell, i);
if (attrib == 35 || attrib == 36 || attrib == 116 || attrib == 369)
Dest.DWord += pBuff->SlotData[i+1];
}
return true;
}
}
return false;

