Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''action''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • xTibia - Notícias e Suporte
    • Regras
    • Noticias
    • Soluções
    • Projetos Patrocinados
    • Tutoriais para Iniciantes
    • Imprensa
  • OTServ
    • Notícias e Debates
    • OTServlist
    • Downloads
    • Recursos
    • Suporte
    • Pedidos
    • Show-Off
    • Tutoriais
  • OFF-Topic
    • Barzinho do Éks
    • Design
    • Informática

Encontrar resultados em...

Encontrar resultados que contenham...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Sou

  1. Bom, vim trazer a vocês o sistema de potion igual ao da pxg... Gostaria de falar que peguei esse sistema do servidor PDA e so mudei umas coisinhas pra ele healar o pokemon do mesmo jeito que o da pxg Actions/scripts/potion.lua: Actions/actions.xml: OBS: Consertem os id's dos items e as cores do animated text. Creditos: Slicer, Brun123, eu e qm ajudo fazer o sistema original do PDA
  2. Hiquez

    Transformar item

    Olá rapazeada do xtibia, estou tendo problemas em adaptar um script meu aqui para uma quest "sacrifice" estou precisando que uma action tenha uma tabela onde eu possa colocar varios itens diferentes, por exemplo: 1000, 1010, 10022 e outros preciso que a action verifique se há algum desses item em x Position, se algum desses item da tabela estiver na postion "x" então o item irá se transformar no item "2000" Obs: todos os itens da tabela devem se transformar no item "2000", se puder colocar pra aparecer um effect quando o item for transformado será ótimo o script precisa checar algum dos itens que existirá na tabela e se algum desses itens estiver la na position, então ele irá se transformar em "2000" Eu estava tentando adaptar o script da shovel mais não tive muito êxito, alguém poderia me ajudar por favor ? local holes = {468, 481, 483, 7932, 8579} local sand = {231, 9059} function onUse(cid, item, fromPosition, itemEx, toPosition) if(isInArray(holes, itemEx.itemid)) then local newId = itemEx.itemid + 1 if(itemEx.itemid == 8579) then newId = 8585 end doTransformItem(itemEx.uid, newId) doDecayItem(itemEx.uid) elseif(isInArray(sand, itemEx.itemid)) then local rand = math.random(1, 100) if(itemEx.actionid == 100 and rand <= 20) then doTransformItem(itemEx.uid, 489) doDecayItem(itemEx.uid) elseif(rand >= 1 and rand <= 5) then doCreateItem(2159, 1, toPosition) elseif(rand > 85) then doCreateMonster("Scarab", toPosition, false) end doSendMagicEffect(toPosition, CONST_ME_POFF) end return true end Esse é o script da shovel se caso puder ajudar, agradeço desde ja! ❤️
  3. Golden Survival Arena System (Atualizado 2.7) Introdução A Golden Survival Arena é um evento automático que ocorre a cada 5 horas, onde os players registrados são teleportados para uma arena e devem sobreviver a waves (rounds) com vários pokémons e cada vez mais fortes. Como participar do evento Para participar do evento é necessário se registrar possuindo o item Meowth Coin. Este item pode ser adquirido dropando de Meowth Hunter ou comprando no NPC Meowth Dealer por 1 diamond cada Coin. Obs: Ambos (monster e npc) estão localizados no salão do evento, para ir até o mesmo, teleporte-se utilizando um pokémon com essa habilidade (h "golden). Adicionando o Sistema Implantando a Arena no mapa Primeiramente faça o download do mapa com a Arena separada para implantar a seu mapa. Obs: Não contem nada no mapa além da Arena. Download via MediaFire: Clique aqui. Scan VirusTotal: Clique aqui. Continuando Após ter terminado o download, abra o mapa baixado e o mapa de seu servidor utilizando o RME (remere's map editor). Se não possui o RME, faça o download dele no site oficial clicando aqui. Agora com os dois mapas abertos, vá ao que foi baixado e siga as instruções. Clique no quadrado azul localizado na diagonal esquerda para baixo no RME. Ele será modificado para um lápis onde você poderá selecionar a área a ser copiada e transferida/copiada ao outro mapa. Agora com a função do lapís selecionador ativada, selecione a área a ser transferida/copiada ao outro mapa. Para isto, pressione Shift e selecione a área a ser copiada com o botão esquerdo do mouse. Após isto, solte os botões e a área será destacada. Agora copie o que foi selecionado (CTRL+C) e vá ao outro mapa (o que irá implantar a Arena). Cole a área selecionada (CTRL+V) e após isto, apenas escolha o local para colocá-la e pressione o botão esquerdo do mouse. Enfim este será o resultado da Arena implantada. Agora vamos aos scripts do sistema e acompanhamentos necessários. Actions Abra a pasta data/actions/scripts de seu servidor e crie/copie qualquer arquivo .lua e renomeie para Meowth Coin.lua Dentro do arquivo, apague tudo e adicione: Novamente crie/copie qualquer arquivo .lua na mesma pasta (data/actions/scripts) e renomeie para Quadro_Golden.lua Dentro do arquivo, apague tudo e adicione: Abra a pasta data/actions/scripts de seu servidor e crie/copie qualquer arquivo .lua e renomeie para Quadro_Golden_Rank.lua Dentro do arquivo, apague tudo e adicione: No mesmo local (data/actions/scripts) abra o arquivo catch.lua No seu, é provavel que esteja mais ou menos assim (só que com configurações de acordo com seu servidor): Após as linhas: Adicione abaixo: Resultando em (no caso, script configurado para o meu servidor): Agora abra a pasta data/actions e abra o arquivo actions.xml (abra como editar/bloco de notas). Adicione as tags: Em vermelho são os ID dos quadros da Golden Island, utilizado para ver a lista de participantes do próximo evento, o horário e o rank de waves (rounds). Em azul é o ID do Meowth Coin utilizado para se registrar ao evento. GlobalEvents Abra a pasta data/globalevents/scripts e crie/copie qualquer arquivo .lua e renomeie para Golden Arena.lua Dentro do arquivo, apague tudo e adicione: Em azul são as mensagens antes de começar o evento e quando começar o evento. Novamente na mesma pasta (data/globalevents/scripts) crie/copie qualquer arquivo .lua e renomeie para CleanGoldenArena.lua Dentro do arquivo, apague tudo e adicione: Agora abra a pasta data/globalevents e abra o arquivo globalevents.xml (abra como editar/bloco de notas). Adicione as tags: Em vermelho são os horários da Golden Survival Arena, porém eles tem que ser configurados 10 minutos antes de começar o evento, por causa das mensagens que informam quando irá começar. Sendo assim o evento for começar por exemplo as 14:00, terá de estar configurado time="13:50". Em azul são os horários dos cleans da Golden Survival Arena, porém eles tem que ser configurados 02:30 (2 horas e 30 minutos) após o evento ter começado. Sendo assim se o evento começar as 14:00 e as mensagens estiverem configuradas para 13:50, o evento irá começar somente as 14:00, portanto o Clean da Arena teria que estar configurado time="16:30" (14:00+02:30=16:30). Items Agora abra a pasta data/items e abra o arquivo items.xml (abra como editar/bloco de notas). Procure pelo ID 6527 (CTRL+F) e subistitua a tag dele por esta: Lib Agora abra a pasta data/lib e crie/copie qualquer arquivo .lua e renomeie para Golden Arena.lua Dentro do arquivo, apague tudo e adicione: Agora novamente na pasta data/lib, abra o arquivo configuration.lua Nele, dessa a barra até o fim do script/arquivo e então após o } do sistema anterior, pule uma linha e adicione: Em vermelho é a posição x y z da ponta superior da Golden Survival Arena e em azul é a posição da ponta inferior da mesma. Em verde é a posição x y z para onde os players registrados no evento seram teleportados quando ele começar. Em laranja é a posição x y z para onde os players no evento seram teleportados ao morrerem na Arena ou quando ela acabar. Em verde água é a posição x y z que os pokémons da parte em marrom seram teleportados. Como pode ver são 9 posições e 9 pokémons, apenas escolha as 9 diferentes posições da Arena que os pokémons iram aparecer, e sempre o número de posições terá de ser o mesmo número de pokémons; mesmo que ali esteja por exemplo apenas um pokémon que ira aparecer na wave {"", "Shiny Gyarados", "", "", "", "", "", "", ""}, as "" (aspas) são a mesma quantidade de posições. Em rosa são os horários em que a Golden Survival Arena irá iniciar executando a função de trazer todos os players registrados a posição escolhida. Diferente dos horários da globalevents.xml que são 10 minutos antes por serem horários das mensagens antes que o evento comece, estes horários são os que ela ira iniciar; portanto devem ser exatos, horas de inicialização. Em roxo é o número de waves (rounds) da Arena. Em salmão é o tempo em segundos para cada wave (round). Monster Agora abra a pasta data/monster e escolha uma pasta/local para criar os arquivos .xml Após ter escolhido o local, crie/copie qualquer arquivo .xml e renomeie para aHunter.xml Dentro do arquivo, apague tudo e adicione: O Meowth Hunter é o monster que dropa meowth coins. Novamente após ter escolhido o local, crie/copie qualquer arquivo .xml e renomeie para aHunterFemale.xml Dentro do arquivo, apague tudo e adicione: Em vermelho é o mesmo que o anterior, só que outfit female para ficar como no script do npc da Golden Island. Agora abra a pasta data/monster e abra o arquivo monsters.xml (abra como editar/bloco de notas). Adicione as tags: Em azul é a localização dos Meowth Hunter's, nesse tipo eu coloquei o aHunter.xml e aHunterFemale.xml na pasta data/monster/pokes/System, porém não precisei colocar a parte de data/monster, apenas o que está dentro da pokes em diante (pokes/System/.xml). Se você por exemplo coloca-se o aHunter.xml e aHunterFemale.xml na pasta data/monster/meowthmonster, as tags seriam: Npc Abra a pasta data/npc/scripts e crie/copie qualquer arquivo .lua e renomeie para .aHunter.lua Dentro do arquivo, apague tudo e adicione: Agora vá a pasta data/npc e crie/copie qualquer arquivo .xml e renomeie para .aHunter.xml Dentro do arquivo, apague tudo e adicione: O npc Hunter identifica o sexo do player e cria um Meowth Hunter do mesmo sexo que o player para lutarem. Lembrando que este monster dropa Meowth Coins. Abra a pasta data/npc/scripts e crie/copie qualquer arquivo .lua e renomeie para .aMeowthDealer.lua Dentro do arquivo, apague tudo e adicione: Em vermelho são os 2 diamonds sendo removidos e em azul os 2 Meowth Coins sendo adicionados ao player. Agora vá a pasta data/npc e crie/copie qualquer arquivo .xml e renomeie para aMeowth Dealer.xml Dentro do arquivo, apague tudo e adicione: Em laranja é o NPC que troca 2 diamonds por 2 Meowth Coins, utilizados para se registrar a Golden Survival Arena. Após concluir tudo isto, a Golden Survival System estará completamente instalada em seu servidor. Créditos Slicer pelo script 90%. PokeXGames por direitos autorais. Eu pelo tutorial e 10% do script editado. Creio que esse seja o primeiro System Tutorial de instalação completa da Golden Survival Arena. Obrigado.
  4. Galerinha do Xtibia... Hoje vim postar o Servidor "PokeZot" - Com base do PDA by Bolz e Edições feitas por mim!! Lista Completa de Pokemon Adicionados!! Sistemas Quests Alterações Prints Creditos---- A equipe que criou o PDA Bolz --> Pela maravilhosa Editada no Server A Mim--> Pelo Trabalho de Adicionar os pokemon e fazer mudanças sozinho!! Downloads!! Isso Ai Galerinha!! Foi isso Até a próxima. Talvez saia uma proxima atualização do Zot! Lembrando Conta do God : luh/123 Flw! Até Mais... Gostou do Serv? Da Rep + entao que me ajuda!! kk
  5. Já procurei aqui no fórum, testei os principais (os do omega, vodkart, killua) e deram bugs e/ou não foram exatamente como gostaria. >Queria um sistema bem simples - acredito eu - que seria um onde tem o npc com as tasks, voce pede a task, mata as criaturas, entrega a task ao mesmo e ganha xp, dinheiro e itens; >Também gostaria que desse para fazer a task mesma task quantas vezes quiser; >Por fim queria uma talkaction que mostrasse as tasks disponíveis no servidor (porque no meu server vai ter mais de 100 tasks, daí fica mais organizado). Quem estiver com vontade de fazer para mim, pode colocar só uma ou duas tasks, aos outras eu vou adicionando. Eu acredito que não é algo rápido de se fazer então já digo, sou paciente Não sei qual o T.F.S. do servidor, só sei que é o Alissow Server 5.0 (9.83) xd Grato desde já!
  6. Pessoal eu gostaria de um script para meu ot que fizesse a seguinte função: O player fale um comando tipo: !Buylife Que custe 10kk. E que aumentasse 10000 Mil de life. então exemplo um ek que tem 1000 de life, e comprar com o comando, ele ficaria com 11000. Se alguém tem esse script, manda ai please.
  7. Olá, eu vim trazer um script que eu produzi para absolutamente nada além de treino, eu estou postando pois talvez seja útil para alguém em algum momento do espaçotempo. E também vou ceder todos os créditos ao @Woox, afinal eu não ia conseguir sem ele, então meu muito obrigado. local configuration = { positionParedinso1 = {x=1067, y=1071, z=7, stackpos=1}, -- Posição do objeto que ira sumir time = 1*15*1000, -- tempo para o objeto voltar para o seu lugar devido monstrosTime = 1*10*1000, -- tempo até os monstros despertarem guardioes = { [1] = {name = "Hellfire Fighter", pos = {x = 1065, y = 1071, z = 7}}, -- Todas posições onde os monstros seram criados [2] = {name = "Massive Fire Elemental", pos = {x = 1061, y = 1069, z = 7}}, -- Bem como seus nomes e quantidade [3] = {name = "Fury", pos = {x = 1069, y = 1074, z = 7}}, [4] = {name = "Demon", pos = {x = 1069, y = 1071, z = 7}}, [5] = {name = "Diabolic Imp", pos = {x = 1066, y = 1074, z = 7}}, [6] = {name = "Fire Devil", pos = {x = 1064, y = 1075, z = 7}}, [7] = {name = "Fire Elemental", pos = {x = 1062, y = 1069, z = 7}}, [8] = {name = "Massive Fire Elemental", pos = {x = 1067, y = 1068, z = 7}} } } function onUse(cid, item, fromPosition, itemEx, toPosition) if item.itemid == 1945 then -- alavanca doTransformItem(item.uid, 1946) positionParedinso = getThingFromPos(configuration.positionParedinso1) if positionParedinso.itemid ~= 0 then doRemoveItem(positionParedinso.uid, 1) doCreatureSay(cid, "Um som terrível de engrenagens antigas se movendo pode ser ouvido imediatamente após você puxar a alavanca. \z Estrondos, chamas e vozes demoniacas estão vindo na sua direção, são ouvidos cada vez mais altos, corra por sua vida, \z você acaba fezer um mal antigo despertar.", TALKTYPE_ORANGE_1) -- Mensagem que será exibida após você puxar a alavanca addEvent(function() for k, v in pairs(configuration.guardioes) do doCreateMonster(v.name, v.pos) end end, configuration.monstrosTime) addEvent(doCreateItem, configuration.time, 12794, configuration.positionParedinso1) -- "12794" é o ID da parede que você quer criar após puxar a alavanca end else doTransformItem(item.uid, 1945) end end
  8. créditos: Printer imagens: Comandos: !autoloot add, itemId or name -- Adicionando um item à lista !autoloot remove, itemId or name -- Remoção de um item da lista !autoloot show -- Mostrar a lista autoLoot !autoloot clear -- Limpa a lista autoLoot vá em data/global.lua e cole isso: -- AutoLoot config AUTO_LOOT_MAX_ITEMS = 5 -- Reserved storage AUTOLOOT_STORAGE_START = 10000 AUTOLOOT_STORAGE_END = AUTOLOOT_STORAGE_START + AUTO_LOOT_MAX_ITEMS -- AutoLoot config end vá em talkactions/talkactions.xml e cole essa linha: <talkaction words="!autoloot" separator=" " script="autoloot.lua"/> Depois disso vá para vá em talkactions/scripts e crie uma nova lua e nomeie para autoloot.lua e cole este código: function onSay(player, words, param) local split = param:split(",") local action = split[1] if action == "add" then local item = split[2]:gsub("%s+", "", 1) local itemType = ItemType(item) if itemType:getId() == 0 then itemType = ItemType(tonumber(item)) if itemType:getId() == 0 then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "There is no item with that id or name.") return false end end local itemName = tonumber(split[2]) and itemType:getName() or item local size = 0 for i = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do local storage = player:getStorageValue(i) if size == AUTO_LOOT_MAX_ITEMS then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "The list is full, please remove from the list to make some room.") break end if storage == itemType:getId() then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, itemName .." is already in the list.") break end if storage <= 0 then player:setStorageValue(i, itemType:getId()) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, itemName .." has been added to the list.") break end size = size + 1 end elseif action == "remove" then local item = split[2]:gsub("%s+", "", 1) local itemType = ItemType(item) if itemType:getId() == 0 then itemType = ItemType(tonumber(item)) if itemType:getId() == 0 then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "There is no item with that id or name.") return false end end local itemName = tonumber(split[2]) and itemType:getName() or item for i = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do if player:getStorageValue(i) == itemType:getId() then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, itemName .." has been removed from the list.") player:setStorageValue(i, 0) return false end end player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, itemName .." was not founded in the list.") elseif action == "show" then local text = "-- Auto Loot List --\n" local count = 1 for i = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do local storage = player:getStorageValue(i) if storage > 0 then text = string.format("%s%d. %s\n", text, count, ItemType(storage):getName()) count = count + 1 end end if text == "" then text = "Empty" end player:showTextDialog(1950, text, false) elseif action == "clear" then for i = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do player:setStorageValue(i, 0) end player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "The autoloot list has been cleared.") else player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Use the commands: !autoloot {add, remove, show, clear}") end return false end agora,vá em creaturescripts/creaturescripts.xml e cole essa linha: <event type="kill" name="AutoLoot" script="autoloot.lua" /> Depois disso vá para vá em creaturescripts/scripts e crie uma nova lua e nomeie para autoloot.lua e cole este código: local function scanContainer(cid, position) local player = Player(cid) if not player then return end local corpse = Tile(position):getTopDownItem() if not corpse then return end if corpse:getType():isCorpse() and corpse:getAttribute(ITEM_ATTRIBUTE_CORPSEOWNER) == cid then for a = corpse:getSize() - 1, 0, -1 do local containerItem = corpse:getItem(a) if containerItem then for b = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do if player:getStorageValue(b) == containerItem:getId() then containerItem:moveTo(player) end end end end end end function onKill(player, target) if not target:isMonster() then return true end addEvent(scanContainer, 100, player:getId(), target:getPosition()) return true end agora vá em creaturescripts/scripts e abra login.lua e registre: player:registerEvent("AutoLoot")
  9. Eai pessoal, beleza? Trago pra vcs um mod para otclient... Um simples botão que aparece no topo do client, clique e aparecerá uma lista de opções, cada uma com a função de executar uma talkaction [Tudo configurado por você] Vamos lá, para instalar é simples 1. Baixe o arquivo; 2. Extraia para a pasta de seu client; 3. Edite oque quiser; Bom, segue onde editar No arquivo mods/mod_topbutton/mod_topbutton.lua local config = { id = 'modTopButton', --Não pode conter espaços name = 'Top Button', --Nome que aparecerá quando passar o mouse por cima do botão img = 'button', --ícone do botão [no caso, pega a imagem button.png localizada na pasta do mod] options = { --opções que aparecem ao clicar no botão --[texto] = comando, ['Opcao 1'] = '!comando 1', ['Opcao 2'] = '!comando 2', } } Um exemplo de uso é o Checkpoint System v1.1 DOWNLOAD SCAN
  10. Bom, fiz uma pequena edição no Sistema de Checkpoints v1.0 e coloquei um mod pra otclient. Simples de instalar... No Servidor Na pasta mods de seu servidor, crie um arquivo chamado Checkpoint.xml e adicione o seguinte código No Client 1. Faça o download do arquivo; . 2. Extraia os arquivos na pasta mods do seu CLIENT; Créditos [member=Caronte] ~ pela ideia e pelo desenvolvimento do sistema [member=david0703] ~ pelo mod no OTC. DOWNLOAD SCAN
  11. jvcasarin

    [8.6] Heromassa Server

    Heromassa Server 1.0 Nha nha nha. Sejam bem vindos ao Heromassa. Server com mapa baseado no Heroserv, porém com MUITAS COISAS NOVAS, algumas, citarei aqui, outras, descubram por si mesmos . Bom, o server como eu ja disse, é baseado no famoso Heroserv, alguns anos atrás chegou a ter 400 players online, porém perdeu muito a sua fama com o passar do tempo. Em 2012, um servidor chamado Heromassa surgiu, com exatamente esse mapa, a partir daí, passei a procurar o mesmo, por amar o mapa. Vocês podem não acreditar, mas eu dei um duro danado pra conseguir esse mapa fodasticamente perfeito na minha opinião, e um certo dia, um amigo meu QUE EU PASSEI A AMAR MUITO, ME PASSOU ELE . Isso foi ano passado, desde então joguei incansavelmente esse mapa. Mês passado, eu tive a vontade de consertar TODOS os erros que o server continha, estava até alguns dias atrás arrumando os mesmos, e com MUITA ajuda de membros desse fórum como o @@nightwolf, @@Vankk(TK), @(TK), @@Wakon(TK) e outros(mesmo eles não sabendo) eu finalmente terminei as correções. Bom, vamos logo ao que interessa né HAHAAHAHHAHHAHA. Informações do server: - Mapa Hero - Conta GOD: god/god - Zombie Event por Talkaction 100% -- /zombiestart X ; /zombiestart force X - número de players - Battlefield programado 100% - TFS 0.4 (compilado por mim) - Suporta qualquer items.otb - War System( COM ESCUDINHOOOS) 100% -- /war ; /balance - Cast System 100% -- conta: não coloque nada em account nem password. -- /cast on ; /cast off - Suporta MySQL - Databases limpas e perfeitamente compatíveis - Quests 100% - Itens 100% - Castle 24 Horas 100% - Survivor Event 100% - Rush Event 100% -- !rushstart ; !joinrush (desativado, para ativar, basta ir em mods/rush event.xml e ative.) - Promotion por Talkaction 100% - Vocações balanceadas (nem tanto) preciso de ajuda!! - Supreme itens com quest 100% - Special itens sendo vendidos no Special Seller - Critical System(por stone, preço: 20 critical coins(id: 2157)) - Nova moeda(1kk: gold ingot, id: 9971) ​ - Possível usar sqlite apenas para teste(somente com a conta do god) ​ Vamos às imagens né poxa, não pode faltar... Battlefield map Black Boss hunt Bosser Hunt Distro Limpa Como conquistar o Castle24H Mapa do Castle24H Fire Master Elemental Hunt Ice Demon Hunt Principais Hunts: White Boss, Treptin, Verminor, Bosser, Quara Predator Scout, Fire Master Elemental, Black Boss e Ice Demon Quara Predator Scout Hunt Sala das Quests Rush Event Map Info Vip, Addon Seller, player GOD com War System Sphere City Supreme Attack Quest Supreme Rign & Shield Quest Supreme Set Quest Survivor Event map Templo Treptin Hunt Verminor Hunt White Boss Hunt Zombie Event Map Bom gente, muito provável que essas férias eu continue em mudanças no mapa, então, muito provável que eu fique atualizando o post para postar as atualizações do server. Galera, o server está perfeito pra rodar em Windows, distro TFS 0.4 compilada por mim, estável, compilada para x32(antes eu achava que era para x64 rsrs) mas está tudo OK, pronto pra deixar online! Download do server: https://mega.nz/#!V1oHXQ4J!TcA8_9Zpg2_4Kds9bap6Js6TzhSt7U-Le6zvbE_4cgQ Scan do server: https://www.virustotal.com/pt/url/71216ea7e98991af2c7f6226d581d2ba513e14cc585f8e8d0f6cf04bf112f755/analysis/ Créditos Beijos e até a próxima #Edit 1 - Tp do Zombie Event foi realocado #Edit 2 Atualização 1.2 Informações: - Adicionado Reset Talkaction(/reset; reseta o level, e deleta todos os itens dos players, com exceção dos supremes, dinheiro, exp pot, special) - Definido um novo prêmio para os eventos Zombie Event(50kk de gold e 5 Critical Stone) e Battlefield(100 Critical Coin) - Redefinido Supreme Attack de Paladin(novos itens) - Quest Supreme Attack foi arrumada o baú das armas de paladin - Lottery System sorteando critical coin e gold ingot(1kk cada) #Edit 3 Atualização 1.3 Download: https://mega.nz/#!1pgQwABZ!FmNGFI1pAzjniJ44X069hYZyJchb-FLnVOxG_x_5PYo Scan: https://www.virustotal.com/pt/url/71216ea7e98991af2c7f6226d581d2ba513e14cc585f8e8d0f6cf04bf112f755/analysis/ Informações: - Troféu adicionado como prêmio no Zombie Event - Nova DB MySql - Trade Off para website adicionado #Edit 4 Atualização de distro Informações: - Adicionado TFS 0.4 x64 - Adicionado TFS 0.4 x86 - Para trocar o TFS, delete o .exe e as libs que estejam na pasta. #Edit 5 - Trade off adicionado - Alguns bugs corrigidos - Fast Attack corrigido - TFS corrigido alguns bugs Download: https://github.com/s3kk/Heromassa/archive/master.zip Website totalmente compatível(Gesior): Use este --> Link
  12. Fala galera tudo bem? Essa semana teve um membro que pediu um evento de double exp até que consegui fazer usando alguns scripts como base, então vamos ao código. INSTALAÇÃO Vá em data/creaturescripts/scripts e em creaturescripts.xml adicione a seguinte tag. <event type="kill" name="ExpBonus" event="script" value="exp.lua"/> Em data/creaturescripts/scripts crie um arquivo .lua e renomeie para exp.lua e adicione o seguinte código. function onKill(cid, target) if isPlayer(cid) and isMonster(target) then if getGlobalStorageValue(102590) - os.time() >= 1 then local exp = getExperienceStage(getPlayerLevel(cid), getVocationInfo(getPlayerVocation(cid)).experienceMultiplier) local count = ((getMonsterInfo(string.lower(getCreatureName(target))).experience*1.5*exp)/2) doPlayerAddExperience(cid, count) addEvent(doSendAnimatedText, 500, getCreaturePosition(cid), '+'..count, math.random(50,60)) end else return TRUE end return TRUE end Agora no data/creaturescripts/scripts e login.lua adicione a seguinte tag. registerCreatureEvent(cid, "ExpBonus") Agora vá em data/talkactions/scripts talkactions.xml <talkaction words="/doubleexp" access="5" event="script" value="exp.lua"/> Em data/talkactions/scripts crie um arquivo.lua e o renomeio para exp.lua e adicione o seguinte código dentro. function onSay(cid, words, param, channel) local config = { storage = 102590, } if(param == 'cancel') then if getGlobalStorageValue(config.storage) > 0 then setGlobalStorageValue(config.storage, -1) doBroadcastMessage("Double Exp cancelado") end return true end param = tonumber(param) if(not param or param < 0) then doPlayerSendCancel(cid, "Digite por quantas horas o evento ira durar") return true end if getGlobalStorageValue(config.storage) - os.time() <= 0 then setGlobalStorageValue(config.storage, os.time()+param*60*60) doBroadcastMessage("Exp bonus ativado 50% + EXP por "..param.." horas! Aproveite.") end return true end COMO UTILIZAR Para ativar o comando digite /doubleexp Quantidade de horas que vai durar o evento Exemplo /doubleexp 3 o evento ira durar por 3 horas. Para cancelar o evento basta digitar /doubleexp cancel apenas os GOD'S podem utilizar os 2 comandos. Créditos --- Pela postagem do tópico e edição nos códigos. --- Por eu tê pego uma parte de um script dele do creaturescripts. Espero que gostem
  13. Boa Tarde... Venho Trazer a Vocês uma Potion de Double Exp. Essa Potion Você Pode Morrer, Sair, Voltar que ela Não perde o Efeito! Essa Potion Depois de usada, Sua Exp Sera Aumentada conforme a Configuração que Fizer nela! Testada em OTServers 8.6 - 0.4.1 Vamos la! Em mods Crie um Arquivo chamado Doubleexppotion.xml e Dentro dele Adicione: <?xml version="1.0" encoding="UTF-8"?> <mod name="AdvancedExpPotionSystem" enabled="yes" author="MatheusMkalo" forum="XTibia.com"> <!-- Configs and Functions --> <config name="PotionExpConfigs"><![CDATA[ ------ CONFIGURE SEU SCRIPT ------ TRUE ou FALSE configs = { time = 30, ---- TIME IN MINUTES needpa = TRUE, needlvl = {TRUE, level = 50}, costmana = {TRUE, mana = 300}, addrate = 50, -- Exp que vai adicionar em % removeonuse = TRUE } function getTime(s) local n = math.floor(s / 60) s = s - (60 * n) return n, s end CreatureEventChecker = function(event, ...) -- Colex if isCreature(arg[1]) then event(unpack(arg)) end end creatureEvent = function(event, delay, ...) -- Colex addEvent(CreatureEventChecker, delay, event, unpack(arg)) end function getPlayerExtraExpRate(cid) -- By MatheusMkalo return (getPlayerRates(cid)[8]-1)*100 end ]]></config> <!-- exppotion.lua --> <action itemid="7440" event="script"><![CDATA[ domodlib('PotionExpConfigs') if getPlayerStorageValue(cid, 62164) >= 1 then return doPlayerSendCancel(cid, "Voce ja ta Sob o Efeito da Potion.") end if configs.needpa and not isPremium(cid) then return doPlayerSendCancel(cid, "Voce Precisar ser Premium Para Usar") end if configs.needlvl[1] and getPlayerLevel(cid) < configs.needlvl.level then return doPlayerSendCancel(cid, "Voce Precisa ser " .. configs.needlvl.level .. " Para usar a Potion.") end if configs.costmana[1] then if getCreatureMana(cid) < configs.costmana.mana then return doPlayerSendCancel(cid, "Voce Precisar ter " .. configs.costmana.mana .. " de Mana Para usar a Potion") else doCreatureAddMana(cid, -configs.costmana.mana) end end if configs.removeonuse then doRemoveItem(item.uid, 1) end for i = configs.time*60, 1, -1 do local a = math.floor(i/60) .. ":" .. i - (60 * math.floor(i/60)) if #a < 4 then a = string.sub(a,1,2) .. "0" .. string.sub(a, 3) end if i == configs.time*60 then creatureEvent(doPlayerSendCancel, configs.time*60*1000, cid, "Efeito Final da Pocao de EXP.") end creatureEvent(doPlayerSendCancel, (configs.time*60-i)*1000, cid, "O Efeito da Pocao vai acabar em "..a..".") end doPlayerSetExperienceRate(cid, (1+(configs.addrate/100))+(getPlayerExtraExpRate(cid)/100)) creatureEvent(doPlayerSetExperienceRate, configs.time *60*1000, cid, 1+(getPlayerExtraExpRate(cid)/100-(configs.addrate/100))) doPlayerSendTextMessage(cid, 22, "Agora Voce Esta Recebendo mais EXP por Matar Monstros.") setPlayerStorageValue(cid, 62164, os.time()) creatureEvent(setPlayerStorageValue, configs.time *60*1000, cid, 62164, 0) return TRUE ]]></action> <creaturescript type="login" name="ExpPotion" event="script"><![CDATA[ domodlib('PotionExpConfigs') local time = configs.time if os.time()-getPlayerStorageValue(cid, 62164) < time *60 then doPlayerSetExperienceRate(cid, (1+(configs.addrate/100))+(getPlayerExtraExpRate(cid)/100)) creatureEvent(doPlayerSetExperienceRate, (time*60-(os.time()-getPlayerStorageValue(cid, 62164))) * 1000, cid, 1+(getPlayerExtraExpRate(cid)/100-(configs.addrate/100))) creatureEvent(setPlayerStorageValue, (time*60-(os.time()-getPlayerStorageValue(cid, 62164))) * 1000 , cid, 62164, 0) for i = (time*60-(os.time()-getPlayerStorageValue(cid, 62164))), 1, -1 do local a = math.floor(i/60) .. ":" .. i - (60 * math.floor(i/60)) if #a < 4 then a = string.sub(a,1,2) .. "0" .. string.sub(a, 3) end if i == (time*60-(os.time()-getPlayerStorageValue(cid, 62164))) then creatureEvent(doPlayerSendCancel, (time*60-(os.time()-getPlayerStorageValue(cid, 62164)))*1000, cid, "O Efeito da Potion Termina em.") end creatureEvent(doPlayerSendCancel, ((time*60-(os.time()-getPlayerStorageValue(cid, 62164)))-i)*1000, cid, "O Efeito da Potion Termina em "..a..".") end end return TRUE ]]></creaturescript> </mod> Configurações configs = { time = 30, ---- TEMPO EM MINUTOS needpa = TRUE, --- NECESSITA DE PREMIUM OU NÃO, TRUE OU FALSE needlvl = {TRUE, level = 50},---- EXIGE LEVEL TRUE OU FALSE CASO NÃO , E O LEVEL QUE DESEJA USAR NO CASO ESTA 50 costmana = {TRUE, mana = 300}, --- CUSTA MANA TRUE OU NÃO CASO NÃO QUERIA, CUSTARA 300 NO CASO addrate = 50, -- EXP QUE VAI ADICIONAR EM PORCENTAGEM , NO CASO ESTA 50% removeonuse = TRUE --- CASO QUEIRA QUE ELA SUMA APOSTA USAR, DEIXE TRUE, CASO CONTINUE FALSE! Agora vamos escolher uma Potion: Aqui Estamos usando a ID:7440 Procure Por essa Linha: <action itemid="7440" event="script"><![CDATA[ Caso queira deixar Essa Potion, ou Renome-la vá em data/items/items.xml Items.xml e Procure pela ID: 7440 <item id="7440" article="a" name="Double Exp Potion"> <attribute key="weight" value="200" /> <attribute key="description" value="Depois de Tomar Sua EXP Dobrara." /> </item> Salve, e Aproveite! Créditos: MatheusMkalo e a Mim Por Traduzir e trazer pra cá!
  14. Fala galera, tudo bem? Bom, estou trazendo aqui um sisteminha de double exp e double loot system que fiz sob encomenda só que acabaram fazendo por conta própria e desistindo de comprar o que me encomendaram, então estou divulgando aqui para vocês o sistema completo já que não tem mais nenhum termo de privacidade e é um sisteminha legal de se usar para diversas coisas (quests, itens especiais, etc). O nome é bem auto-explicativo, o sistema aumenta a rate de exp e loot daquele cidadão por um período X de tempo. Scripts: http://pastebin.com/Wc9ZL8Km É bastante auto-explicativo o código acima, pois já coloquei no pastebin com os devidos comentários e com os passos a serem seguidos. Leiam tudo pois são 3 arquivos e 1 modificação no login.lua. A forma como está feita ali é um item (a ser definido por você na tag) que você clica e habilita o bonus ao player. A rate de exp e loot são customizáveis tal qual o tempo de duração do bônus. Espero que gostem. Abraços,
  15. Resumo: Para quem já jogou league of legends, o sistema é "parecido" com o Invite Friends, e para quem não jogou irei dar uma breve descrição sobre o sistema. Descrição: O sistema oferece algumas premiações como: Itens, Premium Days, Montarias, Premium Points(para site) e Outfits. Claro que isso tudo é configurável. A ideia principal do sistema foi que essas premiações fossem exclusivas do sistema, digamos, que os jogadores só fossem recompensados e tivessem certas montarias/outfits se ele atingisse num número "X" de pontos por ter ajudado seu servidor a crescer! Como todo mundo almeja algo exclusivo e difícil de ser obtido, iria instigar os jogadores a usar o sistema e convidar seus amigos para o servidor! Como Funciona o Sistema? O sistema foi planejado para que jogadores "espertinhos" não burlassem o sistema e acontece da seguinte maneira: Temos o jogador João e a jogadora Maria: Maria necessita ser level 30 ou menor que 30(Configurável) para utilizar uma talkactions e dizer por quem foi invitada para o servidor, vamos supor que João a convidou Maria para jogar, João por sua vez necessita também ter um level avançado, digamos 50 ou superior(Configurável). Feito com sucesso o uso do sistema, ele funciona da seguinte maneira: OBS: Você pode dizer o nome do jogador mesmo que ele esteja OFFLINE! OBS2: Um ou mais Players podem ser invitador pelo MESMO JOGADOR! ENTÃO QUANTO MAIS PLAYER VOCÊ CHAMAR, MAIS FÁCIL DE RECEBER PONTOS E PREMIAÇÕES O jogador invitado, no caso o João, teria que atingir um número "X" de pontos para receber premiações, por exemplo: * Com 10 Pontos jogão recebe: Itens * Com 25 Pontos jogão recebe: Itens e Premium Points * Com 50 Pontos jogão recebe: Itens e Montaria * Com 100 Pontos jogão recebe: Itens, Premium Points, Premium Days e Outifit (Claro que isso é tudo configurável em uma Tabela) E como recebo Recebo esses Pontos VODKART SEU FILHO DA PUTA! Se lembra que João Convidou Maria para Jogar? Então... Maria tem que atingir certos leveis para que João receba esses pontos! Por exemplo a tabela do sistema: levels_win = { [50] = 5, [80] = 6, [100] = 8, [150] = 10 }, Se Maria atingir level 50, João recebe 5 pontos Se Maria atingir level 80, João recebe 6 pontos Etc... Claro que isso tudo é acumulativo! E sabe o que mais? João recebe Pontos mesmo se estiver ONLINE ou OFFLINE! Sem mais delongas, Vamos instalar o sistema! Instalando o Sistema: data\creaturescripts\scripts InviteFriends.lua function onLogin(player) player:registerEvent("FriendsPoints") if player:getStorageValue(_invite_friends.storages[1]) < 0 then player:setStorageValue(_invite_friends.storages[1], 0) player:setStorageValue(_invite_friends.storages[4], 0) end if getInvitePoints(player) > 0 then local acc = player:getAccountId() local FriendPoints, CheckPoints = getInvitePoints(player), player:getStorageValue(_invite_friends.storages[4]) for vod, ka in pairs(_invite_friends.rewards) do local str = "" if FriendPoints >= vod and CheckPoints < vod then str = str.."--> Invite Players System <--\n\nVocê acaba de receber algumas recompensas:\n\nItems: \n"..getItemsFromList(ka.items)..".\n\n" if ka.p_days > 0 then player:addPremiumDays(ka.p_days) str = str.."Premium Days:\n"..ka.p_days.." Premium Days." end if ka.p_points > 0 then db.executeQuery('UPDATE accounts SET premium_points=premium_points+' .. p_points ..' WHERE id=' .. acc) str = str.."Premium Points:\n"..ka.p_points.." Premium Points." end if ka.out[1] > 0 then player:addOutfitAddon(player:getSex() == PLAYERSEX_FEMALE and ka.out[1] or ka.out[2], 3) str = str.."[New Outfit]\nRecebeu uma Nova Outfit." end if ka.mount_id > 0 then player:addMount(ka.mount_id) str = str.."[New Outfit]\nRecebeu uma Nova Montaria." end player:setStorageValue(_invite_friends.storages[4], FriendPoints) local town_id = player:getTown():getId() if #ka.items > 0 then local parcel = player:getDepotChest(town_id, true):addItem(2595) for _, i_i in ipairs(ka.items) do local item, amount = i_i[1],i_i[2] if isItemStackable(item) or amount == 1 then parcel:addItem(item, amount) else for i = 1, amount do parcel:addItem(item, 1) end end end end local townid = player:getTown():getId() local letter = player:getDepotChest(town_id, true):addItem(2598, 1, true, 1) letter:setAttribute(ITEM_ATTRIBUTE_WRITER, "[+] Invite Players System [+]") letter:setAttribute(ITEM_ATTRIBUTE_TEXT, str) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE,"[Invite Players System] Você Recebeu algumas premiações por estar convidando jogadores para o servidor, Por favor conferir os itens no Depot.") end end end return true end function onAdvance(player, skill, oldlevel, newlevel) if (skill == SKILL__LEVEL) then if hasInviteFriend(player) and player:getStorageValue(_invite_friends.storages[3]) < newLevel and _invite_friends.levels_win[newLevel] then local f_name, points = getNameFriend(player), _invite_friends.levels_win[newLevel] player:setStorageValue(_invite_friends.storages[3], newLevel) addInvitePoints(f_name, points) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "[Invite Friends] você atingiu o level "..newLevel.." e o seu amigou "..f_name.." recebeu "..points.." Friend Points. Obrigado!") end end return true end creaturescripts.xml <event type="advance" name="FriendsPoints" script="InviteFriends.lua"/> <event type="login" name="FriendsLogin" script="InviteFriends.lua"/> data\lib\core invitefriends.lua _invite_friends = { storages = {202301, 202302, 202303, 202304}, -- points, jogador, recompensa lvl, recompensa items level_max = 30, -- até que level ele precisa falar seu friend level_need = 50, -- que lever o jogador precisa ser para ganhar pontos levels_win = { [50] = 5, [80] = 6, [100] = 8, [150] = 10 }, rewards = { [10] = {items = {{2160,1},{2173,1}}, p_days = 0, mount_id = 0, p_points = 0 , out = {0,0}}, [25] = {items = {{2160,2},{2173,1}}, p_days = 0, mount_id = 0, p_points = 0 , out = {0,0}}, [50] = {items = {{2160,3},{2173,1}}, p_days = 0, mount_id = 0, p_points = 0 , out = {0,0}}, [100] = {items = {{2160,4},{2173,1}}, p_days = 0, mount_id = 0, p_points = 0 , out = {0,0}}, [200] = {items = {{2160,5},{2173,1}}, p_days = 0, mount_id = 0, p_points = 0 , out = {0,0}}, [250] = {items = {{2160,6},{2173,1}}, p_days = 0, mount_id = 0, p_points = 0 , out = {698, 699}}, [500] = {items = {{2160,7},{2173,1}}, p_days = 0, mount_id = 0, p_points = 0 , out = {0,0}} } } function getInvitePoints(cid) local cid = Player(cid) if cid == nil then return false end return getPlayerStorageValue(cid, _invite_friends.storages[1]) < 0 and 0 or getPlayerStorageValue(cid, _invite_friends.storages[1]) end function hasInviteFriend(cid) local cid = Player(cid) if cid == nil then return false end return getPlayerStorageValue(cid, _invite_friends.storages[2]) > 0 and true or false end function getNameFriend(cid) local cid = Player(cid) if cid == nil then return false end return getPlayerNameByGUID(getPlayerStorageValue(cid, _invite_friends.storages[2])) end function addInvitePoints(name, amount) local pid, Guid = getPlayerByName(name), getPlayerGUIDByName(name) if not pid then local getFriendPoints = db.storeQuery("SELECT `value` FROM `player_storage` WHERE `player_id` = ".. Guid .." AND `key` = ".._invite_friends.storages[1]) if getFriendPoints ~= false then db.asyncQuery("UPDATE `player_storage` SET `value` = ".. (result.getDataInt(getFriendPoints, "value")+amount) .." WHERE `player_id` = ".. Guid .." AND `key` = ".._invite_friends.storages[1]) end else setPlayerStorageValue(getPlayerByName(name), _invite_friends.storages[1], getInvitePoints(getPlayerByName(name))+amount) end return true end function getItemsFromList(items) -- by vodka local str = '' if table.maxn(items) > 0 then for i = 1, table.maxn(items) do str = str .. items[i][2] .. ' ' .. ItemType(items[i][1]):getName() if i ~= table.maxn(items) then str = str .. ', ' end end end return str end function getPlayerNameByGUID(guid) local a = db.storeQuery('SELECT `name` FROM `players` WHERE `id` = ' .. guid .. ' LIMIT 1') if a then return result.getDataString(a, "name") end return nil end function PlayerExist(name) -- by vodka local a = db.storeQuery('SELECT `id` FROM `players` WHERE `name` = ' .. db.escapeString(name)) if a ~= false then return true end return false end Na mesma pasta procure por data\lib\core.lua e adc essa linha: dofile('data/lib/core/invitefriends.lua') data\talkactions\scripts InviteFriends.lua function onSay(player, words, param) local param = param:lower() if param == "" or not param then player:sendCancelMessage("Você precisa digitar o nome de um jogador.") return false elseif param == "points" then player:popupFYI("[+] Invite Friend System [+]\n\nvocê tem ["..getInvitePoints(player).."] Friends Points.") return false elseif hasInviteFriend(player) then player:sendCancelMessage("Você já agradeceu o jogador ["..getNameFriend(player).."] por te convidar a jogar neste servidor.") return false elseif not getPlayerGUIDByName(param) then player:sendCancelMessage("Desculpe, mas o jogador [" .. param .. "] não existe.") return false elseif player:getLevel() > _invite_friends.level_max or result.getDataInt(db.storeQuery("SELECT `level` FROM `players` WHERE `id` = "..getPlayerGUIDByName(param)), "level") < _invite_friends.level_need then player:sendCancelMessage((player:getLevel() > _invite_friends.level_max and "Desculpe, mas você precisa ter no maximo level ".._invite_friends.level_max.." para usar este comando." or "Desculpe, mas o jogador ["..param.."] precisa ter no minimo level ".._invite_friends.level_need.." para ser escolhido.")) return false elseif player:getName():lower() == param then player:sendCancelMessage("Desculpe, mas você não pode se auto invitar.") return false end player:setStorageValue(_invite_friends.storages[2], getPlayerGUIDByName(param)) player:sendTextMessage(25, "Você indicou o jogador "..param..", este sistema é uma forma de agradecer a vocês por trazerem seus amigos para jogar.") player:getPosition():sendMagicEffect(math.random(28,30)) return false end talkactions.xml <talkaction words="!invited" separator=" " script="InviteFriends.lua"/> Exemplo de uso do comando: Vodkart me chamou para jogador? uso o comando: !invited vodkart Configurando o Sistema: *Vá na LIB do sistema que você adicionou* level_max = 30, -- até que level ele precisa falar seu friend level_need = 50, -- que lever o jogador precisa ser para ganhar pontos levels_win = { -- [LEVEL QUE PRECISA ATINGIR] = QUANTIDADE DE PONTOS QUE O OUTRO JOGADOR VAI RECEBER [50] = 5, [80] = 6, [100] = 8, [150] = 10 } rewards = { [10] = {items = {{2160,1},{2173,1}}, p_days = 0, mount_id = 0, p_points = 0 , out = {0,0}}, [25] = {items = {{2160,2},{2173,1}}, p_days = 0, mount_id = 0, p_points = 0 , out = {0,0}}, [50] = {items = {{2160,3},{2173,1}}, p_days = 0, mount_id = 0, p_points = 0 , out = {0,0}}, [100] = {items = {{2160,4},{2173,1}}, p_days = 0, mount_id = 0, p_points = 0 , out = {0,0}}, [200] = {items = {{2160,5},{2173,1}}, p_days = 0, mount_id = 0, p_points = 0 , out = {0,0}}, [250] = {items = {{2160,6},{2173,1}}, p_days = 0, mount_id = 0, p_points = 0 , out = {698, 699}}, [500] = {items = {{2160,7},{2173,1}}, p_days = 0, mount_id = 0, p_points = 0 , out = {0,0}} } rewards = { [PONTOS NECESSÁRIO PARA OBTER A PREMIAÇÃO] = exemplo: [10] = {items = {{2160,1},{2173,1}}, p_days = 0, mount_id = 0, p_points = 0 , out = {0,0}}, com 10 pontos ele irá rceber aquele itens acima /\ items = {} -- Poderá adicionar itens em uma tabela dizendo {id do item, quantidade} p_days = 0 -- se o jogador vai receber Premium Days? 0 ou Quantidade que vc deseja dar mount_id = 0 -- Se o jogador vai receber montaria? Colocar o Mount ID(que fica em mounts.xml) Ou deixar 0 para nenhuma p_points = 0 -- se o jogador vai receber Premium Points? 0 ou Quantidade que vc deseja dar out = {0,0} -- se vai recever outfit? {FEMALE, MALE} OU {0 , 0} para nenhuma
  16. Ha um tempo atrás eu procurei um Pet System bem simples pro meu servidor, e achei um muito bacana. TFS: 0.4 Tibia: 8.6 O script funciona corretamente, eu fiz apenas algumas alterações e queria compartilhar caso vocês tenham as mesmas exigências que eu; * Ao tentar usar o PET em PZ não da mais erro na distro, sobe um efeito FAILED! no player e manda uma mensagem. * Agora cada PET precisa de um storage para ser usado, no meu caso, cada PET tem sua quest individual. Indo para o assunto... Vá em "data/actions/scripts", copie algum arquivo da pasta e cole, renomeie para "simple_pet" e adicione isso dentro: function onUse(cid, item, frompos, item2, topos)local dolls = {[11256] = {pet = "Rat"},[11207] = {pet = "Demon"},[5791] = {pet = "Dragon"},}local go = dolls[item.itemid]local summon = getCreatureSummons(cid)---------------------------------------------------if not (getTilePzInfo(getCreaturePosition(cid))) thenif #summon >= 1 thenfor _, pid in ipairs(summon) dodoRemoveCreature(pid)doCreatureSay(cid, ""..go.pet..", Recuar!", TALKTYPE_ORANGE_1)endreturn trueendif item.itemid == 5791 thenif getPlayerStorageValue(cid, 6666) == 1 thendoConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)else doPlayerSendTextMessage(cid, 19, "Voce precisa da quest para usar esse PET!")doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)endend if item.itemid == 11256 thenif getPlayerStorageValue(cid, 4444) == 1 thendoConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)else doPlayerSendTextMessage(cid, 19, "Voce precisa da quest para usar esse PET!")doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)endendif item.itemid == 11207 thenif getPlayerStorageValue(cid, 4445) == 1 thendoConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))doCreatureSay(cid, ""..go.pet..", GO!", TALKTYPE_ORANGE_1)else doPlayerSendTextMessage(cid, 19, "Voce precisa fazer a quest para usar esse PET!")doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)endendelsedoPlayerSendTextMessage(cid, 19, "Voce nao pode sumonar seu PET em Protect Zone!")doSendAnimatedText(getPlayerPosition(cid), "Failed!", 180)return trueendend Muito bem, agora sigamos para "actions.xml" e adicione essa tag: <action itemid="11256;11207;11144;9019" event="script" value="simple_pet.lua"/> Agora para você configurar: Nesta parte do código: local dolls = {[11256] = {pet = "Crystal Spider"},[11207] = {pet = "Ashmunrah"},[11144] = {pet = "Demon"},[9019] = {pet = "Vampire"},} Oque está entre [ e ] nós colocamos os Item ID dos items que vão chamar o PET. Já entre { e } aonde está entre aspas, colocamos o nome do PET.E na tag do "actions.xml" adicionamos estes MESMOS Item Ids, separando-os por ; ficando: <action itemid="ID;ID;ID;ID" event="script" value="simple_pet.lua"/> Para o PET teleportar para você quando subir escadas, ou ficar muito longe, vá em "config.lua" e procure por: teleportPlayerSummons Se estiver false coloque true, se estiver "no", coloque "yes" Demonstração: http://imgur.com/a/emO4I Obrigado pela atenção galera, espero que tenham gostado, e qualquer dúvida tentarei ajudar vocês. Não tenho certeza se esse sistema não tem aqui, mas não estava achando então decidi postar :3 Se Ajudei Rep + CRÈDITOS: LUQUINHA "Um Sitezinho Qualquer"
  17. Changelog V1.0 Cidades + Carlin + Thais + Npcs nas cidades igual o global e alguns editados + Sistema de Addon Igual Global + Items de Addons Compra no Npc Bulma,todos com preços reformulados,para dificultar mais ainda ao fazer os addons + Sistema de Parcel para as Cidades 100% Quests + Desert Quest + Banshee Quest + Firewalker Boots Quest + Hota Quest + Anihilator Quest + Pits of Inferno Quest + Inquisition Quest + Yalahar Quest + Demon Helmet Quest + Demon Oak Quest + The Epiphany e Winged Helmet Quest [new] + Solar Axe e Great Shield Quest [new] Teleportes + 30 Teleportes hunts igual o Global + Teleportes de Demons e Heros Aumentados + Apenas Teleportes das Hunts mais usadas + E algumas hunts melhoradas Sistema Premium[VIP] Ao Inves de Fazer um Sistema Vip,pensei em usar a premium mesmo,com ela você pode ter acesso a nova cidade Premium[VIP] + Premium[VIP]comprando pelo !buypremium [Valor 5kk] + Acesso a Area Premium Pelo Npc Premium Teleporter + Troca de Sexo + 38 Teleportes para hunts + Hunts com respaw de 30 segundos + Sistema de Trainers com 4 Trainers com Fast Ataque + Varias Houses grandes espalhadas pela cidade + Hunts,a maioria areas grandes V1.3 Reformulado area,de teleportes Arrumado o tp de thais para os trainers que estava bugado Arrumado 2 erros de spawn,que apareçia quando iniciava o ot Arrumado alguns erros no mapa Bk Quest Adcionada Fibula Quest Adcionada Bs quest Adcionada Noble armor quest adcionada Mapa size almentado para 4200x4200 Bug dos Amuletos e rings infinitos arrumados Bug do Aol agora funcionando V1.7 Corrigido bugs no mapa Adcionada Cidade Farmine Adcionada Cidade Yalahar Area de Quests reformulada Area das Cidades reformudala Alterado level inicial,agora começa level 8 Alterado equipamentos iniciais Alterado level nas portas das quests igual global Reconpensa da yalahar quest igual global Quase 300 houses sistema de buy aol,fale !buy aol e vá até a ilha do Eremo sistema de Quest look(de look e veja quantas quests tem feita) BY Saymon14 retirado npc que vendia amuletos e rings Reformulada algumas Quests Teleportes da Poi,todos corrigido Npc que vendia amuletos e rings,retirado Revisão no script da quest de fibula Arrumado o Comando !frags Stone Skin Amulet 80% diminuido para 10% de protect V2.4 + Corrigido corpos de alguns monstros + Corrigido pequeno bug nos trainers + Corrigido um item de addon no npc Varkhal + Corrigido pequeno bug no teleport de dragons da area vip + Corrigido porcentagem da penalidade de morte + Corrigido bug da spear,agora ela não quebra + Adcionado hunt Orcs + Adcionado novos items no npc Bulma + Adcionado Hunt Trolls + Adcionado mais monstros no buero de carlin + Adcionada Cidade Ab'dendriel + Adcionado Trainers 2 + Adcionado Npc Lector nos trainers(food seller) + Adcionado comando para formação de guilds + Area De dwarfs Adcionada (dwarf mines) + Area de cyclops adcionada + Area de Amazon Adcionada (amazon camp) + Expanção na Area de Teleportes + Orc Fortress Quest Adcionada + Templo de Thais Reformulado + Teleport para Thais arrumado,vai para o barco como os outros V2.7 sistema de recompenças ao alcançar tal level Alguns bugs no mapa corrigidos talkaction de rank alterado para um melhor Systema de Parcel corrigido,todos dps corrigidos de acordo com sua city Principais Djins Adcionado,Nah'Bob e Alesar Npc que repara firewalker boots adcionado Debugs que ocorriam no god ao trocar outfit corrigidos Corrigidos alguns erros na area de teleport Nova Cidade Darashia Adcionada Hunt de Minotaurs Adcionado Hunts de Macacos Adcionado Vampire Quest Adcionada Blue legs Quest Adcionada V3.0 + Todos items vip players apartir do level 8 podem usar + Sistema de Guilslist,sabia quais as guilds do servidor,e quem esta em sua guild(by Vodkart) + !online inovador modificado (by gustavo010) + Bug das runas corrigido + Novo distro mix Yourots + Corrigido Items que caia ao criar novo knight + Adcionado Tortoise hunt(liberty bay) + Adcionado Pirate hunt(liberty bay) + Adcionado Earth Elemental hunt(edron) + adcionado demon hunt(edron) + Adcionado Cyclops hunt(edron) + Adcionado Grim Reaper e Nightmare hunt(yalahar) + Adcionado Adept of the Cult hunt(yalahar) + Adcionado Demon hunt(yalahar) + Adcionado Demon hunt 2(yalahar) + Adcionado Mutated Bat hunt + Adcionado Worker Golem hunt + Adcionado Behemoth hunt + Adcionado Behemoth Quest V3.4 + Nova Quest Wrath of the Emperor/The New Frontier Quest[tudo uma só] + Corrigidos alguns erros no mapa + Adcionado Pz em algumas locais de npc + Adcionado efeitos na hora de up level + Adcionado addons nos npcs de carlin + Pequenas Edições no mapa + Dialogo de todos Npcs foram revisados e alterados + Novos Efeitos nos Teleportes + Corrigido cap do knight + Corrigido addons do outfit warmaster + Corrigido pequeno erro no distro quando god logava + Novo Sistema,mostando Top Frags online[!topkill] + Novo Evento Blood Castle[sim igual do Mu] + Revisado comando de comprar aol,agora pode usar [!aol !buyaol] + Revisado script de comprar bless + Sistema de Refinamentos de Items Adcionado + Database corrigida,sem erros,podendo deletar contas,players,etc.. + Novo Templo,mais espaçoso + Pasta globalevents,certos arquivos mudados,outros sem uso deletados + Mais um efeito na hora de morrer xD + Todos npcs que vendem joias,fora retirados,para evitar bug de money + Corrigido bug do npc que recarrega firewalker,agora ele recarrega mesmo + Adcionado novo mapa para wars,opens[não perde level ao morrer] V3.6 + Mais 2 npcs djins adcionados + Nova sala de Treiners + Templo com mais detalhes + Corrigido a venda de aol no eremo + Agora Premium é de Graça + Adcionado Sistema de VIP (by Vodkat) + Adcionado Exp para VIP (by vodkat) + Adcionado Cidade Venore + Corrigido pequenos bugs do mapa + Distro Limpo,sem Erros + Nova entrada para Area Vip + Players Vips ganha,[Vip]no nome + Corrigido Depot de Liberty Bay V4.0 + Vip retirada + Adcionada Cidade Port Hope + Adcionada cidade Edron + Adcionada Cidade Ankrahmun + Adcionada Cidade Svargrond + todos npcs das cidades igual global + Todas Houses das novas cidades Corrigidos + Alguns Bugs do mapa Corrigidos + Distro Limpo sem erros V4.2 + Npc Oldrak vendendo hallowed axe + Retirado Todos npcs de bank e joias para evitar bugs com grana + Cidades Registradas no Town ID + Depot de todas as novas Cidades Corrigidos + Bug de Grana do Rashid corrigido + Corrigido cordenada do teleport para sala das Cidades + Bugs do Mapa + Novo Distro Distro Fixe V4.3 [09/01/2012] V4.3 + Retirado distro da Styller Yourots [muito virus] + Adcionado Distro Antigo da Mix Yourots Créditos. Créditos: EddyHavoc (Edição e Publicação) Soldoran (Criação Base) Mix Yourots (Distros) Download Clique Aqui Scan Aqui
  18. Monster Hunter Event Como não tive tempo para trazer um script semana passada, criei um bem legal para essa semana. Para ver os outros scripts de terça, clique aqui. Vídeo demonstrativo: Explicação detalhada: O evento possui duas versões: automática (globalevent) e manual (talkaction). Quando o evento inicia, é sorteado um monstro e um intervalo de tempo, por exemplo: Hydra e 15 minutos. Seguindo esse exemplo, os jogadores terão 15 minutos para matar hydras, no final dos 15 minutos, aquele que tiver matado mais hydras será o vencedor e receberá um prêmio. - É tudo configurável. Instalação: Crie Monster Hunter.lua em data/creaturescripts/scripts e coloque: -- Monster Hunter Event feito por Killua, XTibia.com function onKill(cid, target, lastHit) if isPlayer(cid) and isMonster(target) then if getCreatureMaster(target) ~= nil then return true end local name = getGlobalStorageValue(1919211) if string.lower(getCreatureName(target)) == string.lower(name) then doPlayerSetStorageValue(cid, 1814210, getPlayerStorageValue(cid, 1814210) + 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "[Monster Hunter Event] Voce ja matou "..getPlayerStorageValue(cid, 1814210).." "..name.."s! Continue matando para ser o vencedor!") end end return true end function onLogin(cid) if getGlobalStorageValue(1919211) == 0 then doPlayerSetStorageValue(cid, 1814210, 0) end registerCreatureEvent(cid, "Monster Hunter") return true end Em data/creaturescripts/creaturescripts.xml adicione essas TAGs: <event type="kill" name="Monster Hunter" event="script" value="Monster Hunter.lua"/> <event type="login" name="Monster Hunterl" event="script" value="Monster Hunter.lua"/> A próxima parte irá depender de qual versão escolher Versão manual (talkaction) Versão automática (globalevent) Configuração: local monsters = {"Demon", "Rat", "Hydra", "Dragon Lord", "Ancient Scarab"} -- Monstros que podem ser sorteados local time_min, max = 10, 15 -- Em minutos local premios, gold = {{2160, 10}, {2157, 5}}, 10000 -- {id do item, quantidade} que o jogador ganha e quantia de gold Em monsters, coloque o nome dos monstros que poderão ser sorteados no evento. Em time_min, max, coloque o tempo mínimo e o tempo máximo de duração do evento. em premios, gold adicione os itens e a quantidade de gold que o vencedor receberá (seguindo o modelo apresentado). TAG no Globalevents.xml (versão automática): <globalevent name="Monster Hunter Event" interval="3600000" event="script" value="Monster Hunter.lua"/> interval é o intervalo entre as execuções do evento, coloquei 3600000, que equivale a 1 hora (1000 = 1 segundo). Se seu servidor NÃO for em milissegundos, use 1 = 1 segundo, logo 1 hora = 3600. TAG no Talkactions.xml (versão manual): <talkaction log="yes" access="5" words="/monsterhunter" event="script" value="Monster Hunter.lua"/> Em access coloque o núemero de acesso mínimo para poder usar o comando. 5 = somente gods podem usar. Para iniciar o evento na maneira manual, basta usar /monsterhunter Para iniciar o evento na maneira automática, basta aguardar o tempo configurado.
  19. #Descrição: O evento ocorre com a separação automática de 2 times (Azul x Vermelho), onde um disputa com o outro a sala de prêmios. Para ter acesso à sala, um dos times deve derrotar os 3 geradores presentes antes do outro. #O que possui? - Totalmente automatizado (Script: Abertura, Entrega do premio, Designação dos vencedores e Encerramento) - Página explicativa (PHP: Os players entenderão como funciona o evento) - Talkactions ADM (Script: Comandos que podem ser usados para abrir o castle manualmente) - Tutorial (Arquivo: Explicando passo a passo a instalação) - Arena com 2 salas e waiting room (Mapa) - Entre outras coisas… *OBS: Este evento só funciona em TFS 0.4. DOWNLOAD: CLICK AQUI SCAN: CLICK AQUI Créditos: ChaitoSoft Jhon Thiagobji
  20. Eae galera blz?, estou fazendo um projeto de uma quest anihi só que com tempo para ficar la e tempo para entrar. após o tempo esgotar, outras pessoas podem entrar e as que estão dentro são teleportadas para fora.. só q n sei se minha script esta com erro, ou eu não soube arrumar a action para entrar la.. de todo modo essa é minha script \/ , por favor, me orientem!! versão 8.6 TFS 0.4 anihi.lua anihi.lua
  21. Galerinha eu estava vasculhando o xtibia ai achei o tópico do Luck0ake que tinha o luaScriptMaker 1.0 programa criado por ele com base em .lua para criar scripts do mesmo, então Baixei achei legal mais só que ele esta todo em inglês resolvi da umas modificadinhas e traduzi ele para português e então estou lançando a nova versão do luaScriptMaker, versão 1.1 \/DOWNLOAD ABAIXO\/ luaScriptMaker 1.1.rar Galerinha estou com o projeto de aprimorar o programa para obter mais funções e assim poder obter um script mais complexo! Poste suas opiniões para o programa Créditos: LuckOake> Por ter feito a primeira versão do programa, base que eu usei para fazer a nova
  22. Fala galera então eu peguei o craft system deste tópico Clique Aqui e dei uma editada mudei os valores do tempo pra ficar certinho eu editei para o meu nto mas ficou legal então resolvi compartilhar eu fiz uma alteração no meu client no item 5941 que é o wooden stake quem quiser fazer a mesma alteração fique avontade a alteração que eu fiz foi para deixar o wooden stake igual o wood item 5901 agrupavel bom o método está logo abaixo é isso fiquem com a script Script action xml <action itemid="ID DO ITEM" event="script" value="NOME DO ARQUIVO.lua"/> print da modificação que fiz no wooden stake mudando ele para Stackable < ou empilhavel,agrupavel bom se estiver usando o OBJ vai tar agrupavel e no item editor vai estar stackable so marque essa opção no client e no item.otb e depois retire a marcação de multiuso do item no item.otb e no client ficando assim Itemeditor Client Link de download das outfits do lenhador Download das sprites de troca de Outfit: Créditos: (Bluester); GabrielTXU; Overllord; Zipter98; PxG pelas sprites.
  23. Esse é um pacote com actions úteis para se usar nos servidores e, a menos que esteja indicado o contrário, são de minha autoria. [Testado em servidor 8.6] Para colocar essas actions no jogo, você deve colocar uma TAG no arquivo actions.xml do seu servidor, com um actionid e o nome do arquivo .lua (contendo o script) na pasta de scripts. Então, você deve colocar um item com aquele actionid no mapa. [ACTION #1] Baús de quests completos Descrição: Com essa action, você pode colocar vários baús simples de quest em apenas um script de forma rápida e organizada. Basta apenas registrar diferentes actionIDs no actions.xml, colocar eles em cada baú e depois inserir no script, conforme o padrão. [ACTION #2] Summon simples Descrição: Dessa forma você pode criar um pequeno sistema de summon com um monstro. No primeiro uso, ele invoca o monstro à comando do jogador, gastando a mana definida. Então, caso outro uso seja realizado até o exhaust terminar, o monstro será removido. Quando o jogador usar novamente, se o monstro invocado existir, ele será removido e outro monstro será invocado, reiniciando o ciclo. OBS.: os ataques em área do summon ainda vão tirar vida do jogador. Para uma correção, vide final do tópico. [ACTION #3] Fome Zero Descrição: Script simples: você registra o actionID dele em algum item e então o jogador ganhará uma comida sorteada entre as que constam em foodID (deve ser configurado) Pode ser usado à vontade pelo jogador para conseguir comida. [ACTION #4] Alavanca do Cassino Descrição: Um script de alavanca: nesse você define as possíveis recompensas, o quanto de dinheiro a pessoa vai precisar e as chances! [ACTION #5] Fantasias de Monstros Descrição: Quando o jogador clicar em um item, será sorteada uma outfit entre as definidas. [ACTION #6] Passagem Secreta Descrição: Ao puxar a alavanca, o jogador removerá uma parede do lugar, abrindo uma passagem secreta. Ela se fechará em alguns segundos. [ACTION #7] Baús de vocações Descrição: Bem óbvio pelo nome, essa action dá prêmios diferentes para cada vocação [ACTION #8] SUSTO! Descrição: Essa action super engraçada fará o seguinte: o jogador se transformará num cadáver e aparecerá a mensagem You were downgraded from level... (igual a msg do tibia mesmo). Depois de TRÊS segundos, o jogador voltará a sua outfit normal e receberá a mensagem Gotcha! (te peguei em inglês) [ACTION #9] Painel informativo Descrição: Com essa action você pode fazer aparecer uma mensagem em popup para o jogador contendo as informações que você quiser. [ACTION #10] Armários realistas! Autor: Avronex Descrição: Colocando esse script em armários, os jogadores irão receber a janela de trocar outfit quando clicarem! [ACTION #11] Fogos de Artifício Descrição: Um novo script para fogos de artifício, com efeitos, número de explosões e tempo entre as explosões configuráveis. E aqui a lista termina por enquanto. Me avise se você achar/tiver uma action útil que possa entrar para a lista. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Correção para que o summon não dê dano em quem o invocou:
  24. Eai pessoal blz? eu estava lendo um tópico do nosso amigo Alexxxx... ai o Top...(o Bolz, esqueci o nick dele aq ¬¬) ai eu vi que ele falou que a forma que ele conseguio de adicionar addon no OT dele foi dando um Ctrol+F: Addon, na pasta do PokémonXRain! ai eu baixei ele e tentei, ai adicionei tudo nescessário nele no meu ot, ai quando usei, funcionou perfeitamente! mas claro q não é sem 100% pq quando da fly, ride, surf e etc ele volta pra outfit normal, ai precisa dar Go/back no pokémon para voltar com o addon! mas fora isto esta funcionando perfeitamente! Então Vamos Parar de Blábláblá e começar! Em Data/actions e Actions.xml adiciona isto: <action itemid="IdAddon;IdAddon" event="script" value="Addon.lua"/> Em IdAddon Coloca os ids dos items dos addons! ai para adicionar mais ids é só colocar o ";" Ou seja aquele negocio verde, e depois colocar o ID Ficando: IdAddon;IdAddon;IdAddon e por ai vai Ai Em Data/actions/scripts cria um arquivo lua Chamado "Addon" e Dentro Dele Adiciona Isto: function onUse(cid, item, fromPosition, itemEx, toPosition) local addons = { [12593] = {pokemon= "Electabuzz" , looktype = 1482}, --xxxx = id do item do addon --- "Scyther" = nome do pokemon --- looktype = 1 é o looktype do pokemon com addon [12925] = {pokemon= "Alakazam" , looktype = 1471}, --xxxx = id do item do addon --- "Scyther" = nome do pokemon --- looktype = 1 é o looktype do pokemon com addon } if #getCreatureSummons(cid) > 0 then doPlayerSendCancel(cid, "Please back your pokemon.") return false end local numero = addons[item.itemid].looktype local pb = getPlayerSlotItem(cid, 8).uid local pk = addons[item.itemid].pokemon if getItemAttribute(pb,"poke") ~= pk then doPlayerSendCancel(cid, "Sorry, you can't use this addon on this poke.") return false end if getItemAttribute(pb,"addon") < 1 then doRemoveItem(item.uid, 1) doPlayerSendTextMessage(cid, 27, "Congratulations! Now your pokemon will use the addon.") doSetItemAttribute(pb,"addon",numero) return true end return true end Ai para adicionar um Novo Addon é só Adicionar esta tag: [ItemID] = {pokemon= "NomeDoPoke" , looktype = IdDaOutfit}, EM ItemID, troca pelo id do addon em pokemon troca NomeDoPoke, pelo Nome Do Pokémon que vai ser adicionado o Addon Em looktype, troca IdDaOutfit, pelo looktype do pokémon com addon! Em Goback.lua Procure Por: else doPlayerSendCancel(cid, "This pokemon is fainted.") end E Adiciona Emcima de Else Isto: local pk = getCreatureSummons(cid)[1] local pb = getPlayerSlotItem(cid, 8).uid local look = getItemAttribute(pb,"addon") if not look then doSetItemAttribute(pb,"addon",0) return false end if look > 0 then doSetCreatureOutfit(pk, {lookType = look}, -1) return true end Em Catch system.lua Procura Por: doItemSetAttribute(item, "description", description) Adiciona Isto embaixo: doItemSetAttribute(item, "addon", 0) Em Some Functions.lua Procure Por: unLock(item.uid) Da Enter Duas Vezes e Adiciona isto: local pk = getCreatureSummons(cid)[1] local pb = getPlayerSlotItem(cid, 8).uid local look = getItemAttribute(pb,"addon") if not look then doSetItemAttribute(pb,"addon",0) return false end if look > 0 then doSetCreatureOutfit(pk, {lookType = look}, -1) return true end Pronto! Sistema de Addon Funcionando Perfeitamente Caso Coloque Tudo Certinho! Caso Queira uma Addon Box... Faz isto Em Actions.xml Adiciona Isto: <action itemid="12595" event="script" value="addonbox.lua"/> E Em Data/Actions/Scripts Cria um Arquivo Lua Chamado "addonbox" e Adiciona Isto Dentro Dele: function onUse(cid, item, frompos, item2, topos, pos) local addons = {12593,12889} local randomChance = math.random(1, 49) if item2.itemid == 12595 then doSendMagicEffect(getCreaturePosition(cid), 28) doRemoveItem(item2.uid, 1) doPlayerAddItem(cid, addons[randomChance], 1) doPlayerSendTextMessage(cid, 27, "Você ganhou um Addon!") return true end end Pronto Addon Box Adicionada! Créditos Pokémon X Rain Pelo Sistema de Addon Summer Slyer (Zet0N0Murmurou) Por Trazer ao Xtibia, e Por Fazer o Tutorial!
×
×
  • Criar Novo...