mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-13 18:51:29 +00:00
[Quest API] Allow EVENT_ZONE to be parsed as non-zero to prevent zoning. (#2052)
- This will allow server operators to prevent zoning to or from a specific zone based on whatever criteria they want.
This commit is contained in:
parent
fb2aee1827
commit
e5f924d1d5
@ -1443,7 +1443,9 @@ void PerlembParser::ExportEventVariables(
|
|||||||
}
|
}
|
||||||
|
|
||||||
case EVENT_ZONE: {
|
case EVENT_ZONE: {
|
||||||
ExportVar(package_name.c_str(), "target_zone_id", data);
|
Seperator sep(data);
|
||||||
|
ExportVar(package_name.c_str(), "from_zone_id", sep.arg[0]);
|
||||||
|
ExportVar(package_name.c_str(), "target_zone_id", sep.arg[1]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -406,7 +406,12 @@ void handle_player_task_fail(QuestInterface *parse, lua_State* L, Client* client
|
|||||||
|
|
||||||
void handle_player_zone(QuestInterface *parse, lua_State* L, Client* client, std::string data, uint32 extra_data,
|
void handle_player_zone(QuestInterface *parse, lua_State* L, Client* client, std::string data, uint32 extra_data,
|
||||||
std::vector<EQ::Any> *extra_pointers) {
|
std::vector<EQ::Any> *extra_pointers) {
|
||||||
lua_pushinteger(L, std::stoi(data));
|
Seperator sep(data.c_str());
|
||||||
|
|
||||||
|
lua_pushinteger(L, std::stoi(sep.arg[0]));
|
||||||
|
lua_setfield(L, -2, "from_zone_id");
|
||||||
|
|
||||||
|
lua_pushinteger(L, std::stoi(sep.arg[1]));
|
||||||
lua_setfield(L, -2, "zone_id");
|
lua_setfield(L, -2, "zone_id");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -202,8 +202,15 @@ void Client::Handle_OP_ZoneChange(const EQApplicationPacket *app) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string export_string = fmt::format("{}", target_zone_id);
|
std::string export_string = fmt::format(
|
||||||
parse->EventPlayer(EVENT_ZONE, this, export_string, 0);
|
"{} {}",
|
||||||
|
zone->GetZoneID(),
|
||||||
|
target_zone_id
|
||||||
|
);
|
||||||
|
if (parse->EventPlayer(EVENT_ZONE, this, export_string, 0) != 0) {
|
||||||
|
SendZoneCancel(zc);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
//handle circumvention of zone restrictions
|
//handle circumvention of zone restrictions
|
||||||
//we need the value when creating the outgoing packet as well.
|
//we need the value when creating the outgoing packet as well.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user