Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Olá, a muito tempo atras eu desenvolvi uma "Auto-Updater" para se usar em conjunto com o "otclient", fiz ele em "vb.net" e na época era o máximo que eu podia fazer..., mas agora iniciei um novo projeto.

 

Biblioteca de atualização.

 

Oque é?: é uma ".dll" que estou desenvolvendo com funções para poder criar um "Auto-Updater" em lua no próprio "otclient", oque permite uma customização total na parte visual e na parte do script. E o mais importante é que vai ser da comunidade Open Tibia, oque significa que bem em breve já terá o download da ".dll" com as funções básicas para um teste de estabilidade .

 

Funções lua:

 

Basicas:

 

doDownloadFile (pronta) --  baixar arquivos por url.

doRemoveFile (pronta) -- remover um arquivo

doCheckFile (pronta) -- checar se um arquivo existe

getDownloadInfo (0%) --conseguir todas as informações do download atual tais como (Tamanho do arquivo, Velocidade de download, Total Baixado)

doExtractArchive(50%) -- extrair arquivos zip.

doOpenProgram(pronta) -abri qualquer arquivo. como (.exe, .txt, ...) 

 

Outras podem ser alteradas:

doClientUpdate(0%) --inicia um programa secundário para concluir a atualização, caso o Client precise ser fechado para conclusão da atualização. (exemplo caso a atualização é na própria .dll ou no executável do Client).

GetClientPath(0%) --Gera o caminho para o executável do Client (Ex: c://MeuClientFeliz)

 

Obs.: Logico que isso é só o necessário para ter um "Auto-Update" básico funcionar. com o tempo vou adicionar novas funções visando melhorar minha biblioteca.

 

Esse post é para instruir e divulgar as pessoas sobre meu projeto, gostaria muito de um feedback positivo e logico que criticas construtivas e ideias são sempre bem vindas :). caso alguém tenha alguma ideia que possa ser implementada. por favor é só deixar o seu post.

 

Por ultimo um pequeno exemplo de como ficaria um script para atualizar um arquivo:

if doRemoveFile("tibia.spr") then
    local download = doDownloadFile ("tibia.spr", "https://www.meusitecomosdownloads.com/Path1.0.zip")
    doExtractArchive(download, GetClientPath().."\Data\Things\854")
end

E a partir do momento que você tem uma tabela em lua com vários arquivos um simples for já faria todo o trabalho :). assim fazendo toda atualização bem fácil de se entender e de se scriptar.

Editado por vyctor17 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Existe alguma função para verificar se há atualização?

Alguns scripts de Garry's Mod verificam um arquivo txt com somente a versão escrita, quando essa versão do txt é mudada ele compara com a do cliente e avisa sobre o update. Dai ele já automaticamente executa a atualização...

Bruno de Carvalho Câmara / Administrador TibiaKing

[email protected]


 

btn_donateCC_LG.gif

 

Em 26/12/2016 em 03:47, Spraypaint disse:

A força da alienação vem dessa fragilidade dos indivíduos, quando apenas conseguem identificar o que os separa e não o que os une.

-miltinho

 

wMwSJFE.png?1

 

Link para o post
Compartilhar em outros sites

Existe alguma função para verificar se há atualização?

Alguns scripts de Garry's Mod verificam um arquivo txt com somente a versão escrita, quando essa versão do txt é mudada ele compara com a do cliente e avisa sobre o update. Dai ele já automaticamente executa a atualização...

não existe porque, eu pensei o seguinte a pessoa pode facilmente colocar em seu domínio um arquivo text que ficaria para deixar a versão atual da atualização,  toda vez ao iniciar o Client ele baixa esse arquivo e usa uma biblioteca IO para comparar com o arquivo antigo. e para lista de download pode ate ser um tabela em lua em arquivo text novamente no domínio da pessoa, e depois só é preciso usar o IO e a LoadString. e dai como eu falei usar um for básico e pronto :). essa logica dos arquivos text é a mesma que eu uso em meu updater em vb ele sempre baixa um arquivo contendo o numero da ultima versão e compara com oque já tem no client.

Editado por vyctor17 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Acho que se ele for baixar toda as vezes dependendo do arquivo fica muito pesado e não compensa acho...

Bruno de Carvalho Câmara / Administrador TibiaKing

[email protected]


 

btn_donateCC_LG.gif

 

Em 26/12/2016 em 03:47, Spraypaint disse:

A força da alienação vem dessa fragilidade dos indivíduos, quando apenas conseguem identificar o que os separa e não o que os une.

-miltinho

 

wMwSJFE.png?1

 

Link para o post
Compartilhar em outros sites

Acho que se ele for baixar toda as vezes dependendo do arquivo fica muito pesado e não compensa acho...

um arquivo text contendo um numero de versão não pesa mais que 1kb ele vai compara com o outro arquivo text se o arquivo existir, se não existir ele inicia o download do arquivo mais recente, e já inicia a atualização mas caso o arquivo exista ele compara o numero que contem dentro do arquivo que já esta no seu computador com o numero que existe no novo arquivo que foi baixado se for diferente ele baixa se não, não.., e isso é só uma logica deve ter muitas outras formas de fazer a mesma coisa.

