Ir para conteúdo
  • Cadastre-se

(Resolvido)Sistema de compras de casa


Ir para solução Resolvido por LeoTK,

Posts Recomendados

Atualmente estive testando meu servidor pra comprar e vender house, porém descobri que ao comprar a casa e jogar items no piso e depois dar leave house, os itens não são enviados pro depot q se localiza a house, eles são totalmente apagados. alguem poderia me ajudar?
eu uso tfs 0.4 versão 8.6

Link para o post
Compartilhar em outros sites
  • Solução

@bpm91 vá na sua source procure em house.cpp

 

por
 

Spoiler



bool House::transferToDepot()

{

if(!townId)

return false;


Player* player = NULL;

if(owner)

{

uint32_t tmp = owner;

if(isGuild() && !IOGuild::getInstance()->swapGuildIdToOwner(tmp))

tmp = 0;



if(tmp)

player = g_game.getPlayerByGuidEx(tmp);

}


Item* item = NULL;

Container* tmpContainer = NULL;


ItemList moveList;

for(HouseTileList::iterator it = houseTiles.begin(); it != houseTiles.end(); ++it)

{

for(uint32_t i = 0; i < (*it)->getThingCount(); ++i)

{

if(!(item = (*it)->__getThing(i)->getItem()))

continue;


if(item->isPickupable())

moveList.push_back(item);

else if((tmpContainer = item->getContainer()))

{

for(ItemList::const_iterator it = tmpContainer->getItems(); it != tmpContainer->getEnd(); ++it)

moveList.push_back(*it);

}

}

}


if(player)

{

for(ItemList::iterator it = moveList.begin(); it != moveList.end(); ++it)

g_game.internalRemoveItem(NULL, (*it), (*it)->getItemCount(), false, FLAG_NOLIMIT);


if(player->isVirtual())

{

IOLoginData::getInstance()->savePlayer(player);

delete player;

}

}

else

{

for(ItemList::iterator it = moveList.begin(); it != moveList.end(); ++it)

g_game.internalRemoveItem(NULL, (*it), (*it)->getItemCount(), false, FLAG_NOLIMIT);

}

return true;

}


 

 

e substitua por

Spoiler



bool House::transferToDepot()

{

if(!townId)

return false;


Player* player = NULL;

if(owner)

{

uint32_t tmp = owner;

if(isGuild() && !IOGuild::getInstance()->swapGuildIdToOwner(tmp))

tmp = 0;


if(tmp)

player = g_game.getPlayerByGuidEx(tmp);

}


Container* tmpContainer = NULL;

TileItemVector* items = NULL;


ItemList moveList;

for(HouseTileList::iterator it = houseTiles.begin(); it != houseTiles.end(); ++it)

{

if(!(items = (*it)->getItemList()))

continue;


for(ItemVector::iterator iit = items->begin(); iit != items->end(); ++iit)

{

if((*iit)->isPickupable())

moveList.push_back(*iit);

else if((tmpContainer = (*iit)->getContainer()))

{

for(ItemList::const_iterator cit = tmpContainer->getItems(); cit != tmpContainer->getEnd(); ++cit)

moveList.push_back(*cit);

}

}

}


if(player)

{

Depot* depot = player->getDepot(townId, true);

for(ItemList::iterator it = moveList.begin(); it != moveList.end(); ++it)

g_game.internalMoveItem(NULL, (*it)->getParent(), depot, INDEX_WHEREEVER, (*it), (*it)->getItemCount(), NULL, FLAG_NOLIMIT);


if(player->isVirtual())

{

IOLoginData::getInstance()->savePlayer(player);

delete player;

}

}

else

{

for(ItemList::iterator it = moveList.begin(); it != moveList.end(); ++it)

g_game.internalRemoveItem(NULL, (*it), (*it)->getItemCount(), false, FLAG_NOLIMIT);

}

return true;

}


 

 

Fonte da informação tirada do tópico

 

 

Compre seus Scripts Agora totalmente seguro e de forma rápida, aceitamos também encomendas.

discord.gg/phJZeHa2k4

 

Projeto ATS (Naruto)

Informações Abaixo

Facebook

Youtube
Discord

 

Tutoriais / Conteúdos

Clique Aqui

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo