Seo_Rong 4361ed1b04af4b1c81f46c5e8d1bd3ea
분야 | 스크립트 |
---|---|
게임버전 | 모든버전 |
본 소스는 GNU GPL v3 라이선스하에 배포됩니다
제가 올려드리는 강좌들은 기본적인 이해를 돕기위한 최소한의 부분설명만을 적습니다.
필요한 조건 설명 - 구현(어찌 굴러가는지 주석처리 덧붙임)
예시는 수박으로 보여드릴 예정입니다. 수박 조각과 수박 단일 블럭 두가지가 나올 수 있기 때문에 다른 작물로 응용하기에 편하실 것 이라 생각 됩니다.
일단 상급 중급 하급으로 나뉘는 등급이 있을것이며 행운에 따른 등급 확률 세팅도 가능해야 할 것입니다.
또한 수박은 섬세한 손길에 영향을 받으므로 이 부분도 있어야 할 겁니다.
수박을 부술 경우 부순 위치에 아이템이 나와야 할 것입니다.
function setrank(a:integer, b:integer, c:integer, d:integer)://인수를 받아옵니다. {_a}와{_b}는 중급 수박이 나올 확률, {_c}와{_d}는 상급 수박이 나올 확률
set {_chance1} to a random number between 0 and 100 //받아온 인수대로 등급 분배를 위한 랜덤 변수 선언
if {silktouch} = 1://섬세한 손길이 있을 경우
if {_chance1} is between {_a} and {_b}://받아온 인수 안에 있을경우 중급 지정
drop 1 melon block named "&a&l[중급]&f수박" with lore "&f싱싱하게 자란 수박 입니다." and "&f상점에 팔 수 있습니다." at {melon_loc} //{melon_loc}는 수박을 캔 자리를 따온겁니다.
exit
if {_chance1} is between {_c} and {_d}://받아온 인수 안에 있을경우 상급 지정
drop 1 melon block named "&a&l[상급]&f수박" with lore "&f싱싱하게 자란 수박 입니다." and "&f상점에 팔 수 있습니다." at {melon_loc}
exit
else://받아온 인수 안에 없을경우 하급 지정
drop 1 melon block named "&a&l[하급]&f수박" with lore "&f싱싱하게 자란 수박 입니다." and "&f상점에 팔 수 있습니다." at {melon_loc}
exit
if {silktouch} = 0://섬세한 손길이 없을 경우
set {_chance2} to a random number between 0 and 3 //갯수를 측정하기위한 랜덤변수 생성 이 숫자는 소숫점이 있기 때문에 변환 전에는 정수로 사용이 불가능함
if {_chance2} is between 0 and 1://정수로 변환
set {_chance3} to 1
if {_chance2} is between 1.01 and 2:
set {_chance3} to 2
if {_chance2} is between 2.01 and 3:
set {_chance3} to 3
if {_chance1} is between {_a} and {_b}://등급 설정을 위한 확률 체크
loop {_chance3} times://수박조각을 임의로 1~3개 드랍되도록 설정
drop 1 melon slice named "&a&l[중급]&f수박 조각" with lore "&f싱싱하게 자란 수박 조각입니다." and "&f상점에 팔 수 있습니다." at {melon_loc}
if {_chance1} is between {_c} and {_d}:
loop {_chance3} times:
drop 1 melon slice named "&a&l[상급]&f수박 조각" with lore "&f싱싱하게 자란 수박 조각입니다." and "&f상점에 팔 수 있습니다." at {melon_loc}
else:
loop {_chance3} times:
drop 1 melon slice named "&a&l[하급]&f수박 조각" with lore "&f싱싱하게 자란 수박 조각입니다." and "&f상점에 팔 수 있습니다." at {melon_loc}
//이제 함수는 다 만들었으니 조건을 만듭시다.
on break of melon://수박을 부쉈을 때
clear drops//기존 드랍아이템을 삭-제
set {melon_loc} to event-locations//수박을 부순 위치를 전역변수로 선언 해줍니다.
if enchant level of Silk touch of player's tool is 1://플레이어의 도구에 붙어있는 섬세한 손길 유무에 따른 전역변수 선언을 해줍니다.
set {silktouch} to 1
else:
set {silktouch} to 0
if enchant level of Fortune of player's tool is 1://플레이어의 도구에 붙어있는 행운 인첸트 레벨을 체크합니다.
setrank(0, 20, 21, 30)//중급 20% 상급 9%
exit
if enchant level of Fortune of player's tool is 2:
setrank(0, 25, 26, 40)//중급 25% 상급 14%
exit
if enchant level of Fortune of player's tool is 3:
setrank(0, 30, 31, 50)//중급 30% 상급 19%
exit
else://행운 인첸트가 적용 안되있을 경우
setrank(0, 15, 16, 20)//중급 15% 상급 4%
exit
mchang
2020.06.05오 유익하네요
KIMYEJOON
2021.10.30잘 보고 갑니다! 혹시 디스코드 아이디 알려주실 수 있으신가요?