johnsamir
Advanced OT User
hello i use nekiro tfs 8.6 1.5
have added market system, the market box appears i depot i can open it but some buttons of the market box crash the server, this is what i've have found out
first code
second code:
have added market system, the market box appears i depot i can open it but some buttons of the market box crash the server, this is what i've have found out
Lua:
> theforgottenserver-x64.exe!Game::playerBrowseMarket(unsigned int playerId, unsigned short spriteId) Line 5255 C++
Code:
> theforgottenserver-x64.exe!ProtocolGame::parseMarketBrowse::__l11::<lambda>() Line 1267 C++
Code:
void Game::playerBrowseMarket(uint32_t playerId, uint16_t spriteId)
{
Player* player = getPlayerByID(playerId);
if (!player) {
return;
}
if (!player->isInMarket()) {
player->sendMarketEnter();
}
const ItemType& it = Item::items.getItemIdByClientId(spriteId);
if (it.id == 0) {
return;
}
if (it.wareId == 0) {
return;
}
const MarketOfferList& buyOffers = IOMarket::getActiveOffers(MARKETACTION_BUY, it.id);
const MarketOfferList& sellOffers = IOMarket::getActiveOffers(MARKETACTION_SELL, it.id);
player->sendMarketBrowseItem(it.id, buyOffers, sellOffers);
g_events->eventPlayerOnLookInMarket(player, &it);
}
Code:
void ProtocolGame::parseMarketBrowse(NetworkMessage& msg)
{
uint8_t browseId = msg.get<uint8_t>();
if (browseId == MARKETREQUEST_OWN_OFFERS) {
g_dispatcher.addTask([playerID = player->getID()]() { g_game.playerBrowseMarketOwnOffers(playerID); });
}
else if (browseId == MARKETREQUEST_OWN_HISTORY) {
g_dispatcher.addTask([playerID = player->getID()]() { g_game.playerBrowseMarketOwnHistory(playerID); });
}
else {
uint16_t spriteId = msg.get<uint16_t>();
g_dispatcher.addTask([=, playerID = player->getID()]() { g_game.playerBrowseMarket(playerID, spriteId); });
}
}
Attachments
-
market.png600.8 KB · Views: 35 · VirusTotal