mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-04 15:12:26 +00:00
fixes
Re implemented deathsavechanceAA ect as ExtraDIChance Confirmed on live that this effect persists even if caster not in zone.
This commit is contained in:
parent
402a10c488
commit
44c833fbe6
@ -14,3 +14,7 @@ ALTER TABLE `botbuffs` ADD `caston_y` INT(10) NOT NULL DEFAULT '0';
|
|||||||
ALTER TABLE `character_buffs` ADD `caston_z` INT(10) NOT NULL DEFAULT '0';
|
ALTER TABLE `character_buffs` ADD `caston_z` INT(10) NOT NULL DEFAULT '0';
|
||||||
ALTER TABLE `merc_buffs` ADD `caston_z` INT(10) NOT NULL DEFAULT '0';
|
ALTER TABLE `merc_buffs` ADD `caston_z` INT(10) NOT NULL DEFAULT '0';
|
||||||
ALTER TABLE `botbuffs` ADD `caston_z` INT(10) NOT NULL DEFAULT '0';
|
ALTER TABLE `botbuffs` ADD `caston_z` INT(10) NOT NULL DEFAULT '0';
|
||||||
|
|
||||||
|
ALTER TABLE `character_buffs` ADD `ExtraDIChance` INT(10) NOT NULL DEFAULT '0';
|
||||||
|
ALTER TABLE `merc_buffs` ADD `ExtraDIChance` INT(10) NOT NULL DEFAULT '0';
|
||||||
|
ALTER TABLE `botbuffs` ADD `ExtraDIChance` INT(10) NOT NULL DEFAULT '0';
|
||||||
15
zone/bot.cpp
15
zone/bot.cpp
@ -2476,7 +2476,7 @@ void Bot::SaveBuffs() {
|
|||||||
|
|
||||||
if(!database.RunQuery(Query, MakeAnyLenString(&Query, "INSERT INTO botbuffs (BotId, SpellId, CasterLevel, DurationFormula, "
|
if(!database.RunQuery(Query, MakeAnyLenString(&Query, "INSERT INTO botbuffs (BotId, SpellId, CasterLevel, DurationFormula, "
|
||||||
"TicsRemaining, PoisonCounters, DiseaseCounters, CurseCounters, CorruptionCounters, HitCount, MeleeRune, MagicRune, "
|
"TicsRemaining, PoisonCounters, DiseaseCounters, CurseCounters, CorruptionCounters, HitCount, MeleeRune, MagicRune, "
|
||||||
"dot_rune, caston_x, Persistent, caston_y, caston_z) VALUES (%u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u);",
|
"dot_rune, caston_x, Persistent, caston_y, caston_z, ExtraDIChance) VALUES (%u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %i, %u, %i, %i, %i);",
|
||||||
GetBotID(), buffs[BuffCount].spellid, buffs[BuffCount].casterlevel, spells[buffs[BuffCount].spellid].buffdurationformula,
|
GetBotID(), buffs[BuffCount].spellid, buffs[BuffCount].casterlevel, spells[buffs[BuffCount].spellid].buffdurationformula,
|
||||||
buffs[BuffCount].ticsremaining,
|
buffs[BuffCount].ticsremaining,
|
||||||
CalculatePoisonCounters(buffs[BuffCount].spellid) > 0 ? buffs[BuffCount].counters : 0,
|
CalculatePoisonCounters(buffs[BuffCount].spellid) > 0 ? buffs[BuffCount].counters : 0,
|
||||||
@ -2485,7 +2485,11 @@ void Bot::SaveBuffs() {
|
|||||||
CalculateCorruptionCounters(buffs[BuffCount].spellid) > 0 ? buffs[BuffCount].counters : 0,
|
CalculateCorruptionCounters(buffs[BuffCount].spellid) > 0 ? buffs[BuffCount].counters : 0,
|
||||||
buffs[BuffCount].numhits, buffs[BuffCount].melee_rune, buffs[BuffCount].magic_rune,
|
buffs[BuffCount].numhits, buffs[BuffCount].melee_rune, buffs[BuffCount].magic_rune,
|
||||||
buffs[BuffCount].dot_rune,
|
buffs[BuffCount].dot_rune,
|
||||||
buffs[BuffCount].caston_x, IsPersistent, buffs[BuffCount].caston_y,buffs[BuffCount].caston_z), TempErrorMessageBuffer)) {
|
buffs[BuffCount].caston_x,
|
||||||
|
IsPersistent,
|
||||||
|
buffs[BuffCount].caston_y,
|
||||||
|
buffs[BuffCount].caston_z,
|
||||||
|
buffs[BuffCount].ExtraDIChance), TempErrorMessageBuffer)) {
|
||||||
errorMessage = std::string(TempErrorMessageBuffer);
|
errorMessage = std::string(TempErrorMessageBuffer);
|
||||||
safe_delete(Query);
|
safe_delete(Query);
|
||||||
Query = 0;
|
Query = 0;
|
||||||
@ -2515,7 +2519,7 @@ void Bot::LoadBuffs() {
|
|||||||
|
|
||||||
bool BuffsLoaded = false;
|
bool BuffsLoaded = false;
|
||||||
|
|
||||||
if(!database.RunQuery(Query, MakeAnyLenString(&Query, "SELECT SpellId, CasterLevel, DurationFormula, TicsRemaining, PoisonCounters, DiseaseCounters, CurseCounters, CorruptionCounters, HitCount, MeleeRune, MagicRune, dot_rune, caston_x, Persistent, caston_y, caston_z FROM botbuffs WHERE BotId = %u", GetBotID()), TempErrorMessageBuffer, &DatasetResult)) {
|
if(!database.RunQuery(Query, MakeAnyLenString(&Query, "SELECT SpellId, CasterLevel, DurationFormula, TicsRemaining, PoisonCounters, DiseaseCounters, CurseCounters, CorruptionCounters, HitCount, MeleeRune, MagicRune, dot_rune, caston_x, Persistent, caston_y, caston_z, ExtraDIChance FROM botbuffs WHERE BotId = %u", GetBotID()), TempErrorMessageBuffer, &DatasetResult)) {
|
||||||
errorMessage = std::string(TempErrorMessageBuffer);
|
errorMessage = std::string(TempErrorMessageBuffer);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -2550,8 +2554,9 @@ void Bot::LoadBuffs() {
|
|||||||
if(atoi(DataRow[13]))
|
if(atoi(DataRow[13]))
|
||||||
IsPersistent = true;
|
IsPersistent = true;
|
||||||
|
|
||||||
buffs[BuffCount].caston_x = atoi(DataRow[14]);
|
buffs[BuffCount].caston_y = atoi(DataRow[14]);
|
||||||
buffs[BuffCount].caston_x = atoi(DataRow[15]);
|
buffs[BuffCount].caston_z = atoi(DataRow[15]);
|
||||||
|
buffs[BuffCount].ExtraDIChance = atoi(DataRow[16]);
|
||||||
|
|
||||||
buffs[BuffCount].persistant_buff = IsPersistent;
|
buffs[BuffCount].persistant_buff = IsPersistent;
|
||||||
|
|
||||||
|
|||||||
@ -156,9 +156,10 @@ struct Buffs_Struct {
|
|||||||
uint32 melee_rune;
|
uint32 melee_rune;
|
||||||
uint32 magic_rune;
|
uint32 magic_rune;
|
||||||
uint32 dot_rune;
|
uint32 dot_rune;
|
||||||
uint32 caston_x;
|
int32 caston_x;
|
||||||
uint32 caston_y;
|
int32 caston_y;
|
||||||
uint32 caston_z;
|
int32 caston_z;
|
||||||
|
int32 ExtraDIChance;
|
||||||
bool persistant_buff;
|
bool persistant_buff;
|
||||||
bool client; //True if the caster is a client
|
bool client; //True if the caster is a client
|
||||||
bool UpdateClient;
|
bool UpdateClient;
|
||||||
|
|||||||
@ -1321,6 +1321,20 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case SE_DeathSave: {
|
||||||
|
|
||||||
|
int16 mod = 0;
|
||||||
|
|
||||||
|
if(caster) {
|
||||||
|
mod = caster->aabonuses.UnfailingDivinity +
|
||||||
|
caster->itembonuses.UnfailingDivinity +
|
||||||
|
caster->spellbonuses.UnfailingDivinity;
|
||||||
|
}
|
||||||
|
|
||||||
|
buffs[buffslot].ExtraDIChance = mod;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case SE_Illusion:
|
case SE_Illusion:
|
||||||
{
|
{
|
||||||
#ifdef SPELL_EFFECT_SPAM
|
#ifdef SPELL_EFFECT_SPAM
|
||||||
@ -1432,10 +1446,17 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial)
|
|||||||
snprintf(effect_desc, _EDLEN, "Memory Blur: %d", effect_value);
|
snprintf(effect_desc, _EDLEN, "Memory Blur: %d", effect_value);
|
||||||
#endif
|
#endif
|
||||||
int wipechance = spells[spell_id].base[i];
|
int wipechance = spells[spell_id].base[i];
|
||||||
int bonus = spellbonuses.IncreaseChanceMemwipe + itembonuses.IncreaseChanceMemwipe + aabonuses.IncreaseChanceMemwipe;
|
int bonus = 0;
|
||||||
|
|
||||||
|
if (caster){
|
||||||
|
bonus = caster->spellbonuses.IncreaseChanceMemwipe +
|
||||||
|
caster->itembonuses.IncreaseChanceMemwipe +
|
||||||
|
caster->aabonuses.IncreaseChanceMemwipe;
|
||||||
|
}
|
||||||
|
|
||||||
wipechance += wipechance*bonus/100;
|
wipechance += wipechance*bonus/100;
|
||||||
|
|
||||||
if(MakeRandomInt(0, 100) < wipechance)
|
if(MakeRandomInt(0, 99) < wipechance)
|
||||||
{
|
{
|
||||||
if(IsAIControlled())
|
if(IsAIControlled())
|
||||||
{
|
{
|
||||||
@ -2804,7 +2825,6 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial)
|
|||||||
case SE_IncreaseChanceMemwipe:
|
case SE_IncreaseChanceMemwipe:
|
||||||
case SE_CriticalMend:
|
case SE_CriticalMend:
|
||||||
case SE_LimitCastTimeMax:
|
case SE_LimitCastTimeMax:
|
||||||
case SE_DeathSave:
|
|
||||||
case SE_TriggerOnReqCaster:
|
case SE_TriggerOnReqCaster:
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
@ -3267,6 +3287,31 @@ void Mob::DoBuffTic(uint16 spell_id, int slot, uint32 ticsremaining, uint8 caste
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case SE_WipeHateList:
|
||||||
|
{
|
||||||
|
|
||||||
|
int wipechance = spells[spell_id].base[i];
|
||||||
|
int bonus = 0;
|
||||||
|
|
||||||
|
if (caster){
|
||||||
|
bonus = caster->spellbonuses.IncreaseChanceMemwipe +
|
||||||
|
caster->itembonuses.IncreaseChanceMemwipe +
|
||||||
|
caster->aabonuses.IncreaseChanceMemwipe;
|
||||||
|
}
|
||||||
|
|
||||||
|
wipechance += wipechance*bonus/100;
|
||||||
|
|
||||||
|
if(MakeRandomInt(0, 99) < wipechance)
|
||||||
|
{
|
||||||
|
if(IsAIControlled())
|
||||||
|
{
|
||||||
|
WipeHateList();
|
||||||
|
}
|
||||||
|
Message(13, "Your mind fogs. Who are my friends? Who are my enemies?... it was all so clear a moment ago...");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case SE_Charm: {
|
case SE_Charm: {
|
||||||
if (!caster || !PassCharismaCheck(caster, this, spell_id)) {
|
if (!caster || !PassCharismaCheck(caster, this, spell_id)) {
|
||||||
BuffFadeByEffect(SE_Charm);
|
BuffFadeByEffect(SE_Charm);
|
||||||
@ -5262,13 +5307,10 @@ bool Mob::TryDeathSave() {
|
|||||||
int16 UD_HealMod = 0;
|
int16 UD_HealMod = 0;
|
||||||
uint32 HealAmt = 300; //Death Pact max Heal
|
uint32 HealAmt = 300; //Death Pact max Heal
|
||||||
|
|
||||||
Mob* caster = entity_list.GetMobID(buffs[buffSlot].casterid);
|
|
||||||
|
|
||||||
if (caster)
|
|
||||||
UD_HealMod = caster->spellbonuses.UnfailingDivinity + caster->itembonuses.UnfailingDivinity + caster->aabonuses.UnfailingDivinity;
|
|
||||||
|
|
||||||
if(buffSlot >= 0){
|
if(buffSlot >= 0){
|
||||||
|
|
||||||
|
UD_HealMod = buffs[buffSlot].ExtraDIChance;
|
||||||
|
|
||||||
SuccessChance = ( (GetCHA() * (RuleI(Spells, DeathSaveCharismaMod))) + 1) / 10; //(CHA Mod Default = 3)
|
SuccessChance = ( (GetCHA() * (RuleI(Spells, DeathSaveCharismaMod))) + 1) / 10; //(CHA Mod Default = 3)
|
||||||
|
|
||||||
if (SuccessChance > 95)
|
if (SuccessChance > 95)
|
||||||
@ -5333,6 +5375,8 @@ bool Mob::TryDeathSave() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BuffFadeBySlot(buffSlot);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2957,6 +2957,7 @@ int Mob::AddBuff(Mob *caster, uint16 spell_id, int duration, int32 level_overrid
|
|||||||
buffs[emptyslot].caston_y = 0;
|
buffs[emptyslot].caston_y = 0;
|
||||||
buffs[emptyslot].caston_z = 0;
|
buffs[emptyslot].caston_z = 0;
|
||||||
buffs[emptyslot].dot_rune = 0;
|
buffs[emptyslot].dot_rune = 0;
|
||||||
|
buffs[emptyslot].ExtraDIChance = 0;
|
||||||
|
|
||||||
if (level_override > 0) {
|
if (level_override > 0) {
|
||||||
buffs[emptyslot].UpdateClient = true;
|
buffs[emptyslot].UpdateClient = true;
|
||||||
|
|||||||
@ -1815,7 +1815,7 @@ void ZoneDatabase::SaveMercBuffs(Merc *merc) {
|
|||||||
|
|
||||||
if(!database.RunQuery(Query, MakeAnyLenString(&Query, "INSERT INTO merc_buffs (MercId, SpellId, CasterLevel, DurationFormula, "
|
if(!database.RunQuery(Query, MakeAnyLenString(&Query, "INSERT INTO merc_buffs (MercId, SpellId, CasterLevel, DurationFormula, "
|
||||||
"TicsRemaining, PoisonCounters, DiseaseCounters, CurseCounters, CorruptionCounters, HitCount, MeleeRune, MagicRune, "
|
"TicsRemaining, PoisonCounters, DiseaseCounters, CurseCounters, CorruptionCounters, HitCount, MeleeRune, MagicRune, "
|
||||||
"dot_rune, caston_x, Persistent, caston_y, caston_z) VALUES (%u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u);",
|
"dot_rune, caston_x, Persistent, caston_y, caston_z, ExtraDIChance) VALUES (%u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %i, %u, %i, %i, %i);",
|
||||||
merc->GetMercID(), buffs[BuffCount].spellid, buffs[BuffCount].casterlevel, spells[buffs[BuffCount].spellid].buffdurationformula,
|
merc->GetMercID(), buffs[BuffCount].spellid, buffs[BuffCount].casterlevel, spells[buffs[BuffCount].spellid].buffdurationformula,
|
||||||
buffs[BuffCount].ticsremaining,
|
buffs[BuffCount].ticsremaining,
|
||||||
CalculatePoisonCounters(buffs[BuffCount].spellid) > 0 ? buffs[BuffCount].counters : 0,
|
CalculatePoisonCounters(buffs[BuffCount].spellid) > 0 ? buffs[BuffCount].counters : 0,
|
||||||
@ -1824,7 +1824,11 @@ void ZoneDatabase::SaveMercBuffs(Merc *merc) {
|
|||||||
CalculateCorruptionCounters(buffs[BuffCount].spellid) > 0 ? buffs[BuffCount].counters : 0,
|
CalculateCorruptionCounters(buffs[BuffCount].spellid) > 0 ? buffs[BuffCount].counters : 0,
|
||||||
buffs[BuffCount].numhits, buffs[BuffCount].melee_rune, buffs[BuffCount].magic_rune,
|
buffs[BuffCount].numhits, buffs[BuffCount].melee_rune, buffs[BuffCount].magic_rune,
|
||||||
buffs[BuffCount].dot_rune,
|
buffs[BuffCount].dot_rune,
|
||||||
buffs[BuffCount].caston_x, IsPersistent, buffs[BuffCount].caston_y, buffs[BuffCount].caston_z), TempErrorMessageBuffer)) {
|
buffs[BuffCount].caston_x,
|
||||||
|
IsPersistent,
|
||||||
|
buffs[BuffCount].caston_y,
|
||||||
|
buffs[BuffCount].caston_z,
|
||||||
|
buffs[BuffCount].ExtraDIChance), TempErrorMessageBuffer)) {
|
||||||
errorMessage = std::string(TempErrorMessageBuffer);
|
errorMessage = std::string(TempErrorMessageBuffer);
|
||||||
safe_delete(Query);
|
safe_delete(Query);
|
||||||
Query = 0;
|
Query = 0;
|
||||||
@ -1856,7 +1860,7 @@ void ZoneDatabase::LoadMercBuffs(Merc *merc) {
|
|||||||
|
|
||||||
bool BuffsLoaded = false;
|
bool BuffsLoaded = false;
|
||||||
|
|
||||||
if(!database.RunQuery(Query, MakeAnyLenString(&Query, "SELECT SpellId, CasterLevel, DurationFormula, TicsRemaining, PoisonCounters, DiseaseCounters, CurseCounters, CorruptionCounters, HitCount, MeleeRune, MagicRune, dot_rune, CasterAARank, Persistent FROM merc_buffs WHERE MercId = %u", merc->GetMercID()), TempErrorMessageBuffer, &DatasetResult)) {
|
if(!database.RunQuery(Query, MakeAnyLenString(&Query, "SELECT SpellId, CasterLevel, DurationFormula, TicsRemaining, PoisonCounters, DiseaseCounters, CurseCounters, CorruptionCounters, HitCount, MeleeRune, MagicRune, dot_rune, caston_x, Persistent, caston_y, caston_z, ExtraDIChance FROM merc_buffs WHERE MercId = %u", merc->GetMercID()), TempErrorMessageBuffer, &DatasetResult)) {
|
||||||
errorMessage = std::string(TempErrorMessageBuffer);
|
errorMessage = std::string(TempErrorMessageBuffer);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -1893,6 +1897,7 @@ void ZoneDatabase::LoadMercBuffs(Merc *merc) {
|
|||||||
|
|
||||||
buffs[BuffCount].caston_y = atoi(DataRow[13]);
|
buffs[BuffCount].caston_y = atoi(DataRow[13]);
|
||||||
buffs[BuffCount].caston_z = atoi(DataRow[14]);
|
buffs[BuffCount].caston_z = atoi(DataRow[14]);
|
||||||
|
buffs[BuffCount].ExtraDIChance = atoi(DataRow[15]);
|
||||||
|
|
||||||
buffs[BuffCount].persistant_buff = IsPersistent;
|
buffs[BuffCount].persistant_buff = IsPersistent;
|
||||||
|
|
||||||
@ -2570,10 +2575,10 @@ void ZoneDatabase::SaveBuffs(Client *c) {
|
|||||||
if(buffs[i].spellid != SPELL_UNKNOWN) {
|
if(buffs[i].spellid != SPELL_UNKNOWN) {
|
||||||
if(!database.RunQuery(query, MakeAnyLenString(&query, "INSERT INTO `character_buffs` (character_id, slot_id, spell_id, "
|
if(!database.RunQuery(query, MakeAnyLenString(&query, "INSERT INTO `character_buffs` (character_id, slot_id, spell_id, "
|
||||||
"caster_level, caster_name, ticsremaining, counters, numhits, melee_rune, magic_rune, persistent, dot_rune, "
|
"caster_level, caster_name, ticsremaining, counters, numhits, melee_rune, magic_rune, persistent, dot_rune, "
|
||||||
"caston_x, caston_y, caston_z) VALUES('%u', '%u', '%u', '%u', '%s', '%u', '%u', '%u', '%u', '%u', '%u', '%u', '%u')",
|
"caston_x, caston_y, caston_z, ExtraDIChance) VALUES('%u', '%u', '%u', '%u', '%s', '%u', '%u', '%u', '%u', '%u', '%u', '%u', '%i', '%i', '%i', '%i')",
|
||||||
c->CharacterID(), i, buffs[i].spellid, buffs[i].casterlevel, buffs[i].caster_name, buffs[i].ticsremaining,
|
c->CharacterID(), i, buffs[i].spellid, buffs[i].casterlevel, buffs[i].caster_name, buffs[i].ticsremaining,
|
||||||
buffs[i].counters, buffs[i].numhits, buffs[i].melee_rune, buffs[i].magic_rune, buffs[i].persistant_buff,
|
buffs[i].counters, buffs[i].numhits, buffs[i].melee_rune, buffs[i].magic_rune, buffs[i].persistant_buff,
|
||||||
buffs[i].dot_rune, buffs[i].caston_x, buffs[i].caston_y, buffs[i].caston_z),
|
buffs[i].dot_rune, buffs[i].caston_x, buffs[i].caston_y, buffs[i].caston_z, buffs[i].ExtraDIChance),
|
||||||
errbuf)) {
|
errbuf)) {
|
||||||
LogFile->write(EQEMuLog::Error, "Error in SaveBuffs query '%s': %s", query, errbuf);
|
LogFile->write(EQEMuLog::Error, "Error in SaveBuffs query '%s': %s", query, errbuf);
|
||||||
}
|
}
|
||||||
@ -2595,7 +2600,7 @@ void ZoneDatabase::LoadBuffs(Client *c) {
|
|||||||
MYSQL_RES *result;
|
MYSQL_RES *result;
|
||||||
MYSQL_ROW row;
|
MYSQL_ROW row;
|
||||||
if (RunQuery(query, MakeAnyLenString(&query, "SELECT spell_id, slot_id, caster_level, caster_name, ticsremaining, counters, "
|
if (RunQuery(query, MakeAnyLenString(&query, "SELECT spell_id, slot_id, caster_level, caster_name, ticsremaining, counters, "
|
||||||
"numhits, melee_rune, magic_rune, persistent, dot_rune, caston_x, caston_y, caston_z FROM `character_buffs` WHERE "
|
"numhits, melee_rune, magic_rune, persistent, dot_rune, caston_x, caston_y, caston_z, ExtraDIChance FROM `character_buffs` WHERE "
|
||||||
"`character_id`='%u'",
|
"`character_id`='%u'",
|
||||||
c->CharacterID()), errbuf, &result))
|
c->CharacterID()), errbuf, &result))
|
||||||
{
|
{
|
||||||
@ -2621,9 +2626,10 @@ void ZoneDatabase::LoadBuffs(Client *c) {
|
|||||||
uint32 magic_rune = atoul(row[8]);
|
uint32 magic_rune = atoul(row[8]);
|
||||||
uint8 persistent = atoul(row[9]);
|
uint8 persistent = atoul(row[9]);
|
||||||
uint32 dot_rune = atoul(row[10]);
|
uint32 dot_rune = atoul(row[10]);
|
||||||
uint32 caston_x = atoul(row[11]);
|
int32 caston_x = atoul(row[11]);
|
||||||
uint32 caston_y = atoul(row[12]);
|
int32 caston_y = atoul(row[12]);
|
||||||
uint32 caston_z = atoul(row[13]);
|
int32 caston_z = atoul(row[13]);
|
||||||
|
int32 ExtraDIChance = atoul(row[14]);
|
||||||
|
|
||||||
buffs[slot_id].spellid = spell_id;
|
buffs[slot_id].spellid = spell_id;
|
||||||
buffs[slot_id].casterlevel = caster_level;
|
buffs[slot_id].casterlevel = caster_level;
|
||||||
@ -2647,6 +2653,7 @@ void ZoneDatabase::LoadBuffs(Client *c) {
|
|||||||
buffs[slot_id].caston_x = caston_x;
|
buffs[slot_id].caston_x = caston_x;
|
||||||
buffs[slot_id].caston_y = caston_y;
|
buffs[slot_id].caston_y = caston_y;
|
||||||
buffs[slot_id].caston_z = caston_z;
|
buffs[slot_id].caston_z = caston_z;
|
||||||
|
buffs[slot_id].ExtraDIChance = ExtraDIChance;
|
||||||
buffs[slot_id].UpdateClient = false;
|
buffs[slot_id].UpdateClient = false;
|
||||||
if(IsRuneSpell(spell_id)) {
|
if(IsRuneSpell(spell_id)) {
|
||||||
c->SetHasRune(true);
|
c->SetHasRune(true);
|
||||||
@ -2655,11 +2662,6 @@ void ZoneDatabase::LoadBuffs(Client *c) {
|
|||||||
c->SetHasSpellRune(true);
|
c->SetHasSpellRune(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
if(IsDeathSaveSpell(spell_id)) {
|
|
||||||
c->SetDeathSaveChance(true);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
mysql_free_result(result);
|
mysql_free_result(result);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user