Jump to content
Close
LeoTK

GlobalEvent [Sistema 0.3.6 - 8.54] Chuva Editado por LeoTK & NightWolf

Recommended Posts

Ficou perfeito esse rain system, parabéns pelo código!! Gostei mesmo, espero ver mais scripts seus daqui pra frente, você é o cara mesmo!



vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

Dota System 8.6 Com Buffs Automáticos + MAPA (100%) - PVP

Link para Downloadhttps://www.4shared.com/rar/SMta8CQ8fi/Dota_Venda.html?

[+]--------------------------------------[+]-------------------------------------------[+]

 

DISCORDvodkart#6090

 




Share this post


Link to post
Share on other sites

@Vodkart obrigado vod bom eu sempre tenho ajuda kkk e foi só uma modificação no script ali e outra aqui ^^ mesmo assim valeu xD





Share this post


Link to post
Share on other sites
21 horas atrás, LeoTK disse:

Salve galera bom tinha uns membros do fórum atrás do sistema de chuva porém estava confuso e totalmente configuravel apenas por math.random então com ajuda do @xWhiteWolf agora o script esta totalmente sem math.random e eu detalhei tudo dentro do script como configurar etc...

 

tópico original

 

Aviso 1º: Mude a tag do globalevents.xml para interval=1

Aviso 2º: Todas as explicações estão dentro do script basta ler

 

Vídeo demonstrativo

 

 

 

Vamos as modificações basicamente substitua o arquivo que fica em data/globalevents/scripts/rain.lua abra ele e cole esse código dentro
 

  Mostrar conteúdo oculto

 



---[[ RETIRADO O MATH.RANDOM BY LEOTK & NIGHTWOLF
-- minX e Y : Pegar a posição lado esquerda, cima
-- maxX e Y : Pegar a posição lado direito, baixo
-- Effects : Configurar o id dos efeitos distance e o pingo caindo e o effect e o pingo ao ter contato com uma superficie
-- Chuva de neve esta desativado para ativar basta remover os comentários
-- Retirado a função de criar poça de água também para ativar basta retirar o comentário
-- rain.chance : Quanto maior mais chuva quanto menor menos chuva
-- rain:start : os dois ultimos números configuraveis só ir testando vai mudar a quantidade da chuva e a força também
---]]

local rain = Rain:new()
 
function onThink(interval, lastExecution)
    local minX = 1024
    local minY = 1249
    local maxX = 1042
    local maxY = 1260
	
local frompos = {x=minX, y=minY, z=7}
local topos = {x=maxX, y=maxY, z=7}
 
    local effects = {
        snow = {
            disteffect = 150,
            effect = 254
        },
        rain = {
            disteffect = 185,
            effect = 131
 
        }
    }

		--rain.chance = math.random(10,50)
		--rain:start({fromPos = frompos, toPos = topos}, effects.snow, 300, math.random(100, 500))
	--else
		rain.chance = 650
		--rain.createItem = {chance = math.random(0,10), item = {itemid = 2016, type = 1}}
		rain:start({fromPos = frompos, toPos = topos}, effects.rain, 100, 100)
	return TRUE
end

 

 

 

 

Aproveitando fiz uma modificação na direção que a chuva cai caso quiser a modificação vá em data/globalevents/scripts/lib e abra o arquivo rain.lua e substitua tudo que tiver lá por esse código
 

  Mostrar conteúdo oculto

 



-- Features:
	-- chance = OBJECT.chance = INT
	-- createItem = OBJECT.createItem = {chance = INT, item = {itemid = INT, type = INT}}

---[[ EDITANDO O LADO DA CHUVA BY LEOTK
-- possivel editar o lado que a chuva vem alterando o +3 e -7
-- 	doSendDistanceShoot({x = position.x + 3, y = position.y - 7, z = Z}, {x = position.x, y = position.y, z = Z}, disteffect)
---]] 
 
Rain = {ignoreIds = {4526}}
 
function Rain:new()
    local obj = {}
    setmetatable(obj, self)
    self.__index = self
	return obj
