이해도 | 초보자 |
---|---|
게임버전 (JE) | 1.18.2 |
게임버전 (BE) | 관련없음 |
스크립트 버전 | 2.6.4 |
on death of player:
set the block at the victim to player head
add victim's location to {death::*}
set {death.%victim's location%} to victim
give 1 of skull of victim to victim
delete {인벤토리.%victim%::*}
set {_c.s} to 0
loop 103 times:
add slot {_c.s} of victim's inventory to {인벤토리.%victim%::*}
add 1 to {_c.s}
on right click:
if event-block is player head:
loop {death::*}:
loop players in radius 0.5 around loop-value-1:
wait 0.15 seconds
set {시체이름.%player%::*} to "%{death.%loop-value-1%}%님의 시체"
open chest with 6 row named "%{death.%loop-value-1%}%님의 시체" to player
play sound "block_stone_hit" with volume 1 with pitch 1 to player
set {_cs} to 0
loop 54 times:
set slot {_cs} of current inventory of player to {인벤토리.%{death.%loop-value-1%}%::%loop-number%}
add 1 to {_cs}
on inventory close:
loop all players:
if {시체이름.%player%::*} is "%loop-player%님의 시체":
play sound "block_stone_hit" with volume 1 with pitch 1 to player
delete {시체이름.%player%::*}
set {_c.s} to 0
delete {인벤토리.%loop-player%::*}
loop 54 times:
add slot {_c.s} of event-inventory to {인벤토리.%loop-player%::*}
add 1 to {_c.s}
플레이어가 죽는다면, 플레이어가 죽은 자리에 머리가 떨어지고 그 머리를 우클릭 시, 죽은 플레이어의 아이템이 들어있는 구문을 작성했습니다. 하지만 실험 중
loop players in radius 1 around loop-value-1:
이 구문으로 인해 서로 다른 플레어어가 머리에 가깝게 밀접해 있는다면 상자의 내용물이 뒤바뀌고 없어지는 등의 오류들이 발생합니다.
이것을 고치기 위해 clicked block's location을 사용해보려 했지만 머리가 깔리는 위치가 victim's location과 일치하지 않아 실패했습니다.
혹시 다른 방안이라던가, 오류를 수정할 수 있다면 도움 바랍니다 ㅠ
さくら
2023.02.22보여 주신 구문을 참고해서 수정이 필요해보이는 부분 찾아내서 수정도 해보고 해봤습니다.
on death of player:
set the block at the victim's location to player head
add victim's location to {death::*}
set {death.%victim's location%} to victim
give 1 of skull of victim to victim
clear {inventory.%victim%}
set {_c.s} to 0
loop 103 times:
add slot {_c.s} of victim's inventory to {inventory.%victim%::*}
add 1 to {_c.s}
on right click:
if event-block is player head:
loop {death::*}:
loop players within 0.5 blocks of loop-value-1:
wait 0.15 seconds
if {lock.%loop-value-1%} is not set:
set {lock.%loop-value-1%} to true
set {bodyname.%player%::*} to "%{death.%loop-value-1%}'s body"
open chest with 6 rows named "%{death.%loop-value-1%}'s corpse" to player
play sound "block.stone.hit" with volume 1 with pitch 1 to player
set {_cs} to 0
loop 54 times:
set slot {_cs} of player's inventory to {inventory.%{death.%loop-value-1%}%::%loop-number%}
add 1 to {_cs}
wait 1 second
clear {inventory.%player%}
loop 54 times:
add slot {_cs} of event-inventory to {inventory.%player%::*}
add 1 to {_cs}
delete {lock.%loop-value-1%}
else:
send "&cThis corpse is currently being looted by someone else." to player
on inventory close:
loop all players:
if {corpsename.%player%::*} is "%player%'s corpse":
play sound "block.stone.hit" with volume 1 with pitch 1 to player
delete {corpsename.%player%::*}
set {_c.s} to 0
clear {inventory.%player%}
loop 54 times:
add slot {_c.s} of event-inventory to {inventory.%player%::*}
add 1 to {_c.s}
"이 구문으로 인해 서로 다른 플레어어가 머리에 가깝게 밀접해 있는다면 상자의 내용물이 뒤바뀌고 없어지는 등의 오류들이 발생합니다."
이글을 참고하여 해결 방법을 하나 떠올린게 잠금 매니커즘 이용하는 최선의 방법을 떠올렸습니다.