Tutoriais sobre Scripting
Aprenda com os mestres da comunidade a desenvolver seus scripts, sistemas e domine a linguagem .lua!
- 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:
280 tópicos neste fórum
-
Aleatório Olá, estou a um tempo parado e decidi postar este tutorial conceitual. O objetivo hoje é explicar como funciona a função math.random(...) em lua. O que é aleatório? Por conceito aleatório é aquilo que é escolhido independente de qualquer valor, ao acaso. Aplicação? Na prática, não existe aplicação exata ao conceito, entretanto, utilizamos fórmulas matemáticas para gerar valores que fogem um pouco do controle do usuário. Quando se utiliza math.random por exemplo, você está pedindo para a máquina gerar um número, definirei portanto esta atitude como semi-aleatória. Por que semi-aleatório? Simples, quando você utiliza math.random, o…
-
- 6 respostas
- 813 visualizações
-
-
Hoje estarei ajudando cria novas mount no servidor. Hoje ajudarei a colocar novas montarias no servidor tipo EX : Vulcongra. Para criar sua montaria e necessario saber o newtype do monstro e tem que ser de acordo com seu servidor nunca tente colocar monstro 10.10 no teu servidor se ele for 9.6 por que ira ficar dando debug. 1- Vamos na pasta do Servidor l Data l Xml l Mounts.xml. Abra e Vamos la colocar a nova montaria estarei ajudando em 9.6 Na montaria chamado Tarantula. 2- Adicione a tag seguinte. <mount id="28" clientid="219" name="Tarantula" speed="50" premium="no" /> Como vocês sabem tem que o MountId de acordo com a lista do s…
-
- 4 respostas
- 794 visualizações
-
-
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…
-
- 0 respostas
- 793 visualizações
- 1 follower
-
-
~ Olá galera, fiz parte do grupo por uns anos e fiquei 3 longos anos sem dar as caras Antes pessoas me ajudavam, hoje, consigo ajudar as pessoas, e queria compartilhar com vocês conhecimento sobre itemAttribute! essa função do tibia é maravilhosa, porém muitos não sabem seu potencial ou até mesmo não coloca ela em seus planos, ela é bem simples porém deixa duvida em muitos, principalmente servidores de Poketibia que utiliza isso em quase tudo. getItemAttribute(uid, key) -- ## oque é get? get em ingl…
-
- 0 respostas
- 790 visualizações
-
-
Tabelas Aula 9 #Introdução Olá, nessa aula vamos conhecer um elemento que facilita muito a vida de programadores, principalmente quando se trata de um código com muitas variaveis e operações, as tabelas! Imagine uma tabela como se fosse uma estante com várias gavetas, quantas você desejar, dentro de cada gaveta tem um objeto, temos a gaveta um, a gaveta dois, e assim em diante ... podemos guardar objetos dentro de cada gaveta, tirar objetos delas e também saber o que tem dentro de cada uma, nessa analogia uma tabela é basicamente como se fosse essa estante. Uma tabela é uma variável estruturada que pode conter vários valores dispostos "dentro" de s…
-
- 2 respostas
- 775 visualizações
-
-
Automatização e Simplificação de Scripts Bem, este é minha segunda "aula", a primeira foi sobre o comando addEvent, esta é um pouco mais complexa, vou demonstrar algumas possibilidades de automatização e simplificação de scripts, algo muito importante pra tornar um script mais simples e prático. Vamos a algumas definições: Automação: é um sistema automático de controle pelo qual os mecanismos verificam seu próprio funcionamento, efetuando medições e introduzindo correções, sem a necessidade da interferência do homem. Simplificar: tornar menos complicado (fiquei com preguiça de procurar mais). Situação 1: Fazendo um cardápio Temos um talkact…
-
- 2 respostas
- 769 visualizações
-
-
Referência Rápida de C++ Variáveis tipo tamanho(bytes) descrição char 1 representa um caractere ( valores entre 0 - 255 ) short int 2 valor inteiro curto int 2,4 valor inteiro long int 4 valor inteiro longo float 4 valor real (ponto flutuante) double 8 valor real (precisao dupla) long double 10 valor real long (precisao dupla) signed indica que o valor possui sinal unsigned indica que o valor não possui sinal void tipo vazio Constantes Constantes do pré-processador: (PS: não se utiliza ponto-e-vírgula no final deste tipo de constante) #define <constante> <valor> exemplo: #define PI 3.1415926 Tipos Constantes: …
-
- 0 respostas
- 750 visualizações
- 1 follower
-
-
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
- 747 visualizações
-
-
LuaSql Apesar de já existir um tutorial sobre luaSql no forum ele é antigo e agora usa outro metodo. O que é? LuaSql é você inserir, alterar, deletar, subistituir valores no bacno de dados MySql ou Sqlite de seu servidor facil e rapido. Como uso? É relativamente simples. caso você ja tenha mexido com MySql não vai ter 1 pingo de duvidas. Bom vamos começar pegando um valor da database. Para pega um valor antigamente tinha uma treta GIGANTESCA usando assert e outras coisas agora é mais facil basta usar a função: db.getResult(query) Essa função ela executa query no servidor Mysql ou sqlite vamos dar um exemplo. vamos criar uma Query que p…
-
- 0 respostas
- 732 visualizações
-
-
boa noite como se ja viram meu nome é eduardo ha muitas pessoas que mechem a xp no config.lua e a xp nao muda eu queria ajudar a mecher nisso abra data\XML e logo em seguida abra Stages.xml <?xml version="1.0" encoding="UTF-8"?> <stages> <world id="0" multiplier="1"> <stage minlevel="1" maxlevel="300" multiplier="1000"/> <stage minlevel="301" maxlevel="500" multiplier="900"/> <stage minlevel="501" maxlevel="750" multiplier="800"/> <stage minlevel="851" maxlevel="900" multiplier="700"/> <stage minlevel="901" maxlevel="1000" multiplier="600"…
-
- 2 respostas
- 728 visualizações
-
-
Estruturas de controle Aula 7 Bem-vindos à Aula 7 (Da sorte). Hoje iremos aprender mais uma coisa importantíssima na área de scripting e programação em geral: as Estruturas de Controle. Bem, Estruturas de Controle definem o andamento do script. Para entendermos melhor, vamos ver o algoritmo de uma Estrutura de Controle simples: Veja, agora um em lua: if name == 'Vittu' then print('Oi Vittu') end Compare as cores do script em Lua com o escrito em português. Nossa Estrutura de Controle se chama condição, iniciada por if (se). Para entendermos basta traduzir. Veja como se usa o if: if true then -- código end …
-
- 0 respostas
- 724 visualizações
-
-
Olá amigos do tibia king, estou a compartilhar esse conteudo com vocês que eu fiz com intuito de ajudar vocês de uma forma mais contemporanêa, espero que eu consiga suprir a necessidade de vocês. https://www.youtube.com/watch?v=fZHsW65XkNs
-
- 1 resposta
- 679 visualizações
-
-
Olá galera. Muitos de vocês que são iniciantes em scripting tem certa dificuldade para criar scripts, uns por falta de ideias, outros por realmente não conseguirem montar nada. Por isso, resolvi fazer esse tutorial simples e claro. Aprendendo a Scriptear Introdução: Bom, primeiramente, você já se perguntou "por quê quero scriptear"? Se sim, legal, mas chegou à uma resposta? Se não, pense nisso. Tente chegar à algo que te inspire, seja observando trabalhos de scripters mais conhecidos e habilidosos ou simplesmente querendo criar novas coisas para ter seu nome conhecido. Sem uma inspiração você não vai avançar, acredite em mim. Começando no mundo dos sc…
-
- 0 respostas
- 636 visualizações
-
-
Tenho em meu PC algumas listas copm informações para se colocar em algumas funções que não se acha tão facilmente... - = Slots = - Aposto que muitos já se perguntaram o que por em slot na função getPlayerSlotItem(cid, slot). Abaixo há a resposta: CONST_SLOT_HEAD (1) = helmet CONST_SLOT_NECKLACE (2) = necklace slot CONST_SLOT_BACKPACK (3) = backpack CONST_SLOT_ARMOR (4) = armor CONST_SLOT_LEFT (5) = left hand CONST_SLOT_RIGHT (6) = right hand CONST_SLOT_LEGS (7) = legs CONST_SLOT_FEET (8) = boots CONST_SLOT_RING (9) = ring slot CONST_SLOT_AMMO (10) = ammo slot Exemplo de uso: if getPlayerSlotItem(cid, 10).it…
-
- 0 respostas
- 622 visualizações
-
-
Bom, estarei ensinando como editar as mensagens que aparece em seu server enquanto jogas ele. vá em server - data - global events - e procure por msg.lua
- 1 resposta
- 616 visualizações
-
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
- 612 visualizações
-
-
Cálculos Baseados em Porcentagem Autor: Guiminhah Nível: Fácil -------------------------------------------------------------- Olá galera, tudo bom? Vim aqui compartilhar uma ideia que não vi por enquanto aqui no fórum, e acho que é legal usar de vez em quando no servidor. Cálculos com porcentagem são úteis para balancear, já que utilizam valores relativos, e não absolutos. Para começar o tutorial, fiz um script para exemplificar. •Explicação: Quero criar uma action que quando o player (maior que level 50) clicar em um Life Crystal gaste 20% da sua mana total para adicionar +2 no HP total. ----------Life Crystal Increasing Players' Max H…
-
- 0 respostas
- 599 visualizações
-
-
Metodologia de um script O que será tratado Organização de um script. Compreensão de um script. Tornando o script fácil para edição. Meu objetivo com este tutorial. Tenho como objetivo facilitar a compreensão de muitos scripts. Sabemos, todos nós, que muita gente apenas copia os scripts para seu próprio servidor e não sabe nem ao menos editar os IDs, ou as posições, conforme sua necessidade e disponibilidade do script. Quero, também, propor que os scripters que nos disponibilizam scripts de sua autoria, organizassem melhor os scripts para que os iniciantes tivessem uma base para começar no mundo de lua scripting. Organizando para me…
-
- 3 respostas
- 590 visualizações
-
-
Olá pessoal! Nas etapas a seguir vou tentar descrever de uma forma clara e objetiva como compilar o servidor otserv global1051 com suporte ao mysql no Fedora 21, lembrando que não vou abordar a instalação de um servidor LAMPP e/ou configuração do Banco de Dados. Apenas a instalação dos pacotes necessário para compilar e as etapas. Requerimentos: Fedora 21 instalado ou virtualizado e devidamente atualizado; Poderes administrativos "root" para instalar os pacotes necessários; Conhecimento para acessar pastas usando o terminal (recomendado, mas é opcional, caso o seu gerenciador de arquivos tenha suporte de abrir terminal, no Nautilus é necessário ter instalado o n…
-
- 1 resposta
- 587 visualizações
-
-
Boa Noite pessoal, dando continuidade a série de tutoriais hoje eu venho trazer mais alguns exemplos de como podemos trabalhar com os parâmetros (position, lastposition, from position e toposition) só que agora em uma action simples. 1° Eu Criei uma função para verificar uma área pré-determinada a procura de creatures, e salva-las em um array. function getCreatureInArea(pos, area) local centro = {} local uids = {} for y = 1, table.getn(area) do for x = 1, table.getn(area[y]) do if area[y][x] > 0 then centro.x = math.floor(table.getn(area[y])/2)+1 centro.y = math.fl…
-
- 1 resposta
- 583 visualizações
-
-
-
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
- 576 visualizações
-
-
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
-
-
Ola, tenho anos de experiencia com programação de servidores Otserv e derivados (C++). Resolvi fazer um vídeo rápido para ver se tem demanda de tutorial nesse assunto. O vídeo a seguir estou acompanhando, sem detalhar muito, o que mais ou menos acontece no lado do servidor quando tem um login. Aqui esta o resultado: Feedback é bem vindo. Qualquer duvida é so falar.
-
- 1 resposta
- 563 visualizações
-
-
Lua é uma linguagem de programação poderosa e leve, projetada para estender aplicações. Lua também é frequentemente usada como uma linguagem de propósito geral. Lua é software livre de código aberto. Lua combina sintaxe simples para programação procedural com poderosas construções para descrição de dados, baseadas em tabelas associativas e semântica extensível. Lua é tipada dinamicamente, é interpretada a partir de bytecodes para uma máquina virtual, e tem gerenciamento automático de memória com coleta de lixo incremental. Essas características fazem de Lua uma linguagem ideal para configuração, automação (scripting) e prototipagem rápida. Um conceito fundamental…
-
- 2 respostas
- 562 visualizações
-
-
{B}em... muitos vezes vejo nos meus e nos scripts de outras pessoas sendo declarandas variáveis uma embaixo da outra, como por exemplo: local stor1 = getPlayerStorageValue(cid,5551) local stor2 = getPlayerStorageValue(cid,5552) local stor3 = getPlayerStorageValue(cid,5553) local stor4 = getPlayerStorageValue(cid,5554) local stor5 = getPlayerStorageValue(cid,5555) local stor6 = getPlayerStorageValue(cid,5556) {U}ma forma de simplificar isto seria separando as variáveis por vírgula, colocando todas antes de um igual(=) e colocando, depois do igual(=), o valor atribuído a cada variável RESPECTIVAMENTE. Usando o exemplo acima, ficaria assim: …
-
- 0 respostas
- 562 visualizações
-
-
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
- 545 visualizações
-
-
Eai Galera, venho trazer mais um tutorial só que agora sobre WEAPON, é simples <!-- Rods --> <wand id="2182" level="7" mana="2" min="8" max="18" type="earth" event="function" value="default"> <!-- Snakebite Rod --> <vocation id="2"/> </wand> Agora vou explicar como editar passo a passo <wand id="2182" - Aqui é o ID do item, para saber os ID só ir na pasta items/items.xml (¬¬) level="7" - Aqui é o level para o player poder usar a rod ou wand, no caso é rod mana="2" - Mana para poder usar a rod ou wand, no caso é rod min="8" max="18" - Aqui é minimo e o máximo hit que a wand ou a rod irá hi…
-
- 0 respostas
- 526 visualizações
-
-
Olá a todos, eu não achei nenhum tutorial nesta página de como colocar potions infinitas, então resolvi elaborar um. Primeiro Método: Na pasta do seu servidor, entrar na pasta "data", depois na pasta "actions" e por último na pasta "liquids" "Pasta do Servidor/data/actions/liquids/" Procure pelo arquivo "potions.lua" e abra ele com algum editor. (bloco de notas, etc..) (se não tiver esse arquivo veja o segundo método) Depois de ter aberto o arquivo procure por essa linha: (dica: Control + F) [8704] = {empty = 7636, splash = 2, health = {50, 100}}, -- small health potion Copie o primeiro ID da linha (no caso…
-
- 0 respostas
- 508 visualizações
-
-
Tutorial Completo: Como Adicionar uma Nova Vocação no Canary Server 1. Entendendo a Lógica das Vocações No servidor Canary, cada vocação representa uma classe de personagem com habilidades, atributos e características específicas. Para que o servidor reconheça uma nova vocação, é necessário: - Definir um identificador único (ID); - Registrar o ClientID (usado para exibição no cliente); - Especificar um BaseID (para herança de características ou evolução); - Configurar atributos, fórmulas e habilidades no XML. 2. Alterando a Enumeração das Vocações (Código Fonte C++) Arquivo: `src/creatu…
- 1 resposta
- 507 visualizações
- 2 followers
-
TFS 0.4 OBJETIVO: OBTER A POSITION DE UM ITEM NO CHAO QUE TENHA O ID 636 Tenho o script abaixo que serve para executar uma função de acordo com a analise do container de um item que está em uma POSITION especifica no chão, porém eu gostaria de criar mais desses items que estão no chão, e quero saber se tem alguma função para obter a POSITION do item que está no chão e que o ID é 636 ATRAVÉS DO GLOBALEVENTS. Pois não daria certo por actions pois se adicionar um item em actions.xml ele não se torna mais possível de abrir o container IN-GAME. Resumo: Obter a POSITION apenas dos items com ID 636 através do GLOBAL EVENTS. Spoi…
-
- 0 respostas
- 492 visualizações
-
-
Alguem sabe como e pra Tfs 1.3 Tentei com um tutorial, ta pra os tfs 0.4+ n pode pra tfs 1.3 e mt mais diferente https://tibiaking.com/forums/topic/76124-tutorial-2-em-1-magic-e-shoot-effects/ N tem mesmas code q tfs 0.4!
-
- 0 respostas
- 447 visualizações
-
-
Olá Galera do TK, agora estou postando um tutorial sobre stages.xml Todo mundo sabe que é super fácil, mais não existe ainda (EU ACHO), não custa nada criar Só irei explicar essa parte abaixo <stage minlevel="1" maxlevel="50" multiplier="200"/> Explicação agora <stage minlevel="1" maxlevel="50" multiplier="200"/> - Do level 1 ao 50 o player irá upar 200x de EXP Pronto, só isso.. rsrs
-
- 0 respostas
- 445 visualizações
-
-
Olá galerinha do TK... Recentemente em meu server estou com alguns problemas relacionados a spells... O problema é o seguinte... O Player X Usa uma spell de ataque no player Y porem se tiver mais de 1 player no mesmo sqm do player Y todos sofrerão o ataque mesmo se a spell usada pelo player X for uma spell de target... Alguns players sacaram esse problema e estão abusando fazendo pessoas pegarem red em Escadas que geralmente fica mais de 1 player no mesmo sqm... Talvez o problema seja facil de resolver mas eu não estou ligado como é... Esse bug eu posso consertar onde ? Na tag msm no spells.xml ? Por que acontece isso ? Uma magia de ataque target hitando todos que…
-
- 1 resposta
- 383 visualizações
-
-
Conversor de Mapas ServerID para ClientID Ferramenta para converter qualquer mapa de ServerID para ClientID e vice-versa. Imagens: Requisitos: - Node.js - Download Como usar: 1. Coloque os arquivos .otbm na pasta "input_folder". 2. Execute o arquivo autorun.bat. 3. Selecione no menu para qual ID você deseja converter os mapas. 4. Após a execução do script, os mapas convertidos estarão na pasta "output_folder". Download: ServerId and ClientID Map Converter.zip
-
- 0 respostas
- 377 visualizações
- 1 follower
-
Quem Está Navegando 0
- Nenhum usuário registrado visualizando esta página.