Ir para conteúdo
  • Cadastre-se

Posts Recomendados

perfeito esse evento.... usarei com ctz!

 

(Sugestão: use o mapa de sua cidade ctrl+c + ctrl+v em outro local, personalize ela de uma forma "tenebrosa", fogo... destruição... bote no microondas e veja o resultado após 3 minutos).

"Lendas jamais voltam pois são apenas lendas. eu, eu sou real."

 

Attr:// [GM] Eddy

2013 ~ 2014 R.I.P

Kjc5D10.png

O retorno da lenda....

Link para o post
Compartilhar em outros sites
  • 1 month later...

Este evento está realmente bugado, Você consegue abrir somente uma vez, E a partir daí Diz: The event is already running 

 

Já tentei reiniciar o Servidor e nada, porem de qualquer forma, agradeço por postar. Adicione meu skype se puder me tirar algumas dúvidas.

 

Quanto ao Keylost1, Legal mano, Se o script é do cara ou não, Você percebeu que o tal "Demon" Em momento algum reclamou sobre copia de script aqui? Ao contrario ele não pediu remoção nem nada, Então pare de "Xilique", E vá lavar uma louça. 

 

Skype: dragondex2

Link para o post
Compartilhar em outros sites
  • 1 month later...

Desculpem reviver o poste,, alguem pode retirar 2 duvidas..

aqui funcionou perfeitamente,,

 

1- o evento rola durante 20 minutos, quando acaba o unico player vivo não recebeu os itens premiados de acordo com o evento

 

2 - quando o evento encerra ninguem e teletransportado para o templo???

 

alguem poderia ver essas 2 opcão mais rapido!!!

Link para o post
Compartilhar em outros sites
  • 1 month later...

Tem como colocar automatico ?

e quando starta o evento o tp nao aparece.(configurei certo)

Editado por cesarfilho55 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 2 weeks later...

 

Fala galerinha linda do TK, hoje estou trazendo um evento que andei modificando e otimizando, é o evento City WAR, este evento tem no servidor globalwar e outros.

A autoria vem de um membro da otland, portante havia o mesmo aqui em um datapack e decidi otimizar este evento para vocês do TK.

Observação: É um pouco parecido com o evento do meu amigo e scripter DuH, porém com mais funções e regras, mas o objetivo é praticamente o mesmo.

 

 

Como funciona:

 

Quando um GM executar o comando para abrir o evento, abrirá um teleport no lugar configurada onde os membros entraram em uma arena onde não perde level nem skills, o evento terá o tempo de 20 minutos (configurável), caso o player morra poderá voltar novamente pelo teleport que estará localizado no lugar até o termino do evento, a regra é clara produção, quando der os X minutos, o que mais matou levará para a casa backpack o prêmio do evento.

 

 

 

 

 

 

Vamos lá;

 

Primeiramente, em sua pasta data/lib crie um arquivo com o nome de city war.lua e dentro do mesmo coloque:

configCW = {timetostart = 500, -- tempo para iniciar o evento em segundos by Absolute
			telpos = {x=32340, y=32213, z=7}, -- onde aparecerá o teleport
			stats = 201201201701,
			kill = 201201201702,
			death = 201201201703,
			ostime =  201201201704,
			evttime = 20, -- quanto tempo irá rolar o evento
			topleftPos = {x=32722, y=31336, z=6}, -- canto esquerdo superior
			botrightPos = {x=32791, y=31384, z=6}, -- canto direito inferior
			templepos = {x=32369, y=32241, z=7}, -- posição do templo principal
			arenapos = {{x=32722, y=31340, z=6}, {x=32786, y=31336, z=6}, {x=32722, y=31380, z=6}, {x=32783, y=31374, z=6}}, -- posição dos 4 tronos
			times = 8, -- não precisa mexer
			finaltime = 300 -- não precisa mexer
}

function configCW:new()

local newevt = {}

setmetatable(newevt, self)
self.__index = self

doBroadcastMessage("The City War will be open in " .. self.timetostart .. " seconds.")
setGlobalStorageValue(self.stats, 0)
addEvent(function () newevt:start() end, self.timetostart*1000)
end

function configCW:start()

if getGlobalStorageValue(self.stats) == 0 then
	setGlobalStorageValue(self.ostime, os.time())
	local teleport = doCreateItem(1387, self.telpos)
	doItemSetAttribute(teleport, "aid", 5540)
	setGlobalStorageValue(self.stats, 1)
	doBroadcastMessage("The City War is starting...")
	for _, posi in pairs(self.arenapos) do
		local item = getTileItemById(posi, 1387)
		if(item.uid ~= 0) then
			doRemoveItem(item.uid)
		end
	end
	addEvent(function () self:preclose() end, self.evttime*1000*60)
	addEvent(function () self:announce(0) end, (self.evttime/self.times)*1000*60)
end

end

function configCW:announce(times)

if times < self.times then
	if #self:getTopFrags(true) >= 1 then 
		doBroadcastMessage("Top City War fraggers: " .. self:getTopFrags())
	end
	addEvent(function () self:announce(times+1) end, (self.evttime/self.times)*1000*60)
end

end

function configCW:preclose()

if getGlobalStorageValue(self.stats) == 1 then
	setGlobalStorageValue(self.stats, 2)
	doBroadcastMessage("The City War will end in " .. self.finaltime .. " seconds.")
	addEvent(function () self:close() end, self.finaltime*1000)
	local item = getTileItemById(self.telpos, 1387)
	if(item.uid ~= 0) then
		doRemoveItem(item.uid)
	end
end

end

function configCW:close()

