
Tudo que marcoshps11 postou
- [otcv8] Como utilizar - Ip fixo, spr, encrypt, auto update
-
[otcv8] Como utilizar - Ip fixo, spr, encrypt, auto update
* Á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:
- OTCv8-Mobile
- OTCv8-Mobile
- OTCv8-Mobile
- OTCv8-Mobile
- OTCv8-Mobile
- OTCv8-Mobile
-
(Resolvido)Ajuda TFS 1.3 Network Protection Não aceita cliente custom.
em const.h altere: static constexpr int32_t NETWORKMESSAGE_MAXSIZE para o valor 65535 ( este é o máximo limite )
- OTCv8-Mobile
- Como usar Remere's Map Editor
-
OTCv8-Mobile
Hoje, a nova versão do Android foi lançada. Registro de alterações: - Adicionado suporte multitoque - Adicionado teclado (joystick) para caminhada manual - Barra de ação aprimorada - Painel de ação esquerdo aprimorado, ação extra adicionada ao clicar duas vezes - Outras pequenas correções de bugs Dicas para usuários mobile: - Clique duas vezes em Usar no painel esquerdo para usar o item em você - Clique duas vezes em Atacar / Seguir no painel esquerdo para atacar / seguir a primeira criatura da lista de batalhas - Clique duas vezes em Olhar no painel esquerdo para ver a primeira criatura na lista de batalhas. - Mantenha o dedo por 0,5s para clicar com o botão direito - Você pode ampliar / reduzir o mapa usando bot (guia Ferramentas) - Você pode ligar teclas de aumentar / diminuir volume como teclas de atalho - O botão de navegação traseira funciona como escape, você pode usá-lo para fechar as janelas O link para download é o mesmo de sempre: http://otclient.ovh/otclientv8.apk link suporte br: https://discord.gg/PXuzQ5P Mais atualizações estão chegando em breve! Divirta-se
-
Open Tibia Login Server - novo servidor de login de código aberto
O servidor de login atual está desatualizado, por isso tenho um plano para criar um novo. Ele será criado em typescript (nodejs), para facilitar o desenvolvimento e a extensão. Ele terá licença do MIT, totalmente de código aberto. Terá recurso para: Classic tibia login Tibia 12 login com informação extra (news, players online, etc) Authorization token Extended otclientv8 login (com news, outfits, criação de personagem ingame e outras coisas legais) Cast & Cams Proxies Multiple worlds Status do otlist Github repo: OTCv8/OpenTibiaLoginServer (https://github.com/OTCv8/OpenTibiaLoginServer) Se você quiser outros recursos neste servidor de login, informe-me. Isso deve ser feito dentro de uma semana. Link Canal de Suporte -> https://discord.gg/PXuzQ5P ( Disponível em português )
-
Suporte | Novas Spells ( SPR )
um exemplo do que acontece, o efeito some somente após sair do alcance ou então re logar o char Tibia - [Dev] Dranit 15_10_2018 00_26_53.mp4
-
Suporte | Novas Spells ( SPR )
Na realidade eu só peguei o npc de passagem dos portões de yalahar e troquei o efeito, qualquer outro efeito funciona normalmente, porém se eu colocar qualquer um dos que adicionei, ele fica infinito
-
Suporte | Novas Spells ( SPR )
Usei em um npc de teletransporte , player:sendmagiceffect~~ Exatamente, o efeito fico infinito até que eu relog o personagem
-
Suporte | Novas Spells ( SPR )
Olá, estou tentando adicionar novas SPRs ao game, quando eu adiciono uma spr nova de effect e a utilizo in game, o efeito fica em um loop infinito. A base é OTX 1.3
-
Servidor global + Proprio
Olá, estou precisando de uma equipe para continuar no andamento de um projeto, o servidor está online a 6 meses: preciso de qualquer tipo de ajuda, pois estou montando todo sozinho -Mapper -Programador -Digitador -Orientação aos novos jogadores qualquer ajuda será bem vinda, basta entrar em contato para combinarmos
- Pokepro2 30/05/2018
-
[Function] Account Storage
Estou tentando utilizar este código, porém estou com o seguinte problema: quando utilizo o código informado, o server da vário erros e não abre function getAccountStorageValue(accid, key) local value = db.getResult("SELECT `value` FROM `account_storage` WHERE `account_id` = " .. accid .. " and `key` = " .. key .. " LIMIT 1;") if(value:getID() ~= -1) then return value:getDataInt("value") else return -1 end value:free() end quando utilizo este que adaptei, ele só me retorna o valor -1 e nunca o valor da key, poderia ajudar? function getAccountStorageValue(accid, key) local resultId = db.storeQuery("SELECT `value` FROM `account_storage` WHERE `account_id` = " .. accid .. " and `key` = " .. key) if resultId ~= false then local val = result.getInt(resultId, "value") result.free(resultId) return val end return -1 end Problema solucionado
-
Função GetAccountStorage OTX 1.3
Buenas estou tentando criar uma função para localizar uma storage na account porém estou tendo este problema na hora de utilizar: a função estou utilizando a seguinte: function getAccountStorageValueDois(accid, key) local resultId = db.getResult("SELECT `value` FROM `account_storage` WHERE `account_id` = " .. accid .. " and `key` = " .. key) if resultId ~= false then return result.getNumber(resultId, 'value') else return -1 end return resultId:free() end e o código do npc: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end local function getTable(player) local storage = 64556 local value = player:getAccountId() local itemsList = { {name='backpack', id=1988, buy=200} } local itemsList1 = { {name='backpack', id=1988, buy=180} } if getAccountStorageValueDois(value,storage) == 30 then return itemsList1 end return itemsList end local function setNewTradeTable(table) local items, item = {} for i = 1, #table do item = table[i] items[item.id] = {itemId = item.id, buyPrice = item.buy, sellPrice = item.sell, subType = 0, realName = item.name} end return items end local function creatureSayCallback(cid, type, msg) if not npcHandler:isFocused(cid) then return false end if msgcontains(msg, 'trade') then local player = Player(cid) local items = setNewTradeTable(getTable(player)) local function onBuy(cid, item, subType, amount, ignoreCap, inBackpacks) if (ignoreCap == false and (player:getFreeCapacity() < ItemType(items[item].itemId):getWeight(amount) or inBackpacks and player:getFreeCapacity() < (ItemType(items[item].itemId):getWeight(amount) + ItemType(1988):getWeight()))) then return player:sendTextMessage(MESSAGE_STATUS_SMALL, 'You don\'t have enough cap.') end if items[item].buyPrice <= player:getMoney() then if inBackpacks then local container = Game.createItem(1988, 1) local bp = player:addItemEx(container) if(bp ~= 1) then return player:sendTextMessage(MESSAGE_STATUS_SMALL, 'You don\'t have enough container.') end for i = 1, amount do container:addItem(items[item].itemId, items[item]) end else return player:addItem(items[item].itemId, amount, false, items[item]) and player:removeMoney(amount * items[item].buyPrice) and player:sendTextMessage(MESSAGE_INFO_DESCR, 'You bought '..amount..'x '..items[item].realName..' for '..items[item].buyPrice * amount..' gold coins.') end player:sendTextMessage(MESSAGE_INFO_DESCR, 'You bought '..amount..'x '..items[item].realName..' for '..items[item].buyPrice * amount..' gold coins.') player:removeMoney(amount * items[item].buyPrice) else player:sendTextMessage(MESSAGE_STATUS_SMALL, 'You do not have enough money.') end return true end local function onSell(cid, item, subType, amount, ignoreEquipped) if items[item].sellPrice then return player:removeItem(items[item].itemId, amount, -1, ignoreEquipped) and player:addMoney(items[item].sellPrice * amount) and player:sendTextMessage(MESSAGE_INFO_DESCR, 'You sold '..amount..'x '..items[item].realName..' for '..items[item].sellPrice * amount..' gold coins.') end return true end openShopWindow(cid, getTable(player), onBuy, onSell) npcHandler:say('Keep in mind you won\'t find better offers here. Just browse through my wares.', cid) end return true end npcHandler:setMessage(MESSAGE_GREET, 'Hello.') npcHandler:setMessage(MESSAGE_FAREWELL, 'It was a pleasure to help you, |PLAYERNAME|.') npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Estou utilizando OTX 1.3, a função set funcionou perfeitamente, somente a get que não estou conseguindo utilizar
-
[AJUDA AQUI] SERVIDOR EM LINUX NÃO ACESSA
o login.php é para 10/11+, tem que ser o arquivo certo para a versão na qual está utilizando
-
[AJUDA AQUI] SERVIDOR EM LINUX NÃO ACESSA
veja se da erro pelo terminal quando você tenta acessar sua conta, lembre que o mesmo config.lua que está no seu ot deve estar exatamente igual em config.lua do seu site, outra coisa, não esqueça de por o arquivo login.php dentro da pasta do site
-
Equipe OTserv TFS 1.3
Olá a todos, Busco por um Mapper para integrar na equipe. OTserv já está em em andamento, online a 2 meses em um dedicado. Necessito um mapper com um bom grau de detalhamento, conhecimento da historia do tibia para elaborar novas quests e mapas no estilo RPG Qualquer dúvida entrar em contato.
-
Reply Forum Gesior
resolvido, deletar