boyfrempss 1 Postado Outubro 3, 2015 Share Postado Outubro 3, 2015 como eu faço pra instalar o site no xampp ? esse otpainel eu precisso assina pra usar, gostaria de rodar esse servidor mais nao tenho website pra rodar ele no xampp? oque eu faço ? Link para o comentário https://xtibia.com/forum/topic/233142-global-10115-otherworld-hearth-of-destruction-quest-eventos/page/13/#findComment-1670990 Compartilhar em outros sites More sharing options...
Nicolas01255 2 Postado Outubro 3, 2015 Share Postado Outubro 3, 2015 Update 10.82 Link para o comentário https://xtibia.com/forum/topic/233142-global-10115-otherworld-hearth-of-destruction-quest-eventos/page/13/#findComment-1670993 Compartilhar em outros sites More sharing options...
marcio1234 1 Postado Outubro 3, 2015 Share Postado Outubro 3, 2015 Nicolas, vc pode me passa o servidor 10.82 ? por favor man estou precisando muito Link para o comentário https://xtibia.com/forum/topic/233142-global-10115-otherworld-hearth-of-destruction-quest-eventos/page/13/#findComment-1670994 Compartilhar em outros sites More sharing options...
Nicolas01255 2 Postado Outubro 3, 2015 Share Postado Outubro 3, 2015 Nicolas, vc pode me passa o servidor 10.82 ? por favor man estou precisando muito Muda protocollogin.cpp por esse: /** * The Forgotten Server - a free and open-source MMORPG server emulator * Copyright (C) 2014 Mark Samman <mark.samman@gmail.com> * * 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 "protocollogin.h" #include "outputmessage.h" #include "connection.h" #include "rsa.h" #include "configmanager.h" #include "tools.h" #include "iologindata.h" #include "ban.h" #include "game.h" extern ConfigManager g_config; extern Game g_game; #ifdef ENABLE_SERVER_DIAGNOSTIC uint32_t ProtocolLogin::protocolLoginCount = 0; #endif void ProtocolLogin::disconnectClient(uint8_t error, const char* message) { OutputMessage_ptr output = OutputMessagePool::getInstance()->getOutputMessage(this, false); if (output) { output->AddByte(error); output->AddString(message); OutputMessagePool::getInstance()->send(output); } getConnection()->closeConnection(); } bool ProtocolLogin::parseFirstPacket(NetworkMessage& msg) { if (g_game.getGameState() == GAME_STATE_SHUTDOWN) { getConnection()->closeConnection(); return false; } uint32_t clientip = getConnection()->getIP(); /*uint16_t clientos = */ msg.get<uint16_t>(); uint16_t version = msg.get<uint16_t>(); if (version >= 971) { msg.SkipBytes(17); } else { msg.SkipBytes(12); } /* * Skipped bytes: * 4 bytes: protocolVersion (only 971+) * 12 bytes: dat, spr, pic signatures (4 bytes each) * 1 byte: 0 (only 971+) */ if (version <= 760) { disconnectClient(0x0A, "Only clients with protocol " CLIENT_VERSION_STR " allowed!"); return false; } if (!RSA_decrypt(msg)) { getConnection()->closeConnection(); return false; } uint32_t key[4]; key[0] = msg.get<uint32_t>(); key[1] = msg.get<uint32_t>(); key[2] = msg.get<uint32_t>(); key[3] = msg.get<uint32_t>(); enableXTEAEncryption(); setXTEAKey(key); std::string accountName = msg.GetString(); std::string password = msg.GetString(); if (version < CLIENT_VERSION_MIN || version > CLIENT_VERSION_MAX) { if (version >= 1076) disconnectClient(0x0B, "Only clients with protocol " CLIENT_VERSION_STR " allowed!"); else disconnectClient(0x0A, "Only clients with protocol " CLIENT_VERSION_STR " allowed!"); return false; } if (g_game.getGameState() == GAME_STATE_STARTUP) { disconnectClient(0x0B, "Gameworld is starting up. Please wait."); return false; } if (g_game.getGameState() == GAME_STATE_MAINTAIN) { disconnectClient(0x0B, "Gameworld is under maintenance. Please re-connect in a while."); return false; } BanInfo banInfo; if (IOBan::isIpBanned(clientip, banInfo)) { if (banInfo.reason.empty()) { banInfo.reason = "(none)"; } std::ostringstream ss; ss << "Your IP has been banned until " << formatDateShort(banInfo.expiresAt) << " by " << banInfo.bannedBy << ".\n\nReason specified:\n" << banInfo.reason; disconnectClient(0x0B, ss.str().c_str()); return false; } //IF THE PASSWORD FIELDS AND ACCOUNT FIELD ARE EMPTY THEN THE USER WAN'T TO USE CAST SYSTEM bool cast_login = false; if ((accountName.empty() && password.empty()) || (accountName.empty() && !password.empty())) { cast_login = true; } if (!cast_login && accountName.empty()) { disconnectClient(0x0B, "Invalid account name."); return false; } Account account; if (!cast_login && !IOLoginData::loginserverAuthentication(accountName, password, account)) { disconnectClient(0x0B, "Account name or password is not correct."); return false; }mounts.xml OutputMessage_ptr output = OutputMessagePool::getInstance()->getOutputMessage(this, false); if (output) { //Update premium days g_game.updatePremium(account); //Add MOTD output->AddByte(0x14); std::ostringstream ss; ss << g_game.getMotdNum() << "\n" << g_config.getString(ConfigManager::MOTD); output->AddString(ss.str()); //SessionKey if (!cast_login) { output->AddByte(0x28); output->AddString(accountName + "\n" + password); } //Add char list output->AddByte(0x64); if (cast_login) { int cz = 0; std::vector<std::string> names; std::vector<uint32_t> counts; cast_login = false; uint8_t size = 0; g_game.lockPlayers(); for (const auto& it : g_game.getPlayers()) { if (it.second->cast.isCasting && (it.second->cast.password == "" || it.second->cast.password == password)) { names.push_back(it.second->getName()); counts.push_back(it.second->getCastViewerCount()); it.second->getCastViewerCount(); cast_login = true; size++; } } g_game.unlockPlayers(); if (cast_login) { output->AddByte(size); // number of worlds for (auto it = counts.begin(); it != counts.end(); it++) { output->AddByte(cz); // world id std::ostringstream os; os << (*it); output->AddString(os.str() + std::string(" viewers")); output->AddString(g_config.getString(ConfigManager::IP)); output->add<uint16_t>(g_config.getNumber(ConfigManager::GAME_PORT)); output->AddByte(0); cz++; } output->AddByte((uint8_t)cz); int world = 0; for (auto it : names) { output->AddByte(world); output->AddString(it); world++; } } } if (!cast_login) { output->AddByte(1); // number of worlds output->AddByte(0); // world id output->AddString(g_config.getString(ConfigManager::SERVER_NAME)); output->AddString(g_config.getString(ConfigManager::IP)); output->add<uint16_t>(g_config.getNumber(ConfigManager::GAME_PORT)); output->AddByte(0); output->AddByte((uint8_t)account.charList.size()); for (const std::string& characterName : account.charList) { output->AddByte(0); output->AddString(characterName); } } // Add premium days if (version >= 1080) { if (version >= 1082) output->AddByte(0); output->AddByte(g_config.getBoolean(ConfigManager::FREE_PREMIUM) || account.premiumDays > 0); output->add<uint32_t>(g_config.getBoolean(ConfigManager::FREE_PREMIUM) ? 0 : (time(nullptr) + (account.premiumDays * 86400))); } else { output->add<uint16_t>(g_config.getBoolean(ConfigManager::FREE_PREMIUM) ? 0xFFFF : account.premiumDays); } OutputMessagePool::getInstance()->send(output); } getConnection()->closeConnection(); return true; } void ProtocolLogin::onRecvFirstMessage(NetworkMessage& msg) { parseFirstPacket(msg); } Muda definitions.h #define CLIENT_VERSION_STR "10.82" Add outfits.xml <!-- Mulher outfits --> <outfit type="0" looktype="759" name="Não tem nome" premium="1" unlocked="1" enabled="1" /> <!-- Homem outfits --> <outfit type="1" looktype="760" name="Nao tem nome" premium="1" unlocked="1" enabled="1" /> Add mounts.xml <mount id="84" clientid="761" name="Teste1" speed="10" premium="yes" /> <mount id="85" clientid="762" name="Teste2" speed="10" premium="yes" /> <mount id="86" clientid="763" name="Teste3" speed="10" premium="yes" /> Pronto! Link para o comentário https://xtibia.com/forum/topic/233142-global-10115-otherworld-hearth-of-destruction-quest-eventos/page/13/#findComment-1671003 Compartilhar em outros sites More sharing options...
Lumus 254 Postado Outubro 3, 2015 Share Postado Outubro 3, 2015 Update 10.82 Poderia passar os looktype? Link para o comentário https://xtibia.com/forum/topic/233142-global-10115-otherworld-hearth-of-destruction-quest-eventos/page/13/#findComment-1671007 Compartilhar em outros sites More sharing options...
marcio1234 1 Postado Outubro 3, 2015 Share Postado Outubro 3, 2015 Muda protocollogin.cpp por esse: /** * The Forgotten Server - a free and open-source MMORPG server emulator * Copyright (C) 2014 Mark Samman <mark.samman@gmail.com> * * 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 "protocollogin.h" #include "outputmessage.h" #include "connection.h" #include "rsa.h" #include "configmanager.h" #include "tools.h" #include "iologindata.h" #include "ban.h" #include "game.h" extern ConfigManager g_config; extern Game g_game; #ifdef ENABLE_SERVER_DIAGNOSTIC uint32_t ProtocolLogin::protocolLoginCount = 0; #endif void ProtocolLogin::disconnectClient(uint8_t error, const char* message) { OutputMessage_ptr output = OutputMessagePool::getInstance()->getOutputMessage(this, false); if (output) { output->AddByte(error); output->AddString(message); OutputMessagePool::getInstance()->send(output); } getConnection()->closeConnection(); } bool ProtocolLogin::parseFirstPacket(NetworkMessage& msg) { if (g_game.getGameState() == GAME_STATE_SHUTDOWN) { getConnection()->closeConnection(); return false; } uint32_t clientip = getConnection()->getIP(); /*uint16_t clientos = */ msg.get<uint16_t>(); uint16_t version = msg.get<uint16_t>(); if (version >= 971) { msg.SkipBytes(17); } else { msg.SkipBytes(12); } /* * Skipped bytes: * 4 bytes: protocolVersion (only 971+) * 12 bytes: dat, spr, pic signatures (4 bytes each) * 1 byte: 0 (only 971+) */ if (version <= 760) { disconnectClient(0x0A, "Only clients with protocol " CLIENT_VERSION_STR " allowed!"); return false; } if (!RSA_decrypt(msg)) { getConnection()->closeConnection(); return false; } uint32_t key[4]; key[0] = msg.get<uint32_t>(); key[1] = msg.get<uint32_t>(); key[2] = msg.get<uint32_t>(); key[3] = msg.get<uint32_t>(); enableXTEAEncryption(); setXTEAKey(key); std::string accountName = msg.GetString(); std::string password = msg.GetString(); if (version < CLIENT_VERSION_MIN || version > CLIENT_VERSION_MAX) { if (version >= 1076) disconnectClient(0x0B, "Only clients with protocol " CLIENT_VERSION_STR " allowed!"); else disconnectClient(0x0A, "Only clients with protocol " CLIENT_VERSION_STR " allowed!"); return false; } if (g_game.getGameState() == GAME_STATE_STARTUP) { disconnectClient(0x0B, "Gameworld is starting up. Please wait."); return false; } if (g_game.getGameState() == GAME_STATE_MAINTAIN) { disconnectClient(0x0B, "Gameworld is under maintenance. Please re-connect in a while."); return false; } BanInfo banInfo; if (IOBan::isIpBanned(clientip, banInfo)) { if (banInfo.reason.empty()) { banInfo.reason = "(none)"; } std::ostringstream ss; ss << "Your IP has been banned until " << formatDateShort(banInfo.expiresAt) << " by " << banInfo.bannedBy << ".\n\nReason specified:\n" << banInfo.reason; disconnectClient(0x0B, ss.str().c_str()); return false; } //IF THE PASSWORD FIELDS AND ACCOUNT FIELD ARE EMPTY THEN THE USER WAN'T TO USE CAST SYSTEM bool cast_login = false; if ((accountName.empty() && password.empty()) || (accountName.empty() && !password.empty())) { cast_login = true; } if (!cast_login && accountName.empty()) { disconnectClient(0x0B, "Invalid account name."); return false; } Account account; if (!cast_login && !IOLoginData::loginserverAuthentication(accountName, password, account)) { disconnectClient(0x0B, "Account name or password is not correct."); return false; }mounts.xml OutputMessage_ptr output = OutputMessagePool::getInstance()->getOutputMessage(this, false); if (output) { //Update premium days g_game.updatePremium(account); //Add MOTD output->AddByte(0x14); std::ostringstream ss; ss << g_game.getMotdNum() << "\n" << g_config.getString(ConfigManager::MOTD); output->AddString(ss.str()); //SessionKey if (!cast_login) { output->AddByte(0x28); output->AddString(accountName + "\n" + password); } //Add char list output->AddByte(0x64); if (cast_login) { int cz = 0; std::vector<std::string> names; std::vector<uint32_t> counts; cast_login = false; uint8_t size = 0; g_game.lockPlayers(); for (const auto& it : g_game.getPlayers()) { if (it.second->cast.isCasting && (it.second->cast.password == "" || it.second->cast.password == password)) { names.push_back(it.second->getName()); counts.push_back(it.second->getCastViewerCount()); it.second->getCastViewerCount(); cast_login = true; size++; } } g_game.unlockPlayers(); if (cast_login) { output->AddByte(size); // number of worlds for (auto it = counts.begin(); it != counts.end(); it++) { output->AddByte(cz); // world id std::ostringstream os; os << (*it); output->AddString(os.str() + std::string(" viewers")); output->AddString(g_config.getString(ConfigManager::IP)); output->add<uint16_t>(g_config.getNumber(ConfigManager::GAME_PORT)); output->AddByte(0); cz++; } output->AddByte((uint8_t)cz); int world = 0; for (auto it : names) { output->AddByte(world); output->AddString(it); world++; } } } if (!cast_login) { output->AddByte(1); // number of worlds output->AddByte(0); // world id output->AddString(g_config.getString(ConfigManager::SERVER_NAME)); output->AddString(g_config.getString(ConfigManager::IP)); output->add<uint16_t>(g_config.getNumber(ConfigManager::GAME_PORT)); output->AddByte(0); output->AddByte((uint8_t)account.charList.size()); for (const std::string& characterName : account.charList) { output->AddByte(0); output->AddString(characterName); } } // Add premium days if (version >= 1080) { if (version >= 1082) output->AddByte(0); output->AddByte(g_config.getBoolean(ConfigManager::FREE_PREMIUM) || account.premiumDays > 0); output->add<uint32_t>(g_config.getBoolean(ConfigManager::FREE_PREMIUM) ? 0 : (time(nullptr) + (account.premiumDays * 86400))); } else { output->add<uint16_t>(g_config.getBoolean(ConfigManager::FREE_PREMIUM) ? 0xFFFF : account.premiumDays); } OutputMessagePool::getInstance()->send(output); } getConnection()->closeConnection(); return true; } void ProtocolLogin::onRecvFirstMessage(NetworkMessage& msg) { parseFirstPacket(msg); } Muda definitions.h #define CLIENT_VERSION_STR "10.82" Add outfits.xml <!-- Mulher outfits --> <outfit type="0" looktype="759" name="Não tem nome" premium="1" unlocked="1" enabled="1" /> <!-- Homem outfits --> <outfit type="1" looktype="760" name="Nao tem nome" premium="1" unlocked="1" enabled="1" /> Add mounts.xml <mount id="84" clientid="761" name="Teste1" speed="10" premium="yes" /> <mount id="85" clientid="762" name="Teste2" speed="10" premium="yes" /> <mount id="86" clientid="763" name="Teste3" speed="10" premium="yes" /> Pronto! Muito obrigado Nicolas, vlw msm man ah vc tem tfs 1.2 10.82 para windows 64 bits ?? Link para o comentário https://xtibia.com/forum/topic/233142-global-10115-otherworld-hearth-of-destruction-quest-eventos/page/13/#findComment-1671008 Compartilhar em outros sites More sharing options...
Nicolas01255 2 Postado Outubro 3, 2015 Share Postado Outubro 3, 2015 Poderia passar os looktype? outfits.xml <!-- Mulher outfits --> <outfit type="0" looktype="759" name="Não tem nome" premium="1" unlocked="1" enabled="1" /> <!-- Homem outfits --> <outfit type="1" looktype="760" name="Nao tem nome" premium="1" unlocked="1" enabled="1" /> mounts.xml <mount id="84" clientid="761" name="Teste1" speed="10" premium="yes" /> <mount id="85" clientid="762" name="Teste2" speed="10" premium="yes" /> <mount id="86" clientid="763" name="Teste3" speed="10" premium="yes" /> Link para o comentário https://xtibia.com/forum/topic/233142-global-10115-otherworld-hearth-of-destruction-quest-eventos/page/13/#findComment-1671010 Compartilhar em outros sites More sharing options...
Lumus 254 Postado Outubro 3, 2015 Share Postado Outubro 3, 2015 outfits.xml <!-- Mulher outfits --> <outfit type="0" looktype="759" name="Não tem nome" premium="1" unlocked="1" enabled="1" /> <!-- Homem outfits --> <outfit type="1" looktype="760" name="Nao tem nome" premium="1" unlocked="1" enabled="1" /> mounts.xml <mount id="84" clientid="761" name="Teste1" speed="10" premium="yes" /> <mount id="85" clientid="762" name="Teste2" speed="10" premium="yes" /> <mount id="86" clientid="763" name="Teste3" speed="10" premium="yes" /> Aqui tá muito doido... a mount foi normal, mas as outfits não vão nem com macumba. Link para o comentário https://xtibia.com/forum/topic/233142-global-10115-otherworld-hearth-of-destruction-quest-eventos/page/13/#findComment-1671012 Compartilhar em outros sites More sharing options...
marcio1234 1 Postado Outubro 3, 2015 Share Postado Outubro 3, 2015 (editado) Nicolas, vc usar que gesior ? vc pode me passa ? estou precisando de um gesior pq o meu tá dando error na latestnews @up Editado Outubro 3, 2015 por marcio1234 Link para o comentário https://xtibia.com/forum/topic/233142-global-10115-otherworld-hearth-of-destruction-quest-eventos/page/13/#findComment-1671019 Compartilhar em outros sites More sharing options...
Nicolas01255 2 Postado Outubro 3, 2015 Share Postado Outubro 3, 2015 Aqui tá muito doido... a mount foi normal, mas as outfits não vão nem com macumba. Renicia o server pq as outfits não dar reload Onde eu coloquei name="Nao tem nome" coloca um nome pra essas outfits o tibia normal ainda não deu nome pra essa outfits e mounts. Link para o comentário https://xtibia.com/forum/topic/233142-global-10115-otherworld-hearth-of-destruction-quest-eventos/page/13/#findComment-1671020 Compartilhar em outros sites More sharing options...
boyfrempss 1 Postado Outubro 3, 2015 Share Postado Outubro 3, 2015 (editado) alguem pode me ajudar ( POR FAVORRR )ou me arruma um website que funcione com o xampp pra essa verçao do OT , ou me ajuda no erro que ta dando na hora de abrir o localhost da esse erro Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\xampp\htdocs\config\config.php on line 4 ja mudei a linha, coloquei barra, tirei barra, inverti barra , nada resolveu esse erro. Obs ; esse erro acontece na hora de configura a parte do apache (usando o website que vem com ele) com a barra no final / ele da esse erro: Error occured!Error ID: #C-5More info: ERROR: #C-5 : Class::ConfigPHP - Key passwordType doesn't exist.File: C:\xampp\htdocs\classes/configphp.php Line: 96File: C:\xampp\htdocs\system/load.database.php Line: 38File: C:\xampp\htdocs/index.php Line: 21 Editado Outubro 3, 2015 por boyfrempss Link para o comentário https://xtibia.com/forum/topic/233142-global-10115-otherworld-hearth-of-destruction-quest-eventos/page/13/#findComment-1671029 Compartilhar em outros sites More sharing options...
Lumus 254 Postado Outubro 4, 2015 Share Postado Outubro 4, 2015 Renicia o server pq as outfits não dar reload Onde eu coloquei name="Nao tem nome" coloca um nome pra essas outfits o tibia normal ainda não deu nome pra essa outfits e mounts. Tô ligado amigão, mas nem assim funciona.. tá estranho, rs. Link para o comentário https://xtibia.com/forum/topic/233142-global-10115-otherworld-hearth-of-destruction-quest-eventos/page/13/#findComment-1671041 Compartilhar em outros sites More sharing options...
boyfrempss 1 Postado Outubro 4, 2015 Share Postado Outubro 4, 2015 consegui arrumar o website, o problema tava no config.lua tive que adicionar uma linha password "shai1" ... outra duvida como acesso o admin painel do website, pois nao tenho a senha e nao sei como configura uma nova Link para o comentário https://xtibia.com/forum/topic/233142-global-10115-otherworld-hearth-of-destruction-quest-eventos/page/13/#findComment-1671050 Compartilhar em outros sites More sharing options...
apoloquaiatto4835 0 Postado Outubro 5, 2015 Share Postado Outubro 5, 2015 A database ñ preciso atualizar né? Link para o comentário https://xtibia.com/forum/topic/233142-global-10115-otherworld-hearth-of-destruction-quest-eventos/page/13/#findComment-1671239 Compartilhar em outros sites More sharing options...
Qwizer 204 Postado Outubro 5, 2015 Autor Share Postado Outubro 5, 2015 A database ñ preciso atualizar né? nao precisa. Link para o comentário https://xtibia.com/forum/topic/233142-global-10115-otherworld-hearth-of-destruction-quest-eventos/page/13/#findComment-1671279 Compartilhar em outros sites More sharing options...
Posts Recomendados