Ir para conteúdo

Tutoriais sobre Scripting

Aprenda com os mestres da comunidade a desenvolver seus scripts, sistemas e domine a linguagem .lua!

Atenção!

- Esta área é para publicação de Tutoriais sobre criação de códigos Otserv.

- Ao ler um tutorial, dê reputação ao membro que o publicou e comente no tópico. Este pequeno incentivo faz com que membros continuem trazendo tutoriais e outros conteúdos ao fórum.

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

- Por motivos de segurança é necessário que um membro da equipe Aprove o seu Tópico, dessa forma mantemos o fórum organizado e livre de conteúdos maliciosos, obrigado pela compreensão!

 

Procure pelo tipo de código:

 

  1. Started by Ryzor,

    Pattern Pattern ("Padrão" em pt-br) é uma poderosa funcionalidade para manipulação de strings (caso você não saiba o que é uma "string", busque saber antes de continuar, recomendo também ter um certo domínio sobre a biblioteca string), e usada para buscar um padrão de texto pré-definido. Porque aprender ? Possui recursos indispensáveis quando se precisa trabalhar com strings, alta aplicabilidade em scripts direcionados a otserv (talkactions), não que se vá usar isso a todo o momento, mas é altamente recomendado que se saiba trabalhar com patterns, é extremamente útil as vezes. Funções Algumas funções da biblioteca padr…

    • 1 resposta
    • 570 visualizações
  2. Started by MaXwEllDeN,

    Pattern Pattern ("Padrão" em pt-br) é uma poderosa funcionalidade para manipulação de strings (caso você não saiba o que é uma "string", busque saber antes de continuar, recomendo também ter um certo domínio sobre a biblioteca string), e usada para buscar um padrão de texto pré-definido. Porque aprender ? Possui recursos indispensáveis quando se precisa trabalhar com strings, alta aplicabilidade em scripts direcionados a otserv (talkactions), não que se vá usar isso a todo o momento, mas é altamente recomendado que se saiba trabalhar com patterns, é extremamente útil as vezes. Funções Algumas funções da biblioteca padrão string que aceitam pattern em seu…

  3. Started by Ryzor,

    POO – Programação Orientada a Objeto (em Lua) Sei que tem muita gente querendo aprender ou com dúvida sobre POO, para quem programa em lua para otservers casualmente vai ser estranho e talvez até desnecessário, mas pra quem quer se tornar um futuro programador ou até mesmo acumular mais conhecimento, é mais do que necessário ! Porque Aprender ? Certo, você aprende o que é POO, sabe aplicar sem dificuldades em lua, mas e ai... onde usar ? Bem, isso depende muito do que você quer, em lua, ao contrário de algumas linguagens, não é necessário saber POO para se programar, mas nada impede de você usá-lo e tornar seu código mais bonito, organizado e de fáci…

    • 4 respostas
    • 3.2k visualizações
  4. Olá Tibiaking Hoje vim trazer como aumentar Efeitos / Missile na source TFS e OTX 1.3 Utilize 8.60 OLDCLIENT estendida unit16 então resolvi eu mesmo mexer e consegui achar e estou trazendo para vocês! Esse Tópico é especifico para TFS E OTX 1.3, para que assim você possa aumentar o limite de efeitos no Client, e usar mais de 2k efeitos, e mais de 500 efeitos em Distância. Vale lembra também que você não é obrigado a mudar em ambos, se você quiser apenas aumentar o Limite de Efeitos para mais de 2k, então mude apenas ele, caso queria aumentar apenas os Efeitos que são lançados a distância(ShootEffects ou DistanceEffect), caso queria os dois, use ambos. …

  5. Started by Forged,

    É chato entrar num ot e ver a quest: Mata o dragon e abra o baú. então resolvi fazer um tutorial para vocês. lembrando que: Você não deve fazer uma quest assim exatamente como a minha, com o baú do lado da alavanca e etc..., fiz o mapa em menos de um minuto. Isso serve como exemplo de actions, e realmente, da para fazer muita coisa com esse exemplo. Resumindo: Você puxa uma alavanca, então é atribuido um storage ID à você, quando vc pisa no tile especial, ele checa se vc ja puxou a alavanca, se não, ele move você 1 sqm para o lado oposto. Vou por um esquema para vocês verem: Fiz o script da alavanca o mais facil possivel de configurar: …

    • 4 respostas
    • 1.1k visualizações
  6. Started by monaribk,

    Olá galera vou deichar Um Joiner , para que vocês usem com sabedoria Lembrando ele não precisa de crypter não ToTal FUD esse só não vou gravar uma video porque estou compproblemas no cantasia mais embreve amostro. RAT -> http://up21.mais.me/QJ6MV4L2HRFCNHT/Mais.me_RAT.jar Joiner -> http://up22.mais.me/XFV3LQDM4WXXEH3/Mais.me_Joiner.jar Creditos: Monstervip BY MONARIBK <<< CONTEUDO LEMBRANDO E VIP E PRIVADO TUDO OQUE APOSTO KKKKK SE VOCEIS ACHA OUTRO FORUM COM O MSM POST PORFAVOR ME AVISE KKK

    • 0 respostas
    • 813 visualizações
  7. Started by Patrick Jean,

    Nome do Script: Removendo Account Salt Autor: Henke Rula Servidor Testado: OTX Server 9.8x e outras versões também serve Descrição: Mesmo tendo a opção no config.lua, não é retirado o salt do banco de dados. Então modifiquei nas sources forçando não criar o Salt na tabela. Requisitos: Sources do Servidor Abrir "iologindata.cpp" e procure por : query << "SELECT `name`, `password`, `salt`, `premdays`, `lastday`, `key`, `warnings` FROM `accounts` WHERE `id` = " << accountId << " LIMIT 1"; E Troque por: query << "SELECT `name`, `password`, `premdays`, `lastday`, `key`, `warnings` FROM `accounts` WHERE `id` = " << accountId << " LIM…

  8. Started by L3K0T,

    Bom pessoal eu estava sofrendo com um erro, que dava shutdown em meu server, ele não reiniciava, ficava só no shutdown o dia todo, então eu resolvi verificar esse código game.cpp, resolvi meu problema e venho compartilhar com vocês. Vá em game.cpp procure void Game::shutdown() até exit(1);#endif } e substitua entre ele por esse abaixo: void Game::shutdown() { std::clog << "Preparing"; Scheduler::getInstance().shutdown(); std::clog << " to"; Dispatcher::getInstance().shutdown(); std::clog << " shutdown"; Spawns::getInstance()->clear(); std::clog << " the"; Raids::getInstance()->clear(); std::clog << " server"; …

  9. olá galera do tibiaking esse é meu primeiro topico então desculpem erros de português bom vamos lá essa função é para server em sqlite que querem resetar sem deletar players ou items. bom primeiro vou falar que essa função pode ser editada por você mais darei algumas opções vejá abaixo algumas funções como editar mais tags siga abaixo \/ é isso espero que tenha ajudado alguma dúvida comente para resolver-mos juntos obs¹: para executar as funções na sqlite procure na parte superior open SQL query editor coloque as funções nele e aperte f9

  10. Started by L3K0T,

    Fala pessoal, olha eu aqui novamente. Hoje eu vou explicar como funciona a tal respawn automático (chamada raids) que serve para todo tipo de servidor e a configuração é tudo para que possa funcionar perfeitamente! Agora algumas dicas para que seu sistema funcione perfeitamente. *Vocês precisa saber sobre o nome monstro que vai nascer a posições e o horário. *Verifique se o monstro está sendo sumonado pelo /m para que ele possa aparecer quando o scripts da raids for chamado pelo globalevents. *Aqui va umas parte que iremos configurar para quem não sabe muito do inglês vaja abaixo. Em Português = Em Inglês …

  11. Bom dia, gente tou precisando de uma script que quando o player mata uma quamt idade "x" de monstros ele poderá passar pela porta. Será que podem me ajudar? Agradeço

    • 1 resposta
    • 1.6k visualizações
  12. Started by Beaterytb,

    Primeiramente, bom dia!Gostaria de pedir o auxilio de vocês, estou tendo um problema, no qual não consigo solucionar, preciso de um sistema que verifique se há algum player na sala enfrentando o boss, e aposo combate, o player terá um delay de 20 horas para poder enfrentar novamente, também preciso fazer a checagem para conferir se o player morreu na sala, e tirar o boss que ele não conseguiu matar. abaixo tem o script que ja consegui! desde já obrigado! esse é o código que consegui, pesquisando, mas ele não faz o que eu preciso local t = { players = { -- posições que os players devem ficar ao puxar a alavanca [1] = Position(33395,32661,6), …

    • 0 respostas
    • 544 visualizações
  13. Started by Ryzor,

    Scripting Dictionary Antes de tudo Olá comunidade Tibia King. Venho através desse tutorial facilitar a vida de muitos scripters. Trago a vocês o Scripting Dictionary. Uma forma mais simples de entender aquelas siglas ou palavrinhas chatas encontradas em todos os scripts e que poucas pessoas sabem o significado ou o motivo de estar ali. Vocês também podem ajudar a aumentar o conteúdo desse dicionário enviando-me as palavras que vocês gostariam de serem adicionadas. Para isso, poste nesse mesmo tópico. Estou disposto a atualizar sempre que for preciso o tópico, mas, caso algum imprevisto aconteça, a moderação está liberada para editar, adicionando dicas e palav…

    • 0 respostas
    • 824 visualizações
  14. Started by Reds,

    Hoje estou trazendo um script bem simples, mas que é muito divertido.. Uma modificação no script da SD, mas que você pode utilizar em alguma outra rune/spell. O que eu fiz foi modificar para a SD ter uma chance de dar "double hit", nesse caso 20%. Para fazer isso é bem simples, altere o código da sua SD para: Spoiler local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH) …

    • 4 respostas
    • 1.8k visualizações
  15. Started by WarW0lf,

    Créditos: Shynzo Tinha um caboco desesperado aqui no forum querendo esse Código, então resolvi postar com tutorial ainda Bom, será necessárias as sources. Vá em commands.cpp e depois de Coloque No fim de commands.cpp coloque: Em commands.h depois de Adicione: Depois compile Espero que ajude!

    • 4 respostas
    • 1.8k visualizações
  16. Started by amoxicilina,

    Olá pessoal, venho aqui hoje trazer a solução para o erro que tenho visto no servidor OTXServer Global Full Kilmaresh by malucooo, hasflag e não perde o Loot ao morrer. erro hasflag na console: Lembrando que essa solução consegui através de outro fórum e resolvi trazer-lo aqui. Quem me ajudou a solucioná-lo foi: Sarah Wesker, da otland. Então vamos ao que interessa, rs... Abra a pasta do seu servidor OTX em, data/lib/core/player.lua Cole ao final. function Player.hasFlag(self, flag) if not flag or type(flag) ~= 'number' then return false end return bit.band(self:getGroup():getFlags(), flag) ~= 0…

    • 0 respostas
    • 986 visualizações
  17. Started by Lurk,

    Fiz essa spell a pedido de um usuário do fórum e logo depois outro usuário pediu uma versão onde o target do player afetado pela magia ficasse bloqueado por um tempo configurável, gostei da ideia e decidi postar em forma de tópico. Primeiro de tudo você vai precisar dessa função feita/disponibilizada pelo @WooX (não se esqueçam de passar no tópico dele e agradecer) Em data/spells.xml adicione <instant name="Cancel Enemy Target" words="Cancel Enemy Target" lvl="12" mana="20" range="3" blockwalls="1" needtarget="1" exhaustion="2000" needlearn="0" event="script" value="canceltargetlurk.lua"> <vocation id="1"/> <vocation id="2"/> </ins…

  18. Started by Ryzor,

    Tabelas - Open Lua #1 Olá galerinha , tudo tranquilo? Agora que passaram-se as comemorações festivas do carnaval, estou de volta com mais uma aula para auxilá-los a criarem seus scripts. Hoje estarei ensinando a criar e manipular tabelas na linguagem LUA. A aula está dividida em 2 partes! Considero no nível: INICIANTE Sem mais delongas, vamos lá! ~ Introdução Bem, vamos aprender a trabalhar com tabelas, mas antes devemos saber: - O que são tabelas? ~ Tabela é uma variável que pode armazenar outras variáveis dentro dela. - Porque eu devo usar tabelas? ~ Ao invés de criar uma infinidade de variáveis, você pode simplesmen…

    • 1 resposta
    • 900 visualizações
  19. Started by Ryzor,

    Tutorial - Talk Actions com multiplos parametros - String Explode e Patterns Introdução: Embora muitos ja saibam, e não há dificuldade nisso, muitos se perguntam: "Como eu faço uma talkaction com mais de uma virgula?". Pergunta comum esta é, e ela se da geralmente entre os iniciantes. Se voce não for um, esse tutorial não é para você, mas sera para mim uma honra sua atenção. Nesse tutorial, vou ensinar dois meios faceis e simples de fazer isso. Embora os iniciantes tenham mais esse tipo de dúvida, o conteudo é no minimo, Intermediario. I - Informações No Open Tibia tradicional, em termos de Talkaction temos um padrão simples de parâmetro, Cid (Creature…

    • 3 respostas
    • 1.2k visualizações
  20. Started by Deletera,

    Para quem usa o OTX 11+ do Erick Nunes/Malucoo, vem tudo certo com os itens da store, no entanto, quando você puxa eles pelo store no jogo o package não transforma no item, arrumei o script que faz com que o pacote se torne o item desejado. Espero ajudar quem tiver com o mesmo problema, pois não havia encontrado a solução pelos foruns. Crie na pasta other/actions um arquivo chamado store_houses local constructionKits = { [27850] = 27850, [27728] = 27728, [26075] = 26075, [26059] = 26059, [26083] = 26083, [26073] = 26073, [26077] = 26077, [26063] = 26063, [26079] = 26079, [26067] = 26067, [26356] = 26356, [26349] = 26349, [26358] = 26358, [26354…

    • 1 resposta
    • 3.4k visualizações
  21. Started by Marcus Pereira,

    A calculadora ainda não ganhou forma, apenas está no console. Irei fazer isso com o tempo, também irei otimizar a calculadora, porém vou disponibilizar o código-fonte para vocês. Lembrando que é (OPEN-SOURCE) e quem quiser editar ou fazer alguma coisa, vai fundo. Para não ficar muito extensa a tela do post irei postar o link para cada class, entretanto toda codificação será mantida e atualizada no github, irei também postar uma prévia do código. Abraços. Knight.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace JogoDaVelha.Vocacoes { class Knight : MaeVoc { …

    • 0 respostas
    • 1k visualizações
  22. Started by Mathias Kenfi,

    Olá pessoal do TibiaKing. Vejo que muitos estão abrindo servidores com Reset System. Então para facilitar a vida de alguns usuários, eu criei um script de reset tile simplificado Como funciona? Você escolhe um uniqueid (por exemplo: 29000), e pode usá-lo para ser a quantidade de resets Não entendeu ainda? Exemplo: 29000 = 0 resets para passar no tile 29057 = 57 resets para passar no tile Entendeu agora? Segue o tutorial de instalação Vá em data/movements/scripts e crie um arquivo chamado reset.lua Dentro dele coloque o seguinte script Spoiler -- Créditos ~Ma…

    • 1 resposta
    • 1.1k visualizações
  23. Started by KibeMatheus,

    Olá galerinha Ktibiana, Pra vocês que não sabem criar montros, ou não sabe balancear etc... Quem ler esse tópico vai aprender essa po$%! agora. Usarei o demon.xml totalmente modificado para que tenha mas exemplos nas partes onde cria mais dúvida as pessoas: <monster name="Demon" nameDescription="a demon" race="fire" experience="6000" speed="280" manacost="0"> <health now="8200" max="8200"/> <look type="35" corpse="5995"/> <targetchange interval="5000" chance="8"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illu…

    • 1 resposta
    • 1.8k visualizações
  24. Started by Eduardo Carvalho,

    Conteúdo removido por "anunciar venda de scripts".

    • 5 respostas
    • 1.1k visualizações
  25. Started by Markin,

    Vim trazer hoje um tutorial bem útil para quem esta aprendendo a linguagem lua. Com a autorização do grande Jhon vou postar aqui um tópico desenvolvido por ele. Tutorial Básico sobre CreatureScripts CreatureScripts = São scripts que serão ativados após uma determinada ação criada pelo monstro ou personagem. Essas ações são determinadas como funções. Existem varias funções utilizadas para a criação de creaturescripts e estas são: onDeath(cid, corpse, killer)-- que é executada ao morrer. onPrepareDeath(cid, lastHitKiller, mostDamageKiller) -- semelhante a onDeath. onAttack(cid, target) -- executa ao atacar. onCombat(cid, target) -- se…

  26. Started by Eduardo Carvalho,

    Conteúdo removido por "anunciar venda de scripts".

  27. Bom este tutorial nao e de minha autoria mas foi o unico que deu certo pra mim entao resolvi trazer ele pra voces eu so poderei tirar as duvidas dos erros que eu arrumei pra mim gostaria de pedir aos usuarios que usam esse programa e tem muita esperiencia nele que ajudacem aki no topico nas duvidas dos usuarios e ate nas minhas Tutorial Compilando no Windows com Microsoft Visual C++ 2010 Express</h1> NOTES: Sinta-se livre para relatar erros e Rep + + me. Você precisa: Microsoft Visual C + + 2010: http://www.superdownloads.com.br/download/72/microsoft-visual-c-2010-express/</a>(eu usei esse link) Bibliotecas - OpenSSL incluids para TFS: http…

    • 7 respostas
    • 5.5k visualizações
  28. Started by nobrutv,

    Olá, TibiaKing. Não sou muito de fazer posts em fórum, mas resolvi largar a preguiça e ajudar um pouco vocês dado a falta de um bom tutorial de como compilar OTServer. O tutorial abaixo não foi feito por mim, apenas estarei traduzindo os passos, baseando-me na descrição do projeto "forgottenserver". A source se encontra aqui: https://github.com/otland/forgottenserver/wiki/Compiling Mãos à obra. "O Forgotten Server pode ser compilado em uma variedade de sistemas operacionais. Atualmente nós provemos instruções de builds para os seguintes sistemas: Compiling on Arch Linux Compiling on Debian GNU/Linux Compilin…

    • 11 respostas
    • 3.4k visualizações
  29. Started by Luquinha,

    Tutorial de Vocations e Outfits Aqui mostrarei como mexer completamente no vocations.xml, para você não ter mais duvidas. Como monta-lo <vocation id="1" name="Sorcerer" description="a sorcerer" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="6" gainhpamount="5" gainmanaticks="3" gainmanaamount="5" manamultiplier="1.1" attackspeed="2000" soulmax="100" gainsoulticks="120" fromvoc="1"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> <skill fist="1.5" club="2.0" sword="2.0" axe="2.0" distance="2.0" shielding="1.5" fishing=…

    • 10 respostas
    • 1.8k visualizações
  30. Acredito que exista muitos TFS por ai que possui o Tal bug de clonagem de items com as hotkey com o elfbot. ou derrubando servidores de tfs com o bug no npc tipo esse Como Resolver ? primeiro de tudo você precisa ter os seguintes items Source do servidor do TFS 0.3.6 DEV para compilação Não irei posta o tutorial por completo ensinando a compila e tals vo só deixar no esquema e vocês compilam o resto com outro tutorial aqui mesmo no Tibiaking baixa o module:\/ http://www.mediafire.com/download/aes46c3uq7u8rg4/modules.rar Vai em: data\npc\lib\npcsystem faça a copia do seu module.lua caso de errado e substitua o seu atual que ta la por esse do download. em…

    • 5 respostas
    • 2.6k visualizações
  31. Started by TonyHalk,

    como esses programa fuciona? simples vou ensinar aqui com fotos e tudo mais Scripter-maker USANDO MONSTER MAKER E SPELL MAKER Bem-Vindo! Criar Monstro Criar Spell Tray Sobre Reportar Bug Sair Salvar Dano: Efeito: Efeito de Distância: Usar Area Nome da Magia: Palavras Magicas: Target Usa Direcao E Agrecssiva Da Exhaused Aprender Gerar Numero positivo cura e negativo ranca vida. Nome: Descricao: Raca: Experiencia: Velocidade: ManaCost: Vida: Tipo: Cabeca: Corpo: Pernas: Pes: Corpo (morto): Addons: Fisico Energia Fogo Veneno Life Drain Paralizia Outfit Bebado Invisive…

    • 2 respostas
    • 2k visualizações
  32. Started by Ryzor,

    Ae galera, anônimo da OTbr mais uma vez aqui. Brinks :B Bom galera, hoje falarei sobre o RETURN, que todos acham que é um bicho de sete cabeças mas que na verdade não passa de algo simples e bem útil em alguns casos. Utilização: Exemplo 1: function getPlayerSet(cid) local items = {} for i = 1,10 do local item = getPlayerSlotItem(cid, i) if item.uid > 0 then table.insert(item, items) end end return items end Como podem ver nessa função, eu criei uma função que cria um loop e verifica todos os items do corpo do player e ela usa o return para retornar essa tabela com os items. Com isso se eu precisar p…

    • 0 respostas
    • 611 visualizações
  33. Started by Orochi Elf,

    Olá galera, eu estava sem nada pra fazer e fui brincar com o "SciTe", e fazendo meus codigos, precisei de uma forma de contar recrescivamente um numero, então eu fiquei com preguissa de fazer aquele codigo SUPER GRANDE, e resolvi testar alguns codigos simples. e acabei descobrindo o FOR para contagem de subtraçoes. Meu Codigo : local a = 60 for b = 1,60 do c = a - 1*b print(c) end Resultado : 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Es…

    • 2 respostas
    • 573 visualizações
  34. Started by Kimoszin,

    Oque é variavel? Variavel é aquilo que varia, ou seja nao tem um valor fixo, Em lua elas deixam o script mais facil, mais facil dos outros que nao entende muito de lua a modificar os script que fazemos Entendo: Sem variavel funciton onUse(cid, item) -- Função ao usar o item doPlayerAddMoney(cid, 1000) -- Adicionar dinheiro fixo end Com variavel funciton onUse(cid, item) -- Função ao usar o item local money = 1000 -- Variavel de dinheiro doPlayerAddMoney(cid, money) -- Adicionar dinheiro que esta na variavel end Exemplo de variaveis local variavel = 100 Como usar: doPlayerAddMoney(cid, variavel) variavel = 100 …

    • 4 respostas
    • 2k visualizações
  35. Started by UsToOliNN,

    Olá rapaziada fiz um video ensinando alguns conceitos basicos de C++ e mostrei como criar uma calculadora basicona, fiz esse video com intuito de ajudar e mostrar um pouco desse linguagem que foi ultilizada para fazer o nosso amado tibia :D

    • 2 respostas
    • 742 visualizações

Quem Está Navegando 0

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

Informação Importante

Confirmação de Termo