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 Kaiotp,

    Bem galera espero que gostem. Vá em Data/Actions/scripts , é crie o seu bloco de notas ; Coloque o script estará assim ; Aonde está de Vermelho e oque vai falar para o player quando fizer a quest... Aonde está de Azul 2160 < vocês poem o id do item depois da virgula 100 e quantos de item o player vai ganhar a fazer a quest... Aonde está de Verde E o aonde voçê vai por o uniquq id no baú do remere's map editor Para adicionar um novos itens aperte enter e copie a linha e edite novamente o id. 2160,100, 2160, 100 Agora vá em Data/Actions/Clique em actions coloque a seguinte linha Onde está de laranja você coloca o actio…

    • 4 respostas
    • 1.7k visualizações
  2. 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…

  3. 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.7k visualizações
  4. Started by MerlinMage,

    Boa noite pessoal ,eu gostaria de saber primeiramente como que eu faço pros players usarem os outfits com os 2 addons .. sem ter aquela coisa de addon doll . ou de ter q pegar em npc... como eu habilito os 2 addons?

    • 3 respostas
    • 1.6k visualizações
  5. [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…

  6. Started by Lurk,

    Peço desculpas caso esteja postando na área errada, por favor movam o tópico. Isso é um tutorial O script já existe na base que o @WooX postou aqui mas quando tentei passar pro meu sv 0.4 ficava dando debug dai eu desisti na época. Dai eu tava tentando ajudar nesse tópico, tentei mais uma vez e consegui fazer funcionar. Exemplo de como fica ingame Vamos a instalação em data/globalevents/scripts crie um arquivo chamado eventcheck.lua e cole isso dentro local EventsListalist = { {time = "01:00", name = "Snowball Event"}, {time = "02:00", name = "DesertWar Event"}, {time = "03:00", name = "Capture The Flag…

    • 2 respostas
    • 1.5k visualizações
  7. Introdução a Lua Esse vídeo é para os que não gostam de ler, e preferem um vídeo. Eu fiz ele com a intenção de ajudar, mas vendo o vídeo me atrapalhei de mais, ficar 3 meses sem mecher em programação acaba esquecendo tudo. E to gripado.. e são quase 1h da manhã ..

    • 2 respostas
    • 1.5k visualizações
  8. Ola galera do tibia king, bom esse topico ja havia sido feito mais estava muito grande e confuso resolvir edita-lo para melhor compreende-lo, bom como o Titulo ja diz eu irei ensinar como adicionar Wayfarer Addon Full nas versoes 8.60. (Desculpe-me pelos erros nas acentuaçoes pois meus acentos nao esta funcionando, n~~ao). Bom vamos la. Abra a pasta DATA>NPC>SCRIPTS> e crie um arquivo chamado wayfarer.lua e coloque isso dentro local focus = 0 local talk_start = 0 function onThingMove(creature, thing, oldpos, oldstackpos) end function onCreatureAppear(creature) end function onCreatureDisappear(cid, pos) if focus == cid then se…

  9. Started by Ryzor,

    Math A matemática por traz do script introdução: bem, antes de começar a explicar o math em si, acho melhor explicar que: não é recomendado colocar variáveis como x ou y em uma equação alem do exemplo acima, funções lua ou de otserv, não podem ser declaradas como nome de variáveis "=" é diferente de "==" para facilitar, de uma olhada nessa tabela com os simbulos matemáticos em lua : + ---------------------- adição - ------------------ subtração *---------------- multiplicação / ---------------------- divisão == ------------------ igualdade ~= -------------- desigualdade > ----------------- maior que >= --------…

    • 0 respostas
    • 1.4k visualizações
  10. Started by Skyforever,

    Strings strings são palavras ou letras geralmente são usadas entre "" vamos aos strings: Esses são os strings mais usados Math's esses são os math's mais conhecidos

    • 4 respostas
    • 1.4k visualizações
  11. Started by Bluetooth,

    Instale as lib # apt-get install git cmake build-essential liblua5.2-dev libgmp3-dev libmysqlclient-dev libboost-system-dev execute os comandos $ cd /pasta_do_tfs $ mkdir build && cd build $ cmake .. $ make pronto sua distro esta na pasta build nomeada de tfs

    • 3 respostas
    • 1.4k visualizações
  12. Started by Doughell,

    Olá a todos frequentadores da seção Scripting, tomei minha própria iniciativa junto com o Lpz de criar dicas ao scripting, como perceberam ele já começou com seu tópico dicas onde foi muito importante a iniciantes! Hoje começarei de nv. de script inferior, com scripts/comandos/funções básicas! Então vamos começar com o comando parecido com o do !aol que é bastante útil a outros servidores. Ok, vamos lá! function onSay(cid,words,param) if doPlayerRemoveItem(cid,2145,10) == TRUE then doPlayerAddItem(cid,1738,1) doCreatureSay(cid,"MENSAGEM QUE A TALKACTION FOI REALIZADA COM SUCESSO",TALKTYPE_ORANGE_1) else doCreatureSay(cid,"MENSAGEM QUE HOUVE ERRO …

    • 5 respostas
    • 1.4k visualizações
  13. Hoje é dia de brincadeira e iremos criar uma solução onde o app em modo cli verifica se o número é impar ou par. Abra um editor de texto de sua preferencia e então digite: import time # criando função par. def par(numeroPar): #Verifica se o resto do número passado no parametro é 0, se for 0 então retorna Par se não, retorna Ímpar if numeroPar %2 == 0: return ("%d - Par" %numeroPar) else: return ("%d - Ímpar" %numeroPar) print(par(4)) ''' ou também poderíamos fazer assim: Primeiro iremos pedir para o usuário digitar qualquer número quando o usuário digitar, verificamos se o número é par ou impar ''' digite_um_numero = int(input()) # caso o usuário digite um númer…

    • 0 respostas
    • 1.4k visualizações
  14. Started by Skydangerous,

    Manipulações de Strings. Strings devem estar entre aspas (simpes ou duplas). local texto1 = 'Ola mundo.' local texto2 = "TibiaKing" Funções Báscias string.byte() Retorna o valor da tabela ASCII s = string.byte('A') print(s) string.char() Retorna um caracter a partir do valor numérico da tabela ASCII. s = string.char(66) print(s) string.len() Retorna o tamanho da string. s = 'Programar em LUA é muito fácil.' a = string.len(s) print(a) string.lower() Retorna um string com os caracteres maiúsculos convertidos para minúsculo s = 'Programar em LUA é muito fácil.' a = string.lower(s…

    • 1 resposta
    • 1.4k visualizações
  15. 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.4k visualizações
  16. 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
  17. Started by Jamyn,

    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
  18. Ola amigos do tibiaking, estou trazendo aqui para vocês um TFS 0.4 8.6 com cast system e war system feita pelo LuanLuciano! lembrando que foi feita por ele não por mim, só estou disponibilizando aqui para vocês! TFS 0.4 DEV rev 3777 (by TFS Team) Anti-Divulgação (.servegame, .no-ip, .net, .com, .org, .pl, .biz, .br, .sytes, .info) War System Cast System (by Summ) Retirado bugs de anti-push .. Retirado bugs de elfbot ... Retirado erro de não aceitar outros items ... Retirado erro de Malformed File ... Add creatureevent onMoveItem() ... Add função getCreaturePathTo () ... E vários outros! https://www.youtube.com/watch?v=iIVJxDFLvlg Datapack Sources …

    • 6 respostas
    • 1.3k visualizações
  19. 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"; …

  20. Started by lucascsa123,

    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
  21. Started by arthurluna,

    Olá Tk, Meu OTRestarter evoluiu desde a última versão 1.0.0, eu melhorei ele algumas vezes sobre e sem liberá-lo aqui devido a alguns comentários ruins última vez. De qualquer forma aqui é com SOPRO recursos! E muito mais na versão 2.0.3! Vamos começar a introdução de OTRestarter v2.0.3 -: | Imagens |: - - Botão Drag'n'Drop! -Visão geral do programa: -Auto-Updater -:| VIRUS SCAN |:- NOTA: Por favor relatar quaisquer bugs Se você encontrou algum. Visite o meu site! AeroSoft Agradecimentos para ver ou fazer download, Aerox Aerox12 ArthurLuna …

  22. Started by thiagobji,

    Como o título já diz tudo, vou ensinar umas partes para os iniciantes hoster de OTServer que sabe pouco ainda Vou fazer só 1 mesmo para entenderem mesmo (Estou pegando o outfits do Global Compacto, rsrs) O Outfit sem está editado <outfit id="1"> <list gender="0" lookType="136" name="Citizen"/> <list gender="1" lookType="128" name="Citizen"/> </outfit> Agora editando, passo a passo <outfit id="1"> - Eu peguei o primeiro addon, então será o número 1 <list gender="0" - Todo mundo sabe que GENDER é SEXO (SÉRIO? ¬¬), o número 0 é o sexo masculino e o número 1 é o sexo feminino. lookType="136" - o n…

    • 2 respostas
    • 1.3k visualizações
  23. Bom dia! Trago estas três funções .lua que utiliza o player ID da database para retornar o Nome, vice-versa e o próprio ID Não consigo lhes dar exemplos de utilização, entretanto eu as utilizo. Estou certo que pode servir para alguém. • getPlayerNameById(id) • getPlayerIdByName(name) • getPlayerID(cid) Créditos a mim mesmo. Abraço!

  24. Salve galera bom eu procurei bastante nos fóruns por ai, podemos dizer que tem muita coisa do tipo, mesmo assim eu resolvi trazer esse conteúdo, achei bem interessante e claro para quem gosta de detalhes como eu vai ser muito útil, espero que gostem. Requisitos Alteração na 050-Functions Caminho: Pasta do servidor/data/lib Ir até o final de tudo dar dois enters e adicionar o seguinte código Spoiler function convertTime(a) if(type(tonumber(a)) == "number" and a > 0) then if (a <= 3599) then local minute = math.floor(a/60) local second = a - (60 * minute) if(second == 0) then …

  25. Started by xFatality,

    Criando suas próprias Runas. Primeiramente aqui vão algumas dicas: -Procure criar boas fórmulas de ataque -SEMPRE edite a cor do ataque da runa (Se é uma explosão, um powerbolt, ataque físico,etc) -Edite a animação de quando a runa acerta o alvo. Bom, vamos começar a criar nossas runas Para editar tudo isso, mantenha o arquivo spell.lua aberto. Ele esta localizado em data/spells/lib. Os ids de runes começam em 2260 (blank rune). Teste os Ids desejados para a criação de runas exclusivas 1- Vá até o spells.xml e crie a TAG da runa <rune name="runa" id="2301" charges="9" maglv="1" mana="0" enabled="1"></rune> 2…

    • 3 respostas
    • 1.3k visualizações
  26. Salve, pessoas. Recentemente criei esse script para meu servidor particular e, embora simples, dá uma margem legal para a criatividade de vocês. Trata-se de um script para dar uma função especial a uma weapon qualquer do seu servidor quando você enfrenta uma criatura específica (ou mesmo um tipo de criatura). Para isso utilizarmos uma função que pega o nome da criatura que você está atacando e verifica se ela pertence à sua tabela de verificação. Caso positivo, sua arma agirá de um modo diferente contra essa criatura específica. O feitio é simples: criar um script no diretório .../weapons/scripts com o nome à sua escolha. Ex: "nome.lua"…

  27. Started by Jeff Owns,

    Olá Galera Hoje Irei Da esse Tutor De quest Então Vamos Lá Vá em data/actions/script. Renomei um arquivo.lua que n estar sendo usado apage tudo que ta dentro.. e adicione isto function onUse(cid, item, fromPosition, itemEx, toPosition) a = 9930 id = 2342 if getPlayerStorageValue(cid, a) < 1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voçe Pegou (a) "..getItemNameById(id)..".") doPlayerAddItem(cid, id, 1) doPlayerSetStorageValue(cid, a, 1) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voçe Ja Pegou Este Item") end return TRUE end Ond tem (a) eh action do seu ot que vc vai bota.. NAO BOTE UMA ACTION JA USA…

    • 2 respostas
    • 1.2k visualizações
  28. 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
  29. Galera acabei de criar um script que baixa e compila o OTserv no Linux, lembrando que está versão é apenas para a distribuição Debian/Ubuntu e suas derivadas... lembrando que eu irei atualizar o código daqui pra frente, então fiquem ligados no GitHub, para onbter o script mais recente... O script é apenas para os preguiçosos de plantão (Assim como eu), ele irá baixar e compilar o otserv automaticamente. O script apenas faz isso, ele não faz mágica, mas é uma boa Fique de olho no projeto oficial. Primeiro baixe os dois arquivos necessários para a compilação: Baixe Aqui Jogue os arquivos na pasta Home, sua pasta deverá ficar assim: Abra o termina…

    • 2 respostas
    • 1.2k visualizações
  30. Started by Eduardo Carvalho,

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

    • 5 respostas
    • 1.2k visualizações
  31. Started by Erimyth,

    É 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.2k visualizações
  32. ja vi varias pessoas com problema na Arena Quest principalmente em ots 9.6 ( Quando voce mata o Boss e mesmo assim nao passa pelo portal pra proxima room) vou mostrar como e simples arrumar o problema basta fazer o seguinte vá na pasta creaturescripts do seu ot e crie um arquivo com o nome arenakill.lua caso ja tenha basta abrir e subistituir o script, logo em seguida adicione o script: e salve o arquivo e feche. depois abra o arquivo creaturescripts.xml e adicione a linha: caso ja tenha nao precisa adicionar, depois de feito esse procedimento ligue o ot e faça a quest que estará funcionando 100% atenção so irá funciona caso vc nao esteja conseguindo passa…

    • 2 respostas
    • 1.1k visualizações
  33. Started by MarceLoko,

    Boa noite! Trago ao fórum um simples porém útil tutorial de manipulação dos valores da database. O uso da database me garante melhor organização das minhas variáveis, em comparação a storages. Por storages você está preso a valores numéricos. Via database, você pode atribuir nomes, utilizar strings, e organizar as variáveis em grupos. Responderei dúvidas conforme for possível. Para inserir uma linha nova em uma tabela db.executeQuery("INSERT INTO `accounts` (`id` ,`name` ,`password`)VALUES ('5', 'marcelo', 'druida');") Neste exemplo, será adicionado na tabela accounts, uma nova conta marcelo/druida. (na verdade a senha é encriptada, mas serve como exem…

    • 6 respostas
    • 1.1k visualizações
  34. Started by Skyligh,

    Ola galera do tk muitos como eu tem um problema na logica da programação lua como eu mais andei lendo uns texto da programação e estou entendendo melhor então vou explica-los +- o resumo dela O que é Lua? Quais as origens de Lua? Como contribuir para a comunidade Lua? Por que escolher Lua? Lua é rápida Lua é portátil Lua é embutível Lua é poderosa (e simples) Lua é pequena Incluir Lua numa aplicação não aumenta quase nada o seu tamanho. O pacote de Lua 5.2.1, contendo o código fonte e a documentação, ocupa 245K comprim…

    • 0 respostas
    • 1.1k visualizações

Quem Está Navegando 0

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

Informação Importante

Confirmação de Termo