Ir para conteúdo
  • Cadastre-se

(Resolvido)[AJUDA]Evento Automatico


Ir para solução Resolvido por zipter98,

Posts Recomendados

Galerinha, tipo eu faço meu Castle manualmente, mas quero deixa ele automático, tipo falo !castle abre as parada do Castle e quero deixa num determinado dia e hora

 

quem me ajuda vou marca como melhor resposta, e rep+++

 


TALKACTION

 

function onSay(cid, words, param)
local x = true
local B  = {  
[1] = {1547,{x=71, y=620, z=6, stackpos = 1}},  -- posição da barreira 
[2] = {1547,{x=72, y=620, z=6, stackpos = 1}},  -- posição da barreira 
[3] = {1547,{x=73, y=620, z=6, stackpos = 1}}, -- posição da barreira 
[4] = {1547,{x=74, y=620, z=6, stackpos = 1}}, -- posição da barreira 
[5] = {1547,{x=75, y=620, z=6, stackpos = 1}}, -- posição da barreira 
[6] = {1547,{x=71, y=618, z=6, stackpos = 1}}, -- posição da barreira 
[7] = {1547,{x=72, y=618, z=6, stackpos = 1}}, -- posição da barreira 
[8] = {1547,{x=73, y=618, z=6, stackpos = 1}}, -- posição da barreira
[9] = {1547,{x=74, y=618, z=6, stackpos = 1}}, -- posição da barreira  
[10] = {1547,{x=75, y=618, z=6, stackpos = 1}}   -- posição da barreira 
 
for i = 1, #B do
if getTileItemById(B[2], B[1]).uid == 0 then 
x = false 
end
if x == true then
doRemoveItem(getThingfromPos(B[2]).uid,1)
else
doCreateItem(B[1], 1, B[2]) 
end
end
 
end

 

Editado por Danielgomes (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Não sei se vai funcionar, mas está ai um jeito básico com globalevents.


function onThink(interval)
local x = true
local B  = {  
[1] = {1547,{x=71, y=620, z=6, stackpos = 1}},  -- posição da barreira 
[2] = {1547,{x=72, y=620, z=6, stackpos = 1}},  -- posição da barreira 
[3] = {1547,{x=73, y=620, z=6, stackpos = 1}}, -- posição da barreira 
[4] = {1547,{x=74, y=620, z=6, stackpos = 1}}, -- posição da barreira 
[5] = {1547,{x=75, y=620, z=6, stackpos = 1}}, -- posição da barreira 
[6] = {1547,{x=71, y=618, z=6, stackpos = 1}}, -- posição da barreira 
[7] = {1547,{x=72, y=618, z=6, stackpos = 1}}, -- posição da barreira 
[8] = {1547,{x=73, y=618, z=6, stackpos = 1}}, -- posição da barreira
[9] = {1547,{x=74, y=618, z=6, stackpos = 1}}, -- posição da barreira  
[10] = {1547,{x=75, y=618, z=6, stackpos = 1}}   -- posição da barreira 
} 
 
for i = 1, #B do
if getTileItemById(B[i][2], B[i][1]).uid == 0 then 
x = false 
end
if x == true then
doRemoveItem(getThingfromPos(B[i][2]).uid,1)
else
doCreateItem(B[i][1], 1, B[i][2]) 
end
end
  return true
end

Em globalevents.xml, se quiser deixar todos os dias um horário certo, então:

<globalevent name="nomequalquer" time="20:00:00" event="script" value="arquivo.lua"/>

Agora para deixar por exemplo numa terça, e quinta, ai é outros 500 e teria que procurar, mas já é um começo pra você esse ai.

Se ajudar agradece =)

 

Abrs,

xBlackWolf

THX @Storm Night

Best Avatar Ever

 

9p0FoTd.png

Link para o post
Compartilhar em outros sites

Não sei se vai funcionar, mas está ai um jeito básico com globalevents.


function onThink(interval)
local x = true
local B  = {  
[1] = {1547,{x=71, y=620, z=6, stackpos = 1}},  -- posição da barreira 
[2] = {1547,{x=72, y=620, z=6, stackpos = 1}},  -- posição da barreira 
[3] = {1547,{x=73, y=620, z=6, stackpos = 1}}, -- posição da barreira 
[4] = {1547,{x=74, y=620, z=6, stackpos = 1}}, -- posição da barreira 
[5] = {1547,{x=75, y=620, z=6, stackpos = 1}}, -- posição da barreira 
[6] = {1547,{x=71, y=618, z=6, stackpos = 1}}, -- posição da barreira 
[7] = {1547,{x=72, y=618, z=6, stackpos = 1}}, -- posição da barreira 
[8] = {1547,{x=73, y=618, z=6, stackpos = 1}}, -- posição da barreira
[9] = {1547,{x=74, y=618, z=6, stackpos = 1}}, -- posição da barreira  
[10] = {1547,{x=75, y=618, z=6, stackpos = 1}}   -- posição da barreira 
} 
 
for i = 1, #B do
if getTileItemById(B[i][2], B[i][1]).uid == 0 then 
x = false 
end
if x == true then
doRemoveItem(getThingfromPos(B[i][2]).uid,1)
else
doCreateItem(B[i][1], 1, B[i][2]) 
end
end
  return true
end

Em globalevents.xml, se quiser deixar todos os dias um horário certo, então:

<globalevent name="nomequalquer" time="20:00:00" event="script" value="arquivo.lua"/>

Agora para deixar por exemplo numa terça, e quinta, ai é outros 500 e teria que procurar, mas já é um começo pra você esse ai.

Se ajudar agradece =)

 

