mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2025-08-06 10:44:08 +00:00
Public release of the DLU server code!
Have fun!
This commit is contained in:
103
dGame/dGameMessages/PropertyDataMessage.cpp
Normal file
103
dGame/dGameMessages/PropertyDataMessage.cpp
Normal file
@@ -0,0 +1,103 @@
|
||||
#include "PropertyDataMessage.h"
|
||||
|
||||
#include "GeneralUtils.h"
|
||||
|
||||
#include "Game.h"
|
||||
#include "dLogger.h"
|
||||
#include "CDClientManager.h"
|
||||
|
||||
void GameMessages::PropertyDataMessage::Serialize(RakNet::BitStream& stream) const
|
||||
{
|
||||
stream.Write<int64_t>(0); // - property id
|
||||
|
||||
stream.Write<int32_t>(TemplateID); // - template id
|
||||
stream.Write<uint16_t>(ZoneId); // - map id
|
||||
stream.Write<uint16_t>(VendorMapId); // - vendor map id
|
||||
stream.Write<uint32_t>(1);
|
||||
|
||||
const auto& name = GeneralUtils::ASCIIToUTF16(Name);
|
||||
stream.Write(uint32_t(name.size()));
|
||||
for (uint32_t i = 0; i < name.size(); ++i) {
|
||||
stream.Write(uint16_t(name[i]));
|
||||
}
|
||||
|
||||
const auto& description = GeneralUtils::ASCIIToUTF16(Description);
|
||||
stream.Write(uint32_t(description.size()));
|
||||
for (uint32_t i = 0; i < description.size(); ++i) {
|
||||
stream.Write(uint16_t(description[i]));
|
||||
}
|
||||
|
||||
const auto& owner = GeneralUtils::ASCIIToUTF16(OwnerName);
|
||||
stream.Write(uint32_t(owner.size()));
|
||||
for (uint32_t i = 0; i < owner.size(); ++i) {
|
||||
stream.Write(uint16_t(owner[i]));
|
||||
}
|
||||
|
||||
stream.Write<LWOOBJID>(OwnerId);
|
||||
|
||||
stream.Write<uint32_t>(0); // - type
|
||||
stream.Write<uint32_t>(0); // - zone code
|
||||
stream.Write<uint32_t>(0); // - minimum price
|
||||
stream.Write<uint32_t>(1); // - rent duration
|
||||
|
||||
stream.Write(ClaimedTime); // - timestamp
|
||||
|
||||
stream.Write<uint32_t>(1);
|
||||
|
||||
stream.Write<uint64_t>(0);
|
||||
|
||||
const auto& spawn = GeneralUtils::ASCIIToUTF16(SpawnName);
|
||||
stream.Write(uint32_t(spawn.size()));
|
||||
for (uint32_t i = 0; i < spawn.size(); ++i) {
|
||||
stream.Write(uint16_t(spawn[i]));
|
||||
}
|
||||
|
||||
stream.Write<uint32_t>(0); // String length
|
||||
stream.Write<uint32_t>(0); // String length
|
||||
|
||||
stream.Write<uint32_t>(0); // - duration type
|
||||
stream.Write<uint32_t>(1);
|
||||
stream.Write<uint32_t>(1);
|
||||
|
||||
stream.Write<char>(PrivacyOption);
|
||||
|
||||
stream.Write<uint64_t>(0);
|
||||
|
||||
stream.Write<uint32_t>(1);
|
||||
|
||||
stream.Write<uint32_t>(0); // String length
|
||||
|
||||
stream.Write<uint64_t>(0);
|
||||
|
||||
stream.Write<uint32_t>(1);
|
||||
stream.Write<uint32_t>(1);
|
||||
|
||||
stream.Write<float>(ZonePosition.x);
|
||||
stream.Write<float>(ZonePosition.y);
|
||||
stream.Write<float>(ZonePosition.z);
|
||||
|
||||
stream.Write<float>(MaxBuildHeight);
|
||||
|
||||
stream.Write(ClaimedTime); // - timestamp
|
||||
|
||||
stream.Write<char>(PrivacyOption);
|
||||
|
||||
stream.Write(uint32_t(Paths.size()));
|
||||
|
||||
for (const auto& path : Paths)
|
||||
{
|
||||
stream.Write(path.x);
|
||||
stream.Write(path.y);
|
||||
stream.Write(path.z);
|
||||
}
|
||||
}
|
||||
|
||||
GameMessages::PropertyDataMessage::PropertyDataMessage(uint32_t mapID) {
|
||||
const auto propertyTemplate = CDClientManager::Instance()->
|
||||
GetTable<CDPropertyTemplateTable>("PropertyTemplate")->GetByMapID(mapID);
|
||||
|
||||
TemplateID = propertyTemplate.id;
|
||||
ZoneId = propertyTemplate.mapID;
|
||||
VendorMapId = propertyTemplate.vendorMapID;
|
||||
SpawnName = propertyTemplate.spawnName;
|
||||
}
|
Reference in New Issue
Block a user