개인 자료란 (JE)

  서버 커뮤니티

Profile 미잉 대표칭호 없음

Gang_seo 2815c8bf3dda4b5d97033d6be90516ae

Profile

질문하기 스크립트

경제관련 스크립트 질문 드립니다

2024.03.25 조회 수 29 추천 수 0
이해도 초보자 
게임버전 (JE) 관련없음 
게임버전 (BE) 관련없음 

일단 제가 원하는것은

/토양구매 를 하면

%player%의 price에 1000이 더해지고

더해진 만큼의 값을 지불하여 토양을 구매하는 방식으로

개인이 토양을 살때마다 가격이 높아지는.. 메커니즘을 원합니다


첫 시도때는

(돈을 빼는 명령어)

단순히 돈을 빼서 토양을 지급하는 방식

돈이 없어도 토양이 지급되서 실패했습니다


두번째 시도가 맨위 스크립트인데

수표를 발급하고 인벤에 "수표"라는 아이템이있으면

토양이 들어오는식? 을 원했지만

수표가 발급 되어도 인식이 안되서 else 값만 뜨더라구요


소지 돈을 확인하게 할까 했는데 제가 사용하는 경제플러그인(GEconomy)랑 스크립트랑 연동이 안되는것 같더라구요


스크립트 고수분들의 조언을 듣고 싶습니다

도와주시면 정말 ㅠ 감사드리겠습니다

6개의 댓글

슈퍼레몬
2024.03.25

Vault쓰세요...

Geconomy를 쓸 이유가 없어요

qsef1256
2024.03.25
@슈퍼레몬

근데 Vault는 단지 API를 제공할 뿐이고 Implementation은 별도로 있어야 해요.

미잉
2024.03.25
@슈퍼레몬

저 플러그인에 있는 시세변동이라는게 저한테 매력적으로 다가와서..ㅎ

qsef1256
2024.03.25

이 구현은 잠재적인 취약점을 내장하고 있습니다. 아이템 이름은 모루로 변경 가능하며, 정말 수표 아이템인지 확인하고 싶다면 lore의 내용까지 전부 확인해야 합니다. 좀 더 나간다면 NBT 까지 확인해볼 수는 있으나, 애당초 아이템은 그렇게 믿을만한 데이터 저장소가 아니기 때문에 수표라는 시스템을 처음부터 사용하지 않는 것이 좋습니다. (복사 버그 한방에 훅 갑니다.)


Vault를 까셨다면 player's money 구문을 사용하실 수 있을껍니다...가 원래 맞는건데 GEconomy 이거 소스 까보니까 Vault 지원이 없는 것 같거든요. 이건 이 플러그인이 이상한거라 어쩔 수 없고요.

미잉
2024.03.25
@qsef1256

일단 열정적인 답변 정말 감사드립니다ㅠㅠ (__)

qwer님이 조언해주신 말들을 토대로 그냥 매커니즘을 바꿔야겠다는 결정을 내렸습니다..

덕분에 빠른 결정을 내린것 같습니다 감사합니다

유아당
2024.03.25

제가 Geconomy 라는 플러그인에 대해서는 잘 모르지만 오류의 원인은 확실해요.

구매라는 것은 돈을 단순히 뺀다가 아니라 구매자의 소지금이 판매품보다 높다라는 가정이 있어야 해요.


해당 플러그인의 돈 시스템을 다른 플러그인과 연동하고 계시다면 복잡할 수 있겠지만

돈이 스크립트에만 쓰인다면 직접 돈 시스템을 구축하는게 좋아요.

단순히 {money::[플레이어]}로 지정할 수도 있고, 이 경우 {money}라는 값이 움직이는 경우를 유연하게 확인할 수 있어요.


5000원짜리 금괴 구매 예시

if {money::%player%} >= 5000:

   subtract 5000 from {money::%player%}

   give 1 gold ingot to player

else:

   send " [!] %5000 - %{money::%player%}% 만큼의 돈이 더 필요합니다!"


위의 예시를 이어서 증가하는 가격을 만들어볼게요.

토양을 한번 구매할 때 마다 다음 토양 구매가 5000의 추가금을 필요로 한다고 해볼게요.

if {money::%player%} >= 5000 + {plot::%player%}:

   subtract 5000 + {plot::%player%} from {money::%player%}

   add 5000 to {plot::%player%}

   give 1 gold ingot to player

else:

   send " [!] %5000 - %{money::%player%}% 만큼의 돈이 더 필요합니다!"


위의 예시에서는 구매를 진행할 때마다 전체 가격에 5000을 추가하고 있어요.

첫번째 구매는 5000 + 0 = 5000, 두번째 구매는 5000 + 5000 = 10000 . . .


토양 구매가 어떻게 연동되는지 잘 모르겠어서 정확한 답을 드리기는 어렵지만

구매 부분에서는 위의 구문을 사용하는 것으로 말끔하게 해결될거에요.

뉴스 및 창작물
/files/thumbnails/576/775/003/262x150.crop.jpg?20240426232553

아티클

이달의 블록: 단단한 진흙

학교가기싫다

2024-04-26

0

/files/thumbnails/115/774/003/262x150.crop.jpg?20240426223813

업데이트

마인크래프트 1.20.5 정식 업데이트

학교가기싫다

2024-04-24

0

/files/thumbnails/762/770/003/262x150.crop.jpg?20240418073724

레드스톤

T.B.H (고민중독) | 노트블럭 버전 | NoteBlock Cover [한국어 영어 중국어 가사 추가]

노트블럭전문가

2024-04-18

0

/files/thumbnails/218/767/003/262x150.crop.jpg?20240412130213

레드스톤

우리의 꿈 - 원피스 오프닝

노트블럭전문가

2024-04-12

0

/files/thumbnails/505/766/003/262x150.crop.jpg?20240411122306

레드스톤

기동전사 건담 수성의 마녀 | 노트블럭 커버 1

노트블럭전문가

2024-04-11

1