Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

Evento for fun para colocar no seu ot, quem é atingido pelo fogo morre, o último a sobreviver ganha.

 

O evento é automático, mas também possui um comando para dar inicio ao evento, só usar /firestart minutos

 

exemplo: /firestart 1

 

 

 

 

Fire_Storm_Event.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<mod name="Fire Storm Event" version="8.6" author="Vodkart" contact="" enabled="yes">
<config name="fire_config"><![CDATA[
Fire = {
	storages = {172354, 172355}, -- storage Count
	players = {min = 2, max = 50}, -- min, max players no evento
	minLevel = 20, -- level minimo para entrar no event
	rewards = {{2160,10},{2494,1}}, -- premios que vai receber
	timeToStartEvent = 30, -- segundos para começar o evento
	CheckTime = 5, -- time to check event
	teleport = {{x=158, y=53, z=7}, {x=189 , y=58, z=7}}, -- posição do teleport, posição para onde o jogador vai
	arena = {{x=186,y=54,z=7},{x=193,y=60,z=7}} -- posição começo e final da area
}
Fire_Days = {
	["Monday"] = {"13:00","18:00","20:00","22:00"},
	["Tuesday"] = {"13:00","18:00","20:00","22:00"},
	["Wednesday"] = {"13:00","18:00","20:00","22:00"},
	["Thursday"] = {"13:00","18:00","20:00","22:00"},
	["Friday"] = {"13:00","18:00","20:00","22:00"},
	["Saturday"] = {"13:00","18:00","20:00","22:00"},
	["Sunday"] = {"13:00","18:00","20:00","22:00"}
}
function removeFireTp()
	local t = getTileItemById(Fire.teleport[1], 1387).uid
	return t > 0 and doRemoveItem(t) and doSendMagicEffect(Fire.teleport[1], CONST_ME_POFF)
end
function ZerarStorFire()
	setGlobalStorageValue(Fire.storages[1], 0)
	setGlobalStorageValue(Fire.storages[2], 0)
end
function getPlayersInFireEvent()
	local t = {}
	for _, pid in pairs(getPlayersOnline()) do
		if isInRange(getPlayerPosition(pid), Fire.arena[1], Fire.arena[2]) then
			t[#t+1] = pid
		end
	end
	return t
end
function getFireRewards(cid, items)
	local backpack = doPlayerAddItem(cid, 1999, 1) -- backpackID
	for _, i_i in ipairs(items) do
		local item, amount = i_i[1],i_i[2]
		if isItemStackable(item) or amount == 1 then
			doAddContainerItem(backpack, item, amount)
		else
			for i = 1, amount do
				doAddContainerItem(backpack, item, 1)
			end
		end
	end
end
function doFireInArea(n)
	if #getPlayersInFireEvent() > 1 then
		for i = 1, n do
			local pos = {x=math.random(Fire.arena[1].x, Fire.arena[2].x), y=math.random(Fire.arena[1].y,Fire.arena[2].y), z=Fire.arena[1].z}
			local m = getTopCreature(pos).uid
			doSendDistanceShoot({x = pos.x - math.random(4, 6), y = pos.y - 5, z = pos.z}, pos, CONST_ANI_FIRE)
			addEvent(doSendMagicEffect, 150, pos, CONST_ME_HITBYFIRE)
			addEvent(doSendMagicEffect, 150, pos, CONST_ME_FIREAREA)
			if m ~= 0 and isPlayer(m) then
				doSendMagicEffect(getCreaturePosition(m), CONST_ME_FIREAREA)
				doCreatureSay(m, "Ooh Burn Burn", TALKTYPE_ORANGE_1)
				local corpse = doCreateItem(3058, 1, getPlayerPosition(m))
				doItemSetAttribute(corpse, "description", "You recognize " .. getCreatureName(m) .. ". He was killed by Fire Field.")
				doSendMagicEffect(getPlayerPosition(m), CONST_ME_POFF)
				doTeleportThing(m, getTownTemplePosition(getPlayerTown(m)))
				doPlayerSendTextMessage(m, MESSAGE_EVENT_ADVANCE, "[Fire Storm Event] You died burned out.")
			end
		end
		local x = 2700-(200*n)
		addEvent(doFireInArea, x <= 0 and 500 or x, n+1)
	elseif #getPlayersInFireEvent() == 1 then
		local cid = getPlayersInFireEvent()[1]
		doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
		getFireRewards(cid, Fire.rewards)
		doBroadcastMessage("Fire Storm Event have finished. The winner is ".. getCreatureName(cid).. ". Congratulations.", MESSAGE_EVENT_ADVANCE)
		ZerarStorFire()
	else
		doBroadcastMessage("No one Won the Fire Storm Event.", MESSAGE_EVENT_ADVANCE)
		ZerarStorFire()
	end
end
function CheckFireEvent(delay)
	if getGlobalStorageValue(Fire.storages[1]) ~= (Fire.players.max+1) then
		if delay > 0 and getGlobalStorageValue(Fire.storages[1]) < Fire.players.max then
			doBroadcastMessage("[Fire Stortm Event] Starting in " .. delay .. " minutes! The teleport will be closed when the event start!", MESSAGE_STATUS_WARNING)
		elseif delay == 0 and getGlobalStorageValue(Fire.storages[1]) < Fire.players.min then
			for _, cid in pairs(getPlayersInFireEvent()) do
				doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
			end
			removeFireTp()
			doBroadcastMessage("The Fire Storm event could not start because of to few players participating.\n At least " .. Fire.players.min .. " players is needed!", MESSAGE_STATUS_WARNING)
			ZerarStorFire()
		elseif delay == 0 and getGlobalStorageValue(Fire.storages[1]) >= Fire.players.min then
			removeFireTp()
			doBroadcastMessage("Good Lucky! The event will start on "..Fire.timeToStartEvent.." seconds. get ready!")
			addEvent(doFireInArea, Fire.timeToStartEvent*1000, 1)
		end
		addEvent(CheckFireEvent, 60000, delay-1)
	end
end
]]></config>
<globalevent name="Storm_Fire_Start" interval="60" event="script"><![CDATA[
domodlib('fire_config')
function onThink(interval, lastExecution)
	if Fire_Days[os.date("%A")] then
		local hrs = tostring(os.date("%X")):sub(1, 5)
		if isInArray(Fire_Days[os.date("%A")], hrs) and getGlobalStorageValue(Fire.storages[2]) <= 0 then
			local tp = doCreateItem(1387, 1, Fire.teleport[1])
			doItemSetAttribute(tp, "aid", 45111)
			CheckFireEvent(Fire.CheckTime)
			setGlobalStorageValue(Fire.storages[1], 0) 
		end
	end
	return true
end]]></globalevent>
<event type="login" name="Storm_Fire_Login" event="script"><![CDATA[
domodlib('fire_config')
function onLogin(cid)
	registerCreatureEvent(cid, "FireStormBatle")
	if isInRange(getPlayerPosition(cid), Fire.arena[1], Fire.arena[2]) then
		doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
	end
	return true
end]]></event>
<event type="combat" name="FireStormBatle" event="script"><![CDATA[
domodlib('fire_config')
if isPlayer(cid) and isPlayer(target) and isInRange(getPlayerPosition(cid), Fire.arena[1], Fire.arena[2]) then
	doPlayerSendCancel(cid, "You may not attack this player.")
	return false
end
return true
]]></event>
<movevent type="StepIn" actionid ="45111" event="script"><![CDATA[
domodlib('fire_config')
function onStepIn(cid, item, position, fromPosition)
	if not isPlayer(cid) then return true end
	if getPlayerAccess(cid) > 3 then return doTeleportThing(cid, Fire.teleport[2]) end
	if getPlayerLevel(cid) < Fire.minLevel then
		doTeleportThing(cid, fromPosition, true)
		doPlayerSendCancel(cid, "You need to be at least level " .. Fire.minLevel .. ".")
		doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
		return true
	end
	if getGlobalStorageValue(Fire.storages[1]) <= Fire.players.max then
		doTeleportThing(cid, Fire.teleport[2])
		setGlobalStorageValue(Fire.storages[1], getGlobalStorageValue(Fire.storages[1])+1)
		doBroadcastMessage(getPlayerName(cid) .. " entered the fire stortm event! Currently " .. getGlobalStorageValue(Fire.storages[1]) .. " players have joined!", MESSAGE_STATUS_CONSOLE_RED)
		if getGlobalStorageValue(Fire.storages[1]) == Fire.players.max then
			setGlobalStorageValue(Fire.storages[1], getGlobalStorageValue(Fire.storages[1])+1)
			removeFireTp()
			doBroadcastMessage("The event will start on "..Fire.timeToStartEvent.." seconds. get ready!")
			addEvent(doFireInArea, Fire.timeToStartEvent*1000, 1)
		end 
	end
	return true
end]]></movevent>
<talkaction words="/firestart;!firestart" access="5" event="buffer"><![CDATA[
domodlib('fire_config')
if getGlobalStorageValue(Fire.storages[2]) > 0 then
	doPlayerSendCancel(cid, "The event is already starting.") return true
elseif not param or not tonumber(param) then 
	doPlayerSendCancel(cid, "Use only numbers.") return true 
end
local param = tonumber(param) <= 0 and 1 or tonumber(param)
local tp = doCreateItem(1387, 1, Fire.teleport[1])
doItemSetAttribute(tp, "aid", 45111)
CheckFireEvent(tonumber(param))
setGlobalStorageValue(Fire.storages[1], 0)
setGlobalStorageValue(Fire.storages[2], 1)
]]></talkaction>
<globalevent name="FireDebug-Start" type="start" event="buffer"><![CDATA[
domodlib('fire_config')
ZerarStorFire()
return true]]></globalevent>
</mod>

 

A configuração está explicita na lib do mods... valeu!

 

fire lua.rar

vodkart_logo.png

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

 

DISCORDvodkart#6090

 

  • Respostas 53
  • Visualizações 8k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • seu serve deve ser em milesegundos   troque essa linha:   <globalevent name="Storm_Fire_Start" interval="60" event="script"><![CDATA[   por   <globaleve

  • @Vodkart vou testar ele jaja, mas to com uma duvida, no dia e o horario esta assim ["Monday"] = {"18:00","20:00","18:00"}, tem 2x o 18:00 foi erro de digitação ?

  • foi sim, nem vi que dupliquei kkkk valeu

Postado
  • Autor
1 hora atrás, Zzyzx disse:

@Vodkart vou testar ele jaja, mas to com uma duvida, no dia e o horario esta assim ["Monday"] = {"18:00","20:00","18:00"}, tem 2x o 18:00 foi erro de digitação ?

 

foi sim, nem vi que dupliquei kkkk valeu

vodkart_logo.png

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

 

DISCORDvodkart#6090

 

Postado
17 minutos atrás, Vodkart disse:

 

foi sim, nem vi que dupliquei kkkk valeu

vou descrever esse sistema em uma unica palavra "FODASTICOzero erro distro, zero erro no jogo, muito foda, obrigado por compartilhar ;)))

       112674.gif

 

 

 

Postado
2 horas atrás, Vodkart disse:

Evento for fun para colocar no seu ot, quem é atingido pelo fogo morre, o último a sobreviver ganha.

 

O evento é automático, mas também possui um comando para dar inicio ao evento, só usar /firestart minutos

 

exemplo: /firestart 1

 

 

 

 

Fire_Storm_Event.xml


<?xml version="1.0" encoding="ISO-8859-1"?>
<mod name="Fire Storm Event" version="8.6" author="Vodkart" contact="" enabled="yes">
<config name="fire_config"><![CDATA[
Fire = {
	storages = {172354, 172355}, -- storage Count
	players = {min = 2, max = 50}, -- min, max players no evento
	minLevel = 20, -- level minimo para entrar no event
	rewards = {{2160,10},{2494,1}}, -- premios que vai receber
	timeToStartEvent = 30, -- segundos para começar o evento
	CheckTime = 5, -- time to check event
	teleport = {{x=158, y=53, z=7}, {x=189 , y=58, z=7}}, -- posição do teleport, posição para onde o jogador vai
	arena = {{x=186,y=54,z=7},{x=193,y=60,z=7}} -- posição começo e final da area
}
Fire_Days = {
	["Monday"] = {"13:00","18:00","20:00","22:00"},
	["Tuesday"] = {"13:00","18:00","20:00","22:00"},
	["Wednesday"] = {"13:00","18:00","20:00","22:00"},
	["Thursday"] = {"13:00","18:00","20:00","22:00"},
	["Friday"] = {"13:00","18:00","20:00","22:00"},
	["Saturday"] = {"13:00","18:00","20:00","22:00"},
	["Sunday"] = {"13:00","18:00","20:00","22:00"}
}
function removeFireTp()
	local t = getTileItemById(Fire.teleport[1], 1387).uid
	return t > 0 and doRemoveItem(t) and doSendMagicEffect(Fire.teleport[1], CONST_ME_POFF)
end
function ZerarStorFire()
	setGlobalStorageValue(Fire.storages[1], 0)
	setGlobalStorageValue(Fire.storages[2], 0)
end
function getPlayersInFireEvent()
	local t = {}
	for _, pid in pairs(getPlayersOnline()) do
		if isInRange(getPlayerPosition(pid), Fire.arena[1], Fire.arena[2]) then
			t[#t+1] = pid
		end
	end
	return t
end
function getFireRewards(cid, items)
	local backpack = doPlayerAddItem(cid, 1999, 1) -- backpackID
	for _, i_i in ipairs(items) do
		local item, amount = i_i[1],i_i[2]
		if isItemStackable(item) or amount == 1 then
			doAddContainerItem(backpack, item, amount)
		else
			for i = 1, amount do
				doAddContainerItem(backpack, item, 1)
			end
		end
	end
end
function doFireInArea(n)
	if #getPlayersInFireEvent() > 1 then
		for i = 1, n do
			local pos = {x=math.random(Fire.arena[1].x, Fire.arena[2].x), y=math.random(Fire.arena[1].y,Fire.arena[2].y), z=Fire.arena[1].z}
			local m = getTopCreature(pos).uid
			doSendDistanceShoot({x = pos.x - math.random(4, 6), y = pos.y - 5, z = pos.z}, pos, CONST_ANI_FIRE)
			addEvent(doSendMagicEffect, 150, pos, CONST_ME_HITBYFIRE)
			addEvent(doSendMagicEffect, 150, pos, CONST_ME_FIREAREA)
			if m ~= 0 and isPlayer(m) then
				doSendMagicEffect(getCreaturePosition(m), CONST_ME_FIREAREA)
				doCreatureSay(m, "Ooh Burn Burn", TALKTYPE_ORANGE_1)
				local corpse = doCreateItem(3058, 1, getPlayerPosition(m))
				doItemSetAttribute(corpse, "description", "You recognize " .. getCreatureName(m) .. ". He was killed by Fire Field.")
				doSendMagicEffect(getPlayerPosition(m), CONST_ME_POFF)
				doTeleportThing(m, getTownTemplePosition(getPlayerTown(m)))
				doPlayerSendTextMessage(m, MESSAGE_EVENT_ADVANCE, "[Fire Storm Event] You died burned out.")
			end
		end
		local x = 2700-(200*n)
		addEvent(doFireInArea, x <= 0 and 500 or x, n+1)
	elseif #getPlayersInFireEvent() == 1 then
		local cid = getPlayersInFireEvent()[1]
		doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
		getFireRewards(cid, Fire.rewards)
		doBroadcastMessage("Fire Storm Event have finished. The winner is ".. getCreatureName(cid).. ". Congratulations.", MESSAGE_EVENT_ADVANCE)
		ZerarStorFire()
	else
		doBroadcastMessage("No one Won the Fire Storm Event.", MESSAGE_EVENT_ADVANCE)
		ZerarStorFire()
	end
end
function CheckFireEvent(delay)
	if getGlobalStorageValue(Fire.storages[1]) ~= (Fire.players.max+1) then
		if delay > 0 and getGlobalStorageValue(Fire.storages[1]) < Fire.players.max then
			doBroadcastMessage("[Fire Stortm Event] Starting in " .. delay .. " minutes! The teleport will be closed when the event start!", MESSAGE_STATUS_WARNING)
		elseif delay == 0 and getGlobalStorageValue(Fire.storages[1]) < Fire.players.min then
			for _, cid in pairs(getPlayersInFireEvent()) do
				doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
			end
			removeFireTp()
			doBroadcastMessage("The Fire Storm event could not start because of to few players participating.\n At least " .. Fire.players.min .. " players is needed!", MESSAGE_STATUS_WARNING)
			ZerarStorFire()
		elseif delay == 0 and getGlobalStorageValue(Fire.storages[1]) >= Fire.players.min then
			removeFireTp()
			doBroadcastMessage("Good Lucky! The event will start on "..Fire.timeToStartEvent.." seconds. get ready!")
			addEvent(doFireInArea, Fire.timeToStartEvent*1000, 1)
		end
		addEvent(CheckFireEvent, 60000, delay-1)
	end
end
]]></config>
<globalevent name="Storm_Fire_Start" interval="60" event="script"><![CDATA[
domodlib('fire_config')
function onThink(interval, lastExecution)
	if Fire_Days[os.date("%A")] then
		local hrs = tostring(os.date("%X")):sub(1, 5)
		if isInArray(Fire_Days[os.date("%A")], hrs) and getGlobalStorageValue(Fire.storages[2]) <= 0 then
			local tp = doCreateItem(1387, 1, Fire.teleport[1])
			doItemSetAttribute(tp, "aid", 45111)
			CheckFireEvent(Fire.CheckTime)
			setGlobalStorageValue(Fire.storages[1], 0) 
		end
	end
	return true
end]]></globalevent>
<event type="login" name="Storm_Fire_Login" event="script"><![CDATA[
domodlib('fire_config')
function onLogin(cid)
	registerCreatureEvent(cid, "FireStormBatle")
	if isInRange(getPlayerPosition(cid), Fire.arena[1], Fire.arena[2]) then
		doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
	end
	return true
end]]></event>
<event type="combat" name="FireStormBatle" event="script"><![CDATA[
domodlib('fire_config')
if isPlayer(cid) and isPlayer(target) and isInRange(getPlayerPosition(cid), Fire.arena[1], Fire.arena[2]) then
	doPlayerSendCancel(cid, "You may not attack this player.")
	return false
end
return true
]]></event>
<movevent type="StepIn" actionid ="45111" event="script"><![CDATA[
domodlib('fire_config')
function onStepIn(cid, item, position, fromPosition)
	if not isPlayer(cid) then return true end
	if getPlayerAccess(cid) > 3 then return doTeleportThing(cid, Fire.teleport[2]) end
	if getPlayerLevel(cid) < Fire.minLevel then
		doTeleportThing(cid, fromPosition, true)
		doPlayerSendCancel(cid, "You need to be at least level " .. Fire.minLevel .. ".")
		doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
		return true
	end
	if getGlobalStorageValue(Fire.storages[1]) <= Fire.players.max then
		doTeleportThing(cid, Fire.teleport[2])
		setGlobalStorageValue(Fire.storages[1], getGlobalStorageValue(Fire.storages[1])+1)
		doBroadcastMessage(getPlayerName(cid) .. " entered the fire stortm event! Currently " .. getGlobalStorageValue(Fire.storages[1]) .. " players have joined!", MESSAGE_STATUS_CONSOLE_RED)
		if getGlobalStorageValue(Fire.storages[1]) == Fire.players.max then
			setGlobalStorageValue(Fire.storages[1], getGlobalStorageValue(Fire.storages[1])+1)
			removeFireTp()
			doBroadcastMessage("The event will start on "..Fire.timeToStartEvent.." seconds. get ready!")
			addEvent(doFireInArea, Fire.timeToStartEvent*1000, 1)
		end 
	end
	return true
end]]></movevent>
<talkaction words="/firestart;!firestart" access="5" event="buffer"><![CDATA[
domodlib('fire_config')
if getGlobalStorageValue(Fire.storages[2]) > 0 then
	doPlayerSendCancel(cid, "The event is already starting.") return true
elseif not param or not tonumber(param) then 
	doPlayerSendCancel(cid, "Use only numbers.") return true 
end
local param = tonumber(param) <= 0 and 1 or tonumber(param)
local tp = doCreateItem(1387, 1, Fire.teleport[1])
doItemSetAttribute(tp, "aid", 45111)
CheckFireEvent(tonumber(param))
setGlobalStorageValue(Fire.storages[1], 0)
setGlobalStorageValue(Fire.storages[2], 1)
]]></talkaction>
<globalevent name="FireDebug-Start" type="start" event="buffer"><![CDATA[
domodlib('fire_config')
ZerarStorFire()
return true]]></globalevent>
</mod>

 

A configuração está explicita na lib do mods... valeu!

 

Sempre trazendo ótimos conteúdos em Vodkart!

Testado e aprovado!

Parabéns pelo trabalho :p

Estou sem REP hoje, mais depois volto e dou hehe 

Abraço

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo