하잉91
대표칭호 없음
이해도 | 1.12 |
---|---|
게임버전 (JE) | 모드버킷 |
스크립트 애드온 | 잘 모르겠어요 ㅠㅠ |
돈 스크립트는 현재 쓰고 있어서 바꿨다가 괜히 가지고 있던 돈들이 다 날아갈까봐 너무 무섭고
배포중인 주식 스크립트(2차수정 가능) 받았는데 호환이 안돼서 이렇게 질문 올립니다.
아래는 주식스크립트와, 돈 스크립트 코드 입니다.
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
돈 스크립트 입니다.
options: 말머리: &a&l[ 야생 ] &f command /돈 [<string>] [<string>] [<integer>]: trigger: if arg 1 is not set: send "&f" send "{@말머리} 자신이 가지고 있는돈 : %player's money%" send "{@말머리} &f/돈 보내기 [닉네임] [금액] &7&l- &f해당 유저 에게 돈을 보냅니다." send "{@말머리} &f/돈 순위 &7&l- &f돈 순위를 확인 합니다." send "&f" player has permission "sk.money": send " &b&l* &6&l관리자 명령어 &b&l*" send "&f" send "{@말머리} &e&l/돈 주기 [닉네임] [금액] &7&l- &f해당 유저 에게 돈을 지급합니다." send "{@말머리} &e&l/돈 뺏기 [닉네임] [금액] &7&l- &f해당 유저 에게 돈을 뺏습니다." send "{@말머리} &e&l/돈 설정 [닉네임] [금액] &7&l- &f해당 유저의 돈을 설정 합니다." send "{@말머리} &e&l/돈 확인 [닉네임] &7&l- &f해당 유저의 소유 금액을 확인 합니다." send "&f" if arg 1 is "보내기": if arg 2 is set: if player's money >= arg 3: if arg 2 parsed as player is online: subtract arg 3 from player's money add arg 3 to arg 2 parsed as player's money send "{@말머리} %arg 2%님에게 ( %arg 3% ) 원 만큼 보냈습니다." send "{@말머리} %player%님이 ( %arg 3% ) 원 만큼을 보냈습니다." to arg 2 parsed as player else: send "{@말머리} 해당 플레이어는 오프라인입니다." else: send "{@말머리} 돈이 부족합니다." else: send "{@말머리} 돈을 받을 플레이어를 적어주세요." if arg 1 is "주기": player don't have permission "sk.money": send "{@말머리} 권한이 없습니다." exit if arg 2 is not set: send "{@말머리} 지급할 플레이어를 적어 주세요." exit if arg 3 is not set: send "{@말머리} 지급할 금액을 입력해 주세요." exit set {_PLAYER.a} to arg 2 parsed as player add arg 3 to money of {_PLAYER.a} send "{@말머리} &6&l%arg 2% &e&l님에게 &a&l%arg 3%원&e&l을 지급 했습니다 !" send "{@말머리} &c&l관리자&e&l로 부터 &a&l%arg 3%원&e&l을 지급 받았습니다 !" to {_PLAYER.a} exit if arg 1 is "뺏기": player don't have permission "sk.money": send "{@말머리} 권한이 없습니다." exit if arg 2 is not set: send "{@말머리} 뺏을 플레이어를 적어 주세요." exit if arg 3 is not set: send "{@말머리} 뺏을 금액을 입력해 주세요." exit set {_PLAYER.a} to arg 2 parsed as player if money of {_PLAYER.a} < arg 3: send "{@말머리} 해당 플레이어가 충분한 금액을 가지고 있지 않습니다." exit subtract arg 3 from money of {_PLAYER.a} send "{@말머리} &6&l%arg 2% &e&l님에게 &a&l%arg 3%원&e&l을 차감 시켯 습니다 !" send "{@말머리} &c&l관리자&e&l로 부터 &a&l%arg 3%원&e&l을 빼았겼습니다 !" to {_PLAYER.a} exit if arg 1 is "설정": player don't have permission "sk.money": send "{@말머리} 권한이 없습니다." exit if arg 2 is not set: send "{@말머리} 뺏을 플레이어를 적어 주세요." exit if arg 3 is not set: send "{@말머리} 뺏을 금액을 입력해 주세요." exit set {_PLAYER.a} to arg 2 parsed as player set money of {_PLAYER.a} to arg 3 send "{@말머리} &6%arg 2% &e&l님의 돈을 &a&l%arg 3%원 &e&l으로 설정 했습니다 !" exit if arg 1 is "순위": make player run cmd "/balancetop" as op exit if arg 1 is "확인": player don't have permission "sk.money": send "{@말머리} 권한이 없습니다." exit if arg 2 is not set: send "{@말머리} 확인할 플레이어를 적어 주세요." exit set {_PLAYER.a} to arg 2 parsed as player set {_INT.a} to money of {_PLAYER.a} send "{@말머리} &6%arg 2% &e&l님의 보유금액: &a%{_INT.a}%" exit else: send "{@말머리} 보유금액: &a%player's money%" exit
스크립터브혼
2020.11.22돈 스크립트는
player's money
로 vault API를 사용하지만, 주식 스크립트는{money::*}
변수로 자체적으로 값을 사용해서 그렇습니다. 이코노미 플러그인을 사용하신다면 주식 스크립트에서 돈이 빠지거나 추가되는 부분을player's money
로 변경하세요.하잉91
2020.11.22에센셜을 사용중입니다. 똑같이 {money::*} 이 부분을 player's money 로 변경하면 될까요 ?
스크립터브혼
2020.11.23코드 보고 수정하세요. 해보시고 모르겠으면 질문주세요.
하잉91
2020.11.23{money::&player&} 부분을 전부 player's money 로 변경 했고 나머진 제가 어떻게 하는지 몰라서 그대로 적용했는데 똑같이 이 주식.sk 에서만 돈 표시 되는 곳이 로 표시가 되고 구매가 안되네욥 도와주세요 형님 ㅠㅠ
스크립터브혼
2020.11.23스트립트를 전혀 모르신다면 제가 답변 해 드릴 수 없어요. 원작자에게 수정을 요청하셔야 합니다.
스크립트 Q&A 커뮤니티는 스크립트로 개발하면서 막히는 부분을 해결하기 위해 만들어진 곳입니다.
제가 답변드리는 경우는 어떤 코드를 사용하야하는지 모를 때, 알고리즘을 구성하지 못할때, 구현방법을 찾지 못할 때 등과 같이 개발에 어려움이 있는 경우입니다.
코드 검토, 수정 및 커미션 등의 요청은 스크립트 개발자 개개인에게 연락하시길 바랍니다.
원작자가 있는 경우엔 원작자에게 요청하셔야 합니다.
스크립트를 공부하시려면 네이버나 이곳 한마포에 있는 강좌글을 참고하시고
제일 먼저 공부 해야하는 것은 스크립트 설치 시 기본 설치 되어있는 예시파일들입니다.
예시파일들을 읽고 어떤 코드인지 알 수 있어야 합니다.