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
-
Fala galera bom eu coloquei esse "sistema" recentemente no meu servidor e achei muito bacana então resolvi compartilhar com vocês que basicamente funciona da seguinte maneira quando o jogador usar a spell e subir o exaust de cooldown vai aparecer a mensagem no chat configurado assim não floodando o chat do default dos jogadores enfim vamos lá Primeiramente vocês vão precisar editar a source Source 0.3.6 8.54 Usem esse tópico do membro @MySticaL Clique Aqui Source 0.4 8.60 Usem esse tópico do membro @L3K0T Clique Aqui Após aplicar as configurações na source vamos configurar o servidor, criando um channel p…
-
- 2 respostas
- 4.5k visualizações
- 1 follower
-
-
Aqui no TK tem alguns tutoriais ensinando a botar novas mounts em seus servers, porém não achei nenhum que trouxesse uma informação fundamental: existe um limite de mounts que vc pode ter em seu server ao mesmo tempo. Por exemplo, em meu server o limite é de 50 mounts. Se eu colocar, no arquivo mounts.xml, 51 mounts, o player quando abrir a tela pra escolher a mount ou irá tomar debug, ou a mount simplesmente não estará lá. Tendo isso em mente, vamos ao tutorial: 1°) Colocando a criatura como mount Abra seu arquivo mounts.xml que se encontra na pasta data/XML. Dentro dele adicione a seguinte tag: Em vermelho vc irá colocar o id da mount. Para …
-
- 13 respostas
- 4.4k visualizações
- 1 follower
-
-
- 14 respostas
- 4.4k visualizações
-
Bom primeiro vá no Dat editor ou Object Builder, pegue a looktype da roupa, no meu caso vou usar 661 para a mulher e 662 para o homem. Imagem -> Depois vá até C:\Users\pc\Desktop\Server\data\XML do seu servidor e procure por outfit.xml, abra o arquivo que vai conter isso dentro: Adicione uma nova tag debaixo da ultima. -- Como Editar -- Vermelho - O id da tag no caso, se tiver um 57 na penultima tag você coloca um número a mais na tag seguinte no caso vai ficar 58. Laranja - Gender [Mulher = 0], [Homem = 1] Verde - Looktype da roupa que foi oque eu falei acima. Cyano - Nome da Roupa. (Pode ser qualquer nome) …
-
- 1 resposta
- 4.3k visualizações
-
-
O canal abre automaticamente e envia uma mensagem laranja Primeiramente vai em creaturescript/ script e abra o arquivo login.lua e procure por antes de if(lastLogin > 0) then adicione isso: doPlayerOpenChannel(cid, CHANNEL_HELP) pronto. Mas se você quer que abra outro canal só fazer o mesmo processo, mas no lugar de "CHANNEL_HELP" você coloca o ID do canal que vc querer Mas se além disso quer que envia uma mensagem, é só depois disso colocar essa tag: addEvent(valid(doPlayerSendChannelMessage), 150, cid, "", "MENSAQUEM QUE VAI APARECER.", TALKTYPE_CHANNEL_HIGHLIGHT, CHANNEL_HELP) --SE FOR EM OUTRO CANAL É SO POR O ID DELE NO LUGAR D…
-
- 12 respostas
- 4.3k visualizações
- 1 follower
-
-
Bem, quebrei muita cabeça um dia desses com esse maldito Bug, porém, com umas dicas do amigo "danihcv" e eu mexendo, acabei resolvendo e quis dividir esse tutorial com o povo do TibiaKing. Lembrando que esse erro acontece quem usa Mysql e possue website "Gesior"( Não sei se todas as versões dão esse erro, mas a versão 0.3.8 deu). Vamos deixar e papo e mão na massa . O erro é o seguinte: - Quando loga a conta no tibia ele abre a janela normalmente do char, porém, quando tenta logar dar esse erro: (Esse erro é um conflito que há entre as coordenadas (x,y e z) do config.lua + database). 1- Para retirar esse bug, a primeira coisa será entrar no config.lua e achar ess…
- 9 respostas
- 4.3k visualizações
-
Tipo: Tutorial. Autor: Skymagnum(Skyforever). Encina: Como usar corretamente o addEvent sem bugs e erros no console. Creio que todos vocês conheçam a função addEvent senão vou explicar, ela funciona da seguinte maneira addEvent(function, seconds, ...). Bom se você usar a função doSendMagicEffect(position, effect) ela vai soltar o efeito na hora correto? com addEvent você pode fazer o efeito soltar depois se usar corretamente exêmplo de uso incorreto: addEvent(doSendMagicEffect, getThingPos(cid), 5 * 1000, 35) agora veremos do jeito certo: addEvent(doSendMagicEffect, 5 * 1000, getThingPos(cid), 35) . …
- 13 respostas
- 4.3k visualizações
-
Olá pessoa, estou aqui outra vez trazendo o código semanal, para essa semana vou apresentar uma modificação nas sources que permite que o attack speed do jogador seja modificado. Para fazer isso, é necessário primeiro compilar as sources que permitam essa funcionalidade. Então abra o arquivo player.cpp e de CTRL + F na função uint32_t Player::getAttackSpeed() const e substitua por: uint32_t Player::getAttackSpeed() const { int32_t attackSpeedValue = 0; std::string value; this->getStorage("8500", value); if (value != "-1") { attackSpeedValue = atoi(value.c_str()) * 5; } int32_t vocationAttackSpeed = vocation->getAttackSpe…
-
- 12 respostas
- 4.2k visualizações
-
-
Olá, Galera do Tibiaking hoje vim trazer para vocês um basico tutorial sobre Programação O que é source? Source é o nome dado ao conjunto de códigos que futuramente será um programa, em otserv nem sempre conseguimos esta source, mesmo sendo uma lei sua liberação, o servidor mais usado atualmente “TFS” tem seus códigos liberados e podemos conseguir na seção Download otserv procurando a versão desejada. Como abrir uma source? Como os códigos são apenas textos podemos abrir-los em um editor de texto normal, porem para facilitar o trabalho do programador usamos IDE, o mais popular no mundo dos otservs, Dev-cpp. Como criar um executável (compilar)? C…
-
- 5 respostas
- 4.1k visualizações
-
-
Manipulando arquivos através de LUA Abrindo um arquivo Para começar, você terá que abrir o arquivo.Para isso, usamos a função io.open(arquivo[modo]), que também pode cria-lo caso não exista.Arquivo será o seu diretório,que caso não exista retornará nil, e modo são os seguintes: "r" - Modo de leitura. "rb" - Leitura em modo binário. "w" - Modo de escrita. "wb" - Escrita em modo binário. "a" - Adicionar ao arquivo. "r+" - Modo de atualização preservando os dados anteriores. "w+" - Modo de atualização apagando os dados anteriores. "a+" - Modo de adição e atualização, preservando os dados anteriores e adicionando ao final do arquivo. …
-
- 0 respostas
- 4.1k visualizações
-
-
Fala galerinha do TK, como estão ? Bom, vou ensinar a voces a como adicionar novas Outfits Bom, é simples e rapido, então vamos la 1º vá em data/xml/outfits.xml e abra-o e estarão assim [/font]<?xml version="1.0"?> <outfits> <outfit id="1"> <list gender="0" lookType="136" name="Citizen"/> <list gender="1" lookType="128" name="Citizen"/> </outfit> <outfit id="2"> <list gender="0" lookType="137" name="Hunter"/> <list gender="1" lookType="129" name="Hunter"/> </outfit> <outfit id="3"> <list gender="0" lookType="138" name="Mage"/> <list gender="1" lookType=…
- 7 respostas
- 4.1k visualizações
-
Eai Galera do TK, hoje venho ensinar aos iniciantes a mexer um cado em vocations.xml Vo fazer só uma mesma, a primeira vocação Master Sorcerer - Vocação <vocation id="1" name="Master Sorcerer" description="a master sorcerer" gaincap="10" gainhp="5" gainmana="30" gainhpticks="2" gainhpamount="25" gainmanaticks="2" gainmanaamount="60" manamultiplier="1.1" attackspeed="550" soulmax="100" gainsoulticks="120" fromvoc="1"> <formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="2.0"/> <skill id="2" multiplier="2.0"/> <skill id="3" multiplier="2.0"/&g…
-
- 4 respostas
- 4.1k visualizações
-
-
[Windows][VS2015] Compilando Sources OTClient Tutorial explicando como compilar as Sources do OTClient com o Visual Studio 2015. 1 - Downloads Necessários - Visual Studio 2015 Update 3: http://my.visualstudio.com/Downloads?pid=2086 - Microsoft Visual C++ 2015 Redistributable:https://www.microsoft.com/pt-br/download/details.aspx?id=48145 - OTClient SDK 1.0 (Bibliotecas): https://github.com/conde2/otclient-sdk - Bibliotecas Boost C++ 1.63.0: https://sourceforge.net/projects/boost/files/boost-binaries/1.63.0/boost_1_63_0-msvc-14.0-32.exe/download 2 - Instale os softwares necessários -…
-
- 5 respostas
- 4.1k visualizações
- 1 follower
-
-
ADICIONANDO O ELEMENTO muitas das vezes a gente precisa adicionar um novo elemento em nosso servidor, assim para criar novas magias, esse tutorial é para quem precisa disso. combat.cpp Abaixo de: case CONDITION_FIRE: return COMBAT_FIREDAMAGE; Adicione em baixo: case CONDITION_PLANTA: return COMBAT_PLANTADAMAGE; combat.cpp Abaixo de: case COMBAT_FIREDAMAGE: return CONDITION_FIRE; Adicone em baixo: case COMBAT_PLANTADAMAGE: return CONDITION_PLANTA; Condition.cpp Abaixo de: case CONDITION_FIRE: Adicione: case CONDITION_PLANTA: Abaixo de: case CONDITION_FIRE: re…
-
- 14 respostas
- 4k visualizações
- 1 follower
-
-
E ai galera, venho para minha primeira contribuição! Tenho visto bastante pessoas com dificuldade ao compilar em Linux. Estarei inserindo imagens ao TUTORIAL para facilitar e melhor explicar. PROGRAMAS NECESSÁRIOS: http://the.earth.li/~sgtatham/putty/0.63/x86/putty.exe- Putty - Para conectar ao Terminal. http://sourceforge.net/projects/filezilla/files/FileZilla_Client/3.9.0.5/FileZilla_3.9.0.5_win32-setup.exe/download?use_mirror=ufpr -Filezilla - Para transferir arquivos ao servidor. PASSO 1: Acessar o servidor via SSH utilizando o programa Putty. (imagem Putty 1) (imagem Putty 2) PASSO 2: Digite os comandos abaixo no Putty após conectado. apt-get update …
-
- 10 respostas
- 3.9k visualizações
-
-
Launcher v1.0 by: Sticler Olá, Hoje vim trazer um Launcher feito por mim, ele Contém: Auto-Update Ou seja, ele vai ver se no seu client é da mesma versão que o host (veremos mais a frente) Launcher Ou seja, tem a opção de SITE, para ir para o SITE capitão óbvio SHOP, para ir para o SHOP do SITE, e Play v1.0 Tutorial Parte 1 Parte 2: Parte 3: Compilando: Parte 4: Então, hora de usar aquilo, deixe esta tela Exatamente Assim (Mudando apenas o nome do seu servidor) Agora, ponha o LAUNCHER na pasta do OTCLIENT/Clipsoft Agora, aonde tem Application main executable file, ponha o Launche…
-
- 10 respostas
- 3.8k visualizações
-
-
Faaaaala galerinha! A pedido de alguns usúarios estou aqui para postar este tutorial. Espero que seja útil para todos que tem alguma dúvida quanto ao Stackpos. Eu sinceramente não domino completamente a magia dos stackpos, mas espero poder tirar algumas dúvidas de quem sabe e ensinar quem ainda não sabe. Vamos logo ao tutorial: Stackpos • Introdução Stackpos é um dos index da tabela que guarda posições. Toda posição é uma tabela, exemplo: {x=160, y=50, z=7}, mas o que pouca gente sabe, é que o stackpos também faz parte desta tabela. Todos sabem que em uma unica posição podem haver vários itens, formando uma pilha de itens, portanto, para difere…
-
- 2 respostas
- 3.8k visualizações
- 1 follower
-
-
apaga samerda to puto ja com nego q n sabe mexer e fica mandano private toda hora
-
- 8 respostas
- 3.7k visualizações
-
-
<< Aula 4 - Operadores e Bibliotecas Variaveis Aula 5 Olá, bem-vindos a nossa 5ª aula de scripting. Nesta aula iremos tratar de uma coisa indispensável em todos os scripts: Variáveis. As variáveis podem ser entendidas como uma "caixa"que armazena um valor na memória RAM, ou um substituto de um valor, uma igualdade de um valor, como se ela fosse o valor em si. Toda variável deve ter um nome definido por você, mas existem regras para definí-los: quando for escolher o nome da variável, não use números no começo e nunca use caracteres especiais, como acentos, sifrões ou asteríscos. Use apenas a-z, A-Z e pode-se usar números também, d…
- 8 respostas
- 3.7k visualizações
-
Atualização 05/05/2019: Spoiler Adicionado algumas funções que estavam faltando e todos os callbacks existentes nas versões 0.3.7 (OTX 2) e 0.4 Olá a todos, acredito que muitos além de mim utilizam o Notepad++ para trabalhar com códigos, é por isso que hoje venho trazer um tema que eu mesmo fiz e um AutoComplete atualizado para o Notepad++. AutoComplete. Para quem não está familiarizado, o AutoComplete é uma função do Notepad++ que completa funções ou palavras assim que você começa digita-las. Neste AutoComplete que estou disponibilizando, possui todas as funções existentes no TFS 0.3.…
- 10 respostas
- 3.6k visualizações
- 1 follower
-
O que são tabelas? R: São estruturas multidimensionais que permitem o armazenamento de vários dados. Como declarar uma tabela? R : local tabela = {} Como faz para adicionar valores na tabela? R: Para adicionar um valor na tabela, devemos inserir nossos dados entre os colchetes{} local tabela = {"skydangerous",15} Como inserir um dado na tabela? R: Para inserir um dado na tabela e fácil, cada dado adiciona tem uma posição. local tabela = {} tabela[1] = "skydangerous" tabela[2] = 15 local posicao1,posicao2 = tabela[1],tabela[2] print(posicao1,posicao2) Print: skydangerous 15 Podemos perceber que adicionamos dois conteúdos em…
-
- 2 respostas
- 3.5k visualizações
-
-
Funciona apenas para TFS 1.0+ e Tibia 9.7 em diante. Tutorial feito por Evans, traduzido e adaptado por EddyHavoc. A funcionalidade ModalWindow te permite adicionar botões, entradas de escolha e textos. Pode ser usada para diversas coisas, para diferentes funcionalidades, tudo que precisa é conhecimento e criatividade. funções do ModalWindowNeste tutorial não iremos nos aprofundas, mas terá exemplos de como utilizar. Escolhendo seu tapete gratuitamente! Neste exemplo precisa de algo para acionar o script, ou seja um actionscript.Neste exemplo, foi usado um item simples. Você pode fazê-lo de qualquer outra maneira, isso é puramente por exem…
- 5 respostas
- 3.5k visualizações
-
Fala galera bom eu estava mexendo nos arquivos de double exp e achei um script muito bom postado pelo @luanluciano93 porém eu percebi que a parte do local rate não esta funcionando para a source 0.3.6 pelo menos na minha não porém eu achei uma forma funcional do script funcionar certinho com a exp correta que você configurar fazendo o seguinte instale o script... data/creaturescript/exppremium.lua function onLogin(cid) local rate = 1.5 -- 50% local config = { welvip = "Voce e um jogador premium, possui "..((rate - 1)*100).."% a mais de exp do que os jogadores free's", not_vip = "Adquira sua premium em nosso site ntons.sytes.net e obtenha "..((rate - 1)*…
-
- 4 respostas
- 3.5k visualizações
- 2 followers
-
-
Alterações nas sources para editar a BaseSpeed dos players. Vá em player.h e procure: void updateBaseSpeed() { if (!hasFlag(PlayerFlag_SetMaxSpeed)) { baseSpeed = vocation->getBaseSpeed() + (2 * (level - 1)); } else { baseSpeed = PLAYER_MAX_SPEED; } } A fórmula é (2 * (level - 1) 2 * level do player - 1 = velocidade do player
- 8 respostas
- 3.5k visualizações
- 1 follower
-
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
-
-
Como criar um Script de quest Bom, é bem simples fazer um Script de Quest, porém tem muitos que não sabe... Primeiramente vá até a pasta "Actions" e depois vá em "Scripts" agora faça um arquivo chamado Quest1.lua, e bote isso dentro dele: -- [( Script created by Matheus for TibiaKing.com )] -- function onUse(cid, item, fromPosition, itemEx, toPosition) local itemid = 1234 -- ID do item que o player irá ganhar. local storage = 9595 -- Storage pode ser qualquer numero, desde que ele não exista em outro script. if getPlayerStorageValue(cid, storage) < 1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a "..getItemNameById(itemid)..".") doPlaye…
-
- 3 respostas
- 3.4k visualizações
-
-
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 respostas
- 3.4k visualizações
- 1 follower
-
-
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
-
-
<< Aula 8 - while & repeat Essa aula foi escrita por um suricato Notorious, todos os créditos pertencem à ele. 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 variáveis 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…
-
- 2 respostas
- 3.4k visualizações
-
-
O que são Storages? Storage Value é um valor que fica gravado no banco de dados, no banco de dados ele é estruturado assim: quando você usa a função getPlayerStorageValue(uid, chave) O que acontece é praticamente o seguinte: É basicamente assim que funciona, por isso por padrão todas storages que não tenham um valor definido recebem o valor -1. Se não me engano um player pode ter até 65555 storages, todas ficam em uma única tabela no banco de dados. Como atribuir uma storage a um player: Como verificar a storage de um player: Exercício: Crie um script que só deixe o player usar um item uma vez. Esse tuto…
- 6 respostas
- 3.3k visualizações
-
Olá galerinha estou hoje para postar efeitos maneiros para seu servidor... no caso só os números dos efeitos.. créditos reservados ao membro Leandrowebmaster caso vocês não saibam como instalar efeitos estarei postando o link do meu tutorial! http://www.tibiaking.com/forum/topic/31660-colocando-efeito-no-seu-server/
-
- 7 respostas
- 3.3k visualizações
-
-
Atualizado (2016) Olá galera do TibiaKing! Hoje vim trazer um tutorial em video de como criar novos moves no seu server de PDA. Então, vamos lá, espero que gostem! VIDEO: Spoiler *Desculpa pela má qualidade, não consegui deixar 720p. SCRIPT USADA: Spoiler elseif spell == "NOME DO ATAQUE" then setPlayerStorageValue(cid, 3644587, 1) addEvent(setPlayerStorageValue, 4*400, cid, 3644587, -1) for i = 1, 1 do addEvent(doMoveInArea2, i*10, cid, EFEITO, AREA, DAMAGE, min, max, spell) …
-
- 11 respostas
- 3.3k visualizações
-
-
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…
- 14 respostas
- 3.2k visualizações
- 1 follower
-
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
-
-
Conforme tive uma dúvida outro dia, consegui obter uma solução satisfatória e, sabendo que pode ser a dúvida de mais gente, resolvi compartilhar na forma deste pequeno tutorial. A ideia é muito simples: fazer com que uma spell de área atinga apenas alguns alvos conforme uma característica específica. Isso pode ser bastante útil para diversas ideias, além do script base servir para tantos outros efeitos interessantes. Atenção, fiz os scripts para: TFS 0.4.0 Teremos como base para esse exemplo a magia "divine caldera", o famoso "exevo mas san". Nela teremos o seguinte script: local combat = createCombatObject() setCombat…
-
- 3 respostas
- 3.2k visualizações
-
Quem Está Navegando 0
- Nenhum usuário registrado visualizando esta página.