Fogo Dinâmico

Jvchequer
em Actions e Talkactions
  • 1
  • 2

Jvchequer

"Veni, vidi, vici."
avatar
Lenda
Lenda

INFOS

Grupo: LendaRegistrado: 10/10/05Posts: 2161Char no Tibia: Master Chequer

Créditos: newsoftzzz(pelo code) e SuperGillis(Pela Action recriando o Code)

 

O SuperGillis resolveu recriar o code do fogo dinâmico do newsoftzzz, porém, ao invés de fazer em C++ ele fez de um modo muito mais prático, em Lua.

 

Está é o Code Recriado pelo SuperGillis

 

Faça um arquivo chamado fire.lua e coloque-o em sua pasta Data.

Dentro do fire.lua deve conter o que está escrito abaixo.

dofile('data/wood.lua')

fires = {}

function addFire(pos, toItemId)
local fire = getFire(pos)
if fire ~= nil then
	transFormFire(fire, pos)
else
	local uid = doCreateItem(1489, 1, pos)
	if uid > 0 then
		local info = nil
		if burningStuff[toItemId] == nil then
			info = burningStuff[1]
		else
			info = burningStuff[toItemId]
		end
		fires[posToStr(pos)] = {interval = info[1], event = 0, continue = 1, running = 0, data = info}
		fires[posToStr(pos)].event = addEvent(checkFire, info[1], {pos = pos})
	end
end
return 1
end

function posToStr(pos)
return (pos.x..' '..pos.y..' '..pos.z)
end

function strToPos(str)
local firstPoint = string.find(str, ' ')
local secondPoint = string.find(str, ' ', firstPoint+1)
local outputPos = {x=0, y=0, z=0}
outputPos.x = tonumber(string.sub(str, 1, firstPoint-1))
outputPos.y = tonumber(string.sub(str, firstPoint+1, secondPoint-1))
outputPos.z = tonumber(string.sub(str, secondPoint+1))
return outputPos
end

function getFire(pos)
local fire = getThingfromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=2})
if fire ~= nil and isInArray({1487, 1488, 1489}, fire.itemid) == 1 then
	return fire
end
return nil
end

function transFormFire(fire, pos)
local toId = math.min(math.max(fire.itemid-1, 1487), 1489)
doTransformItem(fire.uid, toId)
return toId
end

function checkFire(vars)
if fires[posToStr(vars.pos)] == nil then
	return 0
end
local fire = getFire(vars.pos)
if fire == nil then
	return 0
end
if math.random(0, 100) < fires[posToStr(vars.pos)].data[3] then
	local randX = math.random(-1, 1)
	local randY = math.random(-1, 1)
	if randX == 0 and randY == 0 then
		transFormFire(fire, vars.pos)
	else
		local coX = vars.pos.x+randX
		local coY = vars.pos.y+randY
		local coZ = vars.pos.z
		local wood = getThingfromPos({x=coX, y=coY, z=coZ, stackpos=1})
		if wood == nil then
			return 0
		end
		if burningStuff[wood.itemid] ~= nil then
			addFire({x=coX, y=coY, z=coZ, stackpos=2}, wood.itemid)
		end
	end
end
if fires[posToStr(vars.pos)].running > fires[posToStr(vars.pos)].data[2]*1000 then
	print('[checkFire] Stopping!')
	local wood = getThingfromPos({x=vars.pos.x, y=vars.pos.y, z=vars.pos.z, stackpos=1})
	if wood ~= nil then
		fires[posToStr(vars.pos)].continue = 0
		doRemoveItem(wood.uid)
	end
	doDecayItem(fire.uid)
end
if fires[posToStr(vars.pos)].continue == 0 then
	fires[posToStr(vars.pos)] = nil
	return 0
end
if fire.itemid == 1487 then
	fires[posToStr(vars.pos)].running = fires[posToStr(vars.pos)].running+fires[posToStr(vars.pos)].data[1]
	--print('[checkFire] '..fires[posToStr(vars.pos)].running)
end
fires[posToStr(vars.pos)].event = addEvent(checkFire, fires[posToStr(vars.pos)].data[1], vars)
return 1
end

 

Faça um arquivo chamado wood.lua e coloque-o em sua pasta Data.

Dentro do fire.lua deve conter o que está escrito abaixo.

 

--[[ info
[id] = {check, burn, chance}

id = the id of the item that you want to be burnt
burn = after howmuch seconds (when the big flame started) must the item dissapear
chance = how big is the chance that the fire jumps to another burning item?
]]--

