Ir para conteúdo
  • Cadastre-se

[Resolvido] Ajuda com raid's


Posts Recomendados

Olá, amigo uso um server 9.80 a 9.86, estou com dificuldade para por minhas raid's semanais, como deveria mudar esse script que iniciação as raid's?

<?xml version="1.0" encoding="UTF-8"?>
<raids>
	<!--
		executed on average once every 2 minutes

		<raid name="Example" file="example.xml" interval2="2" margin="0" reftype="single" ref="no"/>
			won't be executed again till Cave Rat gets killed

		<raid name="Example2" file="example.xml" interval2="2" margin="0" reftype="block" ref="no"/>
			will stay as 'running' until Cave Rat gets killed
	-->
<raid name="Jaul" file="Jaul.xml" interval2="8000" margin="0" reftype="single" ref="no"/>
<raid name="Undead Cavebear" file="Undead Cavebear.xml" interval2="3000" margin="0" reftype="single" ref="no"/>
<raid name="Midnight Panther" file="Midnight Panther.xml" interval2="6000" margin="0" reftype="single" ref="no"/>
	<raid name="Rats" file="Rats.xml" interval2="600" margin="0" reftype="single" ref="no"/>
	<raid name="Giant Spider" file="Giant Spider.xml" interval2="800" margin="0" reftype="single" ref="no"/>
	<raid name="ghazbaran" file="ghazbaran.xml" interval2="13000" margin="0" reftype="single" ref="no"/>
	<raid name="Ferumbras" file="Ferumbras.xml" interval2="20000" margin="0" reftype="single" ref="no"/>
	<raid name="Morgaroth" file="Morgaroth.xml" interval2="30000" margin="0" reftype="single" ref="no"/>
</raids>


tem tentei alguns outros modelos mas todos falharam, nesse método é diário, mas gostaria que fosse semanal!

Link para o post
Compartilhar em outros sites

creio que seja essa parte:

interval2="8000"

ou a cada 1000 é 1 segundo

ou é contado em minutos

não sei te dizer tem que testar. (se no script diz o tempo posta vai ser mais facil)

Link para o post
Compartilhar em outros sites

Esse modelo eu uso, queria 1 que fosse semanal sempre x horário corretamente entende? Outra duvida com o Aluguel das casas do meu servidor, vou posta a configuração pois não vejo ninguém perdendo a casa por não pagar aluguel nele....

 -- Houses
        buyableAndSellableHouses = true
        houseNeedPremium = false
        bedsRequirePremium = false
        levelToBuyHouse = 80
        housesPerAccount = 1
        houseRentAsPrice = false
        housePriceAsRent = false
        housePriceEachSquare = 2000
        houseRentPeriod = "weekly"
        houseCleanOld = 8 * 24 * 60 * 60
        guildHalls = false
        houseSkipInitialRent = false
        houseProtection = true

Alguém poderia me ajudar, o que devo está fazendo errado éra pra ser semanal!

Link para o post
Compartilhar em outros sites

 

não entendi, agora confundio, quer saber das raids ou das houses?

se for houses mesmo muda aqui:

    houseRentPeriod = "never"

muda pra:

      houseRentPeriod = "weekly"

mas ja ta como vc falou. weekly

outra coisa o que sera isso houseSkipInitialRent = false

e quero saber das raids tb, pra por elas semanal! acho que tem comando que por hora se não me engano..
Link para o post
Compartilhar em outros sites

não sei mecher com esse tipo de funçao ai, sempre me confundo, tenta essas duas opções:

 

fazer por globalevents

script do vodkart

 

inv.lua

local days = {
["Sunday"] = {
["00:00"] = {nome = "Demon Invasões", pos = {x=185, y=54, z=7}, monster = {"40 Demon", "50 Fire Devil", "4 Orshabaal"}, Time = 15},
["21:00"] = {nome = "Dragon Invasões", pos = {x=185, y=54, z=7}, monster = {"100 Dragon"}, Time = 15}
},
["Saturday"] = {
["00:00"] = {nome = "Demon Invasões", pos = {x=185, y=54, z=7}, monster = {"40 Demon", "50 Fire Devil", "4 Orshabaal"}, Time = 15},
["21:13"] = {nome = "Dragon Invasões", pos = {x=185, y=57, z=7},monster = {"100 Dragon"}, Time = 15}
}
}
function onThink(interval, lastExecution)
function getDayName()
local days = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}
return days[os.date("*t")["wday"]]
end
hours = tostring(os.date("%X")):sub(1, 5)
tb = days[getDayName()][hours]
if tb then
function removeCreature()
for x = ((tb.pos.x)-10), ((tb.pos.x)+10) do
for y = ((tb.pos.y)-10), ((tb.pos.y)+10) do
local m = getTopCreature({x=x, y=y, z= tb.pos.z}).uid 
if m ~= 0 and isMonster(m) then
doRemoveCreature(m)
end
end
end
return true
end
addEvent(removeCreature, tb.Time*60*1000)
doBroadcastMessage(hours .. " - " .. tb.nome .. " Iníciou.")
for _,x in pairs(tb.monster) do
for s = 1, tonumber(x:match("%d+")) do
doSummonCreature(x:match("%s(.+)"), tb.pos)
end
end

