이번 강좌에서는 스크립트를 이용하여 랜덤무기를 만들어보겠습니다
스크립트를 처음 배우는 분들도 제 강좌를 계속 보면서 따라오시면 됩니다
랜덤무기 파일을 만들어줍니다
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애드온이 적용되야 정상적으로 작동됩니다
서버에서 스크립트 파일을 리로드 후 러시안 룰렛 아이템을 만들어 줍니다
정상적으로 작동됩니다
따로 안보이는 곳에 무기를 보관해둡니다