이해도 | 입문자(아무것도 몰라요) |
---|---|
게임버전 (JE) | 1.12.2 |
게임버전 (BE) | 관련없음 |
마인크래프트 주식 스크립트 구매 판매만 되지 않습니다. 어디가 문제고 어디를 고쳐야 할까요?
variables:
{stock.hour} = 0
{stock.min} = 30
{stock.sec} = 0
{stock.hour2} = 0
{stock.min2} = 30
{stock.sec2} = 0
{stock.item} = 0
options:
s: &a[ &f주식 &a]
every 1 second:
if {stock.hour} > 0:
if {stock.min} > 0:
if {stock.sec} > 0:
remove 1 from {stock.sec}
if {stock.sec} = 0:
set {stock.sec} to 59
remove 1 from {stock.min}
if {stock.min} = 0:
if {stock.sec} > 0:
remove 1 from {stock.sec}
if {stock.sec} = 0:
remove 1 from {stock.hour}
set {stock.min} to 59
if {stock.hour} = 0:
if {stock.min} > 0:
if {stock.sec} > 0:
remove 1 from {stock.sec}
if {stock.sec} = 0:
set {stock.sec} to 59
remove 1 from {stock.min}
if {stock.min} = 0:
if {stock.sec} > 0:
remove 1 from {stock.sec}
if {stock.sec} = 0:
set {stock.hour} to {stock.hour2}
set {stock.min} to {stock.min2}
set {stock.sec} to {stock.sec2}
broadcast ""
broadcast "{@s} &f주식의 &e가격&f이 &c변동&f되었습니다."
broadcast ""
loop {stock.item} times:
add 1 to {_주식변동}
set {_주식가격.%{_주식변동}%} to {stockmoney::%{_주식변동}%}/10
set {_퍼센트} to random number between 0 and {_주식가격.%{_주식변동}%}
set {_퍼센트} to round {_퍼센트}
set {_확률} to random number between 0 and 1
if {_확률} < 0.5:
remove {_퍼센트} from {stockmoney::%{_주식변동}%}
set {stockcnmoney::%{_주식변동}%} to "&c▽ &f%{_퍼센트}% &c원"
if {_확률} >= 0.5:
add {_퍼센트} to {stockmoney::%{_주식변동}%}
set {stockcnmoney::%{_주식변동}%} to "&a△ &f%{_퍼센트}% &c원"
every 0.1 second:
loop all players:
if inventory name of current inventory of loop-player contains "{@s}":
set slot 45 of current inventory of loop-player to clock named "&a[ &f남은 변동 시간 &a]" with lore "&cㄴ &f%{stock.hour}%&e시 &f%{stock.min}%&e분 &f%{stock.sec}%&e초"
loop {stock.item} times:
add 1 to {_슬롯}
add 1 to {_주식개수}
set slot {_슬롯}-1 of current inventory of loop-player to {stockitem::%{_주식개수}%} named "%{stock::%{_주식개수}%}%" with lore "||&e[ &f가격 &e] &f%{stockmoney::%{_주식개수}%}% &c원||||&e[ &f가격 변동 &e] &f%{stockcnmoney::%{_주식개수}%}%"
stop
command /주식:
trigger:
open chest with 6 row named "{@s}" to player
set slot 36 of current inventory of player to glass pane named "&8[ &f구분선 &8]"
set slot 37 of current inventory of player to glass pane named "&8[ &f구분선 &8]"
set slot 38 of current inventory of player to glass pane named "&8[ &f구분선 &8]"
set slot 39 of current inventory of player to glass pane named "&8[ &f구분선 &8]"
set slot 40 of current inventory of player to glass pane named "&8[ &f구분선 &8]"
set slot 41 of current inventory of player to glass pane named "&8[ &f구분선 &8]"
set slot 42 of current inventory of player to glass pane named "&8[ &f구분선 &8]"
set slot 43 of current inventory of player to glass pane named "&8[ &f구분선 &8]"
set slot 44 of current inventory of player to glass pane named "&8[ &f구분선 &8]"
set slot 45 of current inventory of player to clock named "&a[ &f남은 변동 시간 &a]" with lore "&cㄴ &f%{stock.hour}%&e시 &f%{stock.min}%&e분 &f%{stock.sec}%&e초"
set slot 49 of current inventory of player to sign named "&c[ &f도움말 &c]" with lore "&eㄴ &f좌클릭 시 &e주식&f을 &c구매&f합니다.||&eㄴ &f우클릭 시 &e주식&f을 &c판매&f합니다."
set slot 53 of current inventory of player to emerald named "&e[ &f돈 &e]" with lore "&cㄴ &f%{money::%player%}% &c원"
loop {stock.item} times:
add 1 to {_슬롯}
add 1 to {_주식개수}
set slot {_슬롯}-1 of current inventory of player to {stockitem::%{_주식개수}%} named "%{stock::%{_주식개수}%}%" with lore "||&e[ &f가격 &e] &f%{stockmoney::%{_주식개수}%}% &c원||||&e[ &f가격 변동 &e] &f%{stockcnmoney::%{_주식개수}%}%"
command /주식설정 [<text>] [<integer>] [<integer>] [<integer>]:
permission: stock.op
trigger:
if arg 1 is not set:
message ""
message "{@s} &f/주식설정 &e추가 &c[&f가격&c] &f- 손에 든 아이템을 &c[&f가격&c] &f의 돈으로 주식에 &e추가&f합니다."
message "{@s} &f/주식설정 &e시간 &c[&f시&c] [&f분&c] [&f초&c] &f - 주식 변동 시간을 &c[&f시&c] [&f분&c] [&f초&c] &f로 &e설정&f합니다."
message "{@s} &f/주식설정 &e초기화 &f- 주식 아이템 목록을 &e초기화 &f합니다."
message ""
stop
if arg 1 is "추가":
if arg 2 is set:
add player's tool's name to {stock::*}
add player's tool to {stockitem::*}
add arg-2 to {stockmoney::*}
add "&8- &f0 &c원" to {stockcnmoney::*}
add 1 to {stock.item}
message ""
message "{@s} &f당신은 %player's tool's name% (이)라는 이름과 &c[ &f%arg-2% &c] &f이라는 가격에 주식을 &e추가&f하였습니다."
message ""
stop
else:
message ""
message "{@s} &f/주식설정 &e추가 &c[&f가격&c] &f- 손에 든 아이템을 &c[&f가격&c] &f의 돈으로 주식에 &e추가&f합니다."
message ""
stop
if arg 1 is "시간":
if arg 2 is set:
if arg 3 is set:
if arg 4 is set:
set {stock.hour} to arg-2
set {stock.min} to arg-3
set {stock.sec} to arg-4
set {stock.hour2} to arg-2
set {stock.min2} to arg-3
set {stock.sec2} to arg-4
message ""
message "{@s} &f주식 &c변동 시간&f이 &f%{stock.hour}%&e시 &f%{stock.min}%&e분 &f%{stock.sec}%&e초 &f로 변동되었습니다."
message ""
stop
else:
message ""
message "{@s} &f/주식설정 &e시간 &c[&f시&c] [&f분&c] [&f초&c] &f - 주식 변동 시간을 &c[&f시&c] [&f분&c] [&f초&c] &f로 &e설정&f합니다."
message ""
stop
else:
message ""
message "{@s} &f/주식설정 &e시간 &c[&f시&c] [&f분&c] [&f초&c] &f - 주식 변동 시간을 &c[&f시&c] [&f분&c] [&f초&c] &f로 &e설정&f합니다."
message ""
stop
else:
message ""
message "{@s} &f/주식설정 &e시간 &c[&f시&c] [&f분&c] [&f초&c] &f - 주식 변동 시간을 &c[&f시&c] [&f분&c] [&f초&c] &f로 &e설정&f합니다."
message ""
stop
if arg 1 is "초기화":
set {stock.item} to 0
delete {stock::*}
delete {stockitem::*}
delete {stockmoney::*}
delete {stockcnmoney::*}
message ""
message "{@s} &f당신은 &c주식&f을 &e초기화&f를 하셨습니다."
message ""
stop
on inventory click:
if inventory name of current inventory of player is "{@s}":
cancel event
if raw slot < 36:
if click item is not air:
if click type is left click:
if number of air in the player's inventory >= 1:
set {_lore::*} to lore of click item split by "||"
set {_money} to uncolored {_lore::2}
replace all "[" and "가격" and "]" and " " and "원" with "" in {_money}
set {_money} to uncolored {_money} parsed as integer
if {money::%player%} >= {_money}:
remove {_money} from {money::%player%}
set slot 53 of current inventory of player to emerald named "&e[ &f돈 &e]" with lore "&cㄴ &f%{money::%player%}% &c원"
give 1 of {stockitem::%clicked slot+1%} named "%{stock::%clicked slot+1%}%" to player
message ""
message "{@s} &f당신은 &e%{_money}% &f원을 사용하여 %{stock::%clicked slot+1%}% &f을 &c구매&f하였습니다."
message ""
stop
else:
message ""
message "{@s} &f당신의 &e인벤토리&f가 비어있는지 &c확인&f해주시기 바랍니다."
message ""
stop
if click type is right click:
if player has 1 of {stockitem::%clicked slot+1%} named "%{stock::%clicked slot+1%}%":
set {_lore::*} to lore of click item split by "||"
set {_money} to uncolored {_lore::2}
replace all "[" and "가격" and "]" and " " and "원" with "" in {_money}
set {_money} to uncolored {_money} parsed as integer
remove 1 of {stockitem::%clicked slot+1%} named "%{stock::%clicked slot+1%}%" from player's inventory
add {_money} to {money::%player%}
set slot 53 of current inventory of player to emerald named "&e[ &f돈 &e]" with lore "&cㄴ &f%{money::%player%}% &c원"
message ""
message "{@s} &f당신은 %{stock::%clicked slot+1%}% &f을 &c판매&f하여 &e%{_money}% &f를 얻었습니다."
message ""
stop
qsef1256
2022.07.20lore를 || 로 나누는건 1.7.10 때 방식입니다, 지금은 그렇게 안하고 하면 오류 납니다
qsef1256
2022.07.20그러니 lore of 아이템 식으로 바꾸시면 됩니다
그건 그렇고 every 1 second 까지는 봤는데, 0.1 second는 진짜 처음 보네요. 서버 렉 안걸리나요? tps 0.5는 잡아먹는다고 봐야 하는데요. 이거 안 쓰는게 좋을껍니다
qsef1256
2022.07.20참고로 떠먹여드리지 않을껍니다, 힌트를 드렸으니 찾아보면서 해결해보세요
qsef1256
2022.07.20힘들면 최신으로 넘어오시고요. 구버전이 오히려 유지관리 하기 힘듭니다