mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-16 05:11:29 +00:00
Merge branch 'master' of https://github.com/EQEmu/Server
This commit is contained in:
commit
c0081a0983
@ -1,5 +1,8 @@
|
|||||||
EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
||||||
-------------------------------------------------------
|
-------------------------------------------------------
|
||||||
|
== 11/22/2015 ==
|
||||||
|
Uleat: Fix for loginserver project compile failure
|
||||||
|
|
||||||
== 11/7/2015 ==
|
== 11/7/2015 ==
|
||||||
Akkadius: Implemented #repopclose [distance in units] - Used for development purposes, defaults to 500 units
|
Akkadius: Implemented #repopclose [distance in units] - Used for development purposes, defaults to 500 units
|
||||||
- Real case use: Large zones with 700 NPC's and you are making fast quick tweaks to nearby NPC's you can refresh just the NPC's around you instead of all in the zone
|
- Real case use: Large zones with 700 NPC's and you are making fast quick tweaks to nearby NPC's you can refresh just the NPC's around you instead of all in the zone
|
||||||
|
|||||||
@ -43,7 +43,7 @@ ADD_EXECUTABLE(loginserver ${eqlogin_sources} ${eqlogin_headers})
|
|||||||
|
|
||||||
INSTALL(TARGETS loginserver RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX})
|
INSTALL(TARGETS loginserver RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX})
|
||||||
|
|
||||||
TARGET_LINK_LIBRARIES(loginserver common debug ${MySQL_LIBRARY_DEBUG} optimized ${MySQL_LIBRARY_RELEASE})
|
TARGET_LINK_LIBRARIES(loginserver common debug ${MySQL_LIBRARY_DEBUG} optimized ${MySQL_LIBRARY_RELEASE} ${ZLIB_LIBRARY})
|
||||||
|
|
||||||
IF(MSVC)
|
IF(MSVC)
|
||||||
SET_TARGET_PROPERTIES(loginserver PROPERTIES LINK_FLAGS_RELEASE "/OPT:REF /OPT:ICF")
|
SET_TARGET_PROPERTIES(loginserver PROPERTIES LINK_FLAGS_RELEASE "/OPT:REF /OPT:ICF")
|
||||||
|
|||||||
@ -26,8 +26,6 @@
|
|||||||
extern ErrorLog *server_log;
|
extern ErrorLog *server_log;
|
||||||
extern LoginServer server;
|
extern LoginServer server;
|
||||||
|
|
||||||
#pragma comment(lib, "mysqlclient.lib")
|
|
||||||
|
|
||||||
DatabaseMySQL::DatabaseMySQL(string user, string pass, string host, string port, string name)
|
DatabaseMySQL::DatabaseMySQL(string user, string pass, string host, string port, string name)
|
||||||
{
|
{
|
||||||
this->user = user;
|
this->user = user;
|
||||||
|
|||||||
10
zone/bot.cpp
10
zone/bot.cpp
@ -2026,6 +2026,16 @@ void Bot::LoadPetBuffs(SpellBuff_Struct* petBuffs, uint32 botPetSaveId) {
|
|||||||
petBuffs[buffIndex].spellid = atoi(row[0]);
|
petBuffs[buffIndex].spellid = atoi(row[0]);
|
||||||
petBuffs[buffIndex].level = atoi(row[1]);
|
petBuffs[buffIndex].level = atoi(row[1]);
|
||||||
petBuffs[buffIndex].duration = atoi(row[2]);
|
petBuffs[buffIndex].duration = atoi(row[2]);
|
||||||
|
//Work around for loading the counters and setting them back to max. Need entry in DB for saved counters
|
||||||
|
if(CalculatePoisonCounters(petBuffs[buffIndex].spellid) > 0)
|
||||||
|
petBuffs[buffIndex].counters = CalculatePoisonCounters(petBuffs[buffIndex].spellid);
|
||||||
|
else if(CalculateDiseaseCounters(petBuffs[buffIndex].spellid) > 0)
|
||||||
|
petBuffs[buffIndex].counters = CalculateDiseaseCounters(petBuffs[buffIndex].spellid);
|
||||||
|
else if(CalculateCurseCounters(petBuffs[buffIndex].spellid) > 0)
|
||||||
|
petBuffs[buffIndex].counters = CalculateCurseCounters(petBuffs[buffIndex].spellid);
|
||||||
|
else if(CalculateCorruptionCounters(petBuffs[buffIndex].spellid) > 0)
|
||||||
|
petBuffs[buffIndex].counters = CalculateCorruptionCounters(petBuffs[buffIndex].spellid);
|
||||||
|
|
||||||
buffIndex++;
|
buffIndex++;
|
||||||
}
|
}
|
||||||
query = StringFormat("DELETE FROM `bot_pet_buffs` WHERE `pets_index` = %u;", botPetSaveId);
|
query = StringFormat("DELETE FROM `bot_pet_buffs` WHERE `pets_index` = %u;", botPetSaveId);
|
||||||
|
|||||||
@ -468,17 +468,27 @@ void EntityList::CorpseProcess()
|
|||||||
|
|
||||||
void EntityList::MobProcess()
|
void EntityList::MobProcess()
|
||||||
{
|
{
|
||||||
#ifdef IDLE_WHEN_EMPTY
|
bool mob_dead;
|
||||||
if (numclients < 1)
|
|
||||||
return;
|
|
||||||
#endif
|
|
||||||
auto it = mob_list.begin();
|
auto it = mob_list.begin();
|
||||||
while (it != mob_list.end()) {
|
while (it != mob_list.end()) {
|
||||||
uint16 id = it->first;
|
uint16 id = it->first;
|
||||||
Mob *mob = it->second;
|
Mob *mob = it->second;
|
||||||
|
|
||||||
size_t sz = mob_list.size();
|
size_t sz = mob_list.size();
|
||||||
bool p_val = mob->Process();
|
|
||||||
|
#ifdef IDLE_WHEN_EMPTY
|
||||||
|
// spawn_events can cause spawns and deaths while zone empty.
|
||||||
|
// At the very least, process that.
|
||||||
|
if (numclients < 1) {
|
||||||
|
mob_dead = mob->CastToNPC()->GetDepop();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
mob_dead = !mob->Process();
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
mob_dead = !mob->Process();
|
||||||
|
#endif
|
||||||
size_t a_sz = mob_list.size();
|
size_t a_sz = mob_list.size();
|
||||||
|
|
||||||
if(a_sz > sz) {
|
if(a_sz > sz) {
|
||||||
@ -491,7 +501,7 @@ void EntityList::MobProcess()
|
|||||||
++it;
|
++it;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!p_val) {
|
if(mob_dead) {
|
||||||
if(mob->IsNPC()) {
|
if(mob->IsNPC()) {
|
||||||
entity_list.RemoveNPC(id);
|
entity_list.RemoveNPC(id);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user