Editado por vyctor17 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Ah agora intendi direito, achei que ele iria baixar tudo kk

Então o sistema ta bacana, e ajuda muitos donos de otserv (pokemon principalmente) a atualizar e alertar os players sobre atualizações de maneira mais eficiente...

Bruno de Carvalho Câmara / Administrador TibiaKing

[email protected]


 

btn_donateCC_LG.gif

 

Em 26/12/2016 em 03:47, Spraypaint disse:

A força da alienação vem dessa fragilidade dos indivíduos, quando apenas conseguem identificar o que os separa e não o que os une.

-miltinho

 

wMwSJFE.png?1

 

Link para o post
Compartilhar em outros sites

Ah agora intendi direito, achei que ele iria baixar tudo kk

Então o sistema ta bacana, e ajuda muitos donos de otserv (pokemon principalmente) a atualizar e alertar os players sobre atualizações de maneira mais eficiente...

Então isso que eu falei é a logica para um "updater" eu só vou fazer a biblioteca que torna ela possível a parte em lua, quem quiser usar a biblioteca vai ter que se virar.

mas mesmo assim a parte em lua se for bem feita não da mais que 15 linhas.e deixa tudo automatizado e também não é tão complicado de fazer a parte mais chata é mexer com a biblioteca IO, aprendendo isso fica tudo bem fácil...