Abrs,

Deu não =(

Link para o post
Compartilhar em outros sites

Vamos tentar diferente:

function onThink(interval)
-- Monday = Segunda
-- Tuesday = Terça
-- Wednesday = Quarta
-- Thursday = Quinta
-- Friday = Sexta
-- Saturday = Sabado
-- Sunday = Domingo
EventoUP = {"Monday","Wednesday", "Friday"}
EventoTime = {"21:00:00", "18:00:00", "10:00:00"}          	
 if isInArray(EventoUP, os.date("%A")) and isInArray(EventoTime, os.date("%X"))  then
  local x = true
local B  = {  
[1] = {1547,{x=71, y=620, z=6, stackpos = 1}},  -- posição da barreira 
[2] = {1547,{x=72, y=620, z=6, stackpos = 1}},  -- posição da barreira 
[3] = {1547,{x=73, y=620, z=6, stackpos = 1}}, -- posição da barreira 
[4] = {1547,{x=74, y=620, z=6, stackpos = 1}}, -- posição da barreira 
[5] = {1547,{x=75, y=620, z=6, stackpos = 1}}, -- posição da barreira 
[6] = {1547,{x=71, y=618, z=6, stackpos = 1}}, -- posição da barreira 
[7] = {1547,{x=72, y=618, z=6, stackpos = 1}}, -- posição da barreira 
[8] = {1547,{x=73, y=618, z=6, stackpos = 1}}, -- posição da barreira
[9] = {1547,{x=74, y=618, z=6, stackpos = 1}}, -- posição da barreira  
[10] = {1547,{x=75, y=618, z=6, stackpos = 1}}   -- posição da barreira 
} 
 
for i = 1, #B do
if getTileItemById(B[i][2], B[i][1]).uid == 0 then 
x = false 
end
if x == true then
doRemoveItem(getThingfromPos(B[i][2]).uid,1)
else
doCreateItem(B[i][1], 1, B[i][2]) 
end
end
 end
 return true
end

<globalevent name="nomequalquer" interval="1000" event="script" value="arquivo.lua"/>

Intervalo baixo mesmo, para verificar a cada 1 segundo a hora para poder iniciar o evento.

Não sei se vai funcionar ou se vai ficar lag, mas tenta e me fala.

Editado por xBlackWolf (veja o histórico de edições)

xBlackWolf

THX @Storm Night

Best Avatar Ever

 

9p0FoTd.png

Link para o post
Compartilhar em outros sites

Tente assim também...

em vá em lib/0-50.funcions e adicione isso no final.

function Open()
local B  = {  
[1] = {1547,{x=71, y=620, z=6, stackpos = 1}},  -- posição da barreira 
[2] = {1547,{x=72, y=620, z=6, stackpos = 1}},  -- posição da barreira 
[3] = {1547,{x=73, y=620, z=6, stackpos = 1}}, -- posição da barreira 
[4] = {1547,{x=74, y=620, z=6, stackpos = 1}}, -- posição da barreira 
[5] = {1547,{x=75, y=620, z=6, stackpos = 1}}, -- posição da barreira 
[6] = {1547,{x=71, y=618, z=6, stackpos = 1}}, -- posição da barreira 
[7] = {1547,{x=72, y=618, z=6, stackpos = 1}}, -- posição da barreira 
[8] = {1547,{x=73, y=618, z=6, stackpos = 1}}, -- posição da barreira
[9] = {1547,{x=74, y=618, z=6, stackpos = 1}}, -- posição da barreira  
[10] = {1547,{x=75, y=618, z=6, stackpos = 1}}   -- posição da barreira 
}
end

e depois vá em globalevents e crie um arquivo chamado evento.lua e coloque isso dentro.

function onThink(interval, lastExecution)
_Dias_ = {
["Tuesday"] = {  -- Tuesday = terça-feira em ingles, use apenas dias no ingles
["12:00"] = {},
["18:30"] = {},
["22:00"] = {}
},
}
if _Dias_[os.date("%A")] then
hours = tostring(os.date("%X")):sub(1, 5)
tb = _Dias_[os.date("%A")][hours]
Open()
doBroadcastMessage("O evento foi aberto")
end
return true
end

e adicione isso em globalevents.xml

<globalevent name="Evento" interval="1000" event="script" value="evento.lua"/>

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites

@joadson 

 

Faltou no arquivo na lib.. a parte que retira os items:

for i = 1, #B do
if getTileItemById(B[i][2], B[i][1]).uid == 0 then 
x = false 
end
if x == true then
doRemoveItem(getThingfromPos(B[i][2]).uid,1)
else
doCreateItem(B[i][1], 1, B[i][2]) 
end
end

xBlackWolf

THX @Storm Night

Best Avatar Ever

 

9p0FoTd.png

Link para o post
Compartilhar em outros sites

Tag:

<!-- Mude 17:00 para o horário que quer que o Castle Event seja aberto. -->
<globalevent name="openCastle" time="17:00" event="script" value="arquivo.lua"/>
Não se esqueça de mudar arquivo.lua para o nome do arquivo que será colocado o código abaixo.
local day = "Saturday"                            --Mude o dia que o evento será executado aqui. EM INGLÊS.
local id = 1547
local posis = {  
    {x = 71, y = 620, z = 6},  -- posição da barreira
    {x = 72, y = 620, z = 6},  -- posição da barreira 
    {x = 73, y = 620, z = 6}, -- posição da barreira 
    {x = 74, y = 620, z = 6}, -- posição da barreira 
    {x = 75, y = 620, z = 6}, -- posição da barreira 
    {x = 71, y = 618, z = 6}, -- posição da barreira 
    {x = 72, y = 618, z = 6}, -- posição da barreira 
    {x = 73, y = 618, z = 6}, -- posição da barreira
    {x = 74, y = 618, z = 6}, -- posição da barreira  
    {x = 75, y = 618, z = 6},   -- posição da barreira 
} 
function onTimer(cid, interval, lastExecution)
    if os.date("%A") == day then
        for i = 1, #posis do
            local item = getTileItemById(posis[i], id).uid
            if item > 0 then
                doRemoveItem(item, 1)
            else
                doCreateItem(id, 1, posis[i])
            end
        end
    end
    return true
end
Se não funcionar, mude:
function onTimer(cid, interval, lastExecution)
para:
function onTime()
Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

@ joadson

O seu deu, mas não esta na hora marcada, acho que o erro esta aqui interval="1000"  fora isso esta funcinando perfeitamente kkk, alguem sabe me arruma essa parte?? porque falta somente isso pro meu server funcinar

 

@zipter98   e  @xBlackWolf o seus nao deu =( , sabem arruma??

 

rep +++ vlws

 

LEMBRANDO QUE MEU TFS É 0.4 :D

Editado por Danielgomes (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Simplesmente não funcionou? Algum erro na distro?

PS: Você configurou o dia certo, né? Hoje é sexta, então para testar você deve configurar o valor da variável day para Friday.

Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

Simplesmente não funcionou? Algum erro na distro?

PS: Você configurou o dia certo, né? Hoje é sexta, então para testar você deve configurar o valor da variável day para Friday.

@zipter98

sim sim, coloquei Friday, mas mesmo assim não sei porque esta acontecendo isso :/, tem alguma coisa a ver com a lib??? porque o do @joadson esta dando, mas toda hora fica abrindo e fechando independente  do dia que eu colocar :/

 

ajudem rep +++++++++

Editado por Danielgomes (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Tente assim então.

function onThink(interval, lastExecution)
_Dias_ = {
Tuesday = {"12:00"},
}
if _Dias_[os.date("%A")] then
hours = tostring(os.date("%X")):sub(1, 5)
tb = _Dias_[os.date("%A")][hours]
Open()
doBroadcastMessage("O evento foi aberto")
end
return true
end

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites

 

Tente assim então.

function onThink(interval, lastExecution)
_Dias_ = {
Tuesday = {"12:00"},
}
if _Dias_[os.date("%A")] then
hours = tostring(os.date("%X")):sub(1, 5)
tb = _Dias_[os.date("%A")][hours]
Open()
doBroadcastMessage("O evento foi aberto")
end
return true
end

 

agora nem abriu :(

Link para o post
Compartilhar em outros sites

Vou testar no servidor aqui, breve posto algo que realmente funcione =D

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites

Estranho, testei aqui meu código e funcionou perfeitamente. Você configurou corretamente o horário na tag? E tem certeza que não houve nenhum erro no console?

Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

Estranho, testei aqui meu código e funcionou perfeitamente. Você configurou corretamente o horário na tag? E tem certeza que não houve nenhum erro no console?

 

@zipter98

Como assim mano erro no console?? tipo eu simplesmente troquei o dia para Friday, e a hora coloquei no horario mais proximo,

vi que voce fez alguma alteração tipo voce coloco 

local posis = { 

e no meu tava assim

local x = true
local B  = {  

cara, você vive me ajudando, ta de parabéns  :wow:

Link para o post
Compartilhar em outros sites
  • Solução

Na verdade, eu refiz o código e o simplifiquei. Porém, a funcionalidade é a mesma.

Quando digo erros no console, quero dizer erros que aparecem no executável (aquele responsável por ligar o servidor). Geralmente, quando um script dá erro, são relatados erros neste executável. 

E obrigado.

PS: Teste esta versão do script (talvez o erro esteja no callback):

local day = "Saturday"                            --Mude o dia que o evento será executado aqui. EM INGLÊS.
local id = 1547
local posis = {  
    {x = 71, y = 620, z = 6},  -- posição da barreira
    {x = 72, y = 620, z = 6},  -- posição da barreira 
    {x = 73, y = 620, z = 6}, -- posição da barreira 
    {x = 74, y = 620, z = 6}, -- posição da barreira 
    {x = 75, y = 620, z = 6}, -- posição da barreira 
    {x = 71, y = 618, z = 6}, -- posição da barreira 
    {x = 72, y = 618, z = 6}, -- posição da barreira 
    {x = 73, y = 618, z = 6}, -- posição da barreira
    {x = 74, y = 618, z = 6}, -- posição da barreira  
    {x = 75, y = 618, z = 6},   -- posição da barreira 
} 
function onTime()
    if os.date("%A") == day then
        for i = 1, #posis do
            local item = getTileItemById(posis[i], id).uid
            if item > 0 then
                doRemoveItem(item, 1)
            else
                doCreateItem(id, 1, posis[i])
            end
        end
    end
    return true
end

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

 

Na verdade, eu refiz o código e o simplifiquei. Porém, a funcionalidade é a mesma.

Quando digo erros no console, quero dizer erros que aparecem no executável (aquele responsável por ligar o servidor). Geralmente, quando um script dá erro, são relatados erros neste executável. 

E obrigado.

PS: Teste esta versão do script (talvez o erro esteja no callback):

local day = "Saturday"                            --Mude o dia que o evento será executado aqui. EM INGLÊS.
local id = 1547
local posis = {  
    {x = 71, y = 620, z = 6},  -- posição da barreira
    {x = 72, y = 620, z = 6},  -- posição da barreira 
    {x = 73, y = 620, z = 6}, -- posição da barreira 
    {x = 74, y = 620, z = 6}, -- posição da barreira 
    {x = 75, y = 620, z = 6}, -- posição da barreira 
    {x = 71, y = 618, z = 6}, -- posição da barreira 
    {x = 72, y = 618, z = 6}, -- posição da barreira 
    {x = 73, y = 618, z = 6}, -- posição da barreira
    {x = 74, y = 618, z = 6}, -- posição da barreira  
    {x = 75, y = 618, z = 6},   -- posição da barreira 
} 
function onTime()
    if os.date("%A") == day then
        for i = 1, #posis do
            local item = getTileItemById(posis[i], id).uid
            if item > 0 then
                doRemoveItem(item, 1)
            else
                doCreateItem(id, 1, posis[i])
            end
        end
    end
    return true
end

Manoh agora deu kkkk vlwww você é muito foda cara ^^:wow:

 

tem como coloca outros dias junto??? ou é melhor cria evento 2 outro com outro dia?? msm assim vlw cara :wow:

tem outro que eu queria que foçe assim tbm se vc quiser me ajuda rep ++++

 

meu rep acabo ='( mas amanha prometo que te dou xD

Editado por Danielgomes (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Para o evento ser executado em outros dias, basta usar o seguinte código:

local days = {"Saturday", "Sunday", "Monday"}                            --Mude os dias que o evento será executado nesta tabela. EM INGLÊS.
local id = 1547
local posis = {  
    {x = 71, y = 620, z = 6},  -- posição da barreira
    {x = 72, y = 620, z = 6},  -- posição da barreira 
    {x = 73, y = 620, z = 6}, -- posição da barreira 
    {x = 74, y = 620, z = 6}, -- posição da barreira 
    {x = 75, y = 620, z = 6}, -- posição da barreira 
    {x = 71, y = 618, z = 6}, -- posição da barreira 
    {x = 72, y = 618, z = 6}, -- posição da barreira 
    {x = 73, y = 618, z = 6}, -- posição da barreira
    {x = 74, y = 618, z = 6}, -- posição da barreira  
    {x = 75, y = 618, z = 6},   -- posição da barreira 
} 
function onTime()
    if isInArray(days, os.date("%A")) then
        for i = 1, #posis do
            local item = getTileItemById(posis[i], id).uid
            if item > 0 then
                doRemoveItem(item, 1)
            else
                doCreateItem(id, 1, posis[i])
            end
        end
    end
    return true
end

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

 

Para o evento ser executado em outros dias, basta usar o seguinte código:

local days = {"Saturday", "Sunday", "Monday"}                            --Mude os dias que o evento será executado nesta tabela. EM INGLÊS.
local id = 1547
local posis = {  
    {x = 71, y = 620, z = 6},  -- posição da barreira
    {x = 72, y = 620, z = 6},  -- posição da barreira 
    {x = 73, y = 620, z = 6}, -- posição da barreira 
    {x = 74, y = 620, z = 6}, -- posição da barreira 
    {x = 75, y = 620, z = 6}, -- posição da barreira 
    {x = 71, y = 618, z = 6}, -- posição da barreira 
    {x = 72, y = 618, z = 6}, -- posição da barreira 
    {x = 73, y = 618, z = 6}, -- posição da barreira
    {x = 74, y = 618, z = 6}, -- posição da barreira  
    {x = 75, y = 618, z = 6},   -- posição da barreira 
} 
function onTime()
    if isInArray(days, os.date("%A")) then
        for i = 1, #posis do
            local item = getTileItemById(posis[i], id).uid
            if item > 0 then
                doRemoveItem(item, 1)
            else
                doCreateItem(id, 1, posis[i])
            end
        end
    end
    return true
end

Deu certo kkkkkkkkkk vlww, tipo {"Saturday", "Sunday", "Monday"} tirei os } que funfo ^^

cara voce me ajuda d+++ :wow:

tipo é só coloca o dia que o evento vai?? pq to com um outro aqui kkk rep+++++ amanha e sempre pra vc ^^

 

 

tipo mano tem esse evento, foi voce que fez para mim kkkk como que coloca no globalevents?? se quiser ajudar dou rep+++

tchauu boa noite ^^

local teleport = {
    tpId = 1387,
    tpPos = {x = 173, y = 625, z = 3},    --Onde o teleporte será criado.
    tpToPos = {x = 173, y = 619, z = 3},  --Para onde ele levará.
}
function onSay(cid, words)
    local tp = doCreateTeleport(teleport.tpId, teleport.tpToPos, teleport.tpPos)
    doPlayerSendTextMessage(cid, 27, "You created the teleport.")
    doItemSetAttribute(tp, "aid", 3434)
    return true
end
Editado por Danielgomes (veja o histórico de edições)
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