거너아나
전문해결사
Marlozing 75866ebd9ffa4b9ab322231112059268
이해도 | 중급자(필요한 애드온을 찾아서 만들 수 있어요) |
---|---|
게임버전 (JE) | 1.18.2 |
게임버전 (BE) | 관련없음 |
스크립트 버전 | 2.6 |
스크립트 애드온 | SkBee, skDragon, Skellett, SkEtcR*, SkQuery, skRayFall, Skript, skUtilities* |
플레이어가 방패로 공격을 막는 이벤트는 존재하지 않기에
on damage 구문에서 범위 안에 플레이어가 있으면 막은 판정을 내려 하는데
감이 잡히지가 않습니다
어떻게 해야 할까요
방패는 플레이어가 향한 방향으로부터 최대 90도까지의 모든 방향(90도는 제외)에서 들어오는 공격을 막아준다. 즉, 플레이어 전방 방향 반구면을 거의 완전하게 막아준다. - minecraft wiki
qsef1256
2022.04.26https://skripthub.net/docs/?id=1143 의 예시 참고해보세요.
거너아나
2022.04.26만약 데미지를 받았을때 attacker가 어느 범위 안에 있어야 막은 걸 해야하는지 아니면 victim이 attacker가 보이면 막은걸로 해야 하는지 모르겠어서요
qsef1256
2022.04.26굳이 직접 만드실꺼면 attacker가 victim 을 보면 공격한 걸로 처리하는 게 맞을 것 같긴 한데요, (victim은 attacker가 공격했다는 걸 찾아오는데 부적절합니다)
저기 링크 예시에 적혀있다시피
이걸로 그냥 되는 걸로 보이거든요, 혹시 안되면 다시 적어주시고요.
거너아나
2022.04.27저 구문으로 하면 방패를 들고 있을때 뒤에서 때려도 저걸로 감지가 되서요
저게 공격이 막힌 판정이 아니라 방패를 들고 있는지 판정이라
qsef1256
2022.04.27조금 대충(?) 돌아가자면 https://forums.skunity.com/threads/right-click-shield.7224/ 를 참고해서 방패를 들고 있는지 확인하는 변수를 만들어두는 방법이 있겠죠. (남아있을 이유가 없는 변수이므로 쌓이는 거 막으려면 반드시 clear)
근데 솔직히 이 방법은 그렇게 추천하고 싶지가 않네요, 이거 우회 할 수 있는 방법이 좀 있을꺼라
그래서, 플레이어가 공격을 막으면 방패가 데미지를 입게 되므로 그걸 감지해보시는 건 어떤지요?
qsef1256
2022.04.27reflect 를 사용할 생각이 있으시다면 https://www.spigotmc.org/threads/playershieldevent.213997/ 를 한번 참고 해보시는 게 도움이 되실 것 같네요