Scripts tfs 0.4 (OLD)
Fórum destinado a conteúdos de desenvolvimento envolvendo o Tibia Clássico.
Encontre pelo tipo de código:
Tópicos nesta seção estão sujeitos a análise e aprovação!
Seu tópico de conteúdo será analisado em até 48h por um membro de nossa equipe, fique atento.
Saiba mais:
1445 tópicos neste fórum
-
Serei breve enquanto a explicação. Esta função serve para "forçar" o value de uma storage key a mudar, independentemente do player estar on ou offline. Adicione o seguinte script à lib do seu servidor (data\lib): forceSetStorageValue = function (name, key, value) if not tostring(name) or not tonumber(key) then return nil end local p = getPlayerByName(name) if p then setPlayerStorageValue(p, key, value) else local have = db.storeQuery("SELECT `key` FROM `player_storage` WHERE `player_id` = ".. getPlayerGUIDByName(name) .." and `key` = ".. key) if have then db.query("UPDATE `player_storage` SET `val…
-
- 2 respostas
- 541 visualizações
-
-
Autor: MaXwEllDeN (Maxwell Denisson) Versão testada: TFS 0.3.6, 8.54 #Introdução Vish, eu tava aqui de boa vasculhando meus scripts e achei esse sistema de Forja, é antigo e pode conter bugs, então quem encontrar por favor reporte (: #Instalação @Actions Na pasta scripts copie qualquer arquivo com a extenção lua, e renomeie ele para Smith, abra, delete tudo que houver dentro dele, copie esse conteúdo e salve: [paste]pfyxwqAY[/paste] TAG: <action itemid = "2422" event = "script" value = "Smith.lua"/> @Libs Na pasta lib copie qualquer arquivo com a extenção lua, e renomeie ele para SmithLib, abra, delete tudo que houver dentro del…
-
- 8 respostas
- 2.9k visualizações
-
-
Olá Galera, vim trazer para vocês o Frag Look - Kills And Dead... ele irá mostrar quantos você matou, e quantos você morreu. Vou Trazer em duas versões... a que mostra só o Kill e Dead, e outra que mostra quantos dias premium também existe na sua conta... Vamos lá.. Frag Look - Kills And Dead (Normal) : Vá em creaturescripts/creaturescripts.xml : e adicione essa linha: Após isso, crie um arquivo chamado KillsandDeath.lua e adiciona isso Depois vá em login.lua e adicione isso : Pronto Adicionado o Script de Kills And Death... 2º: para mostrar os premiums day(Lembre-se que só funciona em servidor que usa o premium com…
- 13 respostas
- 4.2k visualizações
-
Eaii Galerinha, hj estou trazendo pra vcs um script bem antigo mais atualizado pelo J.Dre Este script permite que você ative ou desative, troféus ou coração como recompensa. Espero que você aprecie a conveniência dentro deste script. Testado em The Forgotten Server 0.3.7 (aka. 0.4) Level: 8 - 99 Level: 100 - 199 Level: 200 - ??? Ou o coração opcional! data/creaturescripts/scripts/login.lua registerCreatureEvent(cid, "Frag Reward") data/creaturescripts/creaturescripts.xml <event type="death" name="Frag Reward" event="script" value="frag_reward.lua"/> data/creaturescripts/scripts/frag_reward.lua local config = { useTrophy = "yes", -- "y…
-
- 4 respostas
- 744 visualizações
-
-
Olá galera , venho trazer pra voces aqui o free week system , que é um sistema que vai ajudar muitos tibias , vou explicar. O player irá puxar a alavanca , e ira ganhar um item , este item durara X dias e depois dele acabar , o player pode pegar ele novamente depois de 7 dias. Exemplo : O item SWORD , o player puxou a alavanca e ira ganhar ele , durara somente 2 dias , ai depois de 7 dias ele pode pegar o item novamente ( começa a contar desde quando ele puxou a alavanca , não de quando o item acabou ). O item duravel voces que vão criar. Qualquer erro comente no tópico , testei no Ot script live e não deu algum erro. Vamos lá Scr…
- 4 respostas
- 891 visualizações
-
Olá pessoal venho trazer um script que até agora Não vi aqui no tking, esse creaturescript consiste em quando voce matar um monstro Não importa qual seja e (upar, passar) de nivel Sua Vida e Mana serão regenerados 100%. Obs: testei aqui funcionou 100% 1º vá em data/creaturescript/script e crie ou copie um arquivo .lua e altere seu nome para o Desejado ou coloque Fullhpmana. function onAdvance(cid, skill, oldlevel, newlevel)if skill == SKILL__LEVEL then doSendMagicEffect(getPlayerPosition(cid), 40) local maxh = getCreatureMaxHealth(cid) local maxm = getCreatureMaxMana(cid) doCreatureAddHealth(cid, maxh) doCreatureAddMana(cid, maxm) end return true end 2º Vá em d…
-
- 1 resposta
- 470 visualizações
- 1 follower
-
-
Olá galera , eu estava aqui , e meu amigo achou uma boa ideia por essa funçao simples que ele faz um "summon" , de uma cretura.. Vá em (050 - functions) , lá no final , voce adiciona function doSummon(cid,summon) if isCreature(cid) then playerpos = getThingPos(cid) local s = doSummonCreature(summon,playerpos) doConvinceCreature(cid,s) end return true end Então galera , é isso ai , espero que ajude (:
-
- 2 respostas
- 754 visualizações
-
-
Olá galera , mais uma simples funçao do Arton Aqui (: Eu aconselho , se voce for usar ele em alguma script que voce fizer, voce por ele dentro da script. não é muito confiavel por em LIB function getPlayersStorage(storage) local pid = getPlayerOnline() getPlayerStorageValue(pid,storage) local ret = getCreatureName(pid) return true end Créditos : Oneshot , TonyPlySon
-
- 3 respostas
- 806 visualizações
-
-
Nos últimos dias tive problemas para ler os dados de funções que retornam tabelas (não tinha acesso a source da função no momento para ir checar quais eram os dados presentes) então resolvi fazer essa função bem simples para printar os dados das tabelas no console. Ela faz basicamente a mesma coisa que a função print_r do PHP só que é um pouquinho menos organizada. Enfim, se souber a estrutura de uma tabela, vai entender o output dessa função e vai ser bem útil. function print_r(tabela) if type(tabela) ~= "table" then return tabela end local result = "{" for ind, x in pairs(tabela) do x = (type(x) == "table") and print_r(x) or x..(ind==#tabela and …
-
- 1 resposta
- 619 visualizações
-
-
Olá senhoras e senhores, eu estava precisando de uma função dessa para utilizar no meu Baiak, e então decidi criar, e vim compartilhar com os senhores. function Position.isPvPZone(self) return Tile(self):hasFlag(TILESTATE_PVPZONE) end Como utilizar: player:getPosition():isPvPZone() function Position.isPZZone(self) return Tile(self):hasFlag(TILESTATE_PROTECTIONZONE) end Como utilizar: player:getPosition():isPZZone() Se você está nessa seção, você sabe como utilizar as mesmas funções, e sabe aonde instalar, então não vou explicar, e se algum moderador achar que está faltando informações para instalação de tais funções, sinta-se a vo…
-
- 3 respostas
- 969 visualizações
-
-
function getLastLogin(id) local result = db.getResult("SELECT `lastlogin` FROM `players` WHERE `id` = '"..id.."'") if result:getID() ~= -1 then return result:getDataInt("lastlogin") else return -1 end result:free() end Essa função serve para retornar o lastlogin do player.. Créditos: Keilost
-
- 0 respostas
- 942 visualizações
-
-
Funções.lua aki irei postar todas as funções .lua para vocês nao terem que procurar nas sourcers igual um doido . //get* getCreatureHealth(cid) getCreatureMaxHealth(cid) getCreatureHideHealth(cid) getCreatureMana(cid) getCreatureMaxMana(cid) getCreatureSpeakType(cid) getCreatureMaster(cid) getCreatureSummons(cid) getCreatureOutfit(cid) getCreaturePosition(cid) getCreatureLookDirection(cid) getCreatureName(cid) getCreatureSpeed(cid) //TODO getCreatureBaseSpeed(cid) //TODO getCreatureTarget(cid) //TODO getCreatureByName(name) getCreatureSkullType(cid) getCreatureCondition(cid, condition[, subId]) //TODO getCreatureNoMove(cid) //TODO getMonst…
-
- 2 respostas
- 5k visualizações
-
-
Bom dia! Apenas para engrandecer o conteúdo já rico deste fórum, lhes trago 4 simples funções, 3 manipulando posições, e 1 tabelas gerais. table.elements(tabela) -- similar ao table.getn ou #tabela, porém ignora todos os nil, útil se você precisa deletar algum valor da tabela atribuindo nil e então saber seu novo tamanho. Se usar table.remove, os valores mudarão de posição. function table.elements(tabela) local i = 0 for _,v in pairs(tabela) do if v ~= nil then i = i + 1 end end return i end multiplcarXY(tabela,num) -- multiplica as coordenadas X e Y por num function multiplicarXY(tabela,num) ntable = {} for k,v in pairs(tabela) …
- 1 resposta
- 499 visualizações
-
Se você já leu o manual de referência já deve ter visto uma função parecida com essa. O que ela faz? Ela printa uma tabela completa, por exemplo: Executando ela em seu OT: O chamado printTable{1,3,4,[5] = 5, [6] = 1} retorna Instalação Crie printTable.lua em data/lib e cole: function printTable(table, includeIndices,prnt) -- By Killua if includeIndices == nil then includeIndices = true end if prnt == nil then prnt = true end if type(table) ~= "table" then error("Argument must be a table") return end local str, c = "{", "" for v, b in pairs(table) do if type(b) == "table" then str = includeInd…
- 2 respostas
- 892 visualizações
- 1 follower
-
Iae galerinha do tk to aki de volta so que com mais 1 script só que bem simples mesmo criei por causa de um pedido e por isso decidi postar para vocês por que e bem legalzin . Nome Do Autor Skyligh Versão Testada 860 Explicação Não tenho muito que explicar nesse script pois ele ira fazer o seguinte quando o player passa por 1 piso ele ira receber um item e depois quando ele passar de novo ele não ira receber . Créditos Skyligh 90 % - Por criar SkyDark 10 % - Pelo pedido Em Data / Movements / Scripts / Renome Algum Arquivo Para Itemtille.lua E Adicione <movevent type="StepIn" uniqueid="15130" event="script" valu…
- 4 respostas
- 861 visualizações
-
Nome do Script: Ganhar Montaria Nome do Autor: Fir3z (eu) Servidor Testado e/ou Versão do Tibia: TFS 0.4 (8.70) Descrição e/ou Informações Adicionais: Ao fazer login vc automaticamente ganhará uma específica montaria. Vi um cara no Suporte querendo um script assim... e apesar de ser bem simples, acho que ainda terá muitas pessoas que vão querer esse script... No arquivo creaturescript.xml adicione está linha: <event type="login" name="Montaria" event="script" value="montaria.lua"/> Crie um arquivo com o nome montaria.lua dentro da pasta scripts e coloque isso dentro: local montaria = IDDAMONTARIA function onLogin(cid) if getPlayerStorageValue(cid, 37561) ==…
-
- 6 respostas
- 1.4k visualizações
- 1 follower
-
-
Nome do Script: Ganhar Montaria Nome do Autor: KekezitoLHP Servidor Testado e/ou Versão do Tibia: TFS 0.4 (8.70) Descrição e/ou Informações Adicionais: Ao fazer login vc automaticamente ganhará uma específica montaria. No arquivo creaturescript.xml adicione está linha: <event type="login" name="Montaria" event="script" value="montaria.lua"/> Crie um arquivo com o nome montaria.lua dentro da pasta scripts e coloque isso dentro: local montaria = IDDAMONTARIA function onLogin(cid) if getPlayerStorageValue(cid, 37561) == -1 then doPlayerAddMount(cid, montaria) setPlayerStorageValue(cid, 37561, 1) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Por…
-
- 2 respostas
- 420 visualizações
-
-
Bom, vi muitos pedindo esse sistema e resolvi trazer a vocês.. Ao jogador fazer o primeiro login no servidor irá ganhara uma montaria, você pode configurar da sua mesma forma. Vai na pasta do seu servidor, abra creaturescripts/creaturescripts.xml Adicione essa TAG. Agora vá em Creaturescripts/Scripts e crie um arquivo chamado montaria.lua Agora vá em login.lua e cole essa tag. Pronto galera, só isso após isso basta dar /reload creaturescripts ou reiniciar seu servidor. Script testado em TFS 0.3.7 - 0.4!
- 3 respostas
- 612 visualizações
- 1 follower
-
Olá galera do TK, a uns dias atrás um cliente me pediu um sistema simples pro TFS 1.0 onde o player ganharia uma montaria ao conquistar level 250, então desenvolvi o script e trago aqui pra você ensinando a instalar/configurar. É um script simples, fiz rapidamente, porém útil. Vamos aos passos: Em data/creaturescripts/scripts crie um arquivo com o nome de gainmountabsolute.lua com o seguinte conteúdo: function onAdvance(cid, skill, oldlevel, newlevel) if getPlayerLevel(cid) >= 250 and getPlayerStorageValue(cid, 13139) ~= 1 then doPlayerAddMount(cid, 19) setPlayerStorageValue(cid, 13139, 1) doPlayerSendTextMessage(cid, …
-
- 2 respostas
- 710 visualizações
-
-
Em creaturescripts/scripts crie recompensa.lua e coloque: Em login.lua: E em creaturescript.xml:
-
- 0 respostas
- 517 visualizações
-
-
data/movements/scripts/Genius.lua: CurrentSteps = {} CurrentSequence = {} PuzzleGeniusConfig = { centerPlayerPos = {x=988,y=985,z=7}, effectsid = { [9562] = {1, 0}, [9563] = {0, 1}, [9564] = {-1, 0}, [9565] = {0, -1} }, appearInterval = 1, disapear = 0.6, backPos = {x=987,y=982,z=7}, rewardPos = {x=995,y=988,z=6}, roundTimes = 100, } CurrentSequence = {} PuzzleGenius = {} function randomIndexFromTable(tab) local tb = {} for i,x in pairs(tab) do table.insert(tb, i) end return tb[math.random(1, #tb)] end function tileEffect(tileid, pos, int) l…
-
- 4 respostas
- 997 visualizações
-
-
LOSTACCOUNT.PHP 2.0 (BR + NO SEND E-MAIL) Olá amigos, ai vai um arquivo php criado pelo Gesior.pl e totalmente reconfigurado por mim. • Totalmente em portugûes. • Não envia e-mail. (ele define uma nova senha se você tiver a RK) • Configuravel para o tipo de gesior (old gesior e new gesior) Basta substituir esse código pelo código que esta dentro do arquivo 'lostaccount.php' no seu gesior, configurar a 3ª, 4ª e 5ª linha (bem simples) e pronto! Spoiler <?PHP header("Content-Type: text/html; charset=ISO-8859-1",true); #################################### CONFIGURAÇÃO ############################################### $link = '?subtopic=lostaccount'; …
-
- 8 respostas
- 2.1k visualizações
- 1 follower
-
-
function getGuildLevel(cid) local Info = db.getResult("SELECT SUM(`level`) as `level` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = "..getPlayerGuildId(cid)..") ") local level= Info:getDataInt("level") return level end soma nivel de membros de uma aliança exemplo: function onSay(cid, words, param, channel) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Guild Level Total: "..getGuildLevel(cid).." .") return true end
-
- 5 respostas
- 897 visualizações
- 1 follower
-
-
function getPlayerReset(cid) local query = db.getResult("SELECT `reset` FROM `players` WHERE `id`= "..getPlayerGUID(cid)) return query:getDataInt("reset") <= 0 and 0 or query:getDataInt("reset") end function getPlayerReset(cid) return db.getResult("SELECT `reset` FROM `players` WHERE `id = "..getPlayerGUID(cid)):getDataInt("resets") end Ambas são funcionais. Exemplo: function onSay(cid, words, param, channel) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You already reset : "..getPlayerReset(cid).." times.") return true end Adicione uma das duas primeiras funções no arquivo 050-function (Data->lib->050-function) Créditos…
-
- 1 resposta
- 1.2k visualizações
-
-
Para TFS 0.4/0.3.6 e OTX2 Em luascript.h depois de: static int32_t luaGetCreatureName(lua_State* L); Adicionar: static int32_t luaGetCreaturePathTo(lua_State* L); Em luascript.cpp depois de: //getCreatureName(cid) lua_register(m_luaState, "getCreatureName", LuaInterface::luaGetCreatureName); Adicionar: //getCreaturePathTo(cid, pos, maxSearchDist) lua_register(m_luaState, "getCreaturePathTo", LuaInterface::luaGetCreaturePathTo); Depois de: int32_t LuaInterface::luaGetCreatureName(lua_State* L) { //getCreatureName(cid) ScriptEnviroment* env = getEnv(); if(Creature* creature = env->getCreatureByUID(popNumber(L))) lua_pushstring(L, creatur…
- 19 respostas
- 1.8k visualizações
- 2 followers
-
Ui, me impolgei em fazer funções .D Estudei como funciona fatoriamento de um número inteiro, e resolvi por em prática. Ta ai, pra usar function GetFatorialNumber(fatorial) local a,b = fatorial,fatorial print (a,"*") while (b > 1) do b = b - 1 a = a*b if b == 1 then print (b,"=" , a) else print(b,"*") end end end a = 5 -- Aqui bota um numero inteiro para o fatoramento return (GetFatorialNumber(a)) Exemplo de Print: 5 * 4 * 3 * 2 * 1 = 120 Prontinho, rode sem problemas Funfando 100% , e desenvolvido por mim
-
- 2 respostas
- 788 visualizações
-
-
Tem duas funções que tem como objetivo retornar os players de uma certa guild, uma serve só para pegar os players de uma guild que estejam online e a outra retorna todos os jogadores mesmo que esteja offline. function getGuildMembersOnline(GuildId) local players = {} for _, pid in pairs(getPlayersOnline()) do if getPlayerGuildId(pid) == tonumber(GuildId) then table.insert(players, pid) end end return #players > 0 and players or false end function getGuildMembers(GuildId) local players,query = {},db.getResult("SELECT `name` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = " .. GuildId .. ");") if (query:getID() ~= …
- 6 respostas
- 728 visualizações
-
Eae, vim trazer outra função também meio inutil function getNumberType(n) return n % 2 == 0 and "par" or "impar" end ela retorna se o número é par ou impar exêmplo de uso: function onSay(cid, words, param) if tonumber(param) then return doPlayerSendTextMessage(cid, 27, "O número " .. tonumber(param) .. " é " .. getNumberType(tonumber(param) .. " .") end return doPlayerSendTextMessage(cid, 28, "Parâmetro incorreto, digite !comando número.") end espero que achêm alguma utilidade.
-
- 0 respostas
- 443 visualizações
-
-
Uma função que pode ser útil de varias maneiras: Spoiler function getNumberVector(k) if(type(k) ~= "string") then return error("bad argument #1 to function '" .. debug.getinfo(1, "n").name .. "' (string expected, got " .. type(k) .. ")", 2) end local ret, sep = {}, k:explode(";") for _, vec in ipairs(sep) do if(vec:find("-")) then local fromTo = vec:explode("-") if(fromTo and tonumber(fromTo[1]) and tonumber(fromTo[2])) then for i = tonumber(fromTo[1]), tonumber(fromTo[2]) do table.insert(ret, i) end end elseif(tonumber(vec)) then table.insert(ret, vec) end end return ret end Como fu…
-
- 1 resposta
- 381 visualizações
-
-
[LUA Function] getPlayerItems(cid[, id]) O que ela faz: Bom, esta função retorna todos os items do jogador, você também pode usa-la de modo que retorne todos os items, que tenha um certo ID. Código: Modo de uso: for _, item in pairs(getPlayerItems(cid)) do -- Retornaria todos os id\'s dos items que o player tem. print(item.itemid) end for _, item in ipairs(getPlayerItems(cid, 2160)) do -- Retornaria a quantidade e o nome do item, cuja o ID fosse (2160). print(item.type.."x "..getItemNameById(item.itemid) end Espero que façam bom uso. Créditos: Tony Araújo (OrochiElf) 100%
-
- 3 respostas
- 1.9k visualizações
-
-
Essa função é bem simples, faz a potenciação do número e sua base. function GetPotenciacao(number,numberpo) local a , b, x , y= number, numberpo, a * b, 1 y = a * b print ("Resultado",y) end a = 5-- base b = 5 -- exponenciação return (GetPotenciacao(a,b)) Pronto, uma função simples porém muito utilizada na matemática
-
- 2 respostas
- 566 visualizações
-
-
Hey, caras. Estava vendo aqui a função getSpectators(centerPos, width, height) e percebi que seu uso é até um pouco complicado. Então desenvolvi uma função Lua que pega as criaturas de uma certa área, onde você só precisa fornecer as coordenadas do canto superior esquerdo e do canto inferior direito. function getSpectatorsFromArea(fromPosition, toPosition) local width = (math.max(fromPosition.x, toPosition.x) - math.min(fromPosition.x, toPosition.x)) / 2 + 1 local height = (math.max(fromPosition.y, toPosition.y) - math.min(fromPosition.y, toPosition.y)) / 2 + 1 local center = {x = math.min(fromPosition.x, toPosition.x) + width, y = math.min(from…
-
- 2 respostas
- 666 visualizações
-
-
Eaí. Estava criando um sistema de pet por channels, daí senti que seria legal fazer com que tivesse uma barrinha de experiência Ficará tipo assim: (40 quadradinhos) O legal é que dá pra você modificar a largura da barrinha, mas manter os mesmos valores, como na foto: (60 quadradinhos) Daí você pode modificar os valores, como por exemplo, 7 de 10 em 20 quadradinhos: A função é a seguinte: function getStringBar(Vr,Vm,quant) local retorno = {barra,min=Vr,max=Vm,porcentagem=math.floor((Vr/Vm)*100)} local Q = quant/Vm Vr = Vr*Q Vm = Vm*Q str = "[" local trigger = false for i = 1, Vm do if i <= Vr then …
-
- 1 resposta
- 420 visualizações
-
-
Estava aqui parado sem fazer nada, odeio estudar tabuada, então eu disse, que tal eu criar uma Aqui está a função que retorna uma tabuada function GetTabuada(tab) local tabuadinha,z = tab,0 for i= 1,10 do print (tabuadinha, "*",i , "=", tabuadinha*i) end end tabuadinha = 5 -- Mude aqui para a tabuada que você quer return(GetTabuada(tabuadinha)) Exemplo de Print: 7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 7 * 8 = 56 7 * 9 = 63 7 * 10 = 70 Espero que fazem um bom aproveito
-
- 2 respostas
- 528 visualizações
-
-
E aí galera do TK.... Estou passando meu OT para TFS 1.2 (OTXSERVER) e estou criando algumas funções para suprir a necessidade de alguns scripts, quando me deparei com o problema de listar as cidades no meu comando fly, não existia a função getTownList(), se existe alguma função que faça isso, me desculpe eu não encontrei, então segue o código: function townExists(townId) local t = Town(townId) return t ~= nil and true or false end function getTownList() local listtowns = {} setmetatable(listtowns, {__index=table}) local town while townExists(#listtowns+1) do town = Town(#listtowns+1) listtowns:insert({id=town:getId(), name=town:getName()…
-
- 1 resposta
- 682 visualizações
-
Quem Está Navegando 0
- Nenhum usuário registrado visualizando esta página.