본문 바로가기
마인크래프트/플러그인

미스틱몹 플러그인(mythicmobs) - 4.메타스킬, 아이템드랍, 스포너를 제한하는 Conditions

by ENJCAT 2020. 5. 8.

메타스킬, 아이템드랍, 스포너의 스폰에 여러 조건을 적용하는 옵션.

 

여러 조건을 적용 할 때 작업을 실행하려면 모든 조건을 충족해야합니다. 

일부 조건에서는 배열을 쉼표로 나눌 수 있습니다. 

이러한 조건은 배열의 문자열 중 하나만 일치하면됩니다.

 

종류:

 

Condition 옵션은 크게 두가지로 나뉩니다.

  1. 일반조건: 엔티티나 특정위치, 혹은 둘다에서 사용될 수 있는 조건

  2. 비교조건: 두개의 엔티티나 두개의 위치가 필요한 조건. (이 조건은 Skill.yaml 의 TargetConditions 에서만 사용가능하다.)

 

스킬에 Conditions 노드에 사용되는 조건들 :

    모든 조건을 사용할 수 있습니다.
    캐스터는 항상 점검 할 엔티티(the entity that will be checked.)입니다. 모든 조건을 사용할 수 있지만

    여기서 두 엔티티를 비교하는 조건(비교조건)은 의미가 없습니다.

 

스킬에 TargetConditions노드에 사용되는 조건들 :

    모든 조건을 사용할 수 있습니다.
    TargetConditions 노드는 스킬에서만 사용할 수 있습니다.
    비교 엔티티는 해당 스킬의 대상에 따라 다릅니다.

    @self스킬을 사용하는 경우. 비교할 엔티티는 캐스터입니다.

    스킬이 다른 대상에게 발동되는 경우. 비교할 엔티티 or 위치는 대상입니다.

 

예)

1. Conditions 노드

 

Conditions:

- globalscore{objective=Test;v=>10}

 

이렇게 되었을때 해당조건을 점검할 엔티티는 시전자입니다.

 

 

2. TargetConditions노드

 

TargetConditions:

- globalscore{objective=Test;v=>10}

 

이렇게 되었을때 해당조건을 점검할 엔티티는 타겟입니다.

 

 

**CompareConditions 은 TargetConditions노드에서 의미가 있습니다.

왜냐면 두개의 엔티티를 비교할때 하나는 항상 시전자이고, 다른 하나는 타겟 엔티티이기 때문입니다.

Conditions 노드에서 사용한다면 시전자와 타겟은 항상 동일할것입니다.

 

4.0.0부터 새로운 format이 생겼습니다.

 

Conditions:

- condition [variable]

- condition [variable] [action]

- condition [variable] [action] [action_variable]

- condition{variable1=value;variable2=value} [action] [action_variable]

 

action변수는 각 조건마다, 조건이 충족되거나 충족되지 않을때 스킬이 어떻게 반응할것인지를 정합니다.

아래에 예시가 있습니다.

 

Conditions:

- day required

- stance defensive power 0.5

- stance{stance=defensive} power 0.5

- score{objective=test;value=>20} cancel

- haspotioneffect{type=POISON;level=>0;duration=0to100} true

 

action 변수의 종류

더보기
required (or true) 만족하지않으면 스킬을 실행X The condition is required for the skill to run.
cancel (or false) 만족하지 않아야지만 스킬실행 The skill will not run if this condition is met.
power [multiplier] 스킬의 힘을 수정 Modifies the skill's power (e.i. power 2.0 would double the skill's power)
cast [skill] 추가 스킬을 실행 Casts an additional skill if the condition is met.
castinstead [skill] 이 스킬 대신 다른스킬을 실행 Casts a different skill instead if the condition is met.

 

 

범위


범위값은 # to # 또는 #-# 형식을 사용합니다 . 

범위에서 음수를 사용하려면 "-"대신 "to"를 사용해야합니다. 

예를 들어 거리 조건은 다음과 같습니다.

 

TargetConditions:

- distance{d=1to10} true

 

Conditions:

- altitude{a=1-5}

 

conditions 의 종류

더보기
Condition                                    Type                                          Description

 

