bam_kang 078d53c99ce841b388efd41750efc71b
이해도 | 초보자 |
---|---|
게임버전 (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 구문은 바라보는 방향에 따라 달라지더군요 공격자를 중심으로 멀어지게 할수있나요?
그리고 발을 맞춰야 피격받던데 몸통으로 피격판정을 올릴순 없을까요?
qsef1256
2023.01.081. 일단 raycast만 하고 싶은 거라면 https://skripthub.net/docs/?id=933 이 있습니다. 플레이어 대상으로는 크로스 바에 있는 엔티티를 가리킵니다.
2. 엔티티가 바라보는 방향을 얻기 위해서는 https://skripthub.net/docs/?id=947 를 이용하시면 됩니다. 좀 가공이 필요하긴 합니다.
3. 함수 이름이 raycast 인데 데미지를 주고, 넉백을 주는 등 함수가 하는 일이 너무 많습니다. SRP 위반이므로 가능하면 좀 나누시기 바랍니다.
bbooljeli
2023.01.10감사합니다
근데 혹시 {_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.14xyz 각 한 부분만 따오는 Expression 이 있습니다, 그걸로 받아와서 원하는 좌표 +1 하시고 그걸로 새 Location을 함수 등으로 만들어서 하시면 될 것 같네요
bbooljeli
2023.01.14혼자 해결하긴 했지만 댓글 감사합니다