mirror of
https://github.com/EQEmu/Server.git
synced 2026-01-02 22:03:52 +00:00
Merge branch 'master' of github.com:EQEmu/Server
This commit is contained in:
commit
88ba962a4c
@ -1,5 +1,5 @@
|
||||
EQEmu - Custom Game Implementation for EverQuest
|
||||
|
||||
Dependencies can be obtained at http://eqemu.github.com/
|
||||
Dependencies can be obtained at http://eqemu.github.io
|
||||
|
||||
More Information: https://github.com/EQEmu/Server/wiki
|
||||
|
||||
@ -1,5 +1,22 @@
|
||||
EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
||||
-------------------------------------------------------
|
||||
== 01/13/2014 ==
|
||||
Kayen: Numerous minor fixes to spell effects.
|
||||
Kayen: Changed SE_ArcheryDoubleAttack -> SE_DoubleRangedAttack (now works with throwing ect)
|
||||
Kayen: Changed SE_IncreaseHitDmgTaken -> SE_TriggerMeleeThreshold (now only works on melee)
|
||||
Kayen: Changed SE_MitigateMeleeDamageSP -> SE_MeleeThresholdGuard
|
||||
Kayen: Implemented SE_SpellThresholdGuard (Partial Spell Rune that only is lowered if spell hits are over X amount of damage)
|
||||
Kayen: Implemented SE_TriggerSpellThreshold (implemented Trigger effect on X amount of spell damage taken)
|
||||
Kayen: Changed SE_ReduceHealing -> SE_FcHealAmtIncoming (focus limited Add/Remove amount of healing on target by X amount)
|
||||
Kayen: Change SE_CriticalHealChance2 -> SE_CriticalHealDecay
|
||||
Kayen: Change SE_CriticalHealOverTime2 -> SE_CriticalRegenDecay
|
||||
Kayen: Implemented SE_CriticalDotDecay
|
||||
Note: 'Decay' effects means the chance to critical decays based on the level of the spell using the effect (like focus decay)
|
||||
Kayen: Implemented SE_FfLimitUseMin (focus limit to require a min amount of numhits value)
|
||||
Kayen: Implemented SE_FcLimitUse (focus to increases numhits count by percent)
|
||||
Kayen: Implemented SE_LimitRace (Limits to spells cast by a certain race)
|
||||
Kayen: Implemented SE_FcMute (silences casting of spells that contain specific spell effects) ie silence only heals
|
||||
|
||||
== 01/09/2014 ==
|
||||
demonstar55: Add pet size preservation like live (zone, camp, etc)
|
||||
|
||||
|
||||
@ -229,25 +229,18 @@ void EQStreamServer::Process() {
|
||||
}
|
||||
|
||||
std::map <std::string, EQStream*>::iterator connection;
|
||||
for (connection = connection_list.begin( ); connection != connection_list.end( );)
|
||||
{
|
||||
if(!connection->second)
|
||||
{
|
||||
std::map <std::string, EQStream*>::iterator tmp=connection;
|
||||
connection++;
|
||||
connection_list.erase(tmp);
|
||||
for (connection = connection_list.begin(); connection != connection_list.end();) {
|
||||
if (!connection->second) {
|
||||
connection = connection_list.erase(connection);
|
||||
continue;
|
||||
}
|
||||
EQStream* eqs_data = connection->second;
|
||||
if (eqs_data->IsFree() && (!eqs_data->CheckNetActive())) {
|
||||
std::map <std::string, EQStream*>::iterator tmp=connection;
|
||||
connection++;
|
||||
safe_delete(eqs_data);
|
||||
connection_list.erase(tmp);
|
||||
}
|
||||
else if(!eqs_data->RunLoop) {
|
||||
connection = connection_list.erase(connection);
|
||||
} else if (!eqs_data->RunLoop) {
|
||||
eqs_data->Process(sock);
|
||||
connection++;
|
||||
++connection;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -747,7 +747,7 @@ void EQStream::Write(int eq_fd)
|
||||
// Copy it first as it will still live until it is acked
|
||||
p=(*sitr)->Copy();
|
||||
_log(NET__NET_COMBINE, _L "Starting combined packet with seq packet %d of len %d" __L, seq_send, p->size);
|
||||
sitr++;
|
||||
++sitr;
|
||||
NextSequencedSend++;
|
||||
} else if (!p->combine(*sitr)) {
|
||||
// Trying to combine this packet with the base didn't work (too big maybe)
|
||||
@ -765,7 +765,7 @@ void EQStream::Write(int eq_fd)
|
||||
} else {
|
||||
// Combine worked
|
||||
_log(NET__NET_COMBINE, _L "Combined seq packet %d of len %d, yeilding %d combined." __L, seq_send, (*sitr)->size, p->size);
|
||||
sitr++;
|
||||
++sitr;
|
||||
NextSequencedSend++;
|
||||
}
|
||||
} else {
|
||||
@ -774,7 +774,7 @@ void EQStream::Write(int eq_fd)
|
||||
// Copy it first as it will still live until it is acked
|
||||
p=(*sitr)->Copy();
|
||||
_log(NET__NET_COMBINE, _L "Starting combined packet with seq packet %d of len %d" __L, seq_send, p->size);
|
||||
sitr++;
|
||||
++sitr;
|
||||
NextSequencedSend++;
|
||||
} else if (!p->combine(*sitr)) {
|
||||
// Trying to combine this packet with the base didn't work (too big maybe)
|
||||
@ -792,7 +792,7 @@ void EQStream::Write(int eq_fd)
|
||||
} else {
|
||||
// Combine worked
|
||||
_log(NET__NET_COMBINE, _L "Combined seq packet %d of len %d, yeilding %d combined." __L, seq_send, (*sitr)->size, p->size);
|
||||
sitr++;
|
||||
++sitr;
|
||||
NextSequencedSend++;
|
||||
}
|
||||
}
|
||||
@ -1047,7 +1047,7 @@ EQApplicationPacket *p=nullptr;
|
||||
MInboundQueue.lock();
|
||||
if (!InboundQueue.empty()) {
|
||||
std::vector<EQRawApplicationPacket *>::iterator itr;
|
||||
for(itr=InboundQueue.begin();itr!=InboundQueue.end();itr++) {
|
||||
for(itr=InboundQueue.begin();itr!=InboundQueue.end();++itr) {
|
||||
p=*itr;
|
||||
delete p;
|
||||
}
|
||||
@ -1094,7 +1094,7 @@ EQProtocolPacket *p=nullptr;
|
||||
}
|
||||
if(!SequencedQueue.empty()) {
|
||||
std::deque<EQProtocolPacket *>::iterator itr;
|
||||
for(itr=SequencedQueue.begin();itr!=SequencedQueue.end();itr++) {
|
||||
for(itr=SequencedQueue.begin();itr!=SequencedQueue.end();++itr) {
|
||||
p=*itr;
|
||||
delete p;
|
||||
}
|
||||
@ -1119,7 +1119,7 @@ EQProtocolPacket *p=nullptr;
|
||||
|
||||
if(!PacketQueue.empty()) {
|
||||
std::map<unsigned short,EQProtocolPacket *>::iterator itr;
|
||||
for(itr=PacketQueue.begin();itr!=PacketQueue.end();itr++) {
|
||||
for(itr=PacketQueue.begin();itr!=PacketQueue.end();++itr) {
|
||||
p=itr->second;
|
||||
delete p;
|
||||
}
|
||||
|
||||
@ -101,7 +101,7 @@ ItemInstQueue::~ItemInstQueue() {
|
||||
iter_queue cur,end;
|
||||
cur = m_list.begin();
|
||||
end = m_list.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
ItemInst *tmp = * cur;
|
||||
safe_delete(tmp);
|
||||
}
|
||||
@ -113,7 +113,7 @@ Inventory::~Inventory() {
|
||||
|
||||
cur = m_worn.begin();
|
||||
end = m_worn.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
ItemInst *tmp = cur->second;
|
||||
safe_delete(tmp);
|
||||
}
|
||||
@ -121,7 +121,7 @@ Inventory::~Inventory() {
|
||||
|
||||
cur = m_inv.begin();
|
||||
end = m_inv.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
ItemInst *tmp = cur->second;
|
||||
safe_delete(tmp);
|
||||
}
|
||||
@ -129,7 +129,7 @@ Inventory::~Inventory() {
|
||||
|
||||
cur = m_bank.begin();
|
||||
end = m_bank.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
ItemInst *tmp = cur->second;
|
||||
safe_delete(tmp);
|
||||
}
|
||||
@ -137,7 +137,7 @@ Inventory::~Inventory() {
|
||||
|
||||
cur = m_shbank.begin();
|
||||
end = m_shbank.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
ItemInst *tmp = cur->second;
|
||||
safe_delete(tmp);
|
||||
}
|
||||
@ -145,7 +145,7 @@ Inventory::~Inventory() {
|
||||
|
||||
cur = m_trade.begin();
|
||||
end = m_trade.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
ItemInst *tmp = cur->second;
|
||||
safe_delete(tmp);
|
||||
}
|
||||
@ -166,7 +166,7 @@ ItemInst::ItemInst(const ItemInst& copy)
|
||||
m_merchantcount=copy.m_merchantcount;
|
||||
// Copy container contents
|
||||
iter_contents it;
|
||||
for (it=copy.m_contents.begin(); it!=copy.m_contents.end(); it++) {
|
||||
for (it=copy.m_contents.begin(); it!=copy.m_contents.end(); ++it) {
|
||||
ItemInst* inst_old = it->second;
|
||||
ItemInst* inst_new = nullptr;
|
||||
|
||||
@ -179,7 +179,7 @@ ItemInst::ItemInst(const ItemInst& copy)
|
||||
}
|
||||
}
|
||||
std::map<std::string, std::string>::const_iterator iter;
|
||||
for (iter = copy.m_custom_data.begin(); iter != copy.m_custom_data.end(); iter++) {
|
||||
for (iter = copy.m_custom_data.begin(); iter != copy.m_custom_data.end(); ++iter) {
|
||||
m_custom_data[iter->first] = iter->second;
|
||||
}
|
||||
m_SerialNumber = copy.m_SerialNumber;
|
||||
@ -428,7 +428,7 @@ void ItemInst::Clear()
|
||||
iter_contents cur, end;
|
||||
cur = m_contents.begin();
|
||||
end = m_contents.end();
|
||||
for (; cur != end; cur++) {
|
||||
for (; cur != end; ++cur) {
|
||||
ItemInst* inst = cur->second;
|
||||
safe_delete(inst);
|
||||
}
|
||||
@ -446,7 +446,7 @@ void ItemInst::ClearByFlags(byFlagSetting is_nodrop, byFlagSetting is_norent)
|
||||
ItemInst* inst = cur->second;
|
||||
const Item_Struct* item = inst->GetItem();
|
||||
del = cur;
|
||||
cur++;
|
||||
++cur;
|
||||
|
||||
switch(is_nodrop) {
|
||||
case byFlagSet:
|
||||
@ -611,7 +611,7 @@ std::string ItemInst::GetCustomDataString() const {
|
||||
ret_val += iter->first;
|
||||
ret_val += "^";
|
||||
ret_val += iter->second;
|
||||
iter++;
|
||||
++iter;
|
||||
|
||||
if(ret_val.length() > 0) {
|
||||
ret_val += "^";
|
||||
@ -1231,11 +1231,11 @@ int16 Inventory::FindFreeSlot(bool for_bag, bool try_cursor, uint8 min_size, boo
|
||||
void Inventory::dumpBagContents(ItemInst *inst, iter_inst *it) {
|
||||
iter_contents itb;
|
||||
|
||||
if (!inst || !inst->IsType(ItemClassContainer))
|
||||
if (!inst || !inst->IsType(ItemClassContainer))
|
||||
return;
|
||||
|
||||
// Go through bag, if bag
|
||||
for (itb=inst->_begin(); itb!=inst->_end(); itb++) {
|
||||
for (itb=inst->_begin(); itb!=inst->_end(); ++itb) {
|
||||
ItemInst* baginst = itb->second;
|
||||
if(!baginst || !baginst->GetItem())
|
||||
continue;
|
||||
@ -1308,7 +1308,7 @@ void Inventory::dumpItemCollection(const std::map<int16, ItemInst*> &collection)
|
||||
iter_contents itb;
|
||||
ItemInst* inst = nullptr;
|
||||
|
||||
for (it=collection.begin(); it!=collection.end(); it++) {
|
||||
for (it=collection.begin(); it!=collection.end(); ++it) {
|
||||
inst = it->second;
|
||||
if(!inst || !inst->GetItem())
|
||||
continue;
|
||||
@ -1430,7 +1430,7 @@ int16 Inventory::_HasItem(std::map<int16, ItemInst*>& bucket, uint32 item_id, ui
|
||||
uint8 quantity_found = 0;
|
||||
|
||||
// Check item: After failed checks, check bag contents (if bag)
|
||||
for (it=bucket.begin(); it!=bucket.end(); it++) {
|
||||
for (it=bucket.begin(); it!=bucket.end(); ++it) {
|
||||
inst = it->second;
|
||||
if (inst) {
|
||||
if (inst->GetID() == item_id) {
|
||||
@ -1447,7 +1447,7 @@ int16 Inventory::_HasItem(std::map<int16, ItemInst*>& bucket, uint32 item_id, ui
|
||||
// Go through bag, if bag
|
||||
if (inst && inst->IsType(ItemClassContainer)) {
|
||||
|
||||
for (itb=inst->_begin(); itb!=inst->_end(); itb++) {
|
||||
for (itb=inst->_begin(); itb!=inst->_end(); ++itb) {
|
||||
ItemInst* baginst = itb->second;
|
||||
if (baginst->GetID() == item_id) {
|
||||
quantity_found += (baginst->GetCharges()<=0) ? 1 : baginst->GetCharges();
|
||||
@ -1474,7 +1474,7 @@ int16 Inventory::_HasItem(ItemInstQueue& iqueue, uint32 item_id, uint8 quantity)
|
||||
uint8 quantity_found = 0;
|
||||
|
||||
// Read-only iteration of queue
|
||||
for (it=iqueue.begin(); it!=iqueue.end(); it++) {
|
||||
for (it=iqueue.begin(); it!=iqueue.end(); ++it) {
|
||||
ItemInst* inst = *it;
|
||||
if (inst)
|
||||
{
|
||||
@ -1491,7 +1491,7 @@ int16 Inventory::_HasItem(ItemInstQueue& iqueue, uint32 item_id, uint8 quantity)
|
||||
// Go through bag, if bag
|
||||
if (inst && inst->IsType(ItemClassContainer)) {
|
||||
|
||||
for (itb=inst->_begin(); itb!=inst->_end(); itb++) {
|
||||
for (itb=inst->_begin(); itb!=inst->_end(); ++itb) {
|
||||
ItemInst* baginst = itb->second;
|
||||
if (baginst->GetID() == item_id) {
|
||||
quantity_found += (baginst->GetCharges()<=0) ? 1 : baginst->GetCharges();
|
||||
@ -1520,7 +1520,7 @@ int16 Inventory::_HasItemByUse(std::map<int16, ItemInst*>& bucket, uint8 use, ui
|
||||
uint8 quantity_found = 0;
|
||||
|
||||
// Check item: After failed checks, check bag contents (if bag)
|
||||
for (it=bucket.begin(); it!=bucket.end(); it++) {
|
||||
for (it=bucket.begin(); it!=bucket.end(); ++it) {
|
||||
inst = it->second;
|
||||
if (inst && inst->IsType(ItemClassCommon) && inst->GetItem()->ItemType == use) {
|
||||
quantity_found += (inst->GetCharges()<=0) ? 1 : inst->GetCharges();
|
||||
@ -1554,7 +1554,7 @@ int16 Inventory::_HasItemByUse(ItemInstQueue& iqueue, uint8 use, uint8 quantity)
|
||||
uint8 quantity_found = 0;
|
||||
|
||||
// Read-only iteration of queue
|
||||
for (it=iqueue.begin(); it!=iqueue.end(); it++) {
|
||||
for (it=iqueue.begin(); it!=iqueue.end(); ++it) {
|
||||
ItemInst* inst = *it;
|
||||
if (inst && inst->IsType(ItemClassCommon) && inst->GetItem()->ItemType == use) {
|
||||
quantity_found += (inst->GetCharges()<=0) ? 1 : inst->GetCharges();
|
||||
@ -1565,7 +1565,7 @@ int16 Inventory::_HasItemByUse(ItemInstQueue& iqueue, uint8 use, uint8 quantity)
|
||||
// Go through bag, if bag
|
||||
if (inst && inst->IsType(ItemClassContainer)) {
|
||||
|
||||
for (itb=inst->_begin(); itb!=inst->_end(); itb++) {
|
||||
for (itb=inst->_begin(); itb!=inst->_end(); ++itb) {
|
||||
ItemInst* baginst = itb->second;
|
||||
if (baginst && baginst->IsType(ItemClassCommon) && baginst->GetItem()->ItemType == use) {
|
||||
quantity_found += (baginst->GetCharges()<=0) ? 1 : baginst->GetCharges();
|
||||
@ -1587,7 +1587,7 @@ int16 Inventory::_HasItemByLoreGroup(std::map<int16, ItemInst*>& bucket, uint32
|
||||
ItemInst* inst = nullptr;
|
||||
|
||||
// Check item: After failed checks, check bag contents (if bag)
|
||||
for (it=bucket.begin(); it!=bucket.end(); it++) {
|
||||
for (it=bucket.begin(); it!=bucket.end(); ++it) {
|
||||
inst = it->second;
|
||||
if (inst) {
|
||||
if (inst->GetItem()->LoreGroup == loregroup)
|
||||
@ -1603,7 +1603,7 @@ int16 Inventory::_HasItemByLoreGroup(std::map<int16, ItemInst*>& bucket, uint32
|
||||
// Go through bag, if bag
|
||||
if (inst && inst->IsType(ItemClassContainer)) {
|
||||
|
||||
for (itb=inst->_begin(); itb!=inst->_end(); itb++) {
|
||||
for (itb=inst->_begin(); itb!=inst->_end(); ++itb) {
|
||||
ItemInst* baginst = itb->second;
|
||||
if (baginst && baginst->IsType(ItemClassCommon)&& baginst->GetItem()->LoreGroup == loregroup)
|
||||
return Inventory::CalcSlotId(it->first, itb->first);
|
||||
@ -1629,7 +1629,7 @@ int16 Inventory::_HasItemByLoreGroup(ItemInstQueue& iqueue, uint32 loregroup)
|
||||
iter_contents itb;
|
||||
|
||||
// Read-only iteration of queue
|
||||
for (it=iqueue.begin(); it!=iqueue.end(); it++) {
|
||||
for (it=iqueue.begin(); it!=iqueue.end(); ++it) {
|
||||
ItemInst* inst = *it;
|
||||
if (inst)
|
||||
{
|
||||
@ -1646,7 +1646,7 @@ int16 Inventory::_HasItemByLoreGroup(ItemInstQueue& iqueue, uint32 loregroup)
|
||||
// Go through bag, if bag
|
||||
if (inst && inst->IsType(ItemClassContainer)) {
|
||||
|
||||
for (itb=inst->_begin(); itb!=inst->_end(); itb++) {
|
||||
for (itb=inst->_begin(); itb!=inst->_end(); ++itb) {
|
||||
ItemInst* baginst = itb->second;
|
||||
if (baginst && baginst->IsType(ItemClassCommon)&& baginst->GetItem()->LoreGroup == loregroup)
|
||||
return Inventory::CalcSlotId(SLOT_CURSOR, itb->first);
|
||||
|
||||
@ -65,7 +65,7 @@ public:
|
||||
vitr cur, end;
|
||||
cur = m_list.begin();
|
||||
end = m_list.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
delete *cur;
|
||||
}
|
||||
}
|
||||
@ -98,7 +98,7 @@ protected:
|
||||
} else {
|
||||
if (!data->Process())
|
||||
data->Disconnect();
|
||||
cur++;
|
||||
++cur;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1113,7 +1113,7 @@ uint8 *BaseGuildManager::MakeGuildList(const char *head_name, uint32 &length) co
|
||||
std::map<uint32, GuildInfo *>::const_iterator cur, end;
|
||||
cur = m_guilds.begin();
|
||||
end = m_guilds.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
pos = 64 + (64 * cur->first);
|
||||
strn0cpy((char *) buffer + pos, cur->second->name.c_str(), 64);
|
||||
}
|
||||
@ -1218,7 +1218,7 @@ uint32 BaseGuildManager::FindGuildByLeader(uint32 leader) const {
|
||||
std::map<uint32, GuildInfo *>::const_iterator cur, end;
|
||||
cur = m_guilds.begin();
|
||||
end = m_guilds.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
if(cur->second->leader_char_id == leader)
|
||||
return(cur->first);
|
||||
}
|
||||
@ -1297,7 +1297,7 @@ void BaseGuildManager::ClearGuilds() {
|
||||
std::map<uint32, GuildInfo *>::iterator cur, end;
|
||||
cur = m_guilds.begin();
|
||||
end = m_guilds.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
delete cur->second;
|
||||
}
|
||||
m_guilds.clear();
|
||||
|
||||
@ -294,7 +294,7 @@ PTimerList::~PTimerList() {
|
||||
while(s != _list.end()) {
|
||||
if(s->second != nullptr)
|
||||
delete s->second;
|
||||
s++;
|
||||
++s;
|
||||
}
|
||||
}
|
||||
|
||||
@ -305,7 +305,7 @@ bool PTimerList::Load(Database *db) {
|
||||
while(s != _list.end()) {
|
||||
if(s->second != nullptr)
|
||||
delete s->second;
|
||||
s++;
|
||||
++s;
|
||||
}
|
||||
_list.clear();
|
||||
|
||||
@ -373,7 +373,7 @@ bool PTimerList::Store(Database *db) {
|
||||
if(!s->second->Store(db))
|
||||
res = false;
|
||||
}
|
||||
s++;
|
||||
++s;
|
||||
}
|
||||
return(res);
|
||||
}
|
||||
@ -474,7 +474,7 @@ void PTimerList::ToVector(std::vector< std::pair<pTimerType, PersistentTimer *>
|
||||
p.second = s->second;
|
||||
out.push_back(p);
|
||||
}
|
||||
s++;
|
||||
++s;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -150,7 +150,7 @@ bool ret=true;
|
||||
char* query = 0;
|
||||
// Delete cursor items
|
||||
if ((ret = RunQuery(query, MakeAnyLenString(&query, "DELETE FROM inventory WHERE charid=%i AND ( (slotid >=8000 and slotid<=8999) or slotid=30 or (slotid>=331 and slotid<=340))", char_id), errbuf))) {
|
||||
for(it=start,i=8000;it!=end;it++,i++) {
|
||||
for(it=start,i=8000;it!=end;++it,i++) {
|
||||
ItemInst *inst=*it;
|
||||
if (!(ret=SaveInventory(char_id,inst,(i==8000) ? 30 : i)))
|
||||
break;
|
||||
@ -1715,6 +1715,7 @@ void SharedDatabase::LoadSpells(void *data, int max_spells) {
|
||||
sp[tempid].EndurTimerIndex=atoi(row[167]);
|
||||
sp[tempid].HateAdded=atoi(row[173]);
|
||||
sp[tempid].EndurUpkeep=atoi(row[174]);
|
||||
sp[tempid].numhitstype = atoi(row[175]);
|
||||
sp[tempid].numhits = atoi(row[176]);
|
||||
sp[tempid].pvpresistbase=atoi(row[177]);
|
||||
sp[tempid].pvpresistcalc=atoi(row[178]);
|
||||
|
||||
@ -493,7 +493,7 @@ typedef enum {
|
||||
#define SE_ChannelChanceItems 344 // implemented[AA] - chance to not have ITEM effects interrupted when you take damage.
|
||||
#define SE_AssassinationLevel 345 // not implemented as bonus - AA Assisination max level to kill
|
||||
#define SE_HeadShotLevel 346 // not implemented as bonus - AA HeadShot max level to kill
|
||||
#define SE_ArcheryDoubleAttack 347 // implemented - chance at an additional archery attack (consumes arrow)
|
||||
#define SE_DoubleRangedAttack 347 // implemented - chance at an additional archery attack (consumes arrow)
|
||||
#define SE_LimitManaCost 348 // implemented
|
||||
#define SE_ShieldEquipHateMod 349 // implemented[AA] Increase melee hate when wearing a shield.
|
||||
#define SE_ManaBurn 350 // implemented - Drains mana for damage/heal at a defined ratio up to a defined maximum amount of mana.
|
||||
@ -503,7 +503,7 @@ typedef enum {
|
||||
//#define SE_DeactivateAllTraps 354 // *not implemented - looks to be some type of invulnerability? Test DAT (8757)
|
||||
//#define SE_LearnTrap 355 // *not implemented - looks to be some type of invulnerability? Test LT (8758)
|
||||
//#define SE_ChangeTriggerType 356 // not used
|
||||
#define SE_InhibitSpellCasting 357 // *not implemented - (Stunted Growth 31160) Unlcear what this effect does? silence?
|
||||
#define SE_FcMute 357 // implemented - silences casting of spells that contain specific spell effects (focus limited)
|
||||
#define SE_CurrentManaOnce 358 // implemented
|
||||
#define SE_Invulnerabilty 359 // *not implemented - Invulnerability (Brell's Blessing)
|
||||
#define SE_SpellOnKill 360 // implemented - a buff that has a base1 % to cast spell base2 when you kill a "challenging foe" base3 min level
|
||||
@ -540,7 +540,7 @@ typedef enum {
|
||||
#define SE_IncreaseHitDmgTaken 391 // implemented - Most likely a simple negative mitigation modifier (Warlords fury: 23528)
|
||||
#define SE_AdditionalHeal2 392 // implemented - Adds or removes healing from spells
|
||||
#define SE_HealRate2 393 // implemented - HealRate with focus restrictions.
|
||||
#define SE_ReduceHeal 394 // implemented - Reduces amount of healing on target by X value with foucs restrictions.
|
||||
#define SE_FcHealAmtIncoming 394 // implemented - Adds/Removes amount of healing on target by X value with foucs restrictions.
|
||||
#define SE_CriticalHealRate 395 // implemented[AA] - Increases chance of having a heal crit when cast on you. [focus limited]
|
||||
#define SE_AdditionalHeal 396 // implemented - Adds a direct healing amount to spells
|
||||
#define SE_PetMeleeMitigation 397 // *not implemented[AA] - additional mitigation to your pets.
|
||||
@ -549,7 +549,7 @@ typedef enum {
|
||||
#define SE_HealGroupFromMana 400 // implemented - Drains mana and heals for each point of mana drained
|
||||
#define SE_ManaDrainWithDmg 401 // implemented - Deals damage based on the amount of mana drained
|
||||
#define SE_EndDrainWithDmg 402 // implemented - Deals damage for the amount of endurance drained
|
||||
#define SE_TriggerOnCast2 403 // *not implemented - trigger a spell with percent chance, focus limited.
|
||||
#define SE_Ff_SpellClass 403 // *not implemented -
|
||||
#define SE_LimitExcludeSkill 404 // implemented - Limit a focus to exclude spells cast using a specific skill.
|
||||
#define SE_TwoHandBluntBlock 405 // implemented - chance to block attacks when using two hand blunt weapons (similiar to shield block)
|
||||
#define SE_CastonNumHitFade 406 // implemented - casts a spell when a buff fades due to its numhits being depleted
|
||||
@ -558,7 +558,7 @@ typedef enum {
|
||||
#define SE_LimitManaPercent 409 // implemented - limited to a certain percent of your mana
|
||||
#define SE_LimitEndPercent 410 // implemented - limited to a certain percent of your end
|
||||
#define SE_LimitClass 411 // implemented - Limits to spells of a certain class (Note: The class value in dbase is +1 in relation to item class value)
|
||||
//#define SE_FfRace 412 // not used
|
||||
#define SE_LimitRace 412 // implemented - Limits to spells cast by a certain race (Note: not used in any known live spells)
|
||||
#define SE_IncreaseSpellPower 413 // implemented - Increases the power of bard songs, skill attacks, runes, bard allowed foci, damage/heal
|
||||
#define SE_LimitSpellSkill 414 // implemented - Limit a focus to include spells cast using a specific skill.
|
||||
//#define SE_FFItemClass 415 // not used
|
||||
@ -566,10 +566,10 @@ typedef enum {
|
||||
#define SE_ManaRegen_v2 417 // implemented - New mana regen effect
|
||||
#define SE_SkillDamageAmount2 418 // implemented - adds skill damage directly to certain attacks
|
||||
#define SE_AddMeleeProc 419 // implemented - Adds a proc
|
||||
//#define SE_FcLimitUse 420 // *not used
|
||||
#define SE_FcLimitUse 420 // implemented - increases numhits count by percent (Note: not used in any known live spells)
|
||||
#define SE_IncreaseNumHits 421 // implemented[AA] - increases number of hits a buff has till fade. (focus)
|
||||
//#define SE_FfLimitUseMin 422 // not used - Seen in Lasting Bravery[AA] likely a focus limit
|
||||
//#define SE_FfLimitUseType 423 // not used - Seen in Lasting Bravery[AA] likely a focus limit
|
||||
#define SE_FfLimitUseMin 422 // implemented - limit a focus to require a min amount of numhits value (used with above)
|
||||
//#define SE_FfLimitUseType 423 // not used - limit a focus to require a certain numhits type (Field in spells table 175)
|
||||
#define SE_GravityEffect 424 // implemented - Pulls/pushes you toward/away the mob at a set pace
|
||||
#define SE_Display 425 // *not implemented - Illusion: Flying Dragon(21626)
|
||||
#define SE_IncreaseExtTargetWindow 426 // *not implmented[AA] - increases the capacity of your extended target window
|
||||
@ -579,28 +579,28 @@ typedef enum {
|
||||
//#define SE_PostEffect 430 // *not implemented - Fear of the Dark(27641) - Alters vision
|
||||
//#define SE_PostEffectData 431 // *not implemented - Fear of the Dark(27641) - Alters vision
|
||||
//#define SE_ExpandMaxActiveTrophyBen 432 // not used
|
||||
//#define SE_CriticalDotDecay 433 // not used (12266 | Placeholder - Test - New Dot Only)
|
||||
#define SE_CriticalHealChance2 434 // implemented - increase critical heal chance
|
||||
#define SE_CriticalHealOverTime2 435 // implemented - increase critical heal over time chance
|
||||
#define SE_CriticalDotDecay 433 // implemented - increase critical dot chance, effect decays based on level of spell it effects. (12266)
|
||||
#define SE_CriticalHealDecay 434 // implemented - increase critical heal chance, effect decays based on level of spell it effects.
|
||||
#define SE_CriticalRegenDecay 435 // implemented - increase critical heal over time chance, effect decays based on level of spell it effects.
|
||||
//#define SE_BeneficialCountDownHold 436 // not used ( 23491 | ABTest Buff Hold)
|
||||
#define SE_Anchor 437 // *not implemented - Teleport Guild Hall Anchor(33099)
|
||||
#define SE_Anchor2 438 // *not implemented - Translocate Primary Anchor (27750)
|
||||
#define SE_TeleporttoAnchor 437 // *not implemented - Teleport Guild Hall Anchor(33099)
|
||||
#define SE_TranslocatetoAnchor 438 // *not implemented - Translocate Primary Anchor (27750)
|
||||
#define SE_IncreaseAssassinationLvl 439 // *not implemented[AA] - increases the maximum level of humanoid that can be affected by assassination
|
||||
#define SE_FinishingBlowLvl 440 // implemented[AA] - Sets the level Finishing blow can be triggered on an NPC
|
||||
#define SE_CancleIfMoved 441 // *not implemented - Buff is removed from target when target moves X amount of distance away from where initially hit.
|
||||
#define SE_TriggerOnValueAmount 442 // implemented - triggers a spell which a certain criteria are met (below X amount of hp,mana,end, number of pets on hatelist)
|
||||
#define SE_TriggerIfMovement 443 // *not implemented - Trigger a spell if you move (37846 | Chopping Block)
|
||||
#define SE_AggroLock 444 // *not implemented - Locks Aggro On Caster and Decrease other Players Aggro by X% up to level Z
|
||||
#define SE_AdditionalMercenary 445 // *not implemented[AA] - [Hero's Barracks] Allows you to conscript additional mercs.
|
||||
#define SE_ImprovedTaunt 444 // *not implemented - Locks Aggro On Caster and Decrease other Players Aggro by X% up to level Z
|
||||
#define SE_AddMercSlot 445 // *not implemented[AA] - [Hero's Barracks] Allows you to conscript additional mercs.
|
||||
//#define SE_AStacker 446 // *not implementet - bufff stacking blocker ? (26219 | Qirik's Watch)
|
||||
//#define SE_BStacker 447 // *not implemented
|
||||
//#define SE_CStacker 448 // *not implemented
|
||||
//#define SE_DStacker 449 // *not implemented
|
||||
//#define SE_DotGuard 450 // *not implemented
|
||||
#define SE_MitigateMeleeDamageSP 451 // implemented Partial Melee Rune that only is lowered if melee hits are over X amount of damage
|
||||
//#define SE_SpellThresholdGuard 452 // *not implemented
|
||||
#define SE_SpellOnAmtDmgTaken 453 // implemented Trigger effect on X amount of damage taken
|
||||
//#define SE_DoomSpellThreshold 454 // not used
|
||||
#define SE_MeleeThresholdGuard 451 // implemented Partial Melee Rune that only is lowered if melee hits are over X amount of damage
|
||||
#define SE_SpellThresholdGuard 452 // implemented Partial Spell Rune that only is lowered if spell hits are over X amount of damage
|
||||
#define SE_TriggerMeleeThreshold 453 // implemented Trigger effect on X amount of melee damage taken
|
||||
#define SE_TriggerSpellThreshold 454 // implemented Trigger effect on X amount of spell damage taken
|
||||
//#define SE_AddHatePct 455 // not used
|
||||
//#define SE_AddHateOverTimePct 456 // not used
|
||||
//#define SE_ResourceTap 457 // not used
|
||||
@ -694,7 +694,7 @@ struct SPDat_Spell_Struct
|
||||
/* 169 */
|
||||
/* 173 */ int HateAdded;
|
||||
/* 174 */ int EndurUpkeep;
|
||||
/* 175 */
|
||||
/* 175 */ int numhitstype; // defines which type of behavior will tick down the numhit counter.
|
||||
/* 176 */ int numhits;
|
||||
/* 177 */ int pvpresistbase;
|
||||
/* 178 */ int pvpresistcalc;
|
||||
|
||||
@ -39,7 +39,7 @@ void TimeoutManager::CheckTimeouts() {
|
||||
std::vector<Timeoutable *>::iterator cur,end;
|
||||
cur = members.begin();
|
||||
end = members.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
Timeoutable *it = *cur;
|
||||
if(it->next_check.Check()) {
|
||||
#ifdef TIMEOUT_DEBUG
|
||||
@ -69,7 +69,7 @@ void TimeoutManager::DeleteMember(Timeoutable *who) {
|
||||
std::vector<Timeoutable *>::iterator cur,end;
|
||||
cur = members.begin();
|
||||
end = members.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
if(*cur == who) {
|
||||
members.erase(cur);
|
||||
return;
|
||||
|
||||
@ -121,7 +121,7 @@ int main(int argc, char *argv[]) {
|
||||
*/
|
||||
zone = zones.begin();
|
||||
zend = zones.end();
|
||||
for(; zone != zend; zone++) {
|
||||
for(; zone != zend; ++zone) {
|
||||
if(!zone->second->Process())
|
||||
to_remove.insert(zone->first);
|
||||
}
|
||||
@ -159,7 +159,7 @@ int main(int argc, char *argv[]) {
|
||||
//try to be semi-nice about this... without waiting too long
|
||||
zone = zones.begin();
|
||||
zend = zones.end();
|
||||
for(; zone != zend; zone++) {
|
||||
for(; zone != zend; ++zone) {
|
||||
zone->second->Stop();
|
||||
}
|
||||
Sleep(1);
|
||||
@ -169,7 +169,7 @@ int main(int argc, char *argv[]) {
|
||||
launch->Process();
|
||||
//kill anybody left
|
||||
launch->TerminateAll(true);
|
||||
for(; zone != zend; zone++) {
|
||||
for(; zone != zend; ++zone) {
|
||||
delete zone->second;
|
||||
}
|
||||
|
||||
|
||||
@ -49,7 +49,7 @@ void WorldServer::OnConnected() {
|
||||
std::map<std::string, ZoneLaunch *>::iterator cur, end;
|
||||
cur = m_zones.begin();
|
||||
end = m_zones.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
cur->second->SendStatus();
|
||||
}
|
||||
}
|
||||
|
||||
@ -131,7 +131,7 @@ void ClientManager::Process()
|
||||
}
|
||||
else
|
||||
{
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -150,7 +150,7 @@ void ClientManager::ProcessDisconnect()
|
||||
}
|
||||
else
|
||||
{
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -161,7 +161,7 @@ void ClientManager::UpdateServerList()
|
||||
while(iter != clients.end())
|
||||
{
|
||||
(*iter)->SendServerListPacket();
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
|
||||
@ -178,7 +178,7 @@ void ClientManager::RemoveExistingClient(unsigned int account_id)
|
||||
}
|
||||
else
|
||||
{
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -195,7 +195,7 @@ Client *ClientManager::GetClient(unsigned int account_id)
|
||||
cur = (*iter);
|
||||
count++;
|
||||
}
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
if(count > 1)
|
||||
|
||||
@ -68,7 +68,7 @@ void Config::Parse(const char *file_name)
|
||||
{
|
||||
title.clear();
|
||||
bool first = true;
|
||||
iter++;
|
||||
++iter;
|
||||
if(iter == tokens.end())
|
||||
{
|
||||
server_log->Log(log_error, "Config::Parse(), EOF before title done parsing.");
|
||||
@ -89,9 +89,9 @@ void Config::Parse(const char *file_name)
|
||||
}
|
||||
|
||||
title += (*iter);
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
if(mode == 0)
|
||||
@ -127,7 +127,7 @@ void Config::Parse(const char *file_name)
|
||||
vars[title] = var_map;
|
||||
}
|
||||
}
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
fclose(input);
|
||||
}
|
||||
|
||||
@ -87,7 +87,7 @@ void ServerManager::Process()
|
||||
}
|
||||
else
|
||||
{
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -109,7 +109,7 @@ void ServerManager::ProcessDisconnect()
|
||||
}
|
||||
else
|
||||
{
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -123,7 +123,7 @@ WorldServer* ServerManager::GetServerByAddress(unsigned int address)
|
||||
{
|
||||
return (*iter);
|
||||
}
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
@ -142,7 +142,7 @@ EQApplicationPacket *ServerManager::CreateServerListPacket(Client *c)
|
||||
{
|
||||
if((*iter)->IsAuthorized() == false)
|
||||
{
|
||||
iter++;
|
||||
++iter;
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -163,7 +163,7 @@ EQApplicationPacket *ServerManager::CreateServerListPacket(Client *c)
|
||||
}
|
||||
|
||||
server_count++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
EQApplicationPacket *outapp = new EQApplicationPacket(OP_ServerListResponse, packet_size);
|
||||
@ -186,7 +186,7 @@ EQApplicationPacket *ServerManager::CreateServerListPacket(Client *c)
|
||||
{
|
||||
if((*iter)->IsAuthorized() == false)
|
||||
{
|
||||
iter++;
|
||||
++iter;
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -260,7 +260,7 @@ EQApplicationPacket *ServerManager::CreateServerListPacket(Client *c)
|
||||
*(uint32*)data_ptr = (*iter)->GetPlayersOnline();
|
||||
data_ptr += 4;
|
||||
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
return outapp;
|
||||
@ -287,7 +287,7 @@ void ServerManager::SendUserToWorldRequest(unsigned int server_id, unsigned int
|
||||
}
|
||||
delete outapp;
|
||||
}
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
if(!found && server.options.IsTraceOn())
|
||||
@ -303,7 +303,7 @@ bool ServerManager::ServerExists(string l_name, string s_name, WorldServer *igno
|
||||
{
|
||||
if((*iter) == ignore)
|
||||
{
|
||||
iter++;
|
||||
++iter;
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -312,7 +312,7 @@ bool ServerManager::ServerExists(string l_name, string s_name, WorldServer *igno
|
||||
return true;
|
||||
}
|
||||
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -324,7 +324,7 @@ void ServerManager::DestroyServerByName(string l_name, string s_name, WorldServe
|
||||
{
|
||||
if((*iter) == ignore)
|
||||
{
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
if((*iter)->GetLongName().compare(l_name) == 0 && (*iter)->GetShortName().compare(s_name) == 0)
|
||||
@ -339,7 +339,7 @@ void ServerManager::DestroyServerByName(string l_name, string s_name, WorldServe
|
||||
iter = world_servers.erase(iter);
|
||||
}
|
||||
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -314,7 +314,7 @@ void ChatChannel::SendOPList(Client *c) {
|
||||
|
||||
std::list<std::string>::iterator Iterator;
|
||||
|
||||
for(Iterator = Moderators.begin(); Iterator != Moderators.end(); Iterator++)
|
||||
for(Iterator = Moderators.begin(); Iterator != Moderators.end(); ++Iterator)
|
||||
c->GeneralChannelMessage((*Iterator));
|
||||
|
||||
}
|
||||
@ -580,7 +580,7 @@ void ChatChannel::RemoveInvitee(std::string Invitee) {
|
||||
|
||||
std::list<std::string>::iterator Iterator;
|
||||
|
||||
for(Iterator = Invitees.begin(); Iterator != Invitees.end(); Iterator++) {
|
||||
for(Iterator = Invitees.begin(); Iterator != Invitees.end(); ++Iterator) {
|
||||
|
||||
if((*Iterator) == Invitee) {
|
||||
|
||||
@ -597,7 +597,7 @@ bool ChatChannel::IsInvitee(std::string Invitee) {
|
||||
|
||||
std::list<std::string>::iterator Iterator;
|
||||
|
||||
for(Iterator = Invitees.begin(); Iterator != Invitees.end(); Iterator++) {
|
||||
for(Iterator = Invitees.begin(); Iterator != Invitees.end(); ++Iterator) {
|
||||
|
||||
if((*Iterator) == Invitee)
|
||||
return true;
|
||||
@ -621,7 +621,7 @@ void ChatChannel::RemoveModerator(std::string Moderator) {
|
||||
|
||||
std::list<std::string>::iterator Iterator;
|
||||
|
||||
for(Iterator = Moderators.begin(); Iterator != Moderators.end(); Iterator++) {
|
||||
for(Iterator = Moderators.begin(); Iterator != Moderators.end(); ++Iterator) {
|
||||
|
||||
if((*Iterator) == Moderator) {
|
||||
|
||||
@ -638,7 +638,7 @@ bool ChatChannel::IsModerator(std::string Moderator) {
|
||||
|
||||
std::list<std::string>::iterator Iterator;
|
||||
|
||||
for(Iterator = Moderators.begin(); Iterator != Moderators.end(); Iterator++) {
|
||||
for(Iterator = Moderators.begin(); Iterator != Moderators.end(); ++Iterator) {
|
||||
|
||||
if((*Iterator) == Moderator)
|
||||
return true;
|
||||
@ -662,7 +662,7 @@ void ChatChannel::RemoveVoice(std::string inVoiced) {
|
||||
|
||||
std::list<std::string>::iterator Iterator;
|
||||
|
||||
for(Iterator = Voiced.begin(); Iterator != Voiced.end(); Iterator++) {
|
||||
for(Iterator = Voiced.begin(); Iterator != Voiced.end(); ++Iterator) {
|
||||
|
||||
if((*Iterator) == inVoiced) {
|
||||
|
||||
@ -679,7 +679,7 @@ bool ChatChannel::HasVoice(std::string inVoiced) {
|
||||
|
||||
std::list<std::string>::iterator Iterator;
|
||||
|
||||
for(Iterator = Voiced.begin(); Iterator != Voiced.end(); Iterator++) {
|
||||
for(Iterator = Voiced.begin(); Iterator != Voiced.end(); ++Iterator) {
|
||||
|
||||
if((*Iterator) == inVoiced)
|
||||
return true;
|
||||
|
||||
@ -190,11 +190,11 @@ std::vector<std::string> ParseRecipients(std::string RecipientString) {
|
||||
|
||||
(*Iterator) = Secret + (*Iterator);
|
||||
|
||||
Iterator++;
|
||||
++Iterator;
|
||||
|
||||
}
|
||||
|
||||
for(Iterator = RecipientList.begin(); Iterator != RecipientList.end(); Iterator++) {
|
||||
for(Iterator = RecipientList.begin(); Iterator != RecipientList.end(); ++Iterator) {
|
||||
|
||||
if((*Iterator).length() > 0) {
|
||||
|
||||
@ -554,7 +554,7 @@ void Clientlist::CheckForStaleConnections(Client *c) {
|
||||
|
||||
std::list<Client*>::iterator Iterator;
|
||||
|
||||
for(Iterator = ClientChatConnections.begin(); Iterator != ClientChatConnections.end(); Iterator++) {
|
||||
for(Iterator = ClientChatConnections.begin(); Iterator != ClientChatConnections.end(); ++Iterator) {
|
||||
|
||||
if(((*Iterator) != c) && ((c->GetName() == (*Iterator)->GetName())
|
||||
&& (c->GetConnectionType() == (*Iterator)->GetConnectionType()))) {
|
||||
@ -596,7 +596,7 @@ void Clientlist::Process() {
|
||||
|
||||
std::list<Client*>::iterator Iterator;
|
||||
|
||||
for(Iterator = ClientChatConnections.begin(); Iterator != ClientChatConnections.end(); Iterator++) {
|
||||
for(Iterator = ClientChatConnections.begin(); Iterator != ClientChatConnections.end(); ++Iterator) {
|
||||
|
||||
(*Iterator)->AccountUpdate();
|
||||
if((*Iterator)->ClientStream->CheckClosed()) {
|
||||
@ -893,7 +893,7 @@ void Clientlist::CloseAllConnections() {
|
||||
|
||||
std::list<Client*>::iterator Iterator;
|
||||
|
||||
for(Iterator = ClientChatConnections.begin(); Iterator != ClientChatConnections.end(); Iterator++) {
|
||||
for(Iterator = ClientChatConnections.begin(); Iterator != ClientChatConnections.end(); ++Iterator) {
|
||||
|
||||
_log(UCS__TRACE, "Removing client %s", (*Iterator)->GetName().c_str());
|
||||
|
||||
@ -953,7 +953,7 @@ Client *Clientlist::FindCharacter(std::string CharacterName) {
|
||||
|
||||
std::list<Client*>::iterator Iterator;
|
||||
|
||||
for(Iterator = ClientChatConnections.begin(); Iterator != ClientChatConnections.end(); Iterator++) {
|
||||
for(Iterator = ClientChatConnections.begin(); Iterator != ClientChatConnections.end(); ++Iterator) {
|
||||
|
||||
if((*Iterator)->GetName() == CharacterName)
|
||||
return ((*Iterator));
|
||||
@ -2243,7 +2243,7 @@ Client *Clientlist::IsCharacterOnline(std::string CharacterName) {
|
||||
//
|
||||
std::list<Client*>::iterator Iterator;
|
||||
|
||||
for(Iterator = ClientChatConnections.begin(); Iterator != ClientChatConnections.end(); Iterator++) {
|
||||
for(Iterator = ClientChatConnections.begin(); Iterator != ClientChatConnections.end(); ++Iterator) {
|
||||
|
||||
if(!(*Iterator)->IsMailConnection())
|
||||
continue;
|
||||
@ -2352,7 +2352,7 @@ void Client::SendFriends() {
|
||||
|
||||
safe_delete(outapp);
|
||||
|
||||
Iterator++;
|
||||
++Iterator;
|
||||
}
|
||||
|
||||
Iterator = Ignorees.begin();
|
||||
@ -2375,7 +2375,7 @@ void Client::SendFriends() {
|
||||
|
||||
safe_delete(outapp);
|
||||
|
||||
Iterator++;
|
||||
++Iterator;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -74,7 +74,7 @@ void Adventure::RemovePlayer(std::string character_name)
|
||||
players.erase(iter);
|
||||
return;
|
||||
}
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
|
||||
@ -87,7 +87,7 @@ bool Adventure::PlayerExists(std::string character_name)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -214,7 +214,7 @@ void Adventure::SetStatus(AdventureStatus new_status)
|
||||
while(iter != players.end())
|
||||
{
|
||||
adventure_manager.GetAdventureData((*iter).c_str());
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
|
||||
@ -233,7 +233,7 @@ void Adventure::SendAdventureMessage(uint32 type, const char *msg)
|
||||
strcpy(sms->to, (*iter).c_str());
|
||||
zoneserver_list.SendPacket(current->zone(), current->instance(), pack);
|
||||
}
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
delete pack;
|
||||
}
|
||||
@ -360,7 +360,7 @@ void Adventure::Finished(AdventureWinStatus ws)
|
||||
adventure_manager.AddFinishedEvent(afe);
|
||||
database.UpdateAdventureStatsEntry(database.GetCharacterID((*iter).c_str()), GetTemplate()->theme, (ws != AWS_Lose) ? true : false);
|
||||
}
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
adventure_manager.GetAdventureData(this);
|
||||
}
|
||||
@ -411,7 +411,7 @@ void Adventure::MoveCorpsesToGraveyard()
|
||||
LogFile->write(EQEMuLog::Error, "Error in AdventureManager:::MoveCorpsesToGraveyard: %s (%s)", query, errbuf);
|
||||
safe_delete_array(query);
|
||||
}
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
iter = dbid_list.begin();
|
||||
@ -433,8 +433,8 @@ void Adventure::MoveCorpsesToGraveyard()
|
||||
|
||||
zoneserver_list.SendPacket(spc->zone_id, 0, pack);
|
||||
delete pack;
|
||||
iter++;
|
||||
c_iter++;
|
||||
++iter;
|
||||
++c_iter;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -48,7 +48,7 @@ void AdventureManager::Process()
|
||||
delete adv;
|
||||
continue;
|
||||
}
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
|
||||
@ -118,7 +118,7 @@ void AdventureManager::CalculateAdventureRequestReply(const char *data)
|
||||
}
|
||||
}
|
||||
}
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -171,7 +171,7 @@ void AdventureManager::CalculateAdventureRequestReply(const char *data)
|
||||
ea_iter = eligible_adventures.erase(ea_iter);
|
||||
continue;
|
||||
}
|
||||
ea_iter++;
|
||||
++ea_iter;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -281,9 +281,9 @@ void AdventureManager::CalculateAdventureRequestReply(const char *data)
|
||||
ea_iter = eligible_adventures.erase(ea_iter);
|
||||
continue;
|
||||
}
|
||||
ea_iter++;
|
||||
++ea_iter;
|
||||
}
|
||||
ez_iter++;
|
||||
++ez_iter;
|
||||
}
|
||||
|
||||
std::list<AdventureZoneIn>::iterator ezi_iter = excluded_zone_ins.begin();
|
||||
@ -297,9 +297,9 @@ void AdventureManager::CalculateAdventureRequestReply(const char *data)
|
||||
ea_iter = eligible_adventures.erase(ea_iter);
|
||||
continue;
|
||||
}
|
||||
ea_iter++;
|
||||
++ea_iter;
|
||||
}
|
||||
ezi_iter++;
|
||||
++ezi_iter;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -319,7 +319,7 @@ void AdventureManager::CalculateAdventureRequestReply(const char *data)
|
||||
ea_iter = eligible_adventures.erase(ea_iter);
|
||||
continue;
|
||||
}
|
||||
ea_iter++;
|
||||
++ea_iter;
|
||||
}
|
||||
|
||||
if(eligible_adventures.size() > 0)
|
||||
@ -328,7 +328,7 @@ void AdventureManager::CalculateAdventureRequestReply(const char *data)
|
||||
int c_index = MakeRandomInt(0, (eligible_adventures.size()-1));
|
||||
for(int i = 0; i < c_index; ++i)
|
||||
{
|
||||
ea_iter++;
|
||||
++ea_iter;
|
||||
}
|
||||
ServerPacket *pack = new ServerPacket(ServerOP_AdventureRequestAccept, sizeof(ServerAdventureRequestAccept_Struct) + (sar->member_count * 64));
|
||||
ServerAdventureRequestAccept_Struct *sra = (ServerAdventureRequestAccept_Struct*)pack->pBuffer;
|
||||
@ -457,7 +457,7 @@ void AdventureManager::GetAdventureData(Adventure *adv)
|
||||
while(iter != player_list.end())
|
||||
{
|
||||
GetAdventureData((*iter).c_str());
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
|
||||
@ -537,7 +537,7 @@ bool AdventureManager::IsInExcludedZoneList(std::list<AdventureZones> excluded_z
|
||||
{
|
||||
return true;
|
||||
}
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -551,7 +551,7 @@ bool AdventureManager::IsInExcludedZoneInList(std::list<AdventureZoneIn> exclude
|
||||
{
|
||||
return true;
|
||||
}
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -587,7 +587,7 @@ Adventure **AdventureManager::GetFinishedAdventures(const char *player, int &cou
|
||||
count++;
|
||||
}
|
||||
}
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
@ -601,7 +601,7 @@ Adventure *AdventureManager::GetActiveAdventure(const char *player)
|
||||
{
|
||||
return (*iter);
|
||||
}
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
@ -621,7 +621,7 @@ AdventureTemplate *AdventureManager::GetAdventureTemplate(int theme, int id)
|
||||
{
|
||||
return (*l_iter);
|
||||
}
|
||||
l_iter++;
|
||||
++l_iter;
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
@ -788,7 +788,7 @@ void AdventureManager::PlayerClickedDoor(const char *player, int zone_id, int do
|
||||
return;
|
||||
}
|
||||
}
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
ClientListEntry *pc = client_list.FindCharacter(player);
|
||||
@ -855,7 +855,7 @@ void AdventureManager::IncrementCount(uint16 instance_id)
|
||||
current = (*iter);
|
||||
break;
|
||||
}
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
if(current)
|
||||
@ -877,7 +877,7 @@ void AdventureManager::IncrementCount(uint16 instance_id)
|
||||
strcpy(ac->player, (*siter).c_str());
|
||||
zoneserver_list.SendPacket(pc->zone(), pc->instance(), pack);
|
||||
}
|
||||
siter++;
|
||||
++siter;
|
||||
}
|
||||
|
||||
delete pack;
|
||||
@ -895,7 +895,7 @@ void AdventureManager::IncrementAssassinationCount(uint16 instance_id)
|
||||
current = (*iter);
|
||||
break;
|
||||
}
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
if(current)
|
||||
@ -916,7 +916,7 @@ void AdventureManager::GetZoneData(uint16 instance_id)
|
||||
current = (*iter);
|
||||
break;
|
||||
}
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
if(current)
|
||||
@ -1302,7 +1302,7 @@ void AdventureManager::DoLeaderboardRequestWins(const char* player)
|
||||
al->entries[i].failure = li.losses;
|
||||
strcpy(al->entries[i].name, li.name.c_str());
|
||||
i++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
if(place == -1 && iter != leaderboard_info_wins.end())
|
||||
@ -1318,7 +1318,7 @@ void AdventureManager::DoLeaderboardRequestWins(const char* player)
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1369,7 +1369,7 @@ void AdventureManager::DoLeaderboardRequestPercentage(const char* player)
|
||||
al->entries[i].failure = li.losses;
|
||||
strcpy(al->entries[i].name, li.name.c_str());
|
||||
i++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
if(place == -1 && iter != leaderboard_info_percentage.end())
|
||||
@ -1385,7 +1385,7 @@ void AdventureManager::DoLeaderboardRequestPercentage(const char* player)
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1436,7 +1436,7 @@ void AdventureManager::DoLeaderboardRequestWinsGuk(const char* player)
|
||||
al->entries[i].failure = li.guk_losses;
|
||||
strcpy(al->entries[i].name, li.name.c_str());
|
||||
i++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
if(place == -1 && iter != leaderboard_info_wins_guk.end())
|
||||
@ -1452,7 +1452,7 @@ void AdventureManager::DoLeaderboardRequestWinsGuk(const char* player)
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1503,7 +1503,7 @@ void AdventureManager::DoLeaderboardRequestPercentageGuk(const char* player)
|
||||
al->entries[i].failure = li.guk_losses;
|
||||
strcpy(al->entries[i].name, li.name.c_str());
|
||||
i++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
if(place == -1 && iter != leaderboard_info_percentage_guk.end())
|
||||
@ -1519,7 +1519,7 @@ void AdventureManager::DoLeaderboardRequestPercentageGuk(const char* player)
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1570,7 +1570,7 @@ void AdventureManager::DoLeaderboardRequestWinsMir(const char* player)
|
||||
al->entries[i].failure = li.mir_losses;
|
||||
strcpy(al->entries[i].name, li.name.c_str());
|
||||
i++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
if(place == -1 && iter != leaderboard_info_wins_mir.end())
|
||||
@ -1586,7 +1586,7 @@ void AdventureManager::DoLeaderboardRequestWinsMir(const char* player)
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1637,7 +1637,7 @@ void AdventureManager::DoLeaderboardRequestPercentageMir(const char* player)
|
||||
al->entries[i].failure = li.mir_losses;
|
||||
strcpy(al->entries[i].name, li.name.c_str());
|
||||
i++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
if(place == -1 && iter != leaderboard_info_percentage_mir.end())
|
||||
@ -1653,7 +1653,7 @@ void AdventureManager::DoLeaderboardRequestPercentageMir(const char* player)
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1704,7 +1704,7 @@ void AdventureManager::DoLeaderboardRequestWinsMmc(const char* player)
|
||||
al->entries[i].failure = li.mmc_losses;
|
||||
strcpy(al->entries[i].name, li.name.c_str());
|
||||
i++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
if(place == -1 && iter != leaderboard_info_wins_mmc.end())
|
||||
@ -1720,7 +1720,7 @@ void AdventureManager::DoLeaderboardRequestWinsMmc(const char* player)
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1771,7 +1771,7 @@ void AdventureManager::DoLeaderboardRequestPercentageMmc(const char* player)
|
||||
al->entries[i].failure = li.mmc_losses;
|
||||
strcpy(al->entries[i].name, li.name.c_str());
|
||||
i++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
if(place == -1 && iter != leaderboard_info_percentage_mmc.end())
|
||||
@ -1787,7 +1787,7 @@ void AdventureManager::DoLeaderboardRequestPercentageMmc(const char* player)
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1838,7 +1838,7 @@ void AdventureManager::DoLeaderboardRequestWinsRuj(const char* player)
|
||||
al->entries[i].failure = li.ruj_losses;
|
||||
strcpy(al->entries[i].name, li.name.c_str());
|
||||
i++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
if(place == -1 && iter != leaderboard_info_wins_ruj.end())
|
||||
@ -1854,7 +1854,7 @@ void AdventureManager::DoLeaderboardRequestWinsRuj(const char* player)
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1905,7 +1905,7 @@ void AdventureManager::DoLeaderboardRequestPercentageRuj(const char* player)
|
||||
al->entries[i].failure = li.ruj_losses;
|
||||
strcpy(al->entries[i].name, li.name.c_str());
|
||||
i++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
if(place == -1 && iter != leaderboard_info_percentage_ruj.end())
|
||||
@ -1921,7 +1921,7 @@ void AdventureManager::DoLeaderboardRequestPercentageRuj(const char* player)
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1972,7 +1972,7 @@ void AdventureManager::DoLeaderboardRequestWinsTak(const char* player)
|
||||
al->entries[i].failure = li.tak_losses;
|
||||
strcpy(al->entries[i].name, li.name.c_str());
|
||||
i++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
if(place == -1 && iter != leaderboard_info_wins_ruj.end())
|
||||
@ -1988,7 +1988,7 @@ void AdventureManager::DoLeaderboardRequestWinsTak(const char* player)
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2039,7 +2039,7 @@ void AdventureManager::DoLeaderboardRequestPercentageTak(const char* player)
|
||||
al->entries[i].failure = li.tak_losses;
|
||||
strcpy(al->entries[i].name, li.name.c_str());
|
||||
i++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
if(place == -1 && iter != leaderboard_info_percentage_tak.end())
|
||||
@ -2055,7 +2055,7 @@ void AdventureManager::DoLeaderboardRequestPercentageTak(const char* player)
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2093,7 +2093,7 @@ bool AdventureManager::PopFinishedEvent(const char *name, AdventureFinishEvent &
|
||||
Save();
|
||||
return true;
|
||||
}
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -99,7 +99,7 @@ void EQLConfig::GetZones(std::vector<LauncherZone> &result) {
|
||||
std::map<std::string, LauncherZone>::iterator cur, end;
|
||||
cur = m_zones.begin();
|
||||
end = m_zones.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
result.push_back(cur->second);
|
||||
}
|
||||
}
|
||||
@ -112,7 +112,7 @@ std::vector<std::string> EQLConfig::ListZones() {
|
||||
std::map<std::string, LauncherZone>::iterator cur, end;
|
||||
cur = m_zones.begin();
|
||||
end = m_zones.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
res.push_back(cur->first);
|
||||
}
|
||||
} else {
|
||||
|
||||
@ -120,7 +120,7 @@ std::vector<std::string> EQW::ListBootedZones() {
|
||||
std::vector<uint32>::iterator cur, end;
|
||||
cur = zones.begin();
|
||||
end = zones.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
res.push_back(itoa(*cur));
|
||||
}
|
||||
|
||||
@ -170,7 +170,7 @@ std::vector<std::string> EQW::ListPlayers(Const_char *zone_name) {
|
||||
std::vector<ClientListEntry *>::iterator cur, end;
|
||||
cur = list.begin();
|
||||
end = list.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
res.push_back((*cur)->name());
|
||||
}
|
||||
return(res);
|
||||
|
||||
@ -58,7 +58,7 @@ bool LauncherLink::Process() {
|
||||
std::map<std::string, ZoneState>::iterator cur, end;
|
||||
cur = m_states.begin();
|
||||
end = m_states.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
if(!cur->second.up) {
|
||||
StartZone(cur->first.c_str());
|
||||
}
|
||||
|
||||
@ -32,28 +32,28 @@ LauncherList::~LauncherList() {
|
||||
std::vector<LauncherLink *>::iterator cur, end;
|
||||
cur = m_pendingLaunchers.begin();
|
||||
end = m_pendingLaunchers.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
delete *cur;
|
||||
}
|
||||
|
||||
std::map<std::string, EQLConfig *>::iterator curc, endc;
|
||||
curc = m_configs.begin();
|
||||
endc = m_configs.end();
|
||||
for(; curc != endc; curc++) {
|
||||
for(; curc != endc; ++curc) {
|
||||
delete curc->second;
|
||||
}
|
||||
|
||||
std::map<std::string, LauncherLink *>::iterator curl, endl;
|
||||
curl = m_launchers.begin();
|
||||
endl = m_launchers.end();
|
||||
for(; curl != endl; curl++) {
|
||||
for(; curl != endl; ++curl) {
|
||||
delete curl->second;
|
||||
}
|
||||
}
|
||||
|
||||
void LauncherList::Process() {
|
||||
//process pending launchers..
|
||||
std::vector<LauncherLink *>::iterator cur, end;
|
||||
std::vector<LauncherLink *>::iterator cur;
|
||||
cur = m_pendingLaunchers.begin();
|
||||
while(cur != m_pendingLaunchers.end()) {
|
||||
LauncherLink *l = *cur;
|
||||
@ -79,12 +79,12 @@ void LauncherList::Process() {
|
||||
//put the launcher in the list.
|
||||
m_launchers[name] = l;
|
||||
} else {
|
||||
cur++;
|
||||
++cur;
|
||||
}
|
||||
}
|
||||
|
||||
//process active launchers.
|
||||
std::map<std::string, LauncherLink *>::iterator curl, tmp;
|
||||
std::map<std::string, LauncherLink *>::iterator curl;
|
||||
curl = m_launchers.begin();
|
||||
while(curl != m_launchers.end()) {
|
||||
LauncherLink *l = curl->second;
|
||||
@ -92,12 +92,10 @@ void LauncherList::Process() {
|
||||
if(!l->Process()) {
|
||||
//launcher has died before it identified itself.
|
||||
_log(WORLD__LAUNCH, "Removing launcher %s (%d)", l->GetName(), l->GetID());
|
||||
tmp = curl;
|
||||
curl++;
|
||||
m_launchers.erase(tmp);
|
||||
curl = m_launchers.erase(curl);
|
||||
delete l;
|
||||
} else {
|
||||
curl++;
|
||||
++curl;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -124,7 +122,7 @@ LauncherLink *LauncherList::FindByZone(const char *short_name) {
|
||||
std::map<std::string, LauncherLink *>::iterator cur, end;
|
||||
cur = m_launchers.begin();
|
||||
end = m_launchers.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
if(cur->second->ContainsZone(short_name))
|
||||
return(cur->second);
|
||||
}
|
||||
@ -146,7 +144,7 @@ void LauncherList::GetLauncherNameList(std::vector<std::string> &res) {
|
||||
std::map<std::string, EQLConfig *>::iterator cur, end;
|
||||
cur = m_configs.begin();
|
||||
end = m_configs.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
res.push_back(cur->first);
|
||||
}
|
||||
}
|
||||
@ -159,7 +157,7 @@ void LauncherList::LoadList() {
|
||||
std::vector<std::string>::iterator cur, end;
|
||||
cur = launchers.begin();
|
||||
end = launchers.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
m_configs[*cur] = new EQLConfig(cur->c_str());
|
||||
}
|
||||
}
|
||||
|
||||
@ -1103,7 +1103,7 @@ void Client::SendAATimers() {
|
||||
PTimerList::iterator c,e;
|
||||
c = p_timers.begin();
|
||||
e = p_timers.end();
|
||||
for(; c != e; c++) {
|
||||
for(; c != e; ++c) {
|
||||
PersistentTimer *cur = c->second;
|
||||
if(cur->GetType() < pTimerAAStart || cur->GetType() > pTimerAAEnd)
|
||||
continue; //not an AA timer
|
||||
@ -1510,7 +1510,7 @@ void Client::ResetAA(){
|
||||
aa[i]->value = 0;
|
||||
}
|
||||
std::map<uint32,uint8>::iterator itr;
|
||||
for(itr=aa_points.begin();itr!=aa_points.end();itr++)
|
||||
for(itr=aa_points.begin();itr!=aa_points.end();++itr)
|
||||
aa_points[itr->first] = 0;
|
||||
|
||||
for(int i = 0; i < _maxLeaderAA; ++i)
|
||||
|
||||
@ -934,26 +934,20 @@ void Client::AI_Process()
|
||||
else
|
||||
{
|
||||
if(AIfeignremember_timer->Check()) {
|
||||
std::set<uint32>::iterator RememberedCharID, tmp;
|
||||
RememberedCharID=feign_memory_list.begin();
|
||||
bool got_one = false;
|
||||
while(RememberedCharID != feign_memory_list.end()) {
|
||||
std::set<uint32>::iterator RememberedCharID;
|
||||
RememberedCharID = feign_memory_list.begin();
|
||||
while (RememberedCharID != feign_memory_list.end()) {
|
||||
Client* remember_client = entity_list.GetClientByCharID(*RememberedCharID);
|
||||
if(remember_client == nullptr) {
|
||||
if (remember_client == nullptr) {
|
||||
//they are gone now...
|
||||
tmp = RememberedCharID;
|
||||
RememberedCharID++;
|
||||
feign_memory_list.erase(tmp);
|
||||
RememberedCharID = feign_memory_list.erase(RememberedCharID);
|
||||
} else if (!remember_client->GetFeigned()) {
|
||||
AddToHateList(remember_client->CastToMob(),1);
|
||||
tmp = RememberedCharID;
|
||||
RememberedCharID++;
|
||||
feign_memory_list.erase(tmp);
|
||||
got_one = true;
|
||||
RememberedCharID = feign_memory_list.erase(RememberedCharID);
|
||||
break;
|
||||
} else {
|
||||
//they are still feigned, carry on...
|
||||
RememberedCharID++;
|
||||
++RememberedCharID;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1405,26 +1399,20 @@ void Mob::AI_Process() {
|
||||
// EverHood - 6/14/06
|
||||
// Improved Feign Death Memory
|
||||
// check to see if any of our previous feigned targets have gotten up.
|
||||
std::set<uint32>::iterator RememberedCharID, tmp;
|
||||
RememberedCharID=feign_memory_list.begin();
|
||||
bool got_one = false;
|
||||
while(RememberedCharID != feign_memory_list.end()) {
|
||||
std::set<uint32>::iterator RememberedCharID;
|
||||
RememberedCharID = feign_memory_list.begin();
|
||||
while (RememberedCharID != feign_memory_list.end()) {
|
||||
Client* remember_client = entity_list.GetClientByCharID(*RememberedCharID);
|
||||
if(remember_client == nullptr) {
|
||||
if (remember_client == nullptr) {
|
||||
//they are gone now...
|
||||
tmp = RememberedCharID;
|
||||
RememberedCharID++;
|
||||
feign_memory_list.erase(tmp);
|
||||
RememberedCharID = feign_memory_list.erase(RememberedCharID);
|
||||
} else if (!remember_client->GetFeigned()) {
|
||||
AddToHateList(remember_client->CastToMob(),1);
|
||||
tmp = RememberedCharID;
|
||||
RememberedCharID++;
|
||||
feign_memory_list.erase(tmp);
|
||||
got_one = true;
|
||||
RememberedCharID = feign_memory_list.erase(RememberedCharID);
|
||||
break;
|
||||
} else {
|
||||
//they are still feigned, carry on...
|
||||
RememberedCharID++;
|
||||
++RememberedCharID;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2406,7 +2394,7 @@ void NPC::RemoveSpellFromNPCList(int16 spell_id)
|
||||
iter = AIspells.erase(iter);
|
||||
continue;
|
||||
}
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -50,7 +50,7 @@ void QuestParserCollection::AddVar(std::string name, std::string val) {
|
||||
std::list<QuestInterface*>::iterator iter = _load_precedence.begin();
|
||||
while(iter != _load_precedence.end()) {
|
||||
(*iter)->AddVar(name, val);
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
|
||||
@ -58,7 +58,7 @@ void QuestParserCollection::Init() {
|
||||
std::list<QuestInterface*>::iterator iter = _load_precedence.begin();
|
||||
while(iter != _load_precedence.end()) {
|
||||
(*iter)->Init();
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
|
||||
@ -78,7 +78,7 @@ void QuestParserCollection::ReloadQuests(bool reset_timers) {
|
||||
std::list<QuestInterface*>::iterator iter = _load_precedence.begin();
|
||||
while(iter != _load_precedence.end()) {
|
||||
(*iter)->ReloadQuests();
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
|
||||
@ -469,7 +469,7 @@ QuestInterface *QuestParserCollection::GetQIByNPCQuest(uint32 npcid, std::string
|
||||
return (*iter);
|
||||
}
|
||||
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
//second look for /quests/zone/npcname.ext (precedence)
|
||||
@ -503,7 +503,7 @@ QuestInterface *QuestParserCollection::GetQIByNPCQuest(uint32 npcid, std::string
|
||||
return (*iter);
|
||||
}
|
||||
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
//third look for /quests/global/npcid.ext (precedence)
|
||||
@ -524,7 +524,7 @@ QuestInterface *QuestParserCollection::GetQIByNPCQuest(uint32 npcid, std::string
|
||||
return (*iter);
|
||||
}
|
||||
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
//fourth look for /quests/global/npcname.ext (precedence)
|
||||
@ -545,7 +545,7 @@ QuestInterface *QuestParserCollection::GetQIByNPCQuest(uint32 npcid, std::string
|
||||
return (*iter);
|
||||
}
|
||||
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
//fifth look for /quests/zone/default.ext (precedence)
|
||||
@ -566,7 +566,7 @@ QuestInterface *QuestParserCollection::GetQIByNPCQuest(uint32 npcid, std::string
|
||||
return (*iter);
|
||||
}
|
||||
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
//last look for /quests/global/default.ext (precedence)
|
||||
@ -587,7 +587,7 @@ QuestInterface *QuestParserCollection::GetQIByNPCQuest(uint32 npcid, std::string
|
||||
return (*iter);
|
||||
}
|
||||
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
@ -620,8 +620,8 @@ QuestInterface *QuestParserCollection::GetQIByPlayerQuest(std::string &filename)
|
||||
return (*iter);
|
||||
}
|
||||
|
||||
iter++;
|
||||
}
|
||||
++iter;
|
||||
}
|
||||
|
||||
//second look for /quests/zone/player.ext (precedence)
|
||||
filename = "quests/";
|
||||
@ -642,7 +642,7 @@ QuestInterface *QuestParserCollection::GetQIByPlayerQuest(std::string &filename)
|
||||
return (*iter);
|
||||
}
|
||||
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
//third look for /quests/global/player.ext (precedence)
|
||||
@ -663,7 +663,7 @@ QuestInterface *QuestParserCollection::GetQIByPlayerQuest(std::string &filename)
|
||||
return (*iter);
|
||||
}
|
||||
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
@ -691,7 +691,7 @@ QuestInterface *QuestParserCollection::GetQIByGlobalNPCQuest(std::string &filena
|
||||
return (*iter);
|
||||
}
|
||||
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
@ -719,7 +719,7 @@ QuestInterface *QuestParserCollection::GetQIByGlobalPlayerQuest(std::string &fil
|
||||
return (*iter);
|
||||
}
|
||||
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
@ -747,7 +747,7 @@ QuestInterface *QuestParserCollection::GetQIBySpellQuest(uint32 spell_id, std::s
|
||||
return (*iter);
|
||||
}
|
||||
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
//second look for /quests/global/spells/spell_id.ext (precedence)
|
||||
@ -769,7 +769,7 @@ QuestInterface *QuestParserCollection::GetQIBySpellQuest(uint32 spell_id, std::s
|
||||
return (*iter);
|
||||
}
|
||||
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
//third look for /quests/zone/spells/default.ext (precedence)
|
||||
@ -790,7 +790,7 @@ QuestInterface *QuestParserCollection::GetQIBySpellQuest(uint32 spell_id, std::s
|
||||
return (*iter);
|
||||
}
|
||||
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
//last look for /quests/global/spells/default.ext (precedence)
|
||||
@ -811,7 +811,7 @@ QuestInterface *QuestParserCollection::GetQIBySpellQuest(uint32 spell_id, std::s
|
||||
return (*iter);
|
||||
}
|
||||
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
@ -839,7 +839,7 @@ QuestInterface *QuestParserCollection::GetQIByItemQuest(std::string item_script,
|
||||
return (*iter);
|
||||
}
|
||||
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
//second look for /quests/global/items/item_script.ext (precedence)
|
||||
@ -861,7 +861,7 @@ QuestInterface *QuestParserCollection::GetQIByItemQuest(std::string item_script,
|
||||
return (*iter);
|
||||
}
|
||||
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
//third look for /quests/zone/items/default.ext (precedence)
|
||||
@ -882,7 +882,7 @@ QuestInterface *QuestParserCollection::GetQIByItemQuest(std::string item_script,
|
||||
return (*iter);
|
||||
}
|
||||
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
//last look for /quests/global/items/default.ext (precedence)
|
||||
@ -903,7 +903,7 @@ QuestInterface *QuestParserCollection::GetQIByItemQuest(std::string item_script,
|
||||
return (*iter);
|
||||
}
|
||||
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
|
||||
@ -189,7 +189,7 @@ void NPC::DescribeAggro(Client *towho, Mob *mob, bool verbose) {
|
||||
cur = faction_list.begin();
|
||||
end = faction_list.end();
|
||||
bool res = false;
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
struct NPCFaction* fac = *cur;
|
||||
if ((int32)fac->factionID == mob_primary) {
|
||||
if (fac->npc_value > 0) {
|
||||
|
||||
@ -3116,29 +3116,6 @@ int Mob::GetMonkHandToHandDelay(void)
|
||||
}
|
||||
}
|
||||
|
||||
int32 Mob::ReduceAllDamage(int32 damage)
|
||||
{
|
||||
if(damage <= 0)
|
||||
return damage;
|
||||
|
||||
int32 slot = -1;
|
||||
|
||||
if (spellbonuses.SpellOnAmtDmgTaken[2]){
|
||||
slot = spellbonuses.SpellOnAmtDmgTaken[1];
|
||||
|
||||
if (slot >= 0) {
|
||||
if(damage > buffs[slot].melee_rune) {
|
||||
if(!TryFadeEffect(slot))
|
||||
BuffFadeBySlot(slot);
|
||||
}
|
||||
else{
|
||||
buffs[slot].melee_rune = (buffs[slot].melee_rune - damage);
|
||||
CheckHitsRemaining(slot);
|
||||
}
|
||||
}
|
||||
}
|
||||
return(damage);
|
||||
}
|
||||
|
||||
int32 Mob::ReduceDamage(int32 damage)
|
||||
{
|
||||
@ -3157,16 +3134,16 @@ int32 Mob::ReduceDamage(int32 damage)
|
||||
}
|
||||
|
||||
//Only mitigate if damage is above the minimium specified.
|
||||
if (spellbonuses.MitigateMeleeRuneSP[0]){
|
||||
slot = spellbonuses.MitigateMeleeRuneSP[1];
|
||||
if (spellbonuses.MeleeThresholdGuard[0]){
|
||||
slot = spellbonuses.MeleeThresholdGuard[1];
|
||||
|
||||
if (slot >= 0 && (damage > spellbonuses.MitigateMeleeRuneSP[2]))
|
||||
if (slot >= 0 && (damage > spellbonuses.MeleeThresholdGuard[2]))
|
||||
{
|
||||
DisableMeleeRune = true;
|
||||
int damage_to_reduce = damage * spellbonuses.MitigateMeleeRuneSP[0] / 100;
|
||||
int damage_to_reduce = damage * spellbonuses.MeleeThresholdGuard[0] / 100;
|
||||
if(damage_to_reduce > buffs[slot].melee_rune)
|
||||
{
|
||||
mlog(SPELLS__EFFECT_VALUES, "Mob::ReduceDamage SE_MitigateMeleeDamageSP %d damage negated, %d"
|
||||
mlog(SPELLS__EFFECT_VALUES, "Mob::ReduceDamage SE_MeleeThresholdGuard %d damage negated, %d"
|
||||
" damage remaining, fading buff.", damage_to_reduce, buffs[slot].melee_rune);
|
||||
damage -= damage_to_reduce;
|
||||
if(!TryFadeEffect(slot))
|
||||
@ -3175,7 +3152,7 @@ int32 Mob::ReduceDamage(int32 damage)
|
||||
}
|
||||
else
|
||||
{
|
||||
mlog(SPELLS__EFFECT_VALUES, "Mob::ReduceDamage SE_MitigateMeleeDamageSP %d damage negated, %d"
|
||||
mlog(SPELLS__EFFECT_VALUES, "Mob::ReduceDamage SE_MeleeThresholdGuard %d damage negated, %d"
|
||||
" damage remaining.", damage_to_reduce, buffs[slot].melee_rune);
|
||||
buffs[slot].melee_rune = (buffs[slot].melee_rune - damage_to_reduce);
|
||||
damage -= damage_to_reduce;
|
||||
@ -3211,6 +3188,21 @@ int32 Mob::ReduceDamage(int32 damage)
|
||||
}
|
||||
}
|
||||
|
||||
if (spellbonuses.TriggerMeleeThreshold[2]){
|
||||
slot = spellbonuses.TriggerMeleeThreshold[1];
|
||||
|
||||
if (slot >= 0) {
|
||||
if(damage > buffs[slot].melee_rune) {
|
||||
if(!TryFadeEffect(slot))
|
||||
BuffFadeBySlot(slot);
|
||||
}
|
||||
else{
|
||||
buffs[slot].melee_rune = (buffs[slot].melee_rune - damage);
|
||||
CheckHitsRemaining(slot);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(damage < 1)
|
||||
return -6;
|
||||
|
||||
@ -3238,6 +3230,7 @@ int32 Mob::AffectMagicalDamage(int32 damage, uint16 spell_id, const bool iBuffTi
|
||||
if(damage <= 0)
|
||||
return damage;
|
||||
|
||||
bool DisableSpellRune = false;
|
||||
int32 slot = -1;
|
||||
|
||||
// See if we block the spell outright first
|
||||
@ -3259,8 +3252,34 @@ int32 Mob::AffectMagicalDamage(int32 damage, uint16 spell_id, const bool iBuffTi
|
||||
// Reduce damage by the Spell Shielding first so that the runes don't take the raw damage.
|
||||
damage -= (damage * itembonuses.SpellShield / 100);
|
||||
|
||||
|
||||
//Only mitigate if damage is above the minimium specified.
|
||||
if (spellbonuses.SpellThresholdGuard[0]){
|
||||
slot = spellbonuses.SpellThresholdGuard[1];
|
||||
|
||||
if (slot >= 0 && (damage > spellbonuses.MeleeThresholdGuard[2]))
|
||||
{
|
||||
DisableSpellRune = true;
|
||||
int damage_to_reduce = damage * spellbonuses.SpellThresholdGuard[0] / 100;
|
||||
if(damage_to_reduce > buffs[slot].magic_rune)
|
||||
{
|
||||
damage -= damage_to_reduce;
|
||||
if(!TryFadeEffect(slot))
|
||||
BuffFadeBySlot(slot);
|
||||
//UpdateRuneFlags();
|
||||
}
|
||||
else
|
||||
{
|
||||
buffs[slot].melee_rune = (buffs[slot].magic_rune - damage_to_reduce);
|
||||
damage -= damage_to_reduce;
|
||||
CheckHitsRemaining(slot);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Do runes now.
|
||||
if (spellbonuses.MitigateSpellRune[0]){
|
||||
if (spellbonuses.MitigateSpellRune[0] && !DisableSpellRune){
|
||||
slot = spellbonuses.MitigateSpellRune[1];
|
||||
if(slot >= 0)
|
||||
{
|
||||
@ -3286,6 +3305,21 @@ int32 Mob::AffectMagicalDamage(int32 damage, uint16 spell_id, const bool iBuffTi
|
||||
}
|
||||
}
|
||||
|
||||
if (spellbonuses.TriggerSpellThreshold[2]){
|
||||
slot = spellbonuses.TriggerSpellThreshold[1];
|
||||
|
||||
if (slot >= 0) {
|
||||
if(damage > buffs[slot].magic_rune) {
|
||||
if(!TryFadeEffect(slot))
|
||||
BuffFadeBySlot(slot);
|
||||
}
|
||||
else{
|
||||
buffs[slot].melee_rune = (buffs[slot].magic_rune - damage);
|
||||
CheckHitsRemaining(slot);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(damage < 1)
|
||||
return 0;
|
||||
|
||||
@ -3378,9 +3412,9 @@ bool Client::CheckDoubleAttack(bool tripleAttack) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Client::CheckArcheryDoubleAttack() {
|
||||
bool Client::CheckDoubleRangedAttack() {
|
||||
|
||||
int16 chance = spellbonuses.ArcheryDoubleAttack + itembonuses.ArcheryDoubleAttack + aabonuses.ArcheryDoubleAttack;
|
||||
int16 chance = spellbonuses.DoubleRangedAttack + itembonuses.DoubleRangedAttack + aabonuses.DoubleRangedAttack;
|
||||
|
||||
if(chance && (MakeRandomInt(0, 100) < chance))
|
||||
return true;
|
||||
@ -3493,7 +3527,6 @@ void Mob::CommonDamage(Mob* attacker, int32 &damage, const uint16 spell_id, cons
|
||||
}
|
||||
//final damage has been determined.
|
||||
|
||||
ReduceAllDamage(damage);
|
||||
SetHP(GetHP() - damage);
|
||||
|
||||
if(HasDied()) {
|
||||
|
||||
107
zone/bonuses.cpp
107
zone/bonuses.cpp
@ -851,8 +851,8 @@ void Client::ApplyAABonuses(uint32 aaid, uint32 slots, StatBonuses* newbon)
|
||||
case SE_ArcheryDamageModifier:
|
||||
newbon->ArcheryDamageModifier += base1;
|
||||
break;
|
||||
case SE_ArcheryDoubleAttack:
|
||||
newbon->ArcheryDoubleAttack += base1;
|
||||
case SE_DoubleRangedAttack:
|
||||
newbon->DoubleRangedAttack += base1;
|
||||
break;
|
||||
case SE_DamageShield:
|
||||
newbon->DamageShield += base1;
|
||||
@ -1982,16 +1982,26 @@ void Mob::ApplySpellsBonuses(uint16 spell_id, uint8 casterlevel, StatBonuses* ne
|
||||
newbon->DotCritDmgIncrease += effect_value;
|
||||
break;
|
||||
|
||||
case SE_CriticalHealChance2:
|
||||
case SE_CriticalHealChance:
|
||||
newbon->CriticalHealChance += effect_value;
|
||||
break;
|
||||
|
||||
case SE_CriticalHealOverTime2:
|
||||
case SE_CriticalHealOverTime:
|
||||
newbon->CriticalHealOverTime += effect_value;
|
||||
break;
|
||||
|
||||
case SE_CriticalHealDecay:
|
||||
newbon->CriticalHealDecay = true;
|
||||
break;
|
||||
|
||||
case SE_CriticalRegenDecay:
|
||||
newbon->CriticalRegenDecay = true;
|
||||
break;
|
||||
|
||||
case SE_CriticalDotDecay:
|
||||
newbon->CriticalDotDecay = true;
|
||||
break;
|
||||
|
||||
case SE_MitigateDamageShield:
|
||||
{
|
||||
if (effect_value < 0)
|
||||
@ -2173,12 +2183,22 @@ void Mob::ApplySpellsBonuses(uint16 spell_id, uint8 casterlevel, StatBonuses* ne
|
||||
}
|
||||
|
||||
|
||||
case SE_MitigateMeleeDamageSP:
|
||||
case SE_MeleeThresholdGuard:
|
||||
{
|
||||
if (newbon->MitigateMeleeRuneSP[0] < effect_value){
|
||||
newbon->MitigateMeleeRuneSP[0] = effect_value;
|
||||
newbon->MitigateMeleeRuneSP[1] = buffslot;
|
||||
newbon->MitigateMeleeRuneSP[2] = spells[spell_id].base2[i];
|
||||
if (newbon->MeleeThresholdGuard[0] < effect_value){
|
||||
newbon->MeleeThresholdGuard[0] = effect_value;
|
||||
newbon->MeleeThresholdGuard[1] = buffslot;
|
||||
newbon->MeleeThresholdGuard[2] = spells[spell_id].base2[i];
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case SE_SpellThresholdGuard:
|
||||
{
|
||||
if (newbon->SpellThresholdGuard[0] < effect_value){
|
||||
newbon->SpellThresholdGuard[0] = effect_value;
|
||||
newbon->SpellThresholdGuard[1] = buffslot;
|
||||
newbon->SpellThresholdGuard[2] = spells[spell_id].base2[i];
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -2201,12 +2221,22 @@ void Mob::ApplySpellsBonuses(uint16 spell_id, uint8 casterlevel, StatBonuses* ne
|
||||
break;
|
||||
}
|
||||
|
||||
case SE_SpellOnAmtDmgTaken:
|
||||
case SE_TriggerMeleeThreshold:
|
||||
{
|
||||
if (newbon->SpellOnAmtDmgTaken[2] < spells[spell_id].base2[i]){
|
||||
newbon->SpellOnAmtDmgTaken[0] = effect_value;
|
||||
newbon->SpellOnAmtDmgTaken[1] = buffslot;
|
||||
newbon->SpellOnAmtDmgTaken[2] = spells[spell_id].base2[i];
|
||||
if (newbon->TriggerMeleeThreshold[2] < spells[spell_id].base2[i]){
|
||||
newbon->TriggerMeleeThreshold[0] = effect_value;
|
||||
newbon->TriggerMeleeThreshold[1] = buffslot;
|
||||
newbon->TriggerMeleeThreshold[2] = spells[spell_id].base2[i];
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case SE_TriggerSpellThreshold:
|
||||
{
|
||||
if (newbon->TriggerSpellThreshold[2] < spells[spell_id].base2[i]){
|
||||
newbon->TriggerSpellThreshold[0] = effect_value;
|
||||
newbon->TriggerSpellThreshold[1] = buffslot;
|
||||
newbon->TriggerSpellThreshold[2] = spells[spell_id].base2[i];
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -2285,8 +2315,8 @@ void Mob::ApplySpellsBonuses(uint16 spell_id, uint8 casterlevel, StatBonuses* ne
|
||||
newbon->ArcheryDamageModifier += effect_value;
|
||||
break;
|
||||
|
||||
case SE_ArcheryDoubleAttack:
|
||||
newbon->ArcheryDoubleAttack += effect_value;
|
||||
case SE_DoubleRangedAttack:
|
||||
newbon->DoubleRangedAttack += effect_value;
|
||||
break;
|
||||
|
||||
case SE_SecondaryDmgInc:
|
||||
@ -2732,14 +2762,18 @@ uint8 Mob::IsFocusEffect(uint16 spell_id,int effect_index, bool AA,uint32 aa_eff
|
||||
return focusImprovedDamage2;
|
||||
case SE_Empathy:
|
||||
return focusAdditionalDamage;
|
||||
case SE_ReduceHeal:
|
||||
return focusReduceHeal;
|
||||
case SE_FcHealAmtIncoming:
|
||||
return focusFcHealAmtIncoming;
|
||||
case SE_HealRate2:
|
||||
return focusHealRate;
|
||||
case SE_IncreaseSpellPower:
|
||||
return focusSpellEffectiveness;
|
||||
case SE_IncreaseNumHits:
|
||||
return focusIncreaseNumHits;
|
||||
case SE_FcLimitUse:
|
||||
return focusFcLimitUse;
|
||||
case SE_FcMute:
|
||||
return focusFcMute;
|
||||
case SE_CriticalHealRate:
|
||||
return focusCriticalHealRate;
|
||||
case SE_AdditionalHeal2:
|
||||
@ -3318,14 +3352,12 @@ void Mob::NegateSpellsBonuses(uint16 spell_id)
|
||||
itembonuses.DotCritDmgIncrease = effect_value;
|
||||
break;
|
||||
|
||||
case SE_CriticalHealChance2:
|
||||
case SE_CriticalHealChance:
|
||||
spellbonuses.CriticalHealChance = effect_value;
|
||||
aabonuses.CriticalHealChance = effect_value;
|
||||
itembonuses.CriticalHealChance = effect_value;
|
||||
break;
|
||||
|
||||
case SE_CriticalHealOverTime2:
|
||||
case SE_CriticalHealOverTime:
|
||||
spellbonuses.CriticalHealOverTime = effect_value;
|
||||
aabonuses.CriticalHealOverTime = effect_value;
|
||||
@ -3458,10 +3490,16 @@ void Mob::NegateSpellsBonuses(uint16 spell_id)
|
||||
spellbonuses.MitigateMeleeRune[1] = -1;
|
||||
break;
|
||||
|
||||
case SE_MitigateMeleeDamageSP:
|
||||
spellbonuses.MitigateMeleeRuneSP[0] = effect_value;
|
||||
spellbonuses.MitigateMeleeRuneSP[1] = -1;
|
||||
spellbonuses.MitigateMeleeRuneSP[1] = effect_value;
|
||||
case SE_MeleeThresholdGuard:
|
||||
spellbonuses.MeleeThresholdGuard[0] = effect_value;
|
||||
spellbonuses.MeleeThresholdGuard[1] = -1;
|
||||
spellbonuses.MeleeThresholdGuard[1] = effect_value;
|
||||
break;
|
||||
|
||||
case SE_SpellThresholdGuard:
|
||||
spellbonuses.SpellThresholdGuard[0] = effect_value;
|
||||
spellbonuses.SpellThresholdGuard[1] = -1;
|
||||
spellbonuses.SpellThresholdGuard[1] = effect_value;
|
||||
break;
|
||||
|
||||
case SE_MitigateSpellDamage:
|
||||
@ -3698,10 +3736,10 @@ void Mob::NegateSpellsBonuses(uint16 spell_id)
|
||||
aabonuses.SlayUndead[1] = effect_value;
|
||||
break;
|
||||
|
||||
case SE_ArcheryDoubleAttack:
|
||||
spellbonuses.ArcheryDoubleAttack = effect_value;
|
||||
aabonuses.ArcheryDoubleAttack = effect_value;
|
||||
itembonuses.ArcheryDoubleAttack = effect_value;
|
||||
case SE_DoubleRangedAttack:
|
||||
spellbonuses.DoubleRangedAttack = effect_value;
|
||||
aabonuses.DoubleRangedAttack = effect_value;
|
||||
itembonuses.DoubleRangedAttack = effect_value;
|
||||
break;
|
||||
|
||||
case SE_ShieldEquipHateMod:
|
||||
@ -3718,6 +3756,19 @@ void Mob::NegateSpellsBonuses(uint16 spell_id)
|
||||
itembonuses.ShieldEquipDmgMod[0] = effect_value;
|
||||
itembonuses.ShieldEquipDmgMod[1] = effect_value;
|
||||
break;
|
||||
|
||||
case SE_TriggerMeleeThreshold:
|
||||
spellbonuses.TriggerMeleeThreshold[0] = effect_value;
|
||||
spellbonuses.TriggerMeleeThreshold[1] = effect_value;
|
||||
spellbonuses.TriggerMeleeThreshold[2] = effect_value;
|
||||
break;
|
||||
|
||||
case SE_TriggerSpellThreshold:
|
||||
spellbonuses.TriggerSpellThreshold[0] = effect_value;
|
||||
spellbonuses.TriggerSpellThreshold[1] = effect_value;
|
||||
spellbonuses.TriggerSpellThreshold[2] = effect_value;
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
58
zone/bot.cpp
58
zone/bot.cpp
@ -4774,7 +4774,7 @@ void Bot::LoadAndSpawnAllZonedBots(Client* botOwner) {
|
||||
std::list<uint32> ActiveBots = Bot::GetGroupedBotsByGroupId(botOwner->GetGroup()->GetID(), &errorMessage);
|
||||
|
||||
if(errorMessage.empty() && !ActiveBots.empty()) {
|
||||
for(std::list<uint32>::iterator itr = ActiveBots.begin(); itr != ActiveBots.end(); itr++) {
|
||||
for(std::list<uint32>::iterator itr = ActiveBots.begin(); itr != ActiveBots.end(); ++itr) {
|
||||
Bot* activeBot = Bot::LoadBot(*itr, &errorMessage);
|
||||
|
||||
if(!errorMessage.empty()) {
|
||||
@ -8812,7 +8812,7 @@ void Bot::BotOrderCampAll(Client* c) {
|
||||
if(c) {
|
||||
std::list<Bot*> BotList = entity_list.GetBotsByBotOwnerCharacterID(c->CharacterID());
|
||||
|
||||
for(std::list<Bot*>::iterator botListItr = BotList.begin(); botListItr != BotList.end(); botListItr++) {
|
||||
for(std::list<Bot*>::iterator botListItr = BotList.begin(); botListItr != BotList.end(); ++botListItr) {
|
||||
(*botListItr)->Camp();
|
||||
}
|
||||
}
|
||||
@ -11196,7 +11196,7 @@ Bot* Bot::GetBotByBotClientOwnerAndBotName(Client* c, std::string botName) {
|
||||
std::list<Bot*> BotList = entity_list.GetBotsByBotOwnerCharacterID(c->CharacterID());
|
||||
|
||||
if(!BotList.empty()) {
|
||||
for(std::list<Bot*>::iterator botListItr = BotList.begin(); botListItr != BotList.end(); botListItr++) {
|
||||
for(std::list<Bot*>::iterator botListItr = BotList.begin(); botListItr != BotList.end(); ++botListItr) {
|
||||
if(std::string((*botListItr)->GetCleanName()) == botName) {
|
||||
Result = (*botListItr);
|
||||
break;
|
||||
@ -11255,7 +11255,7 @@ void Bot::ProcessClientZoneChange(Client* botOwner) {
|
||||
if(botOwner) {
|
||||
std::list<Bot*> BotList = entity_list.GetBotsByBotOwnerCharacterID(botOwner->CharacterID());
|
||||
|
||||
for(std::list<Bot*>::iterator itr = BotList.begin(); itr != BotList.end(); itr++) {
|
||||
for(std::list<Bot*>::iterator itr = BotList.begin(); itr != BotList.end(); ++itr) {
|
||||
Bot* tempBot = *itr;
|
||||
|
||||
if(tempBot) {
|
||||
@ -11960,7 +11960,7 @@ void Bot::ProcessBotCommands(Client *c, const Seperator *sep) {
|
||||
}
|
||||
|
||||
if(!AvailableBots.empty()) {
|
||||
for(std::list<BotsAvailableList>::iterator TempAvailableBotsList = AvailableBots.begin(); TempAvailableBotsList != AvailableBots.end(); TempAvailableBotsList++) {
|
||||
for(std::list<BotsAvailableList>::iterator TempAvailableBotsList = AvailableBots.begin(); TempAvailableBotsList != AvailableBots.end(); ++TempAvailableBotsList) {
|
||||
if(!listAll && TempAvailableBotsList->BotClass != iClass)
|
||||
continue;
|
||||
|
||||
@ -12004,7 +12004,7 @@ void Bot::ProcessBotCommands(Client *c, const Seperator *sep) {
|
||||
std::list<Bot*> spawnedBots = entity_list.GetBotsByBotOwnerCharacterID(c->CharacterID());
|
||||
|
||||
if(!spawnedBots.empty()) {
|
||||
for(std::list<Bot*>::iterator botsListItr = spawnedBots.begin(); botsListItr != spawnedBots.end(); botsListItr++) {
|
||||
for(std::list<Bot*>::iterator botsListItr = spawnedBots.begin(); botsListItr != spawnedBots.end(); ++botsListItr) {
|
||||
Bot* tempBot = *botsListItr;
|
||||
if(tempBot) {
|
||||
if(tempBot->GetClass() != WARRIOR && tempBot->GetClass() != MONK && tempBot->GetClass() != BARD && tempBot->GetClass() != BERSERKER && tempBot->GetClass() != ROGUE)
|
||||
@ -14719,7 +14719,7 @@ void Bot::ProcessBotCommands(Client *c, const Seperator *sep) {
|
||||
}
|
||||
|
||||
if(!botGroupList.empty()) {
|
||||
for(std::list<BotGroupList>::iterator botGroupListItr = botGroupList.begin(); botGroupListItr != botGroupList.end(); botGroupListItr++) {
|
||||
for(std::list<BotGroupList>::iterator botGroupListItr = botGroupList.begin(); botGroupListItr != botGroupList.end(); ++botGroupListItr) {
|
||||
c->Message(0, "Bot Group Name: %s -- Bot Group Leader: %s", botGroupListItr->BotGroupName.c_str(), botGroupListItr->BotGroupLeaderName.c_str());
|
||||
}
|
||||
}
|
||||
@ -14859,7 +14859,7 @@ void Bot::ProcessBotCommands(Client *c, const Seperator *sep) {
|
||||
}
|
||||
|
||||
std::list<BotGroup>::iterator botGroupItr = botGroup.begin();
|
||||
for(botGroupItr; botGroupItr != botGroup.end(); botGroupItr++) {
|
||||
for(botGroupItr; botGroupItr != botGroup.end(); ++botGroupItr) {
|
||||
// Don't try to re-spawn the botgroup's leader.
|
||||
if(botGroupItr->BotID == botGroupLeader->GetBotID()) { continue; }
|
||||
|
||||
@ -15195,7 +15195,7 @@ void Bot::ProcessBotCommands(Client *c, const Seperator *sep) {
|
||||
std::list<Bot*> spawnedBots = entity_list.GetBotsByBotOwnerCharacterID(c->CharacterID());
|
||||
|
||||
if(!spawnedBots.empty()) {
|
||||
for(std::list<Bot*>::iterator botsListItr = spawnedBots.begin(); botsListItr != spawnedBots.end(); botsListItr++) {
|
||||
for(std::list<Bot*>::iterator botsListItr = spawnedBots.begin(); botsListItr != spawnedBots.end(); ++botsListItr) {
|
||||
Bot* tempBot = *botsListItr;
|
||||
if(tempBot) {
|
||||
tempBot->SetGroupMessagesOn(groupMessages);
|
||||
@ -15545,7 +15545,7 @@ void Bot::ProcessBotCommands(Client *c, const Seperator *sep) {
|
||||
return;
|
||||
}
|
||||
|
||||
Mob* target;
|
||||
Mob* target = nullptr;
|
||||
std::string targetName = std::string(sep->arg[4]);
|
||||
|
||||
if(!targetName.empty())
|
||||
@ -15635,7 +15635,7 @@ void Bot::ProcessBotCommands(Client *c, const Seperator *sep) {
|
||||
if(!strcasecmp(sep->arg[3], "all")) {
|
||||
std::list<Bot*> BotList = entity_list.GetBotsByBotOwnerCharacterID(c->CharacterID());
|
||||
|
||||
for(std::list<Bot*>::iterator botListItr = BotList.begin(); botListItr != BotList.end(); botListItr++) {
|
||||
for(std::list<Bot*>::iterator botListItr = BotList.begin(); botListItr != BotList.end(); ++botListItr) {
|
||||
Bot* leaderBot = *botListItr;
|
||||
if(leaderBot->GetInHealRotation() && leaderBot->GetHealRotationLeader() == leaderBot) {
|
||||
//start all heal rotations
|
||||
@ -15644,7 +15644,7 @@ void Bot::ProcessBotCommands(Client *c, const Seperator *sep) {
|
||||
|
||||
rotationMemberList = GetBotsInHealRotation(leaderBot);
|
||||
|
||||
for(std::list<Bot*>::iterator rotationMemberItr = rotationMemberList.begin(); rotationMemberItr != rotationMemberList.end(); rotationMemberItr++) {
|
||||
for(std::list<Bot*>::iterator rotationMemberItr = rotationMemberList.begin(); rotationMemberItr != rotationMemberList.end(); ++rotationMemberItr) {
|
||||
Bot* tempBot = *rotationMemberItr;
|
||||
|
||||
if(tempBot) {
|
||||
@ -15681,7 +15681,7 @@ void Bot::ProcessBotCommands(Client *c, const Seperator *sep) {
|
||||
|
||||
botList = GetBotsInHealRotation(leaderBot);
|
||||
|
||||
for(std::list<Bot*>::iterator botListItr = botList.begin(); botListItr != botList.end(); botListItr++) {
|
||||
for(std::list<Bot*>::iterator botListItr = botList.begin(); botListItr != botList.end(); ++botListItr) {
|
||||
Bot* tempBot = *botListItr;
|
||||
|
||||
if(tempBot) {
|
||||
@ -15712,7 +15712,7 @@ void Bot::ProcessBotCommands(Client *c, const Seperator *sep) {
|
||||
if(!strcasecmp(sep->arg[3], "all")) {
|
||||
std::list<Bot*> BotList = entity_list.GetBotsByBotOwnerCharacterID(c->CharacterID());
|
||||
|
||||
for(std::list<Bot*>::iterator botListItr = BotList.begin(); botListItr != BotList.end(); botListItr++) {
|
||||
for(std::list<Bot*>::iterator botListItr = BotList.begin(); botListItr != BotList.end(); ++botListItr) {
|
||||
Bot* leaderBot = *botListItr;
|
||||
if(leaderBot->GetInHealRotation() && leaderBot->GetHealRotationLeader() == leaderBot) {
|
||||
//start all heal rotations
|
||||
@ -15720,7 +15720,7 @@ void Bot::ProcessBotCommands(Client *c, const Seperator *sep) {
|
||||
|
||||
rotationMemberList = GetBotsInHealRotation(leaderBot);
|
||||
|
||||
for(std::list<Bot*>::iterator rotationMemberItr = rotationMemberList.begin(); rotationMemberItr != rotationMemberList.end(); rotationMemberItr++) {
|
||||
for(std::list<Bot*>::iterator rotationMemberItr = rotationMemberList.begin(); rotationMemberItr != rotationMemberList.end(); ++rotationMemberItr) {
|
||||
Bot* tempBot = *rotationMemberItr;
|
||||
|
||||
if(tempBot) {
|
||||
@ -15753,7 +15753,7 @@ void Bot::ProcessBotCommands(Client *c, const Seperator *sep) {
|
||||
|
||||
botList = GetBotsInHealRotation(leaderBot);
|
||||
|
||||
for(std::list<Bot*>::iterator botListItr = botList.begin(); botListItr != botList.end(); botListItr++) {
|
||||
for(std::list<Bot*>::iterator botListItr = botList.begin(); botListItr != botList.end(); ++botListItr) {
|
||||
Bot* tempBot = *botListItr;
|
||||
|
||||
if(tempBot && tempBot->GetBotOwnerCharacterID() == c->CharacterID()) {
|
||||
@ -15785,7 +15785,7 @@ void Bot::ProcessBotCommands(Client *c, const Seperator *sep) {
|
||||
if(!strcasecmp(sep->arg[3], "all")) {
|
||||
std::list<Bot*> BotList = entity_list.GetBotsByBotOwnerCharacterID(c->CharacterID());
|
||||
|
||||
for(std::list<Bot*>::iterator botListItr = BotList.begin(); botListItr != BotList.end(); botListItr++) {
|
||||
for(std::list<Bot*>::iterator botListItr = BotList.begin(); botListItr != BotList.end(); ++botListItr) {
|
||||
Bot* tempBot = *botListItr;
|
||||
if(tempBot->GetInHealRotation() && tempBot->GetHealRotationLeader() == tempBot) {
|
||||
//list leaders and number of bots per rotation
|
||||
@ -15816,7 +15816,7 @@ void Bot::ProcessBotCommands(Client *c, const Seperator *sep) {
|
||||
c->Message(0, "Bot Heal Rotation- Leader: %s", leaderBot->GetCleanName());
|
||||
c->Message(0, "Bot Heal Rotation- Timer: %1.1f", ((float)leaderBot->GetHealRotationTimer()/1000.0f));
|
||||
|
||||
for(std::list<Bot*>::iterator botListItr = botList.begin(); botListItr != botList.end(); botListItr++) {
|
||||
for(std::list<Bot*>::iterator botListItr = botList.begin(); botListItr != botList.end(); ++botListItr) {
|
||||
Bot* tempBot = *botListItr;
|
||||
|
||||
if(tempBot && tempBot->GetBotOwnerCharacterID() == c->CharacterID()) {
|
||||
@ -15874,7 +15874,7 @@ void Bot::ProcessBotCommands(Client *c, const Seperator *sep) {
|
||||
|
||||
botList = GetBotsInHealRotation(leaderBot);
|
||||
|
||||
for(std::list<Bot*>::iterator botListItr = botList.begin(); botListItr != botList.end(); botListItr++) {
|
||||
for(std::list<Bot*>::iterator botListItr = botList.begin(); botListItr != botList.end(); ++botListItr) {
|
||||
Bot* tempBot = *botListItr;
|
||||
|
||||
if(tempBot && tempBot->GetBotOwnerCharacterID() == c->CharacterID())
|
||||
@ -15922,7 +15922,7 @@ void Bot::ProcessBotCommands(Client *c, const Seperator *sep) {
|
||||
|
||||
botList = GetBotsInHealRotation(leaderBot);
|
||||
|
||||
for(std::list<Bot*>::iterator botListItr = botList.begin(); botListItr != botList.end(); botListItr++) {
|
||||
for(std::list<Bot*>::iterator botListItr = botList.begin(); botListItr != botList.end(); ++botListItr) {
|
||||
Bot* tempBot = *botListItr;
|
||||
|
||||
if(tempBot && tempBot->GetBotOwnerCharacterID() == c->CharacterID())
|
||||
@ -16238,7 +16238,7 @@ Bot* EntityList::GetBotByBotID(uint32 botID) {
|
||||
Bot* Result = 0;
|
||||
|
||||
if(botID > 0) {
|
||||
for(std::list<Bot*>::iterator botListItr = bot_list.begin(); botListItr != bot_list.end(); botListItr++) {
|
||||
for(std::list<Bot*>::iterator botListItr = bot_list.begin(); botListItr != bot_list.end(); ++botListItr) {
|
||||
Bot* tempBot = *botListItr;
|
||||
|
||||
if(tempBot && tempBot->GetBotID() == botID) {
|
||||
@ -16255,7 +16255,7 @@ Bot* EntityList::GetBotByBotName(std::string botName) {
|
||||
Bot* Result = 0;
|
||||
|
||||
if(!botName.empty()) {
|
||||
for(std::list<Bot*>::iterator botListItr = bot_list.begin(); botListItr != bot_list.end(); botListItr++) {
|
||||
for(std::list<Bot*>::iterator botListItr = bot_list.begin(); botListItr != bot_list.end(); ++botListItr) {
|
||||
Bot* tempBot = *botListItr;
|
||||
|
||||
if(tempBot && std::string(tempBot->GetName()) == botName) {
|
||||
@ -16303,7 +16303,7 @@ std::list<Bot*> EntityList::GetBotsByBotOwnerCharacterID(uint32 botOwnerCharacte
|
||||
std::list<Bot*> Result;
|
||||
|
||||
if(botOwnerCharacterID > 0) {
|
||||
for(std::list<Bot*>::iterator botListItr = bot_list.begin(); botListItr != bot_list.end(); botListItr++) {
|
||||
for(std::list<Bot*>::iterator botListItr = bot_list.begin(); botListItr != bot_list.end(); ++botListItr) {
|
||||
Bot* tempBot = *botListItr;
|
||||
|
||||
if(tempBot && tempBot->GetBotOwnerCharacterID() == botOwnerCharacterID)
|
||||
@ -16366,7 +16366,7 @@ bool EntityList::RemoveBot(uint16 entityID) {
|
||||
bool Result = false;
|
||||
|
||||
if(entityID > 0) {
|
||||
for(std::list<Bot*>::iterator botListItr = bot_list.begin(); botListItr != bot_list.end(); botListItr++)
|
||||
for(std::list<Bot*>::iterator botListItr = bot_list.begin(); botListItr != bot_list.end(); ++botListItr)
|
||||
{
|
||||
Bot* tempBot = *botListItr;
|
||||
|
||||
@ -16920,7 +16920,7 @@ bool Bot::AddHealRotationMember( Bot* healer ) {
|
||||
|
||||
std::list<Bot*> botList = GetBotsInHealRotation(this);
|
||||
|
||||
for(std::list<Bot*>::iterator botListItr = botList.begin(); botListItr != botList.end(); botListItr++) {
|
||||
for(std::list<Bot*>::iterator botListItr = botList.begin(); botListItr != botList.end(); ++botListItr) {
|
||||
Bot* tempBot = *botListItr;
|
||||
|
||||
if(tempBot)
|
||||
@ -16968,7 +16968,7 @@ bool Bot::RemoveHealRotationMember( Bot* healer ) {
|
||||
//update rotation data
|
||||
std::list<Bot*> botList = GetBotsInHealRotation(leader);
|
||||
|
||||
for(std::list<Bot*>::iterator botListItr = botList.begin(); botListItr != botList.end(); botListItr++) {
|
||||
for(std::list<Bot*>::iterator botListItr = botList.begin(); botListItr != botList.end(); ++botListItr) {
|
||||
Bot* tempBot = *botListItr;
|
||||
|
||||
if(tempBot) {
|
||||
@ -17043,7 +17043,7 @@ bool Bot::AddHealRotationTarget( Mob* target ) {
|
||||
|
||||
_healRotationTargets[i] = target->GetID();
|
||||
|
||||
for(std::list<Bot*>::iterator botListItr = botList.begin(); botListItr != botList.end(); botListItr++) {
|
||||
for(std::list<Bot*>::iterator botListItr = botList.begin(); botListItr != botList.end(); ++botListItr) {
|
||||
Bot* tempBot = *botListItr;
|
||||
|
||||
if(tempBot && tempBot != this) {
|
||||
@ -17081,7 +17081,7 @@ bool Bot::RemoveHealRotationTarget( Mob* target ) {
|
||||
index = i;
|
||||
removed = true;
|
||||
|
||||
for(std::list<Bot*>::iterator botListItr = botList.begin(); botListItr != botList.end(); botListItr++) {
|
||||
for(std::list<Bot*>::iterator botListItr = botList.begin(); botListItr != botList.end(); ++botListItr) {
|
||||
Bot* tempBot = *botListItr;
|
||||
|
||||
if(tempBot)
|
||||
@ -17220,7 +17220,7 @@ void Bot::BotHealRotationsClear(Client* c) {
|
||||
if(c) {
|
||||
std::list<Bot*> BotList = entity_list.GetBotsByBotOwnerCharacterID(c->CharacterID());
|
||||
|
||||
for(std::list<Bot*>::iterator botListItr = BotList.begin(); botListItr != BotList.end(); botListItr++) {
|
||||
for(std::list<Bot*>::iterator botListItr = BotList.begin(); botListItr != BotList.end(); ++botListItr) {
|
||||
Bot* tempBot = *botListItr;
|
||||
if(tempBot->GetInHealRotation()) {
|
||||
//clear all heal rotation data for bots in a heal rotation
|
||||
|
||||
@ -301,7 +301,7 @@ bool Bot::AICastSpell(Mob* tar, uint8 iChance, uint16 iSpellTypes) {
|
||||
if (tar->DontBuffMeBefore() < Timer::GetCurrentTime()) {
|
||||
std::list<BotSpell> buffSpellList = GetBotSpellsBySpellType(this, SpellType_Buff);
|
||||
|
||||
for(std::list<BotSpell>::iterator itr = buffSpellList.begin(); itr != buffSpellList.end(); itr++) {
|
||||
for(std::list<BotSpell>::iterator itr = buffSpellList.begin(); itr != buffSpellList.end(); ++itr) {
|
||||
BotSpell selectedBotSpell = *itr;
|
||||
|
||||
if(selectedBotSpell.SpellId == 0)
|
||||
@ -560,7 +560,7 @@ bool Bot::AICastSpell(Mob* tar, uint8 iChance, uint16 iSpellTypes) {
|
||||
|
||||
std::list<BotSpell> inCombatBuffList = GetBotSpellsBySpellType(this, SpellType_InCombatBuff);
|
||||
|
||||
for(std::list<BotSpell>::iterator itr = inCombatBuffList.begin(); itr != inCombatBuffList.end(); itr++) {
|
||||
for(std::list<BotSpell>::iterator itr = inCombatBuffList.begin(); itr != inCombatBuffList.end(); ++itr) {
|
||||
BotSpell selectedBotSpell = *itr;
|
||||
|
||||
if(selectedBotSpell.SpellId == 0)
|
||||
@ -588,7 +588,7 @@ bool Bot::AICastSpell(Mob* tar, uint8 iChance, uint16 iSpellTypes) {
|
||||
if (tar->DontBuffMeBefore() < Timer::GetCurrentTime()) {
|
||||
std::list<BotSpell> inCombatBuffList = GetBotSpellsBySpellType(this, SpellType_InCombatBuff);
|
||||
|
||||
for(std::list<BotSpell>::iterator itr = inCombatBuffList.begin(); itr != inCombatBuffList.end(); itr++) {
|
||||
for(std::list<BotSpell>::iterator itr = inCombatBuffList.begin(); itr != inCombatBuffList.end(); ++itr) {
|
||||
BotSpell selectedBotSpell = *itr;
|
||||
|
||||
if(selectedBotSpell.SpellId == 0)
|
||||
@ -727,7 +727,7 @@ bool Bot::AICastSpell(Mob* tar, uint8 iChance, uint16 iSpellTypes) {
|
||||
const int maxDotSelect = 5;
|
||||
int dotSelectCounter = 0;
|
||||
|
||||
for(std::list<BotSpell>::iterator itr = dotList.begin(); itr != dotList.end(); itr++) {
|
||||
for(std::list<BotSpell>::iterator itr = dotList.begin(); itr != dotList.end(); ++itr) {
|
||||
BotSpell selectedBotSpell = *itr;
|
||||
|
||||
if(selectedBotSpell.SpellId == 0)
|
||||
@ -1450,7 +1450,7 @@ BotSpell Bot::GetBestBotSpellForFastHeal(Bot *botCaster) {
|
||||
if(botCaster) {
|
||||
std::list<BotSpell> botSpellList = GetBotSpellsForSpellEffect(botCaster, SE_CurrentHP);
|
||||
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botSpellList.begin(); botSpellListItr != botSpellList.end(); botSpellListItr++) {
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botSpellList.begin(); botSpellListItr != botSpellList.end(); ++botSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if(IsFastHealSpell(botSpellListItr->SpellId) && CheckSpellRecastTimers(botCaster, botSpellListItr->SpellIndex)) {
|
||||
result.SpellId = botSpellListItr->SpellId;
|
||||
@ -1476,7 +1476,7 @@ BotSpell Bot::GetBestBotSpellForHealOverTime(Bot* botCaster) {
|
||||
std::list<BotSpell> botHoTSpellList = GetBotSpellsForSpellEffect(botCaster, SE_HealOverTime);
|
||||
std::vector<AISpells_Struct> botSpellList = botCaster->GetBotSpells();
|
||||
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botHoTSpellList.begin(); botSpellListItr != botHoTSpellList.end(); botSpellListItr++) {
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botHoTSpellList.begin(); botSpellListItr != botHoTSpellList.end(); ++botSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if(IsHealOverTimeSpell(botSpellListItr->SpellId)) {
|
||||
|
||||
@ -1542,7 +1542,7 @@ BotSpell Bot::GetBestBotSpellForRegularSingleTargetHeal(Bot* botCaster) {
|
||||
if(botCaster) {
|
||||
std::list<BotSpell> botSpellList = GetBotSpellsForSpellEffect(botCaster, SE_CurrentHP);
|
||||
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botSpellList.begin(); botSpellListItr != botSpellList.end(); botSpellListItr++) {
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botSpellList.begin(); botSpellListItr != botSpellList.end(); ++botSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if(IsRegularSingleTargetHealSpell(botSpellListItr->SpellId) && CheckSpellRecastTimers(botCaster, botSpellListItr->SpellIndex)) {
|
||||
result.SpellId = botSpellListItr->SpellId;
|
||||
@ -1567,7 +1567,7 @@ BotSpell Bot::GetFirstBotSpellForSingleTargetHeal(Bot* botCaster) {
|
||||
if(botCaster) {
|
||||
std::list<BotSpell> botSpellList = GetBotSpellsForSpellEffect(botCaster, SE_CurrentHP);
|
||||
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botSpellList.begin(); botSpellListItr != botSpellList.end(); botSpellListItr++) {
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botSpellList.begin(); botSpellListItr != botSpellList.end(); ++botSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if((IsRegularSingleTargetHealSpell(botSpellListItr->SpellId) || IsFastHealSpell(botSpellListItr->SpellId)) && CheckSpellRecastTimers(botCaster, botSpellListItr->SpellIndex)) {
|
||||
result.SpellId = botSpellListItr->SpellId;
|
||||
@ -1592,7 +1592,7 @@ BotSpell Bot::GetBestBotSpellForGroupHeal(Bot* botCaster) {
|
||||
if(botCaster) {
|
||||
std::list<BotSpell> botSpellList = GetBotSpellsForSpellEffect(botCaster, SE_CurrentHP);
|
||||
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botSpellList.begin(); botSpellListItr != botSpellList.end(); botSpellListItr++) {
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botSpellList.begin(); botSpellListItr != botSpellList.end(); ++botSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if(IsRegularGroupHealSpell(botSpellListItr->SpellId) && CheckSpellRecastTimers(botCaster, botSpellListItr->SpellIndex)) {
|
||||
result.SpellId = botSpellListItr->SpellId;
|
||||
@ -1618,7 +1618,7 @@ BotSpell Bot::GetBestBotSpellForGroupHealOverTime(Bot* botCaster) {
|
||||
std::list<BotSpell> botHoTSpellList = GetBotSpellsForSpellEffect(botCaster, SE_HealOverTime);
|
||||
std::vector<AISpells_Struct> botSpellList = botCaster->GetBotSpells();
|
||||
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botHoTSpellList.begin(); botSpellListItr != botHoTSpellList.end(); botSpellListItr++) {
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botHoTSpellList.begin(); botSpellListItr != botHoTSpellList.end(); ++botSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if(IsGroupHealOverTimeSpell(botSpellListItr->SpellId)) {
|
||||
|
||||
@ -1654,7 +1654,7 @@ BotSpell Bot::GetBestBotSpellForGroupCompleteHeal(Bot* botCaster) {
|
||||
if(botCaster) {
|
||||
std::list<BotSpell> botSpellList = GetBotSpellsForSpellEffect(botCaster, SE_CompleteHeal);
|
||||
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botSpellList.begin(); botSpellListItr != botSpellList.end(); botSpellListItr++) {
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botSpellList.begin(); botSpellListItr != botSpellList.end(); ++botSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if(IsGroupCompleteHealSpell(botSpellListItr->SpellId) && CheckSpellRecastTimers(botCaster, botSpellListItr->SpellIndex)) {
|
||||
result.SpellId = botSpellListItr->SpellId;
|
||||
@ -1679,7 +1679,7 @@ BotSpell Bot::GetBestBotSpellForMez(Bot* botCaster) {
|
||||
if(botCaster) {
|
||||
std::list<BotSpell> botSpellList = GetBotSpellsForSpellEffect(botCaster, SE_Mez);
|
||||
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botSpellList.begin(); botSpellListItr != botSpellList.end(); botSpellListItr++) {
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botSpellList.begin(); botSpellListItr != botSpellList.end(); ++botSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if(IsMezSpell(botSpellListItr->SpellId) && CheckSpellRecastTimers(botCaster, botSpellListItr->SpellIndex)) {
|
||||
result.SpellId = botSpellListItr->SpellId;
|
||||
@ -1704,7 +1704,7 @@ BotSpell Bot::GetBestBotSpellForMagicBasedSlow(Bot* botCaster) {
|
||||
if(botCaster) {
|
||||
std::list<BotSpell> botSpellList = GetBotSpellsForSpellEffect(botCaster, SE_AttackSpeed);
|
||||
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botSpellList.begin(); botSpellListItr != botSpellList.end(); botSpellListItr++) {
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botSpellList.begin(); botSpellListItr != botSpellList.end(); ++botSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if(IsSlowSpell(botSpellListItr->SpellId) && spells[botSpellListItr->SpellId].resisttype == RESIST_MAGIC && CheckSpellRecastTimers(botCaster, botSpellListItr->SpellIndex)) {
|
||||
result.SpellId = botSpellListItr->SpellId;
|
||||
@ -1729,7 +1729,7 @@ BotSpell Bot::GetBestBotSpellForDiseaseBasedSlow(Bot* botCaster) {
|
||||
if(botCaster) {
|
||||
std::list<BotSpell> botSpellList = GetBotSpellsForSpellEffect(botCaster, SE_AttackSpeed);
|
||||
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botSpellList.begin(); botSpellListItr != botSpellList.end(); botSpellListItr++) {
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botSpellList.begin(); botSpellListItr != botSpellList.end(); ++botSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if(IsSlowSpell(botSpellListItr->SpellId) && spells[botSpellListItr->SpellId].resisttype == RESIST_DISEASE && CheckSpellRecastTimers(botCaster, botSpellListItr->SpellIndex)) {
|
||||
result.SpellId = botSpellListItr->SpellId;
|
||||
@ -1752,7 +1752,7 @@ Mob* Bot::GetFirstIncomingMobToMez(Bot* botCaster, BotSpell botSpell) {
|
||||
std::list<NPC*> npc_list;
|
||||
entity_list.GetNPCList(npc_list);
|
||||
|
||||
for(std::list<NPC*>::iterator itr = npc_list.begin(); itr != npc_list.end(); itr++) {
|
||||
for(std::list<NPC*>::iterator itr = npc_list.begin(); itr != npc_list.end(); ++itr) {
|
||||
NPC* npc = *itr;
|
||||
|
||||
if(npc->DistNoRootNoZ(*botCaster) <= botCaster->GetActSpellRange(botSpell.SpellId, spells[botSpell.SpellId].range)) {
|
||||
@ -1792,7 +1792,7 @@ BotSpell Bot::GetBestBotMagicianPetSpell(Bot *botCaster) {
|
||||
|
||||
std::string petType = GetBotMagicianPetType(botCaster);
|
||||
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botSpellList.begin(); botSpellListItr != botSpellList.end(); botSpellListItr++) {
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botSpellList.begin(); botSpellListItr != botSpellList.end(); ++botSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if(IsSummonPetSpell(botSpellListItr->SpellId) && CheckSpellRecastTimers(botCaster, botSpellListItr->SpellIndex)) {
|
||||
if(!strncmp(spells[botSpellListItr->SpellId].teleport_zone, petType.c_str(), petType.length())) {
|
||||
@ -1901,7 +1901,7 @@ BotSpell Bot::GetBestBotSpellForNukeByTargetType(Bot* botCaster, SpellTargetType
|
||||
if(botCaster) {
|
||||
std::list<BotSpell> botSpellList = GetBotSpellsForSpellEffectAndTargetType(botCaster, SE_CurrentHP, targetType);
|
||||
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botSpellList.begin(); botSpellListItr != botSpellList.end(); botSpellListItr++) {
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botSpellList.begin(); botSpellListItr != botSpellList.end(); ++botSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if(IsPureNukeSpell(botSpellListItr->SpellId) && IsDamageSpell(botSpellListItr->SpellId) && CheckSpellRecastTimers(botCaster, botSpellListItr->SpellIndex)) {
|
||||
result.SpellId = botSpellListItr->SpellId;
|
||||
@ -1928,7 +1928,7 @@ BotSpell Bot::GetBestBotSpellForStunByTargetType(Bot* botCaster, SpellTargetType
|
||||
{
|
||||
std::list<BotSpell> botSpellList = GetBotSpellsForSpellEffectAndTargetType(botCaster, SE_Stun, targetType);
|
||||
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botSpellList.begin(); botSpellListItr != botSpellList.end(); botSpellListItr++)
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botSpellList.begin(); botSpellListItr != botSpellList.end(); ++botSpellListItr)
|
||||
{
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if(IsStunSpell(botSpellListItr->SpellId) && CheckSpellRecastTimers(botCaster, botSpellListItr->SpellIndex))
|
||||
@ -1967,7 +1967,7 @@ BotSpell Bot::GetBestBotWizardNukeSpellByTargetResists(Bot* botCaster, Mob* targ
|
||||
firstWizardMagicNukeSpellFound.SpellIndex = 0;
|
||||
firstWizardMagicNukeSpellFound.ManaCost = 0;
|
||||
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botSpellList.begin(); botSpellListItr != botSpellList.end(); botSpellListItr++) {
|
||||
for(std::list<BotSpell>::iterator botSpellListItr = botSpellList.begin(); botSpellListItr != botSpellList.end(); ++botSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
bool spellSelected = false;
|
||||
|
||||
@ -2139,7 +2139,7 @@ BotSpell Bot::GetBestBotSpellForCure(Bot* botCaster, Mob *tar) {
|
||||
|
||||
//Check for group cure first
|
||||
if(countNeedsCured > 2) {
|
||||
for(std::list<BotSpell>::iterator itr = cureList.begin(); itr != cureList.end(); itr++) {
|
||||
for(std::list<BotSpell>::iterator itr = cureList.begin(); itr != cureList.end(); ++itr) {
|
||||
BotSpell selectedBotSpell = *itr;
|
||||
|
||||
if(IsGroupSpell(itr->SpellId) && CheckSpellRecastTimers(botCaster, itr->SpellIndex)) {
|
||||
@ -2176,7 +2176,7 @@ BotSpell Bot::GetBestBotSpellForCure(Bot* botCaster, Mob *tar) {
|
||||
|
||||
//no group cure for target- try to find single target spell
|
||||
if(!spellSelected) {
|
||||
for(std::list<BotSpell>::iterator itr = cureList.begin(); itr != cureList.end(); itr++) {
|
||||
for(std::list<BotSpell>::iterator itr = cureList.begin(); itr != cureList.end(); ++itr) {
|
||||
BotSpell selectedBotSpell = *itr;
|
||||
|
||||
if(CheckSpellRecastTimers(botCaster, itr->SpellIndex)) {
|
||||
|
||||
@ -4748,7 +4748,7 @@ void Client::ShowSkillsWindow()
|
||||
Skills[SkillName[i]] = (SkillUseTypes)i;
|
||||
|
||||
// print out all available skills
|
||||
for(it = Skills.begin(); it != Skills.end(); it++) {
|
||||
for(it = Skills.begin(); it != Skills.end(); ++it) {
|
||||
if(GetSkill(it->second) > 0 || MaxSkill(it->second) > 0) {
|
||||
WindowText += it->first;
|
||||
// line up the values
|
||||
@ -5142,7 +5142,7 @@ void Client::SendRewards()
|
||||
{
|
||||
break;
|
||||
}
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
if(iter != zone->VeteranRewards.end())
|
||||
@ -5232,7 +5232,7 @@ bool Client::TryReward(uint32 claim_id)
|
||||
{
|
||||
break;
|
||||
}
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
if(iter == zone->VeteranRewards.end())
|
||||
@ -6606,7 +6606,7 @@ void Client::SendStatsWindow(Client* client, bool use_window)
|
||||
|
||||
for(std::map <uint32, int32>::iterator iter = item_faction_bonuses.begin();
|
||||
iter != item_faction_bonuses.end();
|
||||
iter++)
|
||||
++iter)
|
||||
{
|
||||
memset(&faction_buf, 0, sizeof(faction_buf));
|
||||
|
||||
@ -6728,7 +6728,7 @@ void Client::SendAltCurrencies() {
|
||||
altc->entries[i].stack_size = 1000;
|
||||
}
|
||||
i++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
FastQueuePacket(&outapp);
|
||||
@ -6776,7 +6776,7 @@ void Client::SendAlternateCurrencyValues()
|
||||
std::list<AltCurrencyDefinition_Struct>::iterator iter = zone->AlternateCurrencies.begin();
|
||||
while(iter != zone->AlternateCurrencies.end()) {
|
||||
SendAlternateCurrencyValue((*iter).id, false);
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
|
||||
@ -7215,7 +7215,7 @@ void Client::SendMercPersonalInfo()
|
||||
mdus->MercData[i].Stances[stanceindex].StanceIndex = stanceindex;
|
||||
mdus->MercData[i].Stances[stanceindex].Stance = (iter->StanceID);
|
||||
stanceindex++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
|
||||
@ -7281,7 +7281,7 @@ void Client::SendMercPersonalInfo()
|
||||
mml->Mercs[i].Stances[stanceindex].StanceIndex = stanceindex;
|
||||
mml->Mercs[i].Stances[stanceindex].Stance = (iter->StanceID);
|
||||
stanceindex++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
FastQueuePacket(&outapp);
|
||||
@ -7898,7 +7898,7 @@ bool Client::RemoveRespawnOption(std::string option_name)
|
||||
opt = &(*itr);
|
||||
if (opt->name.compare(option_name) == 0)
|
||||
{
|
||||
respawn_options.erase(itr);
|
||||
itr = respawn_options.erase(itr);
|
||||
had = true;
|
||||
//could be more with the same name, so keep going...
|
||||
}
|
||||
|
||||
@ -819,7 +819,7 @@ public:
|
||||
void LinkDead();
|
||||
void Insight(uint32 t_id);
|
||||
bool CheckDoubleAttack(bool tripleAttack = false);
|
||||
bool CheckArcheryDoubleAttack();
|
||||
bool CheckDoubleRangedAttack();
|
||||
|
||||
//remove charges/multiple objects from inventory:
|
||||
//bool DecreaseByType(uint32 type, uint8 amt);
|
||||
@ -830,7 +830,7 @@ public:
|
||||
void RemoveDuplicateLore(bool client_update = true);
|
||||
void MoveSlotNotAllowed(bool client_update = true);
|
||||
virtual void RangedAttack(Mob* other, bool CanDoubleAttack = false);
|
||||
virtual void ThrowingAttack(Mob* other);
|
||||
virtual void ThrowingAttack(Mob* other, bool CanDoubleAttack = false);
|
||||
void DoClassAttacks(Mob *ca_target, uint16 skill = -1, bool IsRiposte=false);
|
||||
|
||||
void SetZoneFlag(uint32 zone_id);
|
||||
|
||||
@ -38,7 +38,7 @@ void ClientLogs::subscribe(EQEMuLog::LogIDs id, Client *c) {
|
||||
std::vector<Client *>::iterator cur,end;
|
||||
cur = entries[id].begin();
|
||||
end = entries[id].end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
if(*cur == c) {
|
||||
printf("%s was allready subscribed to %d\n", c->GetName(), id);
|
||||
return;
|
||||
@ -58,7 +58,7 @@ void ClientLogs::unsubscribe(EQEMuLog::LogIDs id, Client *c) {
|
||||
std::vector<Client *>::iterator cur,end;
|
||||
cur = entries[id].begin();
|
||||
end = entries[id].end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
if(*cur == c) {
|
||||
entries[id].erase(cur);
|
||||
return;
|
||||
@ -97,7 +97,7 @@ void ClientLogs::msg(EQEMuLog::LogIDs id, const char *buf) {
|
||||
std::vector<Client *>::iterator cur,end;
|
||||
cur = entries[id].begin();
|
||||
end = entries[id].end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
if(!(*cur)->InZone())
|
||||
continue;
|
||||
(*cur)->Message(CLIENT_LOG_CHANNEL, buf);
|
||||
|
||||
@ -2215,7 +2215,7 @@ void Client::Handle_OP_AdventureMerchantRequest(const EQApplicationPacket *app)
|
||||
const Item_Struct *item = 0;
|
||||
std::list<MerchantList> merlist = zone->merchanttable[merchantid];
|
||||
std::list<MerchantList>::const_iterator itr;
|
||||
for(itr = merlist.begin();itr != merlist.end() && count<255;itr++){
|
||||
for(itr = merlist.begin();itr != merlist.end() && count<255;++itr){
|
||||
const MerchantList &ml = *itr;
|
||||
if(GetLevel() < ml.level_required) {
|
||||
continue;
|
||||
@ -2311,7 +2311,7 @@ void Client::Handle_OP_AdventureMerchantPurchase(const EQApplicationPacket *app)
|
||||
std::list<MerchantList> merlist = zone->merchanttable[merchantid];
|
||||
std::list<MerchantList>::const_iterator itr;
|
||||
|
||||
for(itr = merlist.begin();itr != merlist.end();itr++){
|
||||
for(itr = merlist.begin();itr != merlist.end();++itr){
|
||||
MerchantList ml = *itr;
|
||||
if(GetLevel() < ml.level_required) {
|
||||
continue;
|
||||
@ -5505,7 +5505,7 @@ void Client::Handle_OP_ShopPlayerBuy(const EQApplicationPacket *app)
|
||||
uint32 item_id = 0;
|
||||
std::list<MerchantList> merlist = zone->merchanttable[merchantid];
|
||||
std::list<MerchantList>::const_iterator itr;
|
||||
for(itr = merlist.begin();itr != merlist.end();itr++){
|
||||
for(itr = merlist.begin();itr != merlist.end();++itr){
|
||||
MerchantList ml = *itr;
|
||||
if(GetLevel() < ml.level_required) {
|
||||
continue;
|
||||
@ -5527,7 +5527,7 @@ void Client::Handle_OP_ShopPlayerBuy(const EQApplicationPacket *app)
|
||||
std::list<TempMerchantList> tmp_merlist = zone->tmpmerchanttable[tmp->GetNPCTypeID()];
|
||||
std::list<TempMerchantList>::const_iterator tmp_itr;
|
||||
TempMerchantList ml;
|
||||
for(tmp_itr = tmp_merlist.begin();tmp_itr != tmp_merlist.end();tmp_itr++){
|
||||
for(tmp_itr = tmp_merlist.begin();tmp_itr != tmp_merlist.end();++tmp_itr){
|
||||
ml = *tmp_itr;
|
||||
if(mp->itemslot == ml.slot){
|
||||
item_id = ml.item;
|
||||
@ -9220,7 +9220,7 @@ bool Client::FinishConnState2(DBAsyncWork* dbaw) {
|
||||
|
||||
// Send stuff on the cursor which isnt sent in bulk
|
||||
iter_queue it;
|
||||
for (it=m_inv.cursor_begin();it!=m_inv.cursor_end();it++) {
|
||||
for (it=m_inv.cursor_begin();it!=m_inv.cursor_end();++it) {
|
||||
// First item cursor is sent in bulk inventory packet
|
||||
if (it==m_inv.cursor_begin())
|
||||
continue;
|
||||
@ -12544,7 +12544,7 @@ void Client::Handle_OP_AltCurrencyMerchantRequest(const EQApplicationPacket *app
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
altc_iter++;
|
||||
++altc_iter;
|
||||
}
|
||||
|
||||
if(!found) {
|
||||
@ -12560,7 +12560,7 @@ void Client::Handle_OP_AltCurrencyMerchantRequest(const EQApplicationPacket *app
|
||||
|
||||
std::list<MerchantList> merlist = zone->merchanttable[merchant_id];
|
||||
std::list<MerchantList>::const_iterator itr;
|
||||
for(itr = merlist.begin(); itr != merlist.end() && count < 255; itr++){
|
||||
for(itr = merlist.begin(); itr != merlist.end() && count < 255; ++itr){
|
||||
const MerchantList &ml = *itr;
|
||||
if(GetLevel() < ml.level_required) {
|
||||
continue;
|
||||
@ -12627,7 +12627,7 @@ void Client::Handle_OP_AltCurrencySellSelection(const EQApplicationPacket *app)
|
||||
bool found = false;
|
||||
std::list<MerchantList> merlist = zone->merchanttable[merchant_id];
|
||||
std::list<MerchantList>::const_iterator itr;
|
||||
for(itr = merlist.begin(); itr != merlist.end(); itr++) {
|
||||
for(itr = merlist.begin(); itr != merlist.end(); ++itr) {
|
||||
MerchantList ml = *itr;
|
||||
if(GetLevel() < ml.level_required) {
|
||||
continue;
|
||||
@ -12689,7 +12689,7 @@ void Client::Handle_OP_AltCurrencyPurchase(const EQApplicationPacket *app) {
|
||||
bool found = false;
|
||||
std::list<MerchantList> merlist = zone->merchanttable[merchant_id];
|
||||
std::list<MerchantList>::const_iterator itr;
|
||||
for(itr = merlist.begin(); itr != merlist.end(); itr++) {
|
||||
for(itr = merlist.begin(); itr != merlist.end(); ++itr) {
|
||||
MerchantList ml = *itr;
|
||||
if(GetLevel() < ml.level_required) {
|
||||
continue;
|
||||
@ -12751,7 +12751,7 @@ void Client::Handle_OP_AltCurrencyReclaim(const EQApplicationPacket *app) {
|
||||
if((*iter).id == reclaim->currency_id) {
|
||||
item_id = (*iter).item_id;
|
||||
}
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
if(item_id == 0) {
|
||||
@ -12806,7 +12806,7 @@ void Client::Handle_OP_AltCurrencySell(const EQApplicationPacket *app) {
|
||||
bool found = false;
|
||||
std::list<MerchantList> merlist = zone->merchanttable[merchant_id];
|
||||
std::list<MerchantList>::const_iterator itr;
|
||||
for(itr = merlist.begin(); itr != merlist.end(); itr++) {
|
||||
for(itr = merlist.begin(); itr != merlist.end(); ++itr) {
|
||||
MerchantList ml = *itr;
|
||||
if(GetLevel() < ml.level_required) {
|
||||
continue;
|
||||
@ -13498,10 +13498,10 @@ void Client::Handle_OP_MercenaryDataRequest(const EQApplicationPacket *app)
|
||||
int i = 0;
|
||||
int StanceCount = 0;
|
||||
|
||||
for(std::list<MercData>::iterator mercListItr = mercDataList.begin(); mercListItr != mercDataList.end(); mercListItr++)
|
||||
for(std::list<MercData>::iterator mercListItr = mercDataList.begin(); mercListItr != mercDataList.end(); ++mercListItr)
|
||||
{
|
||||
std::list<MercStanceInfo>::iterator siter = zone->merc_stance_list[mercListItr->MercTemplateID].begin();
|
||||
for(siter = zone->merc_stance_list[mercListItr->MercTemplateID].begin(); siter != zone->merc_stance_list[mercListItr->MercTemplateID].end(); siter++)
|
||||
for(siter = zone->merc_stance_list[mercListItr->MercTemplateID].begin(); siter != zone->merc_stance_list[mercListItr->MercTemplateID].end(); ++siter)
|
||||
{
|
||||
StanceCount++;
|
||||
}
|
||||
@ -13513,7 +13513,7 @@ void Client::Handle_OP_MercenaryDataRequest(const EQApplicationPacket *app)
|
||||
mml->MercTypeCount = mercTypeCount;
|
||||
if(mercTypeCount > 0)
|
||||
{
|
||||
for(std::list<MercType>::iterator mercTypeListItr = mercTypeList.begin(); mercTypeListItr != mercTypeList.end(); mercTypeListItr++) {
|
||||
for(std::list<MercType>::iterator mercTypeListItr = mercTypeList.begin(); mercTypeListItr != mercTypeList.end(); ++mercTypeListItr) {
|
||||
mml->MercGrades[i] = mercTypeListItr->Type; // DBStringID for Type
|
||||
i++;
|
||||
}
|
||||
@ -13523,7 +13523,7 @@ void Client::Handle_OP_MercenaryDataRequest(const EQApplicationPacket *app)
|
||||
if(mercCount > 0)
|
||||
{
|
||||
i = 0;
|
||||
for(std::list<MercData>::iterator mercListIter = mercDataList.begin(); mercListIter != mercDataList.end(); mercListIter++)
|
||||
for(std::list<MercData>::iterator mercListIter = mercDataList.begin(); mercListIter != mercDataList.end(); ++mercListIter)
|
||||
{
|
||||
mml->Mercs[i].MercID = mercListIter->MercTemplateID;
|
||||
mml->Mercs[i].MercType = mercListIter->MercType;
|
||||
@ -13540,7 +13540,7 @@ void Client::Handle_OP_MercenaryDataRequest(const EQApplicationPacket *app)
|
||||
mml->Mercs[i].MercUnk02 = 1;
|
||||
int mercStanceCount = 0;
|
||||
std::list<MercStanceInfo>::iterator iter = zone->merc_stance_list[mercListIter->MercTemplateID].begin();
|
||||
for(iter = zone->merc_stance_list[mercListIter->MercTemplateID].begin(); iter != zone->merc_stance_list[mercListIter->MercTemplateID].end(); iter++)
|
||||
for(iter = zone->merc_stance_list[mercListIter->MercTemplateID].begin(); iter != zone->merc_stance_list[mercListIter->MercTemplateID].end(); ++iter)
|
||||
{
|
||||
mercStanceCount++;
|
||||
}
|
||||
@ -13557,7 +13557,7 @@ void Client::Handle_OP_MercenaryDataRequest(const EQApplicationPacket *app)
|
||||
mml->Mercs[i].Stances[stanceindex].StanceIndex = stanceindex;
|
||||
mml->Mercs[i].Stances[stanceindex].Stance = (iter2->StanceID);
|
||||
stanceindex++;
|
||||
iter2++;
|
||||
++iter2;
|
||||
}
|
||||
}
|
||||
i++;
|
||||
@ -13692,7 +13692,7 @@ void Client::Handle_OP_MercenaryCommand(const EQApplicationPacket *app)
|
||||
std::list<MercStanceInfo>::iterator iter = mercStanceList.begin();
|
||||
while(iter != mercStanceList.end()) {
|
||||
numStances++;
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
MercTemplate* mercTemplate = zone->GetMercTemplate(GetMerc()->GetMercTemplateID());
|
||||
|
||||
@ -303,7 +303,7 @@ bool Client::Process() {
|
||||
if(CheckLosFN(GetTarget())){
|
||||
//client has built in los check, but auto fire does not.. done last.
|
||||
RangedAttack(GetTarget());
|
||||
if (CheckArcheryDoubleAttack())
|
||||
if (CheckDoubleRangedAttack())
|
||||
RangedAttack(GetTarget(), true);
|
||||
}
|
||||
else
|
||||
@ -904,7 +904,7 @@ void Client::BulkSendInventoryItems() {
|
||||
|
||||
EQApplicationPacket* outapp = new EQApplicationPacket(OP_CharInventory, size);
|
||||
uchar* ptr = outapp->pBuffer;
|
||||
for(itr = ser_items.begin(); itr != ser_items.end(); itr++){
|
||||
for(itr = ser_items.begin(); itr != ser_items.end(); ++itr){
|
||||
int length = itr->second.length();
|
||||
if(length > 5) {
|
||||
memcpy(ptr, itr->second.c_str(), length);
|
||||
@ -978,7 +978,7 @@ void Client::BulkSendMerchantInventory(int merchant_id, int npcid) {
|
||||
|
||||
uint32 i=1;
|
||||
uint8 handychance = 0;
|
||||
for(itr = merlist.begin();itr != merlist.end() && i<numItemSlots;itr++){
|
||||
for (itr = merlist.begin(); itr != merlist.end() && i < numItemSlots; ++itr) {
|
||||
MerchantList ml = *itr;
|
||||
if(GetLevel() < ml.level_required) {
|
||||
continue;
|
||||
@ -1027,7 +1027,7 @@ void Client::BulkSendMerchantInventory(int merchant_id, int npcid) {
|
||||
}
|
||||
std::list<TempMerchantList> origtmp_merlist = zone->tmpmerchanttable[npcid];
|
||||
tmp_merlist.clear();
|
||||
for(tmp_itr = origtmp_merlist.begin();tmp_itr != origtmp_merlist.end() && i<numItemSlots;tmp_itr++){
|
||||
for(tmp_itr = origtmp_merlist.begin();tmp_itr != origtmp_merlist.end() && i<numItemSlots;++tmp_itr){
|
||||
TempMerchantList ml = *tmp_itr;
|
||||
item=database.GetItem(ml.item);
|
||||
ml.slot=i;
|
||||
|
||||
@ -461,7 +461,7 @@ int command_init(void) {
|
||||
std::map<std::string,uint8> command_settings;
|
||||
std::map<std::string,uint8>::iterator itr;
|
||||
database.GetCommandSettings(command_settings);
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
if ((itr=command_settings.find(cur->first))!=command_settings.end())
|
||||
{
|
||||
cur->second->access = itr->second;
|
||||
@ -526,7 +526,7 @@ int command_add(const char *command_string, const char *desc, int access, CmdFun
|
||||
std::map<std::string, CommandRecord *>::iterator cur,end,del;
|
||||
cur = commandlist.begin();
|
||||
end = commandlist.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
if(cur->second->function == function) {
|
||||
int r;
|
||||
for(r = 1; r < CMDALIASES; r++) {
|
||||
@ -782,7 +782,7 @@ void command_help(Client *c, const Seperator *sep)
|
||||
cur = commandlist.begin();
|
||||
end = commandlist.end();
|
||||
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
if(sep->arg[1][0]) {
|
||||
if(cur->first.find(sep->arg[1]) == std::string::npos) {
|
||||
continue;
|
||||
@ -2961,7 +2961,7 @@ void command_peekinv(Client *c, const Seperator *sep)
|
||||
}
|
||||
}
|
||||
else {
|
||||
for(it=client->GetInv().cursor_begin();it!=client->GetInv().cursor_end();it++,i++) {
|
||||
for(it=client->GetInv().cursor_begin();it!=client->GetInv().cursor_end();++it,i++) {
|
||||
const ItemInst* inst = *it;
|
||||
item = (inst) ? inst->GetItem() : nullptr;
|
||||
if (c->GetClientVersion() >= EQClientSoF)
|
||||
@ -8299,7 +8299,7 @@ void command_rules(Client *c, const Seperator *sep) {
|
||||
std::map<int, std::string>::iterator cur, end;
|
||||
cur = sets.begin();
|
||||
end = sets.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
c->Message(0, "(%d) %s", cur->first, cur->second.c_str());
|
||||
}
|
||||
} else if(!strcasecmp(sep->arg[1], "reload")) {
|
||||
@ -8398,7 +8398,7 @@ void command_rules(Client *c, const Seperator *sep) {
|
||||
std::vector<const char *>::iterator cur, end;
|
||||
cur = rule_list.begin();
|
||||
end = rule_list.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
c->Message(0, " %s", *cur);
|
||||
}
|
||||
} else if(sep->argnum == 2) {
|
||||
@ -8414,7 +8414,7 @@ void command_rules(Client *c, const Seperator *sep) {
|
||||
std::vector<const char *>::iterator cur, end;
|
||||
cur = rule_list.begin();
|
||||
end = rule_list.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
c->Message(0, " %s", *cur);
|
||||
}
|
||||
} else {
|
||||
@ -8437,7 +8437,7 @@ void command_rules(Client *c, const Seperator *sep) {
|
||||
std::vector<const char *>::iterator cur, end;
|
||||
cur = rule_list.begin();
|
||||
end = rule_list.end();
|
||||
for(std::string tmp_value; cur != end; cur++) {
|
||||
for(std::string tmp_value; cur != end; ++cur) {
|
||||
if (RuleManager::Instance()->GetRule(*cur, tmp_value))
|
||||
c->Message(0, " %s - %s", *cur, tmp_value.c_str());
|
||||
}
|
||||
|
||||
@ -73,9 +73,11 @@ typedef enum { //focus types
|
||||
focusBlockNextSpell,
|
||||
focusHealRate,
|
||||
focusAdditionalDamage,
|
||||
focusReduceHeal,
|
||||
focusFcHealAmtIncoming,
|
||||
focusSpellEffectiveness,
|
||||
focusIncreaseNumHits,
|
||||
focusFcLimitUse,
|
||||
focusFcMute,
|
||||
focusCriticalHealRate,
|
||||
focusAdditionalHeal2,
|
||||
focusAdditionalHeal,
|
||||
@ -251,7 +253,7 @@ struct StatBonuses {
|
||||
int16 DualWieldChance; //i
|
||||
int16 DoubleAttackChance; //i
|
||||
int16 TripleAttackChance; //i
|
||||
int16 ArcheryDoubleAttack; //i
|
||||
int16 DoubleRangedAttack; //i
|
||||
int16 ResistSpellChance; //i
|
||||
int16 ResistFearChance; //i
|
||||
bool Fearless; //i
|
||||
@ -310,12 +312,17 @@ struct StatBonuses {
|
||||
int16 SkillDamageAmount2[HIGHEST_SKILL+2]; // Adds skill specific damage
|
||||
uint16 NegateAttacks[2]; // 0 = bool HasEffect 1 = Buff Slot
|
||||
uint16 MitigateMeleeRune[2]; // 0 = Mitigation value 1 = Buff Slot
|
||||
uint16 MitigateMeleeRuneSP[3]; // 0 = Mitigation value 1 = Buff Slot 2 = Min damage to trigger.
|
||||
uint16 MeleeThresholdGuard[3]; // 0 = Mitigation value 1 = Buff Slot 2 = Min damage to trigger.
|
||||
uint16 SpellThresholdGuard[3]; // 0 = Mitigation value 1 = Buff Slot 2 = Min damage to trigger.
|
||||
uint16 MitigateSpellRune[2]; // 0 = Mitigation value 1 = Buff Slot
|
||||
uint32 SpellOnAmtDmgTaken[3]; // 0 = Spell Effect ID 1 = Buff slot 2 = Damage Amount to Trigger
|
||||
uint32 TriggerMeleeThreshold[3]; // 0 = Spell Effect ID 1 = Buff slot 2 = Damage Amount to Trigger
|
||||
uint32 TriggerSpellThreshold[3]; // 0 = Spell Effect ID 1 = Buff slot 2 = Damage Amount to Trigger
|
||||
uint16 ManaAbsorbPercentDamage[2]; // 0 = Mitigation value 1 = Buff Slot
|
||||
int16 ShieldBlock; // Chance to Shield Block
|
||||
int16 BlockBehind; // Chance to Block Behind (with our without shield)
|
||||
bool CriticalRegenDecay; // increase critical regen chance, decays based on spell level cast
|
||||
bool CriticalHealDecay; // increase critical heal chance, decays based on spell level cast
|
||||
bool CriticalDotDecay; // increase critical dot chance, decays based on spell level cast
|
||||
//bool AbsorbMagicAtt; // Magic Rune *Need to be implemented for NegateEffect
|
||||
//bool MeleeRune; // Melee Rune *Need to be implemented for NegateEffect
|
||||
|
||||
|
||||
@ -389,7 +389,7 @@ Corpse::Corpse(Client* client, int32 in_rezexp)
|
||||
// this was mainly for client profile state reflection..should match db player inventory entries now.
|
||||
|
||||
iter_queue it;
|
||||
for(it=client->GetInv().cursor_begin(),i=8001; it!=client->GetInv().cursor_end(); it++,i++) {
|
||||
for(it=client->GetInv().cursor_begin(),i=8001; it!=client->GetInv().cursor_end(); ++it,i++) {
|
||||
item = *it;
|
||||
if((item && (!client->IsBecomeNPC())) || (item && client->IsBecomeNPC() && !item->GetItem()->NoRent))
|
||||
{
|
||||
@ -413,7 +413,7 @@ Corpse::Corpse(Client* client, int32 in_rezexp)
|
||||
ss << " OR ";
|
||||
}
|
||||
ss << "slotid=" << (*iter);
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
ss << ")";
|
||||
database.RunQuery(ss.str().c_str(), ss.str().length());
|
||||
@ -519,7 +519,7 @@ Corpse::~Corpse() {
|
||||
ItemList::iterator cur,end;
|
||||
cur = itemlist.begin();
|
||||
end = itemlist.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
ServerLootItem_Struct* item = *cur;
|
||||
safe_delete(item);
|
||||
}
|
||||
@ -598,7 +598,7 @@ bool Corpse::Save() {
|
||||
ItemList::iterator cur,end;
|
||||
cur = itemlist.begin();
|
||||
end = itemlist.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
ServerLootItem_Struct* item = *cur;
|
||||
memcpy((char*) &dbpc->items[x++], (char*) item, sizeof(player_lootitem::ServerLootItem_Struct));
|
||||
}
|
||||
@ -675,7 +675,7 @@ ServerLootItem_Struct* Corpse::GetItem(uint16 lootslot, ServerLootItem_Struct**
|
||||
ItemList::iterator cur,end;
|
||||
cur = itemlist.begin();
|
||||
end = itemlist.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
if((*cur)->lootslot == lootslot)
|
||||
{
|
||||
sitem = *cur;
|
||||
@ -689,7 +689,7 @@ ServerLootItem_Struct* Corpse::GetItem(uint16 lootslot, ServerLootItem_Struct**
|
||||
|
||||
cur = itemlist.begin();
|
||||
end = itemlist.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
sitem2 = *cur;
|
||||
if(sitem2->equipSlot >= bagstart && sitem2->equipSlot < bagstart + 10)
|
||||
{
|
||||
@ -705,7 +705,7 @@ uint32 Corpse::GetWornItem(int16 equipSlot) const {
|
||||
ItemList::const_iterator cur,end;
|
||||
cur = itemlist.begin();
|
||||
end = itemlist.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
ServerLootItem_Struct* item = *cur;
|
||||
if (item->equipSlot == equipSlot)
|
||||
{
|
||||
@ -725,7 +725,7 @@ void Corpse::RemoveItem(uint16 lootslot)
|
||||
ItemList::iterator cur,end;
|
||||
cur = itemlist.begin();
|
||||
end = itemlist.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
ServerLootItem_Struct* sitem = *cur;
|
||||
if (sitem->lootslot == lootslot)
|
||||
{
|
||||
@ -742,7 +742,7 @@ void Corpse::RemoveItem(ServerLootItem_Struct* item_data)
|
||||
ItemList::iterator cur,end;
|
||||
cur = itemlist.begin();
|
||||
end = itemlist.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
ServerLootItem_Struct* sitem = *cur;
|
||||
if (sitem == item_data)
|
||||
{
|
||||
@ -1006,7 +1006,7 @@ void Corpse::MakeLootRequestPackets(Client* client, const EQApplicationPacket* a
|
||||
else if(client->GetClientVersion() == EQClientTitanium) { corpselootlimit = 31; }
|
||||
else { corpselootlimit = 30; }
|
||||
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
ServerLootItem_Struct* item_data = *cur;
|
||||
item_data->lootslot = 0xFFFF;
|
||||
|
||||
@ -1046,7 +1046,7 @@ void Corpse::MakeLootRequestPackets(Client* client, const EQApplicationPacket* a
|
||||
|
||||
cur = itemlist.begin();
|
||||
end = itemlist.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
ServerLootItem_Struct* item_data = *cur;
|
||||
item = database.GetItem(item_data->item_id);
|
||||
LogFile->write(EQEMuLog::Debug, "Corpse Looting: %s was not sent to client loot window (corpse_dbid: %i, charname: %s(%s))", item->Name, GetDBID(), client->GetName(), client->GetGM() ? "GM" : "Owner");
|
||||
@ -1337,7 +1337,7 @@ void Corpse::QueryLoot(Client* to) {
|
||||
else if (to->GetClientVersion() == EQClientTitanium) { corpselootlimit = 31; }
|
||||
else { corpselootlimit = 30; }
|
||||
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
ServerLootItem_Struct* sitem = *cur;
|
||||
|
||||
if (IsPlayerCorpse()) {
|
||||
@ -1403,7 +1403,7 @@ bool Corpse::Summon(Client* client, bool spell, bool CheckDistance)
|
||||
{
|
||||
bool consented = false;
|
||||
std::list<std::string>::iterator itr;
|
||||
for(itr = client->consent_list.begin(); itr != client->consent_list.end(); itr++)
|
||||
for(itr = client->consent_list.begin(); itr != client->consent_list.end(); ++itr)
|
||||
{
|
||||
if(strcmp(this->GetOwnerName(), itr->c_str()) == 0)
|
||||
{
|
||||
|
||||
@ -205,6 +205,9 @@ int32 Client::GetActDoTDamage(uint16 spell_id, int32 value) {
|
||||
if (GetClass() == NECROMANCER && critChance > 0)
|
||||
critChance += 5;
|
||||
|
||||
if (spellbonuses.CriticalDotDecay)
|
||||
critChance += GetDecayEffectValue(spell_id, SE_CriticalDotDecay);
|
||||
|
||||
if (critChance > 0){
|
||||
if (MakeRandomInt(0, 99) < critChance){
|
||||
modifier += modifier*ratio/100;
|
||||
@ -237,7 +240,7 @@ int32 Client::Additional_Heal(uint16 spell_id)
|
||||
|
||||
heal_amt += GetFocusEffect(focusAdditionalHeal, spell_id);
|
||||
heal_amt += GetFocusEffect(focusAdditionalHeal2, spell_id);
|
||||
heal_amt -= GetFocusEffect(focusReduceHeal, spell_id);
|
||||
heal_amt -= GetFocusEffect(focusFcHealAmtIncoming, spell_id);
|
||||
|
||||
if (heal_amt){
|
||||
int duration = CalcBuffDuration(this, this, spell_id);
|
||||
@ -275,6 +278,9 @@ int32 Client::GetActSpellHealing(uint16 spell_id, int32 value) {
|
||||
|
||||
//Live AA - Healing Gift, Theft of Life
|
||||
chance += itembonuses.CriticalHealChance + spellbonuses.CriticalHealChance + aabonuses.CriticalHealChance;
|
||||
|
||||
if (spellbonuses.CriticalRegenDecay)
|
||||
chance += GetDecayEffectValue(spell_id, SE_CriticalHealDecay);
|
||||
|
||||
if(MakeRandomInt(0,99) < chance) {
|
||||
entity_list.MessageClose(this, false, 100, MT_SpellCrits, "%s performs an exceptional heal! (%d)", GetName(), ((value * modifier / 50) + heal_amt*2));
|
||||
@ -286,7 +292,11 @@ int32 Client::GetActSpellHealing(uint16 spell_id, int32 value) {
|
||||
}
|
||||
// Hots
|
||||
else {
|
||||
chance += itembonuses.CriticalHealChance + spellbonuses.CriticalHealChance + aabonuses.CriticalHealChance;
|
||||
chance += itembonuses.CriticalHealOverTime + spellbonuses.CriticalHealOverTime + aabonuses.CriticalHealOverTime;
|
||||
|
||||
if (spellbonuses.CriticalRegenDecay)
|
||||
chance += GetDecayEffectValue(spell_id, SE_CriticalHealDecay);
|
||||
|
||||
if(MakeRandomInt(0,99) < chance)
|
||||
return ((value * modifier / 50) + heal_amt*2);
|
||||
}
|
||||
|
||||
@ -131,7 +131,7 @@ public:
|
||||
hv_clear(hv);
|
||||
|
||||
// Iterate through key-value pairs, storing them in hash
|
||||
for (it = vals.begin(); it != vals.end(); it++)
|
||||
for (it = vals.begin(); it != vals.end(); ++it)
|
||||
{
|
||||
int keylen = static_cast<int>(it->first.length());
|
||||
|
||||
|
||||
@ -348,7 +348,7 @@ void EntityList::CheckGroupList (const char *fname, const int fline)
|
||||
{
|
||||
std::list<Group *>::iterator it;
|
||||
|
||||
for (it = group_list.begin(); it != group_list.end(); it++)
|
||||
for (it = group_list.begin(); it != group_list.end(); ++it)
|
||||
{
|
||||
if (*it == nullptr)
|
||||
{
|
||||
@ -394,7 +394,7 @@ void EntityList::QueueToGroupsForNPCHealthAA(Mob* sender, const EQApplicationPac
|
||||
while(iterator != group_list.end())
|
||||
{
|
||||
(*iterator)->QueueHPPacketsForNPCHealthAA(sender, app);
|
||||
iterator++;
|
||||
++iterator;
|
||||
}
|
||||
}
|
||||
|
||||
@ -410,7 +410,7 @@ void EntityList::RaidProcess() {
|
||||
{
|
||||
count++;
|
||||
(*iterator)->Process();
|
||||
iterator++;
|
||||
++iterator;
|
||||
}
|
||||
if(count == 0)
|
||||
net.raid_timer.Disable();//No groups in list, disable until one is added
|
||||
@ -1938,7 +1938,7 @@ Group* EntityList::GetGroupByMob(Mob* mob)
|
||||
if ((*iterator)->IsGroupMember(mob)) {
|
||||
return *iterator;
|
||||
}
|
||||
iterator++;
|
||||
++iterator;
|
||||
}
|
||||
#if EQDEBUG >= 5
|
||||
CheckGroupList (__FILE__, __LINE__);
|
||||
@ -1956,7 +1956,7 @@ Group* EntityList::GetGroupByLeaderName(const char* leader){
|
||||
if (!strcmp((*iterator)->GetLeaderName(), leader)) {
|
||||
return *iterator;
|
||||
}
|
||||
iterator++;
|
||||
++iterator;
|
||||
}
|
||||
#if EQDEBUG >= 5
|
||||
CheckGroupList (__FILE__, __LINE__);
|
||||
@ -1973,7 +1973,7 @@ Group* EntityList::GetGroupByID(uint32 group_id){
|
||||
if ((*iterator)->GetID() == group_id) {
|
||||
return *iterator;
|
||||
}
|
||||
iterator++;
|
||||
++iterator;
|
||||
}
|
||||
#if EQDEBUG >= 5
|
||||
CheckGroupList (__FILE__, __LINE__);
|
||||
@ -1991,7 +1991,7 @@ Group* EntityList::GetGroupByClient(Client* client)
|
||||
if ((*iterator)->IsGroupMember(client->CastToMob())) {
|
||||
return *iterator;
|
||||
}
|
||||
iterator++;
|
||||
++iterator;
|
||||
}
|
||||
#if EQDEBUG >= 5
|
||||
CheckGroupList (__FILE__, __LINE__);
|
||||
@ -2011,7 +2011,7 @@ Raid* EntityList::GetRaidByLeaderName(const char *leader){
|
||||
return *iterator;
|
||||
}
|
||||
}
|
||||
iterator++;
|
||||
++iterator;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -2025,7 +2025,7 @@ Raid* EntityList::GetRaidByID(uint32 id){
|
||||
if ((*iterator)->GetID() == id) {
|
||||
return *iterator;
|
||||
}
|
||||
iterator++;
|
||||
++iterator;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -2045,7 +2045,7 @@ Raid* EntityList::GetRaidByClient(Client* client)
|
||||
return *iterator;
|
||||
}
|
||||
}
|
||||
iterator++;
|
||||
++iterator;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -2065,7 +2065,7 @@ Raid* EntityList::GetRaidByMob(Mob* mob) {
|
||||
return *iterator;
|
||||
}*/
|
||||
}
|
||||
iterator++;
|
||||
++iterator;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -2507,7 +2507,7 @@ bool EntityList::RemoveGroup(uint32 delete_id){
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
iterator++;
|
||||
++iterator;
|
||||
}
|
||||
#if EQDEBUG >= 5
|
||||
CheckGroupList (__FILE__, __LINE__);
|
||||
@ -2526,7 +2526,7 @@ bool EntityList::RemoveRaid(uint32 delete_id){
|
||||
raid_list.remove (*iterator);
|
||||
return true;
|
||||
}
|
||||
iterator++;
|
||||
++iterator;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -3821,7 +3821,7 @@ bool EntityList::LimitCheckType(uint32 npc_type, int count) {
|
||||
cur = npc_limit_list.begin();
|
||||
end = npc_limit_list.end();
|
||||
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
if(cur->second.npc_type == npc_type) {
|
||||
count--;
|
||||
if(count == 0) {
|
||||
@ -3842,7 +3842,7 @@ bool EntityList::LimitCheckGroup(uint32 spawngroup_id, int count) {
|
||||
cur = npc_limit_list.begin();
|
||||
end = npc_limit_list.end();
|
||||
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
if(cur->second.spawngroup_id == spawngroup_id) {
|
||||
count--;
|
||||
if(count == 0) {
|
||||
@ -3864,7 +3864,7 @@ bool EntityList::LimitCheckBoth(uint32 npc_type, uint32 spawngroup_id, int group
|
||||
cur = npc_limit_list.begin();
|
||||
end = npc_limit_list.end();
|
||||
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
if(cur->second.npc_type == npc_type) {
|
||||
type_count--;
|
||||
if(type_count == 0) {
|
||||
|
||||
@ -177,7 +177,7 @@ uint8 *ZoneGuildManager::MakeGuildMembers(uint32 guild_id, const char *prefix_na
|
||||
end = members.end();
|
||||
uint32 name_len = 0;
|
||||
uint32 note_len = 0;
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
ci = *cur;
|
||||
name_len += ci->char_name.length();
|
||||
note_len += ci->public_note.length();
|
||||
@ -205,7 +205,7 @@ uint8 *ZoneGuildManager::MakeGuildMembers(uint32 guild_id, const char *prefix_na
|
||||
|
||||
cur = members.begin();
|
||||
end = members.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
ci = *cur;
|
||||
|
||||
//the order we set things here must match the struct
|
||||
@ -247,7 +247,7 @@ void ZoneGuildManager::ListGuilds(Client *c) const {
|
||||
cur = m_guilds.begin();
|
||||
end = m_guilds.end();
|
||||
int r = 0;
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
leadername[0] = '\0';
|
||||
database.GetCharName(cur->second->leader_char_id, leadername);
|
||||
if (leadername[0] == '\0')
|
||||
|
||||
@ -2236,7 +2236,7 @@ bool Merc::AICastSpell(int8 iChance, int32 iSpellTypes) {
|
||||
|
||||
std::list<MercSpell> buffSpellList = GetMercSpellsBySpellType(this, SpellType_Buff);
|
||||
|
||||
for(std::list<MercSpell>::iterator itr = buffSpellList.begin(); itr != buffSpellList.end(); itr++) {
|
||||
for(std::list<MercSpell>::iterator itr = buffSpellList.begin(); itr != buffSpellList.end(); ++itr) {
|
||||
MercSpell selectedMercSpell = *itr;
|
||||
|
||||
if(!((spells[selectedMercSpell.spellid].targettype == ST_Target || spells[selectedMercSpell.spellid].targettype == ST_Pet ||
|
||||
@ -2396,7 +2396,7 @@ bool Merc::AICastSpell(int8 iChance, int32 iSpellTypes) {
|
||||
std::list<MercSpell> buffSpellList = GetMercSpellsBySpellType(this, SpellType_InCombatBuff);
|
||||
Mob* tar = this;
|
||||
|
||||
for(std::list<MercSpell>::iterator itr = buffSpellList.begin(); itr != buffSpellList.end(); itr++) {
|
||||
for(std::list<MercSpell>::iterator itr = buffSpellList.begin(); itr != buffSpellList.end(); ++itr) {
|
||||
MercSpell selectedMercSpell = *itr;
|
||||
|
||||
if(!(spells[selectedMercSpell.spellid].targettype == ST_Self)) {
|
||||
@ -2541,7 +2541,7 @@ void Merc::CheckHateList() {
|
||||
std::list<NPC*> npc_list;
|
||||
entity_list.GetNPCList(npc_list);
|
||||
|
||||
for(std::list<NPC*>::iterator itr = npc_list.begin(); itr != npc_list.end(); itr++) {
|
||||
for(std::list<NPC*>::iterator itr = npc_list.begin(); itr != npc_list.end(); ++itr) {
|
||||
NPC* npc = *itr;
|
||||
float dist = npc->DistNoRootNoZ(*this);
|
||||
int radius = RuleI(Mercs, AggroRadius);
|
||||
@ -2594,7 +2594,7 @@ bool Merc::CheckAENuke(Merc* caster, Mob* tar, uint16 spell_id, uint8 &numTarget
|
||||
std::list<NPC*> npc_list;
|
||||
entity_list.GetNPCList(npc_list);
|
||||
|
||||
for(std::list<NPC*>::iterator itr = npc_list.begin(); itr != npc_list.end(); itr++) {
|
||||
for(std::list<NPC*>::iterator itr = npc_list.begin(); itr != npc_list.end(); ++itr) {
|
||||
NPC* npc = *itr;
|
||||
|
||||
if(npc->DistNoRootNoZ(*tar) <= spells[spell_id].aoerange * spells[spell_id].aoerange) {
|
||||
@ -2868,7 +2868,7 @@ int32 Merc::Additional_Heal(uint16 spell_id)
|
||||
|
||||
heal_amt += GetFocusEffect(focusAdditionalHeal, spell_id);
|
||||
heal_amt += GetFocusEffect(focusAdditionalHeal2, spell_id);
|
||||
heal_amt -= GetFocusEffect(focusReduceHeal, spell_id);
|
||||
heal_amt += GetFocusEffect(focusFcHealAmtIncoming, spell_id);
|
||||
|
||||
if (heal_amt){
|
||||
int duration = CalcBuffDuration(this, this, spell_id);
|
||||
@ -3311,7 +3311,7 @@ MercSpell Merc::GetBestMercSpellForVeryFastHeal(Merc* caster) {
|
||||
if(caster) {
|
||||
std::list<MercSpell> mercSpellList = GetMercSpellsForSpellEffect(caster, SE_CurrentHP);
|
||||
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); mercSpellListItr++) {
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); ++mercSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if(IsVeryFastHealSpell(mercSpellListItr->spellid)
|
||||
&& CheckSpellRecastTimers(caster, mercSpellListItr->spellid)) {
|
||||
@ -3343,7 +3343,7 @@ MercSpell Merc::GetBestMercSpellForFastHeal(Merc* caster) {
|
||||
if(caster) {
|
||||
std::list<MercSpell> mercSpellList = GetMercSpellsForSpellEffect(caster, SE_CurrentHP);
|
||||
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); mercSpellListItr++) {
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); ++mercSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if(IsFastHealSpell(mercSpellListItr->spellid)
|
||||
&& CheckSpellRecastTimers(caster, mercSpellListItr->spellid)) {
|
||||
@ -3375,7 +3375,7 @@ MercSpell Merc::GetBestMercSpellForHealOverTime(Merc* caster) {
|
||||
if(caster) {
|
||||
std::list<MercSpell> mercHoTSpellList = GetMercSpellsForSpellEffect(caster, SE_HealOverTime);
|
||||
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercHoTSpellList.begin(); mercSpellListItr != mercHoTSpellList.end(); mercSpellListItr++) {
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercHoTSpellList.begin(); mercSpellListItr != mercHoTSpellList.end(); ++mercSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if(IsHealOverTimeSpell(mercSpellListItr->spellid)) {
|
||||
|
||||
@ -3415,7 +3415,7 @@ MercSpell Merc::GetBestMercSpellForPercentageHeal(Merc* caster) {
|
||||
if(caster && caster->AI_HasSpells()) {
|
||||
std::list<MercSpell> mercSpellList = GetMercSpellsForSpellEffect(caster, SE_CurrentHP);
|
||||
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); mercSpellListItr++) {
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); ++mercSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if(IsCompleteHealSpell(mercSpellListItr->spellid)
|
||||
&& CheckSpellRecastTimers(caster, mercSpellListItr->spellid)) {
|
||||
@ -3447,7 +3447,7 @@ MercSpell Merc::GetBestMercSpellForRegularSingleTargetHeal(Merc* caster) {
|
||||
if(caster) {
|
||||
std::list<MercSpell> mercSpellList = GetMercSpellsForSpellEffect(caster, SE_CurrentHP);
|
||||
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); mercSpellListItr++) {
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); ++mercSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if(IsRegularSingleTargetHealSpell(mercSpellListItr->spellid)
|
||||
&& CheckSpellRecastTimers(caster, mercSpellListItr->spellid)) {
|
||||
@ -3479,7 +3479,7 @@ MercSpell Merc::GetFirstMercSpellForSingleTargetHeal(Merc* caster) {
|
||||
if(caster) {
|
||||
std::list<MercSpell> mercSpellList = GetMercSpellsForSpellEffect(caster, SE_CurrentHP);
|
||||
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); mercSpellListItr++) {
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); ++mercSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if((IsRegularSingleTargetHealSpell(mercSpellListItr->spellid)
|
||||
|| IsFastHealSpell(mercSpellListItr->spellid))
|
||||
@ -3512,7 +3512,7 @@ MercSpell Merc::GetBestMercSpellForGroupHeal(Merc* caster) {
|
||||
if(caster) {
|
||||
std::list<MercSpell> mercSpellList = GetMercSpellsForSpellEffect(caster, SE_CurrentHP);
|
||||
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); mercSpellListItr++) {
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); ++mercSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if(IsRegularGroupHealSpell(mercSpellListItr->spellid)
|
||||
&& CheckSpellRecastTimers(caster, mercSpellListItr->spellid)) {
|
||||
@ -3544,7 +3544,7 @@ MercSpell Merc::GetBestMercSpellForGroupHealOverTime(Merc* caster) {
|
||||
if(caster) {
|
||||
std::list<MercSpell> mercHoTSpellList = GetMercSpellsForSpellEffect(caster, SE_HealOverTime);
|
||||
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercHoTSpellList.begin(); mercSpellListItr != mercHoTSpellList.end(); mercSpellListItr++) {
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercHoTSpellList.begin(); mercSpellListItr != mercHoTSpellList.end(); ++mercSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if(IsGroupHealOverTimeSpell(mercSpellListItr->spellid)) {
|
||||
|
||||
@ -3584,7 +3584,7 @@ MercSpell Merc::GetBestMercSpellForGroupCompleteHeal(Merc* caster) {
|
||||
if(caster) {
|
||||
std::list<MercSpell> mercSpellList = GetMercSpellsForSpellEffect(caster, SE_CompleteHeal);
|
||||
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); mercSpellListItr++) {
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); ++mercSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if(IsGroupCompleteHealSpell(mercSpellListItr->spellid)
|
||||
&& CheckSpellRecastTimers(caster, mercSpellListItr->spellid)) {
|
||||
@ -3616,7 +3616,7 @@ MercSpell Merc::GetBestMercSpellForAETaunt(Merc* caster) {
|
||||
if(caster) {
|
||||
std::list<MercSpell> mercSpellList = GetMercSpellsForSpellEffect(caster, SE_Taunt);
|
||||
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); mercSpellListItr++) {
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); ++mercSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if((spells[mercSpellListItr->spellid].targettype == ST_AECaster
|
||||
|| spells[mercSpellListItr->spellid].targettype == ST_AETarget
|
||||
@ -3650,7 +3650,7 @@ MercSpell Merc::GetBestMercSpellForTaunt(Merc* caster) {
|
||||
if(caster) {
|
||||
std::list<MercSpell> mercSpellList = GetMercSpellsForSpellEffect(caster, SE_Taunt);
|
||||
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); mercSpellListItr++) {
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); ++mercSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if((spells[mercSpellListItr->spellid].targettype == ST_Target)
|
||||
&& CheckSpellRecastTimers(caster, mercSpellListItr->spellid)) {
|
||||
@ -3682,7 +3682,7 @@ MercSpell Merc::GetBestMercSpellForHate(Merc* caster) {
|
||||
if(caster) {
|
||||
std::list<MercSpell> mercSpellList = GetMercSpellsForSpellEffect(caster, SE_Calm);
|
||||
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); mercSpellListItr++) {
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); ++mercSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if(CheckSpellRecastTimers(caster, mercSpellListItr->spellid)) {
|
||||
result.spellid = mercSpellListItr->spellid;
|
||||
@ -3738,7 +3738,7 @@ MercSpell Merc::GetBestMercSpellForCure(Merc* caster, Mob *tar) {
|
||||
|
||||
//Check for group cure first
|
||||
if(countNeedsCured > 2) {
|
||||
for(std::list<MercSpell>::iterator itr = cureList.begin(); itr != cureList.end(); itr++) {
|
||||
for(std::list<MercSpell>::iterator itr = cureList.begin(); itr != cureList.end(); ++itr) {
|
||||
MercSpell selectedMercSpell = *itr;
|
||||
|
||||
if(IsGroupSpell(itr->spellid) && CheckSpellRecastTimers(caster, itr->spellid)) {
|
||||
@ -3778,7 +3778,7 @@ MercSpell Merc::GetBestMercSpellForCure(Merc* caster, Mob *tar) {
|
||||
|
||||
//no group cure for target- try to find single target spell
|
||||
if(!spellSelected) {
|
||||
for(std::list<MercSpell>::iterator itr = cureList.begin(); itr != cureList.end(); itr++) {
|
||||
for(std::list<MercSpell>::iterator itr = cureList.begin(); itr != cureList.end(); ++itr) {
|
||||
MercSpell selectedMercSpell = *itr;
|
||||
|
||||
if(CheckSpellRecastTimers(caster, itr->spellid)) {
|
||||
@ -3834,7 +3834,7 @@ MercSpell Merc::GetBestMercSpellForStun(Merc* caster) {
|
||||
if(caster) {
|
||||
std::list<MercSpell> mercSpellList = GetMercSpellsForSpellEffect(caster, SE_Stun);
|
||||
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); mercSpellListItr++) {
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); ++mercSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if(CheckSpellRecastTimers(caster, mercSpellListItr->spellid)) {
|
||||
result.spellid = mercSpellListItr->spellid;
|
||||
@ -3929,7 +3929,7 @@ MercSpell Merc::GetBestMercSpellForTargetedAENuke(Merc* caster, Mob* tar) {
|
||||
if(caster) {
|
||||
std::list<MercSpell> mercSpellList = GetMercSpellsBySpellType(caster, SpellType_Nuke);
|
||||
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); mercSpellListItr++) {
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); ++mercSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if(IsAENukeSpell(mercSpellListItr->spellid) && !IsAERainNukeSpell(mercSpellListItr->spellid)
|
||||
&& !IsPBAENukeSpell(mercSpellListItr->spellid) && CheckSpellRecastTimers(caster, mercSpellListItr->spellid)) {
|
||||
@ -3980,7 +3980,7 @@ MercSpell Merc::GetBestMercSpellForPBAENuke(Merc* caster, Mob* tar) {
|
||||
if(caster) {
|
||||
std::list<MercSpell> mercSpellList = GetMercSpellsBySpellType(caster, SpellType_Nuke);
|
||||
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); mercSpellListItr++) {
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); ++mercSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if(IsPBAENukeSpell(mercSpellListItr->spellid) && CheckSpellRecastTimers(caster, mercSpellListItr->spellid)) {
|
||||
uint8 numTargets = 0;
|
||||
@ -4030,7 +4030,7 @@ MercSpell Merc::GetBestMercSpellForAERainNuke(Merc* caster, Mob* tar) {
|
||||
if(caster) {
|
||||
std::list<MercSpell> mercSpellList = GetMercSpellsBySpellType(caster, SpellType_Nuke);
|
||||
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); mercSpellListItr++) {
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); ++mercSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if(IsAERainNukeSpell(mercSpellListItr->spellid) && MakeRandomInt(1, 100) <= castChance && CheckSpellRecastTimers(caster, mercSpellListItr->spellid)) {
|
||||
uint8 numTargets = 0;
|
||||
@ -4068,7 +4068,7 @@ MercSpell Merc::GetBestMercSpellForNuke(Merc* caster) {
|
||||
if(caster) {
|
||||
std::list<MercSpell> mercSpellList = GetMercSpellsBySpellType(caster, SpellType_Nuke);
|
||||
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); mercSpellListItr++) {
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); ++mercSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
if(IsPureNukeSpell(mercSpellListItr->spellid) && !IsAENukeSpell(mercSpellListItr->spellid)
|
||||
&& MakeRandomInt(1, 100) <= castChance && CheckSpellRecastTimers(caster, mercSpellListItr->spellid)) {
|
||||
@ -4111,7 +4111,7 @@ MercSpell Merc::GetBestMercSpellForNukeByTargetResists(Merc* caster, Mob* target
|
||||
|
||||
std::list<MercSpell> mercSpellList = GetMercSpellsBySpellType(caster, SpellType_Nuke);
|
||||
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); mercSpellListItr++) {
|
||||
for(std::list<MercSpell>::iterator mercSpellListItr = mercSpellList.begin(); mercSpellListItr != mercSpellList.end(); ++mercSpellListItr) {
|
||||
// Assuming all the spells have been loaded into this list by level and in descending order
|
||||
|
||||
if(IsPureNukeSpell(mercSpellListItr->spellid) && !IsAENukeSpell(mercSpellListItr->spellid) && CheckSpellRecastTimers(caster, mercSpellListItr->spellid)) {
|
||||
@ -4350,7 +4350,7 @@ bool Merc::CheckAETaunt() {
|
||||
std::list<NPC*> npc_list;
|
||||
entity_list.GetNPCList(npc_list);
|
||||
|
||||
for(std::list<NPC*>::iterator itr = npc_list.begin(); itr != npc_list.end(); itr++) {
|
||||
for(std::list<NPC*>::iterator itr = npc_list.begin(); itr != npc_list.end(); ++itr) {
|
||||
NPC* npc = *itr;
|
||||
float dist = npc->DistNoRootNoZ(*this);
|
||||
int range = GetActSpellRange(mercSpell.spellid, spells[mercSpell.spellid].range);
|
||||
@ -4436,7 +4436,7 @@ bool Merc::CheckConfidence() {
|
||||
std::list<NPC*> npc_list;
|
||||
entity_list.GetNPCList(npc_list);
|
||||
|
||||
for(std::list<NPC*>::iterator itr = npc_list.begin(); itr != npc_list.end(); itr++) {
|
||||
for(std::list<NPC*>::iterator itr = npc_list.begin(); itr != npc_list.end(); ++itr) {
|
||||
NPC* mob = *itr;
|
||||
float ConRating = 1.0;
|
||||
int CurrentCon = 0;
|
||||
@ -4920,7 +4920,7 @@ bool Merc::LoadMercSpells() {
|
||||
int16 attack_proc_spell = -1;
|
||||
int8 proc_chance = 0;
|
||||
|
||||
for (std::list<MercSpellEntry>::iterator mercSpellEntryItr = spellList.begin(); mercSpellEntryItr != spellList.end(); mercSpellEntryItr++) {
|
||||
for (std::list<MercSpellEntry>::iterator mercSpellEntryItr = spellList.begin(); mercSpellEntryItr != spellList.end(); ++mercSpellEntryItr) {
|
||||
if (proficiency_id == mercSpellEntryItr->proficiencyid && GetLevel() >= mercSpellEntryItr->minlevel && GetLevel() <= mercSpellEntryItr->maxlevel && mercSpellEntryItr->spellid > 0) {
|
||||
MercSpell mercSpell;
|
||||
|
||||
@ -5932,7 +5932,7 @@ int NPC::GetNumMercTypes(uint32 clientVersion)
|
||||
int count = 0;
|
||||
std::list<MercType> mercTypeList = GetMercTypesList();
|
||||
|
||||
for(std::list<MercType>::iterator mercTypeListItr = mercTypeList.begin(); mercTypeListItr != mercTypeList.end(); mercTypeListItr++) {
|
||||
for(std::list<MercType>::iterator mercTypeListItr = mercTypeList.begin(); mercTypeListItr != mercTypeList.end(); ++mercTypeListItr) {
|
||||
if(mercTypeListItr->ClientVersion <= clientVersion)
|
||||
count++;
|
||||
}
|
||||
@ -5945,7 +5945,7 @@ int NPC::GetNumMercs(uint32 clientVersion)
|
||||
int count = 0;
|
||||
std::list<MercData> mercDataList = GetMercsList();
|
||||
|
||||
for(std::list<MercData>::iterator mercListItr = mercDataList.begin(); mercListItr != mercDataList.end(); mercListItr++) {
|
||||
for(std::list<MercData>::iterator mercListItr = mercDataList.begin(); mercListItr != mercDataList.end(); ++mercListItr) {
|
||||
if(mercListItr->ClientVersion <= clientVersion)
|
||||
count++;
|
||||
}
|
||||
@ -5957,7 +5957,7 @@ std::list<MercType> NPC::GetMercTypesList(uint32 clientVersion) {
|
||||
std::list<MercType> result;
|
||||
|
||||
if(GetNumMercTypes() > 0) {
|
||||
for(std::list<MercType>::iterator mercTypeListItr = mercTypeList.begin(); mercTypeListItr != mercTypeList.end(); mercTypeListItr++) {
|
||||
for(std::list<MercType>::iterator mercTypeListItr = mercTypeList.begin(); mercTypeListItr != mercTypeList.end(); ++mercTypeListItr) {
|
||||
if(mercTypeListItr->ClientVersion <= clientVersion) {
|
||||
MercType mercType;
|
||||
mercType.Type = mercTypeListItr->Type;
|
||||
@ -5974,7 +5974,7 @@ std::list<MercData> NPC::GetMercsList(uint32 clientVersion) {
|
||||
std::list<MercData> result;
|
||||
|
||||
if(GetNumMercs() > 0) {
|
||||
for(std::list<MercData>::iterator mercListItr = mercDataList.begin(); mercListItr != mercDataList.end(); mercListItr++) {
|
||||
for(std::list<MercData>::iterator mercListItr = mercDataList.begin(); mercListItr != mercDataList.end(); ++mercListItr) {
|
||||
if(mercListItr->ClientVersion <= clientVersion) {
|
||||
MercTemplate *merc_template = zone->GetMercTemplate(mercListItr->MercTemplateID);
|
||||
|
||||
|
||||
49
zone/mob.cpp
49
zone/mob.cpp
@ -3458,7 +3458,7 @@ bool Mob::TryFadeEffect(int slot)
|
||||
for(int i = 0; i < EFFECT_COUNT; i++)
|
||||
{
|
||||
if (spells[buffs[slot].spellid].effectid[i] == SE_CastOnWearoff || spells[buffs[slot].spellid].effectid[i] == SE_EffectOnFade
|
||||
|| spells[buffs[slot].spellid].effectid[i] == SE_SpellOnAmtDmgTaken)
|
||||
|| spells[buffs[slot].spellid].effectid[i] == SE_TriggerMeleeThreshold)
|
||||
{
|
||||
uint16 spell_id = spells[buffs[slot].spellid].base[i];
|
||||
BuffFadeBySlot(slot);
|
||||
@ -4611,10 +4611,10 @@ int Mob::SlowMitigation(bool slow_msg, Mob *caster, int slow_value)
|
||||
if ((int_slow_mitigation > 0.0f) && (int_slow_mitigation < 26.0f))
|
||||
caster->Message(262, "Your spell was mostly successful");
|
||||
|
||||
else if ((int_slow_mitigation > 26.0f) && (int_slow_mitigation < 74.0f))
|
||||
else if ((int_slow_mitigation >= 26.0f) && (int_slow_mitigation < 74.0f))
|
||||
caster->Message(262, "Your spell was partially successful");
|
||||
|
||||
else if ((int_slow_mitigation > 74.0f) && (int_slow_mitigation < 101.0f))
|
||||
else if ((int_slow_mitigation >= 74.0f) && (int_slow_mitigation < 101.0f))
|
||||
caster->Message(262, "Your spell was slightly successful");
|
||||
}
|
||||
return 0;
|
||||
@ -4657,9 +4657,6 @@ bool Mob::PassLimitToSkill(uint16 spell_id, uint16 skill) {
|
||||
if (!IsValidSpell(spell_id))
|
||||
return false;
|
||||
|
||||
if (!IsEffectInSpell(spell_id, SE_LimitToSkill))
|
||||
return false;
|
||||
|
||||
for (int i = 0; i < EFFECT_COUNT; i++) {
|
||||
if (spells[spell_id].effectid[i] == SE_LimitToSkill){
|
||||
if (spells[spell_id].base[i] == skill){
|
||||
@ -4670,6 +4667,44 @@ bool Mob::PassLimitToSkill(uint16 spell_id, uint16 skill) {
|
||||
return false;
|
||||
}
|
||||
|
||||
int8 Mob::GetDecayEffectValue(uint16 spell_id, uint16 spelleffect) {
|
||||
|
||||
if (!IsValidSpell(spell_id))
|
||||
return false;
|
||||
|
||||
int spell_level = spells[spell_id].classes[(GetClass()%16) - 1];
|
||||
int effect_value = 0;
|
||||
int lvlModifier = 100;
|
||||
|
||||
int buff_count = GetMaxTotalSlots();
|
||||
for (int slot = 0; slot < buff_count; slot++){
|
||||
if (IsValidSpell(buffs[slot].spellid)){
|
||||
for (int i = 0; i < EFFECT_COUNT; i++){
|
||||
if(spells[buffs[slot].spellid].effectid[i] == spelleffect) {
|
||||
|
||||
int critchance = spells[buffs[slot].spellid].base[i];
|
||||
int decay = spells[buffs[slot].spellid].base2[i];
|
||||
int lvldiff = spell_level - spells[buffs[slot].spellid].max[i];
|
||||
|
||||
if(lvldiff > 0 && decay > 0)
|
||||
{
|
||||
lvlModifier -= decay*lvldiff;
|
||||
if (lvlModifier > 0){
|
||||
critchance = (critchance*lvlModifier)/100;
|
||||
effect_value += critchance;
|
||||
}
|
||||
}
|
||||
|
||||
else
|
||||
effect_value += critchance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return effect_value;
|
||||
}
|
||||
|
||||
// Faction Mods for Alliance type spells
|
||||
void Mob::AddFactionBonus(uint32 pFactionID,int32 bonus) {
|
||||
std::map <uint32, int32> :: const_iterator faction_bonus;
|
||||
@ -4732,7 +4767,7 @@ int32 Mob::GetItemFactionBonus(uint32 pFactionID) {
|
||||
|
||||
void Mob::ClearItemFactionBonuses() {
|
||||
std::map <uint32, int32> :: iterator itr;
|
||||
for(itr = item_faction_bonuses.begin(); itr != item_faction_bonuses.end(); itr++)
|
||||
for(itr = item_faction_bonuses.begin(); itr != item_faction_bonuses.end(); ++itr)
|
||||
{
|
||||
item_faction_bonuses.erase(itr->first);
|
||||
}
|
||||
|
||||
@ -570,6 +570,7 @@ public:
|
||||
bool CanBlockSpell() const { return(spellbonuses.BlockNextSpell); }
|
||||
bool DoHPToManaCovert(uint16 mana_cost = 0);
|
||||
int32 ApplySpellEffectiveness(Mob* caster, int16 spell_id, int32 value, bool IsBard = false);
|
||||
int8 GetDecayEffectValue(uint16 spell_id, uint16 spelleffect);
|
||||
|
||||
void ModSkillDmgTaken(SkillUseTypes skill_num, int value);
|
||||
int16 GetModSkillDmgTaken(const SkillUseTypes skill_num);
|
||||
@ -655,7 +656,6 @@ public:
|
||||
|
||||
int32 ReduceDamage(int32 damage);
|
||||
int32 AffectMagicalDamage(int32 damage, uint16 spell_id, const bool iBuffTic, Mob* attacker);
|
||||
int32 ReduceAllDamage(int32 damage);
|
||||
|
||||
virtual void DoSpecialAttackDamage(Mob *who, SkillUseTypes skill, int32 max_damage, int32 min_damage = 1, int32 hate_override = -1, int ReuseTime = 10, bool HitChance=false);
|
||||
virtual void DoThrowingAttackDmg(Mob* other, const ItemInst* RangeWeapon=nullptr, const Item_Struct* item=nullptr, uint16 weapon_damage=0, int16 chance_mod=0,int16 focus=0);
|
||||
|
||||
24
zone/npc.cpp
24
zone/npc.cpp
@ -280,12 +280,8 @@ NPC::NPC(const NPCType* d, Spawn2* in_respawn, float x, float y, float z, float
|
||||
trap_list = trap_ent_iter->second;
|
||||
if(trap_list.size() > 0)
|
||||
{
|
||||
uint16 count = MakeRandomInt(0, (trap_list.size()-1));
|
||||
std::list<LDoNTrapTemplate*>::iterator trap_list_iter = trap_list.begin();
|
||||
for(int x = 0; x < count; ++x)
|
||||
{
|
||||
trap_list_iter++;
|
||||
}
|
||||
std::advance(trap_list_iter, MakeRandomInt(0, trap_list.size() - 1));
|
||||
LDoNTrapTemplate* tt = (*trap_list_iter);
|
||||
if(tt)
|
||||
{
|
||||
@ -374,7 +370,7 @@ NPC::~NPC()
|
||||
ItemList::iterator cur,end;
|
||||
cur = itemlist.begin();
|
||||
end = itemlist.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
ServerLootItem_Struct* item = *cur;
|
||||
safe_delete(item);
|
||||
}
|
||||
@ -385,7 +381,7 @@ NPC::~NPC()
|
||||
std::list<struct NPCFaction*>::iterator cur,end;
|
||||
cur = faction_list.begin();
|
||||
end = faction_list.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
struct NPCFaction* fac = *cur;
|
||||
safe_delete(fac);
|
||||
}
|
||||
@ -424,7 +420,7 @@ ServerLootItem_Struct* NPC::GetItem(int slot_id) {
|
||||
ItemList::iterator cur,end;
|
||||
cur = itemlist.begin();
|
||||
end = itemlist.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
ServerLootItem_Struct* item = *cur;
|
||||
if (item->equipSlot == slot_id) {
|
||||
return item;
|
||||
@ -437,7 +433,7 @@ void NPC::RemoveItem(uint32 item_id, uint16 quantity, uint16 slot) {
|
||||
ItemList::iterator cur,end;
|
||||
cur = itemlist.begin();
|
||||
end = itemlist.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
ServerLootItem_Struct* item = *cur;
|
||||
if (item->item_id == item_id && slot <= 0 && quantity <= 0) {
|
||||
itemlist.erase(cur);
|
||||
@ -477,7 +473,7 @@ void NPC::CheckMinMaxLevel(Mob *them)
|
||||
cur = itemlist.erase(cur);
|
||||
continue;
|
||||
}
|
||||
cur++;
|
||||
++cur;
|
||||
}
|
||||
|
||||
}
|
||||
@ -486,7 +482,7 @@ void NPC::ClearItemList() {
|
||||
ItemList::iterator cur,end;
|
||||
cur = itemlist.begin();
|
||||
end = itemlist.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
ServerLootItem_Struct* item = *cur;
|
||||
safe_delete(item);
|
||||
}
|
||||
@ -500,7 +496,7 @@ void NPC::QueryLoot(Client* to) {
|
||||
ItemList::iterator cur,end;
|
||||
cur = itemlist.begin();
|
||||
end = itemlist.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
const Item_Struct* item = database.GetItem((*cur)->item_id);
|
||||
if (item)
|
||||
if (to->GetClientVersion() >= EQClientRoF)
|
||||
@ -1286,7 +1282,7 @@ void NPC::PickPocket(Client* thief) {
|
||||
ItemList::iterator cur,end;
|
||||
cur = itemlist.begin();
|
||||
end = itemlist.end();
|
||||
for(; cur != end && x < 49; cur++) {
|
||||
for(; cur != end && x < 49; ++cur) {
|
||||
ServerLootItem_Struct* citem = *cur;
|
||||
const Item_Struct* item = database.GetItem(citem->item_id);
|
||||
if (item)
|
||||
@ -2351,7 +2347,7 @@ FACTION_VALUE NPC::CheckNPCFactionAlly(int32 other_faction) {
|
||||
std::list<struct NPCFaction*>::iterator cur,end;
|
||||
cur = faction_list.begin();
|
||||
end = faction_list.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
struct NPCFaction* fac = *cur;
|
||||
if ((int32)fac->factionID == other_faction) {
|
||||
if (fac->npc_value > 0)
|
||||
|
||||
@ -1324,12 +1324,12 @@ void Client::SendPathPacket(std::vector<FindPerson_Point> &points) {
|
||||
cur = points.begin();
|
||||
end = points.end();
|
||||
unsigned int r;
|
||||
for(r = 0; cur != end; cur++, r++) {
|
||||
for(r = 0; cur != end; ++cur, r++) {
|
||||
fpr->path[r] = *cur;
|
||||
|
||||
}
|
||||
//put the last element into the destination field
|
||||
cur--;
|
||||
--cur;
|
||||
fpr->path[r] = *cur;
|
||||
fpr->dest = *cur;
|
||||
|
||||
|
||||
@ -114,7 +114,7 @@ QuestManager::~QuestManager() {
|
||||
}
|
||||
|
||||
void QuestManager::Process() {
|
||||
std::list<QuestTimer>::iterator cur = QTimerList.begin(), end, tmp;
|
||||
std::list<QuestTimer>::iterator cur = QTimerList.begin(), end;
|
||||
|
||||
end = QTimerList.end();
|
||||
while (cur != end) {
|
||||
@ -122,8 +122,7 @@ void QuestManager::Process() {
|
||||
if(entity_list.IsMobInZone(cur->mob)) {
|
||||
if(cur->mob->IsNPC()) {
|
||||
parse->EventNPC(EVENT_TIMER, cur->mob->CastToNPC(), nullptr, cur->name, 0);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
//this is inheriently unsafe if we ever make it so more than npc/client start timers
|
||||
parse->EventPlayer(EVENT_TIMER, cur->mob->CastToClient(), cur->name, 0);
|
||||
}
|
||||
@ -133,13 +132,10 @@ void QuestManager::Process() {
|
||||
cur = QTimerList.begin();
|
||||
end = QTimerList.end(); //dunno if this is needed, cant hurt...
|
||||
} else {
|
||||
tmp = cur;
|
||||
tmp++;
|
||||
QTimerList.erase(cur);
|
||||
cur = tmp;
|
||||
cur = QTimerList.erase(cur);
|
||||
}
|
||||
} else
|
||||
cur++;
|
||||
++cur;
|
||||
}
|
||||
|
||||
auto cur_iter = STimerList.begin();
|
||||
@ -168,18 +164,14 @@ void QuestManager::EndQuest() {
|
||||
running_quest run = quests_running_.top();
|
||||
if(run.depop_npc && run.owner->IsNPC()) {
|
||||
//clear out any timers for them...
|
||||
std::list<QuestTimer>::iterator cur = QTimerList.begin(), end, tmp;
|
||||
std::list<QuestTimer>::iterator cur = QTimerList.begin(), end;
|
||||
|
||||
end = QTimerList.end();
|
||||
while (cur != end) {
|
||||
if(cur->mob == run.owner) {
|
||||
tmp = cur;
|
||||
tmp++;
|
||||
QTimerList.erase(cur);
|
||||
cur = tmp;
|
||||
} else {
|
||||
cur++;
|
||||
}
|
||||
if (cur->mob == run.owner)
|
||||
cur = QTimerList.erase(cur);
|
||||
else
|
||||
++cur;
|
||||
}
|
||||
|
||||
run.owner->Depop();
|
||||
@ -462,7 +454,7 @@ void QuestManager::settimer(const char *timer_name, int seconds) {
|
||||
cur->Timer_.Start(seconds * 1000, false);
|
||||
return;
|
||||
}
|
||||
cur++;
|
||||
++cur;
|
||||
}
|
||||
|
||||
QTimerList.push_back(QuestTimer(seconds * 1000, owner, timer_name));
|
||||
@ -486,7 +478,7 @@ void QuestManager::settimerMS(const char *timer_name, int milliseconds) {
|
||||
cur->Timer_.Start(milliseconds, false);
|
||||
return;
|
||||
}
|
||||
cur++;
|
||||
++cur;
|
||||
}
|
||||
|
||||
QTimerList.push_back(QuestTimer(milliseconds, owner, timer_name));
|
||||
@ -495,7 +487,7 @@ void QuestManager::settimerMS(const char *timer_name, int milliseconds) {
|
||||
void QuestManager::stoptimer(const char *timer_name) {
|
||||
QuestManagerCurrentQuestVars();
|
||||
|
||||
if(questitem) {
|
||||
if (questitem) {
|
||||
questitem->StopTimer(timer_name);
|
||||
return;
|
||||
}
|
||||
@ -503,14 +495,12 @@ void QuestManager::stoptimer(const char *timer_name) {
|
||||
std::list<QuestTimer>::iterator cur = QTimerList.begin(), end;
|
||||
|
||||
end = QTimerList.end();
|
||||
while (cur != end)
|
||||
{
|
||||
if(cur->mob && cur->mob == owner && cur->name == timer_name)
|
||||
{
|
||||
while (cur != end) {
|
||||
if (cur->mob && cur->mob == owner && cur->name == timer_name) {
|
||||
QTimerList.erase(cur);
|
||||
return;
|
||||
}
|
||||
cur++;
|
||||
++cur;
|
||||
}
|
||||
}
|
||||
|
||||
@ -525,19 +515,11 @@ void QuestManager::stopalltimers() {
|
||||
std::list<QuestTimer>::iterator cur = QTimerList.begin(), end, tmp;
|
||||
|
||||
end = QTimerList.end();
|
||||
while (cur != end)
|
||||
{
|
||||
while (cur != end) {
|
||||
if(cur->mob && cur->mob == owner)
|
||||
{
|
||||
tmp = cur;
|
||||
tmp++;
|
||||
QTimerList.erase(cur);
|
||||
cur = tmp;
|
||||
}
|
||||
cur = QTimerList.erase(cur);
|
||||
else
|
||||
{
|
||||
cur++;
|
||||
}
|
||||
++cur;
|
||||
}
|
||||
}
|
||||
|
||||
@ -666,31 +648,31 @@ void QuestManager::repopzone() {
|
||||
|
||||
void QuestManager::settarget(const char *type, int target_id) {
|
||||
QuestManagerCurrentQuestVars();
|
||||
if(!owner->IsNPC())
|
||||
if (!owner || !owner->IsNPC())
|
||||
return;
|
||||
|
||||
Mob* tmp = nullptr;
|
||||
if (!strcasecmp(type,"npctype")) {
|
||||
if (!strcasecmp(type,"npctype"))
|
||||
tmp = entity_list.GetMobByNpcTypeID(target_id);
|
||||
}
|
||||
else if (!strcasecmp(type, "entity")) {
|
||||
else if (!strcasecmp(type, "entity"))
|
||||
tmp = entity_list.GetMob(target_id);
|
||||
}
|
||||
if(tmp != nullptr) {
|
||||
|
||||
if (tmp != nullptr)
|
||||
owner->SetTarget(tmp);
|
||||
}
|
||||
}
|
||||
|
||||
void QuestManager::follow(int entity_id, int distance) {
|
||||
QuestManagerCurrentQuestVars();
|
||||
if(!owner->IsNPC())
|
||||
if (!owner || !owner->IsNPC())
|
||||
return;
|
||||
|
||||
owner->SetFollowID(entity_id);
|
||||
owner->SetFollowDistance(distance * distance);
|
||||
}
|
||||
|
||||
void QuestManager::sfollow() {
|
||||
QuestManagerCurrentQuestVars();
|
||||
if(!owner->IsNPC())
|
||||
if (owner == nullptr || !owner->IsNPC())
|
||||
return;
|
||||
owner->SetFollowID(0);
|
||||
}
|
||||
@ -1104,25 +1086,26 @@ void QuestManager::setallskill(int value) {
|
||||
|
||||
void QuestManager::attack(const char *client_name) {
|
||||
QuestManagerCurrentQuestVars();
|
||||
if(!owner->IsNPC())
|
||||
if (!owner || !owner->IsNPC())
|
||||
return;
|
||||
|
||||
Client* getclient = entity_list.GetClientByName(client_name);
|
||||
if(getclient && owner->IsAttackAllowed(getclient)) {
|
||||
if (getclient && owner->IsAttackAllowed(getclient))
|
||||
owner->AddToHateList(getclient,1);
|
||||
} else {
|
||||
else
|
||||
owner->Say("I am unable to attack %s.", client_name);
|
||||
}
|
||||
}
|
||||
|
||||
void QuestManager::attacknpc(int npc_entity_id) {
|
||||
QuestManagerCurrentQuestVars();
|
||||
if(!owner->IsNPC())
|
||||
if (!owner || !owner->IsNPC())
|
||||
return;
|
||||
|
||||
Mob *it = entity_list.GetMob(npc_entity_id);
|
||||
if(it && owner->IsAttackAllowed(it)) {
|
||||
if (it && owner->IsAttackAllowed(it)) {
|
||||
owner->AddToHateList(it,1);
|
||||
} else {
|
||||
if(it)
|
||||
if (it)
|
||||
owner->Say("I am unable to attack %s.", it->GetName());
|
||||
else
|
||||
owner->Say("I am unable to locate NPC entity %i", npc_entity_id);
|
||||
@ -1131,13 +1114,14 @@ void QuestManager::attacknpc(int npc_entity_id) {
|
||||
|
||||
void QuestManager::attacknpctype(int npc_type_id) {
|
||||
QuestManagerCurrentQuestVars();
|
||||
if(!owner->IsNPC())
|
||||
if (!owner || !owner->IsNPC())
|
||||
return;
|
||||
|
||||
Mob *it = entity_list.GetMobByNpcTypeID(npc_type_id);
|
||||
if(it && owner->IsAttackAllowed(it)) {
|
||||
if (it && owner->IsAttackAllowed(it)) {
|
||||
owner->AddToHateList(it,1);
|
||||
} else {
|
||||
if(it)
|
||||
if (it)
|
||||
owner->Say("I am unable to attack %s.", it->GetName());
|
||||
else
|
||||
owner->Say("I am unable to locate NPC type %i", npc_type_id);
|
||||
@ -1194,7 +1178,7 @@ void QuestManager::CreateGuild(const char *guild_name, const char *leader) {
|
||||
|
||||
uint32 tmp = guild_mgr.FindGuildByLeader(cid);
|
||||
if (tmp != GUILD_NONE) {
|
||||
sprintf(hString, "Guild Creation: Error: %s already is the leader of DB# %i '%s'.", leader, tmp, guild_mgr.GetGuildName(tmp));
|
||||
sprintf(hString, "Guild Creation: Error: %s already is the leader of DB# %u '%s'.", leader, tmp, guild_mgr.GetGuildName(tmp));
|
||||
worldserver.SendEmoteMessage(0, 0, 80, 15, "%s", hString);
|
||||
}
|
||||
else {
|
||||
@ -1202,7 +1186,7 @@ void QuestManager::CreateGuild(const char *guild_name, const char *leader) {
|
||||
if (gid == GUILD_NONE)
|
||||
worldserver.SendEmoteMessage(0, 0, 80, 15, "%s", "Guild Creation: Guild creation failed");
|
||||
else {
|
||||
sprintf(hString, "Guild Creation: Guild created: Leader: %i, number %i: %s", cid, gid, leader);
|
||||
sprintf(hString, "Guild Creation: Guild created: Leader: %u, number %u: %s", cid, gid, leader);
|
||||
worldserver.SendEmoteMessage(0, 0, 80, 15, "%s", hString);
|
||||
if(!guild_mgr.SetGuild(cid, gid, GUILD_LEADER))
|
||||
worldserver.SendEmoteMessage(0, 0, 80, 15, "%s", "Unable to set guild leader's guild in the database. Your going to have to run #guild set");
|
||||
@ -1218,12 +1202,15 @@ void QuestManager::settime(uint8 new_hour, uint8 new_min) {
|
||||
|
||||
void QuestManager::itemlink(int item_id) {
|
||||
QuestManagerCurrentQuestVars();
|
||||
const ItemInst* inst = database.CreateItem(item_id);
|
||||
char* link = 0;
|
||||
if (initiator->MakeItemLink(link, inst))
|
||||
initiator->Message(0, "%s tells you, %c%s%s%c", owner->GetCleanName(), 0x12, link, inst->GetItem()->Name, 0x12);
|
||||
safe_delete_array(link);
|
||||
safe_delete(inst);
|
||||
if (initiator) {
|
||||
const ItemInst* inst = database.CreateItem(item_id);
|
||||
char* link = 0;
|
||||
if (initiator->MakeItemLink(link, inst))
|
||||
initiator->Message(0, "%s tells you, %c%s%s%c", owner->GetCleanName(),
|
||||
0x12, link, inst->GetItem()->Name, 0x12);
|
||||
safe_delete_array(link);
|
||||
safe_delete(inst);
|
||||
}
|
||||
}
|
||||
|
||||
void QuestManager::signalwith(int npc_id, int signal_id, int wait_ms) {
|
||||
@ -1504,36 +1491,41 @@ void QuestManager::rebind(int zoneid, float x, float y, float z) {
|
||||
|
||||
void QuestManager::start(int32 wp) {
|
||||
QuestManagerCurrentQuestVars();
|
||||
if(!owner->IsNPC())
|
||||
if (!owner || !owner->IsNPC())
|
||||
return;
|
||||
|
||||
owner->CastToNPC()->AssignWaypoints(wp);
|
||||
}
|
||||
|
||||
void QuestManager::stop() {
|
||||
QuestManagerCurrentQuestVars();
|
||||
if(!owner->IsNPC())
|
||||
if (!owner || !owner->IsNPC())
|
||||
return;
|
||||
|
||||
owner->CastToNPC()->StopWandering();
|
||||
}
|
||||
|
||||
void QuestManager::pause(int duration) {
|
||||
QuestManagerCurrentQuestVars();
|
||||
if(!owner->IsNPC())
|
||||
if (!owner || !owner->IsNPC())
|
||||
return;
|
||||
|
||||
owner->CastToNPC()->PauseWandering(duration);
|
||||
}
|
||||
|
||||
void QuestManager::moveto(float x, float y, float z, float h, bool saveguardspot) {
|
||||
QuestManagerCurrentQuestVars();
|
||||
if(!owner->IsNPC())
|
||||
if (!owner || !owner->IsNPC())
|
||||
return;
|
||||
|
||||
owner->CastToNPC()->MoveTo(x, y, z, h, saveguardspot);
|
||||
}
|
||||
|
||||
void QuestManager::resume() {
|
||||
QuestManagerCurrentQuestVars();
|
||||
if(!owner->IsNPC())
|
||||
if (!owner || !owner->IsNPC())
|
||||
return;
|
||||
|
||||
owner->CastToNPC()->ResumeWandering();
|
||||
}
|
||||
|
||||
@ -1557,22 +1549,21 @@ void QuestManager::addldonloss(int32 losses, uint32 theme) {
|
||||
|
||||
void QuestManager::setnexthpevent(int at) {
|
||||
QuestManagerCurrentQuestVars();
|
||||
owner->SetNextHPEvent( at );
|
||||
if (owner)
|
||||
owner->SetNextHPEvent(at);
|
||||
}
|
||||
|
||||
void QuestManager::setnextinchpevent(int at) {
|
||||
QuestManagerCurrentQuestVars();
|
||||
owner->SetNextIncHPEvent( at );
|
||||
if (owner)
|
||||
owner->SetNextIncHPEvent(at);
|
||||
}
|
||||
|
||||
void QuestManager::respawn(int npc_type, int grid) {
|
||||
QuestManagerCurrentQuestVars();
|
||||
if(!owner->IsNPC())
|
||||
if (!owner || !owner->IsNPC())
|
||||
return;
|
||||
//char tempa[100];
|
||||
float x,y,z,h;
|
||||
if ( !owner )
|
||||
return;
|
||||
|
||||
x = owner->GetX();
|
||||
y = owner->GetY();
|
||||
@ -1599,7 +1590,7 @@ void QuestManager::respawn(int npc_type, int grid) {
|
||||
|
||||
void QuestManager::set_proximity(float minx, float maxx, float miny, float maxy, float minz, float maxz) {
|
||||
QuestManagerCurrentQuestVars();
|
||||
if(!owner->IsNPC())
|
||||
if (!owner || !owner->IsNPC())
|
||||
return;
|
||||
|
||||
entity_list.AddProximity(owner->CastToNPC());
|
||||
@ -1614,8 +1605,9 @@ void QuestManager::set_proximity(float minx, float maxx, float miny, float maxy,
|
||||
|
||||
void QuestManager::clear_proximity() {
|
||||
QuestManagerCurrentQuestVars();
|
||||
if(!owner->IsNPC())
|
||||
if(!owner || !owner->IsNPC())
|
||||
return;
|
||||
|
||||
entity_list.RemoveProximity(owner->GetID());
|
||||
safe_delete(owner->CastToNPC()->proximity);
|
||||
}
|
||||
@ -1694,7 +1686,7 @@ void QuestManager::toggle_spawn_event(int event_id, bool enable, bool reset_base
|
||||
|
||||
bool QuestManager::has_zone_flag(int zone_id) {
|
||||
QuestManagerCurrentQuestVars();
|
||||
return(initiator->HasZoneFlag(zone_id));
|
||||
return initiator ? initiator->HasZoneFlag(zone_id) : false;
|
||||
}
|
||||
|
||||
void QuestManager::set_zone_flag(int zone_id) {
|
||||
@ -2453,18 +2445,17 @@ uint32 QuestManager::MerchantCountItem(uint32 NPCid, uint32 itemid) {
|
||||
|
||||
const Item_Struct* item = nullptr;
|
||||
item = database.GetItem(itemid);
|
||||
if (!item) return 0; // likewise, if it isn't a valid item, the merchant doesn't have any
|
||||
if (!item)
|
||||
return 0; // if it isn't a valid item, the merchant doesn't have any
|
||||
|
||||
// look for the item in the merchant's temporary list
|
||||
std::list<TempMerchantList> MerchList = zone->tmpmerchanttable[NPCid];
|
||||
std::list<TempMerchantList>::const_iterator itr;
|
||||
TempMerchantList ml;
|
||||
uint32 Quant = 0;
|
||||
|
||||
for(itr = MerchList.begin(); itr != MerchList.end(); itr++){
|
||||
ml = *itr;
|
||||
if (ml.item == itemid) { // if this is the item we're looking for
|
||||
Quant = ml.charges;
|
||||
for (itr = MerchList.begin(); itr != MerchList.end(); ++itr) {
|
||||
if (itr->item == itemid) { // if this is the item we're looking for
|
||||
Quant = itr->charges;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -2776,7 +2767,7 @@ void QuestManager::enabletitle(int titleset) {
|
||||
|
||||
bool QuestManager::checktitle(int titleset) {
|
||||
QuestManagerCurrentQuestVars();
|
||||
return initiator->CheckTitle(titleset);
|
||||
return initiator ? initiator->CheckTitle(titleset) : false;
|
||||
}
|
||||
|
||||
void QuestManager::removetitle(int titleset) {
|
||||
|
||||
@ -566,7 +566,7 @@ void SpawnConditionManager::Process() {
|
||||
std::vector<SpawnEvent>::iterator cur,end;
|
||||
cur = spawn_events.begin();
|
||||
end = spawn_events.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
SpawnEvent &cevent = *cur;
|
||||
|
||||
if(!cevent.enabled)
|
||||
@ -827,7 +827,7 @@ bool SpawnConditionManager::LoadSpawnConditions(const char* zone_name, uint32 in
|
||||
cur = spawn_events.begin();
|
||||
end = spawn_events.end();
|
||||
bool ran;
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
SpawnEvent &cevent = *cur;
|
||||
|
||||
if(!cevent.enabled)
|
||||
@ -875,7 +875,7 @@ void SpawnConditionManager::FindNearestEvent() {
|
||||
cur = spawn_events.begin();
|
||||
end = spawn_events.end();
|
||||
int next_id = -1;
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
SpawnEvent &cevent = *cur;
|
||||
|
||||
if(!cevent.enabled)
|
||||
@ -983,7 +983,7 @@ void SpawnConditionManager::ReloadEvent(uint32 event_id) {
|
||||
std::vector<SpawnEvent>::iterator cur,end;
|
||||
cur = spawn_events.begin();
|
||||
end = spawn_events.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
SpawnEvent &cevent = *cur;
|
||||
|
||||
if(cevent.id == event_id) {
|
||||
@ -1026,7 +1026,7 @@ void SpawnConditionManager::ToggleEvent(uint32 event_id, bool enabled, bool rese
|
||||
std::vector<SpawnEvent>::iterator cur,end;
|
||||
cur = spawn_events.begin();
|
||||
end = spawn_events.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
SpawnEvent &cevent = *cur;
|
||||
|
||||
if(cevent.id == event_id) {
|
||||
|
||||
@ -64,7 +64,7 @@ uint32 SpawnGroup::GetNPCType() {
|
||||
std::list<SpawnEntry*> possible;
|
||||
cur = list_.begin();
|
||||
end = list_.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
SpawnEntry *se = *cur;
|
||||
|
||||
//check limits on this spawn group and npc type
|
||||
@ -83,7 +83,7 @@ uint32 SpawnGroup::GetNPCType() {
|
||||
|
||||
cur = possible.begin();
|
||||
end = possible.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
SpawnEntry *se = *cur;
|
||||
if (roll < se->chance) {
|
||||
npcType = se->NPCType;
|
||||
@ -104,7 +104,7 @@ SpawnGroup::~SpawnGroup() {
|
||||
std::list<SpawnEntry*>::iterator cur,end;
|
||||
cur = list_.begin();
|
||||
end = list_.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
SpawnEntry* tmp = *cur;
|
||||
safe_delete(tmp);
|
||||
}
|
||||
@ -115,7 +115,7 @@ SpawnGroupList::~SpawnGroupList() {
|
||||
std::map<uint32, SpawnGroup*>::iterator cur,end;
|
||||
cur = groups.begin();
|
||||
end = groups.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
SpawnGroup* tmp = cur->second;
|
||||
safe_delete(tmp);
|
||||
}
|
||||
|
||||
@ -197,14 +197,15 @@ void Client::OPCombatAbility(const EQApplicationPacket *app) {
|
||||
if (ca_atk->m_skill == SkillThrowing) {
|
||||
SetAttackTimer();
|
||||
ThrowingAttack(GetTarget());
|
||||
if (CheckDoubleRangedAttack())
|
||||
RangedAttack(GetTarget(), true);
|
||||
return;
|
||||
}
|
||||
//ranged attack (archery)
|
||||
if (ca_atk->m_skill == SkillArchery) {
|
||||
SetAttackTimer();
|
||||
RangedAttack(GetTarget());
|
||||
bool test = CheckArcheryDoubleAttack();
|
||||
if (CheckArcheryDoubleAttack())
|
||||
if (CheckDoubleRangedAttack())
|
||||
RangedAttack(GetTarget(), true);
|
||||
return;
|
||||
}
|
||||
@ -1119,12 +1120,12 @@ uint16 Mob::GetThrownDamage(int16 wDmg, int32& TotalDmg, int& minDmg)
|
||||
return MaxDmg;
|
||||
}
|
||||
|
||||
void Client::ThrowingAttack(Mob* other) { //old was 51
|
||||
void Client::ThrowingAttack(Mob* other, bool CanDoubleAttack) { //old was 51
|
||||
//conditions to use an attack checked before we are called
|
||||
|
||||
//make sure the attack and ranged timers are up
|
||||
//if the ranged timer is disabled, then they have no ranged weapon and shouldent be attacking anyhow
|
||||
if((attack_timer.Enabled() && !attack_timer.Check(false)) || (ranged_timer.Enabled() && !ranged_timer.Check())) {
|
||||
if((!CanDoubleAttack && (attack_timer.Enabled() && !attack_timer.Check(false)) || (ranged_timer.Enabled() && !ranged_timer.Check()))) {
|
||||
mlog(COMBAT__RANGED, "Throwing attack canceled. Timer not up. Attack %d, ranged %d", attack_timer.GetRemainingTime(), ranged_timer.GetRemainingTime());
|
||||
// The server and client timers are not exact matches currently, so this would spam too often if enabled
|
||||
//Message(0, "Error: Timer not up. Attack %d, ranged %d", attack_timer.GetRemainingTime(), ranged_timer.GetRemainingTime());
|
||||
|
||||
@ -178,8 +178,10 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial)
|
||||
|
||||
int numhit = spells[spell_id].numhits;
|
||||
|
||||
if (caster && caster->IsClient())
|
||||
if (caster && caster->IsClient()){
|
||||
numhit += numhit*caster->CastToClient()->GetFocusEffect(focusFcLimitUse, spell_id)/100;
|
||||
numhit += caster->CastToClient()->GetFocusEffect(focusIncreaseNumHits, spell_id);
|
||||
}
|
||||
|
||||
buffs[buffslot].numhits = numhit;
|
||||
}
|
||||
@ -1221,6 +1223,8 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial)
|
||||
int charges;
|
||||
if (item->Stackable)
|
||||
charges = (spell.formula[i] > item->StackSize) ? item->StackSize : spell.formula[i];
|
||||
else if (item->MaxCharges) // mod rods etc
|
||||
charges = item->MaxCharges;
|
||||
else
|
||||
charges = 1;
|
||||
|
||||
@ -1261,6 +1265,8 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial)
|
||||
|
||||
if (item->Stackable)
|
||||
charges = (spell.formula[i] > item->StackSize) ? item->StackSize : spell.formula[i];
|
||||
else if (item->MaxCharges) // mod rods, not sure if there are actual examples of this for IntoBag
|
||||
charges = item->MaxCharges;
|
||||
else
|
||||
charges = 1;
|
||||
|
||||
@ -1364,12 +1370,18 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial)
|
||||
break;
|
||||
}
|
||||
|
||||
case SE_MitigateMeleeDamageSP:
|
||||
case SE_MeleeThresholdGuard:
|
||||
{
|
||||
buffs[buffslot].melee_rune = spells[spell_id].max[i];
|
||||
break;
|
||||
}
|
||||
|
||||
case SE_SpellThresholdGuard:
|
||||
{
|
||||
buffs[buffslot].magic_rune = spells[spell_id].max[i];
|
||||
break;
|
||||
}
|
||||
|
||||
case SE_MitigateSpellDamage:
|
||||
{
|
||||
buffs[buffslot].magic_rune = GetPartialMagicRuneAmount(spell_id);
|
||||
@ -1377,12 +1389,18 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial)
|
||||
break;
|
||||
}
|
||||
|
||||
//Using the melee_rune variable, however it will be calculated for both spell and melee.
|
||||
case SE_SpellOnAmtDmgTaken:
|
||||
case SE_TriggerMeleeThreshold:
|
||||
{
|
||||
buffs[buffslot].melee_rune = spells[spell_id].base2[i];
|
||||
break;
|
||||
}
|
||||
|
||||
case SE_TriggerSpellThreshold:
|
||||
{
|
||||
buffs[buffslot].magic_rune = spells[spell_id].base2[i];
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case SE_Levitate:
|
||||
{
|
||||
@ -2859,8 +2877,8 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial)
|
||||
case SE_ImprovedDamage2:
|
||||
case SE_AdditionalHeal2:
|
||||
case SE_HealRate2:
|
||||
case SE_CriticalHealChance2:
|
||||
case SE_CriticalHealOverTime2:
|
||||
case SE_CriticalHealDecay:
|
||||
case SE_CriticalRegenDecay:
|
||||
case SE_Empathy:
|
||||
case SE_LimitSpellSkill:
|
||||
case SE_MitigateDamageShield:
|
||||
@ -2904,12 +2922,15 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial)
|
||||
case SE_CriticalHealRate:
|
||||
case SE_IncreaseNumHits:
|
||||
case SE_CastonFocusEffect:
|
||||
case SE_ReduceHeal:
|
||||
case SE_FcHealAmtIncoming:
|
||||
case SE_IncreaseHitDmgTaken:
|
||||
case SE_ArcheryDoubleAttack:
|
||||
case SE_DoubleRangedAttack:
|
||||
case SE_ShieldEquipHateMod:
|
||||
case SE_ShieldEquipDmgMod:
|
||||
case SE_TriggerOnValueAmount:
|
||||
case SE_LimitRace:
|
||||
case SE_FcLimitUse:
|
||||
case SE_FcMute:
|
||||
{
|
||||
break;
|
||||
}
|
||||
@ -3931,6 +3952,8 @@ int16 Client::CalcAAFocus(focusType type, uint32 aa_ID, uint16 spell_id)
|
||||
int lvldiff = 0;
|
||||
bool LimitSpellSkill = false;
|
||||
bool SpellSkill_Found = false;
|
||||
bool LimitSpellEffect = false;
|
||||
bool SpellEffect_Found = false;
|
||||
uint32 effect = 0;
|
||||
int32 base1 = 0;
|
||||
int32 base2 = 0;
|
||||
@ -3963,6 +3986,10 @@ int16 Client::CalcAAFocus(focusType type, uint32 aa_ID, uint16 spell_id)
|
||||
if (LimitFound){
|
||||
value = 0;
|
||||
LimitFound = false;
|
||||
LimitSpellSkill = false;
|
||||
SpellSkill_Found = false;
|
||||
LimitSpellEffect = false;
|
||||
SpellEffect_Found = false;
|
||||
}
|
||||
|
||||
else{
|
||||
@ -4031,14 +4058,13 @@ int16 Client::CalcAAFocus(focusType type, uint32 aa_ID, uint16 spell_id)
|
||||
LimitFound = true;
|
||||
break;
|
||||
case SE_LimitEffect:
|
||||
// Exclude effect(any but this)
|
||||
if(base1 < 0) {
|
||||
if(IsEffectInSpell(spell_id,(base1*-1)))
|
||||
// Exclude effect (any but this)
|
||||
if (base1 < 0) {
|
||||
if (IsEffectInSpell(spell_id, (base1 * -1)))
|
||||
LimitFound = true;
|
||||
}
|
||||
else {
|
||||
// Include effect(only this)
|
||||
if(!IsEffectInSpell(spell_id,base1))
|
||||
} else {
|
||||
// Include effect (only this)
|
||||
if (!IsEffectInSpell(spell_id, base1))
|
||||
LimitFound = true;
|
||||
}
|
||||
break;
|
||||
@ -4110,6 +4136,15 @@ int16 Client::CalcAAFocus(focusType type, uint32 aa_ID, uint16 spell_id)
|
||||
LimitFound = true;
|
||||
break;
|
||||
|
||||
case SE_LimitRace:
|
||||
if (base1 != GetRace())
|
||||
LimitFound = true;
|
||||
break;
|
||||
|
||||
case SE_FfLimitUseMin:
|
||||
if (base1 > spell.numhits)
|
||||
LimitFound = true;
|
||||
break;
|
||||
|
||||
//Handle Focus Effects
|
||||
case SE_ImprovedDamage:
|
||||
@ -4284,9 +4319,9 @@ int16 Client::CalcAAFocus(focusType type, uint32 aa_ID, uint16 spell_id)
|
||||
break;
|
||||
}
|
||||
|
||||
case SE_ReduceHeal:
|
||||
case SE_FcHealAmtIncoming:
|
||||
{
|
||||
if(type == focusReduceHeal)
|
||||
if(type == focusFcHealAmtIncoming)
|
||||
value = base1;
|
||||
|
||||
break;
|
||||
@ -4347,17 +4382,36 @@ int16 Client::CalcAAFocus(focusType type, uint32 aa_ID, uint16 spell_id)
|
||||
break;
|
||||
}
|
||||
|
||||
//Check for spell skill limits.
|
||||
if ((LimitSpellSkill) && (!SpellSkill_Found))
|
||||
return 0;
|
||||
|
||||
case SE_FcLimitUse:
|
||||
{
|
||||
if(type == focusFcLimitUse)
|
||||
value = base1;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case SE_FcMute:
|
||||
{
|
||||
if(type == focusFcMute)
|
||||
value = base1;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (LimitFound){
|
||||
return 0;
|
||||
}
|
||||
if (LimitSpellSkill && !SpellSkill_Found)
|
||||
LimitFound = true;
|
||||
|
||||
if (LimitSpellEffect && !SpellEffect_Found)
|
||||
LimitFound = true;
|
||||
|
||||
if (LimitFound)
|
||||
return 0;
|
||||
|
||||
return(value*lvlModifier/100);
|
||||
}
|
||||
|
||||
@ -4368,6 +4422,7 @@ int16 Mob::CalcFocusEffect(focusType type, uint16 focus_id, uint16 spell_id, boo
|
||||
if(!IsValidSpell(focus_id) || !IsValidSpell(spell_id))
|
||||
return 0;
|
||||
|
||||
|
||||
const SPDat_Spell_Struct &focus_spell = spells[focus_id];
|
||||
const SPDat_Spell_Struct &spell = spells[spell_id];
|
||||
|
||||
@ -4377,6 +4432,8 @@ int16 Mob::CalcFocusEffect(focusType type, uint16 focus_id, uint16 spell_id, boo
|
||||
int lvldiff = 0;
|
||||
bool LimitSpellSkill = false;
|
||||
bool SpellSkill_Found = false;
|
||||
bool LimitSpellEffect = false;
|
||||
bool SpellEffect_Found = false;
|
||||
uint32 Caston_spell_id = 0;
|
||||
|
||||
for (int i = 0; i < EFFECT_COUNT; i++) {
|
||||
@ -4385,7 +4442,7 @@ int16 Mob::CalcFocusEffect(focusType type, uint16 focus_id, uint16 spell_id, boo
|
||||
case SE_Blank:
|
||||
break;
|
||||
//check limits
|
||||
|
||||
|
||||
case SE_LimitResist:{
|
||||
if(focus_spell.base[i]){
|
||||
if(spell.resisttype != focus_spell.base[i])
|
||||
@ -4465,10 +4522,17 @@ int16 Mob::CalcFocusEffect(focusType type, uint16 focus_id, uint16 spell_id, boo
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else if(!IsEffectInSpell(spell_id,focus_spell.base[i])){ //we limit this effect, must have
|
||||
return 0;
|
||||
}
|
||||
//else if(!SpellEffect_Found && (!IsEffectInSpell(spell_id,focus_spell.base[i])){ //we limit this effect, must have
|
||||
// return 0;
|
||||
//}
|
||||
}
|
||||
|
||||
if(focus_spell.base[i] >= 0){
|
||||
LimitSpellEffect = true;
|
||||
if (IsEffectInSpell(spell_id,focus_spell.base[i]))
|
||||
SpellEffect_Found = true;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
|
||||
@ -4538,11 +4602,22 @@ int16 Mob::CalcFocusEffect(focusType type, uint16 focus_id, uint16 spell_id, boo
|
||||
return 0;
|
||||
break;
|
||||
|
||||
case SE_LimitRace:
|
||||
if (focus_spell.base[i] != GetRace())
|
||||
return 0;
|
||||
break;
|
||||
|
||||
case SE_FfLimitUseMin:
|
||||
if (focus_spell.base[i] > spell.numhits)
|
||||
return 0;
|
||||
break;
|
||||
|
||||
case SE_CastonFocusEffect:
|
||||
if (focus_spell.base[i] > 0)
|
||||
Caston_spell_id = focus_spell.base[i];
|
||||
break;
|
||||
|
||||
|
||||
//handle effects
|
||||
case SE_ImprovedDamage:
|
||||
// No Spell used this, its handled by different spell effect IDs.
|
||||
@ -4764,9 +4839,9 @@ int16 Mob::CalcFocusEffect(focusType type, uint16 focus_id, uint16 spell_id, boo
|
||||
break;
|
||||
}
|
||||
|
||||
case SE_ReduceHeal:
|
||||
case SE_FcHealAmtIncoming:
|
||||
{
|
||||
if(type == focusReduceHeal)
|
||||
if(type == focusFcHealAmtIncoming)
|
||||
value = focus_spell.base[i];
|
||||
|
||||
break;
|
||||
@ -4827,6 +4902,23 @@ int16 Mob::CalcFocusEffect(focusType type, uint16 focus_id, uint16 spell_id, boo
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
case SE_FcLimitUse:
|
||||
{
|
||||
if(type == focusFcLimitUse)
|
||||
value = focus_spell.base[i];
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case SE_FcMute:
|
||||
{
|
||||
if(type == focusFcMute)
|
||||
value = focus_spell.base[i];
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
#if EQDEBUG >= 6
|
||||
//this spits up a lot of garbage when calculating spell focuses
|
||||
//since they have all kinds of extra effects on them.
|
||||
@ -4836,9 +4928,12 @@ int16 Mob::CalcFocusEffect(focusType type, uint16 focus_id, uint16 spell_id, boo
|
||||
}
|
||||
}
|
||||
//Check for spell skill limits.
|
||||
if ((LimitSpellSkill) && (!SpellSkill_Found))
|
||||
if (LimitSpellSkill && !SpellSkill_Found)
|
||||
return 0;
|
||||
|
||||
if (LimitSpellEffect && !SpellEffect_Found)
|
||||
return 0;
|
||||
|
||||
if (Caston_spell_id){
|
||||
if(IsValidSpell(Caston_spell_id) && (Caston_spell_id != spell_id))
|
||||
SpellFinished(Caston_spell_id, this, 10, 0, -1, spells[Caston_spell_id].ResistDiff);
|
||||
@ -5180,6 +5275,23 @@ int16 Client::GetFocusEffect(focusType type, uint16 spell_id) {
|
||||
|
||||
bool Mob::CheckHitsRemaining(uint32 buff_slot, bool when_spell_done, bool negate, uint16 type, uint16 spell_id,bool use_skill,uint16 skill)
|
||||
{
|
||||
|
||||
/*
|
||||
TO DO: Rewrite code so it checks for numhits by type not after each specified spell effect is triggered...
|
||||
Field 175 = numhits type
|
||||
1: [Incoming Hit Attempts] (323=SE_DefensiveProc, 172=SE_AvoidMeleeChance, 1=SE_ArmorClass, 40=SE_DivineAura)
|
||||
2: [Outgoing Hit Attempts] (184=SE_DamageModifer, 185=SE_HitChance)
|
||||
3: [Incoming Spells] (180=SE_ResistSpellChance, 296=SE_SpellVulnerability)
|
||||
4: NONE
|
||||
5: [Outgoing Hit Successes] (196=SE_SkillDamageAmount, 178=SE_MeleeLifetap, 121=SE_ReverseDS, ?373=SE_CastOnWearoff)
|
||||
6: [Incoming Hit Successes] (59=SE_DamageShield, 197=SE_SkillDamageTaken, 162=define SE_MitigateMeleeDamage)
|
||||
7: [Matching Spells] *When focus is triggered (focus effects)
|
||||
8: [Incoming Hits or Spells] (329=SE_ManaAbsorbPercentDamage)
|
||||
9: [Reflected Spells]
|
||||
10: [Defensive Procs]
|
||||
11: [Melee Procs]
|
||||
*/
|
||||
|
||||
bool bDepleted = false;
|
||||
//Effects: Cast: SE_ResistSpellChance, SE_Reflect, SE_SpellDamageShield
|
||||
//Effects: Attack: SE_MeleeLifetap : SE_DamageShield, SE_AvoidMeleeChance, SE_SkillProc
|
||||
|
||||
@ -193,6 +193,17 @@ bool Mob::CastSpell(uint16 spell_id, uint16 target_id, uint16 slot,
|
||||
return(false);
|
||||
}
|
||||
|
||||
if(IsClient()){
|
||||
int chance = CastToClient()->GetFocusEffect(focusFcMute, spell_id);
|
||||
|
||||
if (MakeRandomInt(0,99) < chance){
|
||||
Message_StringID(13, SILENCED_STRING);
|
||||
if(IsClient())
|
||||
CastToClient()->SendSpellBarEnable(spell_id);
|
||||
return(false);
|
||||
}
|
||||
}
|
||||
|
||||
if(IsDetrimentalSpell(spell_id) && !zone->CanDoCombat()){
|
||||
Message_StringID(13, SPELL_WOULDNT_HOLD);
|
||||
if(IsClient())
|
||||
@ -2047,7 +2058,7 @@ bool Mob::SpellFinished(uint16 spell_id, Mob *spell_target, uint16 slot, uint16
|
||||
SpellOnTarget(spell_id, (*iter), false, true, resist_adjust);
|
||||
}
|
||||
}
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -2929,7 +2940,7 @@ int Mob::AddBuff(Mob *caster, uint16 spell_id, int duration, int32 level_overrid
|
||||
std::vector<int>::iterator cur, end;
|
||||
cur = overwrite_slots.begin();
|
||||
end = overwrite_slots.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
// strip spell
|
||||
BuffFadeBySlot(*cur, false);
|
||||
|
||||
|
||||
@ -829,7 +829,7 @@ void ClientTaskState::EnableTask(int CharID, int TaskCount, int *TaskList) {
|
||||
// Our list of enabled tasks is sorted, so we can quit if we find a taskid higher than
|
||||
// the one we are looking for.
|
||||
if((*Iterator) > TaskList[i]) break;
|
||||
Iterator++;
|
||||
++Iterator;
|
||||
}
|
||||
if(AddTask) {
|
||||
EnabledTasks.insert(Iterator, TaskList[i]);
|
||||
@ -890,7 +890,7 @@ void ClientTaskState::DisableTask(int CharID, int TaskCount, int *TaskList) {
|
||||
break;
|
||||
}
|
||||
if((*Iterator) > TaskList[i]) break;
|
||||
Iterator++;
|
||||
++Iterator;
|
||||
}
|
||||
if(RemoveTask) {
|
||||
EnabledTasks.erase(Iterator);
|
||||
@ -947,7 +947,7 @@ bool ClientTaskState::IsTaskEnabled(int TaskID) {
|
||||
while(Iterator != EnabledTasks.end()) {
|
||||
if((*Iterator) == TaskID) return true;
|
||||
if((*Iterator) > TaskID) break;
|
||||
Iterator++;
|
||||
++Iterator;
|
||||
}
|
||||
|
||||
return false;
|
||||
@ -1021,7 +1021,7 @@ int TaskManager::FirstTaskInSet(int TaskSetID) {
|
||||
while(Iterator != TaskSets[TaskSetID].end()) {
|
||||
if((*Iterator) > 0)
|
||||
return (*Iterator);
|
||||
Iterator++;
|
||||
++Iterator;
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -1087,7 +1087,7 @@ void TaskManager::TaskSetSelector(Client *c, ClientTaskState *state, Mob *mob, i
|
||||
(IsTaskRepeatable((*Iterator)) || !state->IsTaskCompleted((*Iterator))))
|
||||
TaskList[TaskListIndex++] = (*Iterator);
|
||||
|
||||
Iterator++;
|
||||
++Iterator;
|
||||
}
|
||||
if(TaskListIndex > 0)
|
||||
{
|
||||
@ -1497,7 +1497,7 @@ bool ClientTaskState::UnlockActivities(int CharID, int TaskIndex) {
|
||||
ErasedElements++;
|
||||
}
|
||||
else
|
||||
Iterator++;
|
||||
++Iterator;
|
||||
}
|
||||
_log(TASKS__UPDATE, "Erased Element count is %i", ErasedElements);
|
||||
if(ErasedElements) {
|
||||
@ -1570,7 +1570,7 @@ bool ClientTaskState::UnlockActivities(int CharID, int TaskIndex) {
|
||||
ErasedElements++;
|
||||
}
|
||||
else
|
||||
Iterator++;
|
||||
++Iterator;
|
||||
}
|
||||
_log(TASKS__UPDATE, "Erased Element count is %i", ErasedElements);
|
||||
if(ErasedElements) {
|
||||
|
||||
@ -165,7 +165,7 @@ std::string TitleManager::GetSuffix(int TitleID)
|
||||
if((*Iterator).TitleID == TitleID)
|
||||
return (*Iterator).Suffix;
|
||||
|
||||
Iterator++;
|
||||
++Iterator;
|
||||
}
|
||||
|
||||
return "";
|
||||
|
||||
@ -1082,7 +1082,7 @@ bool Client::TradeskillExecute(DBTradeskillRecipe_Struct *spec) {
|
||||
}
|
||||
if(RuleB(TaskSystem, EnableTaskSystem))
|
||||
UpdateTasksForItem(ActivityTradeSkill, itr->first, itr->second);
|
||||
itr++;
|
||||
++itr;
|
||||
}
|
||||
return(true);
|
||||
} else {
|
||||
@ -1103,7 +1103,7 @@ bool Client::TradeskillExecute(DBTradeskillRecipe_Struct *spec) {
|
||||
while(itr != spec->onfail.end()) {
|
||||
//should we check these arguments?
|
||||
SummonItem(itr->first, itr->second);
|
||||
itr++;
|
||||
++itr;
|
||||
}
|
||||
|
||||
// Rolls on each item, is possible to return everything
|
||||
@ -1116,7 +1116,7 @@ bool Client::TradeskillExecute(DBTradeskillRecipe_Struct *spec) {
|
||||
for(sc = 0; sc < itr->second; sc++)
|
||||
if(MakeRandomInt(0,99) < SalvageChance)
|
||||
SummonItem(itr->first, 1);
|
||||
itr++;
|
||||
++itr;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -308,7 +308,7 @@ void Client::SendTributes() {
|
||||
cur = tribute_list.begin();
|
||||
end = tribute_list.end();
|
||||
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
if(cur->second.is_guild)
|
||||
continue; //skip guild tributes here
|
||||
int len = cur->second.name.length();
|
||||
@ -342,7 +342,7 @@ void Client::SendGuildTributes() {
|
||||
cur = tribute_list.begin();
|
||||
end = tribute_list.end();
|
||||
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
if(!cur->second.is_guild)
|
||||
continue; //skip guild tributes here
|
||||
int len = cur->second.name.length();
|
||||
|
||||
@ -73,7 +73,7 @@ void NPC::DisplayWaypointInfo(Client *c) {
|
||||
std::vector<wplist>::iterator cur, end;
|
||||
cur = Waypoints.begin();
|
||||
end = Waypoints.end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
c->Message(0,"Waypoint %d: (%.2f,%.2f,%.2f,%.2f) pause %d",
|
||||
cur->index,
|
||||
cur->x,
|
||||
@ -272,12 +272,8 @@ void NPC::CalculateNewWaypoint()
|
||||
std::list<wplist>::iterator iter = closest.begin();
|
||||
if(closest.size() != 0)
|
||||
{
|
||||
int idx = MakeRandomInt(0, closest.size() - 1);
|
||||
iter = closest.begin();
|
||||
for(int i = 0; i < idx; ++i)
|
||||
{
|
||||
iter++;
|
||||
}
|
||||
std::advance(iter, MakeRandomInt(0, closest.size() - 1));
|
||||
cur_wp = (*iter).index;
|
||||
}
|
||||
|
||||
@ -335,7 +331,7 @@ void NPC::CalculateNewWaypoint()
|
||||
{
|
||||
if(CheckLosFN((*iter).x, (*iter).y, (*iter).z, GetSize()))
|
||||
{
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -345,12 +341,8 @@ void NPC::CalculateNewWaypoint()
|
||||
|
||||
if(closest.size() != 0)
|
||||
{
|
||||
int idx = MakeRandomInt(0, closest.size() - 1);
|
||||
iter = closest.begin();
|
||||
for(int i = 0; i < idx; ++i)
|
||||
{
|
||||
iter++;
|
||||
}
|
||||
std::advance(iter, MakeRandomInt(0, closest.size() - 1));
|
||||
cur_wp = (*iter).index;
|
||||
}
|
||||
break;
|
||||
@ -406,7 +398,7 @@ void NPC::GetClosestWaypoint(std::list<wplist> &wp_list, int count, float m_x, f
|
||||
for(int i = 0; i < count; ++i)
|
||||
{
|
||||
wp_list.push_back(Waypoints[(*iter).index]);
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -341,7 +341,7 @@ int Zone::SaveTempItem(uint32 merchantid, uint32 npcid, uint32 item, int32 charg
|
||||
std::list<MerchantList> merlist = merchanttable[merchantid];
|
||||
std::list<MerchantList>::const_iterator itr;
|
||||
uint32 i = 1;
|
||||
for(itr = merlist.begin();itr != merlist.end();itr++){
|
||||
for (itr = merlist.begin(); itr != merlist.end(); ++itr) {
|
||||
MerchantList ml = *itr;
|
||||
if(ml.item == item)
|
||||
return 0;
|
||||
@ -357,7 +357,7 @@ int Zone::SaveTempItem(uint32 merchantid, uint32 npcid, uint32 item, int32 charg
|
||||
TempMerchantList ml;
|
||||
while(freeslot == 0 && !update_charges){
|
||||
freeslot = i;
|
||||
for(tmp_itr = tmp_merlist.begin();tmp_itr != tmp_merlist.end();tmp_itr++){
|
||||
for (tmp_itr = tmp_merlist.begin(); tmp_itr != tmp_merlist.end(); ++tmp_itr) {
|
||||
ml = *tmp_itr;
|
||||
if(ml.item == item){
|
||||
update_charges = true;
|
||||
@ -373,7 +373,7 @@ int Zone::SaveTempItem(uint32 merchantid, uint32 npcid, uint32 item, int32 charg
|
||||
if(update_charges){
|
||||
tmp_merlist.clear();
|
||||
std::list<TempMerchantList> oldtmp_merlist = tmpmerchanttable[npcid];
|
||||
for(tmp_itr = oldtmp_merlist.begin();tmp_itr != oldtmp_merlist.end();tmp_itr++){
|
||||
for (tmp_itr = oldtmp_merlist.begin(); tmp_itr != oldtmp_merlist.end(); ++tmp_itr) {
|
||||
TempMerchantList ml2 = *tmp_itr;
|
||||
if(ml2.item != item)
|
||||
tmp_merlist.push_back(ml2);
|
||||
@ -419,7 +419,7 @@ uint32 Zone::GetTempMerchantQuantity(uint32 NPCID, uint32 Slot) {
|
||||
std::list<TempMerchantList> TmpMerchantList = tmpmerchanttable[NPCID];
|
||||
std::list<TempMerchantList>::const_iterator Iterator;
|
||||
|
||||
for(Iterator = TmpMerchantList.begin(); Iterator != TmpMerchantList.end(); Iterator++)
|
||||
for (Iterator = TmpMerchantList.begin(); Iterator != TmpMerchantList.end(); ++Iterator)
|
||||
if((*Iterator).slot == Slot)
|
||||
return (*Iterator).charges;
|
||||
|
||||
@ -527,7 +527,7 @@ void Zone::LoadMerchantData_result(MYSQL_RES* result) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
iter++;
|
||||
++iter;
|
||||
}
|
||||
|
||||
if(found) {
|
||||
@ -617,7 +617,7 @@ void Zone::LoadMercTemplates(){
|
||||
tempMercTemplate.Stances[i] = 0;
|
||||
}
|
||||
|
||||
for(std::list<MercStanceInfo>::iterator mercStanceListItr = merc_stances.begin(); mercStanceListItr != merc_stances.end(); mercStanceListItr++) {
|
||||
for (std::list<MercStanceInfo>::iterator mercStanceListItr = merc_stances.begin(); mercStanceListItr != merc_stances.end(); ++mercStanceListItr) {
|
||||
if(mercStanceListItr->ClassID == tempMercTemplate.ClassID && mercStanceListItr->ProficiencyID == tempMercTemplate.ProficiencyID) {
|
||||
zone->merc_stance_list[tempMercTemplate.MercTemplateID].push_back((*mercStanceListItr));
|
||||
tempMercTemplate.Stances[stanceIndex] = mercStanceListItr->StanceID;
|
||||
|
||||
@ -3193,7 +3193,7 @@ bool ZoneDatabase::GetFactionIdsForNPC(uint32 nfl_id, std::list<struct NPCFactio
|
||||
std::list<struct NPCFaction*>::iterator cur,end;
|
||||
cur = faction_list->begin();
|
||||
end = faction_list->end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
struct NPCFaction* tmp = *cur;
|
||||
safe_delete(tmp);
|
||||
}
|
||||
@ -3212,7 +3212,7 @@ bool ZoneDatabase::GetFactionIdsForNPC(uint32 nfl_id, std::list<struct NPCFactio
|
||||
std::list<struct NPCFaction*>::iterator cur,end;
|
||||
cur = faction_list->begin();
|
||||
end = faction_list->end();
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
struct NPCFaction* tmp = *cur;
|
||||
safe_delete(tmp);
|
||||
}
|
||||
|
||||
@ -793,7 +793,7 @@ void Client::SendZoneFlagInfo(Client *to) const {
|
||||
|
||||
to->Message(0, "Flags for %s:", GetName());
|
||||
|
||||
for(; cur != end; cur++) {
|
||||
for(; cur != end; ++cur) {
|
||||
uint32 zoneid = *cur;
|
||||
|
||||
const char *short_name = database.GetZoneName(zoneid);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user