Jump to content
Close

Search the Community

Showing results for tags 'Action%252525252FTalkaction'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Community
    • Rules
    • Portal
    • Resources
    • Commerce
    • Clubs
  • OTServers
    • Discussion
    • Support
    • Tutorial
    • Download
    • Code Development
    • Contests and Events
    • Form Team
    • Advertise your Server
  • Tibia and Bots
    • Discussion
  • Others
    • Playground (Off-topic)
    • Other Games
    • Advertising
    • Graphics and Design
    • Development and Programming
  • League of Legends's Geral
  • League of Legends's Suporte
  • Nto New Season's Tópicos
  • Fakes's Fakes
  • Tibia's Geral
  • Tibia's Notícias
  • Tibia's Media
  • Tibia's Life Thread
  • Computação's Geral
  • Computação's Dicas e Tutoriais
  • Computação's Suporte
  • Roleplaying's Roleplaying
  • Academia de Mapping's Quadro da Clopin
  • Academia de Mapping's Dev Area
  • Academia de Mapping's Quadro do Nolis
  • Academia de Mapping's Quadro do Namikaze
  • Styller's Tópicos

Calendars

  • Official Calendar
  • OTServs Calendar
  • Several Calendars

Product Groups

  • Advertisements in Top
  • Advertisements In Signatures
  • Advertisements in Topics
  • Others Advertisements

Categories

  • Sales Section
    • Scripting Sales
    • Codes Sales
    • Mapping Sales
    • Websites Sales
    • Design/Sprites Sales
    • Bots Sales
  • Look Jobs
  • Looking for Freelancers
  • Team Formation

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Localization


My character


Favorite OTServ


Bot preferred


Interests

