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. Aula 001 Movements- Explicação de parâmetros. Dentro das funções StepIn/StepOut temos alguns parâmetros que podem ser muito uteis para alguns tipos de scripts. Esses parâmetros são: position, lastPosition, fromPosition, toPosition 1° Parâmetro - position Esse parâmetro é o responsável por mostrar a posição de onde o script foi ativado, Toda vez que um player ou creature executar um movement StepIn/StepOut o parametro position vai marcar a exata posição de onde o script foi ativado. 2/3 ° Parâmetros - lastPosition, fromPosition Esses dois parâmetros tem a mesma função, que é registrar de onde o player ou creature que executou o script veio, To…

    • 1 resposta
    • 1.1k visualizações
  2. 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
  3. Started by Skyforever,

    Tipo: Acho que é um tutorial meio que com scripts seilá, Autor: Eu. Como vocês podem notar os otserv's hoje em dia não investem muito em quest's com rpg são quase todas iguais clique no baú pegue o item então tava entediado e resolvi criar essa quest(criei +/- falta algumas coisas se quiserem editar elas) . @Se consiste. Em falar com o NPC pegar o item ir na statue usar o item que ganhou do NPC ganhar outro item ir em outra statua destruir ela colocar o item no fogo e vocês decidem oque mais só coloquei para soltar efeito. MOVEMENTS: ACTIONS: function onUse(cid, item, fromPosition, itemEx, toPosition) if itemEx.itemid == ID DA…

    • 8 respostas
    • 1.1k visualizações
  4. Started by 3visan,

    Escopo Aula 6 Vimos na aula anterior sobre variáveis, e vimos também, bem superficialmente, como declarar variáveis como locais. Você pode se perguntar: "Qual a utilidade de uma variável local?", "O que ela tem de diferente de uma variável global?" ou "Se elas são tão importantes, por que quase ninguém usa?". Vamos por passos. Imagine a seguinte situação: "Você tem uma variável chamada var, e ela vale 1, mas em certo ponto do script você quer que ela receba o valor 2, execute alguma coisa (Como um print) e, depois que executar, ela retorne ao valor anterior (1).". Um dos modos de fazer isto é usando uma outra variável temporária para armazenar o valor antigo…

    • 9 respostas
    • 1.1k visualizações
  5. Started by Ryzor,

    Primeiramente você deve ter um Editor de Texto e um Compilador. Recomendados: Windowns - Dev-ccp Linux - Gedit e Terminal (G++) Acredito que em todos Linux já venha integrado. 1º Abra seu Editor(Gedit ou Dev-Ccp) e escreva as libs que vamos usar Código: [#include <string> #include <iostream> 2º Digite int main() e Abra seu Escopo. 3º Agora Vamos Criar as Variáveis: Código: char SkyFail; std::string r("potencia"); double x=0; double y=0; double z=0; Vou Explicar SkyFail = a Variavel onde ira guardar o tipo de Conta std::string r("potencia"); = Necessário para que você posa usar Letras no IF. double z x e y = Onde ira guardar os numeros da soma Agor…

    • 0 respostas
    • 1.1k visualizações
  6. Started by Reds,

    Boa tarde, há algum tempo não posto scripts por falta de sugestão, porém hoje navegando encontrei um pedido muito antigo que não foi fechado, talvez o criador do tópico já concluiu, mas vou disponibilizar para outras pessoas que queiram o código. O tópico era: No tfs 0.4 rev 3884 tem a mesma configuração para envio de critico, então para iniciar, você deve ir até o arquivo weapons.cpp e colocar abaixo de: player->sendCritical(); o seguinte: target->sendCritical(); Em creature.cpp adicione no final do arquivo o seguinte: void Creature::sendCritical() const { if(g_config.getBool(ConfigManager::DISPLAY_CR…

  7. 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
  8. Started by Skydangerous,

    Esse mini-tutorial irei ensinar essas funções que lê a entrada do usuário e consequentemente mostrará na tela o que escrevemos. é muito simples, irei ensinar o básico. Nós queremos também que o usuário digite o seu valor, e que não apenas demos um valor e assim não dando opção para o usuário, fazendo com que ele tenha que editar sempre o código fonte. Por isso, estarei dando um pequeno exemplo das funções io.write e io.read io.write("Digite seu nome:") nome = io.read() print ("O seu nome é:", nome) Como um breve resumo das função seria: io.write = Essa função faz com que possamos escrever io.read = Essa função lê o que escrevemos. Con…

    • 8 respostas
    • 1k visualizações
  9. 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 u…

  10. Started by VictorFT,

    Eai Galera Tudo Bom? Estou aqui para ajudar a todos que querem começar a Programar , este tutorial que estou fazendo explicando a programação , funções e etc, irá te dar uma Noção de Programação. Primeiro não é lendo tutoriais,revistas vendo videos, que você vai ficar bom em programação. Sempre Faça Exercícios para ficar bom em programação e cada fez melhorar. Introdução . Linguagem de Programação . - Uma Linguagem de programação é um conjunto de símbolos (comandos, indentificadores, caracteres ASCII, etc...) e regras de sintaxe que permitem a construção de sentenças que descrevem de forma precisa ações compreensíveis e executáveis para o computador. …

    • 0 respostas
    • 1k visualizações
  11. primeiramente seu mapa tem que ser nessa versão 0.4... Vamos la, para quem teve problema coma erro do talkaction do war system supostamente seguio esses passo aki que irei posta http://www.tibiaking.com/forum/topic/8827-war-system-guild-war-com-escudos-completo/ << esse aki usei como exemplo pois eu segui esses passo e mesmo assim fui surpriendido com erro do talkaction.... mais alguns dias de pesquisa consegui encontra aonde estava meu erro. Vou explica melhor, siga todos os passos desse tutorial aki http://www.tibiaking.com/forum/topic/8827-war-system-guild-war-com-escudos-completo/, apos isso voce vem aqui nesse topico http://tibiadev.com/index.php?/top…

  12. Started by Duuhzera,

    Bom galera, vejo que muita gente pede ajuda para adicionar coondown em magias, runas, actions, etc.. entao vim aqui ensianr como adicionar o tao procurado coondown Primeiramente abra seu script, e procure onde ele faz a funçao como: Na linha a baixo da funçao, adicione isto : 23006 é o storage do exaust, coloque diferente em cada magia/action/talkaction para nao interferir umas nas outras. 20 é o tempo em segundos para poder usar a magia/action/talkaction/ novamente. Após adicionar isto, e configura-lo, pule uma linha e pronto Espero ter ajudado!

    • 2 respostas
    • 989 visualizações
  13. 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
    • 989 visualizações
  14. Started by TonyHalk,

    •Como assim Efeito Bônus? Simplesmente usando o Itens.xml, você pode fazer de itens comuns e sem utilidade, itens bons. Veja um exemplo abaixo: esse exemplo eu peguei uma magma boots: E adicionei um efeito "manashield" ou seja, um item muito util para as vocações pois adiciona automaticamente "utamo vita" au seu character. Ela é infinita, caso você queira adicionar um tempo, adicione a seguinte tag no script: Explicando melhor: ID do item (ID da boot) Nome dado ao item Peso Defesa (Você escolhe) Slot (Não mude) Descrição •Você também pode pegar outros itens e adicionar outros efeitos leg…

    • 1 resposta
    • 968 visualizações
  15. Started by thiagobji,

    Bom, é o seguinte, eu estava pesquisando algo de útil sobre programação no PC e achei esse tutorial útil (na minha opinião), gostei muito dele e venho aqui compartilhar com vocês. Assim como todas as linguagens de programação, LUA tem suas particularidades e sua estrutura lógica própria, a qual envolve suas funções, operadores e engines. Para começarmos a programação em LUA, devemos conhecer sua lógica, para que possamos aplicá-la em nossos códigos. Abaixo, você encontra os operadores da linguagem e sua explicação: • “Local” = É usado para a definição de variáveis. Pode ser encontrado também destacando uma função. Neste último caso, seu uso pode ser dispensado…

    • 0 respostas
    • 966 visualizações
  16. Started by Eduardo Carvalho,

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

  17. olá galera eu vi que muita gente tem esse problema de puxar um squirtle por exemplo e depois botar outra ball no slot e nascer 2 squirtle, e dai dps que nasceu 2 squirtle o cara puxa outra ball pro slot e puxa + 1 squirtle ai fica 3 squirtle fora da ball e então eu vou ensinar vocês como faz para arrumar esse bug e deixar apenas para puxar 1 poke de cada vez !!! primeiramente vocês vão em: /data/actions/scripts/goback.lua e vocês procurem por: elseif item.itemid == pokeballs[btype].on then e embaixo vocês botam: Spoiler if #getCreatureSummons(cid) == 1 then if item.itemid == 11826 or 11829 …

    • 2 respostas
    • 948 visualizações
  18. Started by ADM WAR,

    esse post e para aquelas pessoas que sofre com isso na hora de abrir a tfs em linux ./tfs: error while loading shared libraries: liblua5.1.so.0: cannot open shared object file: No such file or directory so basta executar isso apt-get install subversion autoconf build-essential pkg-config libboost-dev libgmp3-dev libxml2-dev liblua5.1-0-dev libmysqlclient-dev libcrypto++-dev ccache libboost-filesystem-dev libboost-regex-dev libboost-system-dev libboost-thread-dev screen libssl-dev

    • 1 resposta
    • 933 visualizações
  19. Started by koete,

    Boa tarde galera, estou aqui para retribuir o TibiaKing por anos de ajuda e suporte que este Fórum já me deu. Desde o inicio o Tibia King tem me segurado com as duas mãos. Então, o minimo que posso fazer é retribui-lo. Seguinte!, vocês vão pedir as spells e eu vou tentar cria-las para vocês.

    • 4 respostas
    • 922 visualizações
  20. Started by 3visan,

    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, desde que não estejam no começo da variável. Existem …

    • 0 respostas
    • 908 visualizações
  21. Started by MaXwEllDeN,

    Funções muito úteis Galera, nesse tópico vou mostrar algumas funções muito usadas no mundo dos OTS, pra que elas servem e como devem ser usadas. doPlayerAddItem(uid, itemid[, count/subtype[, canDropOnMap]]) Nota: Parâmetros que ficam entre [], são opcionais e recebem alguns valores por padrão caso não sejam especificados. Conforme o tempo vou adicionando mais funções aqui .-. doCreatureSay(uid, words[, type]) getCreatureName(cid) getCreatureHealth(uid) getCreatureMaxHealth(uid) getCreatureMana(uid) getCreatureMaxMana(uid) getPlayer…

    • 1 resposta
    • 907 visualizações
  22. 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
    • 901 visualizações
  23. Started by OhGod,

    | ~ | Editando opção infinita | ~ | | ~ | by Northon e OhGod | ~ | Como assim infinita? Editar se é infinita runas e arrows. | ~ | Mãos a obra! | ~ | Acesse a config.lua, que se encontra na pasta do seu otserv. Abra ela, é em seguida procure por isso: Quote -- remove ammunation? (bolts/arrows) removeammunation = "no" -- remove rune charges? (sd/hmm/gfb) removerunecharges = "yes" Edite as opções entre aspas, no caso acima ela não esta infinita. "yes" -> Não deixar infinita "no" -> Deixar infinita. Vai em arquivo > salvar.

    • 2 respostas
    • 898 visualizações
  24. Started by MaXwEllDeN,

    << Aula 3 - Primeiros Passos Operadores Aritméticos e Bibliotecas Aula 4 Na aula anterior vimos como chamar funções e conhecemos as funções print e type. Nesta aula apenas vou reforçar a aula anterior ensinando as funções mais básicas e usadas que são nativas da linguagem Lua, ou seja, não são funções criadas para Open Tibia Server, e sim funções prontas que já estão incluídas na linguagem Lua, e vou ensinar também os operadores aritméticos. Vamos começar com eles. Os Operadores Aritméticos OBS: Você pode fazer seus testes no editor e interpr…

    • 0 respostas
    • 887 visualizações
  25. Started by Gabis13Lin,

    Bom galera, hoje vou ensinar a vocês alguns códigos básicos de poketibias! 1- Criando uma quest: Primeiro passo, pegue uma script qualquer de quest, cole e renomeie para qual quer, depois abra o arquivo.lua e apague tudo dentro, vamos começar! Segundo passo, toda script necessita de uma função, abra com o seguinte código o script (lembre-se, baixe o notepad++): function onUse(cid, item, frompos, item2, topos) Bom, mas o que isso significa? Bom, com o basico da para ler o codigo, é um OnUse, quando clicar nele, executara tudo que esta nessa função! Para o proximo passo, se sua quest vai adicionar algum item …

    • 3 respostas
    • 886 visualizações
  26. Started by cleber13,

    ola! gostaria de alguem que possa ajudar alguns que estao começando a criar ot server . eu criei spell no spell creator mais as tags que ele gera como adiciono elas no ot server. segue as magias e desde ja agradeço. <instant name="teste" words="default" lvl="100" maglv="0" mana="0" exhaustion="30" prem="0" needlearn="0" blockwalls="0" aggressive="1" event="script" value="teste.lua"> </instant> -- SpellCreator generated. -- =============== COMBAT VARS =============== -- Areas/Combat for 0ms local combat0_Brush = createCombatObject() setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, 226) setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_UN…

    • 3 respostas
    • 882 visualizações
  27. Mods Mods são no geral um conjunto de scripts que quando unidos servem para executar alguma ação no seu servidor, como adicionar eventos como Capture The Flag e etc. Como funcionam? Todo mod, tem um arquivo xml que fica dentro de sua pasta mods . Eles geralmente têm essa estrutura: <?xml version = "1.0" encoding = "UTF-8"?> <mod name = "The Surprise Bag" author = "MaXwEllDeN" version = "1.0" enabled ="yes" contact = "[email protected]"> <event type = "logout" name = "LTSBag_Logout" event = "script" value = "The Surprise Bag/Creaturescript.lua"/> <talkaction words = "!surprisebag" case-sensetive = …

    • 9 respostas
    • 876 visualizações
  28. Started by Doughell,

    Olá a todos frequentadores da seção Scripting! Hoje partiremos para nossa segunda aula de Scripting, as duas aulas foram bem rápidas essa aqui já será um pouco mais complexa, mas espero que usufruam bem dela! local config = { doorPosition = {x = 100, y = 100, z = 7}, doorID = 1000, minAccess = 6, message = { doorOpen = "The door has been opened!" doorClose = "The door has been closed!" } } function onSay(cid, words, param) if getPlayerAccess(cid) >= config.minAccess then local item = getTileItemById(config.doorPosition, config.doorID) if item.uid > 0 then doRemoveItem(item.uid, 1) doPlayerSnedTextMessage(ci…

    • 0 respostas
    • 870 visualizações
  29. Adicionando Global Storages no TFS 1.0 Olá, pessoal, estive trabalhando com o TFS 1.0, e me deparei com um problema ao utilizar uma storage global nesta versão, eles utilizaram uma versão com muitas diferenças da que estamos acostumados a programar nossos scripts, e essa versão antiga não possuía global storages. A solução que o pessoal encontrou para burlar isso, foi um tanto quanto arcaica, visto que esse modo deles pode acarretar em vários problemas eu resolvi desenvolver um código que funcionará normalmente no TFS 1.0. Enfim, deixando de falação, vamos ao tutorial... Primeiro, execute esse código SQL no seu Banco de Dados: CREATE TABLE `global_st…

  30. Started by Fir3element,

    Não me lembro bem mas acho que esse bug foi fixado só na versão 8.62, então pode ajudar muita gente... O comando !disband não funcionava direito, o player continuava na guild e acho que dava pra clonar items também. Os créditos vão para o slawkens. No arquivo ioguild.cpp, troque: bool IOGuild::disbandGuild(uint32_t guildId) { Database* db = Database::getInstance(); DBQuery query; query << "UPDATE `players` SET `rank_id` = '' AND `guildnick` = '' WHERE `rank_id` = " << getRankIdByLevel(guildId, GUILDLEVEL_LEADER) << " OR rank_id = " << getRankIdByLevel(guildId, GUILDLEVEL_VICE) << " OR rank_id = " << getRankIdByLevel…

    • 3 respostas
    • 837 visualizações
  31. Started by Ryzor,

    Algumas LIBs úteis em OTServ Introdução: Não sou NENHUM expert em lua e estou LONGE de ser. Porém, ontem eu vim procurar algum tutorial que me evidenciasse facilmente o assunto em questão e não encontrei, então resolvi estudar um pouquinho e trazer para vocês Fonte: A fonte do meu estudo foi um site muito conhecido por scripters, que é: Lua-Users.org Explicações: Optei por incluir nesse tutorial explicações somente das libs que eu achei mais interessantes e que pude ver uma utilidade em OTServ, como Math, Os e Table. Se você acha que faltou algo de interessante ou que alguma explicação pode ser melhorada, por favor, poste construtivamente aqui, …

    • 0 respostas
    • 832 visualizações
  32. 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
  33. Started by Ryzor,

    ..:: String Tutorial ::.. O que são strings? São seqüências ordenadas de caracteres, símbolos, escolhidos a partir de um conjunto pré-determinado. Manipulando Strings A biblioteca string provê funções com diversas utilidades, para manipulação de strings (cadeias de caracteres, como explicado acima). Como exemplos, podemos citar a localização e extração de subcadeias, além de casamento de padrões. Em lua, o primeiro caractere da indexação vai estar na posição 1, e não na 0 (como em C). Os índices podem ter valores negativos, e nesse caso serão interpretados como uma indexação de trás pra frente, começando do final da cadeira. Logo, o ultimo caractere est…

    • 0 respostas
    • 824 visualizações
  34. Started by Ryzor,

    Lista dos melhores tutoriais, selecionados e classificados por nivel de conhecimento necessár io , a lista não precisa ser seguida necessariamente na ordem que se encontra, este tópico apenas contém um apoio ao estudo. Lembrando , não reviva os tópicos aqui listados com agradecimentos ou comentários desnecessários , salvo os casos onde alguma dúvida não foi sanada (pesquise antes para saber se sua pergunta já não foi respondida) e for relevante ao assunto tratado no tópico ! As estrelas representam o nível de recomendação tendo como base o conteúdo tratado em cada tutorial e não o nível de qualidade. Matematica Afina…

    • 1 resposta
    • 820 visualizações
  35. 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
    • 815 visualizações

Quem Está Navegando 0

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

Informação Importante

Confirmação de Termo