Minecraft/Server Development

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

2022. 8. 23. 15:30

QUOTE THE DAY

Self-Talk
반응형

이번 강좌에서는 스크립트를 이용하여 랜덤무기를 만들어보겠습니다

스크립트를 처음 배우는 분들도 제 강좌를 계속 보면서 따라오시면 됩니다

랜덤무기 파일을 만들어줍니다

 

options:   #옵션
	r : &7&l[ &f&l랜덤무기 &7&l]&f&l    #r은 &7&l[ &f&l랜덤무기 &7&l]&f&l텍스트로 지정합니다

#시공간검객
on damage of player:  #플레이어에게 데미지를 줄때
	if "%lore of attacker's tool%" contains "&e&l[&f&l설명&e&l] &f&l상대방 타격시 0.5초동안 멈출 수 있습니다": #만약 공격자 도구에 "&e&l[&f&l설명&e&l] &f&l상대방 타격시 0.5초동안 멈출 수 있습니다" 로어가 포함된다면
		set {stop_player.%victim%} to 1 #피해자에 stop_player 변수를 1로 설정합니다
		send "{@r} 시공간 검객 효과로 0.5초동안 못 움직입니다" to victim #{@r} = 즉 &7&l[ &f&l랜덤무기 &7&l]&f&l로 출력되고 이 문구를 피해자에게 보여줍니다

on any movement: #움직일때 작동되는 이벤트
	if {stop_player.%player%} is set: #만약 stop_player 변수가 설정되어있다면
		cancel event  #움직임을 방지합니다
		wait 0.5 seconds # 0.5초동안 플레이어는 움직일 수 없습니다
		delete {stop_player.%player%} #stop_player 변수를 삭제합니다
        
        
        
        
       #즉 on damage of player 이벤트에서 공격자가 피해자를 타격하여 피해자 변수를 1로 설정하였습니다
       #on any movement이벤트에서는 지금 피해자 입장에서 player 변수가 1이여서 밑에 구문이 작동되는겁니다

 

만약 옵션 문자가 t : 안녕 이라면      "{@t} 반가워" 으로 사용합니다

t 는 안녕이라는 텍스트로 지정합니다

 

on damage of player: 이벤트에서 변수를 지정할때

victim 과 attacker로 구분됩니다

즉 피해자와 공격자로 구분된다 보시면 됩니다

 

그래서 set {stop_player.%victim%} to 1은 피해자 변수가 1로 설정되었습니다

변수는 한글로도 설정할 수 있습니다

ex) {멈춰.%victim} 

 

적용 후 서버내에서 nbti 플러그인을 이용하여 아이템을 만들어줍니다

 

상대방 타격시 정상적으로 구문이 작동되는걸 확인할 수 있습니다

 

 

간단한 변수 구문을 알려드리겠습니다

변수 명령어 기능 설명
set {변수} to 1 {변수}에 전체변수에서 1로 설정합니다
set {변수.%player%} to 1 {변수.%player%}에 플레이어에 변수에서 1로 설정합니다
send "%{변수.%player%}%" player의 {변수} 데이터를 확인합니다
add 1 to {변수.%player%} player의 변수 데이터에서 1을 더합니다
remove 1 from {변수.%player%} player의 변수 데이터에서 1을 뺍니다
delete {변수.%player%} player의 변수 데이터를 삭제합니다

 

추가로 임시 변수도 있는데

임시변수 형태는 {_변수명} 으로 이루어져 있습니다

이 임시변수는 보통 구문 내부에서 잠시동안 쓰여서 따로 변수를 삭제할 필요가 없습니다

 

밑에 바로 다음 랜덤무기를 만들어보겠습니다

 

#러시안 룰렛
on damage of player: #플레이어에 데미지를 줄때
	if "%lore of attacker's tool%" contains "&e&l[&f&l설명&e&l] &f&l상대방 타격시 10%% 확률로 죽입니다": #만약 공격자 도구에 "&e&l[&f&l설명&e&l] &f&l상대방 타격시 0.5초동안 멈출 수 있습니다" 로어가 포함된다면
		chance of 10%: #10% 확률로 밑에 구문이 작동됩니다 (1~100 사이로 입력할 수 있습니다)
			subtract 1 of attacker's held item from attacker's inventory #공격자에 손에 들고있는 아이템 1개를 삭제합니다
			make attacker run cmd "/kill %victim%" as op #오피 권한으로 피해자를 죽입니다
			broadcast "{@r} %attacker%님이 러시안 룰렛으로 %victim%님을 죽이셨습니다" in "random" #random 맵에서 전체말로 알려줍니다
		else: #나머지 90%확률로 밑에 있는 구문이 작동됩니다
			subtract 1 of attacker's held item from attacker's inventory #위에랑 동일합니다
			make attacker run cmd "/kill %attacker%" as op #오피 권한으로 공격자가 죽습니다
			broadcast "{@r} %attacker%님이 러시안 룰렛을 하다 사망하였습니다" in "random" #위에랑 동일합니다

이렇게 1회성 아이템을 만들어봤습니다

스크립트에서 %퍼센트나 "따옴표를 문자열로 출력하고 싶으면 %% or "" 2개씩 붙여서 입력하시면 됩니다

그래서 상대방 타격시 10%% 확률로 문자열이 상대방 타격시 10% 확률로 로 출력됩니다

 

추가로 make attacker run cmd 구문은 지난 강좌에서 준 skUtilities애드온이 적용되야 정상적으로 작동됩니다

 

 

서버에서 스크립트 파일을 리로드 후 러시안 룰렛 아이템을 만들어 줍니다

 

정상적으로 작동됩니다

 

따로 안보이는 곳에 무기를 보관해둡니다

 

 

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

티스토리툴바