Pesquisar na Comunidade
Mostrando resultados para as tags ''Action%252525252FTalkaction''.
Encontrado 38 registros
-
[Action] Item Que Da Level
Estava com um Pouco de Tempo e tiver a ideia de cria essa Script (-- Como Funciona? ao você da Use em um item irar ganhar x Level (você pode configurar no script quantos level dará ao da use no item) e Somente Players com x Level poderá usar esse item (tbm podes configurar no script) vamos lá, vá na pasta >> data\action\scripts e crie um arquivo.lua com o nome de itemlevel.lua e dentro cole:: e em actions.xml adicione essa tag:: Configurando:: @#Edit Caso alguém quera sem o Limite de Level use o que o Nosso Amigo Luan Disponibilizou:: é isso ai Pessoal até a proxima
-
Alavanca de itens aleatória!
Olá meus queridos, eu sou o Halls Santos e estou trazendo pra vocês uma alavanca que vende item, "mas ela só vende item?" bom, é! ueahea mas ela sorteia um dos itens que está disponível na lista. você poderá alterar os itens de acordo com o seu gosto, vamos ao script : em actions.xml adicione esta tag : <action actionid="2021" event="script" value="shoprandom.lua"/> agora vá em data/actions/scripts crie um arquivo lua com o nome shoprandom e adicione este código : -- CONFIGURAÇÕES -- PR = {2494, 2346, 7366, 8921, 7366} -- ID dos itens que será sorteado. money = {2160, 'crystal coin'} -- ID do crystal coin e nome. count = 20 -- Quantidade de dinheiro. cast = "[Alavanca Mágica]" function onUse(cid, item, fromPosition, itemEx, toPosition) local roleta = math.random(1, #PR) local CB = { doSendAnimatedText, doSendMagicEffect, doPlayerAddItem, doPlayerRemoveItem } if not CB[4](cid, money[1], count) then doPlayerSendCancel(cid, "Você precisa de "..count.." "..money[2].." pra usar a alavanca mágica.") CB[2](getThingPos(cid), CONST_ME_POFF) else CB[2](getThingPos(cid), 14) if(roleta == 1) then CB[3](cid, PR[1], 1) doBroadcastMessage(""..cast.." "..getCreatureName(cid).." usou a alavanca mágica e ganhou 1 "..getItemNameById(PR[1])..".", 22) elseif(roleta == 2) then CB[3](cid, PR[2], 1) doBroadcastMessage(""..cast.." "..getCreatureName(cid).." usou a alavanca mágica e ganhou 1 "..getItemNameById(PR[2])..".", 22) elseif(roleta == 3) then CB[3](cid, PR[3], 1) doBroadcastMessage(""..cast.." "..getCreatureName(cid).." usou a alavanca mágica e ganhou 1 "..getItemNameById(PR[3])..".", 22) elseif(roleta == 4) then CB[3](cid, PR[4], 1) doBroadcastMessage(""..cast.." "..getCreatureName(cid).." usou a alavanca mágica e ganhou 1 "..getItemNameById(PR[4])..".", 22) elseif(roleta == 5) then CB[3](cid, PR[5], 1) doBroadcastMessage(""..cast.." "..getCreatureName(cid).." usou a alavanca mágica e ganhou 1 "..getItemNameById(PR[5])..".", 22) end end return TRUE end Agora meus queridos, eu preciso que vocês coloquem o actionid : 2021 na alavanca para que funcione! Pronto, instalado com sucesso! Obs : para que tudo ocorra de forma correta em sua edição, leia as descrições do escript.. Então é só isto pessoal, sempre que eu estiver diante de uma ideia genial e tiver condição de fazer, farei o possível para disponibilizar para todos vocês, entrei no TK como aprendiz e agora estou postando o meu primeiro código feito do zero por min, obrigado e até a próxima. créditos : Halls Santos
-
[TalkAction] Sistema de Jail !
Opa galera blz? hoje vou trazer um sistema para vocês de jail, então vamos la ! Algumas Funções ! Funções: *Exemplo, GM quer prender um player que ta fazeno algu de errado, ai ele fala !jail ,4(no exemplo ele ficara 4 minutos preso), éo nome do fulano, !jail 4,fulano ,!jail 15,fulano ou !jail 30,fulano. * Verificação jogador o tempo de prisão (mostra data unjail) * auto unjail jogadores * Kick todos os jogadores da prisão depois de acidente / restart [teletransporte para jogador templo] Primeiramente vá em \data\talkactions e abra o talkactions.xml é lá adicione: <talkaction words="!jail" script="jailsystem.lua"/> <talkaction words="!unjail" script="jailsystem.lua"/> <talkaction words="/jail" script="jailsystem.lua"/> <talkaction words="/unjail" script="jailsystem.lua"/> Agora vá em \data\talkactions\scripts é crie um arquivo chamado jailsystem.lua é la adicione : -- Default jail time in seconds -- default_jail = 30 -- The permission you need to jail someone -- grouprequired = 4 -- StorageValue that the player gets -- jailedstoragevalue_time = 1338 jailedstoragevalue_bool = 1339 -- Set the position of the jail: -- jailpos = { x = 1037, y = 1004, z =7 } -- Set the position once unjailed: -- unjailpos = { x = 1029, y = 1005, z =7 } -- auto kicker, dont edit jail_list = {} jail_list_work = 0 function checkJailList(param) addEvent(checkJailList, 1000, {}) for targetID,player in ipairs(jail_list) do if isPlayer(player) == TRUE then if getPlayerStorageValue(player, jailedstoragevalue_time) < os.time() then doTeleportThing(player, unjailpos, TRUE) setPlayerStorageValue(player, jailedstoragevalue_time, 0) setPlayerStorageValue(player, jailedstoragevalue_bool, 0) table.remove(jail_list,targetID) doPlayerSendTextMessage(player,MESSAGE_STATUS_CONSOLE_ORANGE,'You were kicked from jail! See you later :)') end else table.remove(jail_list,targetID) end end end function onSay(cid, words, param) if jail_list_work == 0 then jail_list_work = addEvent(checkJailList, 1000, {}) end if param == '' and (words == '!unjail' or words == '/unjail') then if getPlayerStorageValue(cid, jailedstoragevalue_time) > os.time() then doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'You are jailed until ' .. os.date("%H:%M:%S", getPlayerStorageValue(cid, jailedstoragevalue_time)) .. ' (now is: ' .. os.date("%H:%M:%S", os.time()) .. ').') else if getPlayerStorageValue(cid, jailedstoragevalue_bool) == 1 then table.insert(jail_list,cid) doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'You will be kicked from jail in one second.') else doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'You are not jailed.') end end return TRUE end local jail_time = -1 for word in string.gmatch(tostring(param), "(%w+)") do if tostring(tonumber(word)) == word then jail_time = tonumber(word) end end local isplayer = getPlayerByName(param) if isPlayer(isplayer) ~= TRUE then isplayer = getPlayerByName(string.sub(param, string.len(jail_time)+1)) if isPlayer(isplayer) ~= TRUE then isplayer = getPlayerByName(string.sub(param, string.len(jail_time)+2)) if isPlayer(isplayer) ~= TRUE then isplayer = getPlayerByName(string.sub(param, string.len(jail_time)+3)) end end end if jail_time ~= -1 then jail_time = jail_time * 60 else jail_time = default_jail end if words == '!jail' or words == '/jail' then if getPlayerGroupId ( cid ) >= grouprequired then if isPlayer(isplayer) == TRUE then doTeleportThing(isplayer, jailpos, TRUE) setPlayerStorageValue(isplayer, jailedstoragevalue_time, os.time()+jail_time) setPlayerStorageValue(isplayer, jailedstoragevalue_bool, 1) table.insert(jail_list,isplayer) doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'You jailed '.. getCreatureName(isplayer) ..' until ' .. os.date("%H:%M:%S", getPlayerStorageValue(isplayer, jailedstoragevalue_time)) .. ' (now is: ' .. os.date("%H:%M:%S", os.time()) .. ').') doPlayerSendTextMessage ( isplayer, MESSAGE_INFO_DESCR, 'You have been jailed by '.. getCreatureName(cid) ..' until ' .. os.date("%H:%M:%S", getPlayerStorageValue(isplayer, jailedstoragevalue_time)) .. ' (now is: ' .. os.date("%H:%M:%S", os.time()) .. ').') return TRUE else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Player with this name doesn\'t exist or is offline.") return FALSE end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You don't have access to unjail other players.") return FALSE end elseif words == '!unjail' or words == '/unjail' then if getPlayerGroupId ( cid ) >= grouprequired then if isPlayer(isplayer) == TRUE then doTeleportThing(isplayer, unjailpos, TRUE) setPlayerStorageValue(isplayer, jailedstoragevalue_time, 0) setPlayerStorageValue(isplayer, jailedstoragevalue_bool, 0) table.remove(jail_list,targetID) doPlayerSendTextMessage(isplayer,MESSAGE_STATUS_CONSOLE_ORANGE,getCreatureName(cid) .. ' let you go out from jail! See you later :)') doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'You unjailed '.. getCreatureName(isplayer) ..'.') else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Player with this name doesn\'t exist or is offline.") return FALSE end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You don't have access to unjail other players.") return FALSE end end return FALSE end Algumas configurações grouprequired = 4 -- aki séra até o grupo que poderar usar no caso group 4 pra baixo. jailpos = { x = 1037, y = 1004, z =7 } -- aki séra a posição para aonde o player irar quando for preso. unjailpos = { x = 1029, y = 1005, z =7 }- -aki séra para aonde ele for quando ele n tiver mais preso, no caso unjail. Creditos: Gesior.pl EU. Lembre-se eu testei em tibia 8.54 é 8.60 é funcionou perfeitamente !
-
[Action] Script de boost stone parecido com otpokemon
Olá pessoal tudo bem? Eu tava mexendo numas pastas aqui e achei esse script de boost stone muito simples. Ele boosta seu pokemon mas depois de tantos boost ele pode falhar é um pouco parecido com o do otpokemon. data/actions/scripts/boost stone.lua Tag em data/actions/actions.xml Foi testado em PDA sem level! Bom espero que tenham gostado e bom proveito!
-
[action] Edo Tensei
primeiro crie os monstros de edo tensei em actions copie um arquivo e renomeie para edocatch apague tudo oq tem nele e cole isso primeiro crie os monstros de edo tensei em actions copie um arquivo e renomeie para edocatch apague tudo oq tem nele e cole isso local mtrs = { ["[Edo Tensei] Madara] = {hp = 50000, maxhp = 50000, corpse = 2936, chance = 100}, ["[Edo Tensei] Sasuke] = {hp = 50000, maxhp = 50000, corpse = 2806, chance = 100}, ["[Edo Tensei] Deidara] = {hp = 50000, maxhp = 50000, corpse = 2879, chance = 100}, } local vocs = {300, 649} local corpos = {2936, 2806, 2879} function onUse(cid, item, frompos, item2, topos) if(not(isInArray(vocs, getPlayerVocation(cid)))) then return doPlayerSendTextMessage(cid, 26, "You cannot use this object.") end if(not(isInArray(corpos, item2.itemid))) then doPlayerPopupFYI(cid, "Para usar o Edo Tensei você deve usar o pergaminho em algum corpo de um jogador.") return true end for pet_name, v in pairs(mtrs) do if item2.itemid == v.corpse then if math.random(0,100) <= v.chance then doSendMagicEffect(topos, 2) doPlayerSendTextMessage(cid, 27, "".. pet_name .. " foi selado nesse pergaminho.") doRemoveItem(item2.uid, 1) doRemoveItem(item.uid, 1) local itemcatch = doPlayerAddItem(cid, 11390, 1) doItemSetAttribute(itemcatch, "namepet", pet_name) doItemSetAttribute(itemcatch, "description", "Neste pergaminho foi selado um ".. pet_name ..".") doItemSetAttribute(itemcatch, "lifepet", v.hp) doItemSetAttribute(itemcatch, "maxlifepet", v.maxhp) else doPlayerSendTextMessage(cid, 27, "Falhou.") end end end return true end Configuração azul=nome do monster verde=hp que o monster vai nasce azul fraco=id do monster morto rosa=chance de selar o corpo amarelo=vocaçoes para usar o edo tensei vermelho=id do item que solta o edo tensei agora copie outro arquivo e renomeie para edogo apague tudo oq tem dentro e cole isso local config = { percent = 15, --- porcentagem do chakra que perde } function onUse(cid, item, frompos, item2, topos) local health = tonumber(getItemAttribute(item.uid, "lifepet")) local mhp = tonumber(getItemAttribute(item.uid, "maxlifepet")) local lifedraw = math.ceil(getCreatureMaxHealth(cid) * (config.percent)/100) local vocs = {300, 649} local msg0 = [[ Você ssó pode ter 0 summon(s), A seguinte tabela mostra os leveis e o respectivo número de summons que um player terá ao estar nele Level <~> [summons] ~->50[1] ~->150[2] ~->200[2] ~->350[3] ~->450[4] ]] local msg1 = [[ Você ssó pode ter 1 summon(s), A seguinte tabela mostra os leveis e o respectivo número de summons que um player terá ao estar nele Level <~> [summons] ~->50[1] ~->150[2] ~->200[2] ~->350[3] ~->450[4] ]] local msg2 = [[ Você ssó pode ter 2 summon(s), A seguinte tabela mostra os leveis e o respectivo número de summons que um player terá ao estar nele Level <~> [summons] ~->50[1] ~->150[2] ~->200[2] ~->350[3] ~->450[4] ]] local msg3 = [[ Você ssó pode ter 3 summon(s), A seguinte tabela mostra os leveis e o respectivo número de summons que um player terá ao estar nele Level <~> [summons] ~->50[1] ~->150[2] ~->200[2] ~->350[3] ~->450[4] ]] local msg4 = [[ Você ssó pode ter 4 summon(s), A seguinte tabela mostra os leveis e o respectivo número de summons que um player terá ao estar nele Level <~> [summons] ~->50[1] ~->150[2] ~->200[2] ~->350[3] ~->450[4] ]] if(not(isInArray(vocs, getPlayerVocation(cid)))) then return doPlayerSendTextMessage(cid, 26, "You cannot use this object.") end if health <= 0 then return doPlayerSendCancel(cid, "Esse pet esta morto.") end if #getCreatureSummons(cid) == 0 and getPlayerLevel(cid) <= 49 then doPlayerPopupFYI(cid, msg0) return true end if #getCreatureSummons(cid) == 1 and getPlayerLevel(cid) <= 149 then doPlayerPopupFYI(cid, msg1) return true end if #getCreatureSummons(cid) == 1 and getPlayerLevel(cid) <= 199 then doPlayerPopupFYI(cid, msg1) return true end if #getCreatureSummons(cid) == 2 and getPlayerLevel(cid) <= 349 then doPlayerPopupFYI(cid, msg2) return true end if #getCreatureSummons(cid) == 3 and getPlayerLevel(cid) <= 449 then doPlayerPopupFYI(cid, msg3) return true end if #getCreatureSummons(cid) == 4 and getPlayerLevel(cid) >= 450 then doPlayerPopupFYI(cid, msg4) return true end local pet_name = getItemAttribute(item.uid, "namepet") if item.itemid == 11390 then if not getTilePzInfo(getPlayerPosition(cid)) then if #getCreatureSummons(cid) < 1 and getPlayerLevel(cid) > 49 or #getCreatureSummons(cid) < 2 and getPlayerLevel(cid) > 149 or #getCreatureSummons(cid) < 2 and getPlayerLevel(cid) > 199 or #getCreatureSummons(cid) < 3 and getPlayerLevel(cid) > 349 or #getCreatureSummons(cid) < 4 and getPlayerLevel(cid) > 449 then if isCreature(cid) then if getCreatureMaxHealth(cid) then local summon = doSummonCreature(pet_name, topos) doRemoveItem(item.uid, 1) doConvinceCreature(cid, summon) setCreatureMaxHealth(summon, mhp) doCreatureAddHealth(summon, mhp) doCreatureAddHealth(summon, health - mhp) doCreatureAddHealth(cid, -5000) doCreatureAddMana(cid, -5103) doSendMagicEffect(getCreaturePosition(summon), 2) doCreatureSay(cid, "EDO TENSEI!", 19) end else doPlayerSendCancel(cid,'Você não pode invocar uma criatura de uma zona protegida.') end end end end return true end Configuração local msg=tabela do edo tensei e nessa parte getCreatureSummons(cid) < 1 é a quantidade de summon e nessa getPlayerLevel(cid) > 49 é o level pra usa no caso é 50 porque tem que colocar 1 a menos agora abra actions.xml e adicione <!-- Edo Tensei --> <action itemid="11389" event="script" value="edocatch.lua"/> <action itemid="11390" event="script" value="edogo.lua"/> Configuração azul=id do item que captura o edo tensei vermelho=id do item que solta o edo tensei Créditos BananaFight LuckOake MaXwElldEn Gears PsyMcKenzie por terem criado o pet system que usei de base
-
[talkaction] Adicionar X item para o player
Para quem não sabe como funciona o script : O ADM do servidor digita um comando para dar X quantidade de item para X player.Útil para quando terminar um evento o ADM dar X item para tal player pelo comando e não jogando o item no chao. • Adicionando o script • "data/talkactions/giveitem.lua" : function onSay(cid, words, param) local param = param.explode(param, ',') if param then if isPlayer(getCreatureByName(param[1])) == TRUE then doPlayerSendTextMessage(getCreatureByName(param[1]), 22, "Você acabou de receber um item do ADM!") doPlayerAddItem(getCreatureByName(param[1]), param[2], param[3]) end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") end return TRUE end "data/talkactions/talkactions.xml" : <talkaction log="yes" access="5" words="/giveitem" event="script" value="giveitem.lua"/> • Configurando •
-
Nova moeda no ot. Script
Em PastaDoSeuOt/data/actions/ Edite o arquivo: actions.xml Adicione essas linhas no seu actions.xml, procure antes pra ver se já tinha uma delas e apague e coloque assim: Em PastaDoSeuOt/data/actions/scripts/other Edite o arquivo (ou crie): changegold.lua Agora vá em Em PastaDoSeuOt/data/items/ Edite o arquivo: items.xml Procure por Você pode substituir por outro item basta trocar os 9971 por outro id desejado eu coloquei esse porque gosto da imagem de barra de ouro, não se esqueça de tirar os loots dos monstros q dropam o gold ignote http://www.tibiawiki.com.br/wiki/Gold_Ingot
-
Broadcast System 100%
Fala galera do TK, hoje vim trazer um script que eu já fiz a algum tempo prum cara no suporte, é nada mais e nada menos doque um sistema de broadcast onde players maiores que um determinado level pagam um determinado valor de gp's para soltarem uma mensagem para o server todo. talkactions\scripts\broadcast22.lua: local config = { storage = 19400, -- storage em que será salvo o tempo cor = "advance", -- de acordo com o constant.lua da lib tempo = 2, -- em minutos price = 1000, -- preço pra usar o broadcast level = 100 -- level pra poder utilizar o broadcast } function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end if getPlayerLevel(cid) >= config.level then if getPlayerStorageValue(cid, config.storage) - os.time() <= 0 then if doPlayerRemoveMoney(cid, config.price) then setPlayerStorageValue(cid, config.storage, os.time() + (config.tempo*60)) doBroadcastMessage("[BROADCAST] "..getCreatureName(cid)..": "..param.."", config.cor) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You have successfully sent a broadcast, now you'll have to wait " ..config.tempo.. " minute(s) until you broadcast again.") return false else doPlayerSendCancel(cid, "You don't have " ..config.price.. " gp's for broadcasting.") return false end else doPlayerSendCancel(cid, "You have to wait " ..(getPlayerStorageValue(cid, config.storage) - os.time()).. " seconds until you can broadcast again.") return false end else doPlayerSendCancel(cid, "You have to be level " ..config.level.. " or more in order to use broadcast.") end end e em talkactions.xml adicione essa linha: <talkaction log="yes" words="/all" event="script" value="broadcast22.lua"/> Da forma que tá configurado os players nv 100 ou mais poderão digitar /all Mensagem e por apenas 1000 gp's eles falarão a mensagem para o server inteiro, feito isso ele terá que esperar 2 minutos para mandar outro broadcast. Se você quiser mudar a cor é só ir no constant.lib e procurar algo parecido com isso daqui: MESSAGE_TYPES = { ["advance"] = MESSAGE_EVENT_ADVANCE, ["event"] = MESSAGE_EVENT_DEFAULT, ["white"] = MESSAGE_EVENT_DEFAULT, ["orange"] = MESSAGE_STATUS_CONSOLE_ORANGE, ["info"] = MESSAGE_INFO_DESCR, ["green"] = MESSAGE_INFO_DESCR, ["small"] = MESSAGE_STATUS_SMALL, ["blue"] = MESSAGE_STATUS_CONSOLE_BLUE, ["red"] = MESSAGE_STATUS_CONSOLE_RED, ["warning"] = MESSAGE_STATUS_WARNING, ["status"] = MESSAGE_STATUS_DEFAULT } Uma imagem pra vcs verem como é:
-
Box - Pokétibia
Olá galera, tudo beleza? Hoje venho trazer ao tibia King como adicionar uma box ao seu pokétibia.. Vamos lá ! (Peguei de base o Pokémon Erondino) Vá na Pasta do seu sever/Data/Actions/Scripts E cria um novo arquivo.lua. Cole isso dentro do arquivo: Explicando linhas: Vermelho - 15 :Aqui é o level que o player precisa ter para abrir a box. Laranja - ID DO ITEM: Aqui você vai por o ID da box, a sprite. Rosa: Aqui você vai por o nome do pokémon que deseja que fique na box. Azul: Número do pokémon, exemplo ali já tem adicionado 3 pokémons se você for adicionar mais um você vai copiar e colar o seguinte script: A primeira linha elseif r1 == 3 then substitua o 3 pelo número do pokémon na ordem, 4,5 etc.. Agora vai até á Pasta do Seu server/Data/Actions/ E abre o actions.xml e adicione a seguinte tag: <action itemid="ID DO ITEM" event="script" value="box.lua"/> Espero ter ajudado Dúvidas? Mande Pm
-
[ACTION] Como criar uma quest
---------------------- // ---------------------- Olá muita gente (nem tanta) tão procurando como criar uma quest, estou aki para ajudar (ebauhu -sqn) gogo! Siga-me! ---------------------- // ---------------------- Pasta do teu servidor → Data → Action → Scripts. Agora crie um arquivo de documento de texto e nomeie ele do que quizer.. obrigatoriamente o arquivo ser .lua! Bom ápos fazer isso cole este script: No meu caso, vou criar um arquivo chamado Quest30.lua ---------------------- // ---------------------- [~] LEGENDA Dourado = É a posição que quando alguem abrir o bau, ele será teleportado para a coordenada que esta ali. Cinza = É o level necessário para poder abrir o bau. Roxo Forte = É o Action ID do Bau, Use qualquer um, porém não pode ser repetido em nenhum Script. Laranja = São os ID'S da Storage, usa qualquer um, porém não pode ser repitido. ( Este número não pode contér em outro script ) Rosa = É a mensagem que aparece quando abre o bau. Azul Forte = É o ID do item que ganha quando abre o bau. Azul Fraco = É a quantidade que vem do item quando abre o bau. Cyano = É a mensagem que aparece quando você tenta abrir o mesmo baú pela 2 vez. Verde = E a mensagem que aparece quando você não tem o nivel necessario para abrir o bau. Agora salve o arquivo. ---------------------- // ---------------------- Agora me siga novamente: Pasta do teu servidor → Data → Action. Quando chegar neste local, Clicke com botão direito no "Action.xml" E clicke em EDITAR Agora adicione o seguinte código: ---------------------- // ---------------------- [~] LEGENDA Roxo Forte = É o Action ID do bau, que você colocou la quando criou o arquivo na pasta Scripts. Azul Forte = É o nome do arquivo.lua que você criou na pasta Scripts. ---------------------- // ---------------------- [~] REMERE'S MAP EDITOR Agora é a ultima parte! [→] Abra seu Remere's [→] Apos ter abrido o Remere's, Vá no local do baú.. [→] Abra o bau, clickando duas vezes nele. [→] Na ACTION ID Você coloca o numero que colocou no action.xml, que no caso é 9070 [→] E em "UNIQUE ID" Você faz a mesma coisa, coloca o mesmo numero repetido, ou seja é 9070 ---------------------- // ---------------------- Depois de ter feito tudo isso,salve tudo e reinicie seu Servidor, quando logar abra o bau e ganhe a recompensa que voce editou. Flw Factur~~ ---------------------- // ---------------------- [~] Outros Topicos. Como criar um teleporte que quando mata monstro abre por 30 segundos. Pokemon Zot editado by: Factur
-
[talkaction] Mandar mensagem para pasta do servidor
Para quem não sabe como funciona o script : É um comando que o player poderá usar para reportar bug's direto para o ADM do servidor com um intervalo de 60 minutos(configurável) O bug será enviado para um log(bloco de notas) que será criado na pasta do servidor ! • Adicionando o script • Em "data/talkactions/scripts/reportbugs.lua" : function onSay(cid, words, param, channel) if os.time() > getPlayerStorageValue(cid, 14001) then setPlayerStorageValue(cid, 14001, os.time()+3600) local file = io.open('log.txt','a') file:write(getCreatureName(cid)..": "..tostring(param).."\n") file:close() doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING,'Mensagem enviada com sucesso.') else doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING,'Você não pode mandar outra mensagem ainda. Falta(m) '..(math.ceil((getPlayerStorageValue(cid, 14001)-os.time())/60)+1)..' minuto(s) para você poder mandar uma nova mensagem.') end return TRUE end Em "data/talkactions/talkactions.xml" : <talkaction words="/reportbug" event="script" value="reportbugs.lua"/> • Imagens • Quando utilizar o comando : Quando utilizar o comando sem esperar o tempo : Dentro da pasta do servidor é criado um txt chamado "log" e dentro dele ficará as mensagens : • Configurando •
-
[Trocar Sexo do Personagem] - !trocarsexo ~ por dias vip
Olá TK TK TK! Venho hoje trazer um sisteminha de troca de sexo, exemplo: o player é male quer virar female ou vice-versa. Muitos não gostam de usar o GP para troca de sexo para que evite player ficar trocando toda hora. Então nesse script a troca de sexo é por dias vip! Vamos ao que interessa: Em talkactions/scripts crie um arquivo com o nome de trocarsexo.lua e adicione o seguinte dentro: function onSay(cid, words, param, channel) local config = {costPremiumDays = 0} if(getPlayerSex(cid) >= 2) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce nao pode mudar para o mesmo sexo.") return TRUE end if(getPlayerPremiumDays(cid) < config.costPremiumDays) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Desculpe, mas voce nao tem dias vip- change sex custa " .. config.costPremiumDays .. " days.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return TRUE end if(getPlayerPremiumDays(cid) < 65535) then doPlayerAddPremiumDays(cid, -config.costPremiumDays) end if(getPlayerSex(cid) == PLAYERSEX_FEMALE) then doPlayerSetSex(cid, PLAYERSEX_MALE) else doPlayerSetSex(cid, PLAYERSEX_FEMALE) end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce trocou seu sexo e perdeu " .. config.costPremiumDays .. " days of premium time.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_RED) return TRUE end Em data/talkctions/talkactions.xml adicione a seguinte linha: <talkaction words="!trocarsexo" script="trocarsexo.lua" /> FIM! Qualquer dúvida não deixe de perguntar aqui no tópico, não tenha vergonha ninguém nasceu sabendo. Créditos: Doidin Absolute Até a próxima babyes!
-
Criando quest RME Map editor
Bem aqui irei ensinar como criar uma quest no RME Map editor. [RAPIDO] Primeiro abrindo e Remeres e colocando o box em algum local no server abra ela e coloque o Action id da quest [iNVENTA UMA], Exemplo: 24092. Depois vá no seu server e abra [ACTIONS] e depois [sCRIPTS] crie um bloco do tipo .lua Exemplo: Tutorial.lua ou Quest.lua sei lá. Depois abra o bloco que foi criado e coloque: quest King.lua Storage que não seja existente nem usada Exemplo: 19884. Troque as informações do Tipo ITEM ID para o a ID do item que deseja colocar Exemplo ID do Dinheiro: 2160 coloque a mensagem que o player ira receber depois de save. Depois vá em actions.xml e coloque : <action actionid="ACTION ID QUE VOCÊ COLOCOU NO BAU" event="script" value="NOME DO ARQUIVO EM SCRIPT.lua"/> E depois de save coloque isso no actions.xml em local apropriado. PRONTO OBRIGADO ESPERO AJUDAR.
-
Afk System!
ALO, COM QUEM EU FALO? ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ INTRODUÇÃO Galera, nesse topico estarei ensinando um projeto meu de Afk System, que foi esqueçido. Esse sistema é bem basico e simples, porém é legal, util e interresante... Só avisando... Ele é totalmente configuravel xD Então vamos la... ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ COMO FUNCIONA O jogador digitará um comando e fica saindo automaticamente umas mensagens em cima dele, também apareçerá uma mensagem de o jogador estará ausente, e apareçerá tambem uma janela dissendo que se o jogador se mover será cancelado o sistema. NÃO INTENDEU? VEJA COM SEUS PROPRIOS OLHOS. ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ ENSINANDO Crie um arquivo chamado "Afk" em tipo ".lua" em: data\talkactions\scripts e coloca essas configurações dentro do arquivo criado: Após fazer isso abra o arquivo "TalkActions" do tipo ".xml". Localizado em: data\talkactions E coloque essa linha no aquivo: ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ CONFIGURANDO ESSAS CONFIGURAÇÕES SÃO PARA TROCAR AS MENSAGENS. Onde está escrito em VERMELHO, é onde fica as mensagem que fica em cima do Jogador. Obs¹: Caso queira mensagem diferentes, digite-as entre aspas e separadas por virgula Obs²: Essas mensagens ficam repetindo sequencialmente. O número escrito em AZUL, é o tempo em segundos que a mensagem apareçerá (Intervalo) Em AMARELO, é a mensagem que apareçerá em vermelho, essa mensagem é como se fosse porque o jogador está ausente(Configurado somente no arquivo, não pelo jogador) O CINZA ESCURO, é a mensagem que apereçerá na janela, para alertar o jogador que se ele se mover ele para de mandar essas mensagens. ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ AJUDEI? GOSTOU? FOI BOM? ESTÁ EXPLICATIVO? ESTÁ ORGANIZADO? DA REP+ afinal, não explode o Dedo.. ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
-
[Actions Script] Scripts Boost Stone e Shiny Stone configuráveis.
Iaew galerinha. No meu primeiro tópico aqui no fórum,vou mostrar a vocês 2 scripts muito uteis para seu PokeTibia. Índice Boost Stone Script + edição Shiny Stone Script + edição Boost Stone Configurável. Primeiro crie um arquivo .LUA com o nome de booststone na pasta data\actions\scripts. Agora coloque isso dentro do arquivo booststone.lua recém criado: Em Azul deve permanecer do jeito que está para não haver bugs. Já os Vermelhos edite da seguinte forma: O 10 representa a quantidade de Boost que seu pokemon ira ganhar. Ex: A Boost Stone da +10 ao pokemon. O primeiro 100 representa o numero máximo que a Boost Stone pode ser usada em um certo pokemon. Ex: Seu pokemon pode ficar ate +100. No segundo 100 coloque o mesmo valor do 100 editado anteriormente. Em Verde são os textos que ira apárecer a usar a Boost Stone no pokemon, etc... Pode modificar eles,mas onde esta ""..pokemon.."" ou ""..boosts.."" deve permanecer como esta. Agora abra o arquivo actions.XML e adicione a seguinte linha: Em Azul deve permanecer do jeito que está para não haver bugs. Já o IDDABOOST coloque o id da sua Boost Stone In-Game. o Ex: Se no jogo,sua Boost Stone for 1703,em IDDABOOST você coloca 1703. Shiny Stone Configurável. Primeiro crie um arquivo .LUA com o nome de Shiny stone na pasta data\actions\scripts. Agora coloque isso dentro do arquivo Shiny stone.lua recém criado: Agora vamos editar O Scritp da Shiny Stone e um pouco "xatinho" de se editar,veja porque: Em Azul deve permanecer do jeito que está para não haver bugs. Em Verde,são os texto,edite avontade Na variavel X coloque a seguinte linha: Agora edite da seguinte forma: Em Azul deve permanecer do jeito que está para não haver bugs. X = Nome do Pokemon Y = Nome do Shiny Pokemon Z = Quantidade de Shinys Stone que precisa pra evoluir tão pokemon. Um exemplo: ["Alakazam"] = {"Shiny Alakazam", 8}, Vou evoluir o Alakazam para Shiny Alakazam usando 8 Shiny Stone. Você tera que fazer 1 linha para cada pokemon que pode virar Shiny,se tiver 10 pokemons Shinys,terá que ter 10 linhas. Na variavel Y coloque a seguinte linha: Agora edite da seguinte forma: X = Será o ID das Poke Balls do seu servidor. Um exemplo: [1703} = {newBall = 1703} Ou se quiser um Shiny Ball para ficar os Pokemons Shiny e so trocar o ultimo ID pelo ID da Poke Ball que ira virar. Agora abra o arquivo actions.XML e adicione a seguinte linha: Em Azul deve permanecer do jeito que está para não haver bugs. Já o IDDABOOST coloque o id da sua Shiny Stone In-Game. o Ex: Se no jogo,sua Shiny Stone for 1703,em IDDABOOST você coloca 1703. FIM Espero que vocês gostem dos scrips. PS : Não fui eu que fez ele :/ eu só mecho na área de mapas. Meu primeiro tópico,se estiver faltando algo me avisem para eu adicionar,e comente se deu certo,eu se deu erro,fale qual foi para eu tentar corrigi-lo. Quem Sou Eu? Eu sou o MasterKiito o mais novo integrante aqui do TibiaKing e espero ajudar todos vocês
-
[action] Canoa em Movimento
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, ignorefirstborders = 3 } local fight = createConditionObject(CONDITION_INFIGHT) setConditionParam(fight, CONDITION_PARAM_TICKS, -1) local function comparePos(poss, pos) return pos.x == poss.x and pos.y == poss.y end local n, s = 0, 0 local function getRightPos(poss, last) ps = { {x = poss.x, y = poss.y - 1, z = poss.z}, {x = poss.x + 1, y = poss.y, z = poss.z}, {x = poss.x, y = poss.y + 1, z = poss.z}, {x = poss.x - 1, y = poss.y, z = poss.z} } for _, pos in pairs(ps) do if(getTileItemById(pos, 4820).uid > 0) then if(not comparePos(last, pos)) then p = pos return p end else for b = 1, #config.endborders do if(getTileItemById(pos, config.endborders[b]).uid > 0 and s > config.ignorefirstborders) then n = n + 1 p = pos return p and n end end end end end local function doTravel(cid, poss, last) getRightPos(poss, last) travel = p.x > poss.x and "east" or (p.y < poss.y and "north" or (p.y > poss.y and "south" or (p.x < poss.x and "west" or "false"))) if n > 1 then p = poss end if(travel == "false") then if(getCreatureCondition(cid, CONDITION_INFIGHT)) then doRemoveCondition(cid, CONDITION_INFIGHT) end n = 0 s = 0 return false end local des = { ["north"] = {cPos = {{x = p.x, y = p.y - 1, z = p.z}, p, {x = p.x, y = p.y + 1, z = p.z}}, dir = 0, boat = {3587, 3589, 3591}}, ["east"] = {cPos = {{x = p.x + 1, y = p.y, z = p.z}, p, {x = p.x - 1, y = p.y, z = p.z}}, dir = 1, boat = {3596, 3594, 3592}}, ["south"] = {cPos = {{x = p.x, y = p.y + 1, z = p.z}, p, {x = p.x, y = p.y - 1, z = p.z}}, dir = 2, boat = {3591, 3589, 3587}}, ["west"] = {cPos = {{x = p.x - 1, y = p.y, z = p.z}, p, {x = p.x + 1, y = p.y, z = p.z}}, dir = 3, boat = {3592, 3594, 3596}} } local x = des[travel] if(x) then for x = p.x - 2, p.x + 2 do for y = p.y - 2, p.y + 2 do pos = {x = x, y = y, z = p.z} for id = 3587, 3596 do if(getTileItemById(pos, id).uid > 0) then doRemoveItem(getTileItemById(pos, id).uid, 1) end end end end for c = 1, #x.boat do its = doCreateItem(x.boat[c], 1, x.cPos[c]) if(n > 0 and c == 2) then doSetItemActionId(its, 6901) end end doTeleportThing(cid, x.cPos[2], false) doCreatureSetLookDir(cid, x.dir) if(n > 1) then if(getCreatureCondition(cid, CONDITION_INFIGHT)) then doRemoveCondition(cid, CONDITION_INFIGHT) end n = 0 s = 0 return false end s = s + 1 end return addEvent(doTravel, config.speed, cid, p, poss) end function onUse(cid, item, fromPosition, itemEx, toPosition) if(getCreatureCondition(cid, CONDITION_INFIGHT)) then return doPlayerSendCancel(cid, "You can't travel when you're in a fight.") end doTeleportThing(cid, toPosition) doAddCondition(cid, fight) doTravel(cid, getPlayerPosition(cid), getPlayerPosition(cid)) return true end "data/movements/movements.xml" : (TFS 0.3/0.4) <movevent type="StepIn" itemid="4820" event="script" value="water.lua"/> (TFS 0.2/1.0) <movevent event="StepIn" itemid="4820" script="water.lua"/> "data/movements/scripts/water.lua" : local boatids = {3589, 3594} function onStepIn(cid, item, position, fromPosition) for _, id in pairs(boatids) do if(getTileItemById(fromPosition, id).uid > 0) then return doTeleportThing(cid, fromPosition) end end return true end Se você usa TFS 0.3/0.4, adicione isto em "data/lib/050-function.lua" (se você ja não tiver). function doSetItemActionId(uid, actionid) return doItemSetAttribute(uid, "aid", actionid) end Creditos : 99% - Limos o/. 1% - ViitinG.
-
[Simples - TalkActions] Anti Bot 100% AFK
Ola Galera Segue um Script Feito por mim, com ele você não precisa mais fica perguntando " Tae? tae? tae?" só usar esse comando e em 1 min ele é teleportado para o Templo! Regras : Você não pode usar em si mesmo, Somente pode usar no mesmo Player depois de 1hr, Somente Senior Tutor + podem usar o Comando. Segue o Talk : function CheckTime(cid) local storage_acusado = 526335 if isPlayer(cid) then if getPlayerStorageValue(cid, storage_acusado) ~= -1 then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) setPlayerStorageValue(cid, storage_acusado, -1) else return nil end else return nil end end function CheckBot(cid) local time = os.time() + 1 * 60 * 60 local storage = 526334 local storage_acusado = 526335 local storage_check = 526336 local storage_resp = (math.random(1, 9) + math.random(1, 9) * math.random(1, 9)) if getPlayerStorageValue(cid, storage) < os.time() then setPlayerStorageValue(cid, storage, time) setPlayerStorageValue(cid, storage_acusado, 1) setPlayerStorageValue(cid, storage_check, storage_resp) doPlayerPopupFYI(cid, "You have been accused of BOT 100% AFK, has 1 minute to Unblock such termination or will be teleported to the temple.\nSay !check remove, "..getPlayerStorageValue(cid, storage_check).."") addEvent(CheckTime, 60 * 1000, cid) else return false end return true end function onSay(cid, words, param, channel) local msg = "~~Talk Anti-Bot 100% Afk~~\n\n" local storage_acusado = 526335 local storage_check = 526336 local t = string.explode(param, ",") local player = getPlayerByName(t[2]) if param == "" then return doPlayerPopupFYI(cid, "Ex: /check add, "..getPlayerName(cid).."") elseif not isPlayer(player) then return doPlayerPopupFYI(cid, "Player is not online or does not exist") end if (t[1] and t[1] == "add") then if getPlayerByName(player) == getPlayerByName(cid) then doPlayerPopupFYI(cid, ""..msg.."You can not check yourself!") return true end if getPlayerAccess(cid) < 3 then doPlayerPopupFYI(cid, ""..msg.."Only Tutor, GM, ADM can do check!") return true end if CheckBot(player) == false then doPlayerPopupFYI(cid, ""..msg.."This Player has been verified!\n timeout check [1hr ~ 1hr].") end elseif (t[1] and t[1] == "remove") then if getPlayerStorageValue(cid, storage_acusado) == -1 then doPlayerPopupFYI(cid, ""..msg.."You are not being checked!") return true end if tonumber(t[2]) ~= getPlayerStorageValue(cid, storage_check) then doPlayerPopupFYI(cid, ""..msg.."Wrong Password!") else setPlayerStorageValue(cid, storage_acusado, -1) doPlayerPopupFYI(cid, ""..msg.."Thanks for Confirming!") end return true end return true end Talk.xml <talkaction words="!check;/check" event="script" value="NOMEDOARQUIVO.lua"/> Creditos? Emerson Henrique ( Só Posto Scripts Meus ) Até O Próximo Episodio
-
Trocar 100 demon dust's por demon armor
Salve salve TK! Hoje eu venho trazer o meu primeiro script... com a ajuda do tópico do matheus eu estou tentando fazer algums scripts... então 50% dos creditos deste tópico vão para ele :) Explicação: Seguinte esse script faz você trocar 100 demons dusts por uma demon armor, porem só poderá trocar uma vez é um script simples mas confesso que para min deu um certo trabalho para fazer... Prints: Ok, vamos aos codigos! Crie um arquivo .lua com o nome de "transform_demon" em "data/actions/scripts" e dentro coloque: -----------------------------Script por Vills---------------------------------- function onUse(cid, item, frompos, item2, topos) if item.itemid == 5906 and item.type == 100 then if getPlayerStorageValue(cid,12050) == -1 then doPlayerSendTextMessage(cid,18,"Você acaba de trocar 100 demon dusts por uma demon armor.") doRemoveItem(item.uid,item.type) doPlayerAddItem(cid,2494,1) setPlayerStorageValue(cid,12050,1) else doPlayerSendTextMessage(cid,18,"Você não pode trocar novamente.") end end return TRUE end Agora vá até "data/actions" e abra o "actions.xml" com o bloco de notas e dentro adicione a seguinte tag <action itemid="5906" event="script" value="transform_demon.lua"/> E pronto, basta dar "/reload actions" ou "reiniciar o servidor" e testar, lembrando que é um script bem simples porem é meu primeiro script.
-
[Talkaction] Comprar Vida - Baiaks
Olá linduxos do TK, trago hoje um script que venho modificando, é um script talkaction de comprar vida, ideal para servidores baiaks, exp alta e tudo mais. Com um simples comando seus jogadores poderão comprar vida. O dinheiro é removido ao usar o comando e é adicionado no mesmo momento vida ao char Vamos ao que interessa, em data/talkactions/talkactions.xml adicione a seguinte linha: <talkaction words="!comprarvida" event="script" value="comprarvida.lua"/> Pós adicionar a linha, vá em data/talkactions/scripts e crie um arquivo com o nome de comprarvida.lua e adicione o seguinte: function onSay(cid, words, param) if doPlayerRemoveItem(cid,2160,50) and getCreatureMaxHealth(cid) <= 2107735400 then setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) + 200) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MORTAREA) doPlayerPopupFYI(cid, "voce recebeu 200 de life por 500k.") else doPlayerPopupFYI(cid, "Voce nao tem 500k ou ja atingiu o limite máximo de vida.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_FLAMEAREA) end return TRUE end Configuração a seu gosto/servidor: if doPlayerRemoveItem(cid,2160,50) = 2160 é o número do item, no caso aí está por gold (crystal coins) ; ,50 = quantia de crystal coins que irá custar. Caso deseja fazer por um item vip, uma moeda vip algo específico coloque em 2160 o id do item, exemplo: 5985,QUANTIA. no caso 1. setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) + 200) = +200 é o tanto de vida que o personagem irá ganhar ao comprar. <= 2107735400 then = Máximo de vida que o player pode ter, no caso este número é o tanto que o client do tibia suporta (todos os servidores) As mensagens são visíveis e poderão ser editadas. doPlayerPopupFYI(cid = as magias irão aparecer em janelas para fechar, caso queira que apareça no Default substitua a parte por: doPlayerSendTextMessage(cid . Creditos: Absolute Subwat Caso haja alguma dúvida/crítica/elogio, comente! Espero ver vários servidores usando Absolute.
-
[Action] Mistery Box
Galera, vou colocar aqui um script que desenvolvi para o meu servidor. Nada mais é que uma box onde você clica e ganha um item aleatório. Primeiro vamos ao código, crie um arquivo chamado misterybox.lua em actions/scripts: local items = {2647, 2650, 2661, 2668, 2393} local chancenada = 10 function onUse(cid, item) if (getPlayerPremiumDays(cid) < 1) then doPlayerSendCancel(cid, "Nao pode usar se nao for premium account.") return true end if math.random(1, 100) <= chancenada then doPlayerSendCancel(cid, "Nao veio nada.") doRemoveItem(item.uid, 1) return true end doPlayerAddItem(cid, items[math.random(1, #items)], 1) doRemoveItem(item.uid, 1) return true end Agora explicando: local items = {2647, 2650, 2661, 2668, 2393} Os números colocados dentro do { } e separados por vírgula, são os ids dos itens que podem vir da mistery box. Ou seja, para adicionar um item novo, você coloca uma vírgula e põe outro id. Para remover, retire um id e uma vírgula. Ex adicionar: local items = {2647, 2650, 2661, 2668, 2393, 2392} Ex retirar: local items = {2647, 2650, 2661, 2668, 2393} Entenderam? Agora vamos explicar o "chancenada" Ali você põe um valor entre 0 e 100 que vai corresponder à chance em % de não vir nada na misterybox. No caso está 10% de chance de não vir nada. No script ela tá configurada pra ser usada só por premmium accounts, mas se quiser mudar é só retirar isso aqui: if (getPlayerPremiumDays(cid) < 1) then doPlayerSendCancel(cid, "Nao pode usar se nao for premium account.") return true end Agora adicione em actions/actions.xml: <action itemid="132" script="misterybox.lua"/> Onde 132, é o id do item "mistery box", que é o item que você da use no jogo e ganha algum item aleatório depois. Eu criei no meu servidor o item mistery box, editando o items.otb e colocando um item novo, mas você pode usar algum já existente e apenas editar, ou faça do jeito que achar melhor! Bom galera, por agora é isso! Um abraço à todos!
-
[NEW] Listão de Talkactions e Actions 2014
Listão de Talkactions é Actions TK "2014" --2011-- Nome do Tópico: Character Info Autor: Doughell Link do Tópico: http://tibiaking.com...character-info/ Comentário: Nome do Tópico: Dungeon Finder Autor: Guilherme Link do Tópico: http://tibiaking.com...dungeon-finder/ Comentário: Nome do Tópico: Gate System Autor: Doughell Link do Tópico: http://tibiaking.com...60-gate-system/ Comentário: Nome do Tópico: Portal WoE Autor: Doughell Link do Tópico: http://tibiaking.com...353-portal-woe/ Comentário: Nome do Tópico: Sistema de Forja Autor: Lpz Link do Tópico: http://tibiaking.com...stema-de-forja/ Comentário: Nome do Tópico: [Action] Removedor de Frags Autor: Matheus Link do Tópico: http://tibiaking.com...vedor-de-frags/ Comentário: Nome do Tópico: [Action] Stamina Doll Autor: AgaSsI Link do Tópico: http://tibiaking.com...s-stamina-doll/ Comentário: Nome do Tópico: [Actions] Potions Baseadas no Level Autor: AgaSsI Link do Tópico: http://tibiaking.com...eadas-no-level/ Comentário: Nome do Tópico: Gesior ACC - Postando Ticker in Game Autor: Renato Link do Tópico: http://tibiaking.com...ticker-in-game/ Comentário: Nome do Tópico: Remover Pedra com Alavanca Autor: Kimoszin Link do Tópico: http://tibiaking.com/forum/topic/9261-action-remover-pedra-com-alavanca/ Comentário: Nome do Tópico: [Action] Addons Em Quest Autor: AgaSsI Link do Tópico: http://tibiaking.com...dons-em-quests/ Comentário: Nome do Tópico: Proibir Palavrões Autor: Matheus Link do Tópico: http://tibiaking.com...ibir-palavroes/ Comentário: Nome do Tópico: Resete Sistem Autor: macnowfhael Link do Tópico: http://tibiaking.com...-resete-sistem/ Comentário: Nome do Tópico: GOD que da BLESS Autor: Matheus Link do Tópico: http://tibiaking.com...bless-para-god/ Comentário: Nome do Tópico: [Action] Scroll de Level Autor: Augusto Link do Tópico: http://tibiaking.com...croll-de-level/ Comentário: Nome do Tópico: [Action] Sistema de Mineração Autor: Matheus Link do Tópico: http://tibiaking.com...a-de-mineracao/ Comentário: Nome do Tópico: [TalkAction] Buy Aol Autor: Kimoszin Link do Tópico: http://tibiaking.com...action-buy-aol/ Comentário: Nome do Tópico: [TalkAction] Addon Doll Autor: Kimoszin Link do Tópico: http://tibiaking.com...ion-addon-doll/ Comentário: --2012,2013 & 2014-- [Action] Temple Cleaner Automatico Autor: GodFather Topico: Topico Official Tipo: Action [Action] Mount System 1.4 - 100% Inovador Autor: Matheus Topico: Topico Official Tipo: Action [Action] Item Que Da Experience e Dinheiro Autor: Slaake Topico: Topico Official Tipo: Action [Talkaction] Item Por Vocaçao Autor: TonyPlyson Topico: Topico Official Tipo: Talkaction [Talkaction] Shop System [!sell-!buy] Facil Configuraçao Autor: Matheus Topico: Topico Official Tipo: Talkaction [Talkaction] Comando Para Comprar Bless Autor: Matheus Topico: Topico Official Tipo: Talkaction [Talk] Comando Mute/Desmute Autor: Vodkart Topico: Topico Official Tipo: Talkaction [Talkaction] Pet System ! Tfs = 0.3.4 Autor: DevilMoon Topico: Topico Official Tipo: Talkaction [Talkaction] Transformar Autor: AvuEnja Topico: Topico Official Tipo: Talkaction [Action] Quest Se O Player For Level (Desejado)+ Autor: TonyPlyson Topico: Topico Official Tipo: Action [Action] Comprando Item Por Chest (Bau) Autor: Slaake Topico: Topico Official Tipo: Action [Action] Adquirindo Group Por Item Autor: Slaake Topico: Topico Official Tipo: Action [Action] Novo Gold Autor: Slaake Topico: Topico Official Tipo: Action [TalkAction] Magia Que Se Transforma Em Item Autor: Slaake Topico: Topico Official Tipo: Talkaction [Talkaction] Comprando Soul Autor: Slaake Topico: Topico Official Tipo: Talkaction [Talkaction] Comprando Premium Tile Autor: Slaake Topico: Topico Official Tipo: Talkaction [Talkaction] Comprando Uma Nova Vocation Por COmando Autor: Slaake Topico: Topico Official Tipo: Talkaction [Talkaction] Comprando ExperieNce Por Comando Autor: Slaake Topico: Topico Official Tipo: Talkaction [Talkaction] Addon Doll Autor: Kimoszin Topico: Topico Official Tipo: Talkaction [Action] Retirar Lixo e Ganhar Item Autor: Kimoszin Topico: Topico Official Tipo: Action [Action] Caça Niquel Autor: EddyHavoc Topico: Topico Official Tipo: Action [Action] Ramdom Box Autor: EddyHavoc Topico: Topico Official Tipo: Action [Talk] DeathList Para Server Sqlite 1.0 Autor: Vodk art Topico: Topico Official Tipo: Talkaction [Action] Aqua System Autor: EddyHavoc Topico: Topico Official Tipo: Action [Action] Lenhador - Lumber Jack Autor: EddyHavoc Topico: Topico Official Tipo: Action [Action] Quest De Addons Funcionando Autor: EddyHavoc Topico: Topico Official Tipo: Action [Talkaction] Create Teleport Autor: SkyForever Topico: Topico Official Tipo: Talkaction [Action] Desenterrando Mortos Autor: Kimoszin Topico: Topico Official Tipo: Action [Action] Mining System Autor: Vittu Topico: Topico Official Tipo: Action [Action] Quest que Ganha Crystal Coins Equivalente Ao Level Autor: Renato Topico: Topico Official Tipo: Action [Action] Alavanca de Itens Aleatória! Autor: Halls Santos Topico: Topico Official Tipo: Action [Action] Adicionar premium points ao usar x item Autor: ViiTinG Topico: Topico Official Tipo: Action [Action] Rare Candy Autor: principe sharingan Topico: Topico Official Tipo: Action [Action] Canoa em Movimento Autor: ViiTinG Topico: Topico Official Tipo: Action [Action] Item que faz poke selvagem aparecer Autor: lucaslsre Topico: Topico Official Tipo: Action [Talkactions] Sistema de Jail! Autor: ScreMMo(eu) Topico: Topico Official Tipo: Talkaction [Talkaction] [Proibir Palavras] Anti Divulgação Autor: Absolute Topico: Topico Official Tipo: Talkaction [Action] Trocar 100 Demon Dust's por demon armor Autor: Vills Topico: Topico Official Tipo: Action [Action] [TFS 1.0] Frag Remover Autor: luanluciano93 Topico: Topico Official Tipo: Action [Talkaction] !addlevel [Comando para dar level] Autor: Absolute Topico: Topico Official Tipo: Talkaction [Talkaction] Mandar mensagem para a pasta do servidor Autor: ViiTinG Topico: Topico Official Tipo: Talkaction [Talkaction] Adicionar ou Remover VIP Do player Autor ViiTinG Topico: Topico Official Tipo: Talkaction Creditos: Jeff Owns - 35% Topico de 2012 & 2013 ScreMMo(Eu) - 30% do topico, adicionei os novos topicos Doughell - 35 - Topico de 2011 GOSTOU? REP+
-
[TalkActions] Duvida Facil Trasnform
Opa galera blz? eu queria que ao player falar ,transformar sair uma mensagem, por vocação, exemplo cada vocação sair um diferente encima dele alguem pode ajudar?, versão 8.54, aki a script: local config = { --[vocation id] = { level, nova voc, looktype, efeito} [1] = { 25, 2, 496, 208}, [2] = { 50, 3, 495, 208}, [3] = { 75, 4, 490, 208}, [4] = { 100, 5, 492, 208}, [5] = { 125, 6, 497, 208}, [6] = { 150, 7, 493, 208}, [7] = { 175, 8, 494, 208}, [8] = { 200, 9, 492, 208}, [9] = { 250, 10, 498, 208}, [10] = { 400, 11, 499, 208}, [13] = { 25, 14, 522, 108}, [14] = { 50, 15, 528, 108}, [15] = { 75, 16, 524, 108}, [16] = { 100, 17, 523, 108}, [17] = { 150, 18, 525, 108}, [18] = { 175, 19, 529, 108}, [19] = { 200, 20, 527, 108}, [20] = { 225, 21, 526, 108}, [21] = { 250, 22, 530, 110}, [22] = { 300, 23, 533, 110}, [23] = { 400, 24, 535, 110}, [25] = { 25, 26, 471, 87}, [26] = { 50, 27, 472, 87}, [27] = { 100, 28, 476, 87}, [28] = { 150, 29, 474, 87}, [29] = { 175, 30, 473, 87}, [30] = { 200, 31, 481, 87}, [31] = { 250, 32, 479, 87}, [32] = { 400, 33, 480, 87}, [34] = { 25, 35, 515, 5}, [35] = { 50, 36, 513, 5}, [36] = { 100, 37, 514, 5}, [37] = { 150, 38, 516, 5}, [38] = { 175, 39, 520, 5}, [39] = { 200, 40, 518, 5}, [40] = { 250, 41, 517, 5}, [41] = { 400, 42, 518, 5}, [50] = { 25, 51, 67, 205}, [51] = { 50, 52, 72, 205}, [52] = { 75, 53, 158, 205}, [53] = { 100, 54, 65, 205}, [54] = { 125, 55, 329, 205}, [55] = { 150, 56, 435, 205}, [56] = { 175, 57, 437, 205}, [57] = { 200, 58, 434, 205}, [58] = { 250, 59, 556, 205}, [59] = { 400, 60, 557, 205}, [70] = { 25, 71, 504, 124}, [71] = { 50, 72, 505, 124}, [72] = { 100, 73, 506, 124}, [73] = { 150, 74, 507, 124}, [74] = { 175, 75, 500, 124}, [75] = { 200, 76, 501, 124}, [76] = { 250, 77, 510, 124}, [77] = { 400, 78, 511, 124}, [90] = { 25, 91, 463, 209}, [91] = { 50, 92, 464, 209}, [92] = { 75, 93, 465, 209}, [93] = { 100, 94, 466, 209}, [94] = { 150, 95, 467, 209}, [95] = { 175, 96, 469, 209}, [96] = { 200, 97, 466, 209}, [97] = { 250, 98, 468, 209}, [97] = { 400, 98, 467, 209}, [110] = { 25, 111, 537, 187}, [111] = { 75, 112, 538, 187}, [112] = { 125, 113, 539, 187}, [113] = { 175, 114, 540, 187}, [114] = { 250, 115, 544, 187}, [115] = { 400, 116, 542, 187}, [130] = { 25, 131, 442, 124}, [131] = { 75, 132, 443, 124}, [132] = { 175, 133, 444, 124}, [133] = { 250, 134, 440, 124}, [134] = { 400, 135, 447, 124}, [150] = { 50, 151, 548, 126}, [151] = { 175, 152, 550, 126}, [152] = { 250, 153, 552, 126}, [153] = { 400, 154, 553, 126}, [170] = { 25, 171, 97, 108}, [171] = { 50, 172, 285, 108}, [172] = { 75, 173, 282, 108}, [173] = { 100, 174, 98, 108}, [174] = { 150, 175, 560, 109}, [175] = { 250, 176, 448, 109}, [176] = { 400, 177, 449, 109}, [190] = { 25, 191, 423, 4}, [191] = { 75, 192, 425, 4}, [192] = { 100, 193, 429, 4}, [193] = { 150, 194, 428, 4}, [194] = { 250, 195, 431, 4}, [195] = { 400, 196, 432, 4}, [200] = { 25, 201, 451, 10}, [201] = { 50, 202, 453, 10}, [202] = { 75, 203, 454, 10}, [203] = { 125, 204, 459, 10}, [204] = { 150, 205, 452, 10}, [205] = { 175, 206, 456, 10}, [206] = { 250, 207, 461, 10}, [207] = { 400, 208, 460, 10}, [215] = { 25, 216, 483, 240}, [216] = { 50, 217, 484, 240}, [217] = { 75, 218, 485, 240}, [218] = { 150, 219, 486, 240}, [219] = { 200, 220, 487, 240}, [220] = { 250, 221, 488, 240}, [221] = { 400, 222, 489, 240} } function onSay(cid, words, param, channel) local from,to = {x=1001, y=705, z=7},{x=1031, y=737, z=7} -- começo e final do mapa local from2,to2 = {x=1011, y=705, z=6},{x=1031, y=738, z=6} -- começo e final do mapa local from3,to3 = {x=1012, y=706, z=5},{x=1032, y=739, z=5} -- começo e final do mapa local from4,to4 = {x=985, y=598, z=7},{x=1044, y=652, z=7} -- começo e final do mapa local from5,to5 = {x=986, y=615, z=6},{x=1039, y=647, z=7} -- começo e final do mapa local from6,to6 = {x=990, y=616, z=5},{x=1040, y=647, z=5} -- começo e final do mapa if isInRange(getCreaturePosition(cid), from, to) or isInRange(getCreaturePosition(cid), from2, to2) or isInRange(getCreaturePosition(cid), from3, to3) or isInRange(getCreaturePosition(cid), from4, to4) or isInRange(getCreaturePosition(cid), from5, to5) or isInRange(getCreaturePosition(cid), from6, to6) then doPlayerSendCancel(cid, "Você não pode se Transformar nesta área!") return true end doPlayerSay(cid, "transformar") local voc = config[getPlayerVocation(cid)] if voc then if getPlayerLevel(cid) >= voc[1] then doPlayerSetVocation(cid, voc[2]) doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você Transformou!") local outfit = {lookType = voc[3]} doCreatureChangeOutfit(cid, outfit) doSendMagicEffect(getCreaturePosition(cid), voc[4]) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você precisa estar no level " .. voc[1] .. " para transformar.") end else doPlayerSendCancel(cid, "Você não pode se Transformar!") end return true end
-
Armadilhas de Teleport
Bom galera, esse script eu fiz ano passado, quando estava aprendendo lua, mas infelizmente fiz a cagada de parar de estudar. Enfim, vamos lá! Como funciona? Você da use em um item e depois clica no chão e irá abrir um teleport, que leva a lugares aleatórios. Crie um arquivo em data/actions com o nome de telearmadilha e cole isso dentro: local time = 10 -- Segundos local positionstp = { {x=100,y=40,z=7}, {x=150, y=60, z=7}, {x=225, y=80, z=7}, {x=300, y=100, z=7} } local function alert(tempo, interval, pos) if os.time() - tempo <= interval then doSendAnimatedText(pos, interval - (os.time() - tempo), math.random(180)) addEvent(alert, 1000, tempo, interval, pos, "a") end end local function remover(pos) doRemoveItem(getTileItemById(pos, 1387).uid, 1) end function onUse(cid, item, frompos, item2, topos) local topostp = positionstp[math.random(1, #positionstp)] if item.itemid == 2382 then doCreateTeleport(1387, topostp, topos) doPlayerSendTextMessage(cid, 28 , "Você criou uma armadilha em teleport.") addEvent(remover, time * 1000, topos) alert(os.time(), time , topos) end return true end Em actions.xml cole esta tag: <action itemid="2382" event="script" value="telearmadilha.lua"/> Configuração: 2382 é o item usado para criar os teleports, altere na tag do actions.xml. local time = 10 -- Tempo em segundos que o teleport ficará aberto. E aqui são os possíveis lugares que o teleport leva. local positionstp = { {x=100,y=40,z=7}, {x=150, y=60, z=7}, {x=225, y=80, z=7}, {x=300, y=100, z=7} } E é isso, espero que seja útil pra alguém! Abraços!
-
TalkAction !stamina (Recupera stamina e dá uma potion de stamina)
Primeiramente agradecer à: http://www.tibiaking.com/forum/topic/32839-tfs-10-stamina-refuel/ Que serviu como uma das bases para esse script. É o seguinte o script acima é o de stamina potion que eu adaptei aqui, e a partir dele criei uma talkaction !stamina Onde você compra stamina, recebe de brinde um stamina potion e a sua stamina se enche para 42 horas. É tudo configurável e vou tentar explicar ao máximo como fazer isso. PS: Os dois scripts ainda não foram testados mas acho que estão ok! Primeiro o do potion: Adicione em actions.xml a seguinte linha: <action itemid="9000" script="staminapotion.lua"/> É o seguinte, eu ainda não defini qual é o item stamina potion, por isso deixei o id "9000", mas vocês poderão escolher um item no seu servidor e definir ele como stamina potion, basta pegar o itemid dele e colocar no lugar de 9000. Crie agora um arquivo com o nome de staminapotion.lua em actions/scripts e coloque isso dentro: function onUse(cid, item, fromPosition, itemEx, toPosition) local stamina_full = 42 * 60 -- config. 42 = horas local player = Player(cid) if player:getStamina() >= stamina_full then player:sendCancelMessage("Your stamina is already full.") elseif player:getPremiumDays() < 1 then player:sendCancelMessage("You must have a premium account.") else player:setStamina(stamina_full) player:sendTextMessage(MESSAGE_INFO_DESCR, "Your stamina has been refilled.") Item(item.uid):remove(1) -- player:removeItem(item.uid) ??? end return true end Ao ser clicado, o item escolhido acima, vai adicionar X horas de stamina ao seu jogador, e remover o item em seguida. Lembrando que este script funciona apenas para premmium account. Caso queira que funcione para qualquer player, remova as linhas em verde no script acima. Bom, até aí foi basicamente o post que eu citei no começo do tópico. Agora vamos entrar na talkaction que eu editei e criei algumas coisas para funcionar legal. Quer dizer, espero que funcione! Vamos lá galera! Primeiro adicione em talkactions.xml a seguinte linha: <talkaction words="!buystamina" event="script" value="stamina.lua"/> Ou seja, a partir do comando !buystamina, o jogador poderá executar o script stamina.lua Que nós vamos conhecer agora! Adicione um arquivo chamado stamina.lua na pasta talkactions/scripts e coloque dentro: function onSay(cid, words, param, channel) local config = { stamina = getPlayerStamina(cid), -- Nao precisa mexer staminasafe = 40 * 60, -- Nao esta em uso no script, mas posso explicar depois costPremiumDays = 1, -- Quanto custa pra comprar stamina com o comando !buystamina quant = 1, -- Quantas potions você ganha de brinde com o comando !buystamina premdays = 20, -- O minimo de premdays para comprar a stamina } local stamina_full = 42 * 60 -- config. 42 = horas local player = Player(cid) local staminapotion = 9000 -- ID do item stamina potion (igual ao da action do outro script) if config.stamina >= stamina_full then doPlayerSendCancelMessage("Your stamina is already full.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return TRUE end if(getPlayerPremiumDays(cid) < config.costPremiumDays) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Sorry, not enough premium time. Calling for stamina costs " .. config.costPremiumDays .. " days.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return TRUE end if(getPlayerPremiumDays(cid) < config.premdays) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You must have more than " .. config.premdays .. "premmium days in order to purchase more stamina.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return TRUE end if(getPlayerPremiumDays(cid) < 39000) then doPlayerAddPremiumDays(cid, -config.costPremiumDays) end player:setStamina(stamina_full) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have fullfilled stamina and lost " .. config.costPremiumDays .. " days of premium time.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_RED) doPlayerAddItem(cid, staminapotion, config.quant) if isPlayer(cid) then doPlayerPopupFYI(cid, "Your stamina is "..config.stamina..".") end return true end O que o script faz? Você compra stamina, ganha uma ou mais potions de stamina de brinde, e paga com Premmium Days. Quando você usa o comando, ele checa como está sua stamina, se estiver cheia você não pode comprar. Depois ele checa se você é premmium account ou não, se não for e não tiver premmium days o suficiente, não pode comprar. Depois ele checa se você tem no mínimo 20 dias de Prem Days, para evitar que se gaste muitos Premmium Days nesse comando, ele bloqueia a compra de quem tiver menos que, ou 20 dias. Depois disso, se você passou pelas validações anteriores e tiver PremDays, você consegue comprar a stamina, ela se enche na hora, você ganha x potions de brinde e recebe uma mensagem dizendo de quanto é a sua stamina. Bom, agora explicando só o porque coloquei staminasafe lá no começo... Se você quiser que o player só compre stamina caso a dele esteja menor do que 40 horas ou outra hora, você pode tanto mudar o horário no stamina_full ou colocar uma linha a mais no código, em baixo de if config.stamina >= stamina_full then doPlayerSendCancelMessage("Your stamina is already full.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return TRUE end você colocaria: if config.stamina > config.staminasafe then doPlayerSendCancelMessage("Your stamina must be lower than " .. config.staminasafe .. ", to buy more stamina.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return TRUE end O que iria colocar uma condição nova para comprar a !stamina, que é de que você tem que ter menos de X stamina para poder comprar, e esse valor você define em staminasafe = 40 ou o valor que você quiser. Se tiver algum erro ou alguma dúvida, podem perguntar! Obrigado e um abraço à todos! E detalhe, o ITEM de itemid 9000 é só um exemplo, não sei que item é esse e ainda não defini um para o staminapotion pois não testei no otserver isso ainda, portanto não usem o 9000 porque eu não sei que item é e se for algum item estranho pode bugar.
-
[Pokémon] TM System - New
Fala ai galera tudo beleza? então hoje venho compartilhar com vocês o sistema de TM , é bem diferente das quais já temos aqui no tk , ela é bem facil de se editar , então sem mais delongas vamos para o tutorial + o script xD. 1° - Criar um arquivo em data/actions/scripts chamado de :tm.lua , e coloque tudo isso aqui dentro do script \/ Em todos os numeros dentro de [ ] colocar o id da sua tm , vamos agora para o próximo passo . vá em data/lib e cria um arquivo chamado de : tm lib.lua , e dentro dele cole isso aqui \/ : agora vá em data/talkaction/script e abra o script move1.lua e apague tudo que contem lá dentro e cole o seguinte \/ agora em data/talkaction/talkaction.xml adicione o seguinte \/ <talkaction words="tm1" case-sensitive="no" event="script" value="move1.lua"/> <talkaction words="tm2" case-sensitive="no" event="script" value="move1.lua"/> <talkaction words="tm3" case-sensitive="no" event="script" value="move1.lua"/> Fim do Tutorial <3 Bjão do Txu , espero que gostem vlw flw