Minecraft/Server Development

[Minecraft] 1.12.2 랜덤무기 전쟁 구축 [ 8 ]

2022. 8. 23. 20:39

QUOTE THE DAY

Self-Talk
반응형

오늘도 랜덤무기를 만들어보겠습니다

대략 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 <시간> 으로 사용됩니다

 

포션효과는

(참고)

 

[Minecraft] 1.12.2 랜덤무기 전쟁 구축 [ 4 ]

이번에도 플러그인을 추가해봅시다 1. 에센셜 플러그인 2.  NBTEditor 플러그인 1. 에센셜 플러그인 이번에 소개할 플러그인은 에센셜 플러그인입니다 말그대로 서버에 필수적인 플러그인이죠 https

mu-sa.tistory.com

 

 

여태까지 8개에 랜덤무기를 만들어봤습니다

 

 

반응형
'Minecraft/Server Development' 카테고리의 다른 글
  • [Minecraft] 1.12.2 랜덤무기 전쟁 구축 [ 10 ]
  • [Minecraft] 1.12.2 랜덤무기 전쟁 구축 [ 9 ]
  • [Minecraft] 1.12.2 랜덤무기 전쟁 구축 [ 7 ]
  • [Minecraft] 1.12.2 랜덤무기 전쟁 구축 [ 6 ]
MUSA
MUSA
Nine Point Eight

최근 댓글

최근 글

인기 글

  • MUSA
    무사
    Nine Point Eight
    • 홈

    • 방명록

    • 분류 전체보기 (124)
      • Minecraft (29)
        • Server Development (16)
        • ResourcePack (7)
        • Plugin (5)
        • Java Plugin (1)
      • Tistory (15)
        • 티스토리 수익 (3)
        • 티스토리 검색 유입 (3)
        • 티스토리 꾸미기 (9)
      • Windows (2)
      • Kali Linux (42)
        • Linux (24)
        • Bandit (18)
        • Tool (0)
      • Web Study (26)
        • Theory (14)
        • Training (12)
      • CTF (5)
        • HackTheon (1)
        • Customized CTF (2)
        • CTF Write-Up (2)
      • Forensics (1)
      • System (1)
      • Cryptography (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 반응형
  • hELLO· Designed By정상우.v4.10.3
MUSA
[Minecraft] 1.12.2 랜덤무기 전쟁 구축 [ 8 ]
상단으로

티스토리툴바