end
return true
end

globalevents.xml

<globalevent name="Invasao" interval="60" event="script" value="inv.lua"/>

fazer por mod

script do vodkart

 

Automatic Raids.xml

<?xml version="1.0" encoding="UTF-8"?> 
<mod name="Automatic Raids" version="1.0" author="Vodkart And xotservx" contact="xtibia.com" enabled="yes"> 
<config name="raids_func"><![CDATA[
days = {
["Monday"] = {
["21:30"] = {nome = "Orshabaal", pos = {fromPosition = {x=184, y=55, z=7},toPosition = {x=188, y=58, z=7}},m = {"5 Fire Devil", "2 Orshabaal"}, Time = 15},
["21:33"] = {nome = "Dragon", pos = {fromPosition = {x=197, y=57, z=7},toPosition = {x=203, y=60, z=7}},m = {"100 Dragon"}, Time = 20}
},
["Sunday"] = {
["10:08"] = {nome = "Demon", pos = {fromPosition = {x=202, y=11, z=7},toPosition = {x=204, y=12, z=7}}, m = {"1 Demon"}, Time = 15},
["10:46"] = {nome = "Hydra", pos = {fromPosition = {x=197, y=57, z=7},toPosition = {x=203, y=60, z=7}}, m = {"7 Hydra", "4 Cyclops"}, Time = 20}
}
}
]]></config>    
<globalevent name="AutomaticRaids" interval="60" event="script"><![CDATA[
domodlib('raids_func')
function onThink(interval, lastExecution)
if days[os.date("%A")] then
hours = tostring(os.date("%X")):sub(1, 5)    
tb = days[os.date("%A")][hours]
if tb then        
function removeCreature(tb)
for x = ((tb.pos.fromPosition.x)-10), ((tb.pos.toPosition.x)+10) do
for y = ((tb.pos.fromPosition.y)-10), ((tb.pos.toPosition.y)+10) do
local m = getTopCreature({x=x, y=y, z= tb.pos.fromPosition.z}).uid
if m ~= 0 and isMonster(m) then
doRemoveCreature(m)
end
end
end
end
doBroadcastMessage("The invasion of " .. tb.nome .. " started")
for _,x in pairs(tb.m) do
for s = 1, tonumber(x:match("%d+")) do
pos = {x = math.random(tb.pos.fromPosition.x, tb.pos.toPosition.x), y = math.random(tb.pos.fromPosition.y, tb.pos.toPosition.y), z = tb.pos.fromPosition.z}
doSummonCreature(x:match("%s(.+)"), pos)
end
end
addEvent(removeCreature, tb.Time*60*1000, tb)
end
end
return true
end
]]></globalevent>
</mod>


Configuração:
 

days = {
["Monday"] = {
["21:30"] = {nome = "Orshabaal", pos = {fromPosition = {x=184, y=55, z=7},toPosition = {x=188, y=58, z=7}},m = {"5 Fire Devil", "2 Orshabaal"}, Time = 1},
["21:33"] = {nome = "Dragon", pos = {fromPosition = {x=197, y=57, z=7},toPosition = {x=203, y=60, z=7}},m = {"100 Dragon"}, Time = 2}
},
["Tuesday"] = {
["10:44"] = {nome = "Demon", pos = {fromPosition = {x=184, y=55, z=7},toPosition = {x=188, y=58, z=7}}, m = {"5 Demon", "8 Fire Devil"}, Time = 1},
["10:46"] = {nome = "Hydra", pos = {fromPosition = {x=197, y=57, z=7},toPosition = {x=203, y=60, z=7}}, m = {"7 Hydra", "4 Cyclops"}, Time = 2}
}
}
["DIA"] = {
["HORA DA INVASÃO"] = {nome = "NOME DA INVASÃO", pos = {começo e final da área}, monster = {"MONSTROS"}, Time = para remover os monstro}
}

O dia da invasão é colocada entre " " e somente dia em inglês e a primeira letra maiúscula, exemplo:

"Saturday"


Depois são as hora da invasão, que é colocada entre " " e somente a hora e minuto, segundos não precisa exemplo:

