Ir para conteúdo

robson pablo dos san

Membro
  • Registro em

  • Última visita

Tudo que robson pablo dos san postou

  1. nossa reviverão meu topico, tibiaking esse problema eu ja solucionei pode fexar o topico. na verdade eu troquei de base. alasgalux1 entra no meu gp do discord nois conversa https://discord.gg/66TJgHY
  2. isso q me da raiva mlk arruma dps n diz oque fez pra arruma, ai vem pedir ajuda quando precisa.
  3. Muito bom movie, obrigrado por compartilhar! att: Robson / ADM Myth
  4. entao só que nesse caso ali ele ta fora de onde o primeiro local foi criado. é meio estranho mais funcionou perfect o.o
  5. Obrigado pelo comentario, eu consegui resolver da seguinte forma: if #getItemsFromTable(ret_t.items) > 0 then txt = txt..'in addition to winning: '..getItemsFromTable(ret_t.items)..', ' for g = 1, #ret_t.items do player:addItem(ret_t.items[g].id, ret_t.items[g].count) local txtValue = '' for g = 1, #task_monsters do local amounte = task_monsters[g].amounte txtValue = txtValue .. ' ' .. task_monsters[g].amounte end end local amounte = getTaskInfos(player).amounte player:sendTextMessage(19, 'Parabens por finalizar a task como recompensa voce recebeu ' .. amounte .. ' myth points.') player:addRiotPoint(getTaskInfos(player).amounte) end gerei a variavel amounte ali fora e funcionou. agradeço a atenção.
  6. task_monsters = { [1] = {name = "dragon", mons_list = {"", ""}, storage = 30000, amounte = 5, amount = 1, exp = 5850, pointsTask = {1, 1}, items = {{id = 2152, count = 20}}}, [2] = {name = "snake", mons_list = {"", ""}, storage = 30001, amounte = 5, amount = 1, exp = 7500, pointsTask = {1, 1}, items = {{id = 2152, count = 20}}}, [3] = {name = "bug", mons_list = {"", "", "", "", "", ""}, storage = 30002, amounte = 5, amount = 1, exp = 20250, pointsTask = {1, 1}, items = {{id = 2152, count = 25}}}, } if msgcontains(msg, 'normal') then local ret_t = getTaskInfos(player) if ret_t then if player:getStorageValue(ret_t.storage) == ret_t.amount then local pt1 = ret_t.pointsTask[1] local pt2 = ret_t.pointsTask[2] local txt = 'Thanks for finishing the task, your awards are: ' .. (pt1 > 1 and pt1 .. ' task points' or pt1 <= 1 and pt1 .. ' task point') .. ' and ' .. (pt2 > 1 and pt2 .. ' rank points' or pt2 <= 1 and pt2 .. ' rank point') .. ', ' if #getItemsFromTable(ret_t.items) > 0 then txt = txt .. 'in addition to winning: ' .. getItemsFromTable(ret_t.items) .. ', ' for g = 1, #ret_t.items do player:addItem(ret_t.items[g].id, ret_t.items[g].count) local txtValue = '' for g = 1, #task_monsters do local amounte = task_monsters[g].amounte txtValue = txtValue .. ' ' .. task_monsters[g].amounte player:sendTextMessage(19, 'Parabens por finalizar a task como recompensa voce recebeu ' .. amounte .. ' myth points.') end end player:addRiotPoint(getTaskInfos(player).amounte) end olá tks, a msg: player:sendTextMessage(19, 'Parabens por finalizar a task como recompensa voce recebeu ' .. amounte .. ' myth points.') esta mandando todos valores da variavel amounte que esta dentro da tabela. sei que é pq ta dentro do for mais se eu colocar ela fora, a msg n aparece. agradeço desde ja s2.
  7. opa, cara primeiramente quero da os parabens, muito organizado seu script nota 11. uma pena que eu n tenho conseguido fazer funcionar em meu otx 3.10 :[[[[ ele da erro no comando pelo talkactions pra inicar e no global events nem se quer da sinal de vida, e como se o script fosse imcompativel.
  8. bom, o script que o rapaz postou acima adiciona points na coluna 'coins' da sua database se por ventura usaram o item e nao foi adicionado provavelmente nao existe a coluna 'coins' entao procurem por 'points' ou se nao criem a coluna coins na database.
  9. Olá tks, vem aqui humildemente pedir uma ajuda, meus items de house apenas mesas e cadeiras elas se transforma de wrap pra cadeira e cadeira para wrap mais depois perde o id da cadeira e fica como uma caixa de wrap que seria 26054. assim acontece com todas cadeiras e mesas. onde eu consigo configurar para quando dar wrap ela conservar o id do item que se transformou wrap e podendo voltar dinovo ao item original, pq ela transforma em caixa e perde o id e fica só como caixa de wrap id 26054. este e um exemplo: ow galerinha tk, ajuda noix ai pfv. otx 3.10. pow kd o pessoal do forum? ajuda noix ai pfv! olá tk. consegui resolver o problema, bom nao ficou bem claro pra mim oque era o bug. o procedimento que fiz para resolver foi criar outra mv em outra vps, minha conclusao sobre o erro é que foi devido a alguma lib ou a propria mv que eu usava, nao sei ao certo mais apos compilar em outra vps o bug foi corrigido. agora o problema que prossegue é quando o player da !leavehouse ou quando ele perde a house os items que nao esta em forma de caixa eles nao transformam em caixa e vao pro dps como deveria, os items normal sao transferido para o dp mais o moveis e items de decoração nao. segue abaixo meu arquivo houses.cpp. /** * The Forgotten Server - a free and open-source MMORPG server emulator * Copyright (C) 2017 Mark Samman <[email protected]> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "otpch.h" #include "pugicast.h" #include "house.h" #include "iologindata.h" #include "game.h" #include "configmanager.h" #include "bed.h" extern ConfigManager g_config; extern Game g_game; House::House(uint32_t houseId) : id(houseId) {} void House::addTile(HouseTile* tile) { tile->setFlag(TILESTATE_PROTECTIONZONE); houseTiles.push_back(tile); } void House::setOwner(uint32_t guid, bool updateDatabase/* = true*/, Player* player/* = nullptr*/) { if (updateDatabase && owner != guid) { Database& db = Database::getInstance(); std::ostringstream query; query << "UPDATE `houses` SET `owner` = " << guid << ", `bid` = 0, `bid_end` = 0, `last_bid` = 0, `highest_bidder` = 0 WHERE `id` = " << id; db.executeQuery(query.str()); } if (isLoaded && owner == guid) { return; } isLoaded = true; if (owner != 0) { //send items to depot if (player) { transferToDepot(player); } else { transferToDepot(); } for (HouseTile* tile : houseTiles) { if (const CreatureVector* creatures = tile->getCreatures()) { for (int32_t i = creatures->size(); --i >= 0;) { kickPlayer(nullptr, (*creatures)[i]->getPlayer()); } } } // Remove players from beds for (BedItem* bed : bedsList) { if (bed->getSleeper() != 0) { bed->wakeUp(nullptr); } } //clean access lists owner = 0; setAccessList(SUBOWNER_LIST, ""); setAccessList(GUEST_LIST, ""); for (Door* door : doorList) { door->setAccessList(""); } //reset paid date paidUntil = 0; rentWarnings = 0; } if (guid != 0) { std::string name = IOLoginData::getNameByGuid(guid); if (!name.empty()) { owner = guid; ownerName = name; } } updateDoorDescription(); } void House::updateDoorDescription() const { std::ostringstream ss; if (owner != 0) { ss << "It belongs to house '" << houseName << "'. " << ownerName << " owns this house."; } else { ss << "It belongs to house '" << houseName << "'. Nobody owns this house."; const int32_t housePrice = g_config.getNumber(ConfigManager::HOUSE_PRICE); if (housePrice != -1) { ss << " It costs " << (houseTiles.size() * housePrice) << " gold coins."; } } for (const auto& it : doorList) { it->setSpecialDescription(ss.str()); } } AccessHouseLevel_t House::getHouseAccessLevel(const Player* player) { if (!player) { return HOUSE_OWNER; } if (player->hasFlag(PlayerFlag_CanEditHouses)) { return HOUSE_OWNER; } if (player->getGUID() == owner) { return HOUSE_OWNER; } if (subOwnerList.isInList(player)) { return HOUSE_SUBOWNER; } if (guestList.isInList(player)) { return HOUSE_GUEST; } return HOUSE_NOT_INVITED; } bool House::kickPlayer(Player* player, Player* target) { if (!target) { return false; } HouseTile* houseTile = dynamic_cast<HouseTile*>(target->getTile()); if (!houseTile || houseTile->getHouse() != this) { return false; } if (getHouseAccessLevel(player) < getHouseAccessLevel(target) || target->hasFlag(PlayerFlag_CanEditHouses)) { return false; } Position oldPosition = target->getPosition(); if (g_game.internalTeleport(target, getEntryPosition()) == RETURNVALUE_NOERROR) { g_game.addMagicEffect(oldPosition, CONST_ME_POFF); g_game.addMagicEffect(getEntryPosition(), CONST_ME_TELEPORT); } return true; } void House::setAccessList(uint32_t listId, const std::string& textlist) { if (listId == GUEST_LIST) { guestList.parseList(textlist); } else if (listId == SUBOWNER_LIST) { subOwnerList.parseList(textlist); } else { Door* door = getDoorByNumber(listId); if (door) { door->setAccessList(textlist); } // We dont have kick anyone return; } //kick uninvited players for (HouseTile* tile : houseTiles) { if (CreatureVector* creatures = tile->getCreatures()) { for (int32_t i = creatures->size(); --i >= 0;) { Player* player = (*creatures)[i]->getPlayer(); if (player && !isInvited(player)) { kickPlayer(nullptr, player); } } } } } bool House::transferToDepot() const { if (townId == 0 || owner == 0) { return false; } Player* player = g_game.getPlayerByGUID(owner); if (player) { transferToDepot(player); } else { Player tmpPlayer(nullptr); if (!IOLoginData::loadPlayerById(&tmpPlayer, owner)) { return false; } transferToDepot(&tmpPlayer); IOLoginData::savePlayer(&tmpPlayer); } return true; } bool House::transferToDepot(Player* player) const { if (townId == 0 || owner == 0) { return false; } ItemList moveItemList; for (HouseTile* tile : houseTiles) { if (const TileItemVector* items = tile->getItemList()) { for (Item* item : *items) { if (item->isWrapable()) { std::string itemName = item->getName(); uint16_t itemID = item->getID(); Item* newItem = g_game.transformItem(item, 26054); newItem->setIntAttr(ITEM_ATTRIBUTE_ACTIONID, itemID); std::ostringstream ss; ss << "Unwrap it in your own house to create a <" << itemName << ">."; newItem->setStrAttr(ITEM_ATTRIBUTE_DESCRIPTION, ss.str()); moveItemList.push_back(newItem); } else if (item->isPickupable()) { moveItemList.push_back(item); } else { Container* container = item->getContainer(); if (container) { for (Item* containerItem : container->getItemList()) { moveItemList.push_back(containerItem); } } } } } } for (Item* item : moveItemList) { g_game.internalMoveItem(item->getParent(), player->getInbox(), INDEX_WHEREEVER, item, item->getItemCount(), nullptr, FLAG_NOLIMIT); } return true; } bool House::getAccessList(uint32_t listId, std::string& list) const { if (listId == GUEST_LIST) { guestList.getList(list); return true; } else if (listId == SUBOWNER_LIST) { subOwnerList.getList(list); return true; } Door* door = getDoorByNumber(listId); if (!door) { return false; } return door->getAccessList(list); } bool House::isInvited(const Player* player) { return getHouseAccessLevel(player) != HOUSE_NOT_INVITED; } void House::addDoor(Door* door) { door->incrementReferenceCounter(); doorList.push_back(door); door->setHouse(this); updateDoorDescription(); } void House::removeDoor(Door* door) { auto it = std::find(doorList.begin(), doorList.end(), door); if (it != doorList.end()) { door->decrementReferenceCounter(); doorList.erase(it); } } void House::addBed(BedItem* bed) { bedsList.push_back(bed); bed->setHouse(this); } Door* House::getDoorByNumber(uint32_t doorId) const { for (Door* door : doorList) { if (door->getDoorId() == doorId) { return door; } } return nullptr; } Door* House::getDoorByPosition(const Position& pos) { for (Door* door : doorList) { if (door->getPosition() == pos) { return door; } } return nullptr; } bool House::canEditAccessList(uint32_t listId, const Player* player) { switch (getHouseAccessLevel(player)) { case HOUSE_OWNER: return true; case HOUSE_SUBOWNER: return listId == GUEST_LIST; default: return false; } } HouseTransferItem* House::getTransferItem() { if (transferItem != nullptr) { return nullptr; } transfer_container.setParent(nullptr); transferItem = HouseTransferItem::createHouseTransferItem(this); transfer_container.addThing(transferItem); return transferItem; } void House::resetTransferItem() { if (transferItem) { Item* tmpItem = transferItem; transferItem = nullptr; transfer_container.setParent(nullptr); transfer_container.removeThing(tmpItem, tmpItem->getItemCount()); g_game.ReleaseItem(tmpItem); } } HouseTransferItem* HouseTransferItem::createHouseTransferItem(House* house) { HouseTransferItem* transferItem = new HouseTransferItem(house); transferItem->incrementReferenceCounter(); transferItem->setID(ITEM_DOCUMENT_RO); transferItem->setSubType(1); std::ostringstream ss; ss << "It is a house transfer document for '" << house->getName() << "'."; transferItem->setSpecialDescription(ss.str()); return transferItem; } void HouseTransferItem::onTradeEvent(TradeEvents_t event, Player* owner) { if (event == ON_TRADE_TRANSFER) { if (house) { house->executeTransfer(this, owner); } g_game.internalRemoveItem(this, 1); } else if (event == ON_TRADE_CANCEL) { if (house) { house->resetTransferItem(); } } } bool House::executeTransfer(HouseTransferItem* item, Player* newOwner) { if (transferItem != item) { return false; } setOwner(newOwner->getGUID()); transferItem = nullptr; return true; } void AccessList::parseList(const std::string& list) { playerList.clear(); guildRankList.clear(); expressionList.clear(); regExList.clear(); this->list = list; if (list.empty()) { return; } std::istringstream listStream(list); std::string line; while (getline(listStream, line)) { trimString(line); trim_left(line, '\t'); trim_right(line, '\t'); trimString(line); if (line.empty() || line.front() == '#' || line.length() > 100) { continue; } toLowerCaseString(line); std::string::size_type at_pos = line.find("@"); if (at_pos != std::string::npos) { if (at_pos == 0) { addGuild(line.substr(1)); } else { addGuildRank(line.substr(0, at_pos - 1), line.substr(at_pos + 1)); } } else if (line.find("!") != std::string::npos || line.find("*") != std::string::npos || line.find("?") != std::string::npos) { addExpression(line); } else { addPlayer(line); } } } void AccessList::addPlayer(const std::string& name) { Player* player = g_game.getPlayerByName(name); if (player) { playerList.insert(player->getGUID()); } else { uint32_t guid = IOLoginData::getGuidByName(name); if (guid != 0) { playerList.insert(guid); } } } namespace { const Guild* getGuildByName(const std::string& name) { uint32_t guildId = IOGuild::getGuildIdByName(name); if (guildId == 0) { return nullptr; } const Guild* guild = g_game.getGuild(guildId); if (guild) { return guild; } return IOGuild::loadGuild(guildId); } } void AccessList::addGuild(const std::string& name) { const Guild* guild = getGuildByName(name); if (guild) { for (const auto& rank : guild->getRanks()) { guildRankList.insert(rank->id); } } } void AccessList::addGuildRank(const std::string& name, const std::string& guildName) { const Guild* guild = getGuildByName(guildName); if (guild) { const GuildRank_ptr rank = guild->getRankByName(name); if (rank) { guildRankList.insert(rank->id); } } } void AccessList::addExpression(const std::string& expression) { if (std::find(expressionList.begin(), expressionList.end(), expression) != expressionList.end()) { return; } std::string outExp; outExp.reserve(expression.length()); std::string metachars = ".[{}()\\+|^$"; for (const char c : expression) { if (metachars.find(c) != std::string::npos) { outExp.push_back('\\'); } outExp.push_back(c); } replaceString(outExp, "*", ".*"); replaceString(outExp, "?", ".?"); try { if (!outExp.empty()) { expressionList.push_back(outExp); if (outExp.front() == '!') { if (outExp.length() > 1) { regExList.emplace_front(std::regex(outExp.substr(1)), false); } } else { regExList.emplace_back(std::regex(outExp), true); } } } catch (...) {} } bool AccessList::isInList(const Player* player) { std::string name = asLowerCaseString(player->getName()); std::cmatch what; for (const auto& it : regExList) { if (std::regex_match(name.c_str(), what, it.first)) { return it.second; } } auto playerIt = playerList.find(player->getGUID()); if (playerIt != playerList.end()) { return true; } GuildRank_ptr rank = player->getGuildRank(); return rank && guildRankList.find(rank->id) != guildRankList.end(); } void AccessList::getList(std::string& list) const { list = this->list; } Door::Door(uint16_t type) : Item(type) {} Attr_ReadValue Door::readAttr(AttrTypes_t attr, PropStream& propStream) { if (attr == ATTR_HOUSEDOORID) { uint8_t doorId; if (!propStream.read<uint8_t>(doorId)) { return ATTR_READ_ERROR; } setDoorId(doorId); return ATTR_READ_CONTINUE; } return Item::readAttr(attr, propStream); } void Door::setHouse(House* house) { if (this->house != nullptr) { return; } this->house = house; if (!accessList) { accessList.reset(new AccessList()); } } bool Door::canUse(const Player* player) { if (!house) { return true; } if (house->getHouseAccessLevel(player) >= HOUSE_SUBOWNER) { return true; } return accessList->isInList(player); } void Door::setAccessList(const std::string& textlist) { if (!accessList) { accessList.reset(new AccessList()); } accessList->parseList(textlist); } bool Door::getAccessList(std::string& list) const { if (!house) { return false; } accessList->getList(list); return true; } void Door::onRemoved() { Item::onRemoved(); if (house) { house->removeDoor(this); } } House* Houses::getHouseByPlayerId(uint32_t playerId) { for (const auto& it : houseMap) { if (it.second->getOwner() == playerId) { return it.second; } } return nullptr; } bool Houses::loadHousesXML(const std::string& filename) { pugi::xml_document doc; pugi::xml_parse_result result = doc.load_file(filename.c_str()); if (!result) { printXMLError("Error - Houses::loadHousesXML", filename, result); return false; } for (auto houseNode : doc.child("houses").children()) { pugi::xml_attribute houseIdAttribute = houseNode.attribute("houseid"); if (!houseIdAttribute) { return false; } int32_t houseId = pugi::cast<int32_t>(houseIdAttribute.value()); House* house = getHouse(houseId); if (!house) { std::cout << "Error: [Houses::loadHousesXML] Unknown house, id = " << houseId << std::endl; return false; } house->setName(houseNode.attribute("name").as_string()); Position entryPos( pugi::cast<uint16_t>(houseNode.attribute("entryx").value()), pugi::cast<uint16_t>(houseNode.attribute("entryy").value()), pugi::cast<uint16_t>(houseNode.attribute("entryz").value()) ); if (entryPos.x == 0 && entryPos.y == 0 && entryPos.z == 0) { std::cout << "[Warning - Houses::loadHousesXML] House entry not set" << " - Name: " << house->getName() << " - House id: " << houseId << std::endl; } house->setEntryPos(entryPos); house->setRent(pugi::cast<uint32_t>(houseNode.attribute("rent").value())); house->setTownId(pugi::cast<uint32_t>(houseNode.attribute("townid").value())); house->setOwner(0, false); } return true; } void Houses::payHouses(RentPeriod_t rentPeriod) const { if (rentPeriod == RENTPERIOD_NEVER) { return; } time_t currentTime = time(nullptr); for (const auto& it : houseMap) { House* house = it.second; if (house->getOwner() == 0) { continue; } const uint32_t rent = house->getRent(); if (rent == 0 || house->getPaidUntil() > currentTime) { continue; } const uint32_t ownerId = house->getOwner(); Town* town = g_game.map.towns.getTown(house->getTownId()); if (!town) { continue; } Player player(nullptr); if (!IOLoginData::loadPlayerById(&player, ownerId)) { // Player doesn't exist, reset house owner house->setOwner(0); continue; } if (player.getBankBalance() >= rent) { player.setBankBalance(player.getBankBalance() - rent); time_t paidUntil = currentTime; switch (rentPeriod) { case RENTPERIOD_DAILY: paidUntil += 24 * 60 * 60; break; case RENTPERIOD_WEEKLY: paidUntil += 24 * 60 * 60 * 7; break; case RENTPERIOD_MONTHLY: paidUntil += 24 * 60 * 60 * 30; break; case RENTPERIOD_YEARLY: paidUntil += 24 * 60 * 60 * 365; break; default: break; } house->setPaidUntil(paidUntil); } else { if (house->getPayRentWarnings() < 7) { int32_t daysLeft = 7 - house->getPayRentWarnings(); Item* letter = Item::CreateItem(ITEM_LETTER_STAMPED); std::string period; switch (rentPeriod) { case RENTPERIOD_DAILY: period = "daily"; break; case RENTPERIOD_WEEKLY: period = "weekly"; break; case RENTPERIOD_MONTHLY: period = "monthly"; break; case RENTPERIOD_YEARLY: period = "annual"; break; default: break; } std::ostringstream ss; ss << "Warning! \nThe " << period << " rent of " << house->getRent() << " gold for your house \"" << house->getName() << "\" is payable. Have it within " << daysLeft << " days or you will lose this house."; letter->setText(ss.str()); g_game.internalAddItem(player.getInbox(), letter, INDEX_WHEREEVER, FLAG_NOLIMIT); house->setPayRentWarnings(house->getPayRentWarnings() + 1); } else { house->setOwner(0, true, &player); } } IOLoginData::savePlayer(&player); } }
  10. Opaa mano primeiramente parabens pelo post aposto que vai ajudar muita gente. bom eu estou tento um problema, meu servidor vai da versao 10 a 11.57 mais o unico cliente que eu consegui usar foi o 11 os outros carregam até a lista de characters e nao entra aparece uma msg offline alguns client carrega lista de espera e dps tbm da offline. bom eu tenho certeza que é apenas problema com o client ou login.php pois o servidor esta online e funcionando normalmente no client 10 e 11. eu agradeceria muito se me ajuda-se ja pesquisei bastante sobre isso e nao encontro solução pro meu problema. tdb ai manin aguardo sua resposta s2
  11. hail tibiaking! bom eu venho aqui pedir ajuda pois nao estou conseguindo configurar meu serv account status. no client aparece account status: gratis premium account: 150284684 days e quando crio a conta no site ja vem assim. e no meu servidor tem um sistema de vip. a minha ideia é o seguinte, eu queria trocar para account status: Free account e caso sejam donates que no status apareça account status: vip ai gostaria de editar os script pra dar acessos aos vip e acessos aos free por exemplo quero q free tenha acesso a todas cidade mais que só tenha alguns outfits ja os vip que tbm tenha acesso a todas cidades e todas outfits e mount. meu site é o geisor servidor otx 3.10 versao client 10 ~~ 11.57 antigo Riot Server agradeço desde ja. rep+ toda hora pra quem me ajudar Você tem o código disponível? Se tiver publique-o aqui: Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.
  12. sirarcken olá primeiramente gostaria de agradeçer seu poste, segundo gostaria que me ajuda-se a colocar as outfit no meu site pois eu usava um link e o link esta offline e nao sei adaptar ele com pasta propria. ja tentei e pesquisei varios tutoriais e nemhum resolveu poderia me ajudar? ou alguem do forum...
  13. ai deu esse erro na hora do make!! root@mythserver:/home/mythserver/forgottenserver# cmake .. CMake Error: The source directory "/home/mythserver/forgottenserver/.." does not exist. Specify --help for usage, or press the help button on the CMake GUI. root@mythserver:/home/mythserver/forgottenserver# ^C root@mythserver:/home/mythserver/forgottenserver# ^C root@mythserver:/home/mythserver/forgottenserver# ^C root@mythserver:/home/mythserver/forgottenserver# ^C root@mythserver:/home/mythserver/forgottenserver# ^C root@mythserver:/home/mythserver/forgottenserver# ^C root@mythserver:/home/mythserver/forgottenserver# ^C root@mythserver:/home/mythserver/forgottenserver# ^C root@mythserver:/home/mythserver/forgottenserver# ^C root@mythserver:/home/mythserver/forgottenserver# cd .. root@mythserver:/home/mythserver# apt-get install git cmake build-essential liblua5.2-dev libgmp3-dev libmysqlclient-dev libboost-system-dev libboost-iostreams-dev libpugixml-dev libcrypto++-dev Reading package lists... Done Building dependency tree Reading state information... Done build-essential is already the newest version (12.4ubuntu1). libboost-system-dev is already the newest version (1.65.1.0ubuntu1). libgmp3-dev is already the newest version (2:6.1.2+dfsg-2). liblua5.2-dev is already the newest version (5.2.4-1.1build1). libboost-iostreams-dev is already the newest version (1.65.1.0ubuntu1). libcrypto++-dev is already the newest version (5.6.4-8). libpugixml-dev is already the newest version (1.8.1-7). cmake is already the newest version (3.10.2-1ubuntu2.18.04.1). git is already the newest version (1:2.17.1-1ubuntu0.5). libmysqlclient-dev is already the newest version (5.7.29-0ubuntu0.18.04.1). The following packages were automatically installed and are no longer required: grub-pc-bin linux-headers-4.15.0-88 Use 'sudo apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. root@mythserver:/home/mythserver# git clone --recursive https://github.com/otland/forgottenserver.git fatal: destination path 'forgottenserver' already exists and is not an empty directory. root@mythserver:/home/mythserver# cd forgottenserver root@mythserver:/home/mythserver/forgottenserver# mkdir build root@mythserver:/home/mythserver/forgottenserver# cd build root@mythserver:/home/mythserver/forgottenserver/build# cmake .. -- The C compiler identification is GNU 7.5.0 -- The CXX compiler identification is GNU 7.5.0 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- cotire 1.7.6 loaded. -- Performing Test COMPILER_KNOWS_CXX11 -- Performing Test COMPILER_KNOWS_CXX11 - Success -- Performing Test COMPILER_KNOWS_STDLIB -- Performing Test COMPILER_KNOWS_STDLIB - Failed -- Performing Test COMPILER_KNOWS_LTO -- Performing Test COMPILER_KNOWS_LTO - Success -- Found Crypto++: /usr/include -- Found PugiXML: /usr/include -- MySQL Include dir: /usr/include/mysql library dir: /usr/lib/x86_64-linux-gnu -- MySQL client libraries: /usr/lib/x86_64-linux-gnu/libmysqlclient.so -- Looking for pthread.h -- Looking for pthread.h - found -- Looking for pthread_create -- Looking for pthread_create - not found -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE -- Could NOT find LuaJIT (missing: LUA_LIBRARIES LUA_INCLUDE_DIR) -- Found Lua: /usr/lib/x86_64-linux-gnu/liblua5.2.so;/usr/lib/x86_64-linux-gnu/libm.so (found version "") CMake Error at /usr/share/cmake-3.10/Modules/FindBoost.cmake:1947 (message): Unable to find the requested Boost libraries. Boost version: 1.65.1 Boost include path: /usr/include Could not find the following Boost libraries: boost_filesystem Some (but not all) of the required Boost libraries were found. You may need to install these additional Boost libraries. Alternatively, set BOOST_LIBRARYDIR to the directory containing Boost libraries or BOOST_ROOT to the location of Boost. Call Stack (most recent call first): CMakeLists.txt:46 (find_package) -- CXX target tfs cotired without unity build. -- Configuring incomplete, errors occurred! See also "/home/mythserver/forgottenserver/build/CMakeFiles/CMakeOutput.log". See also "/home/mythserver/forgottenserver/build/CMakeFiles/CMakeError.log". root@mythserver:/home/mythserver/forgottenserver/build# make make: *** No targets specified and no makefile found. Stop.
  14. pesso ajuda para colocar meu site online estou com problema instalei tudo apache 2 php5 mysql phpmyadmin mais quando digito o ip ele nao entra no phpmyadmin
  15. aqui deu o seguinte erro no cmake CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool. CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool. CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage Configuring incomplete, errors occurred!
  16. mesmo problema aqui tambem :S
  17. oi ikaroangelo21 vlw pela sugestao mais ainda sim nao funcionou mais vou postar o config pra vc config.lua
  18. adcionei vc la Nightowl#4271
  19. intao gente o negocio e mais complicado doque isso que vcs falaram ai.. eu testi o ip de varias formas tanto com o 127... quanto com o 192... e tbm o do no-ip pq eu criei um ip fixo tbm e nemhum deles funciona o detalhe é que quando eu coloco o do 192... no config ele da aquele erro de mysql, mas mesmo eu colocando o 127 eu nao consigo entrar no serve
  20. só ts aa nao na verdade tenho sim só n sei usar direito mais me fala ai
  21. bom... eu nao sei onde postar minha duvida entao vou postar aqui caso esteja errado peço que me desculpem e movam o post. olha estou tentando entrar no meu server e aparece o seguinte erro [22/2/2020 12:57:2] [Warning - Protocol::RSA_decrypt] Not valid packet size (IP: 127.0.0.1) tenho varias outras duvida se alguem poder me ajudar eu agradeço muito.

Informação Importante

Confirmação de Termo