mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 01:11:29 +00:00
Merge pull request #559 from TheGrandPackard/master
Fix Random Ground Spawn Z
This commit is contained in:
commit
2188be24e4
1
utils/sql/git/optional/2016_09_29_GroundSpawnsMaxZ.sql
Normal file
1
utils/sql/git/optional/2016_09_29_GroundSpawnsMaxZ.sql
Normal file
@ -0,0 +1 @@
|
|||||||
|
UPDATE ground_spawns SET max_z = -99999 WHERE max_x != min_x OR max_y != min_y
|
||||||
@ -451,6 +451,21 @@ void Object::RandomSpawn(bool send_packet) {
|
|||||||
|
|
||||||
m_data.x = zone->random.Real(m_min_x, m_max_x);
|
m_data.x = zone->random.Real(m_min_x, m_max_x);
|
||||||
m_data.y = zone->random.Real(m_min_y, m_max_y);
|
m_data.y = zone->random.Real(m_min_y, m_max_y);
|
||||||
|
|
||||||
|
if(m_data.z == BEST_Z_INVALID) {
|
||||||
|
glm::vec3 me;
|
||||||
|
me.x = m_data.x;
|
||||||
|
me.y = m_data.y;
|
||||||
|
me.z = 0;
|
||||||
|
glm::vec3 hit;
|
||||||
|
float best_z = zone->zonemap->FindClosestZ(me, &hit);
|
||||||
|
if (best_z != BEST_Z_INVALID) {
|
||||||
|
m_data.z = best_z + 0.1f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Log.Out(Logs::Detail, Logs::Zone_Server, "Object::RandomSpawn(%s): %d (%.2f, %.2f, %.2f)", m_data.object_name, m_inst->GetID(), m_data.x, m_data.y, m_data.z);
|
||||||
|
|
||||||
respawn_timer.Disable();
|
respawn_timer.Disable();
|
||||||
|
|
||||||
if(send_packet) {
|
if(send_packet) {
|
||||||
|
|||||||
@ -100,9 +100,6 @@ bool Zone::Bootup(uint32 iZoneID, uint32 iInstanceID, bool iStaticZone) {
|
|||||||
worldserver.SetZoneData(0);
|
worldserver.SetZoneData(0);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
zone->zonemap = Map::LoadMapFile(zone->map_name);
|
|
||||||
zone->watermap = WaterMap::LoadWaterMapfile(zone->map_name);
|
|
||||||
zone->pathing = PathManager::LoadPathFile(zone->map_name);
|
|
||||||
|
|
||||||
std::string tmp;
|
std::string tmp;
|
||||||
if (database.GetVariable("loglevel", tmp)) {
|
if (database.GetVariable("loglevel", tmp)) {
|
||||||
@ -878,6 +875,23 @@ Zone::~Zone() {
|
|||||||
bool Zone::Init(bool iStaticZone) {
|
bool Zone::Init(bool iStaticZone) {
|
||||||
SetStaticZone(iStaticZone);
|
SetStaticZone(iStaticZone);
|
||||||
|
|
||||||
|
//load the zone config file.
|
||||||
|
if (!LoadZoneCFG(zone->GetShortName(), zone->GetInstanceVersion(), true)) // try loading the zone name...
|
||||||
|
LoadZoneCFG(zone->GetFileName(), zone->GetInstanceVersion()); // if that fails, try the file name, then load defaults
|
||||||
|
|
||||||
|
if(RuleManager::Instance()->GetActiveRulesetID() != default_ruleset)
|
||||||
|
{
|
||||||
|
std::string r_name = RuleManager::Instance()->GetRulesetName(&database, default_ruleset);
|
||||||
|
if(r_name.size() > 0)
|
||||||
|
{
|
||||||
|
RuleManager::Instance()->LoadRules(&database, r_name.c_str());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
zone->zonemap = Map::LoadMapFile(zone->map_name);
|
||||||
|
zone->watermap = WaterMap::LoadWaterMapfile(zone->map_name);
|
||||||
|
zone->pathing = PathManager::LoadPathFile(zone->map_name);
|
||||||
|
|
||||||
Log.Out(Logs::General, Logs::Status, "Loading spawn conditions...");
|
Log.Out(Logs::General, Logs::Status, "Loading spawn conditions...");
|
||||||
if(!spawn_conditions.LoadSpawnConditions(short_name, instanceid)) {
|
if(!spawn_conditions.LoadSpawnConditions(short_name, instanceid)) {
|
||||||
Log.Out(Logs::General, Logs::Error, "Loading spawn conditions failed, continuing without them.");
|
Log.Out(Logs::General, Logs::Error, "Loading spawn conditions failed, continuing without them.");
|
||||||
@ -969,19 +983,6 @@ bool Zone::Init(bool iStaticZone) {
|
|||||||
petition_list.ClearPetitions();
|
petition_list.ClearPetitions();
|
||||||
petition_list.ReadDatabase();
|
petition_list.ReadDatabase();
|
||||||
|
|
||||||
//load the zone config file.
|
|
||||||
if (!LoadZoneCFG(zone->GetShortName(), zone->GetInstanceVersion(), true)) // try loading the zone name...
|
|
||||||
LoadZoneCFG(zone->GetFileName(), zone->GetInstanceVersion()); // if that fails, try the file name, then load defaults
|
|
||||||
|
|
||||||
if(RuleManager::Instance()->GetActiveRulesetID() != default_ruleset)
|
|
||||||
{
|
|
||||||
std::string r_name = RuleManager::Instance()->GetRulesetName(&database, default_ruleset);
|
|
||||||
if(r_name.size() > 0)
|
|
||||||
{
|
|
||||||
RuleManager::Instance()->LoadRules(&database, r_name.c_str());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Log.Out(Logs::General, Logs::Status, "Loading timezone data...");
|
Log.Out(Logs::General, Logs::Status, "Loading timezone data...");
|
||||||
zone->zone_time.setEQTimeZone(database.GetZoneTZ(zoneid, GetInstanceVersion()));
|
zone->zone_time.setEQTimeZone(database.GetZoneTZ(zoneid, GetInstanceVersion()));
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user