Blazera 8.60
blazera.net
SOBRE O BLAZERA
Um fresh start em um servidor 8.6 clássico, com real map, focado na experiência raiz do Tibia. | Classic Real Map • Fresh Start • Client 8.6 • Old School Gameplay • Active Community
Inicia em:
--
Participar
Tudo que robson pablo dos san postou
-
error ao tentar entrar no otserv
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
- (Resolvido)Erro no Site de Wodbo
-
[SafeZone] Evento by Movie & LuanLuciano
Muito bom movie, obrigrado por compartilhar! att: Robson / ADM Myth
-
msg repetindo dentro do for
entao só que nesse caso ali ele ta fora de onde o primeiro local foi criado. é meio estranho mais funcionou perfect o.o
-
msg repetindo dentro do for
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.
-
msg repetindo dentro do for
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.
-
[TFS 1.3] TARO EVENT - Novo evento para OT
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.
-
[Pedido] Scripts Tibia Coin
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.
-
erro ao dar wrap em mesas e cadeiras
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); } }
-
Download Clients 11+ IP 127.0.0.1
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
-
Account status do site e jogo
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.
-
Animated Outfits 12.31
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...
-
(Resolvido)COMO COMPILAR OTX OU TFS NO UBUNTU 16.04
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.
-
erro ao criar site ubuntu
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
-
Compilando OTCLient no Windows
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!
-
Error illegal value
mesmo problema aqui tambem :S
-
error ao tentar entrar no otserv
oi ikaroangelo21 vlw pela sugestao mais ainda sim nao funcionou mais vou postar o config pra vc config.lua
-
error ao tentar entrar no otserv
adcionei vc la Nightowl#4271
-
error ao tentar entrar no otserv
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
-
error ao tentar entrar no otserv
só ts aa nao na verdade tenho sim só n sei usar direito mais me fala ai
-
error ao tentar entrar no otserv
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.