Ir para conteúdo
  • Cadastre-se

Posts Recomendados

[Action] Bomba Plástica/Plastic Bomb
 

 

Bom galera, esse script é bem antigo..então eu o editei colocando algumas funções mais atuais (alterei pouca coisa). É simplesmente um item do qual você da Use (actionscript), você vai ficar com battle e parado por determinado tempo, até que a bomba esteja bem plantada e você possa sair correndo do local (ou fique nele se você for terrorista, homem-bomba ou maluco mesmo..) antes que ela exploda na área que você usou o item. A área do script é dada como 3x3, você pode alterar; o player que estiver no meio sempre irá receber o maior dano possível e os outros vão ter um dado aleatório (entre o dano mínimo e dano máximo designado na configuração do script).

 

sombra.png

Crie um arquivo Lua na pasta data/actions/scripts nomeado por plasticbomb.lua e adicione o script ao mesmo:
 

local PLANTING_DELAY = 5 --segundos que lava para plantar a bomba
local EXPLOSION_DELAY = 5000 --tempo que leva para a bomba explodir (em milissegundos, ou seja, 5 segundos = 5000 milissegundos)
local MAX_HIT = 1200 --hit máximo da bomba
local MIN_HIT = 300 --hit mínimo da bomba

local PVP = true --se habilita o PVP = true, senão (NON-PVP) = false {ou seja, se a bomba hitar em alguém o player vai ficar com PK ou não


local PLAYERS = {}

function isInArray(table, valor)
  for i,j in pairs(table) do
    if (j == valor) then
      return i
    end
  end
  return 0
end

function explosion(info)
   area = {
		{0,0,0,0,0},
		{0,1,1,1,0},
		{0,1,1,1,0}, --área que a explosão da bomba vai pegar (no caso está 3x3), basta alterar 0 por 1 e vice-versa
		{0,1,1,1,0}, 
		{0,0,0,0,0},
	   }
	hitpos = {x=info.pos.x, y=info.pos.y, z=info.pos.z, stackpos=253}
        center = {}
        center.y = math.floor(table.getn(area)/2)+1
	for i in ipairs(area) do
          center.x = math.floor(table.getn(area[i])/2)+1
          for j, v in ipairs(area[i]) do
            if (v == 1) then
	      hitpos.x = info.pos.x + (j - center.x)
	      hitpos.y = info.pos.y + (i - center.y)
	      if (getTilePzInfo(hitpos) == 0) then   
	        victim = getThingfromPos(hitpos)
		effect = 4
		if ((j == center.x) and (i == center.y)) then
		  doSendAnimatedText(hitpos, "KABOOOOOM", TEXTCOLOR_RED) ---mensagem animada que aparece quando a bomba explode
		  hitpoints = MAX_HIT
		  effect = 5
		else
		  hitpoints = math.random(MIN_HIT, MAX_HIT)
		end
                if (isPlayer(victim.uid) == 1) then
		  if (PVP == true) then
                     doPlayerSendTextMessage(victim.uid, 20, "Você perdeu "..hitpoints.." pontos de vida pela bomba plástica do player "..getPlayerName(info.player).."'") 
                  else
                    hitpoints = 0
                  end
                end
		if (isCreature(victim.uid) == 1) then
		  doPlayerAddHealth(victim.uid, -hitpoints)
                end
	        doSendMagicEffect(hitpos, effect)
              end
            end
	  end
	end
  PLAYERS[isInArray(PLAYERS, info.player)] = 0
  doAddCondition(info.player, 0)
  return 1
end

function planting(info)
  if info.num == PLANTING_DELAY then
	doPlayerSendTextMessage(info.player, 22, "Bomba plástica plantada com sucesso!")
	doCreatureSetNoMove(cid, 1)
	addEvent(explosion, EXPLOSION_DELAY, info)
  else
	info.num = info.num + 1
	doPlayerSendTextMessage(info.player, 22, info.num.."...")
	addEvent(planting, 1000, info)
  end
  return 1
end

function onUse(cid, item, frompos, item2, topos) 
  position = getThingPos(item.uid)
  if (getTilePzInfo(position) == 0) then
   	if (isInArray(PLAYERS, cid) == 0) then	
		table.insert(PLAYERS, cid)	
		doSendMagicEffect(frompos, 3) 
		info = {player = cid, pos = position, num = 1} 
		doPlayerSendTextMessage(cid, 22, "Plantando a bomba...")
		doPlayerSendTextMessage(cid, 22, "1...")
		doAddCondition(cid, CONDITION_INFIGHT)
		doCreatureSetNoMove(cid, 1)
		doRemoveItem(item.uid, 1)
		addEvent(planting, 1000, info)
	else
		doPlayerSendCancel(cid,"Você só pode plantar uma bomba ao mesmo tempo.")
	end
  else
	doPlayerSendCancel(cid,"Você não pode plantar a bomba em uma PZ!")
  end	
  return 1
end

sombra.png

Agora, no diretório anterior (data/actions) abra o arquivo actions.xml e adicione a tag:
 

<action itemid="4852" script="plasticbomb.lua"  />



Créditos: Colex e eu, que editei 2 funções simples (quase nada).
PS: Expliquei alguns detalhes para alterar os valores no script --
Enfim..é isso.

Se te ajudei com o que postei, clique em liked.png
Bizzle

Link para o post
Compartilhar em outros sites

Bem ultil rep+

                                                            vps-plano-01.png

 

                                                                                                                    http://www.weblara.com.br/

Link para o post
Compartilhar em outros sites

Quando do use nele aparece assim: "Você não pode plantar a bomba em UMA PZ"

Verifique se o sqm onde você está tentando usar o item não é uma protection zone (pz), o item só pode ser usado fora da pz..

Se te ajudei com o que postei, clique em liked.png
Bizzle

Link para o post
Compartilhar em outros sites
  • 3 months later...
  • 3 years later...

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por Imperius
      Olá, pessoal! Acabei encontrando um script que tinha feito a um tempo atrás. Estou compartilhando aqui para quem quiser usar ou melhorar.
       
      É bem parecido com os outros sistemas de roleta, igual deste tópico: https://tibiaking.com/forums/topic/101557-action-cassino-roleta-de-items/
       
      Como funciona?
       
      O "Treasure Chest" é um item custom, onde o jogador têm a possibilidade de ganhar itens raros ou bem meia boca. Tudo dependerá da sorte.
       
      O jogador precisa tacar o treasure chest na bancada e acionar a alavanca. O treasure chest irá se transformar em vários itens de forma randômica no qual o jogador poderá ou não ganhar. No final, apenas um item é entregue ao jogador.
       
      Para entender melhor o seu funcionamento, segue o GIF abaixo:
       

       
       
      em data > actions > actions.xml
       
       
      em data > actions > scripts > crie um arquivo chamado leverTreasureChest.lua
       
       
      no banco de dados do servidor, adicione o seguinte código em "SQL":
       
       
       

      Também estou disponibilizando uma página PHP, para quem quiser usar no site do servidor. Na página tem informações sobre o funcionamento, quais são os possíveis prêmios e a lista de jogadores que ganharam os itens raros.
       

       
       
      Espero ter ajudado de alguma forma! : )
       
      treasure_chest.php
    • Por amoxicilina
      Action: Remover skull
       
       
    • Por Dono do WNA
      Andei procurando aqui pelo TK inteiro e não acho um script funcional para um boss room onde o player clica com direito num altar (parecido com uma alavanca) podendo ir sozinho ou com até 10 jogadores ele é teleportado para uma sala com o boss, podendo desafiar ele a cada 20 horas, toda vez que um jogador puxa a alavanca ele checa se tem player na sala e caso tenha, precisa esperar todos os jogadores sairem. Caso o boss esteja vivo sem players dentro da sala ele remove e adiciona um novo assim que puxam a alavanca.

      Achei scripts parecidos no forum porém são todos para TFS 1.x+ e eu uso o 0.4 e nenhum compatível que achei esta funcionando

      TFS 0.4 REV 3996
    • Por Maniaco
      Salve TibiaKing!!! TFS 0.4 . 8.60
       
      Estou implementando o Sistema do @WooX de Cave Exlusiva

      Link:
       
      Porem estou com um problema seguindo o tutorial completo dele acabo tendo um retorno de erro na Distro! E ja que o mesmo nao entra no forum deis de 14/01! Venho solicitar ajuda de vocês!
      Caso alguem tenha o Discord Dele Favor me Passe  
      Vamos lá!
      Erro:
       
      Script :
       
      Lib
       
       
      Print Rme:
       
       
      Lembrando que nao esta funcionando em geral, Acrédito que eu tenha pulado algo ou deixado passar despercebido!
      Espero que alguem consiga me ajudar vlw!
    • Por Maniaco
      Boa Tarde TibiaKing!!!
       
      Bom estou precisando arrumar um script, não deve ser muito difícil !! (pra quem sabe  !)
      Quem poder ajudar já agradeço.
       
      Resumindo apartir do momento que falo Travel, Yes para o npc ele me teleporta para posicao inicial me transformando(LookType) e precisa me levar até o destino final. (posFinal)
      até ai tudo bem problema que ele comeca a funcionar e me leva para lugar aleatorio e fica parado lá imovel. ( não da erro na Distro ) Apenas fico parado na LookType de barco.
       
      Uso tfs 0.4 8.60
       
      local posis = {
      --[pos do npc] = {pos inicial, pos final},
      [{x = 115, y = 143, z = 10}] = {posIni = {x = 114, y = 134, z = 10}, posFinal = {x = 76, y = 134, z = 10}},
      [{x = 74, y = 132, z = 10}] = {posIni = {x = 76, y = 134, z = 10}, posFinal = {x = 95, y = 147, z = 10}},
      }
       
       é um NPC
       
       
      .LUA DO NPC
       
      LIB - TRAVEL.LUA
       
       
       
      ,XML
       
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo