Ir para conteúdo
  • 0

Oi gente, Alguem poderia me ajudar no Script de !mudarpvp?


Jhony Araujo

Pergunta

Exemplo:

o player digita !mudarpvp uma vez ai então ele fica em modo no-pvp livre de attacks de outros players, si ele falar novamente !mudarpvp ele voltara a ser modo pvp, podendo ser atacado novamente, isso claro com um tempo de "Exausted" que seria de 1 dia.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Você pode implementar essa funcionalidade com o auxílio de armazenamento de valores de jogadores em Lua, usando a função os.time() para registrar o momento em que o comando foi usado e verificar se o período de "exaustão" passou. Aqui está um exemplo de como você pode fazer isso:

 

function onSay(cid, words, param)
    if param == "!mudarpvp" then
        local timeLastChanged = getPlayerStorageValue(cid, 99999) or 0 -- Verifica quando foi a última mudança
        local currentTime = os.time() -- Obtém o tempo atual em segundos

        if currentTime - timeLastChanged < 86400 then -- Verifica se não passou 1 dia desde a última mudança
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você ainda está em modo no-PvP. Aguarde mais um tempo para mudar novamente.")
            return true
        end

        if getPlayerStorageValue(cid, 100000) == 1 then -- Verifica se o jogador está atualmente em modo no-PvP
            doPlayerSetStorageValue(cid, 100000, 0) -- Modo PvP ativado
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você agora está em modo PvP. Outros jogadores podem atacá-lo.")
        else
            doPlayerSetStorageValue(cid, 100000, 1) -- Modo no-PvP ativado
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você agora está em modo no-PvP. Você está livre de ataques de outros jogadores.")
        end

        setPlayerStorageValue(cid, 99999, currentTime) -- Registra o momento da última mudança
    end
    return true
end


 

Neste exemplo:

O jogador digita "!mudarpvp".
O sistema verifica quanto tempo passou desde a última mudança de estado usando a diferença entre o tempo atual (os.time()) e o tempo registrado na última mudança.
Se não passou 1 dia desde a última mudança, o jogador recebe uma mensagem indicando que ele deve esperar mais um tempo.
Se passou 1 dia, o sistema muda o estado do jogador de PvP para no-PvP ou vice-versa, dependendo do estado atual.
O sistema registra o tempo da última mudança para garantir que o jogador não possa mudar novamente até que tenha passado um dia desde a última mudança.

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...