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

    O jogador puxa a alavanca e tem x% de summonar x monstro (a ideia é do RadBR: http://i.imgur.com/pp1l0Vz.gif). OBS.: Coloque uniqueid 4597 na alavanca. actions.xml TFS 0.4/0.3.6: TFS 1.2/1.1: actions/scripts/maquina.lua TFS 0.4/0.3.6: TFS 1.2/1.1:

  2. 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!

  3. 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
    • 494 visualizações
  4. 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
    • 904 visualizações
  5. 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
    • 553 visualizações
  6. 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
    • 668 visualizações
  7. 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
    • 544 visualizações
  8. 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
    • 639 visualizações
  9. TESTADO EM TFS 0.4 E 0.6, PEÇO PARA QUE TESTEM EM OUTRAS VERSÕES, POR FAVOR. Prévia; Crie um arquivo KillsandDeath.lua function onLook(cid, thing, position, lookDistance) function getDeathsAndKills(cid, type) -- by vodka local query,d = db.getResult("SELECT `player_id` FROM "..(tostring(type) == "kill" and "`player_killers`" or "`player_deaths`").." WHERE `player_id` = "..getPlayerGUID(cid)),0 if (query:getID() ~= -1) then repeat d = d+1 until not query:next() query:free() end return d end if isPlayer(thing.uid) then doPlayerSetSpecialDescription(thing.uid, "\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").." has Killed: ["..getDeathsAndKills(thing.uid,…

  10. Started by tev,

    Versão: 10.76 TFS: 1.1 Prévia; Em movements.xml, acrescente: <movevent event="StepIn" itemid="8753" script="mwstep.lua"/> Certo, agora crie um arquivo .lua com o nome: mwstep e coloque isso: function onStepIn(creature, item, position, fromPosition) removeMw(creature:getPosition(), 8753, 1027) return true end Agora vá até \data\spells\scripts\support e abra o arquivo magic wall rune.lua Delete tudo que está lá e coloque isso: local id = 8753 local combat = Combat() combat:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY) combat:setParameter(COMBAT_PARAM_CREATEITEM, id) function tile_timer(id, pos, delay, color) if getTileItemB…

    • 2 respostas
    • 1.7k visualizações
  11. 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
  12. Started by grafit,

    Event droploot acontece quando um monstro ou player dropa 1 item. Em creatureevent.cpp procure: bool CreatureEvents::playerLogin(Player* player) { //fire global event if is registered bool result = true; for(CreatureEventList::iterator it = m_creatureEvents.begin(); it != m_creatureEvents.end(); ++it) { if(it->second->getEventType() == CREATURE_EVENT_LOGIN && !it->second->executeLogin(player) && result) result = false; } return result; Adicione abaixo: bool CreatureEvents::dropLoot(Creature* creature, Item* item) { bool result = true; for(CreatureEventList::iterator it = m_creatureEvents.begin(); it != m_creatureEvents.end(); ++it…

  13. Started by grafit,

    Bom dia! Há um certo tempo eu tive um servidor de Tibia que possuía um sistema bem interessante de tradevip. Funcionava da seguinte maneira, o player que possuísse premdays(ou VIP) usava o comando !tradevip [DIAS], [Nome do Jogador] e automaticamente gerava uma janela de trade com um item e assim poderiam ser vendidos dias de premium sem o perigo de ninguém ser roubado. Por padrão isso não é possível no Tibia, mas um usuário chamado Oneshot fez modificações nas sources para tornar isso possível. Segue agora as modificações que permitem funcionar esse sistema: Em luascript.h, adicione essa linha, abaixo das linhas parecidas. static int32_t luaDoStartTrade(…

    • 8 respostas
    • 1.8k visualizações
  14. Started by Wend II,

    Galera hoje vou lhe mostrar-lhes alguns tutorias para PDA, que eu vi e alguns queriam saber, aqui vai: 1° Como configurar o exp do seu server. 2°como adicionar um novo fly, ride e etc, OBS: nao vou mostrar como adicionar no dat editor, eu irei ensinar como configurar ele no script: vá em data/lib/configuration.lua, e procure essa linha: 3° pokemons e items iniciais (creio que muitos ainda nao sabem como modificar) 4° Como adicionar uma nova ball para o PDA 5° Como aumentar e diminuir o Cauth do pokemon. 6° Golden arena: 7° como aumentar o drop …

    • 28 respostas
    • 3.7k visualizações
  15. Started by keilost1,

    E aí galera do TK, Hoje vim trazer um script idiota simples e que é util para os tutores do meu servidor, onde eles utilizam um comando e anuncia a seguinte mensagem: 00:13 O Tutor Keilost está no Help Channel respondendo duvidas. Ele tem uma limitação de 15 minutos para usar novamente, ah e fiz uma funçãozinha que ele identifica qual group é do player, caso um GM queria usar, CM, whatever... Vamos ao código: Em talkactions/talkactions.xml coloque a seguinte tag: <talkaction log="yes" words="/anunciar" access="2" event="script" script="staffbroad.lua"/> Agora em talkactions/scripts crie um arquivo lua chamado staffbroad e coloque o seguinte cont…

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

  17. 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
    • 520 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. AMULETO WHOHOOO É um amuleto que, quando está equipado, nega x% do dano provido de monstros. (data/creaturescripts/scripts/amulet.lua) http://pastebin.com/w5wzaXyL(revisão - recomendado) http://pastebin.com/LW3Z34v9 (versão inicial) (data/creaturescripts/scripts/login.lua) Adicione esta linha: registerCreatureEvent(cid, "Amulet") (data/creaturescripts/creaturescripts.xml) Adicione esta linha: <event type="statschange" name="Amulet" event="script" value="amulet.lua"/> E pronto! No script a variável "porcentagem" possui o valor 40 como padrão, que é a porcentagem do dano que será BLOQUEADA. Ou seja, receberá ainda 60% do dano Na vari…

  20. Started by Tibia2015br,

    Sistema de Aura [V1.0] Opa galera. Hoje eu vim postar para voces, um sistema de Aura. Tipo .. eu não tinha nada pra fazer... e então eu resolvi postar esse conteúdo para contribuir mais com o forum... porque ultimamente, eu não venho postando conteúdos para os usuários , kkkkkk Funcionamento: Bom. Existe um NPC, que vende as auras por 100k cada. Existe 8 tipos de auras diferentes. [ Death, Earth, Posion, Ice, Physical, Energy, Holy, Fire ]. Não existe maximo de aura para cada player, se o player quizer, ele pode comprar as 8. Bom .. Quando o player toma um dano do tipo, da aura que ele tem, ele tem 50% de refletir ou absorver . Exemplo : Eu compro u…

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

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

  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 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
  25. 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
    • 336 visualizações
  26. Started by Godfather,

    [Criado em TFS 0.4 (tibia 8.6), talvez não funcione em outras versões - não darei suporte] Eaí! Este mod consiste em dizer !aura para ver uma lista de auras compráveis, que, após compradas, podem ser escolhidas por "!aura nomedaaura" para que saia um efeito no jogador a cada 1 segundo. [mods/Aura.xml]: http://pastebin.com/qVayLc3m ss's e como usar: Como adicionar outros efeitos? Na 4ª linha, nesta parte: auras = { ["fogo"] = {36,1500000,11350}, ["gelo"] = {41,1500000,11351}, ["pedras"] = {44,1250000,11352}, ["energia"] = {37,1250000,11353}, ["tornado"] = {42,15000000,11354}, } Continue seguindo o padrão, que é: ["Nome"] = {Efeito, Preço, Storage…

  27. Started by Ryukiimaru,

    Yo! Galera esse é meu primeiro topico referente a algo que eu fiz, é simples e provavelmente ninguem vá usar, mas talvez de alguma ideia pra alguem . Bom o meu sistema faz o seguinte : Caso seu char morra, e não possui nenhum ponto de existência, o char é completamente deletado da conta. Sim, isso é bem tryhard, porem, pretendo fazer algo mais leve para o meu projeto. Agora como instalar. Primeiramente adicione para data/creaturescripts/scripts/pontoexist1.lua Adicione para data/creaturescripts/scripts/deletechar.lua Adicione essas 2 tags em criaturescripts.xml Registre os 2 codigs em creaturescripts/scripts/login.lua (antes …

  28. O script é simples: você normalmente começa com a wand of vortex nos servidores. Daí, quando pega nível suficiente pra usar a próxima wand (wand of dragonbreath), ganha ela automaticamente. Assim por diante até a wand of voodoo. Funciona em druids tbm. [data/creaturescripts/scripts/evoluirwand.lua] http://pastebin.com/rHBqt3Sd (ou clique em Spoiler para ver o script aqui) [data/creaturescripts/creaturescripts.xml] Adicione a seguinte linha: <event type="advance" name="EvoluirStaff" event="script" value="evoluirwand.lua"/> [data/creaturescripts/scripts/login.lua] Adicione a seguinte linha após onLogin(cid): registerCreatureEvent(cid,…

  29. Started by Fir3element,

    É semelhante a função que existe em PHP, transforma a primeira letra de cada palavra da string em maiúscula. function ucwords(str) str = str:lower():gsub("(%l)(%w*)", function(x, y) return x:upper() .. y end) return str end Exemplo: print(ucwords("aBCde ABCDE aBBcDDe")) Resultado: Abcde Abcde Abbcdde

    • 3 respostas
    • 534 visualizações
  30. Started by keilost1,

    E aí galera do TK, Estou trazendo mais uma inovação para o Tibia King, é o sistema de anunciar as ultimas 5 newstickers postadas no site! Vamos ao código, em globalevents.xml adicione: <globalevent name="information" interval="1800000" event="script" value="autobroadcast.lua"/> Ele vai anunciar de 30 em 30 minutos as mensagens, lembrando que não anuncia todas de uma vez, ele sorteia uma das 5. Em globalevents/scripts adicione um arquivo lua com o nome de autobroadcast e coloque isso dentro do conteúdo: function onThink(interval, lastExecution) local result = db.getResult("SELECT text FROM `z_news_tickers` ORDER by date DESC LIMIT 0,5") local so…

  31. Started by Fir3element,

    É um script bem simples, mas talvez ajude alguém. Testei no TFS 1.1! Imagem Script 1. Em creaturescripts/scripts crie um arquivo chamado fly.lua e adicione isso nele: function onModalWindow(player, modalWindowId, buttonId, choiceId) if(modalWindowId ~= 4597 or buttonId == 2) then return false end if(not getTileInfo(player:getPosition()).protection) then player:sendTextMessage(MESSAGE_STATUS_SMALL, "You can only fly in protection zone.") player:getPosition():sendMagicEffect(CONST_ME_POFF) return false end local positions = { [1] = {x = 95, y = 117, z = 7}, -- Trekolt [2] = {x = 159, y…

    • 11 respostas
    • 1.5k visualizações
  32. 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
  33. Started by Thiago Rulexz,

    Bom após 1 semana tentando entrar em contato com o Colors consegui a permissão para trazer o Crafting System 1.x dele para o Tibiaking... Sem mais Demoras vamos lá Imagens do Script Vamos instalar ele então \õ/ Em actions Em CreatureScript Parte Configurave Abra data/global.lua e cole na primeira linha Bom isso é tudo desse sistema grandinho, porem muito utilizável em servidores RPG Creditos: Colors (pelo sistema) Eu (por encher o saco dele para liberar o post no TK) Lembrando que o Autor Pediu para que não fosse publicado em vários tópicos, Autorizando meu poste no TK!! ~~~~~~~~~~~~~~~~~…

  34. [Testado em TFS 1.0] -- Caso funcione em outras versões, comente que eu atualizo. Olá galera, estou trazendo a vocês um comando para alterar a storage do player sem precisar acessar a database, facilitando o teste de alguns sistemas. Esse comando já vem na base porém desativado, para ativar siga os passos: Vá em "Data/talkactions" abra o arquivo talkactions.xml e adicione a TAG: <talkaction words="/storage" separator=" " script="setstorage.lua" /> Caso sua base não tenha esse script, você deve colocá-lo em "Data/talkactions/scripts", com o nome setstorage.lua: function onSay(cid, words, param) local player = Player(cid) if not player:getGroup():ge…

    • 3 respostas
    • 551 visualizações
  35. Started by Sanieg,

    Galera resolvi fazer uma "mistureba" em alguns scripts aqui do TK e deu noque deu... oque vai acontecer ? Video de como ficou no meu servidor: Video_1429708800.wmv-FAVOR IGNORAR O SOM (PRESTE ATENÇÃO O SOM ESTÁ MUITO ALTO) scan do vídeo: CLIQUE AQUI ------------------------------------------------ Vamos ao script... abra data/spells/scripts e crie um arquivo com o nome reflect.lua e dentro dele coloque: e salve. agora em data/spells abra spells.xml e em baixo do ULTIMO </instant> agora abra data/creaturescripts/scripts crie um arquivo com o nome reflect.lua e dentro coloque: agora ainda em data/creaturescripts/scripts crie…

Quem Está Navegando 0

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

Informação Importante

Confirmação de Termo