Found 48 results

  1. Para quem não sabe como funciona o script : O player usa um certo item e se ele for dono de alguma house ele será teleportado para ela. • Adicionando o script • Em "data/actions/scripts/tphouse.lua" : function onUse(cid, item, fromPosition, itemEx, toPosition) if hasCondition(cid, CONDITION_INFIGHT) then return doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Desculpe,voce esta em batalha.") end if getPlayerLevel(cid) < getConfigInfo("levelToBuyHouse") then return doPlayerSendCancel(cid, "Sorry, not possible.") end if not getHouseByPlayerGUID(getPlayerGUID(cid)) then return doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Desculpe voce nao tem house.") end doTeleportThing(cid, getHouseEntry(getHouseByPlayerGUID(getPlayerGUID(cid)))) doRemoveItem(item.uid, 1) return true end Em "data/actions/actions.xml" : <action itemid="7722" event="script" value="tphouse.lua"/> Créditos : MaXwEllDeN por ajudar em algumas funções. • Configurando •
  2. Olá pessoal do TK, venho aqui trazer um script que não fui eu quem o criou, somente coloquei-o em português (e daí?).. Achei em um fórum e no final do tópico estarei disponibilizando o nome do criador. Utilidade do Script: Bom, o script serve para você com um character com acesso de GOD (configurável) possa ver quais itens um certo player está utilizando no momento. PS: Inclusive os itens presentes dentro da backpack do Player. Como funciona: Você digita a talkaction /spy seguida do nome do player a ser "espionado". Por Exemplo: /spy Rusherzin /spy Tibia King Testado em: Versão 8.54 Imagem: Agora vamos ao script: Vá em data/talkactions/scripts/ copie e cole um arquivo .lua qualquer, renomeie para spy e cole isso dentro: E adicione essa tag no talkactions.xml: Créditos: Azi
  3. Antes de tudo queria agradecer ao cara do suporte que me pediu pra fazer isso, achei muito legal a idéia. Fala galera do TK, vim trazer um script bem simpleszinho mas que abre um leque de opções de RPG e diversão pro seu OT.. Trata-se do Mining System, um sistema que você pode utilizar a pick normal (ou uma outra pick especial) para minerar a terra e tentar conseguir items que você pode trocar por dinheiro, items ou utilizar para craftar items. São 70 leveis de Mining que vão upando conforme vc minera. Enfim, vamos ao script: actions\scripts\mining.lua: terra = {351,352,353,354,355} levels = { [-1] = 2229, ---- skull [0] = 1294, --- small stone [1] = 3976, --- worm [10] = 2149, -- Small Emerald [12] = 2146, -- Small Sapphire [15] = 2145, -- Small Diamond [17] = 2150, -- Small Amethyst [20] = 2147, -- Small Ruby [25] = 2144, -- Black Pearls [27] = 2143, -- White Pearls [30] = 2157, -- Gold Nuggets [35] = 2156, --- red gem [36] = 2158, -- blue gem [37] = 2155, -- green gem [38] = 2153, -- violet gem [39] = 2154, -- yellow gem [40] = 7761, -- small enchanted emerald [42] = 7759, -- Small Enchanted Sapphiire [45] = 7762, -- Small Enchanted Amethyst [50] = 7760, -- Small Enchanted Ruby [70] = 2177 -- Life Crystal } local config = { storage = 19333, chance = 40, --- chance de achar um item ou não k = 2, --- constante de level.. quanto maior, mais fácil é upar. (a fórmula é level ao quadrado dividido pela constante) experience = 19334 } function onUse(cid, item, fromPosition, itemEx, toPosition) local drops = {} function getDrops(cid) for i= -1,getPlayerStorageValue(cid, config.storage) do if levels[i] then table.insert(drops, levels[i]) end end return true end if isInArray(terra, itemEx.itemid) then getDrops(cid) doPlayerSetStorageValue(cid, config.experience, getPlayerStorageValue(cid, config.experience)+1) local experience = getPlayerStorageValue(cid, config.experience) if experience >= (8+(getPlayerStorageValue(cid, config.storage)^2))/config.k then doPlayerSetStorageValue(cid, config.storage, getPlayerStorageValue(cid, config.storage)+1) doPlayerSendTextMessage(cid, 27, "Congratulations, you have leveled! Your currect level is "..getPlayerStorageValue(cid, config.storage) ..".") if getPlayerStorageValue(cid, config.storage) == 50 then doPlayerSendTextMessage(cid, 20, "For reaching level "..getPlayerStorageValue(cid, config.storage) .." you have been awarded with Mining Helmet.") doPlayerAddItem(cid, 7497, 1, true) end end if config.chance >= math.random(1,100) then if #drops >= 1 then local item = drops[math.random(1,#drops)] doPlayerSendTextMessage(cid, 27, "You have found a "..getItemNameById(item)..".") doPlayerAddItem(cid, item, 1, true) end doSendMagicEffect(toPosition, 3) else doSendMagicEffect(toPosition, 2) return true end elseif itemEx.itemid == item.itemid then doPlayerSendTextMessage(cid, 27, "You're currenctly level "..getPlayerStorageValue(cid, config.storage)..".") else return false end return true end em terra vc coloca os ids dos chãos em que é possível minerar, levels é o level da skill e o ID do respectivo item que você fica capaz de conseguir após alcançar esse nível. Em outras palavras, no começo vc só consegue minerar skull, no nv 70 vc vai ter a chance de conseguir todos os items anteriores e não só life crystal. O restante das configurações está no meio do script: local config = { storage = 19333, chance = 40, --- chance de achar um item ou não k = 2, --- constante de level.. quanto maior, mais fácil é upar. (a fórmula é level ao quadrado dividido pela constante) experience = 19334 } o storage é onde vai salvar o seu nível chance é a chance de pegar um item cada vez que minera. k é a constante de level, o nivel 10 precisa de 10*10/k de experiencia para ser alcançado (com k sendo 2 dá 50 de experiencia), ou seja, com 50 picaretadas na terra vc pega nivel 10. experience é o storage que fica salvo sua experiencia. Bônus: Ao alcançar level 50 você ganha o Mining Helmet como prêmio, ele não faz nada de especial mas é como se fosse um troféu. No meu server tem uma série de troféus que voce pode colecionar e fica como sendo uma conquista épica para os players. e no actions.xml: <action itemid="2553" script="mining.lua"/> OBS: Sugiro que vcs utilizem uma outra pick pra não dar conflito mas você faz oque quiser. PS: Uma fotinha pra vcs verem Espero que tenham gostado!
  4. Eae galera eu tava com insonia e nn conseguia dormir nesse tempo tive ideias para servidores de Poketibia ( Pq nn criar uma box diferente que nn venha poke e sim Stone??).. entao ta ae criei para instalalo va em data/action/stonebox.lua <<(crie este arquivo com este nome). Dentro coloque a seguinte tag: e pronto salve e em actions.xml adicione a seguinte tag: pronto sistema adicionado.. Explicação: e pronto agr é so jogar xD..
  5. 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
  6. 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
  7. Olá galera do TK, venho aqui para trazer outro script que não foi eu quem fiz.. (só editei umas partes para funcionar no 8.54) Como Funciona: O player fala "!rank" seguido de alguma das "palavras-chave". Ex: "!rank magic", "!rank sorcerer" São elas: (Skills) Fist, Club, Sword, Axe, Shielding/Shield, Distance, Fishing/Fish, Level, Magic, Health, Mana. (Vocations) Sorcerer, Druid, Paladin, Knight. Obs: mostra no rank, por exemplo, de sorcerers os players que são Sorcerers e Master Sorcerers (configurável) Agora vamos ao script: "data/talkactions/scripts/" ranks.lua "data/talkactions/" talkactions.xml Créditos: Crítico
  8. Fala galera do TK, trago hoje um comando simples que já vi pedidos. É o comando de adicionar level, para você que gosta de se editar, dar level para tests ou eventos, como quiser rs. Vamos lá: Siga meus passos que em 1 minuto o servidor terá o comando. Em data/talkactions/scripts crie um arquivo com o nome de addlevel.lua com o seguinte conteúdo: function onSay(cid, words, param) if(param == "") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Name and level required.") return TRUE end local t = string.explode(param, ",") local player = getPlayerByNameWildcard(t[1]) local amount = tonumber(t[2]) if(not t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need to add a ,then the level to set.") end if (doPlayerAddExp(player, getExperienceForLevel(amount)-(getPlayerExperience(player)))) == LUA_ERROR then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Error") end doCreatureAddMana(player, getCreatureMaxMana(player)-getCreatureMana(player)) doCreatureAddHealth(player, getCreatureMaxHealth(player)-getCreatureHealth(player)) return TRUE end Em data/talkactions/talkactions.xml adicione a seguinte linha: <talkaction log="yes" access="5" words="!addlevel" event="script" value="addlevel.lua"/> Para adicionar level a algum player: !addlevel playername, 100 !addlevel = comando executado apenas pelos Administradores do servidor. !playername = nome do jogador que vai receber o level 100 = quantidade de level que irá receber Nota: O Comando já dará ao player o level/vida/mana e exp tudo de acordo! Simples e fácil para adaptar em seu servidor! Espero ter ajudado Absolute.
  9. Oiie Galera do TK *--* hoje irei Postar um Tutorial que os Caras Mim pediram já que o outro Fórum Fechou. Não sei se tá na área certa se não tiver porfavor movam Bom, vou ensinar como fazer um ditto system igual pxg, ou seja, clona tipo(fire, water...), habilidades... Ex: se eu clonar um charizard, ele fica tipo fire/flying, e eu posso usar fly... Vamos lá. Adicionando script no order.lua(data/actions/scripts). Substituia: por:: Pronto, ele ja esta se transformando, mas e pra voltar? Crie um arquivo.lua com nome de dittorevert na pasta "data/talkactions/scripts". E dentro dele bote: function onSay(cid, words, param, channel) local thisball = getPlayerSlotItem(cid, 8) if getItemAttribute(thisball.uid, "ehditto") then doItemSetAttribute(thisball.uid, "poke", "Ditto") doItemSetAttribute(thisball.uid, "ehditto", 1) end end Depois vá em talkactions.xml, localizado na pasta "data/talkactions" e insira esta linha: <talkaction log = "yes" words = "!revert" hide="yes" event = "script" value = "dittorevert.lua"/> Perfeito, sistema funcionando, mas tem um problema, ele tem a mesma força do pokemon normal, como faço pra diminuir? Simples, vá em "data/lib" e abra o "level system.lua". Nele procure isso: E substitua por isso: PS: Como ali está "0.75", a força é diminuida em 1/4(um quarto). Pode mudar para o quanto quiser. EX: 0.50 -> 2/4. 0.25 -> 3/4. Pronto, sistema feito. Mas assim não da de indentificar que é ditto, sendo assim possivel enganar outros players. Para isso, vá em "data/creaturescripts/scripts" abra look.lua e procure por: table.insert(str, "\nIt contains "..getArticle(pokename).." "..pokename..".\n") e substitua por: if getItemAttribute(thing.uid, "ehditto") == 1 then table.insert(str, "\nIt contains "..getArticle(pokename).." "..pokename.." (Ditto).\n") else table.insert(str, "\nIt contains "..getArticle(pokename).." "..pokename..".\n") end No Goback.lua(data/actions/scripts) e no Some Functions.lua(data/lib) procure isso: E apague. Em Some Functions.lua procure por: E deixe assim: Ainda no some functions.lua apague isso: GIF do System: OBS: Para que o ditto se transforme por completo, fale !revert puxe e bote ele novamente. Qualquer bug, avisem. PS: Se feito corretamente, não há bugs. Créditos:: GabrielSales
  10. Eae pessoal (novamente), estou trazendo um script de action que fiz a um tempo atrás, eu só o testei em servidor de pokemon sem level, então talvez não funcione em algum servidor. ​O que o script faz: Esse script, como o titulo diz, faz com que apareça um pokemon ao você dar use em um objeto (mas o objeto tem que estar no chão).  Os passos que você tem que seguir: 1° passo: Vá na pasta do seu ot/data/actions/scripts e adicione um arquivo chamado item sumonador.lua, coloque isso dentro do arquivo: function onUse(cid, item, toPosition) pos = getPlayerPosition(cid) doSendMagicEffect(toPosition, 1) doRemoveItem(item.uid, 1) local poke = doCreateMonster("Snorlax", toPosition) doSendMagicEffect(getThingPos(poke), 29) doSetMonsterPassive(poke) doWildAttackPlayer(poke, cid) doCreatureSay(cid,"Um snorlax apareceu", TALKTYPE_ORANGE_1) return TRUE end Feche e salve o arquivo  2° passo: Volte uma pasta (vá na pasta do seu ot/data/actions), abra o actions.xml, adicione uma linha e coloque isso nela: <action itemid="4850" event="script" value="item sumonador.lua"/> ​Feche e salve.  Como editar o pokemon e o item que vai aparecer: Pokemon: ​Dentro de item sumonador.lua vai ter uma linha assim: local poke = doCreateMonster("Snorlax", toPosition) No lugar de Snorlax você coloca o pokemon  Item: Dentro de actions.xml, naquela linha que você adicionou vai estar o ID 4850, é só modificalo pelo item que você quiser.
  11. 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 !
  12. 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!
  13. 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
  14. 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.. ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
  15. 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 •
  16. Fala galerinha do TK, hoje trago a vocês um sistema de bloquear algumas palavras no servidor! Sabe aqueles players chatos que entram em seu otserver divulgando o servidor dele dias e dias, leva ban, volta e tudo mais? Poisé, chega disso né. Primeiro vai o script depois explicação/config: Em data/talkactions/scripts crie um arquivo com o nome de tibiakingproibiu.lua function getFixedText(cid, text, replace) local wrongWords = {"#####", "ots-list.pl", "google.br", ".ddns.net", "hopto.org", "no-ip.org", "servegame.com"} local lowerText = string.lower(text) local noSpaceText = string.gsub(string.gsub(string.gsub(lowerText, "%s", ""), "%p", ""),"-", "") for w = 1, #wrongWords do wordLen = string.len(wrongWords[w]) for p = 1, string.len(text) do if(string.sub(lowerText, p, p+wordLen-1) == wrongWords[w]) then text = string.sub(text, 1, p-1) .. string.rep(replace, wordLen) .. string.sub(text, p+wordLen) end end end if(string.lower(text) == lowerText) then for c = 1, #wrongWords do if(string.find(noSpaceText, string.gsub(string.gsub(wrongWords[c], "%p", ""),"-", "")) ~= nil) then return "I want to post forbidden links.." end end end return text end --[[Channels which are not added to block: 1 - Party Channel 2 - Channel for Staff members 3 - Rule Violation Channel 4 - Channel for Counselors/Tutors 65536 - Private Chat Channel <-- Private Chat cannot be blocked with this script ]]-- local blocked_channels = {5,8,9} --Game-Chat, Real Chat, Help Channel local trade_channels = {6,7} --All trade channels <- These are also blocked local replace = "°" --Symbols which are shown instead of forbidden links -> ° local delay = {16246,10} -- {empty_storage, lenght of muted} function onSay(cid, words, param, channel) local fixedWords = getFixedText(cid, words, replace) if words ~= fixedWords and getPlayerAccess(cid) == 0 then if getPlayerStorageValue(cid,delay[1]) > os.time() then return doPlayerSendCancel(cid,"Voce foi mutado por ".. getPlayerStorageValue(cid,delay[1])-os.time() .." segundos, aqui e proibido divulgar.") end setPlayerStorageValue(cid,delay[1],os.time()+delay[2]) if channel == CHANNEL_DEFAULT then doCreatureSay(cid, fixedWords, TALKTYPE_SAY) doPlayerPopupFYI(cid, "Link: "..words.." e proibido, mal educado!.") return true elseif isInArray(trade_channels, channel) then doPlayerPopupFYI(cid, "Link: "..words.." e proibido neste canal.") return true elseif isInArray(blocked_channels, channel) then doPlayerPopupFYI(cid, "Link: "..words.." e proibido, mal educado!.") doPlayerSendChannelMessage(cid, getCreatureName(cid), fixedWords, TALKTYPE_CHANNEL_Y, channel) return true end end return false end Logo em seguida em em talkactions.xml adicione a seguinte linha: <talkaction words="illegalWords" event="script" value="tibiakingproibiu.lua"/> Fim da instalação. Explicação/Config: local wrongWords = {"#####", "ots-list.pl", "google.br", ".ddns.net", "hopto.org", "no-ip.org", "servegame.com"} = Nas aspas ".." você colocará as palavras que deseja proibir, palavrões, divulgações e companhia... local noSpaceText = string.gsub(string.gsub(string.gsub(lowerText, "%s", ""), "%p", ""),"-", "") = Aqui aconselho não mexer. É para evitar divulgações acompanhadas das Words (palavras) ou seja lá está proibido .servegame.com, então quando o player falar baiakfulunao.servegame.com irá proibir. local delay = {16246,10} -- {empty_storage, lenght of muted} = no 16246 é a storage que irá salvar, não mexa. em 10 é o tempo em segundos que o player será mutado ao falar as palavras proibidas. doPlayerPopupFYI(cid, "Link: "..words.." e proibido, mal educado!.") = Este doPlayerPopup é que vai aparecer naquelas janelas que aparece para clicar em ok (caixa de mensagens) caso queira alterar para mensagem de console substitua: doPlayerPopupFYI(cid, "Link: "..words.." e proibido, mal educado!.") por doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Link: "..words.." e proibido, mal educado!.") É isso ae lindões do TK, caso haja alguma dúvida peço que perguntem! Créditos: Absolute OTLAND Até o próximo! Absolute
  17. 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
  18. 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 é:
  19. 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
  20. ---------------------- // ---------------------- 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
  21. 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 •
  22. 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!
  23. 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.
  24. 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
  25. 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.

Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia começando do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer fazer um plano publicitário para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução!

×
×
  • Create New...