Ir para conteúdo

Códigos C++

Encontre aqui Códigos prontos em C++.

Atenção!

- Esta área é para publicação de Scripts prontos para rodar em Ots.

- Favor manter tópicos organizados! Utilizar code, spoiler, fontes, cores e espaçamentos equilibrados. Tópicos desorganizados, sem formatação ou colados sem alteração serão excluídos.

- Se possível informe se o script foi testado. Explique como instalar e publique imagens/gifs/videos para mostrar o sistema funcionando.

- Ao usar um Script que gostou, dê reputação ao membro que publicou e comente no tópico, para que mais códigos sejam publicados na seção!

- Se o conteúdo não for seu, adicione Créditos!

  1. Started by Boromir,

    Boa noite, preciso da ajuda de vocês e é claro, quem me ajudar vai ganhar 1 Proteção totalmente de graça. Como vai funcionar: - Vou disponibilizar meu cliente criptografado para vocês e vocês vão tentar achar brecha. - O objectivo e abrir os arquivos em qualquer editor. - Quem conseguir abrir as sprites é para postar aqui no forum. - Caso não consiga, poste o nome de todos os programas que usou. E como ganha a proteção de graça ? - o membro deve postar todos os programas que utilizou para tentar abrir, todas as formas que tentou. - Caso tenha empate o critério será em sorteio. Vou deixar aberto até dia 31…

    • 8 respostas
    • 2.9k visualizações
  2. Started by L3K0T,

    TUTORIAL - TELEPORTE SUMMON Introdução: Fala pessoal, hoje vim aqui liberar um código para que futuros criadores de pokemon não usem GLOBALEVENTS ou MOVEMENTS para teleportar seus pokemons a distancia... hoje irei ensinar a você não usar mais esses scripts que aonde da maioria da vezes crash o servidores em WINDOWS em testes. Sobre o Sistema: Esse sistema tem a função de teleportar seu pokemon a certos sqm, tipo assim, você tem um pokemon e a distancia dele é 7 sqm, ao passar os 7 sqm ele teleporta para você, seja em qualquer lugar até de baixo da terra ou lugares super longe (Não se preocupe o problema do pokemon Morrer com source novas será re…

  3. Fala galerinha Vim aqui trazer pra vocês um negocio bem simples, Mais creio que vai ser bem útil pra quem usa tfs 0.3.6, Bom oque isso faz ?, Ao invés da sua barra de vida e mana ficar com aqueles números gigantes, Vai ficar por porcentagem %%, independente do level do personagem vai ficar 100/100 % MAX, Então vamos lá vocês vão ter que ter as souces que você usa em seu servidor, Abra elas com Deve C++, Agora vá em protocolgame.cpp, Em seguida: PROCURE POR: msg->AddU16(player->getHealth()); AGORA SUBSTITUA POR: msg->AddU16((uint16_t)std::ceil(player->getHealth() * 100 / player->getPlayerInfo(PLAYERINFO_MAXHEAL…

  4. Started by Mateus Robeerto,

    Para quem deseja utilizar o 'IncreaseMagicPercent' no arquivo items.xml, que aumenta o dano mágico em porcentagem No arquivo game.cpp depois. Player* attackerPlayer; if (attacker) { attackerPlayer = attacker->getPlayer(); } else { attackerPlayer = nullptr; } Player* targetPlayer = target->getPlayer(); if (attackerPlayer && targetPlayer && attackerPlayer->getSkull() == SKULL_BLACK && attackerPlayer->getSkullClient(targetPlayer) == SKULL_NONE) { return false; } damage.primary.value = std::abs(damage.primary.value); …

    • 7 respostas
    • 984 visualizações
  5. salve rapaziada, do TK, esses tempos eu tava a procura de um autoloot bom e eficiente, e como vocês devem saber, o autoloot usado nos scripts .lua são bem "pesados" o @Naze fez um excelentíssimo trabalho e disponibilizou um script de autoloot na source, porém como a vida é dificil, ele tem alguns bugs de função e um deles é no "remove autoloot" que quando o player digita "!autoloot remove, nome-do-item" nada acontece, eu decidi mexer e vim disponibilizar arrumado pra vcs. LEMBRANDO QUE 100% DOS CRÉDITOS SÃO AO @Naze porém se vc procurar no tópico dele ainda vai estar bugado, então resolvi deixar aqui certinho pra ajudar quem precisar. Link do tópico do naze…

  6. Started by Nolangg,

    E aí guys, venho a um tempo vendo as datapacks que lançam diariamente e resolvi postar o sistema de setas no cast (não sei se alguém já postou algo relativo o_o) para fazer esse sistema eu estou usando a última versão do OTX do github... LINK PARA BAIXAR (otx do mattyx) maioria das pessoas já sabem o que é esse sistema, mas pra quem não sabe, é a possibilidade de alternar o cast apertando CTRL + QUALQUER ARROW, mesmo que já tenha em vários servers, algums ainda não tem então toma aí. em protocolgame.cpp procure por void ProtocolGame::spectate(const std::string& name, const std::string& password) de…

  7. Started by L3K0T,

    by L3K0T Fade Tile Bom galera hoje vou ensina a vocês como deixar seu mapa com a alteração fade tile, exatamente igual ao vídeo do meu canal abaixo, com apenas algumas "alterações" na SOURCE do seu Otclient 0.6.6. VÍDEO;; Spoiler TUTORIALBY L3K0T 1° VÁ EM na source do seu otcliente src\client e abra o mapview.cpp e ache;; m_optimizedSize = Size(g_map.getAwareRange().horizontal(), g_map.getAwareRange().vertical()) * Otc::TILE_PIXELS; abaixo coloque;; m_fadeL3K0TTime = 150; ache;; void MapView::draw(const Rect& rect) { // update …

  8. Started by leozynho123,

    Boa noite galera, depois de muitas fuçadas em forums e ajuda de algumas pessoas, consegui tirar o delay do push de longe no caso ( + de 1 sqm do player) Bom.. vamos lá ! Em OTX Server , Em game.cpp procure por " boost::bind(&Game::playerMoveCreature, this, playerId, movingCreatureId, movingCreaturePos, toPos, false)); " aonde está "false" estará na sua sources ORIGINAL "true" então no caso a palavra "true" (ativa a função) "false" (desativa a função) ~~ TFS 0.4 Em game.cpp procure por " boost::bind(&Game::playerMoveCreature, this, playerId, movingCreatureId, movingCreaturePos, toPos, false)); " aonde está "false" estará na s…

  9. Started by Yan Liima,

    Salve meus queridos, tudo bom? Hoje decidi trazer uma pequena alteração na source. Vi que muita galera tem problemas com o limite do caracter da função doShowTextDialog, pois se excender o limite maximo de caractere da debug no client. Isso ocorre principalmente pra galera do derivado que costuma utilizar !spells/!tecnicas/!jutsu para checar os ataques disponiveis que existe pra tal personagem. Se você é GOD, você consegue visualizar todas as spells do servidor , e se no servidor existir muitas, irá causar debug. Diferente do doPlayerPopupFYI, não há uma proteção de limite para TextDialog... Primeiramente, como que eu descobri? Seguinte, e…

  10. Started by Alumary,

    Estou trazendo esse conteúdo de outro fórum pôs não achei aqui e acho esse fórum um dos mais completos, bom vamos lá sistema não foi feito por mim logo mais colocarei os créditos, Oque sistema faz!? bom... ele permite você usar qualquer arma de uma mão na outra mão assim somando os dois valores de atributos como dano e def e aplicando e também aumentando a velocidade de ataque então vamos lá. Vá em player.ccp e procure por: ret = RET_CANONLYUSEONEWEAPON; Você ira encontrar dois "ret = RET_CANONLYUSEONEWEAPON;", substitua por: ret = RET_NOERROR; Após, localize weapons.h e procure por: const Weapon* getWeapon(const Item* item) const; Embaix…

  11. Started by Movie,

    Square System Esse sistema irá possibilitar você colocar uma square em determinado player. Em luascript.cpp, acima de registerMethod("Player", "isPlayer", LuaScriptInterface::luaPlayerIsPlayer); coloque isso registerMethod("Player", "sendCreatureSquare", LuaScriptInterface::luaSendCreatureSquare); Agora, acima de int LuaScriptInterface::luaPlayerCreate(lua_State* L) Coloque isso int LuaScriptInterface::luaSendCreatureSquare(lua_State* L) { // player:sendCreatureSquare(creature, color) Player* player = getUserdata<Player>(L, 1); if (!player) { lua_pushnil(L); return 1; } Creature* cre…

  12. Started by Codex NG,

    Not completely tested and not all features are working but I am releasing this so that it is considered to be fixed and merged with the official branch. Sql INSERT INTO `players` (`id`, `name`, `group_id`, `account_id`, `level`, `vocation`, `health`, `healthmax`, `experience`, `lookbody`, `lookfeet`, `lookhead`, `looklegs`, `looktype`, `lookaddons`, `maglevel`, `mana`, `manamax`, `manaspent`, `soul`, `town_id`, `posx`, `posy`, `posz`, `conditions`, `cap`, `sex`, `lastlogin`, `lastip`, `save`, `skull`, `skulltime`, `lastlogout`, `blessings`, `onlinetime`, `deletion`, `balance`, `offlinetraining_time`, `offlinetraining_skill`, `stamina`, `skill_fist`, `skill…

  13. [TUTORIAL] [UBUNTU] Como gerar e configurar uma nova chave RSA Este tutorial pode ser útil para você deixar o uso obrigatório do seu client customizado para o seu servidor. Para seguir este tutorial você precisará ter o OpenSSL instalado. Consultando se o seu sistema já tem OpenSSL Spoiler openssl version -a Gerando a chave RSA Primeiramente, vamos gerar uma nova chave RSA exclusiva Spoiler openssl genrsa -out key.pem 1024 Assim que gerado, será criado um arquivo "key.pem" no diretório e…

  14. Started by Ackerzin,

    Mana e Life 100/100 Salve galerinha, estive procurando em vários tópicos, algum codigo de life e mana 100/100, e nenhum deles funcionava perfeito para oque eu precisava, todos eles paravam de funcionar quando o player atingia o level 715835 ou mana/life "21474847" o numero 100 da vida virava 65750 ou da mana, de qual você atingisse primeiro "21474847" e pra quem quer por high XP isso é um problema, mas depois de muito, MUITO,MUITO,muito esforço de um amigo, @Rusherzin, ele conseguiu burla isso, e agora você pode pegar quantos de level/mana/life quiser que não vai sair de 100/100, então é isso vamos ao que interessa. TFS 0.4 foi testado ! …

    • 6 respostas
    • 5.9k visualizações
  15. este é um tutorial de como usar um cliente com spr/dat estendido e protegido pelo CAB. fiz um video mostrando como usar um client com spr/dat estendido sem o error, basta seguir passo a passo o que eu fiz, em resumo voce precisara copiar seu dat estendido pra outro local para poder editar ele, salvando ele como não estendido e dps renomeando para poder usar junto com o original e compilando tudo com o programa cab... A DLL ajuda o cliente a ler as 2 dat (compilada pelo programa cab) , sem ela o cliente não abre, caso o teu cliente tenha o bug do ctrl+n ou alguns outros bugs que eu vi em alguns casos, a DLL tem a função de arrumar a maioria deles. …

  16. Started by FeeTads,

    salve rapaziada, vi que tem bastante procura por esse sistema de "proteção" contra player que por algum motivo ficam com proteção 100% de algum elemento ou dano, por exemplo MIGHT RING (-20% death) + SSA (-80% Death), totalizando 100% de proteção contra o elemento death, ou seja, o player fica imortal, pra previnir isso, vai aqui 2 commits caso vc saiba mexer com github: commit 1: max absorb all commit 2: fix, max protect all caso saiba mexer com github, estão os 2 commits, caso não saiba siga o passo a passo abaixo: vá até configmanager.cpp procure por: m_confString[MAP_AUTHOR] = getGlobalString("mapAuthor", "Unknown"); ACIMA adicione: m_…

  17. Started by diarmaint,

    O título é auto explicativo, precisei recentemente e só achei no final de um tópico escondido, resolvi respostar. Algo bem comum em servidores derivados, encher mana e hp em pz.. Procure por esta função: bool ConditionRegeneration::executeCondition(Creature* creature, int32_t interval) Em seguida, selecione ela toda: bool ConditionRegeneration::executeCondition(Creature* creature, int32_t interval) { internalHealthTicks += interval; internalManaTicks += interval; if(creature->getZone() != ZONE_PROTECTION) { if(internalHealthTicks >= healthTicks) { internalHealthTicks = 0; creature->changeHealth(healthGain); } if(inte…

    • 5 respostas
    • 1.8k visualizações
  18. Sorry I don't speak spanish so you will have to bare with me. This is a new way for people to create npc's which use different types of currency, rather than a coming up with different items to trade with the npc or trying to edit the npc modules this method simplifies everything by providing the npc with a npc currency id. All this npc currency id is, is a storage value.. pretty simple eh? If the npc doesn't have a currency id then it will use the normal currency e.g. gold, plat, cc etc.. I originally posted this on otland, but fuck them xD Using Lailene here you can see she has a currency attribute with id of 123456 …

  19. Started by Yan Liima,

    Limite máximo de players em guild in-game ? Bom galera estou postando esse conteúdo como complemento do limite em WEBSITE Ao utilizar !joinguild esse code verifica se a guilda já atingiu o limite máximo de membros(configurado) Eu estarei disponibilizando de duas maneiras: 1º Será um valor configurado no proprio config.lua, onde determinará o limite máximo de todas as guild.(já incluido na 0.4 rev3996) 2º A verificação será feita por DB, onde terá um valor padrão para cada guilda criada, podendo ser alterado o valor de membros maximo. Ou seja, a guilda número UM pode ter máximo de 50 players, e a guilda número DOIS pode ter o máxi…

    • 4 respostas
    • 1.4k visualizações
  20. Not tested but I wrote them anyway... this is a means of adding the missing stat information in TFS 1.3 & OTX 3 for 10.98 & up. This is the previous code protocolgame.cpp in TFS 1.3 void ProtocolGame::AddPlayerStats(NetworkMessage& msg) { msg.addByte(0xA0); msg.add<uint16_t>(std::min<int32_t>(player->getHealth(), std::numeric_limits<uint16_t>::max())); msg.add<uint16_t>(std::min<int32_t>(player->getMaxHealth(), std::numeric_limits<uint16_t>::max())); msg.add<uint32_t>(player->getFreeCapacity()); msg.add<uint32_t>(player->getCapacity()); msg.add<uint64_t…

    • 4 respostas
    • 4.4k visualizações
  21. Started by asgary15,

    Tooltips.webp tfs-tooltips-master.zip Tooltips.webp credits : oen44

  22. Started by L3K0T,

    Tutorial Heath Bar Oi Galera tudo bem??? hoje vou ensinar vocês como por a Health Bar como na imagem acima "dentro do circulo amarelo" no seu otcliente 0.6.6 e 0.6.7. Para começar essa alteração é pela source, caso não tenha source do seu OTC não adianta... Recomendo baixar otclientes com sources 1° vai na pasta da source do seu otcliente e abre o arquivo creature.cpp e ache;;; if(drawFlags & Otc::DrawBars && (!isNpc() || !g_game.getFeature(Otc::GameHideNpcNames))) { g_painter->setColor(Color::black); g_painter->drawFilledRect(backgroundRect); g_painter->setColor(fillColor); g_painter->…

  23. Started by L3K0T,

    Não jogar itens pelo teleportes C++ Bom.. o nome já diz, qualquer um que jogar itens nos teleportes do seu otserv, o mesmo será removido, como aquelas lixeiras, porem esse sistema é pela source, descartando scripts .LUA. Em teleporte.cpp ache: void Teleport::__addThing(Creature* actor, int32_t, Thing* thing) { if(!thing || thing->isRemoved()) return; Tile* destTile = g_game.getTile(destination); if(!destTile) return; if(Creature* creature = thing->getCreature()) { g_game.addMagicEffect(creature->getPosition(), MAGIC_EFFECT_TELEPORT, creature->isGhost()); creature->getTile…

  24. Started by Mor3nao,

    Eu procurei aqui no TK um sistema pra vc "desativar" o proprio pvp, te impedindo de pegar pk e nao encontrei um bacana, os que encontrei nao serviram no meu server, entao tentei fazer um, e bom, eis o resultado: Como funciona: O jogador usa um comando(!pvp) e então, ele fica impossibilitado de causar dano à outro player, a não ser, que o outro player esteja com alguma skull(obs: isso não impede que ele seja atacado, só que pegue pz) Para adicionar: Abra o seu Combat.cpp e procure por if (attacker->getSkull() == SKULL_BLACK && attacker->getSkullClient(target) == SKULL_NONE) { return true; } return false; …

    • 3 respostas
    • 2.4k visualizações
  25. Started by L3K0T,

    L3K0Ttfs 0.4 Bom galera hoje vim trazer para aqueles que não tem em seu tfs a função DoSetCreatureLight, é uma função de LUZ, alguns tfs tem e outros não tem então resolvi compartilhar. abra seu luascript.cpp e procure por: lua_register(m_luaState, "getCreatureHealth", LuaInterface::luaGetCreatureHealth); em baixo add //doSetCreatureLight(cid, lightLevel, lightColor, time) lua_register(m_luaState, "doSetCreatureLight", LuaInterface::luaDoSetCreatureLight); Procure;; int32_t LuaInterface::luaGetThingFromPos(lua_State* L) { //getThingFromPos(pos[, displayError = true]) //Note: // stackpos = 255- top thing (movable item…

  26. O propósito é criar uma nova função em creaturescripts que será acionada toda vez que um novo report (CTRL + R) for aberto. Eu implementei para enviar uma notificação no grupo do Telegram, contendo os dados do report. Isso garantirá que os GMs tenham acesso aos reports dos jogadores mesmo quando não estiverem logados, e também evitará que algum report seja perdido caso o jogador saia do servidor. A parte do Telegram é apenas um exemplo. Você pode ajustar o script para executar outras ações desejadas. creatureevent.cpp: Dentro deste arquivo, localize a função: uint32_t CreatureEvent::executeChannelLeave(Player* playe…

  27. Resumo Recentemente estava observando que quando estou usando o OTClient ao descer para andares escuros do mapa o jogador fica com uma luz ao redor e quando usamos o Tibia Client esta mesma luz não aparece, ou seja, no OTClient a necessidade do jogador usar uma tocha ou uma magia para iluminar é muito menor que no Tibia Client pois utilizando o OTC o nível de luz não fica como deveria. Após estudar alguns arquivos da source do OTC consegui encontrar a solução, e é bem simples! Instalando Dentro do arquivo creatures.cpp nas sources do OTClient modificar: light.intensity = std::max<uint8>(light.intensity, 3); por light.intensity =…

    • 3 respostas
    • 2.2k visualizações
  28. Bom vi em vários tutoriais ai da vida, que se colocar isso no config.lua já removia a xp que o summon ganha. NoShareExpSummonMonster = true MAS NÃO FUNCIONA O correto é ir na sua source e em criature.cpp e editar essa parte aqui. void Creature::addDamagePoints(Creature* attacker, int32_t damagePoints) { if(damagePoints < 0) return; uint32_t attackerId = 0; if(attacker) attackerId = attacker->getID(); CountMap::iterator it = damageMap.find(attackerId); if(it != damageMap.end()) { it->second.ticks = OTSYS_TIME(); if(damagePoints > 0) it->second.total += damagePoints; } else damageMap[attackerId] = CountBlock_t(damagePoin…

  29. doItemSetDuration(uid, duration) getItemDurationTime(uid) A primeira função adiciona ou altera a duração de um item, a segunda retorna o valor em segundos da duração de um item. Instalação No arquivo luascript.cpp da source procure por: //getItemWeight(uid[, precise = true]) lua_register(m_luaState, "getItemWeight", LuaInterface::luaGetItemWeight); Acima adicione: //doItemSetDuration(uid, duration) lua_register(m_luaState, "doItemSetDuration", LuaInterface::luaDoItemSetDuration); //getItemDurationTime(uid) lua_register(m_luaState, "getItemDurationTime", LuaInterface::luaGetItemDurationTime); Depois procure por: in…

    • 3 respostas
    • 2.2k visualizações
  30. Olá Tibiakings, Source: https://github.com/OTCv8/forgottenserver/commit/2839d4d7a8ad3597eff6c786f4ceb9b1b4b4456b#diff-e26c2fbabf42953e9a2f3e4c5749d0699804da9406cb340cc393afd3b7be4955 Datapack: creaturescripts/creaturescripts.xml <event type="extendedopcode" name="GameStore" script="game_store.lua" /> creaturescripts/scripts/login.lua player:registerEvent("GameStore") creaturescripts/scripts/game_store.lua https://github.com/OTCv8/otcv8-tools/blob/main/server/shop/shop.lua lib/lib.lua dofile('data/lib/core/json.lua') lib/core/json.lua https://github.com/OTCv8/otcv8-tools/blob/main/server/…

  31. Started by Tryller,

    Tutorial: Adicionando Surprise Bags no Drop de Monstros Código foi criado para uma versão 8.60 do Crystal Server. provavelmente funciona em TFS 0.4/0.3 Passo 1: Atualize o configmanager.cpp No arquivo configmanager.cpp, adicione o seguinte código para permitir que a configuração de SURPRISE_BAGS seja ativada/desativada no config.lua: m_confBool[SURPRISE_BAGS] = getGlobalBool("dropSurpriseBagsFromMonsters", false); Passo 2: Atualize o configmanager.h No arquivo configmanager.h, defina a variável SURPRISE_BAGS na parte dos booleans: SURPRISE_BAGS, Passo 3: Modifique o items.cpp No arquivo items.cp…

  32. bom resolvi mexer um pouco com a rev 3884 e encontrei com um bug na que estou mexendo, que seria o seguinte, tudo que vc dar target ao cancelar vc toma DC, seja em monstros ou npc pra resolver segue essas alterações na source: protocollgame.cpp ache: void ProtocolGame::sendCancelTarget() { NetworkMessage_ptr msg = getOutputBuffer(); if(msg) { TRACK_MESSAGE(msg); msg->put<char>(0xA3); msg->put<uint32_t>(0); //? creatureId? } } altere para: void ProtocolGame::sendCancelTarget() { NetworkMessage_ptr msg = getOutputBuffer(); if(msg) { TRACK_MESSAGE(msg); msg->put<char>(0xA3); } } de rebuild e…

  33. [TUTORIAL] Adicionar "Summoned by..." na descrição do monstro ao dar Look Como é uma alteração pequena, apesar de simples achei legal compartilhar. Ao dar look no summon de algum jogador você consegue identificar quem foi que o invocou. Acesse monster.h Altere o código abaixo: Spoiler std::string getDescription(int32_t) const override { return strDescription + '.'; } Para: Spoiler std::string getDescription(int32_t) const override { Creature* creature = getMaster(); if (creature) { return strDescription + ". Summoned by " + creature->getName() + "."; } ret…

    • 2 respostas
    • 839 visualizações
  34. Started by Naze,

    Bom, estava pesquisando sobre OtClient e acabei achando esse OtClientV8, feito por Kondra -- link em pt-br dizendo sobre ele External Link -- tópico feito pelo próprio criado External Link Comecei pesquisar sobre, e realmente me parasse um OtClient muito bom, o que mais me interessou e oq venho mostrar é a parte do BOT, ele ja vem com um bot incluso que me interessou muito, pois qualquer um pode criar as funções dele em lua. O tópico falando do bot so vou deixar escrito oque ta la, mas se quiserem ver as imagens o link é esse -- External Link Spoiler O OTClientV8 bot está incluído no projeto OTClientV8, mas possui um repositório github…

    • 2 respostas
    • 18k visualizações
  35. Started by Garou,

    Nome: manager Tipo: C++ Autor: Oneshot Estas são edições nas sources para criação de uma nova opção no vocations.xml que ativa ou desativa a escolha de certas vocações no Account Manager integrado aos servidores. Em vocations.h, procure por: bool attackable, needPremium; Substitua por: bool attackable, needPremium, manager; Procure por: bool isPremiumNeeded() const {return needPremium;} void setNeedPremium(bool v) {needPremium = v;} Adicione logo abaixo: bool isManagerOption() const {return manager;} void setAsManagerOption(bool v) {manager = v;} Em vocations.cpp, procure por: if(readX…

    • 1 resposta
    • 2.3k visualizações

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Informação Importante

Confirmação de Termo