Plastic Bomb

colex
Por colex
em Actions e Talkactions

colex

Serviços Prestados a Comunidade
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 03/10/05Posts: 301Gênero: Masculino

PLASTIC BOMB BY COLEX

 

Como funciona?

O player faz use em uma Plastic Bomb (eu uso o item 4825), e ficará imóvel um certo tempo (default é 5 segundos) instalando a bomba, depois de a bomba estar instalada o player poderá mover-se e a bomba irá demorar um certo tempo para explodir (default 5 segundos). A explosão será causada numa área 3x3 em que o player que estiver no centro da explosão levará sempre os danos mais elevados possiveis e os outros players que estiverem à volta será aleatório entre os danos maiores e menores (os danos são definidos no inicio do script em MAX_HIT e MIN_HIT).

 

 

1º Passo: na pasta data/actions/scripts crie um novo arquivo com o nome bomb.lua e insira o seguinte texto dentro dele:

----------Plastic Bomb by Colex-----------

local PLANTING_DELAY = 5 --seconds
local EXPLOSION_DELAY = 5000 --milliseconds
local MAX_HIT = 500
local MIN_HIT = 100

local PVP = true -- true for PVP, false for Non-PVP


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},
	{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)
	  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,"You have lost "..hitpoints.." hitpoints by "..getPlayerName(info.player).."'s plastic bomb") 
			  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
 mayNotLogout(info.player, 0)
 return 1
end

function planting(info)
 if info.num == PLANTING_DELAY then
doPlayerSendTextMessage(info.player,22,"Plastic Bomb successfully planted!")
mayNotMove(info.player,0)
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,"Planting the bomb...")
	doPlayerSendTextMessage(cid,22,"1...")
	mayNotMove(cid,1)
	mayNotLogout(cid, 1)
	doRemoveItem(item.uid,1)
	addEvent(planting,1000,info)
else
	doPlayerSendCancel(cid,"You can only plant one bomb at the same time.")
end
 else
doPlayerSendCancel(cid,"You can not plant this bomb in a PZ!")
 end	
 return 1
end

 

 

2º Passo: abra a pasta data/actions e adicione a seguinte linha dentro do arquivo actions.xml:

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

 

Pronto! Sua plastic bomb deve estar funcional...

 

 

Alguma dúvida? poste e eu tentarei ajuda-lo!

 

(Esta action foi apenas testado em um server 8.0)

 

Colex

Raydfix

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 28/09/07Posts: 18Char no Tibia: Descubra oO

nossaaa legal nunca tinha visto isso axo que vo fazer alguma coisa assim ^^!




É meu fan?Me ama?Fiz algum trabalho que vc gosto? Vire meu fan


Sou fan de:


Metadas
10 Posts(X)
20 Posts(X)
30 Posts(X)
40 Posts(X)
50 Posts(X)
60 Posts(X)
70 Posts(X)
80 Posts(X)
90 Posts(X)
100 Posts(X)
200 Posts( )
300+ Posts( )
Ter um topico Fixado( )

bruxo

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 30/12/05Posts: 45

Colex cada vez supreendendo mais a gente com seus scripts inteligentes e criativos.

 

Parabéns colex, mais um grande script xD.

~~Mundo de Mirage, online

Para mais informações: www.mundodemirage.com

Nostradamus

Serviços Prestados ao XTibia.com
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 10/06/06Posts: 338Char no Tibia: Setyte Berseker

Detalhes:

 

Esse script, só funcionará no Forgotten, pois usa a função: mayNotMove(cid,1)

 

Colex, aconselho colocar mayNotLogout(cid, 1) também.

[twitter]ThomazYuji[/twitter]

GOD Bon

GOD Bon
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 05/01/07Posts: 153

Oo nunca vi plast bomb em tibia. Agora to vendo xD.

Ótimo tutorial.

 

Ate +

 

~~Abraços~~

>>>>>>>>ĞФĐ βθŋ™<<<<<<<<
Você que é meu fan use minha bar
godbon.png
zeldagodbon.png

colex

