yusin12
대표칭호 없음
yusin_YT 1e0511f92377434a9f27b5724c29fbe3
게임버전 | 1.13.x, 1.14.x, 1.15.x, 1.16.x, 1.17.x, 1.18.x, 1.19.x |
---|
저번 시간에는 광산을 만들었으니 이제 판매 하는걸 만들어봐요!
1. 판매점
먼저 이렇게 판매처를 구현? 했습니당!
2. 구현 방법
1. 가장 가까이 있는 플레이어를 감지해서 조약돌이 있나 확인
2. 있다면 1개를 없애고 돈 500원 흭득!
일단은 저희.. 돈을 만들지 않았어요!
돈 부터 만들어 볼까요?
/scoreboard objectives add money dummy
이렇게 해서 만들 수 있고
execute as @a at @s run title @a actionbar [{"score":{"objective":"money","name":"@s"},"color":"green"},{"text":"원"}]
이렇게 해서 현재 가지고 있는 돈을 볼 수 있어요!
1. 가장 가까이 있는 플레이어를 감지해서 조약돌이 있나 확인
execute as @p[nbt={Inventory:[{id:"minecraft:cobblestone"}]}] at @s run clear @s cobblestone 1
만약 인벤토리에 조약돌이 있는 가장 가까운 플레이어가 존재한다면.. 그 엔티티 기준으로.. 조약돌 1개를 없앤다.
Inventory:[{id:"minecraft:ID"} | 인벤토리에 ID라는 아이템이 있다면.. |
cobblestone | 조약돌 |
stone | 돌 |
1. 반응형 무조건적 레드스톤 필요
2. 있다면 1개를 없애고 돈 추가
execute as @p[nbt={Inventory:[{id:"minecraft:cobblestone"}]}] at @s run scoreboard players add @s money 500
만약 인벤토리에 조약돌이 있는 가장 가까운 플레이어가 존재한다면.. 그 엔티티 기준으로.. 자기자신의 스코어보드money 값에 500을 더한다.
Inventory:[{id:"minecraft:ID"} | 인벤토리에 ID라는 아이템이 있다면.. |
cobblestone | 조약돌 |
2. 연쇄형 조건적 항상 활성화
반복 커맨드에서는 돈을 표시해주는 커맨드가 써져있어요! execute as @a at @s run title @a actionbar [{"score":{"objective":"money","name":"@s"},"color":"green"},{"text":"원"}]
이제 아이템ID랑 돈만 바꾸는 노다가를 뛰면 판매처는 금방 만들 수 있죠!!
마무리이~
다음에는 상점 마지막! 물건을 사는걸 만들어 볼거에요!
질문은 댓글도 좋고
디스코도 좋아요!(상민#3372)
ssinggu
2024.01.12혹시 execute as @p[nbt={Inventory:[{id:"minecraft:paper"}]}] at @s run clear @s minecraft:paper{display:{Name:'{"text":"10G","color":"gold","bold":true}',Lore:['{"text":"Gold","color":"yellow"}']},HideFlags:1,Enchantments:[{id:"minecraft:efficiency",lvl:1s}]} 1
이 구문에서 앞에 종이에 조건을 붙이려면 어떻게 해야할까요ㅠㅠ? clear 문장에는 붙일 수 있는데 앞쪽에는 어떻게 붙여야 할 지 모르겠네요...
paper{display:{Name:'{"text":"10G","color":"gold","bold":true}',Lore:['{"text":"Gold","color":"yellow"}']},HideFlags:1,Enchantments:[{id:"minecraft:efficiency",lvl:1s}]}
조건은 이겁니당!!
yusin12
2024.01.12아이템에 nbt를 확인 하신 뒤 쓰시면됩니다!
다만 조건이 너무 길면 오타나 복잡해지기 때문에 커스텀 nbt를 쓰는 것도 방법입니다
ssinggu
2024.01.14감사합니당!!!