이해도 | 입문자 |
---|---|
게임버전 (JE) | 1.19.2 |
게임버전 (BE) | 관련없음 |
스크립트 버전 | 2.6.3 |
스크립트 구문을 하나 짜고 싶은데 잘 안됩니다....
완전 입문자이니 구문 어떻게 짜는지 알려주시면 감사하겠습니다
예를 하나 들어보겠습니다
"흙 블럭을 부수면 흙 블럭이 부서지지 않고 25%의 확률로 돌이, 25%의 확률로 모래가, 25%의 확률로 참나무가, 25%의 확률로 다이아몬드가 드랍됨
단, 흙 블럭을 20번 부술 시 흙 블럭이 부서지고 그 자리에 돌 블럭이 생김"
일단 아랫줄은 감도 안잡히고요.... 윗줄은 시도를 해봤습니다
on break of dirt:
cancel event
chance of 30%
drop 1 stone
chance of 30%
drop 1 sand
chance of 30%
drop 1 oak log
chance of 10%
drop 1 diamond
이렇게 적었는데.... 확률이 좀 이상하게 적용되는거 같습니다
흙 블럭을 부수니까 대부분은 아무것도 안나오고 가끔 돌은 나옵니다
돌은 30% 잘 적용되는거 같아요
그런데 정말 아주아주 드물게 모래는 나오지만 참나무랑 다이아몬드는 나오는걸 본 적이 없습니다
확률 적용이.... 제가 아는 거랑은 좀 다르게 적용되나 봐요....
그래서 결국은 포기하고 여기에다가 질문 드립니다 ㅠㅠ 알려주시면 감사하겠습니다
제가 하고 싶은 구문은 이겁니다
흙 블럭을 부쉈을 때 흙 블럭은 안 부서지고 위에 적은대로 돌, 모래, 참나무, 다이아몬드가 드랍되게 했으면 좋겠습니다
그러니까 총합 100%니까 일단 흙 블럭을 부수면 저 네개중에 하나는 무조건 나온다는 게 되겠죠
그리고 흙 블럭을 20번째 부수면 흙 블럭이 사라지고 돌 블럭이 그 자리에 생기게 했으면 좋겠습니다
긴 글 읽어주셔서 고맙습니다 ㅠㅠ
코코냐
2022.11.23코드 이전에 알고리즘 자체가 잘못된것 같습니다. 코드를 처음부터 재설계 해보셔야 할것 같습니다.
현재 설정값은 코드 자체의 문제를 완전히 무시했다고 가정했을때, 돌 30%, 모래 21%, 냐무 14.7%, 다이아몬드 3.42%입니다.
sogogi1514
2022.11.23어우 확률 적용이 제가 생각한거랑 많이 다르네요....
qsef1256
2022.11.24이게 왜냐면 지금 코드는 독립시행이라 그럽니다.
chance of 는 단 한번만 뽑습니다. 그 전 그 후 고려 안합니다.
qsef1256
2022.11.24원하는 대로 확률을 뽑고 싶으면 1~100의 랜덤 숫자를 뽑은 뒤 30미만이면 돌, 60 미만이면 모래... 식으로 짜야 종속시행이 됩니다.
qsef1256
2022.11.24흙 블록을 20번 부수면 이라는 코드는 배열변수등을 이용해 쉽게 구현은 할 수는 있는데 성능 문제상 추천하지 않습니다.
이를 구현하려면 유저가 지금까지 캔 블록의 횟수가 전부 쌓여야 합니다. 그것도 각 유저마다요.