반응형
오늘도 랜덤무기를 만들어보겠습니다
대략 30개 정도 구현하고 다음 단계로 넘어가겠습니다
기존 랜덤무기 파일에 적용해주세요
#바람의재생
on right click:
if "%lore of player's tool%" contains "&e&l[&f&l설명&e&l] &f&l우클릭시 1~5칸 랜덤으로 회복한다": #플레이어 도구에 로어가 해당 문자열이 포함될때
set {_cooldown} to difference between {바람재.%player%} and now # {_cooldown} 임시변수를 바람재 변수와 현재시간 사이에 차이로 설정합니다 (마지막에 스킬을 사용한 시간과 현재시간에 사이에 차이로 설정합니다)
if {_cooldown} is less than 50 second: #만약 임시변수가 50초 보다 작다면 (위에서 비교한 값이 50초 이상 만큼 차이가 안난다면)
set {_text} to "%difference between 50 second and {_cooldown}%" #{_text} 임시변수는 50초와 쿨다운 변수 사이에 차이 문자열로 설정합니다 (현재 쿨타임이 얼마나 남았는지 설정합니다)
replace all " seconds" and " second" with "초" in {_text} #seconds 와 second를 초로 대체합니다
send "{@r} &f&l재사용 까지 &e&l%{_text}% &f&l남았습니다."
exit
set {바람재.%player%} to now #바람재 변수를 현재 시간으로 설정합니다 (스킬을 사용한 시간을 저장합니다)
set {_바쟁} to random integer between 1 and 5 #{_바쟁} 임시변수를 1~5 사이에 랜덤으로 값을 지정합니다
heal player by {_바쟁} hearts #지정한 값만큼 ㅎ플레이어가 회복합니다
send "{@r} 피를 %{_바쟁}% 만큼 회복했습니다"
#쿨타임 로직은 마지막으로 스킬을 사용했던 시간을 저장해놓고, 스킬을 다시 사용했을 시간과 현재 시간을 비교해서 쿨타임 이상만큼 차이가 나면 스킬을 사용할 수 있게 하는 방법입니다
쿨타임 구문에서 임시변수를 사용하였습니다 임시변수는 지난 강좌에서 살짝 설명했습니다
보통 구문 내부에서 잠시동안 쓰여서 따로 변수를 삭제할 필요가 없습니다
ex) set {_임시변수} to 1
여기서 replace를 이용하여 seconds를 바꾸지 않으면 이렇게 뒤에 seconds로 표현되기 때문에
초로 대체하였습니다
따로 쿨타임을 1분 이상으로 설정하고 싶으면
if {_cooldown} is less than 50 second: → if {_cooldown} is less than 2 minute: 로 바꿔주시면 됩니다
(1시간이면 hour로 이용하면 되겠습니다)
마찬가지로 minute를 분으로 대체해주시면 됩니다
나머지 무기들은 여태까지 배운 내용으로 구현하였습니다
#흡혈초
on damage of player:
if "%lore of attacker's tool%" contains "&e&l[&f&l설명&e&l] &f&l상대방 타격시 1~5칸 랜덤으로 회복한다": #공격자 무기에 로어가 이 문자열이 포함될때
subtract 1 of attacker's held item from attacker's inventory #손에 들고 있는 공격자 무기 1개를 인벤토리에서 제거합니다
set {_흡혈} to random integer between 1 and 5 #임시변수에서 1~5사이에 숫자를 랜덤으로 지정합니다
damage victim by {_흡혈} heart #지정한 숫자만큼 피해자에게 데미지를 줍니다
heal attacker by {_흡혈} hearts #지정한 숫자만큼 공격자는 회복합니다
send "{@r} %victim% 님의 피를 %{_흡혈}% 만큼 가져왔습니다" to attacker
send "{@r} %attacker% 님의 당신의 피를 %{_흡혈}% 만큼 가져갔습니다" to victim
#비누
on damage of player:
if "%lore of victim's tool%" contains "&e&l[&f&l설명&e&l] &f&l들고 있을시 받는 데미지를 25%% 확률로 회피합니다": #피해자 무기에 로어가 이 문자열이 포함될때
chance of 25%: # 25% 확률로 밑에 구문이 작동됩니다
cancel event #공격자에 데미지를 캔슬합니다
send "{@r} %victim% 님의 비누로 인해 데미지가 캔슬됩니다" to attacker
else: # 75% 확률로 밑에 구문이 작동됩니다
stop # 정지합니다
다음 무기입니다
#CP9
on right click:
if player is in world "random": # 플레이어가 random 맵 안에있을때 (스폰에서 사용하는걸 방지하기 위해서 넣었습니다)
if "%lore of player's tool%" contains "&e&l[&f&l설명&e&l] &f&l우클릭시 바라보는 방향으로 날라갑니다": #플레이어 도구에 로어가 해당 문자열이 포함될때
set {_cooldown} to difference between {cp9.%player%} and now #(마지막에 스킬을 사용한 시간과 현재시간에 사이에 차이로 설정합니다)
if {_cooldown} is less than 1 minute 10 second: #(위에서 비교한 값이 1분 10초 이상 만큼 차이가 안난다면)
set {_text} to "%difference between 1 minute 10 second and {_cooldown}%" #(현재 쿨타임이 얼마나 남았는지 설정합니다)
replace all " seconds" and " second" with "초" in {_text}
replace all " minute" with "분 " in {_text}
replace all " and " with "" in {_text}
send "{@r} &f&l재사용 까지 &e&l%{_text}% &f&l남았습니다."
exit
set {cp9.%player%} to now #(스킬을 사용한 시간을 저장합니다)
push player upwards at speed 2 #플레이어 위쪽 방향으로 속도는 2만큼 밀어냅니다
push player horizontally forward at speed 10 #플레이어에 수평방향으로 속도는 10만큼 밀어냅니다
#push 기능을 이용하여 더블 점프도 구현할 수 있습니다
#살인자의 희열
on death:
if "%lore of attacker's tool%" contains "&e&l[&f&l설명&e&l] &f&l상대방을 죽일 시 버프를 얻는다": #공격자 도구에 로어가 해당 문자열이 포함될때
apply speed 2 to attacker for 20 seconds # 신속2를 공격자에게 20초동안 부여합니다
apply strength 1 to attacker for 20 seconds #힘1을 공격자에게 20초동안 부여합니다
send "{@r} 살인의 희열을 느낍니다" to attacker
#츠쿠요미
on damage of player:
if "%lore of attacker's tool%" contains "&e&l[&f&l설명&e&l] &f&l상대방을 타격시 츠쿠요미를 보여준다": #위에랑 동일
apply blindness 1 to victim for 3 seconds #피해자에게 블라인드 1을 3초동안 부여합니다
여기서 apply 기능은
apply <포션효과> <레벨> to player for <시간> 으로 사용됩니다
포션효과는
(참고)
여태까지 8개에 랜덤무기를 만들어봤습니다
반응형