Ir para conteúdo

[Encerrado] [Pedido] Comando Evento


FlamesAdmin

Posts Recomendados

Gostaria de um comando para evento:

 

Exemplo: o Admin digita o comando !abrirevento, dai aparecera uma msg como broadcast verde, dai tal player digita !irevento, e ele irá para um certo lugar, dps disso, o Admin pode fechar o evento com !fecharevento .

 

Rep+

Link para o comentário
Compartilhar em outros sites

Primeiramente, em 050-function.lua, adicione a seguinte função:

function getPlayersInArea(pos1,pos2)
    local players = {}
    if pos1.x and pos1.y and pos2.x and pos2.y and pos1.z == pos2.z then
        for a = pos1.x, pos2.x do
            for b = pos1.y,pos2.y do
                local pos = {x=a,y=b,z=pos1.z}
                if isPlayer(getTopCreature(pos).uid) then
                    table.insert(players,getTopCreature(pos).uid)
                end
            end
        end
        return players
    else
        return false
    end
end
Agora, em data/talkactions, abra o arquivo .xml e adicione a seguinte tag:
<talkaction words="!abrirevento;!irevento;!fecharevento" script="evento.lua"/>
Depois, crie um arquivo com extensão .lua (em data/talkactions/scripts), nomeie-o evento, e coloque o seguinte conteúdo:
local cfg = {
    event_area = {x = x, y = y, z = z},        --Para onde os jogadores serão teleportados ao usar o comando !irevento.
    inicial_pos = {x = x, y = y, z = z},       --Coordenadas da posição superior esquerda da área.
    final_pos = {x = x, y = y, z = z},         --Coordenadas da posição inferior direita da área.
    id = xxx,                                  --Group ID necessário para abrir/fechar o evento.
}
 
function onSay(cid, words)
 
    if words == "!abrirevento" then
        if getPlayerGroupId(cid) <= (cfg.id - 1) then
            return doPlayerSendCancel(cid, "Sorry, not possible.")
        elseif getGlobalStorageValue(98762) >= 1 then
            return doPlayerSendCancel(cid, "O evento já está aberto!")
        end
        
        broadcastMessage("O evento foi aberto! Para participar, basta digitar !irevento.", 25)
        doPlayerSendTextMessage(cid, 27, "Você abriu o evento. Para fechá-lo, digite !fecharevento.")
        setGlobalStorageValue(98762, 1)
    elseif words == "!irevento" then
        if getGlobalStorageValue(98762) <= 0 then
            return doPlayerSendCancel(cid, "Desculpe, o evento está fechado.")
        elseif isInArea(getThingPos(cid), cfg.inicial_pos, cfg.final_pos) then
            return doPlayerSendCancel(cid, "Você já está participando do evento!")
        end
        
        doPlayerSendTextMessage(cid, 27, "Bem vindo, e boa sorte!")
        doTeleportThing(cid, cfg.event_area)
    elseif words == "!fecharevento" then
        if getPlayerGroupId(cid) <= (cfg.id - 1) then
            return doPlayerSendCancel(cid, "Sorry, not possible.")
        elseif getGlobalStorageValue(98762) <= 0 then
            return doPlayerSendCancel(cid, "O evento já está fechado!")
        end
        
        broadcastMessage("O evento foi fechado! Todos os jogadores que estavam na área foram teleportados para o Centro Pokémon!")
        doPlayerSendTextMessage(cid, 27, "Você fechou o evento. Para abrí-lo, digite !abrirevento.")
        setGlobalStorageValue(98762, 0)
        local jogadores = getPlayersInArea(cfg.inicial_pos, cfg.final_pos)
        if #jogadores >= 1 then
            for _, b in pairs(jogadores) do
                doTeleportThing(b, getTownTemplePosition(getPlayerTown(b)))
            end
        end
    end
    return true
end
Editado por zipter98
Link para o comentário
Compartilhar em outros sites

  • 4 years later...
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...