mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 13:41:31 +00:00
Merge pull request #1100 from noudess/empty_processing
Allow quests to turn on mob processing in empty zones
This commit is contained in:
commit
24a8ca39d3
@ -2071,6 +2071,19 @@ XS(XS__repopzone) {
|
|||||||
XSRETURN_EMPTY;
|
XSRETURN_EMPTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
XS(XS__processmobswhilezoneempty);
|
||||||
|
XS(XS__processmobswhilezoneempty) {
|
||||||
|
dXSARGS;
|
||||||
|
if (items != 1)
|
||||||
|
Perl_croak(aTHX_ "Usage: quest::processmobswhilezoneempty(bool on)");
|
||||||
|
|
||||||
|
bool ProcessingOn = ((int) SvIV(ST(0))) == 0 ? false : true;
|
||||||
|
|
||||||
|
quest_manager.processmobswhilezoneempty(ProcessingOn);
|
||||||
|
|
||||||
|
XSRETURN_EMPTY;
|
||||||
|
}
|
||||||
|
|
||||||
XS(XS__npcrace);
|
XS(XS__npcrace);
|
||||||
XS(XS__npcrace) {
|
XS(XS__npcrace) {
|
||||||
dXSARGS;
|
dXSARGS;
|
||||||
@ -6291,6 +6304,7 @@ EXTERN_C XS(boot_quest) {
|
|||||||
newXS(strcpy(buf, "playersize"), XS__playersize, file);
|
newXS(strcpy(buf, "playersize"), XS__playersize, file);
|
||||||
newXS(strcpy(buf, "playertexture"), XS__playertexture, file);
|
newXS(strcpy(buf, "playertexture"), XS__playertexture, file);
|
||||||
newXS(strcpy(buf, "popup"), XS__popup, file);
|
newXS(strcpy(buf, "popup"), XS__popup, file);
|
||||||
|
newXS(strcpy(buf, "processmobswhilezoneempty"), XS__processmobswhilezoneempty, file);
|
||||||
newXS(strcpy(buf, "pvp"), XS__pvp, file);
|
newXS(strcpy(buf, "pvp"), XS__pvp, file);
|
||||||
newXS(strcpy(buf, "qs_player_event"), XS__qs_player_event, file);
|
newXS(strcpy(buf, "qs_player_event"), XS__qs_player_event, file);
|
||||||
newXS(strcpy(buf, "qs_send_query"), XS__qs_send_query, file);
|
newXS(strcpy(buf, "qs_send_query"), XS__qs_send_query, file);
|
||||||
|
|||||||
@ -515,7 +515,7 @@ void EntityList::MobProcess()
|
|||||||
mob_settle_timer->Disable();
|
mob_settle_timer->Disable();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (numclients > 0 ||
|
if (zone->process_mobs_while_empty || numclients > 0 ||
|
||||||
mob->GetWanderType() == 4 || mob->GetWanderType() == 6 ||
|
mob->GetWanderType() == 4 || mob->GetWanderType() == 6 ||
|
||||||
mob_settle_timer->Enabled()) {
|
mob_settle_timer->Enabled()) {
|
||||||
// Normal processing, or assuring that spawns that should
|
// Normal processing, or assuring that spawns that should
|
||||||
|
|||||||
@ -390,6 +390,10 @@ void lua_repop_zone() {
|
|||||||
quest_manager.repopzone();
|
quest_manager.repopzone();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void lua_process_mobs_while_zone_empty(bool on) {
|
||||||
|
quest_manager.processmobswhilezoneempty(on);
|
||||||
|
}
|
||||||
|
|
||||||
bool lua_is_disc_tome(int item_id) {
|
bool lua_is_disc_tome(int item_id) {
|
||||||
return quest_manager.isdisctome(item_id);
|
return quest_manager.isdisctome(item_id);
|
||||||
}
|
}
|
||||||
@ -2396,6 +2400,7 @@ luabind::scope lua_register_general() {
|
|||||||
luabind::def("depop_all", (void(*)(int))&lua_depop_all),
|
luabind::def("depop_all", (void(*)(int))&lua_depop_all),
|
||||||
luabind::def("depop_zone", &lua_depop_zone),
|
luabind::def("depop_zone", &lua_depop_zone),
|
||||||
luabind::def("repop_zone", &lua_repop_zone),
|
luabind::def("repop_zone", &lua_repop_zone),
|
||||||
|
luabind::def("process_mobs_while_zone_empty", &lua_process_mobs_while_zone_empty),
|
||||||
luabind::def("is_disc_tome", &lua_is_disc_tome),
|
luabind::def("is_disc_tome", &lua_is_disc_tome),
|
||||||
luabind::def("get_race_name", (std::string(*)(uint16))&lua_get_race_name),
|
luabind::def("get_race_name", (std::string(*)(uint16))&lua_get_race_name),
|
||||||
luabind::def("get_spell_name", (std::string(*)(uint32))&lua_get_spell_name),
|
luabind::def("get_spell_name", (std::string(*)(uint32))&lua_get_spell_name),
|
||||||
|
|||||||
@ -857,6 +857,15 @@ void QuestManager::repopzone() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QuestManager::processmobswhilezoneempty(bool on) {
|
||||||
|
if(zone) {
|
||||||
|
zone->process_mobs_while_empty = on;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
LogQuests("QuestManager::processmobswhilezoneempty called with nullptr zone. Probably syntax error in quest file");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void QuestManager::settarget(const char *type, int target_id) {
|
void QuestManager::settarget(const char *type, int target_id) {
|
||||||
QuestManagerCurrentQuestVars();
|
QuestManagerCurrentQuestVars();
|
||||||
if (!owner || !owner->IsNPC())
|
if (!owner || !owner->IsNPC())
|
||||||
|
|||||||
@ -101,6 +101,7 @@ public:
|
|||||||
void depopall(int npc_type = 0);
|
void depopall(int npc_type = 0);
|
||||||
void depopzone(bool StartSpawnTimer = true);
|
void depopzone(bool StartSpawnTimer = true);
|
||||||
void repopzone();
|
void repopzone();
|
||||||
|
void processmobswhilezoneempty(bool on);
|
||||||
void settarget(const char *type, int target_id);
|
void settarget(const char *type, int target_id);
|
||||||
void follow(int entity_id, int distance);
|
void follow(int entity_id, int distance);
|
||||||
void sfollow();
|
void sfollow();
|
||||||
|
|||||||
@ -953,6 +953,7 @@ Zone::Zone(uint32 in_zoneid, uint32 in_instanceid, const char* in_short_name)
|
|||||||
default_ruleset = 0;
|
default_ruleset = 0;
|
||||||
|
|
||||||
is_zone_time_localized = false;
|
is_zone_time_localized = false;
|
||||||
|
process_mobs_while_empty = false;
|
||||||
|
|
||||||
loglevelvar = 0;
|
loglevelvar = 0;
|
||||||
merchantvar = 0;
|
merchantvar = 0;
|
||||||
|
|||||||
@ -101,6 +101,7 @@ public:
|
|||||||
AA::Ability *GetAlternateAdvancementAbilityByRank(int rank_id);
|
AA::Ability *GetAlternateAdvancementAbilityByRank(int rank_id);
|
||||||
AA::Rank *GetAlternateAdvancementRank(int rank_id);
|
AA::Rank *GetAlternateAdvancementRank(int rank_id);
|
||||||
bool is_zone_time_localized;
|
bool is_zone_time_localized;
|
||||||
|
bool process_mobs_while_empty;
|
||||||
bool AggroLimitReached() { return (aggroedmobs > 10) ? true : false; }
|
bool AggroLimitReached() { return (aggroedmobs > 10) ? true : false; }
|
||||||
bool AllowMercs() const { return (allow_mercs); }
|
bool AllowMercs() const { return (allow_mercs); }
|
||||||
bool CanBind() const { return (can_bind); }
|
bool CanBind() const { return (can_bind); }
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user