burningStuff = {
-- wet trees
[2700] = {2000, 30, 80},
[2700] = {2000, 30, 80},
[2701] = {2000, 30, 80},
[2702] = {2000, 30, 80},
[2703] = {2000, 30, 80},
[2704] = {2000, 30, 80},
[2705] = {2000, 30, 80},
[2706] = {2000, 30, 80},
[2707] = {2000, 30, 80},
[2708] = {2000, 30, 80},
[2711] = {2000, 30, 80},
[2712] = {2000, 30, 80},
-- dry trees
[2709] = {1500, 20, 85},
[2710] = {1500, 20, 85},
[2713] = {1500, 20, 85},
[2714] = {1500, 20, 85},
[2715] = {1500, 20, 85},
[2716] = {1500, 20, 85},
[2717] = {1500, 20, 85},
[2718] = {1500, 20, 85},
[2719] = {1500, 20, 85},
[2720] = {1500, 20, 85},
[2721] = {1500, 20, 85},
[2722] = {1500, 20, 85},
}

 

Depois adicione antes de tudo no global.lua o código a seguir.

dofile('data/fire.lua')

 

 

Você também poderá escolher vários itens para queimar as árvores adicionando-os a este código abaixo.

Depois de escolher os itens, ou deixar como realmente é só por o código abaixo no começo do fire.lua

 

function onUse(cid, item, frompos, item2, topos)
if isInArray({1488, 1489}, item2.itemid) or burningStuff[item2.itemid] ~= nil then
	return addFire(topos, item2.itemid)
end
return 0
end

 

 

Caso tenha algum erro de tradução feito por minha pessoa, por favor, me comunique.

Não dou Suporte.

 

 

Espero que aproveitem a Action,

 

Sem mais.

1271330714-U1306.gif

 

~ Fiz parte da Equipe Xtibia em um tempo que Tibia era minha família. Saudades de todos vocês.

BeoWulf

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 30/11/07Posts: 82

Nossa. que bacana. Pena que a minha equipe, Kingdom Age, já possuiu isto, em LUA também, mas muito bem feito e aprabéns a eles por divulgarem e criarem em lua, mais bem feito e menor.

Usuário Suspenso
Motivo: CONDE

Addict.

Shrimpzin

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 09/08/07Posts: 152

Não Entendi a Função Disso.

...chamaram Osama bin Laden de Terrorista...



...só que morreu bem mais gente na bomba de Hiroshima...

 

 

28 tipos de cocô!

Usando o banco tibiano

Felipe Moraes

Java Developer
avatar
Grão-Duque
Grão-Duque

INFOS

Grupo: Grão-DuqueRegistrado: 02/10/06Posts: 3285Gênero: Masculino

boa jv :D

deve ser bem manero isso ae

~A nossa maior glória não reside no fato de nunca cairmos, mas sim em levantarmo-nos sempre depois de cada queda.~

 

 

 

 

Clique aqui para ver meus tutoriais !

 

 

 

Gamertag: cpmoraes

 

 

Conde Sapo

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 14/08/07Posts: 322Char no Tibia: Conde Sapo (Secura)

sem comentários

só aplausos

aplauso.gif

 

 

 

:XTibia_smile:

-----------------------
-------------------------------


Encontro de Quake na minha Ex-LAN

odeio rapidshare

"Criticas enriquecem o trabalho dos inteligentes.
Os negligentes simplesmente as ignoram." - Conde Sapo

"A melhor recompensa do Mestre ,
é ver o Aluno superar as espectativas." - Conde Sapo



(finalmente me convenceram a fazer a Fan Bar)

Meus trabalhos :
\/------- Clicar

