이해도 | 초보자 |
---|---|
게임버전 (JE) | 1.12.2 |
게임버전 (BE) | 관련없음 |
아래의 스크립트인데
op가 있을때는 open_cube_gui가 정상적으로 작동하는데
op가 없을때는 open_cube_gui가 오류 메시지도 없이 그냥 작동을 안하네요.
막상 op없이 '/큐브열기' 명령어 사용하면 열리긴하는데..
트리거 스크립트를 통해 아이템 클릭시에 열리게 하고싶은데 무슨 오류인지를 모르겠네요 ㅠㅠㅠ 도와주세요!
options:
p: &6&l [DOKKISV]&f
function get_cube_rate() :: text:
set {_n} to random integer between 0.9 and 1000
if {_n} is between 1 and 900:
return "N"
else if {_n} is between 901 and 989:
return "E"
else if {_n} is between 990 and 999:
return "U"
else if {_n} is 1000:
return "L"
function get_cube_options(r: text, n1m: number, n1a: number, n2m: number, n2a: number, e1m: number, e1a: number, e2m: number, e2a: number, u1m: number, u1a: number, u2m: number, u2a: number, leg: number) :: numbers:
if {_r} is "N":
add random integer between {_n1m} and {_n1a} to {_return::*}
add random integer between {_n2m} and {_n2a} to {_return::*}
else if {_r} is "E":
add random integer between {_e1m} and {_e1a} to {_return::*}
add random integer between {_e2m} and {_e2a} to {_return::*}
else if {_r} is "U":
add random integer between {_u1m} and {_u1a} to {_return::*}
add random integer between {_u2m} and {_u2a} to {_return::*}
else if {_r} is "L":
if {_leg} is 1:
add 5 to {_return::*}
set {_n} to random integer between 0.9 and 10
if {_n} is between 1 and 9:
add 3 to {_return::*}
else:
add 4 to {_return::*}
else if {_leg} is 2:
set {_rr} to random integer between 9 and 10
if {_rr} is 10:
add {_rr} to {_return::*}
add random integer between 5 and 6 to {_return::*}
else:
add {_rr} to {_return::*}
add 6 to {_return::*}
return {_return::*}
function open_cube_gui(p: player):
set {_inv} to chest with 3 row named "{@p} &7큐브"
loop 27 times:
set slot loop-value - 1 of {_inv} to black stained glass pane named "&f"
set slot 10, 13, 16 of {_inv} to air
set slot 13 of {_inv} to anvil named "&6&l[ &f큐브 사용하기 &6&l]" with lore "&f" and " &f모루를 클릭하시면 강화가 시작됩니다." and " &f큐브 사용에는 비용이 들어가니 참고해주세요. &f" and ""
open {_inv} to {_p}
function return_cube_color(r: text) :: text:
if {_r} is "N":
return "&a&l"
else if {_r} is "E":
return "&5&l"
else if {_r} is "U":
return "&6&l"
else if {_r} is "L":
return "&c&l"
function return_cube_display(r: text) :: text:
if {_r} is "N":
return "일반"
else if {_r} is "E":
return "에픽"
else if {_r} is "U":
return "유니크"
else if {_r} is "L":
return "레전더리"
on right click:
#if player is "ChoRym":
# set {cube::anvil} to event-location
if event-location is {cube::anvil}:
cancel event
open_cube_gui(player)
command /강화불가 [<text>]:
trigger:
player is op
if arg 1 is not set:
message "{@p} 들고있는 템 기준으로 설정"
message "{@p} /강화불가 삭제"
message "{@p} /강화불가 추가"
else if arg 1 is "삭제":
delete {cube::no::%uncolored player's tool's name%}
else if arg 1 is "추가":
set {cube::no::%uncolored player's tool's name%} to true
on inventory click:
if inventory name of current inventory of player is "{@p} &7큐브":
if "%clicked item's name%" is "&f" or "&6&l[ &f큐브 사용하기 &6&l]":
cancel event
if "%clicked item's name%" is "&6&l[ &f큐브 사용하기 &6&l]":
if item amount of slot 10 of current inventory of player is not 1:
message "{@p} 아이템은 한 개만 올려주세요." to player
play sound "entity.villager.no" with volume 1 and pitch 1 to player
stop
if {cube::no::%uncolored slot 10 of current inventory of player's name%} is set:
message "{@p} 옵션 부여가 불가능한 아이템입니다." to player
play sound "entity.villager.no" with volume 1 and pitch 1 to player
stop
if slot 10 of current inventory of player is air:
message "{@p} 강화 장비랑 큐브를 넣어주세요." to player
play sound "entity.villager.no" with volume 1 and pitch 1 to player
stop
if "%uncolored slot 10 of current inventory of player's name%" doesn't contain "투구" or "갑옷" or "바지" or "부츠":
message "{@p} 갑옷만 잠재 옵션 부여가 가능합니다." to player
play sound "entity.villager.no" with volume 1 and pitch 1 to player
stop
if slot 16 of current inventory of player is {cube::cube}:
if player's money < 15000:
send player title "{@p}" with subtitle " &f큐브 강화에 사용되는 비용이 부족합니다." with 0 tick fade in and 0 tick fade out
close player's inventory
play sound "block.anvil.destroy" with volume 1 and pitch 1 to player
stop
remove 15000 from player's money
set {_c} to get_cube_rate()
set {_o::*} to get_cube_options({_c}, 0, 1, 0, 1, 2, 3, 2, 3, 3, 4, 3, 4, 1)
set 7st line of lore of slot 10 of current inventory of player to " %return_cube_color({_c})%[%{_c}%] &f%return_cube_display({_c})% 잠재옵션"
set 8st line of lore of slot 10 of current inventory of player to " %return_cube_color({_c})%┖&f 흡혈 확률 +%{_o::1}%%%"
set 9st line of lore of slot 10 of current inventory of player to " %return_cube_color({_c})%┖&f 자연 치유 +%{_o::2}%"
set slot 13 of current inventory of player to anvil named "&6&l[ &f큐브 사용하기 &6&l]" with lore "" and " %return_cube_color({_c})%[%{_c}%] &f%return_cube_display({_c})% 잠재옵션" and " %return_cube_color({_c})%┖&f 흡혈 확률 +%{_o::1}%%%" and " %return_cube_color({_c})%┖&f 자연 치유 +%{_o::2}%" and "&f"
if {_c} is "U":
broadcast ""
broadcast " &6&l▪ &f축하합니다. &e&o&l%player%&f 님께서 &6&l&oUnique&f 강화에 성공했습니다.&6&o&l"
broadcast ""
broadcast " &e&l▪ &f사용된 장비 &7&l( %name of slot 10 of current inventory of player% &7&l)"
broadcast " &c&l▪ &f부여된 옵션 &7&l( %return_cube_color({_c})%&f 흡혈 확률 &e&l&o+%{_o::1}%%% &7&l/ %return_cube_color({_c})%&f 자연 치유 &e&l&o+%{_o::2}% &7&l)"
broadcast ""
play sound "ui.toast.challenge_complete" with volume 1 and pitch 1 to player
else if {_c} is "L":
broadcast ""
broadcast " &6&l▪ &f축하합니다. &e&o&l%player%&f 님께서 &c&l&oLegend&f 강화에 성공했습니다.&6&o&l"
broadcast ""
broadcast " &e&l▪ &f사용된 장비 &7&l( %name of slot 10 of current inventory of player% &7&l)"
broadcast " &c&l▪ &f부여된 옵션 &7&l( %return_cube_color({_c})%&f 흡혈 확률 &e&l&o+%{_o::1}%%% &7&l/ %return_cube_color({_c})%&f 자연 치유 &e&l&o+%{_o::2}% &7&l)"
broadcast ""
play sound "ui.toast.challenge_complete" with volume 1 and pitch 1 to player
else if slot 16 of current inventory of player is {cube::edi}:
if player's money < 30000:
send player title "{@p}" with subtitle " &f큐브 강화에 사용되는 비용이 부족합니다." with 0 tick fade in and 0 tick fade out
close player's inventory
play sound "block.anvil.destroy" with volume 1 and pitch 1 to player
stop
remove 30000 from player's money
set {_c} to get_cube_rate()
set {_o::*} to get_cube_options({_c}, 1, 3, 0, 1, 4, 6, 2, 3, 7, 9, 4, 5, 2)
set 11st line of lore of slot 10 of current inventory of player to " %return_cube_color({_c})%[%{_c}%] &f%return_cube_display({_c})% 보조옵션"
set 12st line of lore of slot 10 of current inventory of player to " %return_cube_color({_c})%┖&f 치명타 확률 +%{_o::1}%%%"
set 13st line of lore of slot 10 of current inventory of player to " %return_cube_color({_c})%┖&f 치명타 데미지 +%{_o::2}%"
set slot 13 of current inventory of player to anvil named "&6&l[ &f큐브 사용하기 &6&l]" with lore "" and " %return_cube_color({_c})%[%{_c}%] &f%return_cube_display({_c})% 보조옵션" and " %return_cube_color({_c})%┖&f 치명타 확률 +%{_o::1}%%%" and " %return_cube_color({_c})%┖&f 치명타 데미지 +%{_o::2}%" and ""
if {_c} is "U":
broadcast ""
broadcast ""
broadcast " &6&l▪ &f축하합니다. &e&o&l%player%&f 님께서 &6&l&oUnique&f 강화에 성공했습니다.&6&o&l"
broadcast ""
broadcast " &e&l▪ &f사용된 장비 &7&l( %name of slot 10 of current inventory of player% &7&l)"
broadcast " &c&l▪ &f부여된 옵션 &7&l( %return_cube_color({_c})%&f 치명타 확률 &e&l&o+%{_o::1}%%% &7&l/ %return_cube_color({_c})%&f 치명타 데미지 &e&l&o+%{_o::2}% &7&l)"
broadcast ""
play sound "ui.toast.challenge_complete" with volume 1 and pitch 1 to player
else if {_c} is "L":
broadcast ""
broadcast ""
broadcast " &6&l▪ &f축하합니다. &e&o&l%player%&f 님께서 &c&l&oLegend&e&f 강화에 성공했습니다.&6&o&l"
broadcast ""
broadcast " &e&l▪ &f사용된 장비 &7&l( %name of slot 10 of current inventory of player% &7&l)"
broadcast " &c&l▪ &f부여된 옵션 &7&l( %return_cube_color({_c})%&f 치명타 확률 &e&l&o+%{_o::1}%%% &7&l/ %return_cube_color({_c})%&f 치명타 데미지 &e&l&o+%{_o::2}% &7&l)"
broadcast ""
play sound "ui.toast.challenge_complete" with volume 1 and pitch 1 to player
else if slot 16 of current inventory of player is {cube::reset}:
if player's money < 100000:
send player title "{@p}" with subtitle " &f옵션 초기화에 사용되는 비용이 부족합니다." with 0 tick fade in and 0 tick fade out
close player's inventory
play sound "block.anvil.destroy" with volume 1 and pitch 1 to player
stop
remove 100000 from player's money
set {_c} to true
if "%uncolored 7st line of lore of slot 10 of current inventory of player%" contains "[?]":
add 1 to {_o}
if "%uncolored 11st line of lore of slot 10 of current inventory of player%" contains "[?]":
add 1 to {_o}
if {_o} is 2:
message "{@p} 설정된 잠재 옵션이 없습니다." to player
play sound "entity.villager.no" with volume 1 and pitch 1 to player
stop
set slot 13 of current inventory of player to anvil named "&6&l[ &f큐브 사용하기 &6&l]" with lore " &f모루를 클릭하시면 강화가 시작됩니다." and " &f큐브 사용에는 비용이 들어가니 참고해주세요. &f" and ""
set 7st line of lore of slot 10 of current inventory of player to "&7&l [?] &f큐브 잠재옵션"
set 8st line of lore of slot 10 of current inventory of player to " &7&l┖&7 옵션 없음"
set 9st line of lore of slot 10 of current inventory of player to " &7&l┖&7 옵션 없음"
set 11st line of lore of slot 10 of current inventory of player to "&7&l [?] &f큐브 보조옵션"
set 12st line of lore of slot 10 of current inventory of player to " &7&l┖&7 옵션 없음"
set 13st line of lore of slot 10 of current inventory of player to " &7&l┖&7 옵션 없음"
{_c} is set
remove 1 of slot 16 of current inventory of player from slot 16 of current inventory of player
play sound "block.anvil.use" with volume 1 and pitch 1 to player
stop
on inventory close:
if inventory name of current inventory of player is "{@p} &7큐브":
give slot 10 of current inventory of player to player
give slot 16 of current inventory of player to player
stop
command /큐브 [<text>]:
trigger:
player is op
if arg 1 is not set:
message "{@p} /큐브 잠재큐브설정" to player
message "{@p} /큐브 에디큐브설정" to player
message "{@p} /큐브 초기화큐브설정" to player
message "{@p} /큐브 열기" to player
message "{@p} /큐브 모루설정" to player
else if arg 1 is "잠재큐브설정":
set {cube::cube} to player's tool
message "{@p} 잠재 큐브가 들고 있는 아이템으로 설정되었습니다."
else if arg 1 is "에디큐브설정":
set {cube::edi} to player's tool
message "{@p} 에디 큐브가 들고 있는 아이템으로 설정되었습니다."
else if arg 1 is "초기화큐브설정":
set {cube::reset} to player's tool
message "{@p} 초기화 큐브가 들고 있는 아이템으로 설정되었습니다."
else if arg 1 is "열기":
open_cube_gui(player)
else if arg 1 is "모루설정":
set {cube::anvil} to location of block at player's location
message "{@p} %{cube::anvil}%"
stop
command /큐브열기:
trigger:
open_cube_gui(player)
windy_wind
2024.09.16txt나 sk로 깔끔하게 올려주세용