FlamesAdmin 261 Postado Dezembro 24, 2013 Share Postado Dezembro 24, 2013 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 More sharing options...
zipter98 1101 Postado Dezembro 24, 2013 Share Postado Dezembro 24, 2013 O quê acontecerá com os jogadores que estiverem na área do evento, quando o ADM usar o comando para fechá-lo? Serão teleportados, certo? Se sim, poderia dizer para onde? Link para o comentário Compartilhar em outros sites More sharing options...
FlamesAdmin 261 Postado Dezembro 24, 2013 Autor Share Postado Dezembro 24, 2013 Sim, pro CP. Link para o comentário Compartilhar em outros sites More sharing options...
zipter98 1101 Postado Dezembro 24, 2013 Share Postado Dezembro 24, 2013 (editado) 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 Dezembro 24, 2013 por zipter98 Link para o comentário Compartilhar em outros sites More sharing options...
FlamesAdmin 261 Postado Dezembro 24, 2013 Autor Share Postado Dezembro 24, 2013 Obrigado mais uma vez, Rep+ Link para o comentário Compartilhar em outros sites More sharing options...
zipter98 1101 Postado Dezembro 24, 2013 Share Postado Dezembro 24, 2013 Tópico movido para a seção de dúvidas e pedidos resolvidos. Link para o comentário Compartilhar em outros sites More sharing options...
Stigal 584 Postado Abril 21, 2018 Share Postado Abril 21, 2018 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 More sharing options...
Posts Recomendados