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
-
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
- 554 visualizações
-
-
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
- 793 visualizações
-
-
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
- 882 visualizações
-
-
Fala Pessoal Do Fórum Tibia King! Hoje Estou Aqui Para Mostrar a Vocês o Que é Memória RAM, Pra Que Serve e Como Mante-lá Limpa, Para Melhor Funcionamento De Seu Computador. Todos Sabem Que Ela é Essencial Para Um Bom Servidor Né? Então Vamos Lá! O QUE É MEMÓRIA RAM? a Memória RAM é a Memória Que Armazena Tudo o Que Você Acessou Recentemente No Computador. Ela Armazena Para Que o Próximo Acesso a Determinado Processo Ou Arquivo Seja Mais Rápido. Quanto Maior a Memória RAM, Maior o Número De "Processos" Suportados. PARA QUE SERVE A MEMÓRIA RAM? Se o Processador é o Cérebro Do PC Podemos Considerar a Memória RAM o Seu Coração, Ela Armazena Informações Para Que …
-
- 1 resposta
- 1.9k visualizações
-
-
Eu acho que muito deles já podem ter sido postados aqui, só queria colocá-los juntos para as pessoas que querem entender e programar em C++. C++ Tutoriais - http://www.cplusplus...es/tutorial.pdf Este tutorial é bem detalhado, bem explicado e um pouco longo. C++ Game Programming Nesta página você poderá encontrar tutoriais para C++ e programação de jogos, não bem detalhado mas tem coisa boa. Beginners Games Programming Eu ainda não chequei este, mais parece ter coisas úteis. Programas Úteis - Download Dev C++ from SourceForge.net Aqui você poderá baixar o Dev-C++ v.4.9.9.2, use para criar programas em C++. Links Úteis - Browse Dev-C++ Development Packages File…
-
- 1 resposta
- 1.6k visualizações
- 1 follower
-
-
Tutorial de como Compilar um OtServer. (Retirado de outro fórum) Antes de começarmos gostaria de fazer um breve FAQ: O Que é Compilação? É a transformação de um programa em código fonte (programa escrito pelo programador) em linguagem de máquina (programa executável). Existem centenas de linguagens de programação diferentes umas das outras, cada uma oferece recursos específicos para atender melhor uma necessidade ou características particulares, algumas são voltadas para bancos de dados, outras somente para a criação de interfaces comunicação (front-ends), aprendizado, etc. Cada linguagem de programação possui comandos específicos que desempenham alguma função, m…
-
- 1 resposta
- 7.2k visualizações
-
-
Olá Tibia King Hoje,vou trazer a voces um tutorial de potions infinita,testei em todas as versões e nenhuma deu problema. Eu sei que já tem varios topicos de potions infinita,mas como eu tava olhando,tem alguns com bugs e etc,e então vou ensinar um sem bug. Primeiramente siga este caminho na pasta do seu servidor : Data/Actions/Scripts/Liquids/Potions.lua O Script que tem que ser inserido nessa parte é : Após a inserção deste comando no servidor, se você não deseja reiniciar o servidor digite: /reload action Obrigado, Abraços.
-
- 1 resposta
- 2.6k visualizações
-
-
Primeiro Vá Em Data/Spells/Scripts/Attack Crie Um Arquivo Chamado : noble Agora Abra O Arquivo E Cole Isto Dentro : local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_PHYSICALDAMAGE) setAttackFormula(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE, 50, 50, 80, 100) local area = createCombatArea(AREA_CROSS5X5) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end 50, 50, 80, 100) É O Ataque Do Poder Vcs Editam Quanto Vcs Querem ~~ Vamos Lá Salve e feche , Agora vá em 'spells.xml' e adicione esse TAG Aba…
-
- 1 resposta
- 1.3k 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
-
-
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
- 599 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
- 368 visualizações
-
-
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
-
-
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
- 572 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
- 571 visualizações
-
-
-
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
- 915 visualizações
-
Hoje resolvi fazer este tutorial porque os que que encontrei estavam muito confusos e não entendi certas coisas. V [TUTORIAL] Como adicionar pokemons com {Icon System}. 1- Abra o seu ObjectBuilder. 2- Aperte Ctrl+O ou Clique em "File"/"Open". 3- Clique em Browse. 4- E abra a pasta onde fica seu tibia.spr e o tibia.dat. 5- Caso for estendido marque a caixa. 6- Após isto procure as outfit, corpse, ícone e portrait do pokemon desejado. ob…
-
- 1 resposta
- 1.3k 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
- 539 visualizações
-
-
VENHO HOJE COM UM TUTORIAL PARA QUEM ESTÁ COM DIFICULDADES EM COMPILAR TFS USANDO O VISUAL STUDIO Como pouca gente sabe, para compilar o TFS é preciso da versão 2015 do Visual Studio e muita gente que baixa agora, vem com a versão 2017. Para quem já baixou, procure por “Visual Studio Installer” no menu iniciar e abra-o. Quem vai baixar agora, já faça esse procedimento. Link: https://www.visualstudio.com/pt-br/ Clique em modificar. Conforme mostra a imagem. Assim que abrir, abrirá essa janela. Se você ainda não instalou nada, prossiga depois daqui. Clique em Desenvolvimento para desk…
-
- 1 resposta
- 1.3k visualizações
-
-
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
-
-
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
- 655 visualizações
-
-
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
-
-
Bom Galera Primeiro irei mandar uma foto de como irá ficar a mensagem de boas vindas Imagem e então vamos lá Vocês irão ir em: /mods/firstitems.xml e vocês irão procurar por: doAddContainerItem(bag, 12260, 1) e embaixo disso vocês colocam: Spoiler local msg = [[ --------- Mensagem Inicial by Korobeiniki / Atiralol --------- Bote tudo oque voce quiser aqui : ) Nao esqueca de dar rep xD --Bom jogo a todos!-- ]] doPlayerPopupFYI(cid, msg) se eu ajudei vocês porfavor deixe seu rep não custa nada
-
- 1 resposta
- 1.3k visualizações
-
-
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
-
-
[TESTADO EM OTX 2.x.x SERIES] 8.60 Primeiramente vá em game.cpp e procure por: bool Game::broadcastMessage(const std::string& text, MessageClasses type) { std::clog << "> Broadcasted message: \"" << text << "\"." << std::endl; for(AutoList<Player>::iterator it = Player::autoList.begin(); it != Player::autoList.end(); ++it) it->second->sendTextMessage(type, text); return true; } Abaixo adicione: bool Game::globalSendChannelMessage(std::string author, std::string text, MessageClasses type, uint16_t channel) { std::clog << "> Channel message: \"" << text << "\"." << std…
-
- 1 resposta
- 1.5k visualizações
- 1 follower
-
-
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
- 426 visualizações
- 2 followers
-
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
- 856 visualizações
-
-
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
- 891 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
- 710 visualizações
-
-
While & repeat Aula 8 Primeiramente desculpe a demora por essa aula, ficou meio aquela de; ah faz você, não faz você, anem faz você; Mais em fim estamos de volta com uma coisa indispensável em scripting que são os loops. Antes de tudo devo avisa que loops são perigosos, você pode travar seu servidor inteiro usando errado um loop. Os loops são usados para inicialmente quando temos varias funções juntas iguais, por exemplo, fazendo um jogador falar oi 10 vezes. Sem os loops você faria assim: doPlayerSay(cid,'oi',1) doPlayerSay(cid,'oi',1) doPlayerSay(cid,'oi',1) doPlayerSay(cid,'oi',1) doPlayerSay(cid,'oi',1) doPlayerSay(cid,'oi',1) doPlay…
-
- 0 respostas
- 1.8k visualizações
-
-
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
- 800 visualizações
-
-
Kepler: Kepler é uma comunidade de desenvolvedores de software livre usando Lua como uma opção viável de desenvolvimento de aplicações web. Kepler foi originalmente criado pela Fábrica Digital e Puc-Rio em 2004 mas já recebeu muitas contribuições desde então. Site: http://www.keplerproject.org/ Ekolu - Embedded Lua: Framework de desenvolvimento Lua para o mundo embedded. O projeto oferece Lua para diversas plataformas e arquiteturas diferentes de microcontroladores. eLua roda em "bare metal", não dependendo de nenhum sistema operacional "por baixo" para ser utilizada. Site: OFF-line GINGA - A TV digital brasileira Lua: Framework para desen…
-
- 0 respostas
- 2.1k visualizações
-
-
Criando Quest Muitas pessoas ainda nao sabem ou se confundem ao criar um bau de quest, esse tutorial aqui vai ensinar direitinho como criar um. Este tutorial é dividido em 4 passos. Criando Quest -Passo 1 - Script.lua crie um arquivo.lua novo, ele deve ficar localizado na pasta data/actions/scripts e escreva isto nele: function onUse(cid, item, frompos, item2, topos) if item.uid == X then queststatus = getPlayerStorageValue(cid,Y) if queststatus == -1 or queststatus == 0 then doPlayerSendTextMessage(cid,22,"Você achou um(a) Z") item_uid = doPlayerAddItem(cid,ID,Q) setPlayerStorageValue(cid,Y,1) else doPlayerSendTextMessage(cid,22,"O…
-
- 0 respostas
- 1.9k visualizações
-
-
1. Abra a pasta "data > raids". 2. Como vocês estão vendo, tem várias raids, vamo copiar uma, para fazer a nova. 3. No meu caso, vou fazer uma invasão de "Yeti" , então vamos lá, vo criar um arquivo chamado "YetiRaid". 4. Dentro, vai ter isso . (é GS, porque eu fiz uma cópia dela). Explicando ... Amarelo : <announce delay="0" type="event" message="The mating season of the giant spiders is at hand. Leave the Monty Fields as fast as you can." /> announce delay, é o tempo que a mensagem vai sair. (se não me engano é a cada 100 mil é 10seg). type="event" - Muda nada . message = "The mating season of the giant sp…
-
- 0 respostas
- 1.7k visualizações
-
-
Se você já se perguntou: Por que na coluna vip_time aparece um número absurdo, se eu adicionei apenas alguns dias vip? Aqui encontrará a resposta! Os players do seu server que tem conta VIP terão em sua vip_time um número parecido com este: 1344747131 Mas, o que este número quer dizer? Este número é o tempo em segundos medido desde a Era Unix, ou seja, desde 1 de Janeiro de 1970 às 00:00:00. Logo... Digamos que no dia 1 de janeiro de 2012 às 0h, eu tenha adicionado 1 dia vip em determinada conta do meu server. O número que aparecerá na vip_time será: 1324512000 Que é, aproximadamente, o resultado de: 42 anos * 365 dias * 24 horas * 60 …
-
- 0 respostas
- 1.9k visualizações
-
Quem Está Navegando 0
- Nenhum usuário registrado visualizando esta página.