YU
dúvida

Scripting GlobalEvent/Raid ajuda

Por Yunft, 21 de fev. de 2013 em Scripts

resolvido
script
15
2.2k
YunftY
21 de fevereiro de 2013 às 12:43

Bem Galera,eu tenho um Real Server 1.7 Global versão 8.60

 

e gostaria de saber como faço pra saber quando a raid vai acontecer

 

geralmente ela acontece de forma aleatória,durante a noite,porem tem dias em que não há raids...

 

e o arquivo se encontra da seguinte forma...

 

globalevents/raids

 

 

local storage = 1344

local raids = {

"Morgaroth",

"Ghazbaran",

"Undead Jester",

"goblin",

"Dryads",

"Halloweenhare",

"Hornedfox",

"Necropharus",

"Wolfsraid",

"UndeadArmy",

"UndeadDarashia",

"The Old Widow",

"Scarabs",

"Rats",

"Quara",

"Pirates",

"Orshabaal",

"OrcsThais",

"Ferumbras",

"Elfs",

"Demodras",

"Barbarian"

}

function onThink(interval, lastExecution, thinkInterval)

if getGlobalStorageValue(storage) == -1 or getGlobalStorageValue(storage) < os.time() then

executeRaid(raids[math.random(1, #raids)])

setGlobalStorageValue(storage, os.time() + 2 * 60 * 60)

end

return TRUE

end

 

 

 

Eu gostaria de saber nessa linha (storage, os.time() + 2 * 60 * 60)

 

o quanto equivale esse tempo convertido em raid....e uma data para que aconteça....quem souber me ajudar por favor,posta ai!

RoksasR
21 de fevereiro de 2013 às 13:03

Passa a tag do globalevents.xml

YunftY
21 de fevereiro de 2013 às 13:51

Passa a tag do globalevents.xml

 

 

 

 

<?xml version="1.0" encoding="UTF-8"?>

<globalevents>

<!-- XTibia.com -->

<globalevent name="lottery" interval="7200" script="lottery.lua"/>

<globalevent name="save" interval="900" event="script" value="save.lua"/>

<globalevent name="clean" interval="7200" event="script" value="clean.lua"/>

<globalevent name="serverstart" type="start" event="script" value="start.lua"/>

<globalevent name="playersrecord" type="record" event="script" value="record.lua"/>

<globalevent name="raid" interval="108000" event="script" value="raid.lua"/>

<globalevent name="info" interval="600" script="info.lua"/>

</globalevents>

RoksasR
21 de fevereiro de 2013 às 14:02

A cada 3 horas são realizadas as raids.

 

(storage, os.time() + 2 * 60 * 60)

São 3 horas, essa função é como um exhaust :))

YunftY
21 de fevereiro de 2013 às 14:15

A cada 3 horas são realizadas as raids.

 

(storage, os.time() + 2 * 60 * 60)

São 3 horas, essa função é como um exhaust :))

 

Cara eu ja testei com esse 2 * 60 *60 em 3 horas e não foi oO

 

A cada 3 horas são realizadas as raids.

 

(storage, os.time() + 2 * 60 * 60)

São 3 horas, essa função é como um exhaust :))

 

Cara eu ja testei com esse 2 * 60 *60 em 3 horas e não foi oO

 

 

como faço pra por de 1h00 em 1h00?

RoksasR
21 de fevereiro de 2013 às 14:16

São 108000 segundos. Quanto da isso?

YunftY
21 de fevereiro de 2013 às 14:33

São 108000 segundos. Quanto da isso?

 

Não tem como abaixar?

 

São 108000 segundos. Quanto da isso?

 

Não tem como abaixar?

 

 

Assim,mesmo depois das 3 horas,nao da invasao...oq há de errado?!

GearsG
21 de fevereiro de 2013 às 14:35

Pra diminuir o tempo, é so modificar aquela linha ali.

 

 

(storage, os.time() + 2 * 60 * 60)

 

Se você quer 1 hora ficaria assim

 

(storage, os.time() + 1 * 60 * 60)

Lool e porque ficaria assim?

 

Porque 1 hora tem 3600 segundos, logo 1x60x60 = 3600 ou seja 1 hora :)

 

@edit

