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. 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
    • 560 visualizações
  2. Started by Attack,

    Boa noite!! Esta modificação permite que consiga o userdata através do guid Testado em TFS 1.x luascripts.cpp // Player int LuaScriptInterface::luaPlayerCreate(lua_State* L) { // Player(id or name or userdata or guid) Player* player; if (isNumber(L, 2)) { player = g_game.getPlayerByID(getNumber<uint32_t>(L, 2)); if (!player) { player = g_game.getPlayerByGUID(getNumber<uint32_t>(L, 2)); } ... Abraço!

    • 2 respostas
    • 559 visualizações
  3. Started by Wise,

    Pensei em fazer esta função há um tempo. Alguns membros, que também programam, tentaram desenvolve-la quando comentei sobre ela em um grupo do skype. math.round reconhece, automaticamente, se o número é um inteiro ou decimal e o arredonda para cima ou para baixo, seguindo a condição >= ou < do que 5, respectivamente. Eu preferi fazer para que o arredondamento sempre resulte em um inteiro não-negativo e não-nulo. Ao meu ver, a função tem mais utilidade desse modo e, já que o resultado de n segue essa regra, não é possível utilizar números negativos ou nulos. Se utilizados, nil é retornado. Sem mais delongas, adicione a qualquer arquivo com extensão Lua da library…

    • 2 respostas
    • 557 visualizações
  4. Started by ViitinG,

    Para quem não sabe como funciona o script : O player precisar ter uma certa quantia de gold para poder comprar um item pelo baú.(o item ficará atrás do baú no caso) • Adicionando o script • Em "data/actions/scripts/comprabau1.lua" : function onUse(cid, item) local price = 50000 -- Preço do item local it = 8932 -- ID do item local count = 1 -- Quantia do item if not doPlayerRemoveMoney(cid, price) then doPlayerSendCancel(cid, "Você precisa ter "..price.." gold coins para comprar "..count.."x "..getItemNameById(it)..".") return true end doPlayerAddItem(cid, it, count) doPlayerSendCancel(cid, "Você comprou "..count.."x "..getItemNameById(it).." por "..price.." go…

  5. Started by Nogard,

    Fuçando em alguns arquivos antigos, acabei encontrando um script old que havia feito para um jovem. Consiste em clicar no item (no caso, a chave do automóvel), será verificado se o automóvel em questão está estacionado na sua frente, caso não estiver, aparecerá uma mensagem informando. Do contrário, você irá "entrar" no automóvel. Conforme for andando com o mesmo, será gasto uma quantia de "combustível" (se não me engano, usei crystal coins como item), não será possível continuar andando quando o combustível zerar, se tentar, você descerá do automóvel automaticamente, com uma mensagem informando-o. Poderia criar um posto de combustível ou algo assim, seria simples, va…

    • 3 respostas
    • 547 visualizações
  6. Started by LuckinhaSan,

    Olá a todos, Esta função serve para que você possa verificar se o jogador (loga, por exemplo) pela primeira vez "por algum tempo". Então, aqui está o código: function checkFirstByTime(cid,storage,value,year,month,day,times) local funcDate = day.." "..month.." "..times.." "..year if getPlayerStorageValue(cid, storage) ~= value then if funcDate < os.date("%d %b %X %Y", os.time()) then setPlayerStorageValue(cid, storage, value) return true end end return false end E aqui está um exemplo: function onLogin(cid) if checkFirstByTime(cid,6546,1,2013,Apr,30,21:30:00) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Hello, you have login for …

    • 0 respostas
    • 546 visualizações
  7. Started by Skydangerous,

    Envia o item diretamente no depot do jogador. function doPlayerAddDepotItems(cid, items, town) if (not isPlayer(cid)) then error("Player not found") end local town = town or getPlayerTown(cid) local parcel = doCreateItemEx(ITEM_PARCEL) for item, count in pairs(items) do if (type(item) == "number") then doAddContainerItem(parcel, item, count) elseif (type(item) == "string") then doAddContainerItem(parcel, getItemIdByName(item), count) else error("Undefinied type of item name") end end return doPlayerSendMailByName(getCreatureName(cid), parcel, town) end Como usar function onSay(cid, words, param, channel) if…

    • 0 respostas
    • 545 visualizações
  8. Started by Wise,

    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
    • 545 visualizações
  9. Started by Tricoder,

    SCREENSHOT __________________________________ SCRIPT Crie um arquivo chamado ballista.lua na pasta data/actionslocal config = { shootRange = 7, damage = {50, 100}, -- min/max shootEffect = CONST_ANI_HUNTINGSPEAR, impactEffect = CONST_ME_HITAREA, exhaustOnUse = 300, -- miliseconds direction = { [5692] = DIRECTION_NORTH, [5701] = DIRECTION_EAST, [5698] = DIRECTION_WEST, [5695] = DIRECTION_SOUTH } } local exhaust = Condition(CONDITION_EXHAUST_WEAPON) exhaust:setParameter(CONDITION_PARAM_TICKS, config.exhaustOnUse) function onUse(player, item, fromPosition, target, toPosition, isHotkey) if player:getCondition(…

    • 1 resposta
    • 544 visualizações
  10. Started by Sayadjin,

    Boa noite, Sou novo aqui preciso que me ajudem numa spell o Error é esse E o Script é esse Obrigado Pela atenção. REP + pra quem Ajudar Ajudem!

    • 0 respostas
    • 543 visualizações
  11. Started by Skyforever,

    Olá, galerinha do TibiaKing essa é minha primeira função *-* function getNumeroInAlfabeto(letra) local T = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"} for x, i in ipairs(T) do if tostring(i) == tostring(letra) then return x end end end Exemplo de print: É isso até mais. Créditos: Eu Vodkart( arrumou a talk e uma parte da função ) Exemplo de uso:

    • 1 resposta
    • 542 visualizações
  12. 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
    • 542 visualizações
  13. Started by Vodkart,

    é um sistema de Saffari para poketibia, totalmente automático. [+] O jogador não perde level(experience) ao morrer. [+] O jogador é teleportado quando acabar o tempo ou quando suas Saffari balls acabar! [+] Mostra o tempo restante num comando exclusivo !saffari time Pasta mods Saffari.xml <?xml version="1.0" encoding="ISO-8859-1"?> <mod name="Saffari" version="2.0" author="Vodkart" contact="none.com" enabled="yes"> <config name="saffari_func"><![CDATA[ config = { price = 5000, level = 50, need_premium = false, minutes = 60, saffari_positions = {enter = {x=152,y=51,z=5}, …

    • 1 resposta
    • 542 visualizações
  14. Started by Newtonnotwen,

    Em data/creaturescripts/scripts crie um arquivo.lua nomeie para upgain e adicione: Editando: -Vermelho: Id da vocação -Laranja: Id do item -Verde: Level para ganhar o item Em creaturescripts.xml adicione: Para adicionar mais itens faça o seguinte: Copie o arquivo em roxo: Duplique no seguinte lugar (em marrom): E depois apenas edite o id da vocação e do item. Ex: -Verde: O que foi editado Tutorial by: Newtonnotwen Obs: O script não é meu, eu achei ele aqui em uma pasta de meu ot server e resolvi postar.

    • 3 respostas
    • 541 visualizações
  15. Started by Wend,

    Olá Boa tarde, antes de tudo quero dizer que esse script é de autoria de Luck Oake Quem já jogou DotA sabe que existe um item chamado soul ring. Aos que nunca jogaram, aqui vai a explicação de como ele funciona: É um anel que, ao ser usado, consome 150 de vida e te dá 200 de mana temporariamente. Se você não utilizar essa mana no tempo máximo, você perde ela. Script: data/actions/scripts/soul_ring.lua: data/actions/actions.xml: <action itemid="xxxx" script="soul_ring.lua"/> Substitua xxxx pelo id do item que você usará como soul ring. Configurações: Bom uso, até.

    • 3 respostas
    • 541 visualizações
  16. 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
    • 534 visualizações
  17. Started by Fausto32,

    -Então direto ao assunto, e uma Talkaction bem bacaninha que serve para parar um player simplismente, enquanto ele estiver preso pela talk ele não pode andar, ou deslogar, de alguma forma acho útil pra staff ou divertido, ou pra um evento u_u usem a criatividade, enfim vamos ao script.. Copie qualquer uma das suas talkactions apague oque tá la dentro e renomeie para ''stop.lua'' local condition1 = createConditionObject(CONDITION_INFIGHT) local condition2 = createConditionObject(CONDITION_EXHAUST) local condition3 = createConditionObject(CONDITION_MUTED) setConditionParam(condition1, CONDITION_PARAM_TICKS, -1) setConditionParam(condition2, CONDITION_P…

    • 0 respostas
    • 533 visualizações
  18. Started by AndreyLost,

    Eaii Galerinha, hj estou aqui trazendo mais um script feito por um amigo de outro forum o Printer Bom o script vai da clean em um certa área que vc configurar globalevent/globalevent.xml <globalevent name="cleanarea" interval="1200" event="script" value="cleanarea.lua"/> globalevent/scripts/cleanarea local created_by_otswe = true -- Do not edit, if you touch this line the script will not work propely local otswe = { Clean_Time = 20, -- When the warning text has been broadcast, for how many seconds should it take to execute the clean Warning_Text_Before_Clean = "A area will be cleaned in 20 seconds, so pick up your trash or see it vanish", -- Here can you …

    • 4 respostas
    • 531 visualizações
  19. Started by Skydangerous,

    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
    • 530 visualizações
  20. Started by Skyforever,

    Tipo: Função. Testado: Não. Explicando!. Bom ela é uma função que checa se o nome já existe na database agora sem mais delongas vamos ao script. Instalando!. Primeiramente vá em pasta do seu servidor / data / lib abra o 050 - function e no começo coloque function isValidName(name) return db.getResult("SELECT `id` FROM `players` WHERE `name` = " .. db.escapeString(name) .. ";"):getID() == 1) and false or true end Exêmplo!. Fiz um exêmplo em TalkAction vamos a ele: function onSay(cid, words, param) if tostring(param) and isValidName(tostring(param)) == true then return doPlayerSendTextMessage(cid, 27, "O player " .. tostring(p…

    • 2 respostas
    • 530 visualizações
  21. Started by LuckinhaSan,

    Informações: 4 jogadores ficam em 4 tiles Puxa a alavanca Eles são teletransportados para uma sala Após 30 segundos a bomba vai ativar A cada minuto 3 monstros irão aparecer na sala Depois de 15 minutos a explosão do quarto e todos morrem A missão no quarto é para destruir uma parede com um monte de health para sobreviver (se eles destruirem o muro, eles poderam entrar em um teleporte para obter sua recompensa). Testado em: The Forgotten Server v0.2.14 (Mystic Spirit) Screen 1 - Screen 2 - Vá em data/actions/scripts, crie um arquivo .lua e renomeie para bombSquad, adicione isto - Em actions.xml, adicione a seguinte tag - <action actionid="1700…

    • 2 respostas
    • 529 visualizações
  22. Started by Cain Jorge,

    data/movements/Script Crie um Arquivo Chamado tilekill.lua Cola isto Dentro: function onStepIn(cid, item, position, fromPosition) if(not(isPlayer(cid)) and (not(isSummon(cid))) and (not(isNPC(cid)))) or (isMonster(cid) and isSummon(cid) and (not(isPlayer(getCreatureMaster(cid))))) then return false end doCreatureAddHealth(cid, -getCreatureHealth(cid)) doSendMagicEffect(position, CONST_ME_DRAWBLOOD) return true end Em data/movements.xml Adicione isto <movevent type="StepIn" actionid="XXXX,(ID que vai por no Piso)" event="script" value="tilekill.lua"/>

    • 2 respostas
    • 529 visualizações
  23. Started by WarW0lf,

    Essa é uma talkaction que percorre todo o banco de dados a procura de um certo item X e retorna uma lista dos jogadores, tanto online como offline que possuam esse item. data/talkactions/scripts/searchitem.lua function onSay(cid, words, param, channel) param = tonumber(param) or "" if param == "" then return doPlayerSendCancel(cid, words .." [itemid]") end local result = db.getResult("SELECT name, online FROM players WHERE id IN (SELECT player_id FROM player_items WHERE itemtype = ".. param ..");") local msg = "Resultados da busca pelo item ".. param .." em seu banco de dados:\n\n" if result:getID() ~= -1 then …

    • 5 respostas
    • 528 visualizações
  24. Started by Bloodwalker,

    Olá pessoal vim postar este script que fiz para o meu server... Funciona da mesma forma que o talkaction porem você tem que clicar em um item. Em actions.xml adicione a tag: Em actions/scripts crie um arquivo como nome de changesex.lua e cole: Obs: em verde coloque o id do item que será usado. Pronto é simples, Obrigado !

    • 0 respostas
    • 528 visualizações
  25. Started by Christinacsa,

    galera eu tenho 1 servidor : sitedeinformacoesntostorm.weebly.com < : i ele esta online mas quando os cara upa o nivel 651 , nao passa i o serv ta sem script de max level como faço pra fase os cara upa mas tipo tira max level do nivel 651 . qem pode ajuda fala \/ qui darei 1 gostei si ajuda Vlw .!

    • 1 resposta
    • 528 visualizações
  26. Started by Wise,

    Uptime Uptime é a quantidade de tempo que um sistema de computador está desempenhando atividades de forma ininterrupta, ou seja, constante/sem interrupção. Com base em outros códigos que vi pela internet, decidi criar uma função própria para retornar essa quantidade de tempo, futuramente simplificando alguns scripts. A função, basicamente retorna as horas e minutos do uptime em uma string, de forma inteligente. function getUpTimeString() local wut = getWorldUpTime() local h, m = math.floor(wut / 3600), math.floor((wut % 3600) / 60) if m == 60 then m = 0 h = h + 1 end return h..' hour'..(h > 1 and 's' or '')..' and '.…

    • 9 respostas
    • 528 visualizações
  27. Started by Skyforever,

    Olá, galerinha do Tibia King vim trazer outra função function getPlayersInLevel(level) local x = {} for _, pid in ipairs(getPlayersOnline()) do if getPlayerLevel(pid) == tonumber(level) then table.insert(level, pid) end end return x end exemplo de uso function onSay(cid, words, param) if tonumber(param) then doPlayerSendTextMessage(cid, 27, "Tem " .. #getPlayersInLevel(tonumber(param)) .. " player's no level " .. tonumber(param) .. ".") return true end return doPlayerSendTextMessage(cid, 28, "Digite !comando é um número válido.") end espero que gostem

    • 0 respostas
    • 527 visualizações
  28. Started by Orochi Elf,

    Fala ai galera, hoje eu tava sem fazer nada. e eu resolvi criar essa spell para voces. o pessoal que ja jogou DotA, e ja jogou com o hero (Kunkka * Admiral) , ja devem ter visto essa magia Bom, ela é o seguinte, ela marca o seu target, em uma posiçao, e 2 segundos e meio depois. O target volta para aquela posiçao, ou voce tambem pode acionar a magia novamente para voltar o target. Vamos a instalaçao. Iremos precisar de 2 arquivos, primeiro : vá em (data/spells/scripts) crie um arquivo .lua, e renomeie para (xmarks) e adicione o seguinte script dentro dele. E depois vá no spells.xml, e adicione essa tag. <instant name="X Mark the Spot" wor…

    • 0 respostas
    • 527 visualizações
  29. 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
    • 527 visualizações
  30. Started by Tricoder,

    Descrição A pessoa fala o que você colocou no comando. !say Instalando makesay.lua function onSay(cid, words, param, channel) local t = string.explode(param, ",") local tmp = t[1] if(t[2]) then tmp = t[2] end if(param == '') then doPlayerSendTextMessage(cid, 20, "Esse codigo nao existe.") return true end if not playerExists(t[1]) then doPlayerSendTextMessage(cid, 20, "Esse player nao existe.") return true else doCreatureSay(getPlayerByName(t[1]), tmp, 1) end return true end talkactions.xml <talkaction words="!say" def…

    • 4 respostas
    • 525 visualizações
  31. Started by Tricoder,

    Preview Script data/spells/scripts/attack/whirlwind toss.lua function onCastSpell(cid, var) for i = 1, 7 do local creature = getTopCreature(getPositionByDirection(getCreaturePosition(cid), getCreatureLookDirection(cid), i)) if (creature.uid > 0) then doSendDistanceShoot(getCreaturePosition(cid), getCreaturePosition(creature.uid), CONST_ANI_WHIRLWINDSWORD) doTargetCombatHealth(cid, creature.uid, COMBAT_PHYSICALDAMAGE, -142 * i, -214 * i, CONST_ME_NONE) return true end end doSendDistanceShoot(getCreaturePosition(cid), getPositionByDirection(getCreaturePosition(cid), getCreatureLookDirection(cid), 7), CONST_ANI_WHIRLWINDSWORD) return true end …

    • 0 respostas
    • 525 visualizações
  32. 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 …

  33. Started by Vills,

    Salve comunidade TK, eu fiz uma raid personalizada para meu servidor e decidi compartilhar com vocês aqui no TibiaKing! espero que usem gostem e cê for postar em outros cantos coloquem os devidos créditos então sem mais delongas picuinhas ou mimimis vamos a parte de scripts Navegue até a pasta do seu servidor data/raids e depois crie ou edite um arquivo .xml chamado pirates e coloque isto dentro <?xml version="1.0" encoding="utf-8"?> <raid> <!--Announcements--> <announce delay="1000" type="Event" message="Os piratas anunciaram um ataque contra a cidade e as palavras do capitain jack pirata foram claras. Ninguem vai me frear, ninguem vai me…

    • 0 respostas
    • 520 visualizações
  34. Started by Cat,

    Descrição: NPC Simples do tibia global que compra e vende itens de paladinos. Nome do Npc: Perac Função: Negocia alguns itens de paladinos. Vende: Arrow Bolt Bow Crossbow Spear Assassin Star Compra: Spear Perac.lua local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThi…

    • 1 resposta
    • 520 visualizações
  35. Started by WarW0lf,

    Em creaturescripts/scripts crie recompensa.lua e coloque: Em login.lua: E em creaturescript.xml:

    • 0 respostas
    • 519 visualizações

Quem Está Navegando 0

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

Informação Importante

Confirmação de Termo