Ir para conteúdo

Featured Replies

Postado

[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

  • Respostas 5
  • Visualizações 2.1k
  • Created
  • Última resposta

Top Posters In This Topic

Postado

Bem ultil rep+

                                                            vps-plano-01.png

 

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

Postado
  • Autor

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

  • 3 months 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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo