hisokafail 74 Postado 26 de Outubro Compartilhar Postado 26 de Outubro Proteção para jogadores que não forem donos da house mexer em itens. Evita falhas no sistema de house e jogadores serem roubados. game.cpp, ache: bool Game::playerMoveThing(uint32_t playerId, const Position& fromPos, uint16_t spriteId, int16_t fromStackpos, const Position& toPos, uint16_t count) E troque por: bool Game::playerMoveThing(uint32_t playerId, const Position& fromPos, uint16_t spriteId, int16_t fromStackpos, const Position& toPos, uint16_t count) { Player* player = getPlayerByID(playerId); if(!player || player->isRemoved()) return false; uint8_t fromIndex = 0; if(fromPos.x == 0xFFFF) { if(fromPos.y & 0x40) fromIndex = static_cast<uint8_t>(fromPos.z); else fromIndex = static_cast<uint8_t>(fromPos.y); } else fromIndex = fromStackpos; Tile* tileHoN = getMap()->getTile(fromPos); if(tileHoN) { HouseTile* houseTileNo = tileHoN->getHouseTile(); if(houseTileNo) { House* houseI = houseTileNo->getHouse(); if(houseI) { House* houseO = Houses::getInstance()->getHouse(houseI->getId()); if(player->getGUID() != houseO->getOwner()) { if(!houseO->isSubOwner(player)) { player->sendTextMessage(MSG_INFO_DESCR, "Sorry but you are not allowed to move item in this house."); return false; } } } } } Thing* thing = internalGetThing(player, fromPos, fromIndex, spriteId, STACKPOS_MOVE); Cylinder* toCylinder = internalGetCylinder(player, toPos); if(!thing || !toCylinder) { player->sendCancelMessage(RET_NOTPOSSIBLE); return false; } if(Creature* movingCreature = thing->getCreature()) { uint32_t delay = g_config.getNumber(ConfigManager::PUSH_CREATURE_DELAY); if(Position::areInRange<1,1,0>(movingCreature->getPosition(), player->getPosition()) && delay > 0) { SchedulerTask* task = createSchedulerTask(delay, boost::bind(&Game::playerMoveCreature, this, player->getID(), movingCreature->getID(), movingCreature->getPosition(), toCylinder->getPosition())); player->setNextActionTask(task); } else playerMoveCreature(playerId, movingCreature->getID(), movingCreature->getPosition(), toCylinder->getPosition()); } else if(thing->getItem()) playerMoveItem(playerId, fromPos, spriteId, fromStackpos, toPos, count); return true; } 3 Link para o comentário https://tibiadevs.com/forums/topic/1296-prote%C3%A7%C3%A3o-house-c/ Compartilhar em outros sites Mais opções de compartilhamento...
morduk 688 Postado 28 de Outubro Compartilhar Postado 28 de Outubro Pra qual TFS? Link para o comentário https://tibiadevs.com/forums/topic/1296-prote%C3%A7%C3%A3o-house-c/#findComment-6702 Compartilhar em outros sites Mais opções de compartilhamento...
hisokafail 74 Postado 28 de Outubro Autor Compartilhar Postado 28 de Outubro 15 horas atrás, morduk disse: Pra qual TFS? 0.3.6 Link para o comentário https://tibiadevs.com/forums/topic/1296-prote%C3%A7%C3%A3o-house-c/#findComment-6703 Compartilhar em outros sites Mais opções de compartilhamento...
hisokafail 74 Postado 28 de Outubro Autor Compartilhar Postado 28 de Outubro 15 horas atrás, morduk disse: Pra qual TFS? Postei no lugar errado, se alguém puder mover agradeço Link para o comentário https://tibiadevs.com/forums/topic/1296-prote%C3%A7%C3%A3o-house-c/#findComment-6704 Compartilhar em outros sites Mais opções de compartilhamento...
Posts Recomendados
Crie uma conta ou entre para comentar
Você precisar ser um membro para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora