Ir para conteúdo
Entre para seguir isso  
dalvorsn

System of fire in forests

Recommended Posts

dalvorsn    46
dalvorsn

System of Fire in Forests

divisor.png

• Autor: Dalvo

• Versão testada: TFS 0.4_rev3884

• Descrição: O script como o próprio nome diz, é um sistema de incêndio em florestas, você da use com um item que tem a caracteristica useable no items.otb(que tem with chross hair) numa arvore que esteja configurada para queimar, ela começa a queimar e o fogo vai se alastrando para todas as arvores ao redor, numa distancia de 1sqm, e as arvores que forem sendo queimadas também alastram o fogo nas mesmas condições, até que acabem todas as arvores "coladas". Graças a um bug do tfs não ficou muito bonito o código, tive que trabalhar com posições para pegar uid, isso não foi muito legal, mas está bem funcional. O código é livre para uso de qualquer um, só peço que mantenham os créditos.

Obs.: Créditos a loManoMano(deragon) pela idéia do script.

 

--[[
#######################
# Script by dalvorsn  #
# Don't remove credits#
#######################
]]
local burningTrees = {
   -- [TreeId] = BurningTreeId,
   -- Examples
   [7024] = 2717, -- pine
   [2701] = 2719, -- sycamore
   [2704] = 2722  -- red maple
}
local delay = 1000 -- delay em ms entre as chamas




local var__ = 0
local function var()
   var__ = var__ + 1
   return var__
end


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


   if( burningTrees[itemEx.itemid] )then
       burnTree(getThingPosition(itemEx.uid), delay, itemEx.itemid)
   end
   var__ = 0
   return true
end


function getItemsAroundById(ItemIds, pos, rangex, rangey)
   local uids = {}
   for itemId in pairs(ItemIds) do
       for x = -rangex, rangex do
           for y = -rangey, rangey do
               local posi = {x = pos.x + x, y = pos.y + y, z = pos.z}
               local item = getTileItemById(posi, itemId)
               if item.uid > 0 and not (x == 0 and y == 0) and getItemAttribute(item.uid, "burned") ~= 1 then
                   table.insert(uids, {itemid = itemId, pos = posi})
               end
           end
       end
   end
   return uids
end


local function _doTransformItem(itemid, pos, toid)
   local _uid = getTileItemById(pos, itemid).uid
   doTransformItem(_uid, toid)
   return _uid
end




function burnTree(itemPos, delayFire, itemid)


   local smallFire, mediumFire, bigFire = 1489, 1488, 1492


   if var__ == 0 then
       doSendMagicEffect(itemPos, 36)
   end
   doItemSetAttribute(getTileItemById(itemPos, itemid).uid, "burned", 1)


   addEvent(doCreateItem, var() * delayFire, smallFire, itemPos)
   addEvent(_doTransformItem, var() * delayFire, smallFire, itemPos, mediumFire)
   addEvent(_doTransformItem, var() * delayFire, mediumFire, itemPos, bigFire)
   addEvent(_doTransformItem, var() * delayFire, itemid, itemPos, burningTrees[itemid])


   aroundTrees = getItemsAroundById(burningTrees, itemPos, 1,1)
   for _, tree in pairs(aroundTrees) do
       burnTree(tree.pos, delayFire, tree.itemid)
   end


   return true
end

 

 

 

Configuração

 

A configuração é bem simples, na tabela 'burningTrees' insira os items da seguinte forma:

 

local burningTrees = {
[color=#FF0000][TreeId][/color] = [color=#0000FF]BurningTreeId[/color],
}

[TreeId] - Aqui você coloca o id da arvore (ou item qualquer que queira que possa ser queimado).

BurningTreeId - Aqui você coloca o id que quer que fique para quando o item estiver queimado.

 

Pode também configurar o delay, ele é o intervalo entre as chamas, creio que do jeito que está ta legal, mas se quiserem mudar não tem problema.

Editado por dalvorsn

Compartilhar este post


Link para o post
vdzz    15
vdzz

Obrigado pela contribuição!

 

Aprovado&Movido.

Compartilhar este post


Link para o post
Convidado Valdemiro   
Convidado Valdemiro

script perfeito dalvo parabens ;)

Compartilhar este post


Link para o post
nailo    2
nailo

Wooow ! Vo pegar pra min õ/

Compartilhar este post


Link para o post
dalvorsn    46
dalvorsn
Obrigado pela contribuição!

 

Aprovado&Movido.

Ty flor

 

 

script perfeito dalvo parabens ;)

 

Obrigado ai drogadão

 

Wooow ! Vo pegar pra min õ/

 

A vontade :>

Compartilhar este post


Link para o post
Razar    0
Razar

Gostei.

Espero que continue fazendo diversos script's Dalvorsn.

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×