Criar Poderes
Sistema de Scripting do EliteMobs
A página seguinte descreve como criar Elite Scripts!
Esta é uma funcionalidade avançada e requer um conhecimento aprofundado do EliteMobs.
Nota: Elite Scripts podem ser adicionados como ficheiros de poder ou a ficheiros de bosses personalizados! Se usados como ficheiros de poder, podes adicioná-los como poderes normais aos bosses usando a configuração powers dos Bosses Personalizados, como habitualmente.
Adicionar um EliteScript
Para começar a adicionar um EliteScript a um boss, adiciona a seguinte entrada ao ficheiro do boss:
eliteScript:
Nota: O seguinte é extremamente sensível a maiúsculas/minúsculas e espaços! Certifica-te de que os teus espaços, quebras de linha e formatação geral correspondem aos exemplos!
Agora que declaraste o início do teu script, podes adicionar o teu script específico. Para este exemplo, vamos criar um script chamado Example:
eliteScript:
Example:
Os EliteScripts têm 5 secções diferentes: Events, Conditions, Zones, Actions e Cooldowns. Apenas Actions é obrigatório.
Vejamos um exemplo simples:
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: PUSH
Target:
targetType: SELF
vValue: 0,0.5,0
Cooldowns:
local: 60
global: 20
Este script faz com que um elite seja empurrado para cima quando atingido por um jogador, e não o fará novamente durante 3 segundos (e impedirá que outros poderes sejam acionados durante 1 segundo devido às configurações na secção Cooldowns).
Agora que conheces o formato geral de como os scripts são estruturados, é hora de aprender o que podes fazer com cada secção!
Events
Clica no link acima para aprender a usar eventos!
Targets
Clica no link acima para aprender a usar alvos!
Actions
Clica no link acima para aprender a usar ações!
Zones
Clica no link acima para aprender a usar zonas!
Conditions
Clica no link acima para aprender a usar condições!
Cooldowns
Clica no link acima para aprender a usar tempos de recarga!
Adicionar múltiplos EliteScripts
Podes ter múltiplas ações num evento, mas e se quiseres múltiplos scripts no mesmo boss? É tão simples como criar uma nova entrada de script! Vamos expandir o exemplo anterior e adicionar outro script:
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: PUSH
Target:
targetType: SELF
vValue: 0,0.5,0
Cooldowns:
local: 60
global: 20
Example2:
Events:
- PlayerDamagedByEliteMobEvent
Actions:
- action: SET_ON_FIRE
Target:
targetType: DIRECT_TARGET
Cooldowns:
local: 200
global: 60
Neste exemplo, adicionámos um segundo script chamado Example2. O Example2 vai incendiar o jogador que for danificado pelo boss, pois o targetType está definido como DIRECT_TARGET.
O cooldown deste script está definido para 200 ticks, o que significa que o boss só poderá incendiar jogadores a cada 10 segundos.
Criar poderes autónomos
Os poderes autónomos são quase inteiramente compostos pelo Elite Script. Existem apenas dois campos opcionais. Não te esqueças de que para os poderes autónomos funcionarem, devem ser colocados na pasta ~plugins/EliteMobs/powers.
Exemplo de poder autónomo:
isEnabled: true
powerType: UNIQUE
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: PUSH
Target:
targetType: SELF
vValue: 0,.3,0
Cooldowns:
local: 60
global: 20
isEnabled
Tal como em qualquer outro lugar do plugin, define se o poder está ativado.
powerType
O tipo de poder define como o poder é atribuído. Os valores são:
UNIQUE: O poder só será aplicado a bosses personalizados que tenham o poder definido na secção de poderes.DEFENSIVE/MISCELLANEOUS/OFFENSIVE: QUALQUER elite poderá obter estes poderes, e contarão para um subconjunto específico de poderes.MAJOR_ZOMBIE,MAJOR_SKELETON,MAJOR_BLAZE,MAJOR_ENDERMAN,MAJOR_GHAST: Apenas elites do tipo de entidade adequado poderão surgir naturalmente com estes poderes, e contarão como poderes maiores.
effect
Define o efeito visual ou material usado pelo poder. Isto é usado por alguns poderes codificados para definir o seu efeito visual de partículas ou material.
| Chave | Valores | Padrão |
|---|---|---|
effect | String | none |
powerCooldown
Define o tempo de recarga, em ticks, para o poder individual. Isto controla com que frequência este poder específico pode ser acionado.
| Chave | Valores | Padrão |
|---|---|---|
powerCooldown | Integer | 0 |
globalCooldown
Define o tempo de recarga global, em ticks, partilhado entre todos os poderes. Depois de este poder ser acionado, nenhum outro poder pode ser acionado até que o cooldown global expire.
| Chave | Valores | Padrão |
|---|---|---|
globalCooldown | Integer | 0 |