Serviços Prestados a Comunidade
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 03/10/05Posts: 301Gênero: Masculino

Ele funcionará em Outros servers com a mesma função

 

eu usei o DevLand para fazer o script

 

vou adicionar o mayNotLogout, mas da para fazer exit na mesma, obrigado pela idéia!

salvatore

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 29/06/07Posts: 106

Muito bom e fácil de fazer.

 

Parabéns Colex, sempre com seu bom trabalho.

 

Abraços!

O "Ser Atleticano" ... (Roberto Drumond)

Presentes:

Nostradamus

Serviços Prestados ao XTibia.com
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 10/06/06Posts: 338Char no Tibia: Setyte Berseker

@colex

Obviamente, mas creio que só o Forgotten tem essa função, já que foi o próprio Talaturen que a fez.

[twitter]ThomazYuji[/twitter]

colex

Serviços Prestados a Comunidade
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 03/10/05Posts: 301Gênero: Masculino
@colex

Obviamente, mas creio que só o Forgotten tem essa função, já que foi o próprio Talaturen que a fez.

 

 

O DevLand tem essa função, como eu disse eu usei o DevLand para fazer este script...

Não sei se mais algum outro OT tem essa função ou alguma função semelhante, mas pelo menos esses dois :p

4291226

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 17/08/07Posts: 519

Bom,

 

+ 1 Vez Craindo Otimas Actions,Spell :)

 

Continue Assim

 

 

 

Cya

tochaazul

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 19/08/06Posts: 36Char no Tibia: Tocha azul

Colex e nostradamus... vcs sao Genios vlw ae ^^

cara to com uma lista de idéias na minha cabeça

 

se forem realisar uma delas postem os creditos da ideia para min

 

-assim como akele tapete voador vcs podiam criar um barco q se mexe tambem ^^

-achei essa ideia meio unitil mas tudu bem... quando vc usar alguma ropa mudar o outif do char

-sabe akele buneco de neve do update ?? intao criar tipo de um monster para fazer guerrinha de neve

e quando se desmanchar pareeçer akela bola redonda d neve

-tbm akele trap de quando o bixo for incima ele fica preso .. eu nunca vi ..

-quando vc leva um hit de um player no life fica sangue no chao....vcs poderiam fazer quando leva hit na mana ficar

agua azul no chao pareçendo mana UHAUSa

sao essas ae

^^

c fizerem uma me avisem

Old player

colex

Serviços Prestados a Comunidade
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 03/10/05Posts: 301Gênero: Masculino

UPDATE NO SCRIPT

 

@tochaazul

 

a idéia do barco que se mvoe, acho que ja foi feita pela B.O. (sem confirmação)

 

Mas de qualquer forma, obrigado pelas ideias, não sei se iremos desenvolver alguma delas, mas caso fizermos avisamos!

 

Colex

Jp P

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 26/12/06Posts: 1

Boa script Colex :D

Mas vem cá,tem como expandir a area dela?

colex

Serviços Prestados a Comunidade
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 03/10/05Posts: 301Gênero: Masculino

SCRIPT UPDATED

*Atinge qualquer criatura

*Só pode usar uma bomba de cada vez (bugfix)

*Nova estrutura na área (facilita a criação da sua própria área):

area = {

{0,0,0,0,0},

{0,1,1,1,0},

{0,1,1,1,0},

{0,1,1,1,0},

{0,0,0,0,0},

}

 

@Jp P

Da sim, e agora com o novo update é mais facil (só editar o Area)

Exemplo:

area = {

{0,0,0,0,0,0,0},

{0,0,0,1,0,0,0},

{0,0,1,1,1,0,0},

{0,1,1,1,1,1,0},

{0,0,1,1,1,0,0},

{0,0,0,1,0,0,0},

{0,0,0,0,0,0,0},

}

4291226

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 17/08/07Posts: 519

@Colex :)

 

 

Me Ajuda??

 

Ensina eu a Criar Actions and Spells??

 

Li Seus Tutorias + Non Tendi :(

 

Help Me :)