"15:00"


As Posições estão entre { } adicionando as posições x, y e z, é o começo e final da área exemplo:
 

pos = {fromPosition = {x=197, y=57, z=7},toPosition = {x=203, y=60, z=7}}

fromPosition -- começo da área onde vai acontecer a raid
toPosition -- final da área onde vai acontecer a raid

Os monters tem um modo especial de configurar, vc coloca entre { }, e cada monstro entre " ", e entre as " " vc adiciona "QUANTIDADE MONSTRO", e para adicionar mais tipos de monstro se separa por virgulas, exemplo:

{"40 Water Elemental", "5 Cyclops"}

Time é uma função extra, é para caso ninguém participe do evento os monstros não fiquem pelo mapa, e é em minutos, exemplo:
 

Time = 15
Link para o post
Compartilhar em outros sites

testei isso, até funga mas não da msg da invasão, dai perde o tesão da coisa aeuhaehahueauae

Link para o post
Compartilhar em outros sites

então tenta usar assim no seu primeiro script:

<globalevent name="example" time="21:35:11" event="script" value="my_script.lua"/>

Pra por mensagem nesse ai não sei.

CACETE DO CACETE , parece que vai da certo!!!

Link para o post
Compartilhar em outros sites

Do seu jeito não deu mais eu fiz assim!

 

--[[
- hora deve ser exata SERVER
- para fazer o raid tera que ser ex: 00 hour(horas) e 00 minu (minutos)
- para fazer a raid na data e hora no tempo exato, uso "exact"
- para fazer a raid ocorrer todas as semanas (pelo menos 1x na semana) uso "weekly"
- o nome dos dias sao ultilizados apenas para o tipo semanal que devera ser
- "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"
- tambem devem estar dentro de uma matriz-> {}
]]

local raids =
	{
		[1] =
			{
				name = 'Morgaroth',
				type = 'weekly',
				days = {'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'},
				hour = 20,
				minu = 00
			},
		[2] =
			{
				name = 'Ferumbras',
				type = 'weekly',
				days = {'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'},
				hour = 14,
				minu = 05
			},
		[3] =
			{
				name = 'Undead Cavebear',
				type = 'weekly',
				days = {'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'},
				hour = 21,
				minu = 00
			},
		[4] =
			{
				name = 'Undead Cavebear',
				type = 'weekly',
				days = {'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'},
				hour = 09,
				minu = 30
			},
		[5] =
			{
				name = 'Midnight Panther',
				type = 'weekly',
				days = {'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'},
				hour = 11,
				minu = 25
			},
		[6] =
			{
				name = 'Midnight Panther',
				type = 'weekly',
				days = {'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'},
				hour = 21,
				minu = 50
			},
		[7] =
			{
				name = 'Jaul',
				type = 'weekly',
				days = {'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'},
				hour = 19,
				minu = 00
			},
		[8] =
			{
				name = 'ghazbaran',
				type = 'weekly',
				days = {'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'},
				hour = 15,
				minu = 00
			},
		[8] =
			{
				name = 'Orshabaal',
				type = 'weekly',
				days = {'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'},
				hour = 23,
				minu = 55
			},
			
	}
	
local last_execsutes = {}

function onThink(interval, lastExecution, thinkInterval)
	local static_time = os.time()
	for k, raid in ipairs(raids) do
		if (raid.type == 'weekly') then
			local day = os.date("%A", static_time):lower()
			if isInArray(raid.days, day) then
				local hour = tonumber(os.date("%H", static_time))
				if (raid.hour == hour) then
					local minute = tonumber(os.date("%M", static_time))
					if (raid.minu == minute) then
						local day_number = tonumber(os.date("%d", static_time))
						if (last_execsutes[k] ~= day_number) then
							last_execsutes[k] = day_number
							doExecuteRaid(raid.name)
						end
					end
				end
			end
		elseif (raid.type == 'exact') then
			local month = tonumber(os.date("%m", static_time))
			if (raid.date.month == month) then
				local day = tonumber(os.date("%d", static_time))
				if (raid.date.day == day) then
					local hour = tonumber(os.date("%H", static_time))
					if (raid.hour == hour) then
						local minute = tonumber(os.date("%M", static_time))
						if (raid.minu == minute) then
							if (last_execsutes[k] ~= day) then
								last_execsutes[k] = day
								doExecuteRaid(raid.name)
							end
						end
					end
				end
			end
		end
	end
	return true
end

Dai funciona, CRIA a Raid, na pasta raid certinha, e porem esse script, no global eventos ele aciona em determinados horários como o descrito.

Link para o post
Compartilhar em outros sites

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo