Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Pessoal, quem pediu para atualizar o post, infelizmente estou muito sem tempo por conta da faculdade e não tenho acompanhado o fórum nos últimos meses. Não poderei atender o pedido de vocês no momento. :(

Link para o post
Compartilhar em outros sites
  • 3 weeks later...
  • Respostas 13
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Fala, galera! Beleza?   Sou novo aqui no TK e queria trazer algo para vocês. Dei uma procurada e não achei nada do tipo, então creio que esse tutorial possa ajudar algumas pessoas!  O que vou ensinar a vocês é como criar uma skill direto na source, o que permite que você utilize comandos como "getPlayerSkill", "doPlayerAddSkillTry" etc em seus scripts em Lua. Esse tutorial NÃO serve para criar skills de "combate", como sword, axe etc. Esse tipo de skill envolve vários outros parâmetros além

Em 09/05/2014 ás 16:31, palubo disse:

Valeu, cara! Que bom que curtiu! :grin:

Como faz para alterar o nome..

Axe figthing para

combate com machado??

@palubo

Editado por robi123 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 11 months later...

Funciona no TFS 0.4? no Mounts.cpp não achei nada relacionado a fish, alguns códigos do conditions.cpp está no enums.h, fui compilar deu erro

 

Zenfia.png.278005607bb4ab7487f8d6504416d875.png

 

horizontallogoblue.png.aa21fb2bb7e9cb1092aa00c635f9bb36.png

Link para o post
Compartilhar em outros sites
  • Sub-Admin
Em 09/05/2014 em 14:39, palubo disse:

Fala, galera! Beleza? :smile:

 

Sou novo aqui no TK e queria trazer algo para vocês. Dei uma procurada e não achei nada do tipo, então creio que esse tutorial possa ajudar algumas pessoas!  :grin:

O que vou ensinar a vocês é como criar uma skill direto na source, o que permite que você utilize comandos como "getPlayerSkill", "doPlayerAddSkillTry" etc em seus scripts em Lua. Esse tutorial NÃO serve para criar skills de "combate", como sword, axe etc. Esse tipo de skill envolve vários outros parâmetros além do que mostrarei aqui. Quem sabe eu faça um tutorial sobre isso daqui um tempo.  :tongue:

Preview de uma skill que criei para meu projeto:

crafting_zps6dbad9ab.png

 

Para este tutorial, eu usei:

  •  Sources do The Forgotten Server 0.3.7: Aqui serão feitas várias edições, criando a nova skill e tudo que é necessário para a skill funcionar corretamente.
  •  Microsoft Visual Studio 2010 Professional: Utilizei para compilar o TFS com as novas edições. Se não souber compilar, procure em outros tópicos aqui do fórum. Não é meu objetivo aqui ensinar como compilar. É necessário compilar com o MVS? Não. Se você preferir, pode fazer com outros programas.
  •  Notepad++: Usei porque acho um editor de texto simples, prático e funcional. Não gosto de editar os códigos no MVS. Porém sinta-se à vontade para usar o editor que quiser. haha
  •  SQLiteStudio 2.1.4: Será necessário para fazer pequenas alterações para que seu banco de dados funcione corretamente. Se você utiliza MySQL, terá que fazer essas edições por outro programa.
  •  Sources do OTClient: Como utilizo o OTClient em meu servidor, usarei ele para demonstrar como adicionar a barrinha à janela de Skill. Se você utiliza outro client, infelizmente, não poderei dar suporte, já que nunca editei outros clients.
  •  Codeblocks: Usei para compilar o OTClient. Mas pode ser feito com o MVS também. A escolha é sua!

Passo 1 - Editar a source do TFS:

 

 

 

Conteúdo Oculto

 

 

Passo 2 - Editar o OTClient:

 

 

 

Conteúdo Oculto

 

 

Passo 3 - Editar o TFS:

 

 

 

Conteúdo Oculto

 

 

Passo 4 - Editar a database:

 

 

 

Conteúdo Oculto

 

 

Pronto! Seu servidor já está configurado com a nova skill! Agora você poderá usar Lua para configurá-la!  :grin:

 

Vou dar um exemplo MUITO simples de como isso poderia ser feito em Lua:

 

 

 

Conteúdo Oculto

 

 

Claro que essa action acima é algo muito simples, mas, tendo o servidor já configurado, acredito que essas modificações abram uma gama de possibilidades imensas a todos que querem desenvolver uma nova skill. Espero que tenham gostado e que o tutorial seja útil para alguém! haha

 

Qualquer erro ou bug, me avisem!

 

Atenciosamente,

Auro Mota.

 

topzera!!

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por KekezitoLHP
      Nome: Fist Fighting/Attackspeed
      Tipo: C++
      Autor: Oneshot
       
      Já vi alguns pedidos no fórum sobre a skill Fist Fighting, onde quanto mais você treinasse ela, mais rápido você atacaria no jogo, e parece que isto é um feature do Tibia. Como é uma modificação muito fácil nas sources, resolvi passar aí para a galera.
      Por padrão, o intervalo entre ataques do Tibia é 2000ms, ou seja, um ataque físico a cada dois segundos. Eu fiz uma pequena modificação nas sources onde o Fist Fighting seria inversamente proporcional ao tal intervalo, ou seja, quanto maior o valor da skill, menor seria o intervalo.

      Fiz de um modo que um jogador com Fist Fighting de nível 200, então, teria uma redução de 75% no intervalo de ataque, ou seja, um ataque a cada meio segundo ou dois ataques por segundo

      Leve em consideração que ele pega como base o attackspeed da vocação ou da arma usada, ou seja, se seu servidor já tem o tal chamado "fast attack", de nada adianta adicionar esse código C++.
       
       
      Abra seu player.cpp, procure por isso:
      Player::getAttackSpeed() Substitua toda a função, dependendo da versão de seu servidor:
       
      0.3.6
      uint32_t Player::getAttackSpeed() {     Item* weapon = getWeapon();     if(weapon && weapon->getAttackSpeed() != 0)         return std::ceil(weapon->getAttackSpeed() * (1 - (getSkill(SKILL_FIST, SKILL_LEVEL) * 0.00375)));     return std::ceil(vocation->getAttackSpeed() * (1 - (getSkill(SKILL_FIST, SKILL_LEVEL) * 0.00375))); } 0.4
      uint32_t Player::getAttackSpeed() const {     return std::ceil(((weapon && weapon->getAttackSpeed() != 0) ? weapon->getAttackSpeed() * (1 - (getSkill(SKILL_FIST, SKILL_LEVEL) * 0.00375)) : (vocation->getAttackSpeed() / std::max((size_t)1, getWeapons().size()) * (1 - (getSkill(SKILL_FIST, SKILL_LEVEL) * 0.00375))))); } Isso adiciona uma utilidade para a skill Fist Fighting que em muitos dos servidores é algo deixado de lado e inútil.
    • Por Gengo
      Fala galera do TibiaKing venho disponibilizar para a comunidade um script bem bacana para seu poketibia, o famoso Slot Machine, no qual ele te recompensa com pedras de evolução, sem mas delongas vamos para a instalação.
       
      1º Baixe os arquivos no link:
          -    http://www.mediafire.com/file/9df09dpbftz328y/slot_machine.rar 
                   - Scan do link 1 ( https://www.virustotal.com/pt/file/ac47987beb6aa6437259226f09927099d4f7670c780315f8707e57e16767ad9f/analysis/1514485261/ )
          -    http://www.mediafire.com/file/x7xtq6otxfo70vf/machine.rar 
                   - Scan do link 2 ( https://www.virustotal.com/pt/file/98d44e8815811eb8f4dc722c98faae690dae6bca0b79f67df1e3b5c5b9faaecb/analysis/1514485429/ )
       
      Feito o 1º passo, coloque a pasta slot_machine na pasta do seu otClient modules/ e a pasta machine em data/images/game/ colocando os arquivos nos devido lugar certo já deve funcionar, mas agora vamos prosseguir em fazer com que ele dê o premio.
       
      Na  pasta do servidor em data/creaturescripts/scritps  crie um arquivo chamado SlotMachine.lua e coloque o seguinte script:
      local OPCODE_SLOT_MACHINE = 12 local removeDollar = 2000*100 -- = equivale a 20 Hundred Dollar function onExtendedOpcode(cid, opcode, buffer) if opcode == OPCODE_SLOT_MACHINE then if ( buffer ~= 1 ) then doPlayerAddItem(cid, buffer, 1) end doPlayerRemoveMoney(cid, removeDollar) end return true end Depois na mesma pasta abre o arquivo login.lua coloque o seguinte comando:
      registerCreatureEvent(cid,"SlotMachine") E por fim na mesma pasta do seu servidor onde você estava abre o arquivo data/creaturescripts/creaturescripts.xml coloque a seguinte tag:
      <event type="extendedopcode" name="SlotMachine" event="script" value="SlotMachine.lua"/>  
      Imagem de como está em in game:

       
      Bom espero que tenham entendido, não sou muito bom com explicações ou escrever um tutorial, mas espero que gostem.  :D
    • Por Gengo
      [OTClient] Sistema de Dialogo Otpokemon
       
      Venho através desse tópico contribuir para a comunidade, um simples modulo de dialogo no estilo do Otpokemon,
      não é um sistema de dialogo avançado é algo simples que deixa seu servidor intuitivo.
       
      1) Faça o download do modulo no qual se encontra no final do tópico e abrindo a pasta do seu client,, extraia e coloque o modulo na pasta modules.
       
      2) O módulo utiliza uma função chamada switch que não é comum ter no otclient, porem podemos colocar sem muito esforço, na pasta do otclient abra o arquivo util.lua que se encontra em modules/corelib/ e no final do arquivo coloque o seguinte código:
       
      Feito o passo 1 e 2, vamos para a parte do servidor.
       
      1) Crie um arquivo na pasta data/lib/ podendo ter o nome de npcdialog_lib.lua e coloque o seguinte código:
       
      2) O arquivo que acabamos de criar utiliza uma função chamada table.serialize que não é comum ter nos servidores, para que funcione sem erros vamos adicionar, abra o arquivo 012-table.lua que fica na pasta do seu servidor em data/lib/ ou você pode criar o arquivo e adicionar o seguinte código:
       
       
      Feito todo esse procedimento, estarei disponibilizando um npc para que vocês possam ter uma noção de como utilizar esse sistema de dialogo.
       
      1) Crie um arquivo na pasta do servidor em data/npc/ chamado Gengo.xml e adicione o seguinte código:
       
      2) Crie um arquivo na pasta do servidor em data/npc/lib/ com o nome gengo.lua e adicione o seguinte código:
       
       
      O npc é algo simples, porem serve para que você possa ter uma noção de como utilizar as funções do npc.
       
      Demostrativo dentro do game:

       
      Arquivos para download e o scan:
    • Por marcoshps11
      * Á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:
       
       
       
    • Por Roy
      Bem eu não sei nem por onde começar já que. Acredito eu que faz uns 2 anos mais ou menos que não me envolvo com Tíbia então hoje vim trazer algo novo para todos nós.
       Bem o que è Discord RPC? Nada mais nada menos que, aquela janelinha que mostra qual jogo você está jogando no Discord. E ao passar o mouse em cima do úsuario você pode checar os detalhes.

       
      Bem o Tíbia em sí já tem o Discord RPC por padrão mas o que eu trouxe a vocês o Discord-RPC que você pode editar como você quiser.
      Por exemplo.
       

       
      Talvez seja uma contribuição bem clichê. Mas para aqueles que deseja que os players mostre para os outros que está jogando seu otserv é uma boa, que possa ajudar a divulgar também. Acredito eu. Enfim vamos lá.
       
      Bem primeiro de tudo você precisa criar sua aplicação no Discord.
      Vá até o site de Desenvolvimentos de Aplicações do Discord e crie o seu canal clicando em New Aplication.
       
      Após Criar seu canal com o nome do seu Otserv, Descrição e ter colocado sua logo ou sei lá. Seu Canal Está quase completo. (Lembrando que as imagens precisam ser ou 512x512 ou 1024x1024)
      Vá até Rich Presence: Escolha sua logo e também clique em Add Image(s) e adicione uma imagem para sua Logo do Discord-RPC. Para quando o cara passar o mouse por cima do úsuario enxergar ela.
      Ok até aqui tudo OK. Só precisa aguardar o Discord carregar sua logo e enquanto isso vamos fazer o restante.
       
      Baixe a source do Discord-RPC.
      Tibia-RPC.rar
      https://drive.google.com/file/d/1N9oOlxEdMmPZbwPNFRNMXI4z86_v_AbL/view?usp=share_link
       
      Após baixar e abrir. Vá até o Discord.Cpp

       
      e vai aparecer assim pra você.
      Primeiro precisamos definir o ID do nosso Canal que criamos no Discord.
      Quando criamos o canal ele já nos da o ID do nosso canal. 
       

       
      Você cópia o ID e cola em cima do outro que está no Discord.CPP.
      Após isso vamos ver os detalhes.
       
      Em Rich Presence conseguimos visualizar a imagem que adicionamos Ok.
      Abaixo de Rich Presence tem o Art Assets que é onde adicionamos as imagens de logo e tal. Vamos em Visualizer Clicamos nele e então vamos editar nosso Dircord RPC da forma que desejarmos.

       
      Após Editar a direita veremos como ele vai ficar quando alguém passar o mouse em cima do úsuario.
       
      Vamos em Show Code e vemos como ficou o código nele. certo!

       
      bem de alguns não necessitamos necessáriamente a não ser que você queira adicionar mais alguma coisa. recomendo não mexer nessas linhas.
       
       
      DiscordRichPresence discordPresence; memset(&discordPresence, 0, sizeof(discordPresence)); discordPresence.startTimestamp = starttime; Discord_UpdatePresence(&discordPresence);  
      Tudo ok.
      Então vá até o Discord.cpp e edite-as como quiser. E vemos tudo lindo assim:

       
      Após isso só compilar e importar a dll no seu cliente tibia.
      Se você não tem nenhum importador de .dll eu vou disponibilizar pra você o link do Stud_PE
      Com ele você pode importa sua dll no seu cliente e ser feliz.
       
      Para importar a dll ao seu cliente, instale o Stud_PE no seu computador, após instalar. Abra.
      Importe o Tibia ou arraste o Tibia pra dentro do Stud_PE 
      Vá em Functions > Clique com o botão direito dentro da janela de Fuctions.

       
      Cliqu em Add New Import > Dll Select > Selecione a dll do Discord-RPC > Após isso Clique em > Select func. > Selecione a função > Após Clique em > Add to List e clique em ADD.
       

       
      Então só da Ok e abrir o seu Cliente.
       
      Bem eu vou mandar a versão que mostra o Nome e Level pra vocês assim:
       

       
      Essa versão mostra o Nome do personagem quando loga e o level. OBS: a dll faz um update de checagem a cada 5 segundos então precisa aguardar até seu nome aparecer.
       

       
      Em Discord.h você pode determinar o level máximo do seu servidor. fazendo cada linha por level.
       
      Você precisa procurar os endereços com o Cheat Engine.
      Se caso for procurar pelo Check Login pesquisa por 1 se o char estiver logado. E 0 quando estiver deslogado, vai procurando até encontar qual endereço muda quando logar e deslogar.
       
      Em questão do nome procura pro string e o nome do seu personagem. Na maioria das vezes é quase sempre o primeiro mas você pode mudar o nome no Cheat pra ter certeza.
      Em questão do Level Procura pelo valor do level por exemplo: 211, da um addskill pra level o level 212 e da um Next Scan na pesquisa com o valor novo pra ter certeza. e vai adicionando mais um pouco até ter a certeza.
      Supostamente eu encontrei na primeira pesquisa e só precisei upar 1 level mas vocês podem demorar um pouco.
      único coisa que não consegui identificar foi a vocação do personagem que eu queria muito mas com isso acho que já é o suficiente.
       
      Tibia-RPC N.L.rar✔️
      https://drive.google.com/file/d/1N9oOlxEdMmPZbwPNFRNMXI4z86_v_AbL/view?usp=share_link

      perdõe se eu não fui autoexplicativo e se postei na sessão errada. Corrijam-me se eu falei algo errado ou fiz algo de errado. Essa Source não fui eu quem criei.
      Eu usei o VS 2019. Qualquer dúvida por favor sinta-se a vontade.
       
      Meu obtjetivo é trazer algo novo pra comunidade e que possa ajudar outras pessoas.
      Esse lançamento pode ser inútil pra alguns mas para outros pode servidor de grande favor. Para aqueles que jogam usando Discord e tal.
       
       
       
  • Estatísticas dos Fóruns

    96842
    Tópicos
    519597
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo