Suporte Este é um post popular. JulianoZN 505 Postado 12 de Agosto Suporte Este é um post popular. Compartilhar Postado 12 de Agosto ⚠️ AVISO EXTREMAMENTE SÉRIO ⚠️ Esta SRC foi liberada única e exclusivamente para quem quiser extrair o sistema de FlyShadow. ❌ NÃO TENTE USAR COMO BASE DE SERVIDOR. Ela contém traps, falhas críticas propositalmente inseridos. Entre eles: brechas que permitem players se transformarem em ADM, exploits fatais e bugs que vão quebrar seu servidor de forma irreversível. 👉 Se alguém for “esperto” o bastante para ignorar este aviso e usar a SRC como base, vai descobrir da pior maneira que está mexendo com uma bomba-relógio. ->->-> Lembre-se de Atualizar isso no things.h para o cliente id de voces ao usar o fly na maioria das bases pda sao essas aqui 👉 bool canFly() { return getId() == 470 || getId() == 10765 || getId() == 10764; } This is the hidden content, please Entre ou Cadastre-se -> Dica para pegar o sistema na SRC do cliente mais facil Pega o OTClientV8 original e compara ambas e depois vai aplicando no seu Scans This is the hidden content, please Entre ou Cadastre-se This is the hidden content, please Entre ou Cadastre-se Programa Utilizado Para Compara -> This is the hidden content, please Entre ou Cadastre-se Arquivos Mexido - Servidor (Ignorem o configure.ac) Fonte original 47 4 2 1 Link para o comentário https://tibiadevs.com/forums/topic/1211-renovado-shadow-fly-036-%E2%80%93-src-servidor-src-otclient-para-tirar-o-sistema/ Compartilhar em outros sites Mais opções de compartilhamento...
Administrador The Baker 5015 Postado 12 de Agosto Administrador Compartilhar Postado 12 de Agosto 25 minutos atrás, JulianoZN disse: Mostrar conteúdo oculto ## Parte 1 – Alterações no Servidor --- 1. `luascript.cpp` Adicione: lua_register(m_luaState, "doPlayerSetFly", LuaScriptInterface::luaPlayerSetFly); int32_t LuaScriptInterface::luaPlayerSetFly(lua_State* L) { // doPlayerSetFly(cid, boolean) bool fly = popBoolean(L); ScriptEnviroment* env = getEnv(); Player* player = env->getPlayerByUID(popNumber(L)); if (!player) { errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND)); lua_pushboolean(L, false); return 1; } player->setFly(fly); lua_pushboolean(L, true); return 1; } --- 2. `luascript.h` Adicione: static int32_t luaPlayerSetFly(lua_State* L); --- 3. `player.h` * Após: void sendCritical() const; Adicione: void setFly(bool fly) const { if (client) client->setFly(fly); } * > Nao seis e obrigatorio eu acabei adicionando tbm. Procure por: Container transferContainer; Adicione: bool isFlying() const { auto it = storageMap.find(17000); return it != storageMap.end() && it->second == "1"; } --- 4. `protocolgame.cpp` Adicione: void ProtocolGame::setFly(bool fly) { OutputMessage_ptr msg = OutputMessagePool::getInstance()->getOutputMessage(this, false); if (msg) { TRACK_MESSAGE(msg); msg->AddByte(0x4F); msg->AddByte(fly ? 0x01 : 0x00); } } --- 5. `protocolgame.h` Após: void sendIcons(int32_t icons); Adicione: void setFly(bool fly); ## Parte 2 – Alterações no OTClient --- 1. `tile.h` Procure por: void removeWalkingCreature(const CreaturePtr& creature); Adicione abaixo: bool canFly() { return !getGround() || getGround()->canFly(); } --- 2. `things.h` Procure por: int getLayers() { return rawGetThingType()->getLayers(); } Adicione abaixo: bool canFly() { return getId() == 470 || getId() == 10764; } > Ajuste os IDs conforme seus tiles de fly. --- 3. `protocolgameparse.cpp` * Após: #include "missile.h" Adicione: #include "creature.h" * Após: case Proto::GameServerPlayerSkills: parsePlayerSkills(msg); break; Adicione: case Proto::GameSetFly: parsePlayerFly(msg); break; * Após `parsePlayerState(...) { ... }`, adicione: void ProtocolGame::parsePlayerFly(const InputMessagePtr& msg) { int fly = msg->getU8(); uint32 id = msg->getU32(); CreaturePtr creature = m_localPlayer; if (fly == 1) creature->setFly(true); else creature->setFly(false); } --- 4. `protocolgame.h` Procure por: void parsePlayerSkills(const InputMessagePtr& msg); Adicione abaixo: void parsePlayerFly(const InputMessagePtr& msg); --- 5. `protocolcodes.h` Procure por: GameServerChangeMapAwareRange = 66, Adicione abaixo: GameSetFly = 79, --- 6. `creature.h` * Após: virtual void drawOutfit(...); Adicione: void drawShadow(const Point& dest); * Após: void updateProgressBar(uint32 duration, bool ltr); Adicione: void setFly(bool fly) { m_flying = fly; } bool m_flying { false }; * Após: void updateJump(); Adicione: uint8_t m_flyDist{ 0 }; bool isFlying() { return m_flying; } --- 7. `creature.cpp` * Após: #include <framework/graphics/graphics.h> Adicione: #include <framework/graphics/image.h> * Após: if (m_outfit.getCategory() != ThingCategoryCreature) animationOffset -= getDisplacement(); Adicione: drawShadow(dest - jumpOffset + animationOffset); * Antes de: void Creature::drawOutfit(...) Adicione: void Creature::drawShadow(const Point& dest) { if (!isFlying()) return; const auto& color = Color(0.f, 0.f, 0.f, std::max<float>(.1f, .7f - ((m_flyDist+1) / 10.f))); const float oldFactor = g_sprites.getOffsetFactor(); auto _dest = dest; _dest += ((60 + (m_flyDist * 7)) * oldFactor); const auto& oldShader = m_outfit.getShader(); m_outfit.setShader(""); g_sprites.setOffsetFactor((1.f - (m_flyDist / 10.f) / 4) * oldFactor); m_outfit.draw(_dest, m_walking ? m_walkDirection : m_direction, m_walkAnimationPhase, color, true, nullptr); g_sprites.setOffsetFactor(oldFactor); m_outfit.setShader(oldShader); } merece um premio esse menino 3 Link para o comentário https://tibiadevs.com/forums/topic/1211-renovado-shadow-fly-036-%E2%80%93-src-servidor-src-otclient-para-tirar-o-sistema/#findComment-6213 Compartilhar em outros sites Mais opções de compartilhamento...
kenai 198 Postado 12 de Agosto Compartilhar Postado 12 de Agosto Não li o código ainda, mas, funciona apenas pra servidor de pokemon ou inclui algo que identifica o andar do player e tal? Link para o comentário https://tibiadevs.com/forums/topic/1211-renovado-shadow-fly-036-%E2%80%93-src-servidor-src-otclient-para-tirar-o-sistema/#findComment-6218 Compartilhar em outros sites Mais opções de compartilhamento...
Rafersiq 69 Postado 13 de Agosto Compartilhar Postado 13 de Agosto Em 12/08/2025 em 10:54, kenai disse: Não li o código ainda, mas, funciona apenas pra servidor de pokemon ou inclui algo que identifica o andar do player e tal? e mais para poketibia que possui a abilidade fly mas se tiver um servidor que o player consiga voar eu acho que funciona so ira presisar adapitar o codigo Link para o comentário https://tibiadevs.com/forums/topic/1211-renovado-shadow-fly-036-%E2%80%93-src-servidor-src-otclient-para-tirar-o-sistema/#findComment-6226 Compartilhar em outros sites Mais opções de compartilhamento...
leonidas019 0 Postado 14 de Agosto Compartilhar Postado 14 de Agosto Como vejo qual ID dos tiles de fly? estou no momento com erro de protocolo acredito que seja esse o problema.[C++]: ?parseCreatureMove@ProtocolGame@@AAEXABV?$shared_object_ptr@VInputMessage@@@stdext@@@Z ERROR: no thing at pos:3344 748 7, stackpos:1 at: [C++]: ?getMappedThing@ProtocolGame@@QAE?AV?$shared_object_ptr@VThing@@@stdext@@ABV?$shared_object_ptr@VInputMessage@@@3@@Z ERROR: no creature found to move Link para o comentário https://tibiadevs.com/forums/topic/1211-renovado-shadow-fly-036-%E2%80%93-src-servidor-src-otclient-para-tirar-o-sistema/#findComment-6231 Compartilhar em outros sites Mais opções de compartilhamento...
Suporte B4GS 18 Postado 16 de Agosto Suporte Compartilhar Postado 16 de Agosto Acho que esta faltando partes do codigo man, do spritemanager acho que vem a parada void setOffsetFactor(float f) { m_spriteOffset = f; } Link para o comentário https://tibiadevs.com/forums/topic/1211-renovado-shadow-fly-036-%E2%80%93-src-servidor-src-otclient-para-tirar-o-sistema/#findComment-6246 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