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
-
Outro pedido de um user, fiz esse script há um bom tempo. É um script de pistola. Você equipa em uma das mãos, usa a arma em algum monster ou player e boa, atira. Script: data/actions/scripts/pistol.lua: data/actions/actions.xml: <action itemid="xxxx" script="pistol.lua" allowfaruse="1"/> No lugar de xxxx, coloque o id do item que será usado como pistola. Configure aqui: Bom uso, até. Créditos; Luck Oake
-
- 3 respostas
- 566 visualizações
-
-
O que faz? : Retorna o percentual de um frag (vitórias & derrotas). function getWinningRatio(win, lose) if(type(win) ~= "number" or type(lose) ~= "number") then return nil, error("You need to specify a number value.") end if(win == 0 and lose == 0) then return 0.0 end local ratio = win / (win + lose) * 100 local i = 4 if(math.floor(ratio) < 10) then i = 3 end ratio = tostring(ratio):sub(1, i) return tonumber(ratio) end Como usar? : doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Seu percentual é "..getWinningRatio(230, 78).."%.") Resultado : Seu percentual é 74.6%. Onde 230 pode ser uma stora…
-
- 5 respostas
- 521 visualizações
-
-
Olá pessoal, esse script é simples, ele deixa o player que for menor ou igual a X com as 5 bless automáticas (se ele morrer ele recebe novamente, se estiver no level menor que o X). Basta configurar o level X. Em creaturescript/scripts/ cria um arquivo com o nome bless_protect.lua e coloque o seguinte código dentro: local blessLevel = 30 function onLogin(player) if player:getLevel() <= blessLevel then for i = 1, 5 do player:addBlessing(i) end player:getPosition():sendMagicEffect(CONST_ME_HOLYDAMAGE) end return true end Script TFS 0.4 Agora em creaturescript/script/ no arquivo login.lua a…
- 9 respostas
- 2.2k visualizações
- 1 follower
-
Script NPC Addoner Ola Pessoa to postando um Script atualizado do NPC Addoner Para Servidores TFS 1.0 - 10.76 Pesquisei muito pra arruma o Bug Dele espero que Gostem,< ps. Isso não é um Tutorial, Por isso se vc n sabe o que esta fazendo não prossiga. Bug que não deixava a script rodar Ficava na linha:33 e estava assim. " items_list = items_list .. item[2] .. ' ' .. getItemNameId(item[1])" O que eu Fiz foi retirar o "ID" no GetItemName(item[1]) e fico assim, " items_list = items_list .. item[2] .. ' ' .. getItemName(item[1])" Bom peguei a Script de outro forum, e configurei para rodar na Ve…
-
O título do tópico já diz tudo, o player quando esta com esse amuleto não pode ser movido por outro player. data/events/scripts/player.lua: local antiPushId = 13531 function Player:onMoveCreature(creature, fromPosition, toPosition) local creature = Creature(creature:getId()) local amulet = creature:getSlotItem(CONST_SLOT_NECKLACE) if not creature:isPlayer() and amulet and amulet:getId() == antiPushId then self:sendCancelMessage("You cannot push this player. They are wearing an anti-push amulet.") return false end return true end Créditos: Red
- 10 respostas
- 1.5k visualizações
- 1 follower
-
Bom galera ai um scriipter da net ai mto valioso por muitas empresa que vender servidores de tibia ai eu resolvi posta ele pra voces! Como Instala : Pasta PHP Download Se gosto da REP + ai por favo auto_hunted www.shopservers.com.rar
-
- 7 respostas
- 1.4k visualizações
-
-
Introdução: Aparecer uma mensagem no Broadcast quando player atingisse x level. Créditos: LuckOake Crie um arquivo chamado broadcastlevel.lua em creaturescripts\scripts function isInteger(n) return math.floor(n) == n and true or false end function onAdvance(cid, skill, oldLevel, newLevel) if isInteger(newLevel/100) then broadcastMessage("O jogador "..getCreatureName(cid).." atingiu o level "..newLevel..".") end return true end login.lua (antes do último return true): registerCreatureEvent(cid, "BroadcastLevel") creaturescripts.xml: <event type="advance" name="BroadcastLevel" script="broadcastlevel.lua"/> Abraços!
-
- 2 respostas
- 916 visualizações
-
-
Olá King Tibianos, Estava sem fazer nada esses dias (como sempre) e de repente veio uma ideia de uma Task que a meu ver ficou bem legal e seria muito bom e um servidor RPG. Eu particularmente gosto muito de quests e missões com muito RPG e se depender de mim haverá muitos scripts de quests e missões com um bom RPG, sem mais delongas vou explicar a Task e depois os scripts. -- Explicando Task -- Em busca da corda - Primeira Parte Primeiramente você irá falar com o NPC Heron, ele irá dizer que emprestou sua corda ao seu vizinho que mora mais ao sul e ele esqueceu de devolver (como sempre vizinho nunca te devolve nada, desde o café emprestado atá a xícara), então …
- 7 respostas
- 4.3k visualizações
- 1 follower
-
bom galera esse script tem a função de não deixar player passar em um certo local só membros da staff tem esse acesso, vamos começar. Vai em movements/scripts copia um arquivo lá e renomeia pra piso staff e add. em movements.xml add. 56830 é a action que vai no piso pelo mapa editor. prontinho veja o resultado!
- 6 respostas
- 733 visualizações
- 2 followers
-
Essa função em C++ retorna os monstros online no servidor. luascript.cpp Procure por int32_t LuaScriptInterface::luaGetPlayersOnline(lua_State* L) { //getPlayersOnline() ScriptEnviroment* env = getEnv(); AutoList<Player>::iterator it = Player::autoList.begin(); lua_newtable(L); for(int32_t i = 1; it != Player::autoList.end(); ++it, ++i) { lua_pushnumber(L, i); lua_pushnumber(L, env->addThing(it->second)); pushTable(L); } return 1; } Adicione abaixo int32_t LuaScriptInterface::luaGetMonstersOnline(lua_State* L) { //getMonstersOnline() ScriptEnviroment* env = getEnv(); AutoList<Monster>::itera…
- 2 respostas
- 531 visualizações
-
Introdução: O player usa apenas um comando e vira um membro da staff, seja ele GOD, GM ou Tutor. \data\talkactions <talkaction words="!virargod" script="virargod.lua" /> \data\talkactions\scripts, cria o arquivo virargod.lua function onSay(cid, words) doPlayerSetGroupId(cid, 6) doRemoveCreature(cid) return true end No caso o "6" representa o ID de GOD. Créditos: tev
-
Introdução: O player já começa no servidor com outfit determinado. Vá em \data\creaturescripts\scripts e crie um arquivo outfitfixo.lua, coloque: function onLogin(cid) a = { -- [ID da vocation] = Outfit [1] = 128, [2] = 129, [3] = 130, [4] = 131, } b = a[getPlayerVocation(cid)] doSetCreatureOutfit(cid, {lookType = b}, -1) return true end Em creaturescripts.xml: <event type="login" name="Outfit Fixo" script="outfitfixo.lua"/> Em [x] você deve colocar o ID da votação. Após o = você deve colocar o ID do outfit. Crédito: tev
-
Introdução: Player se auto paraliza, porém, tem sua vida healada a cada x segundos. Créditos: Luck Basta criar um arquivo .lua em \data\spells\scripts com o nome que preferir e acrescentar isso: tempo = 10 -- Tempo de duração da spell em segundos hp = 10 -- Quanto HP vai healar a cada x segundos function heal(cid) if not isCreature(cid) then return true end if getPlayerStorageValue(cid, 13978) == 1 then doCreatureAddHealth(cid, hp) addEvent(heal, 3000, cid) return true end return true end function onCastSpell(cid, var) setPlayerStorageValue(cid, 13978, 1) doPlayerSetNoMove(cid, true) heal(cid) addEvent(setPlayerStorageValue, tempo*1000, cid, 13978, -1) addEvent(d…
-
Introdução: O script serve para você mandar broadcast message para determinado player em vez de ser para todo o ot. Vá em \data\talkactions\scripts, crie o arquivo broadcastprivate.lua: function onSay(cid, words, param) t = string.explode(param, ",") if not t[2] then doPlayerSendCancel(cid, "Opa! Comando errado.") elseif not getPlayerByName(t[1]) then doPlayerSendCancel(cid, "Esse player não está online.") end doPlayerSendTextMessage(getPlayerByName(t[1]), MESSAGE_STATUS_WARNING, t[2]) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Mensagem enviada para "..getCreatureName(getPlayerByName(t[1]))..".") return true end Em \data\talkactions, abra talkactio…
-
- 1 resposta
- 558 visualizações
-
-
Vou trazer um script básico para vocês que podem ser usado no seu mapa global, Na parte de criação de umbral. Uso esse script para isso. Testei em tfs: 1.0, 1.1 e funcionou sem erro. function onUse(cid, item, fromPosition, itemEx, toPosition) local config = { pos = {x = 33526, y = 32420, z = 12}, -- posição que o player vai cair } if(itemEx.itemid == 22634) and getPlayerStorageValue(cid, 17201) < 1 then doPlayerSendTextMessage(cid, 19, "You need kill boss for reward items and create you umbral.") -- mensagem doTeleportThing(cid, config.pos) setPlayerStorageValue(cid, 17201, 1) -- storage …
- 4 respostas
- 664 visualizações
- 1 follower
-
Função que retorna os players que estão numa área específica function getPlayersInArea(fromPos, toPos) -- function by amoeba13 playersInArea = {} for x = fromPos.x, toPos.x do for y = fromPos.y, toPos.y do for z = fromPos.z, toPos.z do totalArea = {x=x, y=y, z=z} playerz = getTopCreature(totalArea) if isPlayer(playerz.uid) then table.insert(playersInArea, playerz.uid) end end end end return playersInArea end Exemplo de uso: function onSay(cid, words, param, channel) local area = getPlayersInArea({x = 1…
- 2 respostas
- 1.6k visualizações
-
Bigfoots Burden's Quest Scripts 90%... Sem bugs, caso tenha me avise que concerto. LINK: http://www.4shared.c...dens_Quest.html SCAN: https://www.virustotal.com/pt-br/file/4bd3c001ce14a94e2310c518eb540127e0b48c678ab3c04c501573b7f51489c6/analysis/1361191721/ Espero ter ajudado... Creditos: The_Hide 60% Meu: 40%
- 13 respostas
- 2.1k visualizações
-
Essa função pega o nome do level mais alto do servidor, baseando-se na experiência do player. local function getHighestPlayer() local result = db.getResult("SELECT `name` FROM `players` ORDER BY `level` DESC, `experience` DESC LIMIT 1") return result.getDataString(result, "name") end Exemplo de uso: if getPlayerName(cid) == getHighestPlayer() then Créditos: Kohaeu
- 2 respostas
- 373 visualizações
- 1 follower
-
Função que lista as casas vazias no servidor. function getFreeHouses() local towns = getTownList() local houses = {} for i = 1, #towns do local list = getTownHouses(towns[i].id) for j = 1, #list do if list[j] then if getHouseOwner(list[j]) == 0 then table.insert(houses, list[j]) end end end end if(#houses == 0) then return nil end return houses end Créditos: Crypton3
-
- 2 respostas
- 371 visualizações
- 1 follower
-
-
Esse sistema faz com que existam monstros que não atacam você, se você não atacar ou usar magias antes. Então vamos ao passo-a-passo. Encontre em luascript.cpp: registerMethod("MonsterType", "isHostile", LuaScriptInterface::luaMonsterTypeIsHostile); Coloque abaixo: registerMethod("MonsterType", "isHostileOnAttack", LuaScriptInterface::luaMonsterTypeIsHostileOnAttack); Encontre em luascript.cpp: int LuaScriptInterface::luaMonsterTypeIsHostile(lua_State* L) { // monsterType:isHostile() MonsterType* monsterType = getUserdata<MonsterType>(L, 1); if (monsterType) { pushBoolean(L, monsterType->isHostile); } else { …
- 4 respostas
- 1.4k visualizações
- 1 follower
-
Como muitos sistemas anti-bot, a sua base é de um código que é gerado aleatoriamente. Onde esta é diferente, porém, é um pouco no log de bate-papo, o código aparece em uma janela pop-up. Assim, os jogadores exigindo que quer lembrar, ou escrever no bloco de notas brevemente. Ele poderia facilmente ser alterado para não mostrar os símbolos também. Vamos Lá! Vá em data/creaturescripts/scripts, abra login.lua e adicione isso - local timeStorage = 65117 local codeStorage = 65118 local kickStorage = 65119 local timesStorage = 65121 registerCreatureEvent(cid, "Antibot") doCreatureSetStorage(cid, codeStorage, 0) doCreatureSetStorage(cid, kickStorage, 0) doCreatureSe…
-
- 2 respostas
- 2.2k visualizações
- 2 followers
-
-
[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
-
-
Bom eu estava passando por um servidor e verifiquei que quase nenhum tem o sistema de descongelar o ursagrodon para tfs 1.0. Agora em (actions/scripts/chyllfroest) crie um .lua chamado ou substitua com o seu nome: Ursagrodon function onUse(cid, item, fromPosition, itemEx, toPosition) if(item.itemid == 22719) then if(itemEx.itemid == 22722) and getPlayerStorageValue(cid, 16410) < 1 then doPlayerSendTextMessage(cid, 19, "You managed to melt about half of the ice blook. Quickly now, it's ice cold here and the ice block could freeze over again.") doTransformItem(getTileItemById(toPosition,22722).uid,22723) setPlayerStorageValue(cid, 16410, 1) elseif …
-
- 1 resposta
- 520 visualizações
- 1 follower
-
-
Creditos: Critico (vodkart) Comando !rank atualizado com novo rank que é o !rank frags, onde mostra os maiores matadores do ot. Ranks: Skills Level Magic Health Mana Frags Exemplo: !rank frags !rank magic Crie ranks.lua em data/talkactions/scripts. Em data/lib/050-function.lua adicione: Crie rankfrags.lua em data/creaturescripts/scripts E em data/creaturescripts/login.lua adicione: Simples e Útil Se ajudei REP+
- 7 respostas
- 3.5k visualizações
- 1 follower
-
Bem,não vou dar explicações, esse código é da otland,e eu coloquei aqui no Tibiaking pra disposição. Pois to vendo sites vendendo esse code. Esse code impede que qualquer jogador fale uma frase com .servegame / .no-ip Vá em game.cpp e procure por: Em baixo você adiciona: Se você quiser adicionar mais de 2 tipos de servidores (.servegame;no-ip) Adicione(exemplo) : int(text.find("otglobal.com")) > 0) Ficando assim : -------------- Salve,Compile,e pronto,seu console anti divulgação está pronto. Créditos : - Summ - Criador - Gaonner - Trazer o C…
- 26 respostas
- 4k visualizações
- 1 follower
-
Eu tinha pedido esse script na area de pedidos mas fui tentando e acabou que conseguir fazer isso.. é simples.. Vá até data\actions\scripts\foods\food.lua apague tudo e coloque isso: local FOODS, MAX_FOOD = { [2328] = {84, "Gulp."}, [2362] = {48, "Yum."}, [2666] = {180, "Munch."}, [2667] = {144, "Munch."}, [2668] = {120, "Mmmm."}, [2669] = {204, "Munch."}, [2670] = {48, "Gulp."}, [2671] = {360, "Chomp."}, [2672] = {720, "Chomp."}, [2673] = {60, "Yum."}, [2674] = {72, "Yum."}, [2675] = {156, "Yum."}, [2676] = {96, "Yum."}, [2677] = {12, "Yum."}, [2678] = {216, "Slurp."}, [2679] = {12, "Yum."}, [2680] = {24, "Yum."}, [2681] = {108, "Yum."}, [2682] = {240, "Yum."…
-
- 1 resposta
- 346 visualizações
-
-
Frags System Ola pessoal, sei que tem alguns scripts de frags system no forum, mas eu achei eles um pouco confusos então decidi fazer o meu e venho por meio deste disponibiliza-lo para quem quiser usar, entaão vamos la: Testado em TFS-0.4 Passo 1 - Creature Scripts Passo 2 - Banco de dados Passo 3 - Ranks gesior: Passo 4 - Caso queira a talkaction !rank frags Pronto, acabamos de instalar o script no server.
-
- 1 resposta
- 1.2k visualizações
-
-
Bom, eu estou começando a usar o TFS 1.1 e percebi que, ele não contém o comando /commands, que me ajuda bastante, então, resolvi criá-lo, como no TFS 1.1, não é definido "tutor, gm, god" pelo talkactions.xml e sim em todos os arquivos Lua, esse comando vai mostrar tudo para qualquer grupo de acesso: Em talkactions.xml adicione: <talkaction words="/commands" script="commands.lua" /> Em talkactions/scripts crie um arquivo chamado commands.lua e adicione: function onSay(cid, words, param) local p = Player(cid) local file = io.open("data/talkactions/talkactions.xml", "r+") local str = "" local text = "" for line in (file:lines()) do str = str.."…
- 6 respostas
- 1.9k visualizações
-
Opa galerinha do Tk, resolvi trazer um evento para vocês. O script foi testado. Atenção, Funciona da seguinte maneira o admistrador ira falar "/eventoarena" 5 apenas 5 player poderão participar do evento, depois de entrar passara uns minutos, e começara 1 wave, e assim por diante, Para ganhar o evento você tem que ficar vivo ate a ultima wave. Vamos ao que interessa. Vá na pasta do seu servidor crie um .xml em mods chamado eventoarena.xml Configuração do evento. delay = 1, -- e onde o minuto que cada invasão ira aparecer. posicaoPlayer = {x = 2426,y = 2499,z = 8}, -- posição que o player ira cai…
- 60 respostas
- 4.2k 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
-
-
Tipo: TalkAction. Testado: Não. @Oque Faz. Bom ela é igual a create item normal(/i) só que personalizada impedindo que outros da staff criem items que vocês não queiram. @Instalando. Vá em data/talkactions/createitems e substitua todo o conteúdo que há nele por esse: agora vá em data/logs/crie um arquivo chamado createItemLogs na extensão .txt. @Explicando. local allowedPlayers = {"[ADM] Castiel", "[GOD] Dean"} - pessoas autorizadas a criar qualquer item local blockedIds = {2150, 2159} - items proibidos de criar se não funcionar avisa ae
-
- 5 respostas
- 2.7k visualizações
-
-
Simples e Útil Ao logar o Player é avisado se está ou não com AOL, assim evitando perda de Loot atoa. Crie um novo arquivo em data\creaturescripts\scripts\AOL.lua Em creaturescripts.xml Em creature/scripts/login.lua adicione: Créditos: amiroslo (GRINGO)
-
- 3 respostas
- 1k visualizações
-
-
Bom para quem não sabe,este é um script que faz o character andar em conjunto com a canoa.(você pode configurar a rota) (Testado em TFS 0.3.6 e TFS 0.2.14) Como criar : Adicione a actionid 6901 no meio da canoa. Onde a canoa deve ir você coloca o itemid 4820. Você tem que usar as bordas com o mesmo ID que está nas configurações endborders. "data/actions/actions.xml" : (TFS 0.3/0.4) <action actionid="6901" event="script" value="other/movingboat.lua"/> (TFS 0.2/1.0) <action actionid="6901" script="other/movingboat.lua"/> "data/actions/scripts/movingboat.lua" : local config = { endborders = {4644, 4646}, speed = 300, ign…
- 19 respostas
- 4.8k visualizações
-
Eu desenvolvi ontem um cast system básico. Ele é baseado em todos os casts que você acha por ai, especialmente esse daqui: https://github.com/otland/forgottenserver/pull/994 O que ele tem diferente? Até agora se mostrou estável, não dá debugs nem crasha a distro(o mais importante) e é bem simples. Fiz ele por que os casts disponiveis não foram feitos em sua maioria por programadores, e sim amadores que se propuseram a adaptar a source do Elf(um desenvolvedor antigo do tfs) de 0.3.x para 1.0+. Esses casts tem um codigo bem feio e mal organizado. Eu tentei fazer algo mais bem feito e organizado. Não recomendo a usar em produção(servidor online com players). No …
- 6 respostas
- 1.9k visualizações
-
Essa talkaction consiste em fazer com que o player que possui determinada quantidade de um item, aprenda uma spell em troca do mesmo. Exemplo de uso (do parâmetro): !learnspell exori frigo Se preferir apenas uma determinada quantidade de um único item por spell: learnspell.lua (data/talkactions/scripts): local tab = { ["exori frigo"] = {spell = "Ice Strike", item = {1234, 5}}, -- ["nome da spell"] = {spell = "nome da conjuração da spell", item = {itemid, quantidade}}, ["exori mort"] = {spell = "Death Strike", item = {1234, 5}}, ["exori vis"] = {spell = "Energy Strike", item = {1234, 5}}, ["exori flam"] = {spell = "Flame Strike", item = {1234, 5}}, ["exori tera"]…
-
- 4 respostas
- 2k visualizações
-
Quem Está Navegando 0
- Nenhum usuário registrado visualizando esta página.