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
-
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
-
-
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
- 921 visualizações
-
-
Hoje estou trazendo um script bem simples, mas que é muito divertido.. Uma modificação no script da SD, mas que você pode utilizar em alguma outra rune/spell. O que eu fiz foi modificar para a SD ter uma chance de dar "double hit", nesse caso 20%. Para fazer isso é bem simples, altere o código da sua SD para: Spoiler local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH) …
-
- 4 respostas
- 1.8k visualizações
-
-
snao sei se estou postando na area correta mas, vamos la recentemente encontrei um script de um NPC que troca o nick do seu char por coins, eu procurei aqui no tibiaking mas todos estao quebrados, bugados etc... irei compartilhar aqui de outro forum o script pros senhores caso se interessem Créditos: RazorBlade em data/npc crie um arquivo chamado changenick.lua Spoiler <?xml version="1.0" encoding="UTF-8"?> <npc name="changenick" script="data/npc/scripts/changenick.lua" walkinterval="0" speed="0" floorchange="0"> <health now="100" max="100"/> <look type…
-
- 4 respostas
- 2.2k visualizações
-
-
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 …
-
- 3 respostas
- 1.2k visualizações
- 1 follower
-
-
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
-
-
Fala clã, tudo bom? Então, vi esse tal emote spells em um servidor e decidi fazer, e também, compartilhá-lo com vocês ? O que é? É um código simpleszinho que possibilita players escolherem a cor da mensagem das spells por meio de comando, LARANJA ou AMARELO, como nas imagens abaixo: Spoiler Vamos aos códigos.. abra game.cpp, na função playerSaySpell, procure por: if (result == TALKACTION_BREAK) { if (!g_config.getBoolean(ConfigManager::EMOTE_SPELLS)) { return internalCreatureSay(player, TALKTYPE_SAY, words, false); } else { return internalCreatureSay(player, TALKTYPE_MONSTER_SAY, words, false); } } e…
-
- 9 respostas
- 6.7k visualizações
-
-
Fala clã, hoje irei ensiná-los como agrupar funções em uma classe e usá-las como métodos (similar ao TFS 1.x). Bom, primeiramente o que são métodos? Um método é nada mais nada menos que uma função membro de uma classe, destinadas a serem executadas por objetos instanciados. Bom, não irei se aprofundar no assunto, serei direto. Abaixo segue um exemplo da diferença entre uma função e um método: doPlayerSendCancel(player, 'Hello World') -- Função sendo chamada player:sendCancel('Hello World') -- Método sendo chamado por um objeto 'player' Mas afinal, como utilizar métodos em TFS 0.4? Primeiramente teremos que criar uma lib cha…
- 8 respostas
- 1.6k 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
-
-
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
-
-
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
-
-
Olá pessoal, desejo um ótimo dia para todos, é notório que 90% da galera que tem um servidor com derivado de nto/dbo procuram pelo sistema de Speed Attack igual do NtoBrasil, então hoje venho disponibilizar para vocês, o sistema, eu fiz com a ajuda ADM do ultiimate "LKS", lembrando que o sistema eu testei em uma sources 0.4, alguns amigos meu disseram que funcionou em 0.3.6. Vamos lá, na sua sources procure pelo arquivo : Player.cpp. e procure por : uint32_t Player::getAttackSpeed() { Item* weapon = getWeapon(); if(weapon && weapon->getAttackSpeed() != 0) return weapon->getAttackSpeed(); return vocation->getAttack…
- 11 respostas
- 7.4k visualizações
-
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
-
-
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
-
Olá rapaziada fiz um video ensinando alguns conceitos basicos de C++ e mostrei como criar uma calculadora basicona, fiz esse video com intuito de ajudar e mostrar um pouco desse linguagem que foi ultilizada para fazer o nosso amado tibia :D
-
- 2 respostas
- 740 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
- 676 visualizações
-
-
Olá pessoal do TibiaKing, hoje venho aqui trazer um mini tutorial de como colocar o exhaustion corretamente em suas spells, bastante gente utiliza o exaustion que está no proprio xml, mas por lá acontece alguns erros exemplo: se tiver uma spell com 8000 de exaustion, e outra de 2000 e você vai no seu servidor e usa a spell com 8000 de exhaustion, tem que esperar o tempo dela pra usar qualquer outra, o método que venho trazer aqui ele funciona corretamente e ainda avisa no console quanto tempo falta para usar a spell, sem mais delongas vamos lá! 1- vá até o seu XML procure a magia que quer por o exhaustion exemplo: Spoiler <instant …
-
- 3 respostas
- 2.1k 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
-
- 7 respostas
- 6.4k visualizações
-
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"…
- 2 respostas
- 1.2k visualizações
- 1 follower
-
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
-
-
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
-
-
[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
- 4k visualizações
- 1 follower
-
-
Items UniqueID Olá, pessoal. Tudo tranquilo? Após muito tempo sem publicar nada, resolvi comentar um assunto que pode ser um pouco obscuro, que eu usava bastante mas demorei certo tempo pra entender realmente o que era. Estou falando do UniqueID, os IDs únicos. Alguma vez vocês já se perguntaram como o servidor faz para diferenciar o health potion que você possui em sua backpack, do health potion que outro player acabou de dropar em uma caçada? Pois é! O servidor tem uma forma bem simples e inteligente de distinguir um item do outro. Ele atribui a cada item um número único, que funciona como a digital do item. Dessa forma, q…
- 4 respostas
- 2.5k 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
-
-
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
- 560 visualizações
-
-
E ai galera do TK tudo bem? Bom venho trazer a vocês este tutorial compilando o TFS 1.2 em windows x32 ou x64 bit com Microsoft Visual Studio 2015. Então vamos lá: 1ª Baixe os programa primeiro: Visual Studio 2015 -> MSVC 2015 (compilador) TFS Sdk 3.2 -> Sdks 3.2 (libs) Boost MSVC 2015 -> (32-bit, 64-bit) 2ª Instale os Programa: Primeiro o Boost 32bit ou 64bit. Imagem: 3ª Agora extraia o arquivo tfs-sdk-3.2. Imagem: 4ª Pronto depois de ter feito isso agora abra a pasta da source e depois a pasta vc14 e abre o theforgottenserver. Imagem: …
- 21 respostas
- 12.4k visualizações
- 1 follower
-
Olá pessoal, estava atrás dessa função doPlayerOpenChannel para tfs 0.4. O que essa função faz ? é simples essa função eh inserida em seu login.lua assim fazendo abrir um Canal tipo Help auto open e configurado. Ó vamos precisar da source para versão 8.60 tfs 0.4. primeiramente vamos abrir o arquivo LuaScript.cpp. Procura: //getChannelUsers(channelId) lua_register(m_luaState, "getChannelUsers", LuaInterface::luaGetChannelUsers); add em baixo: //doPlayerOpenChannel(cid, channelId) lua_register(m_luaState, "doPlayerOpenChannel", LuaInterface::luaDoPlayerOpenChannel); procura: int32_t LuaInterface::internalGetPlayer…
-
- 9 respostas
- 3.1k visualizações
- 1 follower
-
-
Resolvi fazer este tutorial porque os que que encontrei estavam muito confusos e não entendi certas coisas. Programas utilizados: ObjectBuilder: http://www.4shared.com/rar/XsT3Kkgsba/ObjectBuilder034.html ItemEditor: http://www.4shared.com/file/232461654/31f90261/otitemeditor037.html [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. …
-
- 10 respostas
- 5k visualizações
- 1 follower
-
-
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
-
-
Bom pessoal estarei aqui lhe ensinando como aumentar os efeito de /x aqueles efeitos de distancia tipo bolt. Então vamo começar, vá em CONST.H e ache enum ShootEffect_t rolando pra baixo terá o efeito SHOOT_EFFECT_CAKE = 0x29, //41 add embaixo o novo efeito ficando SHOOT_EFFECT_NOVO1 = 0x30, //42 SHOOT_EFFECT_NOVO1 = Nome do efeito 42 que dei 0x30 = id do efeito todo efeito deverar ser +1 no cado efeito 43 terá que ser 31 //42 = Numero do efeito pra falar no /x 42 agora final troque …
- 3 respostas
- 1.8k visualizações
- 1 follower
-
Compilando OTServer em Linux (Testado em Debian7 e Ubuntu14.04) Olá TibiaKing! Venho trazendo um tutorial muito útil para aqueles que não faz a mínima ideia de como compilar um OT de uma forma simples! Funciona somente com sources de TFS 1.x Primeiro de tudo, você tem que ter a Source e o OT que deseja compilar. Então 'LETS GO'! Programas para instalar PuTTY para conectar via SSH. (aqui) FilleZila Client para ter acesso aos arquivos da máquina. (aqui) Começando Ao instalar os programas, abra o Fillezila. Em Host, Nome de Usuário, Senha, Port (padrão 22), coloque oque te passaram pelo email…
-
- 11 respostas
- 8.1k visualizações
- 1 follower
-
-
Fala pessoal, olha eu aqui novamente. Hoje eu vou explicar como funciona a tal respawn automático (chamada raids) que serve para todo tipo de servidor e a configuração é tudo para que possa funcionar perfeitamente! Agora algumas dicas para que seu sistema funcione perfeitamente. *Vocês precisa saber sobre o nome monstro que vai nascer a posições e o horário. *Verifique se o monstro está sendo sumonado pelo /m para que ele possa aparecer quando o scripts da raids for chamado pelo globalevents. *Aqui va umas parte que iremos configurar para quem não sabe muito do inglês vaja abaixo. Em Português = Em Inglês …
- 8 respostas
- 2.3k visualizações
- 2 followers
-
Fala galera, sou o [ADM]Harlock do Pokémon Undewater, e hoje vim mostrar a vocês como por acentos quando estiver editando seus scripts. Por exemplo: Você vê; Você está vendo; Está carregando, Pokémon.1- Primeiro baixe o Notepad ++ (Clique aqui) Escolha um Script para editar: local pokes = { ["Charmander"] = {level = 16, go = "Vai Charmander", back = "Volte Charmander."}, ["Charmeleon"] = {level = 35, go = "Vai Charmeleon", back = "Volte Demon."}, ["Charizard"] = {level = 75, go = "Vai Dragon Lord", back = "Volte Dragon Lord."}, ["Mewtwo"] = {level = 8, go = "Vai Mewtwo", back = "Volte Mewtwo"}, } local msgunica = false function onUse(cid, item, frompos, …
-
- 2 respostas
- 1.7k visualizações
-
-
Olá, hoje venho trazer o mais simplificado possível para você aprender a fazer seus itens vips o mais simples possível. Servidor: Styller Yourots 0.7.5 TFS: 0.4 Tibia: 8.6 Primeiramente, você deve escolher os itens que quer transformar em Itens Vips. Vamos utilizar os mais Simples possíveis. aqui você verá o set completo. Helmet, Armor, Legs e Boots. que escolhi para fazer, tendo ID e Imagem do Item! Spoiler You see a pirate hat (Arm:3). It weighs 12.50 oz. ItemID: [6096] You see a pirate shirt (Arm:3). It weighs 20.00 oz. ItemID: [6095] …
- 6 respostas
- 6.1k visualizações
Quem Está Navegando 0
- Nenhum usuário registrado visualizando esta página.