end
function Rain:getPositionInArea(fromPos, toPos)
	self.positions = {}
	for Y = fromPos.y, toPos.y do
		for X = fromPos.x, toPos.x do
			if (getTileThingByPos({x=X, y=Y, z=7, stackpos=0}).itemid ~= 0) then
				if not (string.match(string.lower(getItemNameById(getTileThingByPos({x=X, y=Y, z=7, stackpos=0}).itemid)), "water")) then
					table.insert(self.positions, {x=X, y=Y, z=Z})
				end
			end
		end
	end
	return true
end
 
function Rain:doRain(position, disteffect, effect)
	if (self.duraction ~= self.executed) then
		local chance = self.chance or 100
		if (math.random(0, 1000) <= chance) then
			for Z = 0, 7 do
				if (getTileThingByPos(({x = position.x, y = position.y, z = Z})).itemid ~= 0) then
					doSendDistanceShoot({x = position.x + 3, y = position.y - 7, z = Z}, {x = position.x, y = position.y, z = Z}, disteffect)
					doSendMagicEffect({x = position.x, y = position.y, z = Z}, effect)
					if (self.createItem) then
						if (math.random(0, 1000) <= self.createItem.chance) then
							if (isInArray(self.ignoreIds, getTileThingByPos({x=X, y=Y, z=Z, stackpos=0}).itemid) == FALSE) then
								local item = doCreateItem(self.createItem.item.itemid, self.createItem.item.type, {x=position.x, y=position.y, z=Z})
								doDecayItem(item)
							end
						end
					end
					break
				end
			end
		end
		return true
	else
		return false
	end
end
 
function Rain:start(positions, effects, duraction, delay, var)
	self:getPositionInArea(positions.fromPos, positions.toPos)
	if not (self.positions[1]) then
		return false
	end
	self.delay = delay
	self.var = var or self
	self.effects = effects
	self.duraction = duraction
	self.executed = 0
	addEvent(doCallback, self.delay, {var=self.var})
	return true
end
 
function doCallback(p)
	for _, v in pairs(p.var.positions) do
		if not (p.var:doRain(v, p.var.effects.disteffect, p.var.effects.effect)) then
			return true
		end
	end
	addEvent(doCallback, p.var.delay, {var=p.var})
	p.var.executed = p.var.executed+1
end

 

 

 

 

 

Créditos:

@Guilherme.

@xWhiteWolf

@LeoTK

Elexonic (Otland)

 

Testei em 3 poketibias, Aconteceu nada. .-. 



                                                                             1535210279_tumblr_o9b6yoxM1Z1tco8kto1_500(3).gif.f527686e19da738322c39555244decac.gif

                                                             Meus tópicos         

                                                         Se ajudei você deixe seu Rep! para fortalecer a amizade ^^

                                                                              Vamos ajudar o fórum a crescer mais.

                                                                          1641206641_gif-escudo-fla-3d(1).gif.a5d3c0c24824d5272a181aa91c5eda0c.gif

                                                                                                Mengão porra! . .

                                                                     tumblr_oxm8eriUeU1sqwgnro2_400.gif.22e347b2fc58fdfd88dbf84f4bdaa1bc.gif

                                                                                ----- NPC que vende informação -----

                                                                           -----Baú Que dá Outfit se tiver Level -----

                                                                     ----- [Npc] Que vende Stones (itens) por diamonds -----

 

 

                                                                       

                       




Share this post


Link to post
Share on other sites

@Ayron5 o que eu fiz foi uma modificação vai no tópico original e instala e depois substitui os que eu editei





Share this post


Link to post
Share on other sites

Cara tu é cabeça dura demais kkk, parabéns funcionou direitinho !



function onLove()
if getPlayerTrueLove(girlfriend) then
doPlayerBeHappy(cid, true)
doRemoveVirginity(cid, true)
else
doSendCancel(cid,"you do not know how good it feels to be loved")
end end

;)

 




Share this post


Link to post
Share on other sites

é possível determinar onde deve chover ?


Edited by Radamanthys Wov (see edit history)



Share this post


Link to post
Share on other sites

@Radamanthys Wov claro apenas coloque a posição minX e minY seria a posição <<< /\ esquerda cima e a maxX e maxY seria a posição >>> \/ direita baixo





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.


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!

×
×
  • Create New...