Zombie Event
Zombie Event é um evento já muito conhecido em que os participantes são jogados em uma arena e zombies são invocados até que reste apenas um jogador, quando um jogador é tocado por um zombie ele é teleportado para o templo, o ultimo jogador a ficar na arena é definido como vencedor e o evento é finalizado ai. Já faz um bom tempo que tive a ideia de mudar o funcionamento deste tradicional evento e finalmente decidi por a mão na massa, irei explicar melhor o que foi alterado abaixo.
Sobre o sistema
O sistema foi testado apenas em OTX2, mas provavelmente também funcione em TFS 0.4
Pra quem quiser esse evento funcional para TFS 1.x, o @Movie se comprometeu a fazer a adaptação, então podem mandar mensagem privada pra ele cobrando que ele gosta.
Quem é familiar com filmes e séries de zombies sabe que quando um zombie morde alguém a pessoa que foi mordida não simplesmente morre, mas ela se torna um zombie, é isso que torna a ideia de um apocalipse zombie tão aterrorizante. Pensando nisso eu tive a ideia de alterar o sistema pra que quando algum player fosse pego por um zombie ele também se transformasse em um e não fosse simplesmente teleportado para o templo. Essa alteração deixa a interação entre os jogadores no evento mais dinâmica pois eventualmente se torna um jogo de Player vs Player ao invés de Player vs Maquina, embora no fim continue sendo uma batalha entre vivos e mortos.
Irei listar abaixo mais algumas características do evento.
É possivel configurar para que seja permitido ou não o uso de MCs.
Todos os jogadores ao entrar na arena ficam com a mesma velocidade.
Para tornar mais competitivo e divertido, não é permitido utilizar a função Follow dentro do evento.
O jogador que foi transformado em zombie que mais contaminar outros jogadores também recebe uma recompensa.
Os jogadores que forem transformados em zombies podem subir de rank conforme forem contaminando outros jogadores, alterando assim sua aparência e velocidade na arena.
Vídeozinho
Instalação
Este sistema utiliza de funções contidas na lib do link abaixo, então antes de mais nada é necessário adicionar esta lib no servidor.
Todos os arquivos necessários para instalação do evento estão anexados no tópico, irei apenas mostrar como deve ser configurado.
Toda configuração do sistema se encontra na lib do mesmo, segue abaixo explicação de como configurar.
startTime: configuração de horários para inicio do evento a depender do dia da semana (para cada horário diferente definido aqui um registro extra é necessário no globalevents.xml)
announcement: mensagem a ser exibida quando o teleporte para o evento for aberto.
startEvent: mensagem a ser exibida quando o teleporte para o evento for fechado e o evento iniciado.
playerBitten: mensagem a ser exibida quando um jogador for mordido por um zombie.
endEvent: mensagem a ser exibida quando o evento for finalizado.
notEnoughPlayers: mensagem a ser exibida quando não houver players suficiente para o evento.
zombiesRant: falas que serão randomicamente selecionadas para um jogador que foi transformado em zombie falar.
minOnlinePlayers: define a quantidade minima de jogadores online para o teleporte do evento ser aberto.
minPlayers: define a quantidade minima de jogadores na arena para o evento ser iniciado.
closeTeleportTime: tempo para fechar o teleporte após o anuncio (o valor deve ser definido em minutos).
countDownTime: tempo para iniciar o evento após o fechamento do teleporte (o valor deve ser definido em segundos).
zombieRatio: define a quantidade inicial de zombies baseado na quantidade de jogadores participando do evento.
playerSpeed: define a velocidade que o jogador terá durante o evento (valido apenas para jogadores que não foram transformados em zombies).
delayToTransform: define o intervalo para um jogador que foi mordido se transformar em um zombie (o valor deve ser definido em segundos).
allowMultiClient: pode ser definido como true ou false, se definido como falso não irá permitir a entrada de jogadores com o mesmo IP no evento.
rewards: define as recompensas a serem entregues tanto para o ultimo sobrevivente na arena como para o zombie que mais contaminar outros jogadores.
zombiesRank: define os ranks dos zombies, a quantidade de pontos necessária para avançar de rank, aparência e velocidade (valido apenas para jogadores que foram transformados em zombies).
area: define a área onde ocorrerá o evento, deve ser preenchido as coordenadas do ponto superior-esquerdo, ponto inferior-direito e o andar do local.
teleportAid: define a actionID a ser adicionado no teleporte de entrada do evento (este valor deve ser o mesmo a ser registrado na tag XML do script de movements).
teleportPos: define as coordenadas onde deve ser criado o teleporte de entrada para o evento.
Créditos
@LeandroRissa por testar todo o sistema.
event zombie.xml lib_zombie.lua zombieEvent.lua zombieEvent_creature.lua zombieEvent_movement.lua