Jump to content

Recommended Posts

Olá, esse é um dos primeiros scripts que eu consigo fazer, resolvi trazer ao fórum pois talvez em algum momento da história isso sirva para alguém fazer alguma coisa. Eu também gostaria de ceder todos os créditos desse trabalho para o @WooX, pois sem ele eu não teria o conhecimento necessário para fazer o script funcionar, 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

 

Share this post


Link to post
Share on other sites

Parabéns, seu tópico de conteúdo foi aprovado!
Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.

Spoiler

Congratulations, your content has been approved!
Thank you for your contribution, we of Tibia King we are grateful.
Your content will help many other users, you received +1 REP.

 


🛠️ Projeto NTO NS 🛠️

📝 Detalhes 📝

🗺️ Mapa próprio em produção 🗺️

🖱️ Versão: 8.60 🖱️

🔥 War System 🔥

⚔️ Jutsus Próprios baseado no anime ⚔️

🔰 Itens com as características e efeitos do anime 🔰

💻 Para mais detalhes acesse as redes sociais do servidor abaixo 💻

💡 Usando como referencias Anime/Jogos/Wallpapers etc... para trazer algo mais próximo possível do universo de Naruto 💡

 

💎 Redes Sociais 💎

🌀 Facebook 🌀

🎒 Youtube 🎒
🌌 Discord 🌌

 

📚 Tutoriais / Conteúdos 📥

