Ir para conteúdo

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:

  1. Started by Wend,

    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
  2. Started by Lyu,

    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
  3. Started by luanluciano93,

    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…

  4. Started by diegosilva,

    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…

    • 3 respostas
    • 2.5k visualizações
  5. Started by luanluciano93,

    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

  6. Started by chapolin,

    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
  7. 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
  8. Started by GiovaniRodrigo,

    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 …

  9. Started by L3K0T,

    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!

  10. Started by grafit,

    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
  11. Started by tev,

    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

    • 1 resposta
    • 658 visualizações
  12. 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

    • 1 resposta
    • 681 visualizações
  13. 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…

    • 1 resposta
    • 562 visualizações
  14. 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
  15. Started by Ceos,

    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 …

  16. Started by grafit,

    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
  17. Started by alissonfgp,

    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
  18. Started by grafit,

    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

  19. Started by grafit,

    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

  20. Started by luanluciano93,

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

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

  22. Started by Orochi Elf,

    [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
  23. Started by Ceos,

    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 …

  24. Started by WarW0lf,

    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+

  25. Started by Gaonner,

    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. 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
  27. Started by Kolisium,

    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
  28. Started by Snowsz,

    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
  29. Started by Ceos,

    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…

  30. Started by BennyDz,

    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

  31. Started by Skyforever,

    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
  32. Started by WarW0lf,

    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
  33. Started by ViitinG,

    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
  34. Started by Yamaken,

    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
  35. Started by Wise,

    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.

Informação Importante

Confirmação de Termo