if getGlobalStorageValue(self.stats) == 2 then
	if #self:getTopFrags(true) >= 1 then
		doBroadcastMessage("The City War has ended. The winners are: " .. self:getTopFrags())
	else
		doBroadcastMessage("The City War has ended. There were no winners.")
	end
	doRemovePlayersFromArea(self.topleftPos, self.botrightPos, self.templepos)
	for _, posi in pairs(self.arenapos) do
		doCreateTeleport(1387, self.templepos, posi)
	end
	for place, info in ipairs(self:getTopFrags(true)) do
		if place > 5 then
			break
		end
		local cid = getPlayerByName(info)
		doPlayerSendTextMessage(cid, 4, "Congratulations, you were the " .. place .. "º place in the City War.")
		doPlayerAddItem(cid, 6571, 1)
	end
	setGlobalStorageValue(self.stats, -1)
end

end

function configCW:isPlayerInEvent(cid)

if getPlayerStorageValue(cid, self.stats) == -1 or getPlayerStorageValue(cid, self.stats) - os.time() <= -5 or getGlobalStorageValue(self.stats) < 1 then
	return false
end

return true
end

function configCW:getTopFrags(tab)

local frag = {}

for _, pid in pairs(getPlayersOnline()) do
	if (getPlayerStorageValue(pid, self.kill) ~= -1 or getPlayerStorageValue(pid, self.death) ~= -1) and self:isPlayerInEvent(pid) then
		local kill =  getPlayerStorageValue(pid, self.kill)+1
		local death =  getPlayerStorageValue(pid, self.death)+1
		print(getCreatureName(pid), kill-death)
		table.insert(frag, {getCreatureName(pid), kill-death})
	end
end