Isso ai /\, é no script, agora para mudar o tempo, você muda na tag

 

<globalevent name="raid" interval="108000" event="script" value="raid.lua"/>

Bom, depois de converter aqui, chega-se a conclusão que esses 108000 equivalem a 30 horas e não 3 horas, tá mais e ai como que eu faço para o script executar em 3 horas?

Lembra que 1 hora tem 3600 segundos? Então multiplica 3600x3, que da o resultado de 10800 segundos.

Oque devo fazer?

Ali no 108000 tem um 0 a mais, ou seja o script demorará 30 horas para ser executado e não 3 horas, basta tira um 0 ficando

assim:

<globalevent name="raid" interval="10800" event="script" value="raid.lua"/>

Só isso msm.

Editado Fevereiro 21 por Gears

RoksasR
21 de fevereiro de 2013 às 14:38

Tenta substituir o script por esse:

 

 

local storage = 1344

local raids = {

"Morgaroth",

"Ghazbaran",

"Undead Jester",

"goblin",

"Dryads",

"Halloweenhare",

"Hornedfox",

"Necropharus",

"Wolfsraid",

"UndeadArmy",

"UndeadDarashia",

"The Old Widow",

"Scarabs",

"Rats",

"Quara",

"Pirates",

"Orshabaal",

"OrcsThais",

"Ferumbras",

"Elfs",

"Demodras",

"Barbarian"

}

function onThink(interval, lastExecution, thinkInterval)

if getGlobalStorageValue(storage) == -1 or getGlobalStorageValue(storage) < os.time() then

executeRaid(raids[math.random(1, #raids)])

setGlobalStorageValue(storage, os.time() + 60 * 60)

end

return TRUE

end

 

 

E o globalevents por

 

<?xml version="1.0" encoding="UTF-8"?>

<globalevents>

<!-- XTibia.com -->

<globalevent name="lottery" interval="7200" script="lottery.lua"/>

<globalevent name="save" interval="900" event="script" value="save.lua"/>

<globalevent name="clean" interval="7200" event="script" value="clean.lua"/>

<globalevent name="serverstart" type="start" event="script" value="start.lua"/>

<globalevent name="playersrecord" type="record" event="script" value="record.lua"/>

<globalevent name="raid" interval="1800" event="script" value="raid.lua"/>

<globalevent name="info" interval="600" script="info.lua"/>

</globalevents>

 

GearsG
21 de fevereiro de 2013 às 14:44

Roksas, você sabe que 1800 segundos equivalem a 30 minutos né? Ou seja o script será executado a cada 30 minutos, e não a cada 3 horas, e no script está 60x60, que daria 3600 segundos, ou seja diferente do que está declarado na tag.

 

Vê meu post ali que você vai entender.

 

Abs

Editado Fevereiro 21 por Gears

RoksasR
21 de fevereiro de 2013 às 14:49

Ele só queria aprender a configurar o tempo. Coloquei 30 minutos para ele não ficar 3 horas esperando a raid pra ver se deu certo :))

YunftY
21 de fevereiro de 2013 às 15:26

Roksas, você sabe que 1800 segundos equivalem a 30 minutos né? Ou seja o script será executado a cada 30 minutos, e não a cada 3 horas, e no script está 60x60, que daria 3600 segundos, ou seja diferente do que está declarado na tag.

 

Vê meu post ali que você vai entender.

 

Abs

 

Então se eu quiser as 3 horas,vai ficar 3* 60* 60?

 

Alguém teria skype,msn,pra poder me ajudar de uma maneira melhor? ainda tenho o outro bug da task postado em outro tópico...preciso de ajuda...

 

tenho esses 2 problemas pra por hora.

Editado Fevereiro 21 por Stigal

GearsG
21 de fevereiro de 2013 às 15:34

Sim, ficaria 3*60*60, e na tag ficaria 10800, e tambem devo te avisar que é proibido passar msn e outros meios de comunicação fora do topico de divulge-se ou formação de equipes :)

 

Abs

RoksasR
21 de fevereiro de 2013 às 15:38

Dúvida sanada, reported.

StigalS
21 de fevereiro de 2013 às 17:04

Tópico movido para a seção de dúvidas e pedidos resolvidos.