Ir para conteúdo
Banner com Efeitos

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

    Bom galera, o Tópico já diz tudo, irei explicar como mudar para Uint16 dessa vez nas Source, para quem não sabe. Irei explicar como aumentar em Magic Effects, para assim você seu Server usar mais de 255, e ShootEffects para usar mais de 41 Distance efeitos(muito mais). Existe Tópicos no Tk, porém não é a mesma coisa, esse é diferente pois você irá alterá o valor dos uint's disparados para o Client, para assim então usar além do Padrão! Abaixo umas informações essenciais ! Esse Tópico é especifico para TFS 0.4, para que assim você possa aumentar o limite de efeitos no Client, e usar mais de 255 efeitos, e mais de 41 efeitos em Distância. Vale lembra também qu…

  2. Started by Shawii,

    Edit: não sei se estou na sessão certa, sou novo por aqui, se não estiver por favor me mova E ae! Fazia um bom tempo que não mexia com OT scripting, então para me ajudar, fiz um autocomplete e Highlight (marca as funções com cores diferentes) das funções que achei no tópico Lista de Funções LUA Não é uma coisa que se diga "NOOOSSA QUE FODA MALUCO DO CÉU", mas pode ajudar algumas pessoas que assim como eu não estão acostumadas com o nome das funções do TFS. Parte 1 - Adicionar o Autocomplete: Para adicionar o autocomplete basta pegar esse código: - Vá até o diretório Notepad++\plugins\APIs na pasta onde foi instalado o notepad++ - Copie qu…

  3. Started by xWhiteWolf,

    Fala galera do TK, hoje eu vim trazer pra vocês uma coisa que se perdeu em todos esses anos de OT e que é uma das coisas mais importantes prum scripter intermediário/avançado. São as explicações dos respectivos callbacks de creaturescripts. Espero que ajude bastante gente Créditos: 90% Zonnebloem (um gringo ai que postou isso das sources) e 10% pra mim por completar oque ele não tinha escrito e arrumado umas coisas que ele escreveu errado. ____________________________ CREATURE EVENTS TIPOS: _________________ TFS 0.2 type="login" function onLogin(cid) type="logout" function onLogout(cid) type="advance" function onAdvance(cid, skill, oldLev…

  4. Started by Killua,

    Usando addEvent O uso do addEvent tem inúmeras utilidades e pode ser complicado para algumas pessoas, inclusive era para mim quando eu estava começando a aprender LUA. Para que serve o addEvent? Para "chamar" uma função após um periodo de tempo, ou seja, executar uma função após um tempo estipulado. O addEvent tem como parâmetros: callback, delay e ... addEvent(callback, delay, ...) Onde callback é a função que será chamada, delay é o tempo (em milissegundos) até que se chame essa função e ... são os parâmetros que a função chamada utiliza. Exemplo: addEvent(doBroadcastMessage, 1000, "Bom dia", 23) Aqui, após 1 segundo (1000 ms), a função doBroadcastM…

    • 5 respostas
    • 17k visualizações
  5. Started by MaXwEllDeN,

    Quer aprender a programar em Lua? Sugiro que você comece olhando esses tutoriais escritos por Urso Mock, Suricato Notorious e Raposa Skyen Hasus. Já leu todas as aulas anteriores e acha que você já está apto a criar seus próprios Scripts? Boa! Agora é hora de por suas habilidades em prática. Leia esses tutoriais: Outros Tutoriais: Avançado:

    • 31 respostas
    • 17.9k visualizações
  6. Started by thalia,

    Bom galera, tudo certo? XD Então galera, como todo mundo me pedia ajuda com scripts, decidir criar um canal no youtube focado bastante em como se tornar um script, no canal vai ter videos ensinando "scriptar" e como interpretar um script... enfim! Se inscrevam no canal e ajude a divulga-lo galera! muito obrigado a sua atenção, aqui vai o link do canal junto com o primeiro vídeo! Canal: http://www.youtube.com/user/NWEnsina #1 Vídeo - OT Scripting #1 - function onUse, if/else. Explicando Script #1 - Talkaction trocar 1kk por X [TK] Site/Bl…

  7. Started by Renato,

    ACTIONS onUse(cid, item, fromPosition, itemEx, toPosition) onLogin(cid) onLogout(cid) onAdvance(cid, skill, oldLevel, newLevel) onStatsChange(cid, attacker, type, combat, value) onDirection(cid, old, current) onOutfit(cid, old, current) onSendMail(cid, receiver, item, openBox) onReceiveMail(cid, sender, item, openBox) onTradeRequest(cid, target, item) onTradeAccept(cid, target, item, targetItem) onJoinChannel(cid, channel, users) onLeaveChannel (cid, channel, users) onLook(cid, thing, position, lookDistance) onThink(cid, interval) onTextEdit(cid, item, newText) onReportBug(cid, comment) onAreaCombat(cid, tileItem, tilePosition, isAggressive) …

    • 8 respostas
    • 6.1k visualizações
  8. Started by Kimoszin,

    Ola gaaaaaaalera, é com muito prazer que venho trazer esse primeiro tutorial meu como Aprendiz do TibiaKing, Spells: Bom, spells sao as magias do nosso servidor, elas servem tanto para healar, atacar, dar suporte e etc ... Criar magias é algo muito simples, vc mesmo poderam criar quantas magias quiserem para o seu servidor seguindo esse tutorial, Muito bem, vamos começar ... Spells de Curar (Healing) Fazendo a sua Spell Nao precisamos mecher aqui Aqui sera, oque vai acontecer Aqui é o effect que saira quando o player usar a spell A spell nao vai agressivar, assim podendo ser usada em areas PZ Aqui sera um Extra, a…

  9. Started by Erimyth,

    Lista de Funções LUA Aqui está um lista feita pelo elf com todas, ou quase todas as funções lua para o TFS. Tenho certeza que ela será útil para muitos scripters. 1. Funções #get getCreatureHealth(cid) //retorna o valor hitpoints do player ou monstro getCreatureMaxHealth(cid) //retorna o valor máximo de hitpoints do player ou monstro getCreatureMana(cid) //retorna o valor manapoints do player getCreatureMaxMana(cid) //retorna o valor máximo de manapoints do player getCreatureMaster(cid) getCreatureSummons(cid) //retorna em array os summons do player ou monstro getCreatureOutfit(cid) //retorna o outfit do player getCreaturePosition(cid) //retorna a posição em array d…

  10. Started by Erimyth,

    ATENÇÃO! Este tutorial foi feito pelo tibiaa4e, portanto os créditos são 100% dele! Parte I – Básico do básico de Lua Começaremos por LUA porque é uma linguagem simples, que não precisa declarar variáveis e tudo mais. Aqui não explicarei as funções do otserver e sim como montar um script. Nessa primeira parte usarei o Português Estruturado que sinceramente não é útil quando você aprende a sintaxe da linguagem, porém é ótimo para você que está começando aprender o que está fazendo e não só copiando e colando. LEMBRANDO QUE PORTUGUÊS ESTRUTURADO NÃO É UMA LINGUAGEM É APENAS UM JEITO DE VOCÊ ENTENDER A SINTAXE DAS LINGUAGENS. Começando vamos explicar a sintaxe de um…

  11. 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

  12. 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…

  13. Olá a todos! Estou aqui para ajudar no desenvolvimento de scripts para servidores de jogos baseados em OTS (Open Tibia Server). Se você precisa de algum script para o seu servidor e quer exercitar suas habilidades de programação, fique à vontade para enviar seus pedidos. Vou tentar ajudar da melhor forma possível. Para facilitar a comunicação, por favor, siga as diretrizes abaixo ao fazer seu pedido de script: Título do pedido: Comece seu pedido de script com um título claro e descritivo que resuma o que você está procurando. Por exemplo: "[Pedido de script - DataPackArea - Actions] Sistema de eventos automatizados". Descrição do script…

  14. 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…

  15. A Organização O Projeto Olá venho aqui fornecer a todos um repositório que estou começando fazer code views de todos os códigos lua que julgar interessante para um sistema de RPG Este é o local onde podem ser vistos os PR e os CodeReviews. Fiquem livres para utilizar os códigos da melhor maneira possivel. Quer interagir? bom então eu te convido a fazer parte da organização deixando seu nick no github aqui em baixo ou me mandando uma pm! todos serão bem vindos! PRS Me ajude a desenvolver criando um Issue e fazendo seu pedido, tente preencher todas as lacunas ao fazer o pedido para não gastarmos tempo com issues inúteis Usando este repos…

  16. Started by Sun,

    ~ 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…

  17. 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
    • 853 visualizações
  18. 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. …

  19. Started by Lurk,

    Fiz essa spell a pedido de um usuário do fórum e logo depois outro usuário pediu uma versão onde o target do player afetado pela magia ficasse bloqueado por um tempo configurável, gostei da ideia e decidi postar em forma de tópico. Primeiro de tudo você vai precisar dessa função feita/disponibilizada pelo @WooX (não se esqueçam de passar no tópico dele e agradecer) Em data/spells.xml adicione <instant name="Cancel Enemy Target" words="Cancel Enemy Target" lvl="12" mana="20" range="3" blockwalls="1" needtarget="1" exhaustion="2000" needlearn="0" event="script" value="canceltargetlurk.lua"> <vocation id="1"/> <vocation id="2"/> </ins…

  20. 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.4k visualizações
  21. 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
    • 971 visualizações
  22. Esse sistema foi feito utilizando a source disponibilizada neste link Pode funcionar em TFS 0.4, OTX 2.X e, talvez, em TFS 0.4 só que a probabilidade erros é maior por ter diferentes nomes de funções e variáveis. Fiz um vídeo seguindo o passo a passo abaixo para facilitar o processo de instalação do sistema. Hoje estarei ensinando a instalar os seguintes novos atributos/sistemas em sua source CriticalHitChance e DodgeChance -- (Funciona da mesma maneira que o critical básico de script, porém sem bugs de callstack) Life e Mana Absorb -- (Regenera, de acordo com a % atribuida, a partir de dano recebido) Life e Mana Leech -- (Regen…

  23. [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…

  24. [TESTADO EM OTX 2.1+] 8.60 Spoiler Opa, tudo bem? Resolvi fazer esse tutorial de como adicionar o Loot Channel em suas sources. <<< Exemplo de como vai ficar Primeiramente vá em configmanager.cpp e procure por: m_confNumber[START_LEVEL] = getGlobalNumber("newPlayerLevel", 1); Abaixo adicione: m_confNumber[LOOT_CHANNEL] = getGlobalNumber("lootChannelId", 11); Agora vá em configmanager.h e procure por: START_LEVEL, Abaixo adicione: LOOT_CHANNEL, Feito isso, vá em party.cpp e procure por: …

    • 15 respostas
    • 7.2k visualizações
  25. Started by Beaterytb,

    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
    • 536 visualizações
  26. Started by Standard,

    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
    • 481 visualizações
  27. 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
  28. 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
    • 438 visualizações
  29. Started by Lyu,

    Olá TK, hoje venho publicar um sistema bem interessante que venho mexendo há algumas semanas, estou falando do Cam System, um sistema de nível avançado que coleta packets durante a jogatina e forma uma gravação daquele momento, onde você poderá assistir à essa gravação quantas vezes quiser, como um replay, porém o sistema está limitado somente para fins de estudos e curiosidades. Não recomendo utilizar em seu servidor, pois como está limitado, também está rodando dentro do TFS e pode pesar, já que não tive tempo para otimizá-lo e criar um server próprio somente para assistir às gravações. Também não está serializando/deserializando em arquivos.cam, está salvando na memóri…

    • 2 respostas
    • 1.9k visualizações
  30. 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
    • 846 visualizações
  31. Started by ZoR,

    Olá,participo do tibiaking faz muito tempo e nunca tive vontade de aprender LUA até alguns dias atrás. começei a estudar 2 - 4 horas,assisto videos, leio artigos do lua.org, leio tutoriais aqui do tibiaking, em outros lugarem também. porém fico com bastante duvidas, até tenho uma amigo muito bom mesmo com os LUA e outros estilos de linguagem,porém nem toda hora ele pode me ajudar. se alguém puder me ajudar com as duvidas que tenho ficarei muito muito grato mesmo!! 1 - como posso últilizar tabelas? vejo muitos script aqui no tibiaking que possuem tabelas mas não últilizam da função table.insert, ou de outra função table alguém pod…

    • 9 respostas
    • 2.6k visualizações
  32. 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
    • 922 visualizações
  33. 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
  34. É o seguinte galera, vocês vão ter que ir em: /data/creaturescripts/pokeexp.lua PARA EDITAR O EXP QUE O PLAYER GANHA QUANDO MATA POKEMONS: procurem por: playerAddExp(pk, expTotal) e depois disso do lado da variavel expTotal vocês botam '/' que significa dividir, no caso vai ser expTotal dividido por o numero que você quiser. Vou botar 10 de exemplo playerAddExp(pk, expTotal / 10) e salvem ai no caso se um ratata tiver dando 20k de exp ele agora vai tar dando 2k de exp graças a essa divisão. Mas ai vocês escolhem o numero que vcs querem dividir. PARA EDITAR EXP QUE SEU POKEMON GANHA AO MATAR POKEMONS…

    • 8 respostas
    • 3k visualizações
  35. 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…

Quem Está Navegando 0

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

Informação Importante

Confirmação de Termo