01 - Porta com chave numérica
02 - Efeito de MAR em movimento
03 - Fruta na Árvore (acrescentei arvore)
04 - NPC Messager
05 - Monstros Morrem Mas Nao Somem Do Mapa
06 - Simulando UnderWater
07 - SpellBook (Book 2175)
08 - CommandsSpellBook (Book 6120)
09 - Fixo: Tudo Sobre A Linguagem Lua
10 - Dice (Rolando os dados)
11 - Voodoo Skull (previsão da sorte do dia)
12 - Caça Niqueis
13 - Mapa-spawn.xml (Como funciona)
14 - Pendurando objetos na parede
15 - Santa Doll (Papai Noel)
16 - EuTeAmoVoce [Instant Spell]
17 - doSendAnimatedText (Todas as cores)
18 - NPC Banqueiro
19 - 8 Bichos (Massive Summon)
20 - Transformando Barril Simples em Barril de Mana Fluid
21 - Quebrando Itens Com Arma (Tirando BUG)
22 - Padre Marcelo (Totalmente REFEITO)
23 - Npc De Backpack ( Back Picka )
24 - Npc De Dolls ( Baby Doll )
25 - Fonte Da Juventude (Mana e Life)
26 - NPC que troca itens
27 - Removendo paredes com PAUSA, (efeito visual lindo)
28 - Halloween - Fazendo o PumpkinHead
29 - Halloween - Criando o monstro Halloween Hare
30 - Mapa pra fazer Testes (Sapo.otbm)
31 - Fishing Rod (Qualquer versão)
32 - Jungle Maw (planta que morde)
33 - Npc Stan (fantasias de Carnaval)
Clicar -------/\

speedyks

=]
avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 11/07/07Posts: 177Char no Tibia: Eorah Khaderu

Como disse nosso amigo Conde Sapo :D

So Aplausos >=D

 

aplauso.gif

Gift By: Slip



akamajpg.jpg

_ferrari_

avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 27/12/06Posts: 202
Não Entendi a Função Disso.

 

 

esse aqui ele poe fogo nas arvores e ele vai passando pras otras como um incendio

Objetivos:
50 posts [x]
100 posts[x]
200 posts[x]
500 posts[x]
"Um post em um fórum deve como uma saia. Longa o suficiente para cobrir o assunto, porém curta o suficiente para manter as coisas interessantes"
Gosta de mim? Foi com minha cara? Quer me matar? Use:

silkss

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 25/08/07Posts: 102

Legal! Assim da pra fazer o OT serve ficar muito mais realista! =D

 

Boa JV!

 

Cya


Malandro é o gato! ;}

Meus Trabalhos:


Sou Fan De:



Dias OTonwer

Onwando Seu OT ;)


"Tudo" pode estar dentro de uma spoiler. ;3



Conheça Mome City

Eu era o membro 27 mil e poco... Agora 61 mil! T_T =x

Jvchequer

"Veni, vidi, vici."
avatar
Lenda
Lenda

INFOS

Grupo: LendaRegistrado: 10/10/05Posts: 2161Char no Tibia: Master Chequer

Que bom que tenham gostados.

 

Fuçando na NET se pode achar várias coisas legais para os OTS ;D

1271330714-U1306.gif

 

~ Fiz parte da Equipe Xtibia em um tempo que Tibia era minha família. Saudades de todos vocês.

Alttli

Ex-Coordenador de Design
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 06/02/07Posts: 284

Isso é como se fosse um incêndio...

 

Mas em incêndios reais o fogo o faz a árvore desaparecer e sim faz ela virar carvão ;]

podia transformar as arvores nas arvores secas... seria melhor e mais legal..

"o último pingo é sempre da cueca."

somente se a tábua do vaso estiver levantada.

 

Não sei se com vocês também mas meus pingos de mijo não resistem a um assento abaixado.

 

 

Ththt

?
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 26/07/07Posts: 540Char no Tibia: Keni Daro

muito legal

eu estou viajando, quando eu voltar eu testo

Olá XTibiano:

Sua assinatura estava com um problema na TAG SPOILER e foi movida para a parte "Sobre mim".
Agradecemos a sua compreensão.

Atenciosamente,
JV Chequer

_ferrari_

avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 27/12/06Posts: 202

verdade poderia virar dead tree neh

Objetivos:
50 posts [x]
100 posts[x]
200 posts[x]
500 posts[x]
"Um post em um fórum deve como uma saia. Longa o suficiente para cobrir o assunto, porém curta o suficiente para manter as coisas interessantes"
Gosta de mim? Foi com minha cara? Quer me matar? Use:

Nostradamus

Serviços Prestados ao XTibia.com
avatar
Visconde
Visconde

INFOS

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

na verdade o newszoftzz não tem crédito algum pelo código, e sim pela idéia apenas. O código foi totalmente feito pelo SuperGillis.

[twitter]ThomazYuji[/twitter]

DeadKennedy

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 03/06/07Posts: 150

linkay

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 04/10/07Posts: 60Char no Tibia: Elder Linkay

:winksmiley02: Parabens

Otimo topico e o fogo tem um efeito bem legal

  • 1
  • 2