Ir para conteúdo
  • 0

Você só pode deslogar depois de 5 segundos


Jhony Araujo

Pergunta

2 respostass a esta questão

Posts Recomendados

  • 0

@Jhony Araujo

 

A sua dúvida não tem relação com Website, e sim com Scritps.

 

Portanto, o tópico será movido para https://xtibia.com/forum/forum/1253-scripts/

Em 24/11/2024 em 22:50, Jhony Araujo disse:

Alguém tem algum script que quando o player entre no jogo tanto no account manager quanto no personagem tenha um cooldown de 5 segundos pra poder deslogar?

Sobre a sua dúvida, vá em data/creaturescripts/scripts e crie o arquivo loginCooldown.lua e adicione o seguinte código dentro:

 

local secondsLogout = 5 -- TEMPO EM SEGUNDOS PARA DESLOGAR APÓS ENTRAR NO JOGO
local storageCooldownLogin = 37777 -- STORAGE PARA ARMAZENAR O TEMPO EM SEGUNDOS QUE O PLAYER PRECISA ESPERAR PARA DESLOGAR APÓS ENTRAR NO JOGO
local message = "You only logout after " .. secondsLogout .. (secondsLogout > 1 and " seconds." or " seconds.")

function onLogin(cid)
    setPlayerStorageValue(cid, storageCooldownLogin, os.time() + secondsLogout)

    doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, message)

    return true
end

 

OBS: Garanta que a storage 37777 não está sendo usada. Caso esteja, substitua por outra.

 

Ainda na pasta data/creaturescripts/scripts, crie também o arquivo logoutCooldown.lua e adicione o seguinte código dentro:

 

local storageCooldownLogin = 37777 -- STORAGE QUE ARMAZENA O TEMPO EM SEGUNDOS QUE O PLAYER PRECISA ESPERAR PARA DESLOGAR APÓS ENTRAR NO JOGO

function onLogout(cid)
    if getPlayerStorageValue(cid, storageCooldownLogin) > os.time() then
        local seconds = getPlayerStorageValue(cid, storageCooldownLogin) - os.time()
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need to wait " .. seconds .. (seconds > 1 and " seconds " or " second ") .. "to logout.")
        return false
    end 

    return true    
end

 

OBS: Caso tenha substituído a storage no arquivo acima, lembre-se de substituir neste também.

 

Por fim, abre o arquivo data/creaturescripts/scripts/creaturescripts.xml e adicione as seguintes tags no fim do arquivo:

 

<!-- SCRIPTS PARA O PLAYER NÃO DESLOGAR 5 SEGUNDOS APÓS LOGAR -->
<event type="login" name="LoginCooldown" event="script" value="loginCooldown.lua"/>
<event type="logout" name="LogoutCooldown" event="script" value="logoutCooldown.lua"/>

 

É bom adicionar no fim do arquivo XML para evitar que tenha conflito com outros scripts de Login/Logout caso existam no seu servidor.

 

Testei e funcionou:

 

Login:

 

image.thumb.png.53f324fe70d39725c73ba0c3aeeaf00e.png

 

Logout:

 

image.thumb.png.4b4913c24ab4103451ae4ee17937220c.png

 

Lembrando que fiz o script em cima da TFS 0.3.6, então funciona para qualquer uma acima dessa.

 

Qualquer problema, me avise.

 

Atenciosamente

 

Link para o comentário
Compartilhar em outros sites

  • 0
Em 24/02/2025 em 21:29, Yan Oliveira disse:

@Jhony Araujo

 

A sua dúvida não tem relação com Website, e sim com Scritps.

 

Portanto, o tópico será movido para https://xtibia.com/forum/forum/1253-scripts/

Sobre a sua dúvida, vá em data/creaturescripts/scripts e crie o arquivo loginCooldown.lua e adicione o seguinte código dentro:

 

local secondsLogout = 5 -- TEMPO EM SEGUNDOS PARA DESLOGAR APÓS ENTRAR NO JOGO
local storageCooldownLogin = 37777 -- STORAGE PARA ARMAZENAR O TEMPO EM SEGUNDOS QUE O PLAYER PRECISA ESPERAR PARA DESLOGAR APÓS ENTRAR NO JOGO
local message = "You only logout after " .. secondsLogout .. (secondsLogout > 1 and " seconds." or " seconds.")

function onLogin(cid)
    setPlayerStorageValue(cid, storageCooldownLogin, os.time() + secondsLogout)

    doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, message)

    return true
end

 

OBS: Garanta que a storage 37777 não está sendo usada. Caso esteja, substitua por outra.

 

Ainda na pasta data/creaturescripts/scripts, crie também o arquivo logoutCooldown.lua e adicione o seguinte código dentro:

 

local storageCooldownLogin = 37777 -- STORAGE QUE ARMAZENA O TEMPO EM SEGUNDOS QUE O PLAYER PRECISA ESPERAR PARA DESLOGAR APÓS ENTRAR NO JOGO

function onLogout(cid)
    if getPlayerStorageValue(cid, storageCooldownLogin) > os.time() then
        local seconds = getPlayerStorageValue(cid, storageCooldownLogin) - os.time()
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need to wait " .. seconds .. (seconds > 1 and " seconds " or " second ") .. "to logout.")
        return false
    end 

    return true    
end

 

OBS: Caso tenha substituído a storage no arquivo acima, lembre-se de substituir neste também.

 

Por fim, abre o arquivo data/creaturescripts/scripts/creaturescripts.xml e adicione as seguintes tags no fim do arquivo:

 

<!-- SCRIPTS PARA O PLAYER NÃO DESLOGAR 5 SEGUNDOS APÓS LOGAR -->
<event type="login" name="LoginCooldown" event="script" value="loginCooldown.lua"/>
<event type="logout" name="LogoutCooldown" event="script" value="logoutCooldown.lua"/>

 

É bom adicionar no fim do arquivo XML para evitar que tenha conflito com outros scripts de Login/Logout caso existam no seu servidor.

 

Testei e funcionou:

 

Login:

 

image.thumb.png.53f324fe70d39725c73ba0c3aeeaf00e.png

 

Logout:

 

image.thumb.png.4b4913c24ab4103451ae4ee17937220c.png

 

Lembrando que fiz o script em cima da TFS 0.3.6, então funciona para qualquer uma acima dessa.

 

Qualquer problema, me avise.

 

Atenciosamente

 

Muito bom, aproveitei e usei no meu!! Funcionou perfeitamente.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...