Link para o post
Compartilhar em outros sites
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Budrox
      ola! venho apresentar meu protejo e ouvir a opinião de
      vocês estou trabalhando a alguns meses nessas sprites,
      jogariam um protejo assim, penso em fazer o jogo em
      outras engines mas faria mais sentido se fosse um
      protejo online.

    • Por GamerGoiano
      Provavelmente funciona com os outros jogos do quilante, basta substituir a pasta data na pasta do servidor e substituir os arquivos do cliente na pasta otclient/data/things/860
      Eu não tenho créditos sobre o projeto, estou apenas postando aqui porque ja é de dominio público porém em todos os tópicos na internet o projeto está muito desatualizado
      Este aqui está configurado pra por online no pc.
       

      Download: (TFS 04 860 + OTCLIENT "Ultima versão x64", Htdocs "O site" e o Banco de dados Compativel.
      https://www.mediafire.com/file/bmponjci62txbxd/TIBIA+GTA+ARRUMADO.rar/file

      Scan:
      https://www.virustotal.com/gui/file/b6236579ad11201f3c01899a218f6ca8ef8e645cf3881f5de2af46a04837085d?nocache=1
    • Por TestAccount
      Bem vindos a SwampSoldiers, um ot alternativo único de sapos e minhocas! Achou estranho? Eu também, mas comecei a jogar e viciei ?

      Website
      SwampSoldier - Play to earn (https://www.swampsoldiers.com/index)

      Social Media
      Twitter: https://twitter.com/SoldiersSwamp
      Discord: Join the SwampSoldiers | ? Vs ? Discord Server! (https://discord.gg/qc9wfMQ8vK)
      Youtube: https://www.youtube.com/c/SwampSoldiers
      Facebook: SwampSoldier (https://www.facebook.com/profile.php?id=100087871800250)
      Instagram: Swamp Soldiers (@swampsoldiers) • Instagram photos and videos (https://www.instagram.com/swampsoldiers/)

      =================================================================================================
      SwampSoldiers é um jogo blockchain gratuito, onde você é o verdadeiro dono de seus ativos e pode vendê-los facilmente a outros jogadores por dinheiro real.

      Características:
      Músicas de fundo e efeitos de som; Mapa unico e original; 6 diferentes classes e 2 facções; NPCs animados; Spells unicos com som; Mercado p2p; Quests únicas; 0% de perda de exp até o lvl 5; Sistema de crafting; Sistema de casas e ilhas particulares; Sistema de pet e autoloot; World boss; Tower defense mini-game; Battle royale sendo desenvolvido;  

       

       

       

       

       

    • Por MatteusDeli
      Nesse tópico você irá aprender a diferença entre ItemID, ActionID e UniqueID na criação de scripts.
       
      Primeiramente vamos começar com o ItemID, imagine que você está criando um simples script que o player pode ter acesso a uma área VIP, só que para ele entrar, primeiro precisará passar por um tile especial que possui o ID 471, até aqui tudo bem, só que qualquer player do servidor irá ter acesso também, já que não possui nenhuma restrição.
       
      Como poderíamos resolver isso?
       
      É aqui que entra a função da ActionID, com ela podemos dizer que os tiles que tiverem o valor 1000 no atributo ActionID, serão os tiles referentes a área VIP. Agora temos uma maneira de diferenciar os tiles comuns dos que são VIPs, veja como ficaria:
       

      (tiles sem as ActionIDs no valor de 1000)
       
      Repare que os 3 tiles tem apenas o atributo ItemID: [471]. Todos os players poderiam passar sem problemas… Caso você use apenas esse tipo de tile para as suas áreas VIPs então não tem problema, agora se você usa esses mesmos tiles para outras finalidades, então você precisará recorrer a ActionID, para que assim consiga diferenciá-los.
       
      Vamos adicionar as ActionIDs então:
       

      (tiles com as ActionIDs adicionados no valor de 1000)
       
      Pronto, agora apenas esse tiles terão a função de controlar a entrada para a área VIP!
       
      Bom, então você deve estar se perguntando, aonde que o UniqueID entra nessa história?
       
      O UniqueID é parecido com a ActionID com apenas uma diferença. O valor que você define para ele deve ser único para o servidor inteiro, caso ele se repita aparecerá um aviso na sua distro, mais ou menos como este…
       

       
      Repare quantos UniqueIDs duplicados existem, isso é ruim porque quanto mais tiver mais tempo demorará para o servidor iniciar, entre outras coisas como conflitos de scripts.
       
      Concluindo…
       
      O ItemID é usado quando você quer que todos os itens com esse ID façam uma ação, por exemplo a fishing rod, qualquer player pode comprar uma no NPC e começar a pescar.
       
      A ActionID é usado geralmente quando você quer diferenciar os mesmos itens um dos outros. Eu tenho 2 crystal rings só que apenas um deles vai me curar 500 de vida quando usá-lo.
       
      O UniqueID é quando você quer definir um ID único para um determinado item e só terá apenas um dele no servidor, um exemplo seria uma estátua que vai dar ao player um determinado item e só existirá somente uma dela no jogo.
       
      Tentei ser o mais breve e direto sobre esse assunto, espero que tenha ficado claro… Agora é só praticar!
    • Por vyctor17
      Eai galera, pra quem conhece meu tópico de showoff já sabe oque eu estou postando . mas pra quem não conhece oque é o Advanced Sound segue o ctrl+v.
       
      é um MOD para o OTC, que permite ao OTC reproduzir diversas tipos de mídia como (.MP3, .WAV, .OGG, .MOD, .IT, .S3D, .XM). 
      Além disso esse MOD conta com uma biblioteca de áudio 3D, e a melhor parte é que não necessita de alteração na source por parte do OTC,só no serverside se o desenvolvedor quiser ativar alguns recursos como áudio nas falas das criaturas. a parte do áudio nas criaturas não esta inclusa no download. e também não conta com áudio 3d configurado em script mais as funções estão na biblioteca se quiser é só fazer .
       
       
       
      Algumas aplicações por exemplo em servidores de pokemon ao jogar a pokebola mandar um som para o client ao capturar outro som ou falhar na captura, assim como som de batalhas, som ambiente, o limite é sua imaginação!
       
      Lista de funções
      pauseAll isPlaying isFinished getSoundPlayLen getSoundPlayPosition setSndPlayPos setSoundMinDistance setListenerPosition setSound3DPosition setVolume getVolume setPaused isPaused playMusic deleteSnd setReverbEnabled setEchoEnabled setDistortionEnabled Exemplo de uso em lua servidor:
      local colors = { TEXTCOLOR_BLUE, TEXTCOLOR_LIGHTBLUE, TEXTCOLOR_LIGHTGREEN, TEXTCOLOR_TEAL, TEXTCOLOR_PURPLE, TEXTCOLOR_PLATINUMBLUE, TEXTCOLOR_LIGHTGREY, TEXTCOLOR_DARKRED, TEXTCOLOR_RED, TEXTCOLOR_ORANGE, TEXTCOLOR_YELLOW, TEXTCOLOR_WHITE_EXP } function onSay(cid, words, param) local playerpos = getPlayerPosition(cid) local random = math.random(1, #colors) if math.max(math.abs(playerpos.x-23), math.abs(playerpos.y-30)) < 9999 then doSendAnimatedText(playerpos, "GoGoGo!", colors[random]) sendScreanSound(cid, "com_go.wav") end return true end  
       
      Criaturas Falantes C++ ServerSide:
       
      Em game.cpp, procure por:
       
      bool Game::internalCreatureSay(Creature* creature, SpeakClasses type, const std::string& text, bool ghostMode, SpectatorVec* spectators/* = NULL*/, Position* pos/* = NULL*/) E abaixo de:
       
      if(!ghostMode || tmpPlayer->canSeeCreature(creature)) tmpPlayer->sendCreatureSay(creature, type, text, &destPos); Adicione:

       
      if(type == SPEAK_MONSTER_YELL or type == SPEAK_MONSTER_SAY){ tmpPlayer->sendExtendedOpcode(85, text + ".mp3|false"); } Dai é só adicionar os som a pasta e colocar o nome dele igual a fala nesse metodo só ta pra rodar mp3, tem jeito melhor de fazer isso adicionando um nova tag no .xml do monstro mais acabei ficando com preguiça e fiz assim kk'
       
      Download
       
      não autorizo o re-post em qualquer outro fórum sem minha autorização.
       
      vyctor17 - Waki-V LTDA ©
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo