Ir para conteúdo

Líderes

Conteúdo Popular

Mostrando conteúdo com a maior reputação desde 09/11/25 em todas áreas

  1. [Psoul] Base PokeJornadas

    Gb Sampaio reagiu a Gabrieltxu por uma resposta no tópico

    1 ponto
    Prometi a mim mesmo não ajudar mais a comunidade, porem com os acontecimentos em cima dessa base me deixou com raiva e vim compartilhar a mesma com vocês, o servidor foi feito em cima da base vasada do Psoul, onde Walox e outro que não sei o nick trabalharam, porem como já de costume Walox melhorou a interface assim como a Mytology e a ZRing, e para não perder o costume anunciou a venda do mesmo, onde algumas pessoas chegaram a pagar bem caro pela base, quase 2 mil reais. Até ai tudo bem, porem não contente começou a vender ainda mais copias do servidor, e quem comprava também vendia a copia do servidor, algo que acho totalmente errado. Enfim para acabar com essa palhaçada hoje estou postando a base. Ressalvo que NÃO IREI DAR SUPORTE A ESSA BASE, BASE CONTEM MUITOS BUGS, OQUE TEM DE MELHOR É A INTERFACE MESMO Algumas Imagens do servidor: Scans Link para Download (Contem tudo, Client, server etc..): https://mega.nz/file/6dIwRaxT#y2nRFVckLLTLFSBRRtEUJVb-KBAwVPfMhqxyTEEv4Cs Mediafire: https://www.mediafire.com/file/d89t3ol1beq8129/poke+jornadas+completo+++src.rar/file Senha do Winrar: naoetrote1234567890@ Créditos: - Criadores da base Psoul - Walox (Wave) e equipe É isso, espero que essa pratica de venda de servidores desenfreados acabe, desejo boa sorte a todos com a base e façam bom proveito.
  2. * Áudio de saudação * Neste tutorial, irei ensinar alguns passos inicias para utilizar o OTClientV8 1º Passo: Como fixar ip e colocar a spr no local correto - Faço o download no link: https://github.com/OTCv8/otclientv8 - Extraia o arquivo - Dentro da pasta principal, vá até o arquivo init.lua Neste trecho, precisará remover os comentários --[[ e ]]: Servers = { --[[ OTClientV8 = "http://otclient.ovh/api/login.php", OTClientV8c = "otclient.ovh:7171", OTClientV8Test = "http://otclient.ovh/api/login2.php", LocalTestServ = "127.0.0.1:7171:1098:110:30:93" ]] } Ficando assim: Servers = { Meuserver = "127.0.0.1:7171:1098" } ficando na seguinte configuração NOME = "IP:PORTA:VERSÃO" Para fixar e não aparecer a lista de servers, basta alterar: ALLOW_CUSTOM_SERVERS = true -- if true it shows option ANOTHER on server list Para: ALLOW_CUSTOM_SERVERS = false -- if true it shows option ANOTHER on server list Caso queira trocar o nome do aplicativo é só mudar g_app.setName("OTCv8") trocando o "OTCv8" para o nome desejado, lembrando que isto irá alterar apenas o nome da janela do aplicativo Incluir a SPR/Dat: Para incluir, basta ir na pasta data, criar uma nova pasta e renomear com o nome "things" e depois criar uma outra pasta dentro dela com o nome da versão que desejar utilizar, exemplos: * 800 * 860 * 910 * 1100 dentro desta pasta, incluir as respectivas spr/dat da versão correspondente Um vídeo objetivo do conteúdo citado acima: 2º Passo: Remover campo "Token" da tela inicial Apesar de ser algo simples, vejo muitos perguntarem como remover este campo, vamos lá: - Vá até a pasta modules -> client_entergame - Abra o arquivo entergame.lua - Na linha 380 remova ou comente o trecho: enterGame:getChildById('accountTokenTextEdit'):clearText() - Na linha 412 remova ou comente o trecho: G.authenticatorToken = enterGame:getChildById('accountTokenTextEdit'):getText() - salve o arquivo - na mesma pasta, abra o arquivo entergame.otui - da linha 32 a 44 remova ou comente o seguinte trecho: MenuLabel !text: tr('Token') anchors.left: prev.left anchors.top: prev.bottom text-auto-resize: true margin-top: 8 TextEdit id: accountTokenTextEdit anchors.left: parent.left anchors.right: parent.right anchors.top: prev.bottom margin-top: 2 Um vídeo objetivo do conteúdo citado acima: 3º Passo: como encriptar os arquivos - Recomendo inicialmente criar uma cópia da pasta que ira encriptar, pois não é reversivo - Copie o endereço da pasta onde estão os arquivos - Abra o cmd e navegue até esta pasta utilizando o comando cd (link do endereço da pasta) - utilize o comando otclient_dx.exe --encrypt - Aguarde o sistema sinalizar que os arquivos foram encriptados PS: a pasta do modulo bot ( modules -> game_bot ) não pode ser encriptado, remova ela antes deste processo. Um vídeo objetivo do conteúdo citado acima: 4º Passo: Utilizando o auto update IMPORTANTE: Este processo precisa ser feito exatamente como demonstrado, qualquer link errado o sistema não irá funcionar. - Dentro da pasta API, abra o arquivo updater_advanced.php em $files_dir = "/var/www/otclient/files"; é a pasta onde conterá os arquivos do otclient para download, lembrando que o caminho precisa estar especificada desde a pasta inicial em $files_url = "http://otclient.ovh/files"; é o link que você pode utilizar o navegador para acessar a pasta "files" a mesma pasta do processo anterior. em $checksum_update_interval = 60; é o tempo em segundos, que o update levará para checkar se há alguma atualização ( não é necesário alterar ) - Na sua vps, dentro da pasta do SITE, cria uma pasta chamada API e outra pasta dentro dela chamada FILES - Envie o arquivo updater_advanced.php para a pasta API - De permissão 777 para pasta e subpasta API * voltando aos arquivos do otclient * - Abra o arquivo init.lua aconselho alterar o "APP_NAME = "otclientv8", pois é o nome da pasta que ficará salva nos arquivos temporários, isso evitará conflitos com versões já existe no pc altere o campo updater, colocando o endereço apontado para o arquivo updater_advanced.php enviado para o seu site nos passos anteriores. - Após as edições anteriores, salve o arquivo - Compacte os arquivos data, layout, modules e init.lua, renomeando para data.zip ( obrigatoriamente precisa ser zip ) - Exclua os arquivos zipados e os demais desnecessários para os jogadores. Atenção: o auto update só funcionará se os arquivos estiverem zipado conforme descrito. - Envie todos os arquivos para a pasta files em sua vps ( recomendo zipar para enviar, poupara processamento e tempo de envio ) - Após enviar, extraia os arquivos NA VPS, os arquivos no pc devem continuar zipado - Atenção nesta parte, as pastas e arquivo data / layout / modules / init.lua necessáriamente precisam estar na mesma pasta do executáveis, conforme time 4:20 no vídeo que deixarei disponível no final. lembrando: o update só aceitará arquivos editados após o tempo estipulado em checksum_update_interval , se fizer edições antes deste tempo, o sistema não irá considerar Um vídeo objetivo do conteúdo citado acima:
  3. 1 ponto
    Salve pessoal, como ja coletei mt conteudo daqui hoje vim compartilhar algo que na verdade já está free em alguns canais de discord, uma base de nto que eu abri em 2020/2021 até que deu certo e pegou 500/600 players no auge, porem com varios problemas fechei e vendi porem ela ja roda de graça em varios canais então tenho certeza que não tem problema divulgar ela aqui, oque a base tem? Sistema de elo [Rankeamento]; Sistema edo tensei [Selamento de corpos]; Sistemas de saga [historia]; 42 pessonagens completos, todos funcionais e com habilidades unicas; Sistema de vocação do dia [primeiro nto a ter]; Sistema de raridade [Primeiro nto a ter]; Sistema de fontes termais; Sistema anbu/akatsuki com bonus; Sistema de roleta [acredito nunca ter visto uma rotela parecida com a que nos fizemos] Sistema de cidadão; Sistema de jinchuriki; e outros ai que não lembro alem de alguns eventos, o jogo tem bastante coisa e eu dediquei bastante tempo nele, porem atualmente estou trabalhando em outro novamente assim que ficar disponivel iirei postar aqui. quem tiver curiosidade tem varios videos no yt sobre o jogo] Creditos a mim que começei o projeto e ao meu irmão jean, lembro como ta o nome dele aqui então vai ficar por isso mesmo. no arquivo contem Otc, server, site e sourcer. Base utilizada foi nto shinobi 8.54 não pretendo dar suporte a nada até porque esta abandonado por mim desde 2021 https://mega.nz/file/4cdxiJQT#AYXaTLB_Avkys9VrLKymzNY_I2UJcLxDLFLzIgjL-js VirusTotal - File - f9f1bc435cdfc98845ede6adbbc03763aaf5e2c942732f21efe3e1fe1c1b36fe
  4. Dark Complex | Cave Hunt | 8.60

    Klailex reagiu a DdJs por uma resposta no tópico

    1 ponto
    Cave hunt - Dark Complex. Download: Here Scan: Here Imagens:
  5. [Npc] Todos GYM 100% (Base: Pokemon Away)

    DarkRed reagiu a Stigal por uma resposta no tópico

    1 ponto
    Ola Poketibianos, Venho Trazer Todos Gym Funcionais. • GYM: ├ Misty; ├ Blaine; ├ Brock; ├ Erika; ├ Koga; ├ Sabrina; ├ Surge; └ Giovanni; • Download: http://www.mediafire.com/?18e923ns5mm1ccq
  6. Mega Evolution (PxG) PDA

    DarkRed reagiu a lango rullez por uma resposta no tópico

    1 ponto
    Oi. Antes de tudo, este sistema foi escrito para o servidor PDA by Slicer, versão 1.9. A adaptação para outras bases pode ser bem simples, dependendo do seu conhecimento em Lua (que na verdade nem precisa ser grande). Resolvi escrever este simples sistema porque me deu um certo desgosto ver vários servidores onde a mega evolução é literalmente uma evolução (inclusive o que estive jogando, onde alguns jogadores também concordaram com minha opinião). Quero dizer, o pokémon fica transformado direto, para sempre, forever, algo que contraria a ideia original. Optei por fazer o sistema igual (ou semelhante, já que me baseei apenas nas informações disponíveis no Blog PxG, que aliás são poucas) ao da PokeXGames. Mais futuramente, no entanto, posso fazer uma outra versão voltada a ideia de uma mega evolução temporária. Para quem não conhece o sistema, bem, estou com preguiça de explicar, logo recomendo acessar este link. A diferença é que a pedra (mega stone) não ocupa o espaço de um Held Item tier Y (visto que não são todos os servidores que possuem este sistema). O sistema, como poderão notar, possui muitos detalhes. O motivo é que tenho a tendência de deixar a configuração o menor possível. Ou seja, basta configurar o efeito no código da spell e a tabela das mega evoluções. Nossa, que textão. TL;DR: Igual ao sistema da PxG; PDA; muitos detalhes mas pouquíssima configuração. data/lib: cooldown bar.lua: Troque o código da função getNewMoveTable(table, n) por este: function getNewMoveTable(table, n) if table == nil then return false end local moves = {table.move1, table.move2, table.move3, table.move4, table.move5, table.move6, table.move7, table.move8, table.move9, table.move10, table.move11, table.move12} local returnValue = moves if n then returnValue = moves[n] end return returnValue end No código da função doUpdateMoves(cid), troque o segundo: table.insert(ret, "n/n,") Por: local mEvolve if not getCreatureName(summon):find("Mega") and getItemAttribute(getPlayerSlotItem(cid, 8).uid, "megaStone") then if not isInArray(ret, "Mega Evolution,") then table.insert(ret, "Mega Evolution,") mEvolve = true end end if not mEvolve then table.insert(ret, "n/n,") end Depois, em pokemon moves.lua: Troque: min = getSpecialAttack(cid) * table.f * 0.1 --alterado v1.6 por: min = getSpecialAttack(cid) * (table and table.f or 0) * 0.1 --alterado v1.6 Código da spell: elseif spell == "Mega Evolution" then local effect = xxx --Efeito de mega evolução. if isSummon(cid) then local pid = getCreatureMaster(cid) if isPlayer(pid) then local ball = getPlayerSlotItem(pid, 8).uid if ball > 0 then local attr = getItemAttribute(ball, "megaStone") if attr and megaEvolutions[attr] then local oldPosition, oldLookdir = getThingPos(cid), getCreatureLookDir(cid) doItemSetAttribute(ball, "poke", megaEvolutions[attr][2]) doSendMagicEffect(getThingPos(cid), effect) doRemoveCreature(cid) doSummonMonster(pid, megaEvolutions[attr][2]) local newPoke = getCreatureSummons(pid)[1] doTeleportThing(newPoke, oldPosition, false) doCreatureSetLookDir(newPoke, oldLookdir) adjustStatus(newPoke, ball, true, false) if useKpdoDlls then addEvent(doUpdateMoves, 5, pid) end end end end end Depois, em configuration.lua: megaEvolutions = { --[itemid] = {"poke_name", "mega_evolution"}, [11638] = {"Charizard", "Mega Charizard X"}, [11639] = {"Charizard", "Mega Charizard Y"}, } Agora, em data/actions/scripts, código da mega stone: function onUse(cid, item) local mEvolution, ball = megaEvolutions[item.itemid], getPlayerSlotItem(cid, 8).uid if not mEvolution then return doPlayerSendCancel(cid, "Sorry, this isn't a mega stone.") elseif ball < 1 then return doPlayerSendCancel(cid, "Put a pokeball in the pokeball slot.") elseif #getCreatureSummons(cid) > 0 then return doPlayerSendCancel(cid, "Return your pokemon.") elseif getItemAttribute(ball, "poke") ~= mEvolution[1] then return doPlayerSendCancel(cid, "Put a pokeball with a(n) "..mEvolution[1].." in the pokeball slot.") elseif getItemAttribute(ball, "megaStone") then return doPlayerSendCancel(cid, "Your pokemon is already holding a mega stone.") end doItemSetAttribute(ball, "megaStone", item.itemid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Now your "..getItemAttribute(ball, "poke").." is holding a(n) "..getItemNameById(item.itemid)..".") doRemoveItem(item.uid) return true end Depois, em goback.lua: Abaixo de: if not pokes[pokemon] then return true end coloque: if pokemon:find("Mega") then local normalPoke = megaEvolutions[getItemAttribute(item.uid, "megaStone")][1] if normalPoke then doItemSetAttribute(item.uid, "poke", normalPoke) pokemon = normalPoke end end Depois, em data/creaturescripts/scripts, look.lua: Abaixo de: local boost = getItemAttribute(thing.uid, "boost") or 0 coloque: local extraInfo, megaStone = "", getItemAttribute(thing.uid, "megaStone") if megaStone then extraInfo = getItemNameById(megaStone) if pokename:find("Mega") then pokename = megaEvolutions[megaStone][1] end end Depois, acima de: doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, table.concat(str)) coloque: if extraInfo ~= "" then table.insert(str, "\nIt's holding a(n) "..extraInfo..".") end Já em data/talkactions/scripts, move1.lua: Troque: if not move then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.") return true end por: if not move then local isMega = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "megaStone") if not isMega or name:find("Mega") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.") return true end local moveTable, index = getNewMoveTable(movestable[name]), 0 for i = 1, 12 do if not moveTable[i] then index = i break end end if tonumber(it) ~= index then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.") return true end local needCds = true --Coloque false se o pokémon puder mega evoluir mesmo com spells em cooldown. if needCds then for i = 1, 12 do if getCD(getPlayerSlotItem(cid, 8).uid, "move"..i) > 0 then return doPlayerSendCancel(cid, "To mega evolve, all the spells of your pokemon need to be ready.") end end end move = {name = "Mega Evolution", level = 0, cd = 0, dist = 1, target = 0, f = 0, t = "?"} end E troque: doCreatureSay(cid, ""..getPokeName(mypoke)..", "..msgs[math.random(#msgs)]..""..move.name.."!", TALKTYPE_SAY) por: local spellMessage = msgs[math.random(#msgs)]..""..move.name.."!" if move.name == "Mega Evolution" then spellMessage = "Mega Evolve!" end doCreatureSay(cid, getPokeName(mypoke)..", "..spellMessage, TALKTYPE_SAY) Se quiser que o "Mega" não apareça no nome do pokémon, vá em data/lib, level system.lua: Acima de: if getItemAttribute(item, "nick") then nick = getItemAttribute(item, "nick") end coloque: if nick:find("Mega") then nick = nick:match("Mega (.*)") if not pokes[nick] then nick = nick:explode(" ")[1] end end E, caso o seu servidor possua pokémons evoluídos permanentemente na forma mega, em data/actions/scripts, goback.lua: Troque: if pokemon:find("Mega") then local normalPoke = megaEvolutions[getItemAttribute(item.uid, "megaStone")][1] if normalPoke then doItemSetAttribute(item.uid, "poke", normalPoke) pokemon = normalPoke end end por: if pokemon:find("Mega") then local normalPoke = megaEvolutions[getItemAttribute(item.uid, "megaStone")][1] if not normalPoke then local megaStone for itemid, table in pairs(megaEvolutions) do if table[2] == pokemon then megaStone = itemid break end end if not megaStone then return doPlayerSendTextMessage(cid, 27, "Your pokemon is bugged. Please, talk to the administrator.") end doItemSetAttribute(item.uid, "megaStone", megaStone) normalPoke = megaEvolutions[megaStone][1] end doItemSetAttribute(item.uid, "poke", normalPoke) pokemon = normalPoke end Bom pessoal é isso! Espero que ajude ! Creditos: zipter98 (Pela criação) Eu Lango Rullez (Por Divulgar ^_^)
  7. [0.4] Evento Click Up

    Tokias reagiu a Lurk por uma resposta no tópico

    1 ponto
    Salve pessoal, eu amo tibia e a comunidade já me deu muito, hoje finalmente sinto que posso dar algo de volta e vou estar disponibilizando esse código pra evento que eu fiz pro meu servidor. Esse código pode ser melhorado bastante mas é funcional e acredito ter pensando em todas as possibilidades de abuso e ter corrigido, ainda assim caso você faça alguma melhora por favor compartilhe aqui nos comentários :). Vou disponibilizar também a hotkey de elfbot no fim do tópico. Durante o evento (duração de 15 min que você pode diminuir/aumentar), quando um player clica no item ele vai receber x leveis e a cada 2 clicks ele vai ganhar um item (no meu caso, uma event coin). Tem um exhaust de 2 secs a cada click pra evitar abuso com elfbot/auto click e eu não recomendo tirar, embora você possa diminuir/aumentar tranquilamente Em globalevents.xml adicione <globalevent name="clickupstart" time="19:00" event="script" value="clickupstart.lua"/> <globalevent name="clickupclose" time="19:15" event="script" value="clickupend.lua"/> Em globalevents/scripts crie um novo arquivo e nomeie de clickupend.lua e cole isso dentro local storage = 64242 -- storage function onTime() setGlobalStorageValue (storage, -1) doBroadcastMessage("THE CLICK UP EVENT HAS ENDED") return true end Ainda em globalevents/scripts crie um novo arquivo e nomeie de clickupstart.lua e cole isso dentro local storage = 64242 -- storage que você quer zerar. function onTime() setGlobalStorageValue (storage, 1) doBroadcastMessage("THE CLICK UP EVENT HAS STARTED") return true end Agora em actions.xml adicione a tag <action actionid="42113" script="clickup.lua"/> Em actions/scripts crie um arquivo chamado clickup.lua e cole isso dentro local tempo = 2 -- segundos para usar novamente function onUse(cid, item, frompos, item2, topos) if getGlobalStorageValue(64242) == 1 then if getPlayerStorageValue(cid, 45890) > os.time() or getPlayerLevel(cid) >= 717217 then -- se estiver no cooldown ou se for level maximo return doPlayerSendCancel(cid, "Voce deve esperar "..(getPlayerStorageValue(cid, 45890) - os.time()).. " segundos para usar novamente e nao pode ser nivel maximo.") end if getPlayerStorageValue(cid, 45891) < 1 then doPlayerAddLevel(cid, 32) doCreatureSay(cid, "LEVEL UP", TALKTYPE_ORANGE_1, true, cid) setPlayerStorageValue(cid, 45890, 2 + os.time()) local bah = getPlayerStorageValue(cid, 45891) doPlayerSetStorageValue(cid, 45891, bah+1) return true else doPlayerAddLevel(cid, 32) doCreatureSay(cid, "LEVEL UP + EVENT COIN", TALKTYPE_ORANGE_1, true, cid) doPlayerAddItem(cid,10558,1) setPlayerStorageValue(cid, 45890, 2 + os.time()) doPlayerSetStorageValue(cid, 45891, -1) return true end else -- msg quando o evento não ta rolando return doPlayerSendCancel(cid, "The event haven't started yet.") end end Agora você abre seu mapa, cria uma area pro evento e você coloca a actions 42113 na statua/pedra/cristal que o player vai precisar dar use pra ganhar os leveis (eu uso o id 9779) NÃO SE ESQUEÇA QUE A HOTKEY DE ELFBOT VAI MUDAR SE VOCÊ NÃO USAR O MESMO ID QUE EU auto 200 listas 'Evento' | usegrounditem 8865
  8. (Resolvido)Cast System

    brendonbh reagiu a 9k22 por uma resposta no tópico

    1 ponto
    Olá @bellatrikz, tudo bem? Você deverá ter uma conta com accountName = 10
  9. Iniciar - > %appdata% - > RMEMAPEDITOR - > Versão -> creatures.xml (ADICIONAR OU REMOVER A LINHA QUE ACHAR NECESSÀRIO!)
  10. [Pokemon] Servidor Stigal 3.0

    DarkRed reagiu a Stigal por uma resposta no tópico

    1 ponto
    • Servidor Stigal 3.0 {PDA 1.5} [Download]• • Menu: ├ Informações; ├ Ediçoes; ├ Erros; ├ Download; └ Creditos. • Informações Basicas • • Edições / Ajustes • • Erros Do Servidor • • Download's • Servidor Stigal 3.0 {PDA 1.5} 8.54 (4shared) http://www.4shared.com/rar/QhexHDf8/Pokemon_Servidor_Stigal_30_PDA.html? Client PDA 1.6/2.6 (4shared) http://www.mediafire.com/?2a6012x9oz8i5ga Scan Servidor Stigal 3.0 {PDA 1.5+} 8.54 (Virus Total) https://www.virustotal.com/file/f591c04b9323c5bb1f3edb8863a105aa28012732e453766a5783ca44f64abfa9/analysis/1347638278/ Aviso: Os 3 Virus Contidos São Do Executavel... Por Ser "TROJAN" Não Se Multiplica e não fazem mal ao computador! • Creditos • Slicer - {Criador do PDA 1.5} Stigal - {Ajeitar o Mapa e Deixalo "90% Completo"}
  11. Poketibia Sprites de Mega Evoluções

    DarkRed reagiu a Vortexboy por uma resposta no tópico

    1 ponto
    Hey hey pessoal desta vez eu vim disponibilizar para vocês, um dat e spr com varias mega evoluções PxG com portrait (nem todos eu consegui a portrait desculpem) enfim a gente acha varias sprites nos mais diversos clients por ai só que eu resolvi trazer um compilado para os poupar da procura vale lembrar, que todas as sprites funcionam e são compatíveis com old client por terem sido removidas dos próprios. DOWNLOAD Download: http://www.mediafire.com/download/g03rae9nsyih5a0/Sprites_Mega.zip Scan : https://virustotal.com/pt/file/0afa2fb33eccf425350350e21b79951ad17dc0554e52d645c1fd078ba2c169e5/analysis/1470975384/ Créditos: PxG pelas outfits e maioria dos portraits ??? As outras portraits que não da pxg e não desconheço a autoria "Da um REP pro pai que o dedo não cai."
  12. 1 ponto
    Troca toda a função AddPlayerStats por essa: void ProtocolGame::AddPlayerStats(NetworkMessage_ptr msg) { msg->AddByte(0xA0); if (player->getPlayerInfo(PLAYERINFO_MAXHEALTH) > 0) { msg->AddU16(uint16_t(player->getHealth() * 100 / player->getPlayerInfo(PLAYERINFO_MAXHEALTH))); msg->AddU16(100); } else { msg->AddU16(0); msg->AddU16(0); } msg->AddU32(uint32_t(player->getFreeCapacity() * 100)); uint64_t experience = player->getExperience(); if(experience > 0x7FFFFFFF) // client debugs after 2,147,483,647 exp msg->AddU32(0x7FFFFFFF); else msg->AddU32(experience); msg->AddU16(player->getPlayerInfo(PLAYERINFO_LEVEL)); msg->AddByte(player->getPlayerInfo(PLAYERINFO_LEVELPERCENT)); if (player->getPlayerInfo(PLAYERINFO_MAXMANA) > 0) { msg->AddU16(player->getPlayerInfo(PLAYERINFO_MANA) * 100 / player->getPlayerInfo(PLAYERINFO_MAXMANA)); msg->AddU16(100); } else { msg->AddU16(0); msg->AddU16(0); } msg->AddByte(player->getPlayerInfo(PLAYERINFO_MAGICLEVEL)); msg->AddByte(player->getPlayerInfo(PLAYERINFO_MAGICLEVELPERCENT)); msg->AddByte(player->getPlayerInfo(PLAYERINFO_SOUL)); msg->AddU16(player->getStaminaMinutes()); }
  13. [Ajuda] Como Editar A imagem de fundo do OTClient

    DarkRed reagiu a Wend por uma resposta no tópico

    1 ponto
    tem uma imagem na pasta data\images chamada de background é ela que é a imagem de fundo
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo