Minecraft/Server Development

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

2022. 8. 26. 14:17

QUOTE THE DAY

Self-Talk
반응형

어느덧 10번째 강좌입니다

여태까지 따라오느라 고생 많으셨습니다 

이제 절반만 더 구현하고 시스템 부분을 개발하겠습니다

소스 코드입니다

 

#랜덤카드
on damage of player:
	if "%lore of attacker's tool%" contains "&e&l[&f&l설명&e&l] &f&l상대방 타격시 1~5데미지를 랜덤으로 줍니다":
		set {_랜카} to random integer between 1 and 5 #임시변수에 1~5사이에 숫자를 랜덤으로 설정합니다
		set damage to {_랜카}/2 #현재 데미지를 임시변수에서 랜덤으로 뽑힌 숫자에/2 만큼 데미지를 설정합니다
		if {_랜카} is 5: #만약 임시변수에서 뽑힌 숫자가 5라면
			send "{@r} 5 데미지가 들어갔습니다!" to attacker #공격자에게 문구를 보여줍니다
			send "{@r} 랜덤카드의 5 데미지가 들어왔습니다" to victim #피해자에게도 문구를 보여줍니다

#기자
on rightclick on player: #상대 플레이어를 우클릭 할때
	if "%lore of player's tool%" contains "&e&l[&f&l설명&e&l] &f&l상대방 우클릭시 인벤토리를 훔쳐봅니다":
		make player run cmd "/invsee %clicked player%" as op #클릭한 상대 플레이어에 인벤토리르 봅니다 (invsee라는 에센셜 명령어를 이용했습니다)



#광전사
on rightclick:
	if name of player's tool contains "&c&l[ &f&l광전사 &c&l]": #플레이어 도구에 이름이 해당 문자열이라면
		if player's health <= 3: #플레이어 체력이 3칸이하 라면
			set {_cooldown} to difference between {광전사.%player%} and now
			if {_cooldown} is less than 2 minute:
				set {_text} to "%difference between 2 minute 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 {광전사.%player%} to now
			apply speed 3 to player for 30 seconds #효과를 부여합니다
			apply strength 2 to player for 30 seconds
			apply resistance 1 to player for 30 seconds
			send "{@r} 광전사 능력이 부여됩니다"
		else:
			send "{@r} 당신의 체력이 3칸 이하가 아닙니다" #3칸이하가 아니라면 해당 문구를 보여줍니다

랜덤카드와 기자 무기에 대해 추가 설명하겠습니다

 

첫번째 랜덤카드 무기에 대해 설명하겠습니다

랜덤카드 무기에서 왜 데미지를 반으로 나눴냐면

현재 플레이어 체력이 20칸입니다 여기서 반으로 안나눠주고 설정한다면 현재 데미지에서 x2배씩 들어갑니다

즉 1=2 , 5=10씩 들어갑니다

 

현재 체력이 20인데  5데미지가 10씩 들어가면 체력이 바로 10이됩니다

그래서 20체력에 맞추기위해 나누기 2를 해서 데미지를 절반으로 설정하였습니다

 

데미지를 나눴을때

( 2데미지는 하트한칸 , 1데미지는 반칸 )

두번째 기자 무기는 월드가드 때문에 상대방을 우클릭해도 인벤토리를 열어볼 수 가 없습니다

그래서 월드가드 명령어에 interact 상호작용 부분을 allow 해줍니다

(월드가드는 랜덤무기 전쟁 구축3 강좌를 참고하시면 됩니다)

 

그러면 정상적으로 인벤토리를 훔쳐볼 수 있습니다

 

이번 무기는 총류의 무기입니다

 

#로빈 후드
on rightclick:
	if name of player's held item contains "&b&l[ &f&l로빈 후드 &b&l]":
		if {arcount.%player%} >= 10: #arcount변수가 10 이상이라면
			set {_cooldown} to difference between {로후.%player%} and now
			if {_cooldown} is less than 30 seconds:
				set {_text} to "%difference between 30 seconds and {_cooldown}%"
				replace all " seconds" and " second" with "초" in {_text}
				replace all " and " with " " in {_text}
				send "{@r} &f&l재사용 까지 &e&l%{_text}% &f&l남았습니다."
				exit
			set {로후.%player%} to now
			delete {arcount.%player%} #arcount변수를 제거합니다
		else:
			make the player shoot an arrow at speed 3 #플레이어가 화살을 3에 속도로 발사합니다
			wait 1 ticks # 1 tick을 기다립니다 (20틱은 1초, 즉 1틱은 50밀리초(0.05초)입니다)
			make the player shoot an arrow at speed 3 #또다시 플레이어가 화살을 3에 속도로 발사합니다
			add 1 to {arcount.%player%} #arrcount 변수를 1 증가시킵니다
            
       
       #플레이어가 스킬 사용시 화살이 2발씩 발사됩니다 총 10번씩 2발을 쏘면 쿨타임이 걸립니다

            
            
#데이다라
on rightclick:
	if name of player's held item contains "&c&l[ &f&l데이다라 &c&l]":
		if {dayda.%player%} >= 10:
			set {_cooldown} to difference between {데다.%player%} and now
			if {_cooldown} is less than 40 seconds:
				set {_text} to "%difference between 40 seconds and {_cooldown}%"
				replace all " seconds" and " second" with "초" in {_text}
				replace all " and " with " " in {_text}
				send "{@r} &f&l재사용 까지 &e&l%{_text}% &f&l남았습니다."
				exit
			set {데다.%player%} to now
			delete {dayda.%player%}
		else:
			make the player shoot an tnt at speed 3 #tnt를 3에 속도로 발사합니다
			wait 1 ticks
			make the player shoot an tnt at speed 3
			add 1 to {dayda.%player%}
            
            
       #위에랑 동일하며 발사체를 tnt로 변경하였습니다

 

여기서 tick은 마인크래프트의 시간 단위입니다

틱 시간
1 tick 0.05초
2 tick 0.1초
3 tick 0.15초
4 tick 0.2초
5 tick 0.25초
6 tick 0.3초
7 tick 0.35초
8 tick 0.4초
9 tick 0.45초
10 tick 0.5초

20틱은 1초, 1틱 마다 50밀리초(0.05초) 입니다

 

 

데이다라 같은 무기는 tnt를 발사하므로

월드가드를 꼭 해주셔야 합니다

/rg f __global__ tnt deny 

 

#불꽃주먹
on rightclick:
	if name of player's held item contains "&c&l[ &f&l불꽃 주먹 &c&l]":
		if {fireda.%player%} >= 10:
			set {_cooldown} to difference between {불다.%player%} and now
			if {_cooldown} is less than 30 seconds:
				set {_text} to "%difference between 30 seconds and {_cooldown}%"
				replace all " seconds" and " second" with "초" in {_text}
				replace all " and " with " " in {_text}
				send "{@r} &f&l재사용 까지 &e&l%{_text}% &f&l남았습니다."
				exit
			set {불다.%player%} to now
			delete {fireda.%player%}
		else:
			make the player shoot an fireball at speed 3 #화염구를 속도 3으로 발사합니다
			wait 1 ticks
			make the player shoot an fireball at speed 3
			add 1 to {fireda.%player%}


#이번에도 발사체만 화염구로 변경하였습니다

이것도 마찬가지로 월드가드를 해주셔야 합니다

/rg f __global__ ghast-fireball deny

 

 

21개째 무기를 완성하였습니다

 

반응형
'Minecraft/Server Development' 카테고리의 다른 글
  • [Minecraft] 1.12.2 랜덤무기 전쟁 구축 [ 12 ]
  • [Minecraft] 1.12.2 랜덤무기 전쟁 구축 [ 11 ]
  • [Minecraft] 1.12.2 랜덤무기 전쟁 구축 [ 9 ]
  • [Minecraft] 1.12.2 랜덤무기 전쟁 구축 [ 8 ]
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 랜덤무기 전쟁 구축 [ 10 ]
상단으로

티스토리툴바