mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-26 22:37:45 +00:00
Added land type storage / loading / usage
This commit is contained in:
parent
a3fd364837
commit
a8040d9236
6 changed files with 48 additions and 22 deletions
1
sql/update_land.sql
Normal file
1
sql/update_land.sql
Normal file
|
@ -0,0 +1 @@
|
|||
ALTER TABLE `land` ADD `Type` SMALLINT(6) NOT NULL DEFAULT '0' AFTER `LandId`;
|
|
@ -781,6 +781,13 @@ namespace Core::Common
|
|||
SharedHouse2
|
||||
};
|
||||
|
||||
enum class LandType : uint8_t
|
||||
{
|
||||
none = 0,
|
||||
FreeCompany = 1,
|
||||
Private = 2,
|
||||
};
|
||||
|
||||
struct LandPermissionSet
|
||||
{
|
||||
int16_t landId; //00
|
||||
|
|
|
@ -379,8 +379,8 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR
|
|||
std::string playerName = g_fw.get< Core::ServerZone >()->getPlayerNameFromDb( playerId );
|
||||
//memcpy( &landInfoSignPacket->data().estateGreeting, "Hello World", 11 );
|
||||
//memcpy( &landInfoSignPacket->data().estateName, land->getLandName().c_str(), land->getLandName().size() );
|
||||
//landInfoSignPacket->data().houseSize = land->getPlotSize();
|
||||
landInfoSignPacket->data().houseType = 2; // we really need to save this in the plot
|
||||
landInfoSignPacket->data().houseSize = land->getPlotSize();
|
||||
landInfoSignPacket->data().houseType = static_cast< uint8_t >( land->getLandType() );
|
||||
landInfoSignPacket->data().landId = land->getLandId();
|
||||
landInfoSignPacket->data().ownerId = player.getContentId(); // should be real owner contentId, not player.contentId()
|
||||
memcpy( &landInfoSignPacket->data().ownerName, playerName.c_str(), playerName.size() );
|
||||
|
|
|
@ -190,6 +190,7 @@ Core::LandPurchaseResult Core::HousingZone::purchseLand( Entity::Player& player,
|
|||
player.removeCurrency( CurrencyType::Gil, plotPrice );
|
||||
pLand->setPlayerOwner( player.getId() );
|
||||
pLand->setState( HouseState::sold );
|
||||
pLand->setLandType( Common::LandType::Private );
|
||||
player.setLandPermissions( LandPermissionSlot::Private, 0x00, plot,
|
||||
pHousing->getWardNum(), pHousing->getTerritoryTypeId() );
|
||||
player.sendLandPermissions();
|
||||
|
|
|
@ -35,7 +35,8 @@ Core::Land::Land( uint16_t zoneId, uint8_t wardNum, uint8_t landId, uint32_t lan
|
|||
m_nextDrop( static_cast< uint32_t >( Util::getTimeSeconds() ) + 21600 ),
|
||||
m_ownerPlayerId( 0 ),
|
||||
m_landSetId( landSetId ),
|
||||
m_landInfo( info )
|
||||
m_landInfo( info ),
|
||||
m_type( Common::LandType::Private )
|
||||
{
|
||||
memset( &m_land, 0x00, sizeof( LandStruct ) );
|
||||
memset( &m_tag, 0x00, 3 );
|
||||
|
@ -57,8 +58,9 @@ void Core::Land::load()
|
|||
"AND LandId = " + std::to_string( m_landId ) );
|
||||
if( !res->next() )
|
||||
{
|
||||
pDb->directExecute( "INSERT INTO land ( landsetid, landid, size, status, landprice ) "
|
||||
pDb->directExecute( "INSERT INTO land ( landsetid, landid, type, size, status, landprice ) "
|
||||
"VALUES ( " + std::to_string( m_landSetId ) + "," + std::to_string( m_landId ) + ","
|
||||
+ std::to_string( static_cast< uint8_t >( m_type ) ) + ","
|
||||
+ std::to_string( m_landInfo->sizes[ m_landId ] ) + ","
|
||||
+ " 1, " + std::to_string( m_landInfo->prices[ m_landId ] ) + " );" );
|
||||
|
||||
|
@ -69,6 +71,7 @@ void Core::Land::load()
|
|||
}
|
||||
else
|
||||
{
|
||||
m_type = static_cast< Common::LandType >( res->getUInt( "Type" ) );
|
||||
m_land.plotSize = res->getUInt( "Size" );
|
||||
m_land.houseState = res->getUInt( "Status" );
|
||||
m_currentPrice = res->getUInt( "LandPrice" );
|
||||
|
@ -161,51 +164,61 @@ void Core::Land::setLandName( const std::string& name )
|
|||
memcpy( &m_landName, name.c_str(), 20 );
|
||||
}
|
||||
|
||||
uint8_t Core::Land::getPlotSize()
|
||||
void Core::Land::setLandType( Common::LandType type )
|
||||
{
|
||||
m_type = type;
|
||||
}
|
||||
|
||||
uint8_t Core::Land::getPlotSize() const
|
||||
{
|
||||
return m_land.plotSize;
|
||||
}
|
||||
|
||||
uint8_t Core::Land::getState()
|
||||
uint8_t Core::Land::getState() const
|
||||
{
|
||||
return m_land.houseState;
|
||||
}
|
||||
|
||||
uint8_t Core::Land::getOwnership()
|
||||
uint8_t Core::Land::getOwnership() const
|
||||
{
|
||||
return m_land.iconColor;
|
||||
}
|
||||
|
||||
uint8_t Core::Land::getSharing()
|
||||
uint8_t Core::Land::getSharing() const
|
||||
{
|
||||
return m_land.iconAddIcon;
|
||||
}
|
||||
|
||||
uint32_t Core::Land::getLandSetId()
|
||||
uint32_t Core::Land::getLandSetId() const
|
||||
{
|
||||
return m_landSetId;
|
||||
}
|
||||
|
||||
uint8_t Core::Land::getWardNum()
|
||||
uint8_t Core::Land::getWardNum() const
|
||||
{
|
||||
return m_wardNum;
|
||||
}
|
||||
|
||||
uint8_t Core::Land::getLandId()
|
||||
uint8_t Core::Land::getLandId() const
|
||||
{
|
||||
return m_landId;
|
||||
}
|
||||
|
||||
uint16_t Core::Land::getZoneId()
|
||||
uint16_t Core::Land::getZoneId() const
|
||||
{
|
||||
return m_zoneId;
|
||||
}
|
||||
|
||||
std::string Core::Land::getLandName()
|
||||
std::string Core::Land::getLandName() const
|
||||
{
|
||||
return std::string( m_landName );
|
||||
}
|
||||
|
||||
Core::Common::LandType Core::Land::getLandType() const
|
||||
{
|
||||
return m_type;
|
||||
}
|
||||
|
||||
//Free Comapny
|
||||
void Core::Land::setFreeCompany( uint32_t id, uint32_t icon, uint32_t color )
|
||||
{
|
||||
|
@ -314,6 +327,7 @@ void Core::Land::UpdateLandDb()
|
|||
+ ", UpdateTime = " + std::to_string( getDevaluationTime() )
|
||||
+ ", OwnerId = " + std::to_string( getPlayerOwner() )
|
||||
+ ", HouseId = " + std::to_string( 0 ) //TODO: add house id
|
||||
+ ", Type = " + std::to_string( static_cast< uint32_t >( m_type ) ) //TODO: add house id
|
||||
+ " WHERE LandSetId = " + std::to_string( m_landSetId )
|
||||
+ " AND LandId = " + std::to_string( m_landId ) + ";" );
|
||||
}
|
||||
|
|
|
@ -26,17 +26,19 @@ namespace Core
|
|||
void setOwnership( uint8_t state );
|
||||
void setSharing( uint8_t state );
|
||||
void setLandName( const std::string& name );
|
||||
void setLandType( Common::LandType type );
|
||||
|
||||
//Gerneral
|
||||
uint8_t getPlotSize();
|
||||
uint8_t getState();
|
||||
uint8_t getOwnership();
|
||||
uint8_t getSharing();
|
||||
uint32_t getLandSetId();
|
||||
uint8_t getWardNum();
|
||||
uint8_t getLandId();
|
||||
uint16_t getZoneId();
|
||||
std::string getLandName();
|
||||
uint8_t getPlotSize() const;
|
||||
uint8_t getState() const;
|
||||
uint8_t getOwnership() const;
|
||||
uint8_t getSharing() const;
|
||||
uint32_t getLandSetId() const;
|
||||
uint8_t getWardNum() const;
|
||||
uint8_t getLandId() const;
|
||||
uint16_t getZoneId() const;
|
||||
std::string getLandName() const;
|
||||
Common::LandType getLandType() const;
|
||||
|
||||
//Free Comapny
|
||||
void setFreeCompany( uint32_t id, uint32_t icon, uint32_t color );
|
||||
|
@ -79,6 +81,7 @@ namespace Core
|
|||
uint32_t m_landSetId;
|
||||
uint16_t m_zoneId;
|
||||
Common::LandStruct m_land;
|
||||
Common::LandType m_type;
|
||||
uint32_t m_ownerPlayerId;
|
||||
Core::Data::HousingLandSetPtr m_landInfo;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue