Jump to content
Close

Search the Community

Showing results for tags 'Talkaction'.



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 Bots
    • Discussion
  • League of Legends's Geral
  • League of Legends's Suporte
  • Jogos Gerais's Geral
  • Nto New Season's Tópicos
  • Fakes's Fakes
  • Tibia's Geral
  • Tibia's Notícias
  • Tibia's Media
  • Tibia's Life Thread
  • Gráficos's Geral
  • Gráficos's Tutoriais
  • Gráficos's Recursos
  • Gráficos's Aprendizagem & Recursos
  • Gráficos's Galeria
  • Gráficos's Duelos & Batalhas
  • Gráficos's Suporte
  • Desenvolvimento e Programação's Geral
  • Desenvolvimento e Programação's Tutoriais
  • Desenvolvimento e Programação's Trabalhos
  • Desenvolvimento e Programação's Suporte
  • Computação's Geral
  • Computação's Dicas e Tutoriais
  • Computação's Suporte
  • Roleplaying's Roleplaying
  • Playground's (Off-topic)
  • Divulgações'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 111 results

  1. Olá comunidade. Eu criei um script a madrugada passada para tentar ajudar um amigo que usa 'OTX' porém dá um erro bizarro no 'lib/compat.lua' e a função 'doAddPlayerOutfit' retorna valor 'NIL'. Eu não sei como resolver, mas está funcionando perfeitamente no 'TFS 0.4'. Espero que alguém em algum lugar do tempoespaço possa se beneficiar desse script já que os que encontrei estão todos muito feios e confusos. 1. Acesse a pasta 'data/talkactions/scripts' e crie um novo 'arquivo.lua' chamado 'addonpresent.lua', dentro adicione o conteúdo abaixo. function onSay(cid, words, param, channel) local maleOutfits = {["citizen"] = {128}, ["mage"] = {130}, ["knight"] = {131}, ["nobleman"] = {132}, ["summoner"] = {133}, ["warrior"] = {134} } local femaleOutfits = {["citizen"] = {136}, ["mage"] = {138}, ["knight"] = {139}, ["nobleman"] = {140}, ["summoner"] = {141}, ["warrior"] = {142} } local mensagens = {"Você recebeu o seu addon e consumiu o item bônus para isto.", "Verifique o que você digitou e tente novamente, parametros inválidos.", "Você não possui o item necessário para receber um addon.", "Certifique-se que você digitou o nome do addon corretamente e tente mais uma vez."} local efeitinga = {[1] = {name = CONST_ME_POFF}, [2] = {name = CONST_ME_CAKE}, [3] = {name = CONST_ME_HEARTS}, [4] = {name = CONST_ME_GIFT_WRAPS} -- efeitos que seram exibidos } local param = string.lower(param) if not isPremium(cid) then doCreatureSay(cid, "Você não possui Premium Account, portanto não poderá utilizar o item de addon.", TALKTYPE_ORANGE_1) -- MSG que será exibida p/ o nao premium return true end if getPlayerItemCount(cid, 6497) > 0 then -- 6497 é o ID do item que será usado por você, se for maior que 0 a quanidade na sua bag então if param ~= "" and maleOutfits[param] and femaleOutfits[param] then doPlayerRemoveItem(cid, 6497, 1) -- o item 6497 será consumido doCreatureSay(cid, mensagens[1], TALKTYPE_ORANGE_1) for k, v in pairs(efeitinga) do doSendMagicEffect(getCreaturePosition(cid), v.name) end if getPlayerSex(cid) == 0 then doPlayerAddOutfit(cid, femaleOutfits[param][1], 3) elseif getPlayerSex(cid) == 1 then doPlayerAddOutfit(cid, maleOutfits[param][1], 3) end else doCreatureSay(cid, mensagens[2], TALKTYPE_ORANGE_1) end else doCreatureSay(cid, mensagens[3], TALKTYPE_ORANGE_1) end return true end 2. Regresse até 'data/talkactions' e abra o arquivo 'talkactions.xml', dentro adicione o conteúdo abaixo. <talkaction words="!addon" event="script" value="addonpresent.lua"/>
  2. Introdução Estive procurando no fórum e não encontrei esse sistema de TP para versões com modal, aliás, até achei um semelhante, só que possuía algumas instabilidades e também com uma ideia de waypoints (que estava também fazendo dessa forma, mas não vem ao caso o motivo disso não ser viável no Tibia). O que trago aqui é algo mais simples, porém o necessário. O sistema de TP é muito importante em alguns servidores que fogem um pouco de RPG (não que seja exclusivamente para estes), ele possibilita viagens de um local para outro em instantes, como por exemplo, do Templo para o Depot ou para qualquer outra localização configurada no script (a seu gosto). Uma coisa adicional que coloquei no script, foi de listar também a house do jogador que utilizar o comando, onde você poderá configurar se será necessário pagar ou não para o mesmo ser teleportado, enfim, dê uma olhada no código depois, tá tudo comentado. Informações do sistema - Locais configuráveis - Configurável se é necessário pagar ou não para determinado local - Configurável a quantidade de dinheiro de cada local - Condições ao utilizar o comando (Protect Zone e tempo para utilizar o comando novamente) - É requisitado o jogador está possuindo a quantia necessária para o teleport Instalação 1 - crie um arquivo chamado teleportSystem.lua em data/talkactions/scripts/ e cole o código abaixo: 2 - Em seguida, cole este trecho de código em data/talkactions/talkactions.xml abaixo de algum semelhante: 3 - Agora crie um arquivo chamado modalTpSystem.lua em data/creaturescripts/scripts/ e cole o código abaixo nele: 4 - E para finalizar, cole este código em data/creaturescripts/creaturescripts.xml abaixo de um semelhante: Explicação do script A única coisa que você vai mexer é no teleportSystem, onde terá a opção de configurar os preços, locais, etc. Configurando as houses: houses_modal = Se será habilitado o player teleportar para a house dele house_pago = Se será pago o teleport para a house house_custo = Custo do teleport para a house, caso seja pago Configurando o local: nome = Nome do local a ser mostrado na janela pago = Se ele vai ser pago ou não, coloque false caso queira que não cobre nada do jogador custo = Caso tenha colocado como pago, o custo do teleport para o local pos = Posição do local (X,Y,Z) Quando for adicionar outro, copie esta mesma parte acima e altera o número [3] para [4] e os outros dados também, assim por diante. O restante também tá explicado no script, basta ler. Demonstração UTILIZE O COMANDO !fly Enfim, script simples, tem para outras versões, mas como falei, não tinha encontrado ainda para 1.x com esse funcionamento. Qualquer coisa, só comentar, .
  3. .data / talkactions / talkaction.xml' e cole este texto lá Código XML: <talkaction words="!bank" separator=" " script="bank.lua"/> Crie o arquivo "bank.lua" em "data / talkactions / scripts" e cole este código neste arquivo --Tibiaking UNDEREWAR-- function Player.deposit(self, amount) if not self:removeMoney(amount) then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[BankSystem]: You dont have money with you.") return false end self:setBankBalance(self:getBankBalance() + amount) return true end function Player.withdraw(self, amount) local balance = self:getBankBalance() if amount > balance or not self:addMoney(amount) then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[BankSystem]: You dont have money in your bank account.") return false end self:setBankBalance(balance - amount) return true end function Player.depositMoney(self, amount) if not self:removeMoney(amount) then return false end self:setBankBalance(self:getBankBalance() + amount) return true end function onSay(player, words, param) local split = param:split(",") local balance = player:getBankBalance() if split[1] == nil then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[BankSystem]: the commands are:\n !bank balance.\n !bank deposit, XXXX.\n!bank depositall.\n!bank transfer, amount, toPlayer.") return end --------------------------- Balance --------------------------- if split[1] == 'balance' then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[BankSystem]: Your account balance is " .. balance .. ".") --------------------------- Deposit --------------------------- elseif split[1] == 'deposit' then local amount = tonumber(split[2]) if not amount then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[BankSystem]: You need to put the amount of money to add.") return false end local amount = math.abs(amount) if amount > 0 and amount <= player:getMoney() then player:deposit(amount) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[BankSystem]: You added " .. amount .. " to your account, You can withdraw your money anytime you want to.\nYour account balance is " .. player:getBankBalance() .. ".") else player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[BankSystem]: You do not have enough money to deposit.") end --------------------------- Depositall --------------------------- elseif split[1] == 'depositall' then local amount = player:getMoney() local amount = math.abs(amount) if amount > 0 and amount == player:getMoney() then player:deposit(amount) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[BankSystem]: You added " .. amount .. " to your account, You can withdraw your money anytime you want to.\nYour account balance is " .. player:getBankBalance() .. ".") else player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[BankSystem]: You do not have enough money to deposit.") end --------------------------- Withdraw --------------------------- elseif split[1] == 'withdraw' then local amount = tonumber(split[2]) if not amount then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[BankSystem]: You need to put the amount of money to withdraw.") return false end local amount = math.abs(amount) if amount > 0 and amount <= player:getBankBalance() then player:withdraw(amount) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[BankSystem]: Here you are " .. amount .. " of your account, You can deposit your money anytime you want.\nYour account balance is " .. player:getBankBalance() .. ".") else player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[BankSystem]: You do not have enough money on your bank account.") end --------------------------- Withdrawall --------------------------- elseif split[1] == 'withdrawall' then local amount = player:getBankBalance() local amount = math.abs(amount) if amount > 0 and amount <= player:getBankBalance() then player:withdraw(amount) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[BankSystem]: Here you are all your money on your account, You can deposit your money anytime you want.\nYour account balance is " .. player:getBankBalance() .. ".") else player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[BankSystem]: You do not have enough money on your bank account.") end --------------------------- Transfer --------------------------- elseif split[1] == 'transfer' then local data = param local s = data:split(", ") if s[2] == nil then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[BankSystem]: You need to put the amount of money") return false else if not tonumber(s[2]) then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[BankSystem]: You need to put the amount in numbers only.") return end end if s[3] == nil then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[BankSystem]: You need to put the player name") return false end local a = tonumber(s[2]) local amount = math.abs(a) local getPlayer = Player(s[3]) if getPlayer then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[BankSystem]: You seccesfully transferred " .. s[2] .. "\n to " .. s[3] .. " bank account.") player:transferMoneyTo(s[3], amount) else if not playerExists(s[3]) then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[BankSystem]: A player with name: " .. s[3] .. " does not exists.") return false end if playerExists(s[3]) and player:transferMoneyTo(s[3], amount) then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[BankSystem]: You seccesfully transferred " .. s[2] .. "\n to " .. s[3] .. " bank account.") end end else player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "[BankSystem]: Invalid param.") end return false end
  4. Boa tarde.., nao sei se é a Area correta mudem pf. Queria um NPC que Aluga-se uma Rod por um Tempo.. (8.54)
  5. Olá pessoal, resolvi adaptar o script do comando !spells ou !jutsus, essa adaptação consiste em prevenir que Staffs como GM, CM, ADM, tomem debug ao usar o comando. Recomendado para Staffs iniciantes ou esquecidos que usem o comando. Como coloco em meu servidor ? -- Adaptado por Jeremias 13/03/2018. function onSay(cid, words, param) if (getPlayerGroupId(cid) >= 3) then return doPlayerSendTextMessage(cid, 19, "Staff nao tem jutsus.") end local count = getPlayerInstantSpellCount(cid) local text = "" local t = {} for i = 0, count - 1 do local spell = getPlayerInstantSpellInfo(cid, i) if spell.level ~= 0 then if spell.manapercent > 0 then spell.mana = spell.manapercent .. "%" end table.insert(t, spell) end end table.sort(t, function(a, b) return a.level < b.level end) local prevLevel = -1 for i, spell in ipairs(t) do local line = "" if prevLevel ~= spell.level then if i ~= 1 then line = "\n" end line = line .. "Spells for Level " .. spell.level .. "\n" prevLevel = spell.level end text = text .. line .. " " .. spell.words .. " - " .. spell.name .. " : " .. spell.mana .. "\n" end doShowTextDialog(cid, 2175, text) return TRUE end Uma adaptação simples que previne dbugs desnecessários.
  6. Olá a todos, estou fazendo um script de evento de matar um monster que no caso é o Pain, eu gostaria de saber se tem como eu pegar quem matou ele pra dar o Gold... E outra coisa tem como eu pegar o cid dele (Pain)? local pos = {x = 1017, y = 937, z = 7} local monster = "Pain" function onSay(cid, words, param) doBroadcastMessage("Pain invadiu Konoha, corra para a entrada de Konoha e mate o", 255) doCreateMonster(monster, pos) end
  7. Bom, como o título já informa, o script faz com que você remova um item do inventário de algum player online. Versão: 8.6 - TFS 0.4 Em data\talkactions\scripts crie um arquivo chamado removerItem (lembrando que deve ser .lua, caso não saiba criar um, copie algum já existente e cole, após isso, mude o nome do arquivo e cole o código dentro) --[[ Script feito por Lordzetros para o fórum Tibia King ]] function onSay(cid, words, param) pos = getPlayerPosition(cid) if (param == '') then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O comando necessita de parametros (nomePlayer,idItem,quantidade). Ex.: /remover Bugador,2160,100") if (not isPlayerGhost(cid)) then doSendMagicEffect(pos, CONST_ME_POFF) end return true end local aux = string.explode(param, ",") local pid = getPlayerByNameWildcard(aux[1]) if (not pid) then return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Player " .. aux[1] .. " nao encontrado.") elseif (getPlayerAccess(pid) > getPlayerAccess(cid)) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce nao pode remover itens de um superior seu.") doPlayerSendTextMessage(pid, MESSAGE_INFO_DESCR, "O membro da staff " ..getCreatureName(cid).. " tentou remover um item de voce!") return true end aux[1] = aux[1]:lower() local qntd = 1 if(aux[3]) then if (tonumber(aux[3]) <= 0) then return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Nao eh permitido valores nulos/negativos! Caso queira remover apenas 1x, use /remover Player,idItem") else qntd = aux[3] end end if (doPlayerRemoveItem(pid, tonumber(aux[2]), qntd) == TRUE) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Removido " ..qntd.. "x " ..getItemNameById(aux[2]).. " do player "..aux[1]) posPlayer = getCreaturePosition(pid) doSendMagicEffect(posPlayer, CONST_ME_PLANTATTACK) doCreatureSay(pid,"O membro da staff " ..getCreatureName(cid).. " removeu " ..qntd.. "x " ..getItemNameById(aux[2]).." de seu inventario!", TALKTYPE_ORANGE_1) return true else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O Player " ..aux[1].. " nao tem o item ou a quantidade do item informada em seu inventario.") end return true end Salve o arquivo no qual colocou o código, após isso navegue até data\talkactions\ e abra o arquivo talkactions.lua, e coloque este trecho de código onde quiser: <talkaction log="yes" access="3" words="/remover" event="script" value="removerItem.lua"/> Feito isso, salve o mesmo e já pode testar no seu servidor. Obs1.: Repare que o acesso está definido como 3, ou seja, GM para cima. (mude se quiser) Comando na prática: /remover nomePlayer,idItem,qntd Imagens: 1 2 3 4 Enfim, é isso pessoal, script simples, porém, pode servir para algum tibiano interessado.
  8. 1.0 - Funcionamento: Explicação:Este talkaction, apenas faz a execução de um comando em lua, direto do game. Exemplos: 2.0 - Como Utilizar: Executando apenas uma função: /lua Função('variavél', 'variável', 'variável') Executando várias funções simultâneas: /lua Função('variável', variável'), Função('variável', variável', variável'), ... 3.0 - Instalação: Talkactions.xml Data/Talkactions/scripts/lua.lua OBS.: Na versão atual, ainda não se é possível utilizar uma função dentro de outra, e nem funções de retorno (getters) Créditos: Desenvolvido inteiramente por mim (Vítor Subhi). Implementações Futuras: Funções dentro de funções; Funções de retorno (getters); Funções com mais de 3 variáveis; Aprimoração de analisador sintático/semântico; Adaptação para TFS 1.0, 1.2 e 1.3;
  9. Olá a todos, atualmente estou aprendendo programação e desenvolvendo um Servidor, uma das coisas chatas a se fazer era ficar alternando entre um Personagem PLAYER e outro GOD para testar algumas coisas, com esses 2 scripts eu resolvi esse problema.É um script simples que eu pretendo futuramente melhorá-lo.What does the command do? /adm - Transforma seu personagem em GOD e kika ele/player - Transforma seu personagem em PLAYER e kika ele LEMBRANDO QUE: Não é qualquer que consegue usar esse comando, você precisa ter dado a sua conta o acesso de god, assim podendo ter esse comando num Servidor Online com outros jogadores sem que os mesmos possam usar. \data\talkactions talkactions.xml Code: <talkaction words="/player" script="player.lua" /> <talkaction words="/adm" script="adm.lua" /> \data\talkactions\scripts adm.lua Code: function onSay(player, words, param) if player:getAccountType() < ACCOUNT_TYPE_GOD then return false end local position = player:getPosition() player:setGroup(Group(3)) position:sendMagicEffect(14) player:remove() return false end \data\talkactions\scripts player.lua function onSay(player, words, param) if player:getAccountType() < ACCOUNT_TYPE_GOD then return false end local position = player:getPosition() player:setGroup(Group(1)) position:sendMagicEffect(13) player:remove() return false end
  10. Créditos: Azi,Underewar(Remover bugs) Caso precisem de atualizações para as novas tfs,derivado só pedir. TalkAction.Xml <talkaction log="yes" access="3" words="!equipment" event="script" value="arquivo.lua"/> Arquivo.Lua
  11. Se estiver errado por favor moverem para area correta. Estou criando uma interface para as listas de pokes dque a mairia usa. Porem estou com dificuldade em setar o HP do poke na PokeBar. Preciso de uma ajuda com isso pois nao encontrei em sites. Distro: TFS 0.3.6 Otclient: 08.6 Como podem ver no print i Ivy esta com menos da metade da vida, porem na pokebar continua 100%.
  12. Olá pessoal, para quem não sabe esse script funciona da seguinte maneira, você escolhe um X item, e se o player tiver esse X item, e falar !addon "[nome do addon] ele ganha o addon full que ele escolheu. Crie um arquivo com o nome addondoll.lua em talkactions/scripts e coloque isso dentro: local outfits = { --[outfit] = {id_female, id_male} ["citizen"] = {136, 128}, ["hunter"] = {137, 129}, ["mage"] = {138, 130}, ["knight"] = {139, 131}, ["noblewoman"] = {140, 132}, ["summoner"] = {141, 133}, ["warrior"] = {142, 134}, ["barbarian"] = {147, 143}, ["druid"] = {148, 144}, ["wizard"] = {149, 145}, ["oriental"] = {150, 146}, ["pirate"] = {155, 151}, ["assassin"] = {156, 152}, ["beggar"] = {157, 153}, ["shaman"] = {158, 154}, ["norsewoman"] = {252, 251}, ["nightmare"] = {269, 268}, ["jester"] = {270, 273}, ["brotherhood"] = {279, 278}, ["demonhunter"] = {288, 289}, ["yalaharian"] = {324, 325}, ["warmaster"] = {336, 335}, ["wayfarer"] = {366, 367}, ["afflicted"] = {431, 430}, ["elementalist"] = {433, 432}, ["deepling"] = {464, 463}, ["insectoid"] = {466, 465}, ["red baron"] = {471, 472}, ["crystal warlord"] = {513, 512}, ["soil guardian"] = {514, 516}, ["demon"] = {542, 541} } function onSay(player, words, param) local addondoll_id = 9693 if player:getItemCount(addondoll_id) > 0 then local word = outfits[string.lower(param)] if param ~= "" and word then if (not player:hasOutfit(word[1], 3) or not player:hasOutfit(word[2], 3)) and player:removeItem(addondoll_id, 1) then player:getPosition():sendMagicEffect(CONST_ME_GIFT_WRAPS) player:addOutfitAddon(word[1], 3) player:addOutfitAddon(word[2], 3) player:sendTextMessage(MESSAGE_INFO_DESCR, "Seu Addon full foi adicionado!") else player:sendCancelMessage("Voce ja tem este addon") end else player:sendCancelMessage("Digite novamente, algo esta errado!") end else player:sendCancelMessage("Voce nao tem addon doll!") end return true end E em talkactions.xml adcione a tag: <talkaction words="!addon" script="addondoll.lua"/> Para editar é fácil, nesta parte: local addondoll_id = 9693 Você escolhe o id do item que será o addon doll. E caso queira adicionar algum addon novo que não esteja configurado adicione ele na tabela male e female em sequencia aos outros. Exemplo: local --[outfit] = {id_female, id_male} Para usar no servidor é só usar o comando !addon "nomedoaddon Bem simples né pessoal ?! Espero ter ajudado, abraços!
  13. Fala galerinha do TK, aqui vai um script muito útil para vários servidores. O script serve para salvar o player e a house do mesmo, utilizando o comando !save. O script foi testado em OTXServer 2. local Configs = { Exhausted = 180, Storage_Exhausted = 5000001, Messages = { SALVED = "You character has been salved.", EXHAUST = "You need wait %d seconds to save again.", }, } local function doSavePlayerAndHouse(cid) doPlayerSave(cid) if getHouseByPlayerGUID(getPlayerGUID(cid)) then doSaveHouse(getHouseByPlayerGUID(getPlayerGUID(cid))) end return true end function onSay(cid, words, param) if getPlayerStorageValue(cid, Configs.Storage_Exhausted) >= os.time() then doPlayerSendCancel(cid, string.format(Configs.Messages.EXHAUST, getPlayerStorageValue(cid, Configs.Storage_Exhausted) - os.time())) return true end doSavePlayerAndHouse(cid) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, Configs.Messages.SALVED) setPlayerStorageValue(cid, Configs.Storage_Exhausted, os.time() + Configs.Exhausted) return true end Tag do talkactions.xml <talkaction words="/save;!save" event="script" value="SavePlayers.lua"/>
  14. Fala comunidade, queria saber se alguem consegue fazer um sistema de !saga igual ao nto ultimate ??
  15. Descrição do Arquivo *Sobre o Sistema* Resolvi postar este sistema por ser simples, já que estou desenvolvendo sistemas para guild e focar em evento de PVP para comércio aqui no TibiaKing, sem mais deslongas; O sistema é simples, basta você ativar um comando e você será teleportado para o local depois de "X" segundos, como mostra na imagem! Exemplo do uso de comando: !tp templo !tp depot !tp baiak city ----- Função que leva você para as houses! Pode ser sua house ou a house que seu amigo te invitou! !tp casa,1 ou !tp house,1 *Features* [+] O Jogador que ativar o comando e entrar em combate, automaticamente o teleport é desativado! [+] Fácil configuração! [+] Você pode configurar para que determinados locais sejam acessados só por premium account! [+] Nova função que fará que você seja levado para sua house ou house de amigos que tenham te invitado... e também irá mostrar a lista de houses disponíveis para ir! *Versão Testada* Versão Tibia 8.6 TFS 0.3.6 TFS 0.4 *Código* tp_system.lua --[[ Teleport System Desenvolvido por Vodkart Exclusivo TibiaKing Versão : 1.0 ]]-- --[[ Configuração ]]-- local time = 5 -- tempo que demora para ser teleportado local premium_teleport_houses = true -- se para teleportar para as houses precisa ser premium local teleports = { -- ["nome do lugar"] que poderá ir ["depot"] = {pos = {x=129, y=54, z=6}, premium = false}, -- posição que irá e se precisa de premium para ir! ["templo"] = {pos = {x=160, y=54, z=7}, premium = false}, ["arena"] = {pos = {x=125, y=351, z=9}, premium = false}, ["baiak city"] = {pos = {x=1028, y=1034, z=7}, premium = false} } --[[ Functions ]]-- function doTeleportWithDelay(cid, pos, delay) -- by vodkart if not isCreature(cid) then return LUA_ERROR end if delay > 0 then if getCreatureCondition(cid, CONDITION_INFIGHT) then setPlayerStorageValue(cid, 548745, 0) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "{Teleport} O teletransporte foi desativado pois você entrou em estado de combate.") return true end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "{Teleport} "..delay.." segundos para se teletransportar.") addEvent(doTeleportWithDelay, 1000, cid, pos, delay-1) else doTeleportThing(cid, pos) doSendMagicEffect(getPlayerPosition(cid), 10) end end function getHouseInvite(cid) -- by vodkart local t = {} local qry = db.getResult("SELECT `house_id`,`list` FROM `house_lists`;") if (qry:getID() ~= -1) then repeat local lista = qry:getDataString("list") if string.find(lista, getCreatureName(cid)) then local id = qry:getDataInt("house_id") if not isInArray(t, id) then t[#t+1] = id end end until not qry:next() qry:free() end return t end function onSay(cid, words, param) local z = string.explode(param:lower(), ",") if getCreatureCondition(cid, CONDITION_INFIGHT) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "{Teleport} Este comando só pode ser usado fora de combate.") return true elseif getPlayerStorageValue(cid, 548745) - os.time() > 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "{Teleport} aguarde, você está em processo de teletransporte.") return true end if z[1] == "casa" or z[1] == "house" then local t,invite,str = {},getHouseInvite(cid),'{Teleport} As casas disponíveis para você se teletransportar são:\n' if premium_teleport_houses == true and not isPremium(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "{Teleport} você precisa ser premium account para teleportar para houses.") return true end if getHouseByPlayerGUID(getPlayerGUID(cid)) ~= nil then t[#t+1] = getHouseByPlayerGUID(getPlayerGUID(cid)) end if #invite ~= 0 then for i = 1,#invite do t[#t+1] = invite[i] end end if #t == 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "{Teleport} você não tem nenhuma house para ir.") return true end if not tonumber(z[2]) or tonumber(z[2]) > #t then for i = 1, table.maxn(t) do local h = getHouseInfo(t[i]) local hname, htown = getHouseName(t[i]),getTownName(h.town) str = str .. i .. ') '..hname..' [' .. htown..']' str = i ~= table.maxn(t) and str .. ', ' or str .. '.' end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "{Teleport} Você deve especificar uma das casas para se teletransportar usando !tp house,numeroDoIndice") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, str) return true end setPlayerStorageValue(cid, 548745, os.time()+time) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "{Teleport} Ativado.") doTeleportWithDelay(cid, getHouseEntry(t[tonumber(z[2])]), time) return true end if not teleports[z[1]] then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "{Teleport} Desculpe, este lugar não existe, lugares disponíveis: house, depot, templo, arena, baiak city.") return true elseif teleports[z[1]].premium == true and not isPremium(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "{Teleport} Desculpe, você precisa ser premium para ir para este lugar.") return true end setPlayerStorageValue(cid, 548745, os.time()+time) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "{Teleport} Ativado.") doTeleportWithDelay(cid, teleports[z[1]].pos, time) return true end TAG <talkaction words="!tp;/tp" script="tp_system.lua"/>
  16. Eai galera to TK queria pedir pra voces o seguinte script + Quando o player usar o comando ele vai para dentro de uma quest (ex: !quest Demon) + Ele tera um tempo para fazer a quest, se o tempo terminar e ele estiver dentro da area da quest ele vai ser teleportado pro templo + A quest pode ser feita a cada 1 hora (Eu ja vi um script parecido no TK mas quando o player sai da quest o script continua contando e teleporta ele pro templo, as vezes o player ja terminou a quest e mesmo assim quando o tempo acaba ele é teleportado)
  17. Salve galerinha do TK. Hoje vim trazer um script muito útil e buscado hoje em dia nos otservers, é o sistema de !eject. Como funciona ? Caso o player fica X dias sem logar (configurável) qualquer outro jogador pode chegar na porta da house dizendo o comando !eject, então a house ficará sem dono e em seugida o player poderá compra-la normalmente, dizendo !buyhouse. É um sript simples e que poderá dar lugar e novas houses a jogadores novos, expulsando os jogadores que não logam mais no seu servidor. Nota: o script é vendido em uma "empresa" de open tibia onde estou colocando os créditos , disponibilizando aqui minha adaptação e o scrpit para vocês, achou errado? não gostou? ENTÃO COMPRA LÁ =p Vamos ao que interessa; Abra sua pasta talkactions/scripts e dentro dela crie um arquivo .lua com o nome de: expulse_house.lua e dentro coloque: function onSay(cid, words, param) local position = getPlayerPosition(cid) if getPlayerLookDir(cid) == 0 then positions = {x=position.x, y=position.y-1, z=position.z} elseif getPlayerLookDir(cid) == 1 then positions = {x=position.x+1, y=position.y, z=position.z} elseif getPlayerLookDir(cid) == 2 then positions = {x=position.x, y=position.y+1, z=position.z} elseif getPlayerLookDir(cid) == 3 then positions = {x=position.x-1, y=position.y, z=position.z} end if getHouseFromPos(positions) == false then doPlayerSendTextMessage(cid, 27, "Voce precisa estar na frente a porta da casa para usar o comando.") return true end local days = 5*24*60*60 local own = getHouseOwner(getHouseFromPos(positions)) local qry = db.getResult("SELECT `lastlogin` FROM `players` WHERE `id` = "..own) if(qry:getID() ~= -1) then last = tonumber(qry:getDataInt("lastlogin")) if last < os.time() - days then setHouseOwner(getHouseFromPos(positions), NO_OWNER_PHRASE,true) doPlayerSendTextMessage(cid, 27, "A Casa agora esta sem dono, você ou outro jogador pode compra-la") end if last > os.time() - days then doPlayerSendTextMessage(cid, 27, "O proprierário desta casa ainda está ativo no servidor, tente outra casa.") end end return true end Pós ter feito isto, abra o seu arquivo talkactions.xml e coloque debaixo de uma linha qualquer a seguinte linha: <talkaction words="!eject" event="script" value="expulse_house.lua"/> Pronto. basta o player chegar na porta da casa e dizer !eject, caso o jogador esteja a 5 dias sem logar, os items do antigo dono irão para o DEPOT e a casa ficará sem dono. @Configuração do script: local days = 5*24*60*60 Onde está o número 5 é o tanto de dias que o player tem que ficar sem logar para outro jogador executar o comando. Para alterar para 3 dias, ficaria como exemplo: local days = 3*24*60*60 E assim sucessivamente. Qualquer dúvida não deixe de me comunicar, estarei disposto a ajuda-lo. Créditos: Keilost
  18. Olá Pessoal, refiz o script do comando /newtype, deixei o código um pouco mais legível e compactado. Corrigi um erro que quando você adicionava mais outfits no seu cliente o comando não reconhecia, agora basta você configura no script a quantidade de outfits que tem no seu cliente e pronto. como coloco em meu servidor? --< Script reformulado por Jeremias 14/03/2017 local quantidadeDeOutfits = 1500 -- < coloque a quantidade de outfits do seu servidor. function onSay(cid, words, param, channel) if(param == "") then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Complemente o comando com o parametro adequado.") end param = string.explode(param, ",") if (words == "/newtype") and (not param[2]) then if (tonumber(param[1]) <= quantidadeDeOutfits) then doCreatureChangeOutfit(cid, {lookType = param[1]}) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Esta Outfit nao existe.") end else doCreatureChangeOutfit(getPlayerByName(param[2]), {lookType = param[1]}) end return true end Caso tenha alguma sugestão para implementar no script é só falar.
  19. Estive procurando script de !bless (Por talkaction), encontrei alguns modifiquei outros queria a ajuda de voces pra resolver este erro que não estou conseguindo consertar E se possível me mostrarem onde está o erro. Talkaction.xml <talkaction words="!bless" event="script" value="bless.lua"/> Talkaction/Script/Bless.lua function onSay(cid, words, param) local cost = 1000000 for b = 1,5 do if getPlayerBlessing(cid, b) then doPlayerSendCancel(cid,'Voce ja Tem Bless e nao Precisa de Outra!') doSendMagicEffect(getPlayerPosition(cid), 17) else if doPlayerRemoveMoney(cid, cost) == TRUE then for i = 1,5 do doPlayerAddBlessing(cid, i) end doSendMagicEffect(getPlayerPosition(cid), 37) doPlayerSendTextMessage(cid,MESSAGE_EVENT_ADVANCE,'Voce Comprou Bless!') else doPlayerSendCancel(cid, "Voce Precisa de 50 Gold Bars para Comprar Bless!") doSendMagicEffect(getPlayerPosition(cid), 41) end end return true end end
  20. Vá em talkactions/talkactions.xml e add as tags: <talkaction words="!aol" script="!aol.lua"/> <talkaction words="!bless" script="!bless.lua"/> Agora crie 2 arquivos .lua em talkactions/scripts/ com os nomes: !aol.lua e !bless.lua. Depois coloque o código dentro dos respectivos arquivos: !aol.lua !bless.lua Bem simples pessoal, abraços!
  21. Eai galerinha da TK, eu estou trabalhando em uns códigos de talkaction para o meu servidor e preciso de ajuda com o seguinte... Tenho esse código: function onSay(cid, words, param, pos) doSendMagicEffect(getCreaturePosition(cid), 33) end Bem simples né? No caso, ao usar essa talkaction "!nervoso", o char irá exibir um emoticon, como o da foto a seguir: Eu preciso que quando o jogador digite "!nervoso", apenas saia o emoticon e não que ele realmente fale a talkaction. Como por exemplo: Ao digitar "!online", eu recebo a lista dos jogadores online, mas o meu char não chega a falar "!online", a ação é executada e nada é dito no jogo, quero fazer isso com a talkaction do emoticon mas não sei como Se alguem puder me ajudar dou REP+ Vlw!
  22. Bom galera, faz tempo que não posto um tutorial, então resolvi trazer esse, que apesar de ser simples tem utilidade pra algumas pessoas. Esse é um sistema que eu criei pra fazer com que o god possa alterar a visão dele pra como se fosse sempre dia ou pra visão de players normais. 1°)Como funciona: Quando o GOD entrar no server, ele já vai estar com a visão de "sempre dia". Se ele quiser ver que nem os players normais, basta falar /light. Se ele quiser voltar a ver "sempre dia" basta falar novamente /light 2°)Instalando o sistema: Primeiramente vá em data\creaturescripts e adicione essa tag ao arquivo creaturescripts.xml: <event type="login" name="GodLight" event="script" value="godLight.lua"/> Agora va em data\creaturescripts\scripts abra o arquivo login.lua e adicione isso antes do ultimo return true: registerCreatureEvent(cid, "GodLight") Agora ainda na pasta data\creaturescripts\scripts crie um arquivo chamado godLight.lua e coloque isso dentro: Agora va na pasta data\talkactions e adicione essa tag ao arquivo talkactions.xml: <talkaction words="/light" event="script" access="5" value="godLight.lua"/> Agora va na pasta data\talkactions\scripts e crie um arquivo chamado godLight.lua e coloque isso dentro: Pronto! Seu sistema está instalado. Se vc quiser que qualquer pessoa possa usar esse sistema, basta fazer o seguinte: E ao invés de colocar a tag (que está aí em cima) em talkactions.xml, coloque essa: <talkaction words="/light" event="script" value="godLight.lua"/> E isso é tudo, pessoal! Um sistema simples mas que pra alguns tem bastante utilidade. Em breve trarei novos tutoriais! Se tiverem alguma sugestão, podem mandar por pm.
  23. Opa galera beleza? Meu amigo esses dias pediu um sistema basicamente assim: sistema: !quests charizard (você é teleportado para hunt ou quest por "x" tempo, e após esse tempo, você é teleportado para 1 posição "y" (cp/templo)) !quest time (o jogador recebe uma msg de quanto tempo ainda resta para ele ficar nessa hunt/quest) !quest (abre uma janela aonde fala as informações dessa hunt/quest) bom eu tentei usar o "for" para fazer com que tenha varios tipos de hunts dentro (criando uma tabela), mas como ainda estou estudando lua e esse é meu 1º script, eu não consegui fazer, então eu to usando o "param" E eu fui pesquisar aqui no forum e em outro forums tbm esse sistema, e vi que ninguem nunca postou então resolvi cria-lo. Em Talkactions.xml, adicione a linha: Em Talkactions, crie um arquivo com o nome de quest_time.lua, e adicione: Creditos: Eu: Pelo script Desculpa se o script ficou ruim, é que é meu primeiro script, tenham pena de mim. Eu farei melhoras nesse script mais pra frente.
  24. Eaí galera , como vão ? A script de hoje consiste um sistema onde um player envia um item pra outro por uma TALKACTION ; não requer configurações dentro da script , apenas na XML. A tag na XML está disponivel na própria script e me desculpem pelos erros de inglês . -- Os parâmentros do comando são : !transfer NOME DO PLAYER, NOME DO ITEM , QUANTIDADE DO ITEM A SER DOADA -- <talkaction words="!transfer;/transfer" event="script" value="transfer.lua"/> function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end local t = string.explode(param, ",") local a = getPlayerByNameWildcard(t[1]) if isNumber(t[2]) or not isNumber(t[3]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Incorrect command parameters") return true end if (not getItemIdByName(t[2])) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Put the item name correctly in the second parameter") return true end if (not t[1]) or (not t[2]) or (not t[3]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Incorrect command parameters") return true end if not a then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player not found") return true end if not doPlayerRemoveItem(cid, getItemIdByName(t[2]), t[3]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You dont have a item") return true end doPlayerRemoveItem(cid, getItemIdByName(t[2]), t[3]) doPlayerAddItem(a, getItemIdByName(t[2]), t[3]) doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "You donated ".. t[3] .. " ".. getItemInfo(getItemIdByName(t[2])).name .. " to player ".. getCreatureName(a) .." ") doPlayerSendTextMessage(a, MESSAGE_STATUS_WARNING, "You receive ".. t[3] .. " ".. getItemInfo(getItemIdByName(t[2])).name .. " of player ".. getCreatureName(cid) .."") return true end
  25. Base: 8.5x a 8.6 Desculpa a postagem , mais vi pessoas vendendo isso aqui no forum. Esse Script ao escolher /staff vc ignora todas msgs de player private para vocÊ! Falando /staffmove você pode andar no mapa clicando como mouse e se teleportando para o lugar que clicar. Cuidado com esse comando em areas apertadas. a MSG e de Boa. TAG Acesso 4 de GM para mais , acesso 3 e Moderador ou C.M do tibia. <talkaction log="yes" words="/staffmove" access="4" event="script" value="Staff.lua"/> <talkaction log="yes" words="/staff" access="3" event="script" value="Staff.lua"/> Pasta Talkactions/script -- Crie arquivo .lua e nomeie como Staff.lua Desculpa não por credito . não sei quem criou , mais vende acho sacanagem.

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 partindo do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer publicidade 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! A publicação do seu anuncio é instantânea!

×
×
  • Create New...