Ir para conteúdo

Ryzor

Membro
  • Registro em

  • Última visita

Tudo que Ryzor postou

  1. Nome: Tranformação Autor: SkyFail Versão Testada: Original Tibia 8.54 - Cliente 8.54 Informações Adicionais Transformações de Classes Obs:So Serve em Servers ATS pois não pode Trocar Outfuit Cada Classe Tem que ter a Propria. Vamos la, Va em: Código PHP: Data/Talkaction/Talkaction.xml Adicione esta Tag: Código PHP: <talkaction words="!transf" event="script" value="transf.lua"/> Entre em: Código PHP: Data/Talkaction/Script Copie um Arquivo Qualquer Renomeie para: transf e apague o que estiver dentro e adicione: Configurando: Código PHP:
  2. Vamos lá, faça uma cópia de qualquer arquivo dentro da pasta globalevents\scripts e renomeie para "removeFrags.lua" Agora abra o arquivo, apague tudo que tiver dentro e coloque isso: Para quem não conseguir, o dragonlorde deu uma ajuda! Use isso: Agora vá em globalevents.xml e adicione isso: Código: <globalevent name="removeFrags" interval="18000" event="script" value="removeFrags.lua"/> Pronto, agora é só rodar Agora vou explicar o script: Onde está em... Vermelho: É o tempo de intervalo entre uma remoção e outra. 18000 são 5 horas pois 18000 ai está em segundos, e 18000 segundos = 5 horas Caso queira mudar, já sabe como fazer né? Mas não se esqueça de mudar a mensagem também caso vá mudar o intervalo. Roxo: É uma função pra pegar todos os players online pra mim, e fazer uma ação em cada um deles. Pra quem não entende muito bem, o "pid" ali é o ID do player na qual ela está checando. Verde: É a função que é executada em todos os players. Marrom: É a mensagem que é mandada após a remoção. Creditos Ramza ( Por Fazer O Script ) GodMarini (Por Trazer Ao TK )
  3. Olá pessoal eu venho aqui contribuir com algo que creio eu que não á por aqui. é o meu primeiro Script (action) que fiz com a intenção de trazer mais RPG a servidores. Testado em: TFS 0.3.6 (8.60) Descrição: O Script funciona da seguinte maneira, o player da use em um Machado e clica na parede, logo depois a parede será destruida, a parede quebra em 3 Partes, ou seja tem que usar o machado 3 vezes na parede. Bom vamos ao Script 1° Primeiramente você tera que ir no RME e colar um UniqueID na parede que será destruída Em data/actions/scripts copie um arquivo qualquer e renomeie para destruction.lua 2° Agora em data/actions/actions.xml adicione: Código: <action itemid="2391" event="script" value="destruction.lua"/> Legenda: Verde: ID do item que será usado para destruir a parede, eu uso este: Vermelho: São os id das paredes, Ex: parede normal, parede destruida, parede mais destruida. Azul: São os id das paredes depois de destruida, Ex: id 3361 vai virar 3399, depois 3399 vai virar 3387 assim por diante Vídeo mostrando o Sistema; http://youtu.be/-01nLh9L3Bg Créditos: Bloodwalker ( Por Fazer O Script ) GodMarini ( Por trazer Ao TK )
  4. Nome: Boite System(Mock) Autor: Mock - Remake #GodMarini Versão Testada: The forgotten server 0.3.5 PL1 - 8.50 Em data/globalevents/globalevents.xml coloque esta tag: Código PHP: <globalevent name="boate" interval="1" script="boate.lua"/> Em data/globalevents/scripts crie um arquivo chamado boate.lua e coloque isto em seu conteúdo: E agora, como eu configuro? Simples, viu aquela parte lá, POSITIONS? POSITIONS = { [1] = {x=146, y=59, z=8}, [2] = {x=138, y=61, z=8}, [3] = {x=142, y=57, z=8}, } Para adicionar mais é só aumentar um dos números entre colchetes, colocar a posição igual tá os outros, e no final colocar uma vírgula. Por exemplo: Código: [4] = {x=1044, y=1023, z=7},E assim vai. 2 avisos: ºOs monstros devem estar PARADOS, ou seja, tranque-os em celas ou ponha pz ao seu redor. ºFaça somente se estiver de noite ou for em um sub-solo. Senão a luz será a luz do dia.
  5. Nome: Mortes no Broadcast Versão: 8.4x Tipo do script: creaturescript Servidor Testado: TFS 0.2 (') Autor: Alguém da equipe criadora do TFS e eu por editar. Comentario: Script editado; Original é o que vem com o tfs. ---------------------------------------------------------------------- Falae; Preview: Como não vi nenhum tópico sobre o assunto por aqui, resolvi criar o script, ou melhor, editar o playerdeath.lua '-' Primeiramente, abra a pasta data/creaturescripts/scripts e crie um arquivo playerdeath.lua Depois salve e pronto, está implantado o sistema de anúncio de mortes no broadcast; é simples, porém algumas pessoas não sabem como fazer. Já que insistem, aí está a TAG: <event type="death" name="PlayerDeath" script="playerdeath.lua"/>
  6. Olá, freqüentemente vários donos de servidores tem este problema de cloners em seu server, tanto é com quedas do Servidor, ou outras coisas relacionadas, vou hoje mostrar a vocês um sistema muito interessante que encontrei na web. Comprado no shop só pode ser usado pelo dono assim impedindo que se clone e seja repassado os item para outros players. * Cada item comprado no shop recebe o nome do player na descrição. * Não esqueça de em movements.xml copiar as tags e trocar o "itemid" para funcionar em todos os items que ali você selecionar. •1° Siga a linha de comando : Data>Movements>Scripts. Crie um Arquivo chamado: equipvip.lua Neste mesmo arquivo coloque: Código PHP: -IDDOITEM = Aqui você coloca o id do item vip, caso você queira que somente quem comprou no shop do site, possa usar. •3° Siga a linha de comando: Data/Globalevents/scripts Crie um arquivo chamado : shop.lua No mesmo, insira: Código PHP: Observações: 1° Eu não testei o script, então não sei se funciona. 2° Créditos ao script, do blogdogiroba. Recomendo! Créditos: GodMarini - Tópico Chaitosoft - Criador do Sistema Blogdogiroba - Fornecer o sistema.
  7. Edson , arrumei descupa mesmo , e prometo que meu outro topico irei melhora WarW0lf arrumei também e obrigado por me alertar.
  8. Informações do Script Nome: Sistema de Barco Autor: zathao Testado em: The Forgotten Server Version 0.3.6 / Tibia 8.54 Descrição: Este script foi desenvolvido por mim exclusivamente para esse fórum. Nele o jogador poderá viajar por uma rota pré-definida através de um barco. Video Demonstrativo Códigos e Instalação O sistema irá apenas utilizar apenas 2 Npcs, facilitando ainda mais a instalação. - Crie um arquivo chamado barco.lua em data/npc/scripts e adicione isso no arquivo: - Agora, crie outro arquivo, chamado barco2.lua com o código abaixo e adicione na mesma pasta: Feito isso o próximo passo é criar os npcs. - Crie um arquivo npc1.xml em data/npc e cole isto dentro: - Em seguida crie um arquivo npc2.xml em data/npc e cole isto dentro: Código HTML: Configurações No cabeçalho de cada script do npc, e juntamente a conversa do npc, estão uma sequencia de configurações básicas. - Nome da rota: Esse será o nome que o npc irá reconhecer e apresentar para o jogador como escolha de viagem. - Id's: O barco possui 3 partes. Cada parte tem um id diferente. Quando esta na posição vertical a sequencia é uma, e na horizontal a sequencia é outra. Por padrão, o primeiro npc começa com o barco na sequencia vertical, e o outro na sequencia horizontal ATENÇÃO! - MUITO IMPORTANTE - Posição: Se trata da posição inicial de cada peça do barco. O script irá utilizar elas como referência para as próximas posições, portanto cuidado. Vale lembra que ele considera que o barco irá ter apenas 3 partes, e o player irá ficar na posição do meio, no caso barcoPos[2] . - Padrão: Por padrão, o barco na vertical ira partir para o sul e o barco na horizontal irá partir para leste. Aproveite isso na hora de usar a criatividade no mapa, claro que também é possível fazer alterações, mas o teste do script foi feito usando os próprios padrões. Criando a rota Com tudo configurado, posições iniciais e nomes, você já esta pronto para criar as 2 rotas. Claro que nada impede que seu server tenha muitas rotas, considerando um npc para cada rota é claro. - Esta é a área inicial do NPC1, onde irei começar a fazer a primeira rota. - Selecione a ferramenta “ NO LOGOUT ZONE “ Padrão do seu MAP EDITOR para marcar a rota. Assim você facilita a visualização para colocar os Actions corretamente e tambem evita que alguem tente logar durante a viagem. - Tenha em mente, de que cada NPC apenas uma rota. Marque toda sua rota com a ferramenta “NO LOGOUT”. - O final de sua rota deve possuir um sqm livre para o jogador poder desembarcar corretamente. - Até agora, o barco apenas irá seguir uma unica direção, o sentido inicial da primeira rota (por padrão SUL). Como solução, para não irmos sempre pela mesma direção, iremos colocar sqms especiais, que irão fazer o barco mudar de direção - Para isso, selecione ultimo sqm da direção atual e adicione um action id conforme a tabela abaixo. 7001 = Vira o barco para leste 7002 = Vira o barco para oeste 7003 = Vira o barco para norte 7004 = Vira o barco para sul obs: Só é possível mudar de uma direção vertical para uma horizontal e vice-versa. Ex: Norte/Sul para Leste/Oeste - Na imagem abaixo é possível visualizar uma série de sqm configurados corretamente. - Para finalizar a primeira rota, iremos colocar uma action id especial no ultimo sqm. - De acordo com sua rota, utilize a action mais indicada para seu desembarque conforme a tabela abaixo. Desembarques: 7005 = Desembarca personagem para direita 7006 = Desembarca personagem para esquerda 7007 = Desembarca personagem para cima 7008 = Desembarca personagem para baixo obs: Só é possível desembarcar para um sentido paralelo a sua atual direção. Ex: Norte/Sul para direita/esquerda - Com a primeira rota ja pronta, iremos agora configurar a viagem do segundo NPC! Tenha cuidado para não se confundir com as marcações da “NO LOGOUT ZONE”. Não se preocupe com conflitos entre as rotas, pois as actions ids irão ser diferentes para cada NPC . Abaixo segue as tabelas que configuram a segunda rota. Direções: 7009 = Vira o barco para leste 7010 = Vira o barco para oeste 7011 = Vira o barco para norte 7012 = Vira o barco para sul Desembarques: 7013 = Desembarca personagem para direita 7014 = Desembarca personagem para esquerda 7015 = Desembarca personagem para cima 7016 = Desembarca personagem para baixo - Como ja dito antes, não há problema nenhum entre conflito de rotas, pois elas utilizam actions diferentes. Porém mantive cautela em marcar a rota, para não se confundir, e ter mais clareza na hora da marcação. comente!
  9. Vá em MoveEvent/Scripts, crie um arquivo LUA, e renomeie para autokick.lua em movements.xml adicione as tags:
  10. WarW0lf , primeiramente ve as coisas para falar ok? e quizer fala a algum moderador pa olhar o IP pode fala , não sou fake so apenas falo pa ele comenta nos topicos que estou fazendo e eu comento no dele , então fika quetim ae ok ?
  11. Ryzor postou uma resposta no tópico em Suporte & Pedidos
    Estas mappiando muito bem . parabens é continue assim
  12. [sistema] Guild Fairy Tail Sintaxe: minha_funcao(pos, item, itemtr) Descrição: Função que faz você pegar certo level ser mandado ao Rei, Escolher Sua Guilda. Requerimentos: MySQL / Lua 5.1+ Primeiramente Vou me apresentar, GodMarini. Velho aqui, mais novo em postagens, vim trazer um script feito por min. Vai em data/creaturescripts e poe : Código: <event type="combat" name="attacknacao" script="attacknacao.lua"/> <event type="look" name="Look" event="script" value="look.lua"/> Vai em data/creaturescripts/scripts Crie uma .lua com nome attacknacao.lua e poe : Código: --script by Muliouch function onCombat(cid, target) local creatureSkull = getCreatureSkullType(cid) if isPlayer(target) and getPlayerReino(cid) ~= tostring("0") and getPlayerReino(target) ~= tostring("0") then if isPlayer(target) and getPlayerReino(cid) == getPlayerReino(target) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Não pode atacar jogadores da mesma Guilda.") doCreatureSetSkullType(cid, creatureSkull) return false end end return true end Vai em data/creaturescripts/scripts Crie uma .lua com nome loguin.lua e poe : Código: registerCreatureEvent(cid, "Look") registerCreatureEvent(cid, "attacknacao") Vai em data/creaturescripts/scripts Crie uma .lua com nome look.lua e poe : Código: --Script feito por Muliouch function onLook(cid, thing) pid = thing.uid local access = {[1] = {[0] = 'has no vocation', [1] = 'a Sorcerer', [2] = 'a Druid', [3] = 'a Paladin', [4] = 'a Knight', [5] = 'a Magician', [6] = 'a Warlock', [7] = 'a Templar', [8] = 'a Healer', [9] = 'a Assassin', [10] = 'a Archer', [11] = 'a Lord Knight', [12] = 'a Defender',}, [2] = {'a Tutor'}, [3] = {'a Senior Tutor'}, [4] = {'a Gamemaster'}, [5] = {'a GOD'},} local art = { [0] = 'She', [1] = 'He', } if isPlayer(pid) then local nacao = getPlayerAccess(pid) > 2 and '' or ' Nação '.. getPlayerReino(pid) ..'' local guild = (getPlayerGuildName(pid)~='' and " ".. art[getPlayerSex(pid)] .." is ".. getPlayerGuildRank(pid) .." of the ".. getPlayerGuildName(pid) .."" .. (getPlayerGuildNick(pid)~='' and ' ('.. getPlayerGuildNick(pid) ..').' or '.') or '') local guild1 = (getPlayerGuildName(pid)~='' and " You are ".. getPlayerGuildRank(pid) .." of the ".. getPlayerGuildName(pid) .."" .. (getPlayerGuildNick(pid)~='' and ' ('.. getPlayerGuildNick(pid) ..').' or '.') or '') local voc = getPlayerAccess(pid) > 2 and access[getPlayerAccess(pid)][1] or access[1][getPlayerVocation(pid)] local level = getPlayerAccess(pid) > 2 and '.' or ' (Level '.. getPlayerLevel(pid) ..').' local msg = ('You see '.. getPlayerName(pid) ..''.. level .. ' '.. art[getPlayerSex(pid)] ..' is '.. voc ..'.'..nacao)..guild local msg1 = ('You see yourself. You are '.. voc ..'.'..nacao)..guild1 if getPlayerName(pid) == getPlayerName(cid) then if getPlayerAccess(cid) > 2 then if getPlayerStorageValue(cid, 1078) == 1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg1) else return true end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg1) end else if getPlayerAccess(cid) > 2 then if getPlayerStorageValue(cid, 1078) == 1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg) else return true end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg) end end elseif not isPlayer(pid) then return true end end Verde: As Vocations Vai De Acordo Com o Serv Vai em data/lib crie um .lua. nacao.lua : Código: --Script feito por Muliouch local nacao = { [1] = "Fairy Tail", [2] = "Phantom Lord", [3] = "Blue Pegasus", [4] = "Lamia Scale", [5] = "Cait Shelte" } function reinoSetTable() local i = db.executeQuery("ALTER TABLE `players` ADD `reino` VARCHAR(50) NOT NULL DEFAULT '0' AFTER `name`;") return i end function setPlayerReino(cid, new) dofile("config.lua") db.executeQuery("UPDATE `"..sqlDatabase.."`.`players` SET `reino` = '".. nacao[new].."' WHERE `name` = '".. getPlayerName(cid).."';") return true end function getPlayerReino(cid) local get = db.getResult("SELECT `reino` FROM `players` WHERE `name` = '".. getPlayerName(cid).."';") local j = get:getDataString('reino') return j end function haveReino(cid) if type(getPlayerReino(cid)) == 'string' then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Nação: ".. getPlayerReino(cid).."") end end Vai em data/talkactions/scripts e crie um .lua reino.lua : Código: --script feito por GustavoMassa e adaptado por Muliouch function onSay(cid, words, param) local c = { levelmin = 20, reipos = {x = 851, y = 1687, z = 7}, <----------------- x,y,z, as coordenadas do Castelo do NPC do Rei no MAP. reino1pos = {x = 99, y = 99, z = 7}, <----------------- x,y,z, as coordenadas do reino da "Fairy Tail", aonde so os players da Fairy Tail podem ir. reino2pos = {x = 99, y = 99, z = 7}, <-----------------x,y,z, as coordenadas do reino da "Phantom Lord", aonde so os players da Phantom Lord podem ir. reino3pos = {x = 99, y = 99, z = 7}, <-----------------x,y,z, as coordenadas do reino da "Blue Pegasus", aonde so os players da Blue Pegasus podem ir. reino4pos = {x = 99, y = 99, z = 7}, <-----------------x,y,z, as coordenadas do reino da "Lamia Scale", aonde so os players da Lamia Scale podem ir. reino5pos = {x = 99, y = 99, z = 7} <-----------------x,y,z, as coordenadas do reino da "Cait Shelte", aonde so os players da Cait Shelte podem ir. } if isPlayerPzLocked(cid) then doPlayerSendCancel(cid, "You cannot use this command during battle.") return true end if param == '' then if getPlayerLevel(cid) < c.levelmin then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Desculpe, você precisa alcançar o lvl 20 para poder ir ate o Rei.") return false elseif getPlayerLevel(cid) > c.levelmin and getPlayerReino(cid) == tostring("0") then doTeleportThing(cid,c.reipos) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Agora vá falar com o Rei e escolher sua Nação!") return true elseif getPlayerLevel(cid) > c.levelmin and getPlayerReino(cid) == tostring("Fairy Tail") then doTeleportThing(cid,c.reino1pos) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Bem-Vindo "..getPlayerName(cid).." a Guilda Fairy Tail.") return true elseif getPlayerLevel(cid) > c.levelmin and getPlayerReino(cid) == tostring("Phantom Lord") then doTeleportThing(cid,c.reino2pos) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Bem-Vindo "..getPlayerName(cid).." a Guild Phantom Lord.") return true elseif getPlayerLevel(cid) > c.levelmin and getPlayerReino(cid) == tostring("Blue Pegasus") then doTeleportThing(cid,c.reino3pos) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Bem-Vindo "..getPlayerName(cid).." a Guilda Blue Pegasus.") return true elseif getPlayerLevel(cid) > c.levelmin and getPlayerReino(cid) == tostring("Lamia Scale") then doTeleportThing(cid,c.reino4pos) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Bem-Vindo "..getPlayerName(cid).." a Guilda Lamia Scale.") return true elseif getPlayerLevel(cid) > c.levelmin and getPlayerReino(cid) == tostring("Cait Shelte") then doTeleportThing(cid,c.reino5pos) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Bem-Vindo "..getPlayerName(cid).." a Guilda Cait Shelte.") return true end end return true end Código: Vai em data/npc e crie um npc chamado rei : <?xml version="1.0" encoding="UTF-8"?> <npc name="Rei" script="rei.lua" walkinterval="0" floorchange="0"> <health now="9999" max="9999"/> <look type="325" head="95" body="94" legs="60" feet="113" addons="3"/> <parameters> <parameter key="message_greet" value="Bem-Vindo ao meu Castelo |PLAYERNAME|."/> </parameters> </npc> Vai em data/talkactions e poe : Código: <talkaction words="/reino" event="script" value="nacao/nacao.lua"/> Vai em data/npc e crie um .lua rei : Código: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function oracle(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end local reinoNode = node:getParent() local reino = reinoNode:getParameters().new if getPlayerReino(cid) == tostring("0") then setPlayerReino(cid, reino) selfSay('Agora você pertence ao Reino {'..getPlayerReino(cid)..'}.',cid) elseif getPlayerReino(cid) ~= tostring("0") then selfSay('Você já pertence ao Reino {'..getPlayerReino(cid)..'}.',cid) npcHandler:resetNpc() end return true end function greetCallback(cid) if(getPlayerLevel(cid) < 20) then selfSay('Volte quando alcançar o Nível 20.',cid) npcHandler:resetNpc() else return true end end npcHandler:setCallback(CALLBACK_GREET, greetCallback) npcHandler:setMessage(MESSAGE_GREET, '|PLAYERNAME| está preparado para escolher seu reino?') local yesNode = KeywordNode:new({'sim' or 'sím'}, oracle) local noNode = KeywordNode:new({'nao' or 'não'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, moveup = 1, text = 'Então, que Reino ira escolher?'}) local node1 = keywordHandler:addKeyword({'sim' or 'sím'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Você quer se juntar aa guilda {Fairy Tail}, a guilda {Phantom Lord}, a guilda {Blue Pegasus}, a guilda {Lamia Scale}, a guilda {Cait Shelt}?'}) local node2 = node1:addChildKeyword({'Fairy Tail'}, StdModule.say, {npcHandler = npcHandler, new = 1, onlyFocus = true, text = 'Então, vai se juntar a Guilda {Fairy Tail}? A decisão é irreversível!'}) node2:addChildKeywordNode(yesNode) node2:addChildKeywordNode(noNode) node2 = node1:addChildKeyword({'Phantom Lord'}, StdModule.say, {npcHandler = npcHandler, new = 2, onlyFocus = true, text = 'Então, vai se juntar a Guilda {Phantom Lord}? A decisão é irreversível!'}) node2:addChildKeywordNode(yesNode) node2:addChildKeywordNode(noNode) node2 = node1:addChildKeyword({'Blue Pegasus'}, StdModule.say, {npcHandler = npcHandler, new = 3, onlyFocus = true, text = 'Então, vai se juntar a Guilda {Blue Pegasus}? A decisão é irreversível!'}) node2:addChildKeywordNode(yesNode) node2:addChildKeywordNode(noNode) node2 = node1:addChildKeyword({'Lamia Scale'}, StdModule.say, {npcHandler = npcHandler, new = 4, onlyFocus = true, text = 'Então, vai se juntar a Guilda {Lamia Scale}? A decisão é irreversível!'}) node2:addChildKeywordNode(yesNode) node2:addChildKeywordNode(noNode) node2 = node1:addChildKeyword({'Cait Shelte'}, StdModule.say, {npcHandler = npcHandler, new = 5, onlyFocus = true, text = 'Então, vai se juntar a Guilda {Cait Shelte}? A decisão é irreversível!'}) node2:addChildKeywordNode(yesNode) node2:addChildKeywordNode(noNode) keywordHandler:addKeyword({'nao' or 'não'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Volte quando estiver pronto.'}) npcHandler:addModule(FocusModule:new())
  13. Ryzor postou uma resposta no tópico em Suporte & Pedidos
    Essa Imagem acima chamou bastante atenção.Parabens e continue assim que você vai longe
  14. Venho trazer para vocês hoje um script feito por mim e que realmente é MUITO ÚTIL.! Código: Autor: Shoeei Versão Testada: TheForgottenServer 0.4 8.60 REV 3884. Nível do Script: Fácil~IntermediarioO que ele faz? Ele verifica quantos dias de Premium o player tem e se for = a 0 ele teleporta a jogador para a sua cidade natal. Assim kikando ele da área vip após o termino da sua vip. O script em sí é bem simples, mas de bastante utilidade. Lembrando que esse script foi feito com base na VIP utilizando PremiumTime. Se você usa o VIP System do Mock ou os outros, deixe mensagem no tópico que modífico ele para estes sistemas, sem problema algum. Vamos aos códigos agora (: Vá para data/creaturescripts/scripts e crie um arquivo chamada vipkick.lua e cole isso dentro dele, Código: -- by Marini for Tibia King Forum -- function onLogin(cid) if getPlayerPremiumDays(cid) > 0 then setPlayerStorageValue(cid, 20500, 1) elseif getPlayerPremiumDays(cid) == 0 and getPlayerStorageValue(cid, 20500) == 1 then doTeleportThing(cid, getPlayerMasterPos(cid)) setPlayerStorageValue(cid, 20500, -1) end return TRUE endAgora abra o arquivo na mesma pasta chamado login.lua e pressione CTRL + F e procure por, Código: registerCreatureEvent(cid, "ReportBug")e abaixo dele cole isso, Código: registerCreatureEvent(cid, "VipKick")Feche e salve, agora volte uma pasta e abra o arquivo creaturescripts.xml e adicione está linha a ele, Código: <event type="login" name="VipKick" event="script" value="vipkick.lua"/> Salve e feche. Pronto agora, sempre que acabar a Vip dos players eles serão transportados direto para seus templos (: Creditos : shoeei
  15. Ryzor postou uma resposta no tópico em Remere's Map Editor
    Dicas para Treiners Naturais A intenção deste tutorial é mostrar aos mappers, iniciantes ou não, como pode ser feito áreas para treino naturais, ou seja, um lugar para os players treinar sem ser exatamente com treiner monk. Você deve estar se perguntando: "Porque vou me dar ao trabalho de criar algo assim se com um monte de treiner monk num prédio é mais fácil?" Não existe uma resposta especifica para esta pergunta, mas veja bem, se utilizar a idéia deste tutorial você poderá fazer um mapa diferente, bonito e inovador, a idéia deste tutorial não é lhe ensinar "tin tin por tin tin", mas dar uma visão diferente sobre treiners. -A caverna do treino: Na imagem abaixo mostro onde o player irá treinar. Se você reparar bem, há "cantos" onde o player pode ficar que somente duas criaturas irão ataca-lo. -Veja a outra imagem: As bolinhas vermelhas é a posição do player e os quadrados verdes são onde os slimes (ou outra criaturas) ficariam. Tibia possui possui muita variedade de criaturas, e com a edição podemos criar um número infinito delas. Há a possibilidade de fazer várias áreas diferentes, não só com slimes, mas com rotworms, cyclops, tudo que for favorável ao treino de skills. -Cave de rotworms: Tudo o que precisamos fazer como mapper é dar ao jogador a possibilidade do treino, moldando o mapa para tal e adicionando o monstro certo. Talvez seja necessário um editada nos monstros, como os slimes, crie um monstro chamado Slime Mother e faça-o summonar slimes normais, assim os players saberão quem é o slime que não poderão atacar. Crie uma Rotworm Queen que sumonne Rotworms ou Carrion Worms, ou até mesmo uma máquina que sumonne dwarfs. -Localização: Acho que é importante ressaltar que não ficaria legal colocar esses treiners naturais no meio da cidade com uma plaquinha dizendo: "Treiners Here!" Legal mesmo é colocar eles no meio de uma hunt, dentro de uma caverna, fazer com que o player VEJA que ali ele pode treinar. -Considerações finais: Bem, espero que esse tutorial tenha dado boas dicas a todos vocês e espere ver serves com treiners assim, bem natural. Abraços!
  16. Ryzor postou uma resposta no tópico em Suporte & Pedidos
    Está mappiando muito bem joão parabens.
  17. Distro Usado: TFS 0.36 Protocolo: 8.6 Mas creio que funcione em outras versões. Entendendo como Funciona. exemplo: Voce pega uma pedra qualquer ou outro item vou usar uma pedra para exemplo: Eu dou Use witch nesta pedra e ela vira algum item a minha escolha: Exemplo eu edito o action para dar uma MPA ou golden legs. Ao usar esta pedra ela ira virar algum deste items aleatoriamente porem voce pode adicionar varios items deixando assim mas dificiu de conseguir items boms. vamos ao script para entender melhor o que estou falando =P. Instalaçao: Em actions.xml adicione esta Tag. <action itemid="8301" event=script" value="surpresinha.lua"/>Entendendo a Tag: -Vermelho: Id do Item que ao dar use ira virar a Surpresa ( 8301 e uma pedra que nao achei drop ) -Verde: nome do arquivo Continuando a Intalaçao: Em data/actions/scrips crie um arquivo.lua, nomeio para surpresinha.lua e adicione: items = { [0] = {id = 7735, count = 1, chance = 2}, [1] = {id = 7735, count = 1, chance = 5}, [2] = {id = 7735, count = 1, chance = 10}, [3] = {id = 7735, count = 1, chance = 15}, [4] = {id = 7735, count = 1, chance = 30}, [5] = {id = 7735, count = 1, chance = 100} } function onUse(cid, item, fromPos, itemEx, toPos) for i = 0, #items do if (items.chance > math.random(1, 100)) then doPlayerAddItem(cid, items.id, items.count) doRemoveItem(item.uid, 1) return doCreatureSay(cid, 'Wow Você Ganho! Seu Item e '..getItemNameById(items.id)..'!', TALKTYPE_MONSTER) end end doRemoveItem(item.uid, 1) return doCreatureSay(cid, 'Não ganhei nada!', TALKTYPE_MONSTER) endEntendendo como configurar: -Vermelho: Id do item que podemos Ganhar -Verde: Quantidade de item que vamos ganha -Laranja: Chance de ganhar cada item (de 0.1 a 100) quanto maior a chance mais saira aquele item -Roxo: Mensagem quando receber o item -Marrom: Mensagem quando não receber nada Obs: A chance pode ser 0.1, 0.2... (Apenas UM numero depois do ponto) Se quiser adicionar mais itens na lista faça o seguinte: items = { [0] = {id = 7735, count = 1, chance = 2}, [1] = {id = 7735, count = 1, chance = 5}, [2] = {id = 7735, count = 1, chance = 10}, [3] = {id = 7735, count = 1, chance = 15}, [4] = {id = 7735, count = 1, chance = 30}, [4] = {id = 7735, count = 1, chance = 30}, [5] = {id = 7735, count = 1, chance = 100} }Observe que dupliquei a parte laranja, depois faça: items = { [0] = {id = 7735, count = 1, chance = 2}, [1] = {id = 7735, count = 1, chance = 5}, [2] = {id = 7735, count = 1, chance = 10}, [3] = {id = 7735, count = 1, chance = 15}, [4] = {id = 7735, count = 1, chance = 30}, [5] = {id = 7735, count = 1, chance = 30}, [6] = {id = 7735, count = 1, chance = 100} }-Laranja: Parte adicionada -Vermelho: Numeros alterados Acho que deu pra interder ja ne galera =P. Em Uso uma SS o item caiu no chao porque estava sem BP se voce espaço na sua Bag ele ira para dentro dela mesmo voce dando use with no chao =P: Creditos: Script: Newtonnotwen Trazer o script pra voces? GodMarini
  18. Nome: Cassino slot machine Autor: CyberM // otland Versão Testada: tfs 0.4 Informações Adicionais: video auto-explicativo. Video: Frutas padrões Ganho padrão de combos Outras infos -Qualquer item jogado nos grounds de slot são deletados, para prevenir bugs e trapaças -Ao player "usar" a alavanca ele não pode se mover até o jogo acabar -Se o player "desaparecer" o jogo renicia Em actions/scripts crie um arquivo .lua chamado cassino e coloque isto dentro: Código: --[[ Advanced Slot Machine by Cybermaster ]]-- --REQUIRED MONEY(gp) TO PLAY SLOT MACHINE local money = 1000 --MILISECONDS TO CHANGE FRUITS local time = 200 --ITERATOR TIME TO STOP CHANGING FRUIT IF PLAYER DOESN'T (30 is like 7 seconds) local limit = 30 --FRUITS THAT WILL RANDOMLY APPEAR AND SWITCH local fruits = {2674,2675,2676,2679,2680,2682,2683,5097,8841} --PRIZES TABLES local win = { -- [{FRUIT.1,FRUIT.2,FRUIT.3} = {PRIZE,#PRIZE}] --MIXED COMBOS [{2679,2683,2679}] = {2160,2}, -- cherry-pumpkin-cherry [{8841,2682,8841}] = {2160,1}, -- lemon-melon-lemon --TRIPLE COMBOS [{2680,2680,2680}] = {2152,80}, -- triple strawberry [{5097,5097,5097}] = {2152,60}, -- triple mango [{2683,2683,2683}] = {2152,80}, -- triple pumpkin [{2682,2682,2682}] = {2152,50}, -- triple melon [{2676,2676,2676}] = {2152,40}, -- triple banana [{8841,8841,8841}] = {2152,25}, -- triple lemon [{2679,2679,2679}] = {2152,20}, -- triple cherry [{2675,2675,2675}] = {2152,30}, -- triple orange [{2674,2674,2674}] = {2152,10}, -- triple apple --ANY COMBOS [{ANY,2683,2683}] = {2152,5}, -- double pumpkin right [{2683,2683,ANY}] = {2152,5}, -- double pumpkin left [{2683,ANY,2683}] = {2152,10}, -- pumpkin sides combo [{ANY,2679,2679}] = {2152,4}, -- double cherry right [{2679,2679,ANY}] = {2152,4}, -- double cherry left [{2679,ANY,2679}] = {2152,8}, -- cherry sides combo [{ANY,8841,8841}] = {2152,5}, -- double lemon right [{8841,8841,ANY}] = {2152,5}, -- double lemon left [{8841,ANY,8841}] = {2152,5}, -- lemon sides combo } --MESSAGES THAT RANDOMLY APPEAR WHEN PLAYER WINS local messages = {'Bingo!','Lucky!','Jackpot!','Win!'} --FRUITS ROWS local p = { --[LEVER.UNIQUEID] [6297] = {},[6298] = {},[6299] = {},[6300] = {}, --[6301] = {}, } --JUST PUT THE INITIAL ROW POS FROM LEFT, SECOND & THIRD WILL BE AUTOM. GENERATED for i = 1,3 do --p, UNIQUEID.LEVER, {POS FROM TILE OF LEFT} table.insert(p[6297],i,{x=91+(i-1),y=145,z=7,stackpos=1}) table.insert(p[6298],i,{x=95+(i-1),y=145,z=7,stackpos=1}) table.insert(p[6299],i,{x=99+(i-1),y=145,z=7,stackpos=1}) table.insert(p[6300],i,{x=103+(i-1),y=145,z=7,stackpos=1}) -- table.insert(p[6301],i,{x=19+(i-1),y=145,z=7,stackpos=1}) end function verifyRow(cid, array, pos) local result, prize = false, '' for a, b in pairs(win) do if getTileItemById(pos[1],a[1]).uid > 1 or a[1] == ANY then if getTileItemById(pos[2],a[2]).uid > 1 or a[2] == ANY then if getTileItemById(pos[3],a[3]).uid > 1 or a[3] == ANY then doPlayerAddItem(cid, b[1], b[2] or 1, true) doSendAnimatedText(getThingPos(cid), messages[math.random(#messages)], math.random(255)) result, prize, amount = true, b[1], b[2] end end end end if prize ~= '' then doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, 'Congratulations!! You won '..amount..' '..getItemPluralNameById(prize)..'!') end for i = 1,3 do doSendMagicEffect(pos, result and CONST_ME_GIFT_WRAPS or CONST_ME_EXPLOSIONHIT) doRemoveItem(getTileThingByPos(pos).uid) end return not result and doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, 'You have lost in the Slot Machine Try again') end function onUse(cid, item, fromPosition, itemEx, toPosition) local function doFruit(pos,cid,id,limit) if not isPlayer(cid) then return doItemEraseAttribute(item.uid, 'aid'), getTileThingByPos(pos).uid > 0 and doRemoveItem(getTileThingByPos(pos).uid) end if getTileThingByPos(pos).itemid < 1 then doSendMagicEffect(pos, CONST_ME_POFF) doCreateItem(fruits[math.random(#fruits)], 1, pos) else doTransformItem(getTileThingByPos(pos).uid,fruits[math.random(#fruits)],1) end if limit <= 0 then doSendMagicEffect(pos,math.random(28,30)) doTransformItem(getTileThingByPos(pos).uid,fruits[math.random(#fruits)],1) doItemSetAttribute(getTileThingByPos(fromPosition) .uid, 'aid', getTileThingByPos(fromPosition).actionid+1) doTransformItem(getTileThingByPos(fromPosition).ui d, getTileThingByPos(fromPosition).itemid == 9826 and 9825 or 9826) elseif getTileThingByPos(fromPosition).actionid > id then doSendMagicEffect(pos,math.random(28,30)) doTransformItem(getTileThingByPos(pos).uid,fruits[math.random(#fruits)],1) else addEvent(doFruit,time,pos,cid,id,limit-1) end end if item.actionid == 0 then if not doPlayerRemoveMoney(cid, money) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, 'You need '..money..' gps to play Slot Machine.') end doItemSetAttribute(item.uid, 'aid', 1) doCreatureSetNoMove(cid, true) doTransformItem(item.uid, item.itemid == 9826 and 9825 or 9826) doSendAnimatedText(getThingPos(cid), '-$'..money,COLOR_RED) for i = 1,3 do doFruit(p[item.uid],cid,i,i*limit) end elseif isInArray({1,2,3},item.actionid) then doItemSetAttribute(item.uid, 'aid', item.actionid+1) doTransformItem(item.uid, item.itemid == 9826 and 9825 or 9826) elseif item.actionid == 4 then doCreatureSetNoMove(cid, false) doItemEraseAttribute(item.uid, 'aid') doTransformItem(item.uid, item.itemid == 9826 and 9825 or 9826) verifyRow(cid, win, p[item.uid]) end return true end E em actions.xml adicione esta tag: Código: <action uniqueid="6297-6300" event="script" value="cassino.lua"/> Agora em movements/scripts crie um arquivo .lua chamado cassino e coloque isto dentro: Código: function onAddItem(moveItem, tileItem, position, cid) if isPlayer(cid) then doRemoveItem(moveItem.uid) doSendMagicEffect(position, CONST_ME_EXPLOSIONHIT) end end Agora em movements.xml adicione esta tag: Código: <movevent type="AddItem" tileitem="1" actionid="6577" event="script" value="cassino.lua"/> Mapa Código: --FRUITS ROWS local p = { --[LEVER.UNIQUEID] [6297] = {},[6298] = {},[6299] = {},[6300] = {}, --[6301] = {}, } --JUST PUT THE INITIAL ROW POS FROM LEFT, SECOND & THIRD WILL BE AUTOM. GENERATED for i = 1,3 do --p, UNIQUEID.LEVER, {POS FROM TILE OF LEFT} table.insert(p[6297],i,{x=91+(i-1),y=145,z=7,stackpos=1}) table.insert(p[6298],i,{x=95+(i-1),y=145,z=7,stackpos=1}) table.insert(p[6299],i,{x=99+(i-1),y=145,z=7,stackpos=1}) table.insert(p[6300],i,{x=103+(i-1),y=145,z=7,stackpos=1}) -- table.insert(p[6301],i,{x=19+(i-1),y=145,z=7,stackpos=1}) end NOTA: Coloque o actionid 6577 ao tile embaixo da alavanca Itemid das alavancas usadas: 9825 - 9826 Actionid usado: 6577 Uniqueid usado: 6297, ... etc (para cada alavanca usa-se um diferente uid) Espero que gostem
  19. "_"

    Ryzor postou uma resposta no tópico em Playground (Off-topic)
    dahora mesmo cara o forum ta mo bolado agora o baguio ta massa
  20. Ryzor postou uma resposta no tópico em Suporte & Pedidos
    Projeto bastante interesante. Parabens e boa sorte.
  21. Ryzor postou uma resposta no tópico em Suporte Tibia OTServer
    Quantos elite knight tem
  22. Ryzor postou uma resposta no tópico em Suporte Tibia OTServer
    Galera queria um script assim tipo eu sou um player dou !online no servidor ai mostra exemplo : 5 Druid 5 Knight 5 Sorcerer 5 Paladins , alguem poderia me ajuda?
  23. ASUHASUHASUHAUHSUHASUHASUH EU RI KKKKKKKKKKKKKKKKKKKKKK
  24. Nem fudendo que gasto tudo isso , comprava era carro e dependendo do carro dava ate pa compra 1 moto e sobrava e 1 bike da biquera

Informação Importante

Confirmação de Termo