♨️ Clique Aqui ♨️

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By RicK Sanchez
      Salve TIBIA KING!
      Hoje trago pra vocês um sistema de skin.
      Como funciona? ao clicar em um certo item, ele ganhará uma skin.
      ------------------------------------------------------
      vou explicar direitinho tudo. espero que entenda. se não, comente ai que eu poderei da suporte.
      Então vamos lá.
       

      Em actions/scripts
      Crie um arquvio chamado skin.lua -- ou o nome da skin/personagem.
      Depois abra, e copie e cole isso aqui dentro da pasta
      function onUse(cid, item, fromPosition, itemEx, toPosition)     if item.itemid == 7379 and (getPlayerStorageValue(cid, 8002) == EMPTY_STORAGE) then         doPlayerAddOutfitId(cid, 44, 3)         setPlayerStorageValue(cid, 8002, 1)         doSendMagicEffect(getCreaturePosition(cid), CONST_ME_HOLYDAMAGE)         doPlayerSendTextMessage(cid,22,"Parabéns, você recebeu a Outfit!")         doRemoveItem(item.uid, 1)     else         doPlayerSendCancel(cid,"Você já recebeu essa roupa!")     end end em item.itemid == 7379 mude para o id para o seu item. 
      Em (getPlayerStorageValue(cid, 8002) -- mude de acordo se você for colocar mais SKINS. tipo tá 8002 ali, coloque 8003 8004 e por ai vai.
          mude também no setPlayerStorageValue(cid, 8002, 1) -- mude para outras skin também!
       
      Feito isso, depois vá em actions.xml e adicione isso lá.
      <action itemid="13646" script="skin.lua"/> Mude a id do item.
      Depois de ter feito tudo isso, vamos agora em pasta do servidor/data/XML/outfit.xml
       abra ele e adicione isso aqui lá:   
      <outfit id="44" premium="no" default="0">         <list gender="0-3" lookType="1250" name="NOME DA SKIN"/>     </outfit>     Antes disse. der espaço entrem o <outfits> e </outfits> e cole dentro!
          Mude o looktype para a roupa/skin que você deseja colocar para o personagem ganhar.
          outfit id="44" > Mude aqui. para 1. 2 3 4 5 6, vai até aonde tu achar bom.
          em List gender="0-3" mude para 0-1 ou para o que você quiser.

      Pronto, feito tudo ISSO é sucesso meu bom. se eu errei algo, perdão 😄
       
       
      Créditos pelo esse sistema: DBOHP Eu (por postar.)
    • By Ryzor
      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
    • By isac001
      Gostaria de uma Script que funcione da seguinte forma:
       
      Um player chega em um Npc e pede para começar a partida war, 1v1 oque ganhar ganha Pontos e quem perder perde pontos o cara que chega 100 pontos Upa de Patente ex: Jogou umas 3 partidas do ferro 1 foi para Ferro 2! e no look do perssonagem mostrasse o rank dele! 
       
      TIPO LEAGUE OF LEGENDS alguem sabe fazer?
       
    • By L3K0T
      L3K0TTFS 04 e TFS 0.3.6
      Olá galera, hoje vim trazer um sistema chamado "First to Speak Summon" mais pera ai L3K0T, como funciona? Bom ele sumonar um monstro numa posição setada por sua preferencia, também verifica uma posxyz que você pode setar também e assim falar o comando "!fss"... mais pera ai L3K0T oque tem de diferente??? ... calma ... esse comando só pode ser pronunciado por 1 player somente, no caso se alguém falar o comando depois de você... não irá sumonar até que o tempo pra falar novamente acabe "configurado" e BORA PRO TUTORIAL???
       
       
      TUTORIAL;;
       
      1° vai na pasta Servidor\data\talkactions\scripts copia um arquivo.lua e renomeia para fss e dentro coloque;;
       
      local t = { sto = 565674, --Storage global; temp = 300, --Tempo para falar em milesimo 300 = 5 minutos // segundos o comando; monstro = "Demon", --Nome monstrinho que vá nascer; localmapa = {x=1569, y=214, z=7}, --Posição aonde o monstrinho vai nascer; pisomapa = {x=1565, y=215, z=7}, --Posição aonde o player precisa estar para falar o comando de sua preferencia; msgsucesso = "monstro foi criado!!!", --Mensagem que manda ao player ao criar o monstrinho; msgsono = "Demon Está dormindo zzzZZZ", --Mensagem ao tentar usar o comando com intervalo de espera do comando; msgnull = "Está acordado corra lá", --Mensagem quando o monstro acordar } function onSay(cid, words, param, channel) local tp = getThingPos(cid) --verficação --inicio if tp.x == t.pisomapa.x and tp.y == t.pisomapa.y and tp.z == t.pisomapa.z then --verificação if getPlayerStorageValue(cid, t.sto) > os.time() then --verificação tempo doPlayerSendTextMessage(cid, 27, t.msgsono) return true end for _, cid in ipairs(getPlayersOnline()) do --verificação players global setPlayerStorageValue(cid, t.sto, os.time() + t.temp) --seta storage end doCreateMonster(t.monstro, t.localmapa) doPlayerSendTextMessage(cid, 27, t.msgsucesso) else --fora do tile if getPlayerStorageValue(cid, t.sto) > os.time() then --verificação tempo doPlayerSendTextMessage(cid, 27, t.msgsono) return true end if getPlayerStorageValue(cid, t.sto) < os.time() then --verificação tempo doPlayerSendTextMessage(cid, 27, t.msgnull) return true end end --fim script BY L3K0T return true end tag xml;;
       
      <talkaction words="!fss" event="script" value="fss.lua"/> feito isso salva tudinho e use da melhor forma que achar.
       
      Video;;
       
       
      Créditos: @L3K0T
       
       
    • By edaegonis
      Bom pessoal, esse é um script bem simples, mas eu gosto da ideia dele, e não consegui encontrar por aí.
       
       
      É uma boa solução pra quando você quer summonar monstros numa quest, e se tiver vários players não ficará summonando monstros várias vezes.
       
      Esse script está sendo usado ao dar use num chest, mas está a seu critério onde utilizar.
      monstersToCreate = { [1] = { name = 'Lost Berserker', position = {x = 1034, y = 1425, z = 15} }, [2] = { name = 'Lost Thrower', position = {x = 1028, y = 1424, z = 15} }, [3] = { name = 'Lost Basher', position = {x = 1034, y = 1427, z = 15} }, [4] = { name = 'Lost Thrower', position = {x = 1040, y = 1423, z = 15} }, [5] = { name = 'Lost Husher', position = {x = 1030, y = 1430, z = 15} }, [6] = { name = 'Lost Husher', position = {x = 1038, y = 1429, z = 15} } } function onUse (player, item, param) if item:getActionId() == 45016 then if player:getStorageValue(45016) == -1 then player:addItem(2517, 1) -- shield of honour player:addItem(2502, 1) -- dwarven helmet local currentMonsters = Game.getStorageValue(45016) if currentMonsters then for v = 1, #currentMonsters do local monsterId = currentMonsters[v] local isMonsterAlive = Monster(monsterId) if not isMonsterAlive then local createdMonster = Game.createMonster(monstersToCreate[v].name, monstersToCreate[v].position) currentMonsters[v] = createdMonster:getId() end end Game.setStorageValue(45016, currentMonsters) else local createdMonsters = {} for i = 1, #monstersToCreate do local createdMonster = Game.createMonster(monstersToCreate[i].name, monstersToCreate[i].position) table.insert(createdMonsters, createdMonster:getId()) end Game.setStorageValue(45016, createdMonsters) end player:setStorageValue(45016, 1) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You've got a reward.") else player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, "You've already got your reward.") end end return true end  
      actions.xml:
      <action actionid="45016" script="seu_script.lua" />  
      Se alguém quiser aprimorar o script, sinta-se à vontade 😃
  • Recently Browsing   0 members

    No registered users viewing this page.


Open Tibia Server

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

Redes Sociais

Anuncie no Tibia King

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

Tibia King Recomenda

DokeHost - Soluções em Hospedagem

VPS Windows
VPS Linux
Servidor VPS
×
×
  • Create New...