mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-05-04 17:57:47 +00:00
Merge pull request #248 from goaaats/develop
Implement correct handling for private areas
This commit is contained in:
commit
e115b0bc16
4 changed files with 12 additions and 3 deletions
|
@ -22,9 +22,11 @@
|
||||||
#include "Math/CalcBattle.h"
|
#include "Math/CalcBattle.h"
|
||||||
#include "Actor.h"
|
#include "Actor.h"
|
||||||
#include "Player.h"
|
#include "Player.h"
|
||||||
|
#include "Zone/TerritoryMgr.h"
|
||||||
|
|
||||||
extern Core::ServerZone g_serverZone;
|
extern Core::ServerZone g_serverZone;
|
||||||
extern Core::Data::ExdDataGenerated g_exdDataGen;
|
extern Core::Data::ExdDataGenerated g_exdDataGen;
|
||||||
|
extern Core::TerritoryMgr g_territoryMgr;
|
||||||
|
|
||||||
using namespace Core::Common;
|
using namespace Core::Common;
|
||||||
using namespace Core::Network::Packets;
|
using namespace Core::Network::Packets;
|
||||||
|
|
|
@ -32,8 +32,6 @@ namespace Server {
|
||||||
void initialize( Entity::Player& player, Entity::Player& target )
|
void initialize( Entity::Player& player, Entity::Player& target )
|
||||||
{
|
{
|
||||||
// todo: figure out unkown offsets
|
// todo: figure out unkown offsets
|
||||||
// TODO: temporary gm rank
|
|
||||||
//m_data.gmRank = 0xff;
|
|
||||||
|
|
||||||
m_data.classJob = static_cast< uint8_t >( player.getClass() );
|
m_data.classJob = static_cast< uint8_t >( player.getClass() );
|
||||||
//m_data.status = static_cast< uint8_t >( pPlayer->getStatus() );
|
//m_data.status = static_cast< uint8_t >( pPlayer->getStatus() );
|
||||||
|
|
|
@ -116,7 +116,8 @@ bool Core::TerritoryMgr::createDefaultTerritories()
|
||||||
"\t" + std::to_string( guid ) +
|
"\t" + std::to_string( guid ) +
|
||||||
"\t" + std::to_string( territoryInfo->territoryIntendedUse ) +
|
"\t" + std::to_string( territoryInfo->territoryIntendedUse ) +
|
||||||
"\t" + territoryInfo->name +
|
"\t" + territoryInfo->name +
|
||||||
"\t" + pPlaceName->name );
|
"\t" + pPlaceName->name +
|
||||||
|
"\t" + ( isPrivateTerritory( territoryId ) ? "PRIVATE" : "PUBLIC" ) );
|
||||||
|
|
||||||
ZonePtr pZone( new Zone( territoryId, guid, territoryInfo->name, pPlaceName->name ) );
|
ZonePtr pZone( new Zone( territoryId, guid, territoryInfo->name, pPlaceName->name ) );
|
||||||
pZone->init();
|
pZone->init();
|
||||||
|
|
|
@ -35,6 +35,7 @@ extern Core::Logger g_log;
|
||||||
extern Core::ServerZone g_serverZone;
|
extern Core::ServerZone g_serverZone;
|
||||||
extern Core::Data::ExdDataGenerated g_exdDataGen;
|
extern Core::Data::ExdDataGenerated g_exdDataGen;
|
||||||
extern Core::Scripting::ScriptManager g_scriptMgr;
|
extern Core::Scripting::ScriptManager g_scriptMgr;
|
||||||
|
extern Core::TerritoryMgr g_territoryMgr;
|
||||||
|
|
||||||
namespace Core {
|
namespace Core {
|
||||||
|
|
||||||
|
@ -369,6 +370,9 @@ void Zone::removeActor( Entity::ActorPtr pActor )
|
||||||
|
|
||||||
void Zone::queueOutPacketForRange( Entity::Player& sourcePlayer, uint32_t range, Network::Packets::GamePacketPtr pPacketEntry )
|
void Zone::queueOutPacketForRange( Entity::Player& sourcePlayer, uint32_t range, Network::Packets::GamePacketPtr pPacketEntry )
|
||||||
{
|
{
|
||||||
|
if( g_territoryMgr.isPrivateTerritory( getTerritoryId() ) )
|
||||||
|
return;
|
||||||
|
|
||||||
for( auto it = m_playerMap.begin(); it != m_playerMap.end(); ++it )
|
for( auto it = m_playerMap.begin(); it != m_playerMap.end(); ++it )
|
||||||
{
|
{
|
||||||
float distance = Math::Util::distance( sourcePlayer.getPos().x,
|
float distance = Math::Util::distance( sourcePlayer.getPos().x,
|
||||||
|
@ -721,6 +725,10 @@ void Zone::updateInRangeSet( Entity::ActorPtr pActor, Cell* pCell )
|
||||||
if( pCell == nullptr )
|
if( pCell == nullptr )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// TODO: make sure gms can overwrite this. Potentially temporary solution
|
||||||
|
if( g_territoryMgr.isPrivateTerritory( getTerritoryId() ) )
|
||||||
|
return;
|
||||||
|
|
||||||
Entity::ActorPtr pCurAct;
|
Entity::ActorPtr pCurAct;
|
||||||
|
|
||||||
auto iter = pCell->m_actors.begin();
|
auto iter = pCell->m_actors.begin();
|
||||||
|
|
Loading…
Add table
Reference in a new issue