ㅣㅕㅅㄷ
대표칭호 없음
이해도 | 1.12 |
---|---|
게임버전 (JE) | 모드버킷 |
스크립트 애드온 | 2.2-dev37 |
죽은'플레이어 주변 2칸에서 3초동안 앉아있다면' 되살린다.
구문은 어떻게 짜야 할까요
on sneak toggle: if player is sneaking for 4 seconds: loop all players in radius 2 of player: if {death.list::*} contains loop-player: remove loop-player from {death.list::*} set health of loop-player to 20 broadcast "&a%player%님이 %loop-player%님을 되살렸습니다"
이렇게 했는데 작동이 안되네요
스크립터브혼
2021.02.141. 주변에 죽은 플레이어가 있는지 판단하려면...
살아 있는 플레이어 기준에서죽은 플레이어는 [Entities]익스프레션으로 받아 올 수 없습니다.
모든 플레이어를 루프(Loop)하여, 죽어있어야 하고, 두 플레이어간 거리가 좁은 플레이어를 선별해야만 합니다.
엔티티가 죽어있는지 확인하는 컨디션은 [Is Alive]입니다.
> %entities% is alive
> %entities% is dead
두 좌표간 거리는 [Distance]익스프레션으로 받아 올 수 있습니다.
> distance between %location% and %location%
엔티티의 위치는 [Location Of]익스프레션으로 받아 올 수 있습니다.
> location of %entity%
2. 일정 시간 웅크리기(Sneak)했는지 판단하려면...
일정 시간 동안 계속 웅크리고 있었지 반복적으로 확인해야 합니다.
[Delay]이펙트로 코드 실행을 지연시킬 수 있습니다.
반복문(Loop) 안에 Delay를 사용하여 일정시간마다 반복하는 코드를 작성하시고,
그 안에 [Is Sneaking]컨디션 조건문으로 하여 웅크리지 않은 경우가 있으면 실패로 판단합니다.
> %players% is sneaking
반복문이 끝날때 까지 실패하지 않으면 성공으로 판단합니다.
3. 죽은 플레이어를 그 자리에 살려내려면...
1과 2의 판단이 모두 만족되어 살릴 수 있는 플레이어가 있다면
플레이어를 살려내기 전에 살려낼 플레이어의 위치를 변수에 먼저 저장합니다.
플레이어를 강제 리스폰하고나면 플레이어의 위치가 스폰지역으로 바뀌기 때문입니다.
[Force Respawn]이펙트로 강제 리스폰 시킨 후
> force %players% to respawn
[Teleport]이펙트로 저장했던 위치로 텔레포트하면 됩니다.
> teleport %entities% to %location%
스크립트 사용법을 잘 모르신다면 [입문자, 초보자를 위한 스크립트 강좌]를 참고하세요.
ㅣㅕㅅㄷ
2021.02.14제 설명이 부족했네요!! 죽은 플레이어를 말한 건 죽을정도의 데미지를 받으면 데미지 받는 이벤트를 취소하고 구속을 걸어 움직이지 못한 상태를 죽었다고 표현한 것입니다... 착오 드려 죄송합니다..!
3초동안 웅크리기는 어떻게 해결했는데 이게 죽은 사람이 웅크리기를 해도 적용이 돼서 자기자신을 살릴 수 있게 되었네요
혹시 해결방법이 있을까요..?
구문은 이런 식으로 작성 했습니다!
스크립터브혼
2021.02.14loop-player가 player와 같지 않다는 조건을 추가하세요
> player is not loop-player
ㅣㅕㅅㄷ
2021.02.14해결됐습니다!! 감사합니다!!