mirror of
https://github.com/DarkflameUniverse/DarkflameServer
synced 2024-08-30 18:43:58 +00:00
resolve data setting problems
This commit is contained in:
parent
aa88f40978
commit
4863f889b0
@ -48,9 +48,6 @@ void PropertyEntranceComponent::OnEnterProperty(Entity* entity, uint32_t index,
|
|||||||
} else if (index == -1 && returnToZone) {
|
} else if (index == -1 && returnToZone) {
|
||||||
cloneId = 0;
|
cloneId = 0;
|
||||||
} else if (index >= 0) {
|
} else if (index >= 0) {
|
||||||
// Increment index once here because the first index of other player properties is 2 in the propertyQueries cache.
|
|
||||||
index++;
|
|
||||||
|
|
||||||
const auto& item = m_UserRequestedCloneMap.find(entity->GetObjectID());
|
const auto& item = m_UserRequestedCloneMap.find(entity->GetObjectID());
|
||||||
if (item == m_UserRequestedCloneMap.end()) return;
|
if (item == m_UserRequestedCloneMap.end()) return;
|
||||||
|
|
||||||
@ -101,10 +98,8 @@ void PropertyEntranceComponent::PopulateUserFriendMap(uint32_t user) {
|
|||||||
std::vector<uint32_t> PropertyEntranceComponent::GetPropertyIDsBasedOnParams(const std::string& searchText, uint32_t sortMethod, Entity* requestor) {
|
std::vector<uint32_t> PropertyEntranceComponent::GetPropertyIDsBasedOnParams(const std::string& searchText, uint32_t sortMethod, Entity* requestor) {
|
||||||
std::string query = "SELECT id, owner_id, last_updated, reputation FROM properties WHERE zone_id = ? AND (description LIKE ? OR name LIKE ? OR name LIKE ?) AND privacy_option >= ? ";
|
std::string query = "SELECT id, owner_id, last_updated, reputation FROM properties WHERE zone_id = ? AND (description LIKE ? OR name LIKE ? OR name LIKE ?) AND privacy_option >= ? ";
|
||||||
|
|
||||||
if (sortMethod == SORT_TYPE_RECENT) {
|
if (sortMethod == SORT_TYPE_REPUTATION) {
|
||||||
query += "ORDER BY last_updated DESC;";
|
query += "ORDER BY reputation DESC;";
|
||||||
} else if (sortMethod == SORT_TYPE_REPUTATION) {
|
|
||||||
query += "ORDER BY reputation DESC, last_updated DESC;";
|
|
||||||
} else {
|
} else {
|
||||||
query += "ORDER BY last_updated DESC;";
|
query += "ORDER BY last_updated DESC;";
|
||||||
}
|
}
|
||||||
@ -169,15 +164,18 @@ void PropertyEntranceComponent::OnPropertyEntranceSync(Entity* entity, bool incl
|
|||||||
|
|
||||||
std::vector<uint32_t> propertyIdsSlice(propertyIds.begin() + startIndex, propertyIds.begin() + std::min(startIndex + numResults, (int32_t)propertyIds.size()));
|
std::vector<uint32_t> propertyIdsSlice(propertyIds.begin() + startIndex, propertyIds.begin() + std::min(startIndex + numResults, (int32_t)propertyIds.size()));
|
||||||
|
|
||||||
|
std::vector<uint32_t> propertyCloneIdSlice{};
|
||||||
|
|
||||||
for (const auto& id : propertyIdsSlice) {
|
for (const auto& id : propertyIdsSlice) {
|
||||||
auto prop = this->GetPropertyData(id);
|
auto prop = this->GetPropertyData(id);
|
||||||
if (prop.CloneID != 0) {
|
if (prop.CloneID != 0) {
|
||||||
prop.PersonalData = this->GetPropertyPersonalData(prop, entity, true);
|
prop.PersonalData = this->GetPropertyPersonalData(prop, entity, true);
|
||||||
entries.push_back(prop);
|
entries.push_back(prop);
|
||||||
}
|
}
|
||||||
|
propertyCloneIdSlice.push_back(prop.CloneID);
|
||||||
}
|
}
|
||||||
|
|
||||||
this->m_UserRequestedCloneMap[entity->GetObjectID()] = propertyIdsSlice;
|
this->m_UserRequestedCloneMap[entity->GetObjectID()] = propertyCloneIdSlice;
|
||||||
|
|
||||||
GameMessages::SendPropertySelectQuery(m_Parent->GetObjectID(), startIndex, propertyIds.size() > propertyIdsSlice.size() + startIndex, character->GetPropertyCloneID(), false, true, entries, sysAddr);
|
GameMessages::SendPropertySelectQuery(m_Parent->GetObjectID(), startIndex, propertyIds.size() > propertyIdsSlice.size() + startIndex, character->GetPropertyCloneID(), false, true, entries, sysAddr);
|
||||||
}
|
}
|
||||||
@ -258,7 +256,7 @@ PropertyPersonalData PropertyEntranceComponent::GetPropertyPersonalData(Property
|
|||||||
propertyData.PrimaryData.Name = "[AWAITING APPROVAL]";
|
propertyData.PrimaryData.Name = "[AWAITING APPROVAL]";
|
||||||
propertyData.PrimaryData.Description = "[AWAITING APPROVAL]";
|
propertyData.PrimaryData.Description = "[AWAITING APPROVAL]";
|
||||||
propertyData.PrimaryData.IsModeratorApproved = true;
|
propertyData.PrimaryData.IsModeratorApproved = true;
|
||||||
propertyData.PersonalData.IsModeratorApproved = true;
|
personalData.IsModeratorApproved = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto* user = UserManager::Instance()->GetUser(queryingUser->GetSystemAddress());
|
auto* user = UserManager::Instance()->GetUser(queryingUser->GetSystemAddress());
|
||||||
@ -272,7 +270,7 @@ PropertyPersonalData PropertyEntranceComponent::GetPropertyPersonalData(Property
|
|||||||
bool ownerIsOurAccount = false;
|
bool ownerIsOurAccount = false;
|
||||||
|
|
||||||
while (isAltQueryResults->next()) {
|
while (isAltQueryResults->next()) {
|
||||||
if (queryingUser->GetCharacter()->GetPropertyCloneID() == isAltQueryResults->getInt(2)) {
|
if (propertyData.CloneID == isAltQueryResults->getInt(2)) {
|
||||||
if (isAltQueryResults->getInt(1) == propertyData.PrimaryData.OwnerID) {
|
if (isAltQueryResults->getInt(1) == propertyData.PrimaryData.OwnerID) {
|
||||||
personalData.IsOwned = true;
|
personalData.IsOwned = true;
|
||||||
}
|
}
|
||||||
|
@ -3122,7 +3122,7 @@ void GameMessages::SendPropertySelectQuery(LWOOBJID objectId, int32_t navOffset,
|
|||||||
|
|
||||||
bitStream.Write(item.PrimaryData.Reputation);
|
bitStream.Write(item.PrimaryData.Reputation);
|
||||||
|
|
||||||
bitStream.Write(false);
|
bitStream.Write(item.PersonalData.IsBestFriend);
|
||||||
bitStream.Write(item.PersonalData.IsFriend);
|
bitStream.Write(item.PersonalData.IsFriend);
|
||||||
bitStream.Write(item.PersonalData.IsModeratorApproved);
|
bitStream.Write(item.PersonalData.IsModeratorApproved);
|
||||||
bitStream.Write(item.PersonalData.IsAlt);
|
bitStream.Write(item.PersonalData.IsAlt);
|
||||||
|
Loading…
Reference in New Issue
Block a user