개인 자료란 (JE)

  서버 커뮤니티

Profile 스크립트너무어려워요 대표칭호 없음

FREEDOM_0403 38ec4421b5394335bdc3038af96f5a52

Profile

질문하기 스크립트

고수님들 저 좀 도와주세요~ㅠㅠ

2021.05.24 조회 수 1132 추천 수 0
이해도 1.12 
게임버전 (JE) 페이퍼 
스크립트 버전 입문자(아무것도 몰라요) 
스크립트 애드온 Skript 2.2-dev36 

제가 폭발곡괭이 라는 스크립트를 만들었거든요?

edff96c8c4306e170f8404ea99be8560.png 

이걸 캐면 넒이: 3x3 높이:2 로 총 18칸 캐져야하거든요 근데 캐지긴하는데 블럭 자체로 캐져요.

만약 제가 석탄블럭을 캐면 석탄이 나와야하잖아요 근데 석탄블럭이 나오고

또 다이아블럭을 캐면 다이아가 나와야하는데 다이아블럭이 나옵니다 

또 돌을 캐면 조약돌이 나와야하는데 조약돌이 안나오고 돌이 나옵니다 

이거를 어떻게 수정해야될까요? 선생님들 꼭 해결 부탁드리겠습니다.

아 그리고 친구한테  op빼고 캐라고했는데 18칸이 안캐지고 1칸만 캐집니다 op없어도 실행할수있게 만들어 주시면 진짜 감사하겠습니다~!

18개의 댓글

거너아나
2021.05.25

펄미션 빼고 break loop-block using player's tool를 밑에 코드 2줄로 바꾸면 됩니다

@거너아나

저 블럭자체가 안나오게하는법은 없나요?

 

스크립터브혼
2021.05.25
@스크립트너무어려워요

drop 대신 break을 사용하시면 됩니다.

drop을 지우고 Marlozing님이 알려주신 코드를 넣어보세요.

@스크립터브혼

그럼

 command explosivepickaxe:

    aliases: epickaxe, ep, epick

    permission: epickaxe.use

    permission message: &7&l<< &4&lError&7&l >> &r&cYou do not have the required permission to perform this command

    trigger:

        give a diamond pickaxe of fortune 3 named "&a폭발곡괭이" to the player


on break:

    if player have permission "epickaxe.use":

        if player is holding a diamond pickaxe:

            if name of player's tool contains "&a폭발곡괭이":

                loop blocks in radius 1.8 of event-block:

                    add loop-block to {_explosive.%player%::*}

                    loop {_explosive.%player%::*}:

                        drop loop-block

                        set loop-block to air

제가 아직 초보여서 뭘 모르는데 여거 복사해서 고쳐주실수있을까요 선생님?

스크립터브혼
2021.05.27
@스크립트너무어려워요

아래서 두번째 줄 drop loop-block

이것을 break loop-block using player's tool

이걸로 바꾸시면 됩니다.

@스크립터브혼

아하 감사합니다

@스크립터브혼

선생님 근데 [Skript] Reloading vr.sk...

[19:54:12] [Server thread/ERROR]: Can't understand this condition/effect: break loop-block using player's tool (vr.sk, line 15: break loop-block using player's tool')

[19:54:12] [Server thread/INFO]: [Skript] Encountered 1 error while reloading vr.sk! 이렇게 뜨는데 어떻게해야되죠?

스크립터브혼
2021.06.01
@스크립트너무어려워요

using player's tool 이 부분을

using tool 로 바꿔보시고 그래도 오류가 나면 지우세요

break loop-block 이 부분만 남기시면 됩니다.


on break:
    if player have permission "epickaxe.use":
        if player is holding a diamond pickaxe:
            if name of tool of player contains "&a폭발곡괭이":
                loop blocks in radius 1.8 of event-block:
                    break loop-block

이걸 조금 정리하면

on break:
    player have permission "epickaxe.use"
    player is holding a diamond pickaxe
    name of tool of player contains "&a폭발곡괭이"
    break blocks in radius 1.8 of event-block