Altitude Entity Tests how far above the ground the target entity is
대상이 지상에서 얼마나 떨어져있는지
Biome Location Tests if the target is within the given list of biomes
대상이 지정된 바이옴내에 있는지 체크
BlockType Location Tests the material type present at the target location
대상 위치의 블록타입
Blocking Entity Tests if the target entity is blocking with a shield
대상이 방패로 막혀있는지
Crouching Entity Whether or not the target entity is crouching
대상이 웅크리고 있는지
Cuboid Compare Whether the target is within the given cuboid between location1 x location2
대상이 location1 x location2 직육면체 공간 안에 있는지
Dawn Location If the time is dawn, from 22000 to 2000 in-game time
시간이 새벽인지
Day Location If the time is day, from 2000 to 10000 in-game time
시간이 낮인지
Distance Compare Whether the distance between the caster and target is within the given range
캐스터와 대상 사이의 거리가 지정된 범위 내에 있는지 여부
DistanceFromSpawn Location Whether the distance from the world's spawn point to the target is within the given range
월드 스폰 지점에서 대상까지의 거리가 지정된 범위 내에 있는지 여부
Dusk Location If the time is dusk, from 14000 to 18000 in-game time.
시간이 황혼 인 경우
EntityType Entity Tests the entity type of the target
대상의 엔티티 타입
FallSpeed Entity If the fall speed of the target is within the given range
대상의 낙하속도가 지정된 범위내에 있는경우
FieldOfView Compare Tests if the target is within the given angle from where the caster is looking
대상이 시전자를 바라 보는 각도에서 주어진 각도 내에 있는지 테스트
Gliding Entity If the target is gliding
대상이 활공중인 경우
Globalscore Entity Checks a global scoreboard value
글로벌 스코어 보드 값을 확인
HasAura Entity Checks if the target entity has the given aura
대상 엔터티에 지정된 아우라가 있는지 확인
HasAuraStacks Entity Tests if the target has the given range of stacks from an aura
대상이 아우라에서 주어진 범위의 스택을 가지고 있는지 테스트
HasCurrency Entity If the target has the given amount of vault currency
지정된 금액의 금고통화가 있는경우
HasInventorySpace Entity If the target has the given amount of empty inventory space
지정된양의 빈 인벤토리가 있는경우
HasOwner Entity Tests if the target mob has an owner
타겟 몬스터의 소유자가 있는지
HasParent Entity Tests if the target mob has a parent
타겟 몬스터의 부모가 있는지
HasPotionEffect Entity Tests if the target entity has a potion effect
대상에 물약효과가 있는지
HasTag Entity Tests if the target has a scoreboard tag
대상에 스코어 보드 태그가 있는지 테스트
Haspermission Entity Tests if the target player has a permission
대상 플레이어에 권한이 있는지 테스트
Health Entity Matches the target's health
대상의 HP를 체크
Height Location Checks if the target's Y location is within a range
대상의 Y 위치가 범위 내에 있는지 확인
HeightAbove Location Checks if the target's Y location is above a value
대상의 Y 위치가 값보다 큰지 확인
HeightBelow Location Checks if the target's Y location is below a given value
대상의 Y 위치가 지정된 값보다 낮은 지 확인
Holding Entity Checks if the target is holding a given material
대상이 주어진 재료를 들고 있는지 확인
Inblock Location Checks the material at the target location
해당장소의 블럭을 확인
Incombat Entity If the target mob is considered in combat
Inside Location Checks if the target has a block over their head
머리위에 블럭이 있는지
ItemRecharging Entity Checks if the target's weapon is recharging
대상의 무기가 재충전 중인지 확인
LastDamageCause Entity Checks the target's last damage cause
대상의 마지막 피해 원인 확인
LastSignal Entity Matches the last signal received by the target mob
대상 몬스터가 받은 마지막 신호와 일치
Level Entity Checks the target MythicMob's level
대상 MythicMob의 레벨을 확인합니다
LightLevel Location Tests the light level at the target location
대상 위치의 밝기 수준을 테스트합니다
LineOfSight Compare Tests if the target is within line of sight of the caster
대상이 시전자의 시야 내에 있는지 테스트합니다.
LunarPhase Location Checks the target world's lunar phase
대상 세계의 달의 위상을 확인
Mobsinchunk Location Matches a range to how many mobs are in the target location's chunk
대상 위치 청크에있는 몹의 수와 범위를 일치시킵니다.
Mobsinworld Location Matches a range to how many mobs are in the target world
대상 세계에 몇 명의 몹이 있는지에 대한 범위와 일치
Mounted Entity If the target entity is riding a mount/vehicle
대상 엔티티가 마운트 / 차량을 타고있는 경우
Moving Entity If the target has a velocity greater than zero
대상의 속도가 0보다 큰 경우
MythicMobType Entity Checks the MythicMob type of the target mob
대상 군중의 MythicMob 타입을 확인합니다
Night Location If the time is night, from 14000 to 22000 in-game time
시간이 밤인지 확인
NotInRegion Location If the target location is not within the given WorldGuard region
대상 위치가 지정된 WorldGuard 지역 내에없는 경우
OffGCD Entity Checks if the target mob has an active Global Cooldown
대상 몹에 활성화 된 전역 재사용 대기 시간이 있는지 확인합니다.
OnBlock Location Matches the block the target entity is standing on
대상 엔티티가 서있는 블록과 일치
OnGround Entity If the target entity is standing on solid ground
대상 실체가 단단한 바닥에 서있는 경우
Outside Location If the target has open sky above them
대상의 위가 열린 하늘일 경우
Owner Compare Checks if the target entity is the owner of the caster
대상 엔터티가 캐스터의 소유자인지 확인
OwnerIsOnline Entity Checks if the owner of the target mob is online, if the owner is a player
소유자가 플레이어 인 경우 대상 몹의 소유자가 온라인인지 확인
Pitch Entity Checks if the pitch of the target entity is within a range
대상 엔티티의 pitch가 범위내에 있는지 확인
PlayerKills Entity Matches how many players the target mob has killed
대상 몹이 죽인 플레이어 수와 일치
PlayerNotWithin Location Checks if any players are within a radius of the target
플레이어가 대상의 반경 내에 없는지 확인
PlayerWithin Location Checks if any players are within a radius of the target
플레이어가 대상의 반경 내에 있는지 확인
Raining Location If it's raining in the target world
목표 세계에 비가 내린다면
Region Location If the target is within the given WorldGuard region
대상이 지정된 WorldGuard 지역 내에있는 경우
Score Entity Checks a scoreboard value of the target entity
대상 엔터티의 스코어 보드 값을 확인합니다
Stance Entity Checks the stance of the target mob
타겟 몬스터의 자세를 확인
StringEquals Meta Checks if value1 equals value2. Both values can use variables and placeholders.
value1이 value2와 같은지 확인합니다. 두 값 모두 변수와 자리 표시자를 사용할 수 있습니다.
Sunny Location If the weather is sunny in the target world.
대상 세계에서 날씨가 맑은 경우.
TargetInLineOfSight Entity Tests if the target has line of sight to their target
서로 마주보고있는지 확인
TargetNotInLineOfSight Entity Tests if the target doesn't have line of sight to their target
서로 마주보고있지 않는지 확인
TargetWithin Entity Tests if the target's target is within a certain distance
대상의 타겟이 범위내에 있는지 확인
Targetnotwithin Entity Tests if the target's target is not within a certain distance
대상의 타겟이 범위내에 없는지 확인
Targets Meta Tests if the number of inherited targets from the parent skilltree matches the given range.
상위 스킬 트리에서 상속 된 대상 수가 주어진 범위와 일치하는지 테스트합니다.
Thundering Location If it's thundering in the target world
대상월드에서 번개가 치고있는지
VariableInRange Meta Checks if the given numeric variable is within a certain range.
주어진 숫자 변수가 특정 범위 내에 있는지 확인합니다.
VariableIsSet Meta Checks if the given variable is set.
주어진 변수가 설정되어 있는지
Variableequals Meta Checks if the given variable has a particular value.
주어진 변수에 특정 값이 있는지 확인합니다.
Wearing Entity Tests what the target entity has equipped.
대상 엔터티가 무엇을 갖추고 있는지 테스트합니다.
World Location Checks the name of the target world.
대상 세계의 이름을 확인합니다.
Worldtime Location Matches a range against the target location's world's time.
대상위치의 세계시간과 범위를 일치시킨다
Yaw Entity Checks the yaw of the target entity against a range.

 

최종예시

 

FlameShock:

Cooldown: 1

Conditions:

- targetwithin 15

- targetinlineofsight true

- incombat

- stance aggressive

- onblock GRASS

- offgcd Skills:

- gcd{t=60}

- message{m="<mob.name> begins casting a spell"}

- potion{t=SLOW;d=60;l=7}

- delay 60 - message{m="<target.name> &ecombusts"}

- effect:particles{p=flame;a=20;hS=3;vS=1;s=0;y=2}

- potion{t=HARM;d=1;l=1}