개인 자료란 (JE)

  서버 커뮤니티

Profile bbooljeli 대표칭호 없음

bam_kang 078d53c99ce841b388efd41750efc71b

Profile

질문하기 스크립트

스크립트 질문입니다!

2023.01.08 조회 수 119 추천 수 0
이해도 초보자 
게임버전 (JE) 1.18.2 
게임버전 (BE) 관련없음 
스크립트 버전 2.6.3 

function raycast(p: player, length: number, dmg: number):

    set {_x} to 0

    set {_l} to 0

    set pitch of {_pit} to {_p}

    loop {_length} times:

        add 1 to {_x}

        add 1.25 to {_l}

        set {_rg%{_x}%} to location {_l} meters infront of {_p}

        set {_rg%{_x}%} to location 1.25 meters above {_rg%{_x}%}

    set {_x} to 0

    loop {_length} times:

        add 1 to {_x}

        wait 1 tick

        show 10 purple dust at {_rg%{_x}%}

        add 1 to {_x}

        show 10 purple dust at {_rg%{_x}%}

        loop entities in radius 1.5 around {_rg%{_x}%}:

            loop-entity is not {_p}

            damage loop-entity by {_dmg}

            push loop-entity backwards at speed 0.3

            stop

        loop blocks in radius 0.75 around {_rg%{_x}%}:

            if loop-block is not tall grass, short grass, snow layer, air or water:

                stop


이 구문에서 넉백을 추가하고 싶어요 push loop-entity backwards at speed 0.3 구문은 바라보는 방향에 따라 달라지더군요 공격자를 중심으로 멀어지게 할수있나요?


그리고 발을 맞춰야 피격받던데 몸통으로 피격판정을 올릴순 없을까요?

4개의 댓글

qsef1256
2023.01.08

1. 일단 raycast만 하고 싶은 거라면 https://skripthub.net/docs/?id=933 이 있습니다. 플레이어 대상으로는 크로스 바에 있는 엔티티를 가리킵니다.

2. 엔티티가 바라보는 방향을 얻기 위해서는 https://skripthub.net/docs/?id=947 를 이용하시면 됩니다. 좀 가공이 필요하긴 합니다.

3. 함수 이름이 raycast 인데 데미지를 주고, 넉백을 주는 등 함수가 하는 일이 너무 많습니다. SRP 위반이므로 가능하면 좀 나누시기 바랍니다.

bbooljeli
2023.01.10
@qsef1256

감사합니다

 

근데 혹시 {_rg%{_x}%} 같은 location 함수를 y좌표만 따로 올릴수 있나요?

예를 들어 {_rg%{_x}%} 의 좌표가 (100, 50 ,100) 이라면

set {_rg%{_dmx}%} to {_rg%{_x}%}

으로 {_rg%{_dmx}%}을 만들고

{_rg%{_dmx}%}의 y좌표만 1 올려서

{_rg%{_dmx}%}의 좌표가 (100, 51 ,100)이 되게끔요

qsef1256
2023.01.14
@bbooljeli

xyz 각 한 부분만 따오는 Expression 이 있습니다, 그걸로 받아와서 원하는 좌표 +1 하시고 그걸로 새 Location을 함수 등으로 만들어서 하시면 될 것 같네요

bbooljeli
2023.01.14
@qsef1256

혼자 해결하긴 했지만 댓글 감사합니다