변수는 필요없습니다.

@스크립터브혼

감사합니다

 

@스크립터브혼

선생님 그래도 오류나는데 어떡하죠?

스크립터브혼
2021.06.06
@스크립트너무어려워요

오류 알려주세요

@스크립터브혼

[Skript] Reloading vr.sk...

[18:53:52] [Server thread/ERROR]: Can't understand this condition/effect: break loop-block (vr.sk, line 11: break loop-block')

[18:53:52] [Server thread/INFO]: [Skript] Encountered 1 error while reloading vr.sk! 이렇게 떠요

스크립터브혼
2021.06.10
@스크립트너무어려워요

'break loop-block' 이 코드 자체는 틀린게 없습니다.


loop-block은 loop문 안에 있어야 합니다.

안에 있다는 말은 들여쓰기가 되어 있다는 것이죠

if true is true:
    send "is true"

loop all playsers:
    send "hi" to loop-player

이런 코드처럼 if문, loop문 아래에 들여쓰기를 하는것으로 해당 코드 안에 있음을 표현합니다.

들여쓰기는 탭 한번 또는 띄어쓰기 네번으로 작성되어야 하고,

탭과 띄어쓰기를 혼용할 수 없습니다. 모든 들여쓰기가 탭이거나, 띄어쓰기 네번이거나 둘 중 하나만 해야합니다.


오탈자가 없는지 확인해보세요.

@스크립터브혼

command explosivepickaxe:

aliases: epickaxe, ep, epick

trigger:

give a diamond pickaxe of fortune 3 named "&a폭발곡괭이" to the player

 

on break:

if player have permission "epickaxe.use":

if player is holding a diamond pickaxe:

if name of tool of player contains "&a폭발곡괭이":

loop blocks in radius 1.8 of event-block:

break loop-block

이렇게 했는데 다 탭인데 그래도

[Skript] Reloading vr.sk...

[19:54:50] [Server thread/ERROR]: Can't understand this condition/effect: break loop-block (vr.sk, line 11: break loop-block')

[19:54:50] [Server thread/INFO]: [Skript] Encountered 1 error while reloading vr.sk! 이렇게 뜨네요

스크립터브혼
2021.06.12
@스크립트너무어려워요

아이고...

[Break] 다시 확인해보니 break 이펙트는 2.4 버전부터 지원됩니다.


기본명령어를 사용해서 해 보세요.

/fill <from> <to> <block> destroy


1.12.2 버전에서는 setblock을 사용하나봅니다.

/setblock ~ ~ ~ minecraft:air 0 destroy
@스크립터브혼

그럼

on break:

 

if player have permission "epickaxe.use":

 

if player is holding a diamond pickaxe:

 

if name of tool of player contains "&a폭발곡괭이":

 

loop blocks in radius 1.8 of event-block:

 

fill destroy 이렇게 하나요?

 

스크립터브혼
2021.06.20
@스크립트너무어려워요

명령어를 실행하려면 [Command] 이펙트를 사용해야합니다.

# ex1
make player execute command "/suicide"

# ex2
execute console command "/say Hello everyone


'/setblock ~ ~ ~ minecraft:air 0 destroy' 명령어에서 '~'는 좌표의 각각 x, y, z 성분을 의미합니다.

x, y, z 성분은 [Coordinate] 익스프레션으로 받습니다.

if x-coord of location of player > 100:


loop-block의 각 성분 값을 ~ 위치에 넣어서 명령어를 실행하세요

set {_x} to x-coord of loop-block
set {_y} to y-coord of loop-block
set {_z} to z-coord of loop-block
execute console command "/setblock %{_x}% %{_y}% %{_z}% minecraft:air 0 destroy"


용어나 코드에 대해 잘 이해가 안되신다면 [입문자, 초보자를 위한 스크립트 강좌]를 참고해보세요.

@스크립터브혼

에드온 다른게 필요하나요?

2dd02827cc5211b0f14380a674932426.png

8d353be9db7c7bbab9fa881cb079ca4c.png

플러그인이랑 에드온은 이렇게 있어요