개인 자료란 (JE)

  서버 커뮤니티

Profile Darius 대표칭호 없음
Profile

질문하기 스크립트

스크립트 구문 질문 제발요... ㅠㅠ

2020.12.28 조회 수 1568 추천 수 0
이해도 1.16 
게임버전 (JE) 페이퍼 
게임버전 (BE) 몰라요 
스크립트 버전 초보자(스크립트 구성요소, 기본문법은 알아요) 
스크립트 애드온 2.5.3 

플레이어에게 염색된 가죽 갑옷을 입히게 하는 구문이 뭔가요?


give구문에서 인챈트를 두 개 이상 적용시키는 구문이 뭔가요?


플레이어의 발 밑에 블록이 있을 때 그 블록에 불을 소환하는 구문은 어떻게 해야 할까요?


스크립트로 파티클을 할 수는 없나요?


기본 맵 말고 플레이어가 생성한 얼음만 없앨 수 있는 명령어나 스크립트 구문이 있을까요?


둔화율을 조정할 수 있나요?


방어력 시스템을 어떻게 구현하죠?


고정 데미지는 어떻게 구현하죠?

또 필수 애드온들 좀 알려주세요ㅠㅠ

아무리 올려도 답변이 없길래 올려봅니다...




6개의 댓글

스크립터브혼
2020.12.28

1. [Colour Items]이펙트로 염색 가능한 아이템을 염색 할 수 있습니다.

2. [Enchant/Disenchant]이펙트로 인첸트를 제거하거나 추가 할 수 있습니다.

3. [Location Of]익스프레션으로 플레이어 위치를 받아올수 있습니다.
[Direction]익스프레션의 under, below, down 등의 패턴으로 아랫 방향과 거리를 가르킬 수 있고,
[Block]익스프레션으로 Location에서 Direction만큼 이동한 위치의 블록을 받아 올 수 있습니다.
블록이 있는 경우는 공기가 아닌 경우 뿐이므로, 조건문을 통해 공기가 아닌지 확인하고
블록이라면 [Change]이펙트의 set 패턴으로 불로 바꿔주면 됩니다.

4. 애드온을 사용하거나, [Command]이펙트로 마인크래프트 기본명령으로 생성하는 방법이 있습니다.


5. 플레이어가 생성한 얼음을 구분할 수 있다면 가능합니다.
생성/파괴 시 위치정보를 저장/삭제 하는것이 이 기능의 핵심 기능일 것입니다.
그러나 피스톤으로 밀거나, 토치로 녹이는 등의 행위로 인해 데이터와 실제의 괴리가 발생할 수 있습니다.
이런 특수상황을 찾아 잘 보안하신다면 충분히 가능합니다.


6.  둔화율이 뭔지 모르겠습니다.


7. 스크립트에서 마인크래프트의 공격, 방어 시스템을 조정하는 방법은 [On Damage]이벤트를 활용하는 방법 뿐입니다.
해당 이벤트는 공격 또는 피격 될 때 발생합니다.
공격자는 [Attacker]익스프레션을, 피격자는 [Attacked]익스프레션을 사용합니다.
피해량(공격량)은 [Damage]익스프레션을 사용합니다.
피해량은 공격자의 공격력으로 피격자의 방어력이 적용되지 않은 순수한 공격량 입니다.


8. on Damage 이벤트를 취소하거나 damage를 0으로 만든 후에 피격자의 체력을 직접 깍으면 됩니다.

[Health]익스프레션으로 엔티티의 체력을 받아 올 수 있습니다. 체력에서 피해량 만큼 차감하면 됩니다.


9. 필수 애드온이라는건 없습니다.
스크립트에서 지원하지 않는 기능이 필요할 때 그에 맞는 애드온을 찾아서 사용하면 됩니다.

Darius
2020.12.28
@스크립터브혼

감사합니다!

혹시 투사체를 맞으면 6칸 범위 내의 랜덤한 위치로 tp되게 하려면 어떻게 해야되나요?

 

그리고 둔화율에 대해 말씀드리면 50%둔화나 70%둔화 이런 걸 말하는거예요!

스크립터브혼
2020.12.28
@Darius

[On Projectile Hit]이벤트가 투사체에 맞으면 발생하는 이벤트입니다.

6칸 범위 내의 위치는 [Blocks]익스프레션의 within 패턴으로 직육면체 모양 공간의 블록을 리스트로 가져오거나,

[Block Sphere]익스프레션으로 구형 모양 공간의 블록을 리스트로 가져와 임의의 한 자리를 선정하면 됩니다.

[Random]익스프레션으로 리스트 중에 한가지 요소를 임의 선택할 수 있습니다.

[Teleport]이펙트로 플레이어를 특정 위치로 이동시킬 수 있습니다.


느려지는 효과의 경우,

포션이펙트, 엔티티 Attribute, 아이템 Attribute 등으로 조절됩니다.
포션이펙트는 [Potion Effects]익스프레션으로 제거하면 됩니다.
엔티티 Attribute는 [Speed]익스프레션을 조절하면됩니다.
아이템 Attribute는 스크립트로 변경 할 수 없습니다. NBT를 수정 할 수 있는 애드온으로 아이템 NBT를 수정해야합니다.

Darius
2020.12.28
@스크립터브혼

감사합니다 ㅠㅠ

 

과도한 부탁이지만 혹시 실례가 안된다면 3번째 걸어가는 길에 불이 생기게 하는 구문이랑 5번째 플레이어가 생성한 얼음을 구분하는 법을 좀 적어주실 수 있을까요?

 

그리고 스크립트를 어디서 배우셨는지가 궁금합니다!

 

진짜 감사합니다... ㅠㅠ

Darius
2020.12.28
@Darius

투사체를 맞으면 6칸 범위 내의 랜덤한 위치로 tp되게 하려고 하는데... 구문이 계속 틀리다고 나와서... 혹시 수정해주실 수 있으신가요?

 

위에 Block Sphere이랑 Blocks를 어떻게 활용해야 될지 모르겠어요.,...

 

on projectile hit:

if {변수} is set:

teleport the player in radius 6 around the player

스크립터브혼
2020.12.28
@Darius

[Block Sphere]익스프레션은 특정 위치에서 일정 거리 내 모든 블럭을 리스트(List)형으로 반환합니다.
> blocks in radius %number% of %location%

특정위치는 %location%이고, 거리는 %number% 입니다.


[Teleport]이펙트는 엔티티를 특정 위치로 이동시킬 수 있구요.
teleport의 패턴을 보면 위치값이 location 입니다. locations가 아니므로 하나의 위치를 지정해야 한다는 의미입니다.
그러나 Darius님의 코드는 Block Sphere로 다수의 위치를 지정했기 때문에 오류가 생기는 것입니다.


위에 적어드렸다시피 [Random]익스프레션으로 리스트에서 임의의 한 값을 가져 올 수 있습니다.
> random block of %blocks%
block sphere에서 얻은 블록 리스트는 이 random으로 하나의 요소를 선택할 수 있습니다.


이렇게 선택한 요소를 가지고 플레이어를 텔레포트 시키면 됩니다.
> teleport %entities% to %location%
여기서 블록을 로케이션으로 바꾸려면 location of %block%을 사용하면됩니다.