Ir para conteúdo

[ACTION] Recompensa de Natal


Caronte

Posts Recomendados

Ferumbras%27_Teddy_Santa.gif Olá pessoal, Feliz natal.

Eu gostaria de fazer alguma coisa especial para esse natal que já está passando... (pois é, estou atrasado)

 

 

então fiz esse script, para criar um clima de natal no seu otserver, que ao clicar num monte de neve, você joga uma bola de neve, e faz um boneco de neve se desfazer...

 

 

Bom...

nada melhor para explicar, do que um vídeo:

 

 

Script:

 

 

 

Crie um arquivo.lua em actions/scripts/ nomeie ele como snowBall.lua

nele, coloque isto dentro:

local config = {[7172] = 7171,
				[7171] = 6610,
				[6610] = 11256,
	}


function onUse(cid, item, toPosition, itemEx, fromPosition)

local snowInfo = {}
local cidpos = getThingPos(cid)

	local i = 0
	local loop = 0

	for Xpos = cidpos.x - 7, cidpos.x + 7 do
		for Ypos = cidpos.y - 5, cidpos.y + 5 do
			local pos = {x = Xpos, y = Ypos, z = cidpos.z}
			for k, v in pairs(config) do
				if getTileItemById(pos, k).itemid == k then
					i = i + 1
					snowInfo[#snowInfo + 1] = {getDistanceBetween(cidpos, pos), pos, getTileItemById(pos, k)}
					loop = loop + 1



	p = 100

				end
			end
		end
	end

					for k, v in pairs(snowInfo) do
						if p > v[1] then
							p = v[1]
						end
					end

					for k, v in pairs(snowInfo) do
						if v[1] == p then
							doSendDistanceShoot(cidpos, v[2], CONST_ANI_SNOWBALL)
							addEvent(function() if v[3].itemid == 6610 then
													doSendMagicEffect(v[2], CONST_ME_POFF)
													doSendMagicEffect(v[2], 27)
												else
													doSendMagicEffect(v[2], CONST_ME_POFF)
												end
									end, 300)
							doTransformItem(v[3].uid, config[v[3].itemid] )
							return true
						end
					end
	return true
end
 

Agora para finalizar...

adicione uma tag em actions.xml, que se encontra na pasta actions

<action itemid="486" event="script" value="snowBall.lua"/>

Pronto agora é só clica num item com id 486 que irá executar o script...

 

Se preferir actionId

<action actionid="2847" event="script" value="snowBall.lua"/>

e coloque action 2847 no item que você quer como monte de neve.

 

 

Editado por Caronte
Link para o comentário
Compartilhar em outros sites

Olha tem muita coisa que você olha e já pensa para que isso?? é desnecessário.

Mais isso é só uma critica construtiva.

Enfim ótima ideia continue assim e vai ajudar muita mais o ekstibia.

 

Essa voz e sua?e bem bonita hue.

 

Até mais.

Editado por caotic
Link para o comentário
Compartilhar em outros sites

Olha tem muita coisa que você olha e já pensa para que isso?? é desnecessário.

Mais isso é só uma critica construtiva.

Enfim ótima ideia continue assim e vai ajudar muita mais o ekstibia.

 

Essa voz e sua?e bem bonita hue.

 

Até mais.

 

Não, é do kkkk...

obrigado

 

ficou bem legal, poderia colocar uma tabela e sortear itens randomicos... mas muito ótimo o script, bem criativo!! dá para colocar para dar spanw no mapa desses bonecos kk e quem acha pode ganhar os premios.... reputado

 

Opa, já vou fazer...

 

muito bom, como sempre você trazendo bons conteúdos ! hahaha

 

Obrigado.

 

Esqueci de tirar os prints :neutral:

deve ter dado erros para uma galera...

 

 

 

 

 

ficou bem legal, poderia colocar uma tabela e sortear itens randomicos... mas muito ótimo o script, bem criativo!! dá para colocar para dar spanw no mapa desses bonecos kk e quem acha pode ganhar os premios.... reputado

Script:

 

 

function onUse(cid, item, toPosition, itemEx, fromPosition)

local x = { [1] = {2160, 10},
	[2] = {11256, 1},
	}

local sorte = math.random(1, #x)
local item = x[sorte][1]
local count = x[sorte][2]

local config = {[7172] = 7171,
				[7171] = 6610,
				[6610] = item,
	}

local snowInfo = {}
local cidpos = getThingPos(cid)

	local i = 0
	local loop = 0

	for Xpos = cidpos.x - 7, cidpos.x + 7 do
		for Ypos = cidpos.y - 5, cidpos.y + 5 do
			local pos = {x = Xpos, y = Ypos, z = cidpos.z}
			for k, v in pairs(config) do
				if getTileItemById(pos, k).itemid == k then
					i = i + 1
					snowInfo[#snowInfo + 1] = {getDistanceBetween(cidpos, pos), pos, getTileItemById(pos, k)}
					loop = loop + 1

	p = 100

				end
			end
		end
	end

					for k, v in pairs(snowInfo) do
						if p > v[1] then
							p = v[1]
						end
					end

					for k, v in pairs(snowInfo) do
						if v[1] == p then
							doSendDistanceShoot(cidpos, v[2], CONST_ANI_SNOWBALL)
							addEvent(function() if v[3].itemid == 6610 then
													doSendMagicEffect(v[2], CONST_ME_POFF)
													doSendMagicEffect(v[2], 27)
												else
													doSendMagicEffect(v[2], CONST_ME_POFF)
												end
									end, 300)
							doTransformItem(v[3].uid, config[v[3].itemid], count)
							return true
						end
					end
	return true
end

 

 

Editado por Caronte
Link para o comentário
Compartilhar em outros sites

  • Administrador

Olha tem muita coisa que você olha e já pensa para que isso?? é desnecessário.

Mais isso é só uma critica construtiva.

Enfim ótima ideia continue assim e vai ajudar muita mais o ekstibia.

 

Essa voz e sua?e bem bonita hue.

 

Até mais.

 

É o garoto xtibia, @@Danihcv :plink:

 

@Topic

Script muito criativo, parabéns @@Caronte

Link para o comentário
Compartilhar em outros sites

 

É o garoto xtibia, @@Danihcv :plink:

 

@Topic

Script muito criativo, parabéns @@Caronte

Obrigado, tenho que pensar em mais jeitos para entreter os players para depois fazer mais scripts.

Melhor foi a Apresentação dele!! Muito bom...Parabéns!

Muito obrigado :D

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...