print(#frag)
local frag, str, n = doOrderTab(frag, 0), nil, 5
print(#frag)

if tab then
	return frag
else
	if #frag < 5 then
		n = #frag
	end
	for i = 1, n do
		local cid = getPlayerByName(frag[i])
		local kill =  getPlayerStorageValue(cid, self.kill)+1
		local death =  getPlayerStorageValue(cid, self.death)+1
		str = str and str .. ", " .. frag[i] .. "[" .. kill .. "/" .. death .. "]" or frag[i] .. "[" .. kill .. "/" .. death .. "]"
	end
end

return str
end

function doOrderTab(tabela, value)

local max, index = {}, nil

for i = 1, #tabela do
	valor = value
	for a, b in ipairs(tabela) do
		if b[2] > valor then
			valor = b[2]
			valor2 = b[1]
			index = a
		end
	end
	table.remove(tabela, index)
	if valor ~= value then
		table.insert(max, valor2)
	end
end

return max
end

Configuração do arquivo:

telpos = {x=32340, y=32213, z=7}, -- POSIÇÃO ONDE NASCE O TP DO EVENTO!

topleftPos = {x=32722, y=31336, z=6}, -- AQUI COLOQUE A POSIÇÃO DO CANTO ESQUERDO LA EM CIMA DO MAPA
botrightPos = {x=32791, y=31384, z=6}, -- AQUI A POSIÇÃO DO CANTO DIREITO EM BAIXO DO MAPA
templepos = {x=32369, y=32241, z=7}, -- POSIÇÃO DO TEMPLO ONDE OS JOGADORES NASCERAM PÓS A MORTE
arenapos = {{x=32722, y=31340, z=6}, {x=32786, y=31336, z=6}, {x=32722, y=31380, z=6}, {x=32783, y=31374, z=6}}, --
ATENÇÃO, NO MAPA QUE ESTAREI DISPONIBILIZANDO VISIVELMENTE TERÁ 4 BASES, VOCÊ TERA QUE COLOCAR A POSIÇÃO DAS BASES AÍ NESSES 3 LUGARES.
 doPlayerAddItem(cid, 6571, 1) -- AQUI VOCÊ COLOCARÁ O PRÊMIO DO GANHADOR, NO CASO QUEIRA ADICIONAR POR EXEMPLO 1kk, COLOQUE 2160,1 - Primeiro ID depois quantia.
 
 
 
Segundo passo, crie um arquivo com o nome de citywarCreature.lua e coloque dentro da pasta creaturescripts/scripts com o seguinte conteúdo:
function onPrepareDeath(cid, lastHitKiller, mostDamageKiller)

if isInRange(getCreaturePosition(cid), configCW.topleftPos, configCW.botrightPos) then
	setPlayerStorageValue(cid, configCW.death, getPlayerStorageValue(cid, configCW.death) +1)
	setPlayerStorageValue(lastHitKiller[1], configCW.kill, getPlayerStorageValue(lastHitKiller[1], configCW.kill) +1)
end

return true
end

E adicione em creaturescripts.xml a seguinte tag

<event type="preparedeath" name="CityWar" event="script" value="citywarCreature.lua"/>
 
Terceiro passo, crie um arquivo em movements/scripts com o nome de citywarMovements.lua com o seguinte conteúdo:
function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition)

if isPlayer(cid) and getGlobalStorageValue(configCW.stats) == 1 then
	doTeleportThing(cid, configCW.arenapos[math.random(1, #configCW.arenapos)])
	doSendMagicEffect(getPlayerPosition(cid), 28)
	if not(configCW:isPlayerInEvent(cid)) then
		setPlayerStorageValue(cid, configCW.stats, getGlobalStorageValue(configCW.ostime) + configCW.evttime*60 + configCW.finaltime)
		setPlayerStorageValue(cid, configCW.kill, -1)
		setPlayerStorageValue(cid, configCW.death, -1)
	end
else
	doTeleportThing(cid, fromPosition)
end

return true
end
Em Movements.xml adicione a seguinte linha:
<movevent type="StepIn" actionid="5540" event="script" value="citywarMovements.lua"/>

Quarto e último passo, em talkactions/scripts crie um arquivo com o nome de citywarTalkactions.lua e coloque o seguinte conteúdo:

function onSay(cid, words, param)

if getGlobalStorageValue(configCW.stats) == -1 then
	configCW:new()
else
	doPlayerSendCancel(cid, "The event is already running.")
end

return true
end

Em talkactions/talkactions.xml adicione a seguinte linha:

<talkaction log="yes" words="/citywar" access="3" event="script" value="citywarTalkactions.lua"/>

E por fim, estou disponibilizando o world do evento, vocês usam se quiser, tentei adapta-lo para 8.6 mas ficou meio slá, o Viiting estava ocupado e não pode me ajudar, enfim segue a imagem e download do world.otbm:

 

HzeUTGJ.png

 
 

 
 
Lembrando que ninguém além do Collocorpusek da otland tem direito de pedir remoção do script, pois a base é dele.

 

 

Créditos:

Absolute

Collocor Gringo Lindo.

 

 

 

 

tem como por esse sistema no pokétibia?

Link para o post
Compartilhar em outros sites
  • 3 weeks later...

comigo eu abri o vento quando aparece o portal e entro no TP nao teleporta so da um efeito e continuo no msm lugar sobre o TP.

 

esperei terminar o tempo do evento ate aparecer a mensagem q nao havia nenhum vencedor, nada aconteceu, apenas um erro algo sobre doremoveplayerfromarena algo assim e nao consigo mais iniciar o evento :( tentei limpar as storages do banco de dados e nd :(

Editado por CoyoteStark (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 6 months later...

Aguem vivo aqui ainda ? preciso de ajuda nessa script , jah descobrir onde esta o erro porém nao sei resolvelo ... alguem pode me ajudar ?

Link para o post
Compartilhar em outros sites
  • 3 months later...

@Absolute

Poderia reupar o mapa para eu comecar a trabalhar na versão para TFS 1.2?

discord.pngDiscord: vankk #7765

Precisando de ajuda? Entre em contato comigo via Discord.

 

Muitos vêm seus muitos dias de glória, mas poucos vêm seus muitos dias de luta.

Link para o post
Compartilhar em outros sites
  • 2 months later...
On 6/11/2014, 8:06:03, Absolute said:

Fala galerinha linda do TK, hoje estou trazendo um evento que andei modificando e otimizando, é o evento City WAR, este evento tem no servidor globalwar e outros.

A autoria vem de um membro da otland, portante havia o mesmo aqui em um datapack e decidi otimizar este evento para vocês do TK.

Observação: É um pouco parecido com o evento do meu amigo e scripter DuH, porém com mais funções e regras, mas o objetivo é praticamente o mesmo.

 

 

Como funciona:

 

 

 

Hidden Content

 

 

 

 

 

 

 

Vamos lá;

 

Primeiramente, em sua pasta data/lib crie um arquivo com o nome de city war.lua e dentro do mesmo coloque:


configCW = {timetostart = 500, -- tempo para iniciar o evento em segundos by Absolute
			telpos = {x=32340, y=32213, z=7}, -- onde aparecerá o teleport
			stats = 201201201701,
			kill = 201201201702,
			death = 201201201703,
			ostime =  201201201704,
			evttime = 20, -- quanto tempo irá rolar o evento
			topleftPos = {x=32722, y=31336, z=6}, -- canto esquerdo superior
			botrightPos = {x=32791, y=31384, z=6}, -- canto direito inferior
			templepos = {x=32369, y=32241, z=7}, -- posição do templo principal
			arenapos = {{x=32722, y=31340, z=6}, {x=32786, y=31336, z=6}, {x=32722, y=31380, z=6}, {x=32783, y=31374, z=6}}, -- posição dos 4 tronos
			times = 8, -- não precisa mexer
			finaltime = 300 -- não precisa mexer
}

function configCW:new()

local newevt = {}

setmetatable(newevt, self)
self.__index = self

doBroadcastMessage("The City War will be open in " .. self.timetostart .. " seconds.")
setGlobalStorageValue(self.stats, 0)
addEvent(function () newevt:start() end, self.timetostart*1000)
end

function configCW:start()

if getGlobalStorageValue(self.stats) == 0 then
	setGlobalStorageValue(self.ostime, os.time())
	local teleport = doCreateItem(1387, self.telpos)
	doItemSetAttribute(teleport, "aid", 5540)
	setGlobalStorageValue(self.stats, 1)
	doBroadcastMessage("The City War is starting...")
	for _, posi in pairs(self.arenapos) do
		local item = getTileItemById(posi, 1387)
		if(item.uid ~= 0) then
			doRemoveItem(item.uid)
		end
	end
	addEvent(function () self:preclose() end, self.evttime*1000*60)
	addEvent(function () self:announce(0) end, (self.evttime/self.times)*1000*60)
end

end

function configCW:announce(times)

if times < self.times then
	if #self:getTopFrags(true) >= 1 then 
		doBroadcastMessage("Top City War fraggers: " .. self:getTopFrags())
	end
	addEvent(function () self:announce(times+1) end, (self.evttime/self.times)*1000*60)
end

end

function configCW:preclose()

if getGlobalStorageValue(self.stats) == 1 then
	setGlobalStorageValue(self.stats, 2)
	doBroadcastMessage("The City War will end in " .. self.finaltime .. " seconds.")
	addEvent(function () self:close() end, self.finaltime*1000)
	local item = getTileItemById(self.telpos, 1387)
	if(item.uid ~= 0) then
		doRemoveItem(item.uid)
	end
end

end

function configCW:close()

if getGlobalStorageValue(self.stats) == 2 then
	if #self:getTopFrags(true) >= 1 then
		doBroadcastMessage("The City War has ended. The winners are: " .. self:getTopFrags())
	else
		doBroadcastMessage("The City War has ended. There were no winners.")
	end
	doRemovePlayersFromArea(self.topleftPos, self.botrightPos, self.templepos)
	for _, posi in pairs(self.arenapos) do
		doCreateTeleport(1387, self.templepos, posi)
	end
	for place, info in ipairs(self:getTopFrags(true)) do
		if place > 5 then
			break
		end
		local cid = getPlayerByName(info)
		doPlayerSendTextMessage(cid, 4, "Congratulations, you were the " .. place .. "º place in the City War.")
		doPlayerAddItem(cid, 6571, 1)
	end
	setGlobalStorageValue(self.stats, -1)
end

end

function configCW:isPlayerInEvent(cid)

if getPlayerStorageValue(cid, self.stats) == -1 or getPlayerStorageValue(cid, self.stats) - os.time() <= -5 or getGlobalStorageValue(self.stats) < 1 then
	return false
end

return true
end

function configCW:getTopFrags(tab)

local frag = {}

for _, pid in pairs(getPlayersOnline()) do
	if (getPlayerStorageValue(pid, self.kill) ~= -1 or getPlayerStorageValue(pid, self.death) ~= -1) and self:isPlayerInEvent(pid) then
		local kill =  getPlayerStorageValue(pid, self.kill)+1
		local death =  getPlayerStorageValue(pid, self.death)+1
		print(getCreatureName(pid), kill-death)
		table.insert(frag, {getCreatureName(pid), kill-death})
	end
end

print(#frag)
local frag, str, n = doOrderTab(frag, 0), nil, 5
print(#frag)

if tab then
	return frag
else
	if #frag < 5 then
		n = #frag
	end
	for i = 1, n do
		local cid = getPlayerByName(frag[i])
		local kill =  getPlayerStorageValue(cid, self.kill)+1
		local death =  getPlayerStorageValue(cid, self.death)+1
		str = str and str .. ", " .. frag[i] .. "[" .. kill .. "/" .. death .. "]" or frag[i] .. "[" .. kill .. "/" .. death .. "]"
	end
end

return str
end

function doOrderTab(tabela, value)

local max, index = {}, nil

for i = 1, #tabela do
	valor = value
	for a, b in ipairs(tabela) do
		if b[2] > valor then
			valor = b[2]
			valor2 = b[1]
			index = a
		end
	end
	table.remove(tabela, index)
	if valor ~= value then
		table.insert(max, valor2)
	end
end

return max
end

Configuração do arquivo:

telpos = {x=32340, y=32213, z=7}, -- POSIÇÃO ONDE NASCE O TP DO EVENTO!

topleftPos = {x=32722, y=31336, z=6}, -- AQUI COLOQUE A POSIÇÃO DO CANTO ESQUERDO LA EM CIMA DO MAPA
botrightPos = {x=32791, y=31384, z=6}, -- AQUI A POSIÇÃO DO CANTO DIREITO EM BAIXO DO MAPA
templepos = {x=32369, y=32241, z=7}, -- POSIÇÃO DO TEMPLO ONDE OS JOGADORES NASCERAM PÓS A MORTE
arenapos = {{x=32722, y=31340, z=6}, {x=32786, y=31336, z=6}, {x=32722, y=31380, z=6}, {x=32783, y=31374, z=6}}, --
ATENÇÃO, NO MAPA QUE ESTAREI DISPONIBILIZANDO VISIVELMENTE TERÁ 4 BASES, VOCÊ TERA QUE COLOCAR A POSIÇÃO DAS BASES AÍ NESSES 3 LUGARES.
 doPlayerAddItem(cid, 6571, 1) -- AQUI VOCÊ COLOCARÁ O PRÊMIO DO GANHADOR, NO CASO QUEIRA ADICIONAR POR EXEMPLO 1kk, COLOQUE 2160,1 - Primeiro ID depois quantia.
 
 
 
Segundo passo, crie um arquivo com o nome de citywarCreature.lua e coloque dentro da pasta creaturescripts/scripts com o seguinte conteúdo:

function onPrepareDeath(cid, lastHitKiller, mostDamageKiller)

if isInRange(getCreaturePosition(cid), configCW.topleftPos, configCW.botrightPos) then
	setPlayerStorageValue(cid, configCW.death, getPlayerStorageValue(cid, configCW.death) +1)
	setPlayerStorageValue(lastHitKiller[1], configCW.kill, getPlayerStorageValue(lastHitKiller[1], configCW.kill) +1)
end

return true
end

E adicione em creaturescripts.xml a seguinte tag


<event type="preparedeath" name="CityWar" event="script" value="citywarCreature.lua"/>
 
Terceiro passo, crie um arquivo em movements/scripts com o nome de citywarMovements.lua com o seguinte conteúdo:

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition)

if isPlayer(cid) and getGlobalStorageValue(configCW.stats) == 1 then
	doTeleportThing(cid, configCW.arenapos[math.random(1, #configCW.arenapos)])
	doSendMagicEffect(getPlayerPosition(cid), 28)
	if not(configCW:isPlayerInEvent(cid)) then
		setPlayerStorageValue(cid, configCW.stats, getGlobalStorageValue(configCW.ostime) + configCW.evttime*60 + configCW.finaltime)
		setPlayerStorageValue(cid, configCW.kill, -1)
		setPlayerStorageValue(cid, configCW.death, -1)
	end
else
	doTeleportThing(cid, fromPosition)
end

return true
end
Em Movements.xml adicione a seguinte linha:

<movevent type="StepIn" actionid="5540" event="script" value="citywarMovements.lua"/>

Quarto e último passo, em talkactions/scripts crie um arquivo com o nome de citywarTalkactions.lua e coloque o seguinte conteúdo:


function onSay(cid, words, param)

if getGlobalStorageValue(configCW.stats) == -1 then
	configCW:new()
else
	doPlayerSendCancel(cid, "The event is already running.")
end

return true
end

Em talkactions/talkactions.xml adicione a seguinte linha:


<talkaction log="yes" words="/citywar" access="3" event="script" value="citywarTalkactions.lua"/>

E por fim, estou disponibilizando o world do evento, vocês usam se quiser, tentei adapta-lo para 8.6 mas ficou meio slá, o Viiting estava ocupado e não pode me ajudar, enfim segue a imagem e download do world.otbm:

 

 

 

Hidden Content

 
 
Lembrando que ninguém além do Collocorpusek da otland tem direito de pedir remoção do script, pois a base é dele.
 
 

Créditos:
Absolute
Collocor Gringo Lindo.

 

 

 

 

 

 

Absolut, O evento acabou com dois players, e nenhum deles ganhou o evento, disse que não te vencedores, outra coisa além disto é a questão de um erro que está acontecendo na distro, os players não são teleportados de volta para o templo.

 

e belo script

 

abraços e agradeço pelo suporte

Link para o post
Compartilhar em outros sites
  • 6 months later...
  • 2 months later...
  • 2 months later...
  • 2 weeks later...

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por Xagah
      Olá, bom dia a todos.
       
      Como tenho visto muitíssimos pedidos neste sentido, lhes apresento o LMS - Last Man Standing com BroadCast




       
    • Por Leohige
      Evento Loteria 
       
       
      Esse evento loteria é diferente dos demais que existem hoje nos servidores, é baseado em cima de um evento que ocorre no CraftLandia (um servidor de Minecraft).
      Quando o evento for iniciado o jogador poderá pagar um valor (configurável) para tentar acertar o número premiado (que vai de 1 até o número configurado). O evento tem um tempo de duração (configurável) e o primeiro jogador a acertar qual é o número premiado levará um premio em dinheiro (configurável) e o evento será encerrado.
       
      Demonstrações:
       
       
       
       
      Comandos:
       
       
      Configuração:
       
       
      Caso queira implementar este evento em seu servidor, crie os arquivos abaixo.
       
      data/lib/lottery/event.lua (as configurações ficam neste arquivo)
       
       
      data/globalevents/scripts/lottery.lua
       
       
      data/globalevents/globalevents.xml
       
      você pode por com um intervalo de tempo
       
       
      ou horário fixo
       
       
      data/talkactions/scripts/lottery.lua
       
       
      data/talkactions/talkactions.xml
       
       
      Tradução para PT-BR!
       
      Caso deseje traduzir o evento, substitua o Lottery.messages inteiro em data/lib/lottery/event.lua por este
       
       
      Qualquer problema, sugestão, bug ou dúvida utilize este tópico!!!
    • Por Killua
      Últimas atualizações:
       
      16/12/2013:
       
       


       
       
      Introdução:
       
       
      Este é o meu já conhecido evento Blood Castle Automático que estava em outro fórum que acabou. Estou trazendo ele aqui para que ele não "morra".
       
       
       
       
      Informações:  
       
      #Dica: Acho que fica legal o premio do evento ser um item que da double exp por um tempo.
       
       
      Atualização [12/04/2014]
       
       
      Resolvi refazer o código, para facilitar a instalação e melhorar o funcionamento do evento.
       
       
      O que mudou?
       
       
       
       
       
      Instalando o evento:
       
      Lib:
       


       
       
      Movements: 
       


       
       
       
      Creaturescripts: 
       


       
      Monsters: 
       

          O evento pode acontecer de duas maneiras: automática ou manualmente. Vou por as duas possibilidades:     Automática:   

       
       
      Manual:
       


       
       
      Como Configurar:
       
       
      * Se você for colocar, dentro do evento, um teleporte para as pessoas que não quiserem mais participar, coloque o Action ID 9371 nele.
       
       
      * Lembre-se de por NO-LOGOUT tool e NO-PVP tool em toda área do evento!!
       
       
      Todas as demais explicações estão na lib, mas vou demonstrar como configurar os mais "confusos".
       
       
      No modo automático, você configura de quanto em quanto o tempo o evento vai acontecer. Nessa tag:
      <globalevent name="Blood Castle" interval="3600" event="script" value="BloodGlobalEvent.lua"/> Aqui está 3600 segundos, ou seja, 1 hora.
      * Se seu servidor for em milisegundos, multiplique o número por 1000, assim: 3600 segundos * 1000 = 3600000 milisegundos = 1 hora.
       
      No modo manual, para iniciar o evento, basta usar a talkaction /blood-start com seu god.
       
       
      Em posGuarda, vc deve colocar a posicao do Guarda do Portao, como mostrado abaixo:  
        As posPedras são onde ficam as pedras que tampam a passagem enquanto o evento não esta aberto, conforme na imagem abaixo:  
        Em estátua, vc deve colocar a posição em que o arcanjo vai ser criado, conforme na imagem abaixo:  

        Nas posParedes, vc deve por a posição das paredes que bloqueiam a entrada do castelo e que são removidas quando o guarda morre, conforme abaixo:  
        Em fromPos e toPos, você vai por o canto superior esquerdo e o canto inferior direito do mapa do seu evento, respectivamente. Dessa maneira:  
        As outras configurações eu acredito que já estejam bem explicadas.     Espero que gostem dessa nova versão. Recomendo a todos que já usam o evento, reinstalar com essa nova versão.   Qualquer dúvida ou bug, postem que irei responder.
    • Por King Laker
      Olá, passei um tempo procurando este script até que um amigo do TK disponibilizou (credito no fim do post)
      Edit1: O evento funciona assim, o evento começa as 14:00:00 para inscrições realizando as inscrições você é levado para sala de espera (coloque no-logout e protection) onde você tera de esperar 5 minutos passado os 5 minutos todos na sala de espera serão teleportados para uma arena que você pode fazer facilmente e configurar conforme explicado na script --> apenas lembre de colocar o no-logout e pvp tool na arena.
      (As 13:59:00 vai aparecer um broadcast dizendo que o Npc PvP irá aparecer em 1 minutos que você terá então 5 minutos para se inscrever com o custo de 10k (configurável na script do actions) a área onde o npc nasce é configurável, o npc sumirá após 6 minutos (1 minuto depois do inicio da matança)-) 
      O ultimo vivo na arena terá de clicar na alavanca e será teleportado para o templo (coordenadas configuráveis) ganhando o devido premio do evento (configuravel na script do actions).
      Vamos lá:

      data/lib adicione um arquivo .lua e renomeie para Torneio.lua e coloque dentro
       
      vai em Globalevents adicione Torneio.lua e dentro dele coloque
       
      (se sua versão é em millisegundos então mude para)
       
      Adicione a tag em globalevents.xml
       
      se seu servidor for em millisegundos:
       
      vai em Actions adicione Torneio.lua e dentro:
      Atenção: Voce faz uma area do Torneio no Map editor e Coloca PVP-Zone e no-logout no Mapa editor e coloca uma Alavanca com a uniqueid "18279" e actionid "18279" antes verifique se não tem a action e unique id no seu servidor com o mesmo numero (18279) [ a alavanca serve para quando o ultimo player vivo no evento volte para o templo e receba os premios]
       
      Em Actions.xml adcione a tag 
       
      Agora o NPC TORNEIO em  data/NPC adicione um xml, renomeie para o nome torneio.xml (pode mudar mais tarde, se não souber oque esta fazendo não mexa)
       
      em NPC/SCRIPTS/torneio.lua
       
      LEIA:
       
      ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       
      aqui um script que achei no TK que você pode usar no seu evento, ele faz o npc aparecer 1 minuto depois do horario marcado na posição que você quiser, com um broadcast dizendo que ele esta chegando. (é bom para dizer que o evento esta começando)
      vá em globalevents.xml e adicione a tag
      Dica: Coloque 1 minuto antes do inicio do evento (configuravel no lib/torneio.lua) no meu caso seria as 12:00:00 hrs (meio dia)
       
      se o seu servidor não for millisegundos use
       
      va em globalevents/scripts e crie um arquivo .lua com o nome de npcpvp
       
      se o seu servidor não for em millisegundos use assim:
       

      Creditos:
      @J.L por disponibilizar os script do Evento PvP.
      @Stigal por disponibilizar o script do Npc que aparece sozinho na hr marcada.
      @King Laker por editar e mesclar os scripts.
    • Por Absolute
      Olá TKzianos de plantão rs!
      Trago hoje um evento criado pelo mestre Collor e modificado por mim! É o evento RAIN ITEMS! O Nome já diz tudo, nada melhor para os players do que chover items não é? rs.
       

       

       
       
       
      Como funciona?
      Em dias marcados irá ocorrer uma chuva de determinados items (configuráveis). 
      Os Items irão cair em X posições que você irá configurar no sistema.
      Os players terão de ser ágeis para coletar o item em sua backpack.
       
       
       
      Vamos ao que interessa!
       
      Em data/mods crie um arquivo com o nome de w-rainItems.xml e dentro coloque o seguinte conteúdo:
      <?xml version="1.0" encoding="UTF-8"?> <mod name="Rain Item" version="1.0.0" author="Collor/Abs" contact="lu.lukinha" enabled="yes"> <config name="config_rain_item"> <![CDATA[ configRainItem = { days = { ['Monday'] = {'11:00:20', '19:00:20'}, ['Tuesday'] = {'11:00:20', '19:00:20'}, ['Wednesday'] = {'11:00:20', '19:00:20'}, ['Thursday'] = {'11:00:20', '19:00:20'}, ['Friday'] = {'11:00:10', '19:00:20'}, ['Saturday'] = {'11:00:00', '19:00:20'}, ['Sunday'] = {'11:00:20', '19:00:30'} }, items = { 2644, -- king 9778, -- yalaha mask 8865, -- dark lords cape 8890, -- robe of the underworld 3983, -- bast skirt 9933, -- firewalker boots 7735, -- star wand 2640, -- softy 9693, -- addon 8306, -- remover 2506, -- dragon scale helmet 8888, -- master archers armor 9777, -- yalahari leg piece 8850, -- chain bolter 6433, -- necromancer shield 8903, -- spellbook of lost souls 2496, -- horned helmet 9776, -- yalahari armor 2469, -- dragon scale legs 6391, -- nightmare shield 8925, -- solar 7422, -- jade hammer 2390, -- mls 7722, -- stamina 8300, -- upgrade 8266, -- koshei 2346 -- 100pkt }, positions = { {x=997, y=981, z=7}, {x=998, y=981, z=7}, {x=999, y=981, z=7}, {x=1000, y=981, z=7}, {x=1001, y=981, z=7}, {x=1002, y=981, z=7}, {x=997, y=982, z=7}, {x=998, y=982, z=7}, {x=999, y=982, z=7}, {x=1000, y=982, z=7}, {x=1001, y=982, z=7}, {x=1002, y=982, z=7}, {x=997, y=983, z=7}, {x=998, y=983, z=7}, {x=999, y=983, z=7}, {x=1000, y=983, z=7}, {x=1001, y=983, z=7}, {x=997, y=984, z=7}, {x=999, y=984, z=7}, {x=1000, y=984, z=7}, {x=1001, y=984, z=7}, {x=1002, y=984, z=7}, {x=994, y=985, z=7}, {x=995, y=985, z=7}, {x=996, y=985, z=7}, {x=997, y=985, z=7}, {x=998, y=985, z=7}, {x=999, y=985, z=7}, {x=1000, y=985, z=7}, {x=1001, y=985, z=7}, {x=1002, y=985, z=7}, {x=1003, y=985, z=7}, {x=1004, y=985, z=7}, {x=1005, y=985, z=7}, {x=1006, y=985, z=7}, {x=994, y=986, z=7}, {x=995, y=986, z=7}, {x=996, y=986, z=7}, {x=997, y=986, z=7}, {x=998, y=986, z=7}, {x=999, y=986, z=7}, {x=1000, y=986, z=7}, {x=1001, y=986, z=7}, {x=1002, y=986, z=7}, {x=1003, y=986, z=7}, {x=1004, y=986, z=7}, {x=1005, y=986, z=7}, {x=1006, y=986, z=7}, {x=996, y=987, z=7}, {x=996, y=988, z=7}, {x=996, y=989, z=7}, {x=996, y=990, z=7}, {x=996, y=991, z=7}, {x=996, y=992, z=7}, {x=996, y=993, z=7}, {x=1003, y=987, z=7}, {x=1003, y=988, z=7}, {x=1003, y=989, z=7}, {x=1003, y=990, z=7}, {x=1003, y=991, z=7}, {x=1003, y=992, z=7}, {x=1003, y=993, z=7}, {x=996, y=994, z=7}, {x=997, y=994, z=7}, {x=998, y=994, z=7}, {x=1001, y=994, z=7}, {x=1002, y=994, z=7}, {x=1003, y=994, z=7}, {x=996, y=995, z=7}, {x=997, y=995, z=7}, {x=998, y=995, z=7}, {x=999, y=995, z=7}, {x=1000, y=995, z=7}, {x=1001, y=995, z=7}, {x=1002, y=995, z=7}, {x=1003, y=995, z=7}, {x=996, y=996, z=7}, {x=997, y=996, z=7}, {x=998, y=996, z=7}, {x=1001, y=996, z=7}, {x=1002, y=996, z=7}, {x=1003, y=996, z=7}, {x=996, y=997, z=7}, {x=997, y=997, z=7}, {x=998, y=997, z=7}, {x=999, y=997, z=7}, {x=1000, y=997, z=7}, {x=1001, y=997, z=7}, {x=1002, y=997, z=7}, {x=1003, y=997, z=7}, {x=996, y=998, z=7}, {x=997, y=998, z=7}, {x=998, y=998, z=7}, {x=999, y=998, z=7}, {x=1001, y=998, z=7}, {x=1002, y=998, z=7}, {x=1003, y=998, z=7}, {x=996, y=999, z=7}, {x=998, y=999, z=7}, {x=999, y=999, z=7}, {x=1001, y=999, z=7}, {x=1002, y=999, z=7}, {x=1003, y=999, z=7}, {x=996, y=1000, z=7}, {x=997, y=1000, z=7}, {x=998, y=1000, z=7}, {x=999, y=1000, z=7}, {x=1001, y=1000, z=7}, {x=1002, y=1000, z=7}, {x=1003, y=1000, z=7}, {x=996, y=1001, z=7}, {x=997, y=1001, z=7}, {x=998, y=1001, z=7}, {x=999, y=1001, z=7}, {x=1000, y=1001, z=7}, {x=1001, y=1001, z=7}, {x=1002, y=1001, z=7}, {x=1003, y=1001, z=7}, {x=996, y=1002, z=7}, {x=997, y=1002, z=7}, {x=998, y=1002, z=7}, {x=999, y=1002, z=7}, {x=1000, y=1002, z=7}, {x=1001, y=1002, z=7}, {x=1002, y=1002, z=7}, {x=1003, y=1002, z=7}, {x=998, y=1003, z=7}, {x=999, y=1003, z=7}, {x=1000, y=1003, z=7}, {x=1001, y=1003, z=7}, {x=1002, y=1003, z=7}, {x=1003, y=1003, z=7}, {x=990, y=998, z=7}, {x=991, y=998, z=7}, {x=991, y=999, z=7}, {x=992, y=999, z=7}, {x=991, y=1000, z=7}, {x=992, y=1000, z=7}, {x=993, y=1000, z=7}, {x=994, y=1000, z=7}, {x=995, y=1000, z=7}, {x=982, y=1001, z=7}, {x=983, y=1001, z=7}, {x=984, y=1001, z=7}, {x=985, y=1001, z=7}, {x=986, y=1001, z=7}, {x=987, y=1001, z=7}, {x=988, y=1001, z=7}, {x=989, y=1001, z=7}, {x=990, y=1001, z=7}, {x=991, y=1001, z=7}, {x=992, y=1001, z=7}, {x=993, y=1001, z=7}, {x=994, y=1001, z=7}, {x=995, y=1001, z=7}, {x=983, y=1002, z=7}, {x=984, y=1002, z=7}, {x=988, y=1002, z=7}, {x=989, y=1002, z=7}, {x=990, y=1002, z=7}, {x=991, y=1002, z=7}, {x=992, y=1002, z=7}, {x=993, y=1002, z=7}, {x=994, y=1002, z=7}, {x=995, y=1002, z=7}, {x=984, y=1003, z=7}, {x=985, y=1003, z=7}, {x=986, y=1003, z=7}, {x=987, y=1003, z=7}, {x=988, y=1003, z=7}, {x=989, y=1003, z=7}, {x=990, y=1003, z=7}, {x=991, y=1003, z=7}, {x=992, y=1003, z=7}, {x=993, y=1003, z=7}, {x=984, y=1004, z=7}, {x=985, y=1004, z=7}, {x=986, y=1004, z=7}, {x=987, y=1004, z=7}, {x=988, y=1004, z=7}, {x=984, y=1005, z=7}, {x=985, y=1005, z=7}, {x=986, y=1005, z=7}, {x=987, y=1005, z=7}, {x=988, y=1005, z=7}, {x=983, y=1006, z=7}, {x=984, y=1006, z=7}, {x=985, y=1006, z=7}, {x=986, y=1006, z=7}, {x=987, y=1006, z=7}, {x=988, y=1006, z=7}, {x=980, y=1007, z=7}, {x=981, y=1007, z=7}, {x=982, y=1007, z=7}, {x=983, y=1007, z=7}, {x=984, y=1007, z=7}, {x=985, y=1007, z=7}, {x=986, y=1007, z=7}, {x=987, y=1007, z=7}, {x=988, y=1007, z=7}, {x=980, y=1008, z=7}, {x=981, y=1008, z=7}, {x=982, y=1008, z=7}, {x=983, y=1008, z=7}, {x=980, y=1009, z=7}, {x=981, y=1009, z=7}, {x=982, y=1009, z=7}, {x=983, y=1009, z=7}, {x=1004, y=998, z=7}, {x=1005, y=998, z=7}, {x=1006, y=998, z=7}, {x=1006, y=999, z=7}, {x=1002, y=993, z=7}, {x=1002, y=987, z=7}, {x=1002, y=988, z=7}, {x=996, y=984, z=7} }, delayTime = 1, -- pomiedzy broadcastem a zrzuceniem itemu amountOfPos = 20, storage = 51836 -- set free storage } ]]> </config> <lib name="lib_rain_item"> <![CDATA[ domodlib("config_rain_item") function throwItem() local i, itemPos = 1, {} repeat local pos = configRainItem.positions[math.random(#configRainItem.positions)] if isInArray(itemPos, pos) then pos = configRainItem.positions[math.random(#configRainItem.positions)] else itemPos[i] = pos i = i + 1 end until i == configRainItem.amountOfPos for _, pos in pairs(itemPos) do doSendDistanceShoot({x = pos.x - math.random(4, 6), y = pos.y - 5, z = pos.z}, pos, CONST_ANI_FIRE) for __, effect in pairs({34, 55, 56}) do doSendMagicEffect(pos, effect) end addEvent(doCreateItem, 100, configRainItem.items[math.random(#configRainItem.items)], 1, pos) doSetStorage(configRainItem.storage, -1) end end ]]> </lib> <globalevent name="Rain_Item_Days" interval="1000" event="script"> <![CDATA[ domodlib("lib_rain_item") local daysOpen = {} for k, v in pairs(configRainItem.days) do table.insert(daysOpen, k) end function onThink(interval) if isInArray(daysOpen, os.date('%A')) then if isInArray(configRainItem.days[os.date('%A')], os.date('%X', os.time())) then if getStorage(configRainItem.storage) ~= 1 then doBroadcastMessage('Rain Items will start in '..configRainItem.delayTime..' min. Go to temple or depot!') doSetStorage(configRainItem.storage, 1) addEvent(throwItem, configRainItem.delayTime * 60 * 1000) end end end return true end ]]> </globalevent> <talkaction words="!startrain" access="5" event="script"> <![CDATA[ domodlib("lib_rain_item") function onSay(cid, words, param) if getStorage(configRainItem.storage) > 0 then return doPlayerSendCancel(cid, 'Rain Item is already running.') end doBroadcastMessage('Rain Items will start in ' .. configRainItem.delayTime .. ' min. Go to temple or depot!') doSetStorage(configRainItem.storage, 1) addEvent(throwItem, configRainItem.delayTime * 60 * 1000) return true end ]]> </talkaction> <globalevent name="Rain_Item_Start" type="startup" event="script"> <![CDATA[ domodlib("lib_rain_item") function onStartup() doSetStorage(configRainItem.storage, -1) return true end ]]> </globalevent> </mod> Configurando:
      1-
      days = {
                          ['Monday'] = {'11:00:20', '19:00:20'}, = Aqui são os dias e horário que ocorrerão o evento, no caso do exemplo está Segunda Feira ás 11 horas e as 19 horas.
      Você deverá alterar o dia e a hora conforme desejar, o dia em inglês claro. Não sabe inglês faz cursinho na openenglish sqn.
       
      2-
      items = {
                          2644, -- king = 2644 é o ID do item que irá chover. O -- king não é anda apenas um exemplo pode deixar com o nome, o que vale é o ID!
       
      3-
      positions = {
                          {x=997, y=981, z=7}, = Mais do que claro, é as posições do mapa onde irá cair os items!
       
       

       
       
       
       
      Nota: Caso queira iniciar o evento manualmente fora de hora execute o comando !startrain com seu ADM.
       
       

       
       
       
       
      É isso aí galera, caso haja algum dúvida perguntem aqui no tópico!
       
       
       
      Não gostou? Não critica, só olha e tenta fazer melhor
       
       
       
      Absolute.
       
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo