스크립트

해피의 스크립트 강좌 #6 ( 마인리스트 )

해피 11 일 전 조회 수 33 추천 수 0

스크립트 난이도 : ★★☆☆☆

스크립트 응용 범위 : ★★★☆☆

 

안녕하세요! 해피입니다.

 

이번 스크립트로는 마인리스트 스크립트를 가져와봤습니다.

 

서버를 홍보하기에 가장 좋은 곳은 마인리스트인데요. 이 마인리스트를 추천하게 되면 지급해주는 보상제도가 있습니다.

 

하지만 보상제도는 플러그인으로 되어 있고 플러그인에서는 보상 아이템을 주는것이 한계가 있습니다.

 

그래서 저는 다른 방법을 채택하여 마인리스트를 스크립트로 연동시켜 제작해봤습니다.

 

그럼 한번 바로 알아보도록 하겠습니다 !

구분선.png

 

[ 스크립트 구문 ]

 

 

options:
    a: &b&l[ &fMinelist &b&l] &f&l
command /명령어 [<player>]:
    trigger:
        if arg 1 is set:
            add 1 to {마인카운트}
            add 1 to {마인리스트퀘스트.%arg 1%}
            broadcast "&f&l님이 %{마인카운트}%번째로 추천을 하였습니다 !"
            broadcast "&f%player%"
            broadcast "{@a} :: &a&l[ &f&l/마인리스트 &a&l] &f&l추천하고 보상 받아가세요 !"
            broadcast "{@a} :: &a&l[ &f&l/마인리스트 &a&l] &f&l큐브랜덤박스 , 미스터리랜덤박스 , 마인리스트코인 , 출석코인 , 인첸트병64개"
            broadcast ""
            loop {마인리스트.item::*}:
                give loop-value to arg 1
        
command 마인리스트설정:
    permission: op.op
    permission message: &c&l당신은 권한이 없습니다.
    trigger:
        open chest with 1 row named "&e&l마인리스트 보상" to player
        loop {마인리스트.item::*}:
            add 1 to {_player}
            set slot {_player}-1 of current inventory of player to loop-value
                    
on inventory close:
    if inventory name of current inventory of player is "&e&l마인리스트 보상":
        delete {마인리스트.item::*}
        loop 9 times:
            add slot (loop-number)-1 of current inventory of player to {마인리스트.item::*}


every 1 minutes:
    if "%now%" contains "오후 11:59":
        broadcast "&b&l[ &f&l자정 &b&l] &f&l자정이 되어 마인리스트 , 신입수 가 초기화 되었습니다."
        broadcast "&b&l[ &f&l자정 &b&l] &f&l마인리스트 추천 한번씩 부탁 드립니다. /마인리스트"
        delete {마인카운트}
        stop

 

구분선.png

 

[ 스크립트 설명 ]
 

사용전 주의사항!

해당 스크립트는  vofifier 플러그인과 GAListener 플러그인이 필요합니다. 해당 플러그인은 마인리스트 사이트에서 다운받을 수 있습니다.

그리고 마인리스트 명령어는 절대적으로 공개해서는 안됩니다. 공개가 되면 일단 유저들도 명령어를 사용해서 악의적으로 마인리스트 보상을 받을 수 있습니다.

 

options: 
    a: &b&l[ &fMinelist &b&l] &f&l 
command /명령어 [<player>]: #/명령어 로 되어 있는건 저도 이 스크립트를 사용중이기 때문에 저희서버 명령어를 알려드릴 수 없음으로 /명령어 로 대체하였습니다. 사용하실땐 /명령어 대신 진짜 명령어를 적으시면 되는데 명령어는 영어+숫자+특수문자까지 넣어 보안을 철저하게 하시는걸 추천 드립니다.
    trigger:
        if arg 1 is set: #[<player>] 칸에 플레이어 닉네임을 입력했을 경우
            add 1 to {마인카운트} #마인리스트 추천자 수를 1 추가합니다.
            add 1 to {마인리스트퀘스트.%arg 1%} #이 수치는 무시하셔도 또는 지우셔도 됩니다.
            broadcast "&f&l님이 %{마인카운트}%번째로 추천을 하였습니다 !" #앞에 닉네임이 없는 이유는 GAListener 에서 닉네임이 나오도록 설정해두었습니다. 그 이유로는 명령어로 추천하는 사람과 마인리스트 사이트에서 추천하는 사람을 가리기 위함입니다. 그래서 %{마인카운트}% 는 지금까지 추천한 수가 나오게 됩니다.
            broadcast "&f%player%" #여기서 %player% 넣은 이유는 명령어로 추천시 플레이어 닉네임이 나오고 마인리스트를 통해 추천한사람은 [<noen>] 라고 나옵니다. 즉 버그 유저를 분별하기 위함이죠 이걸 넣은 이유는 제가 예전에 무분별한 명령어 사용한 유저때문에 큰 피해를 본적이 있기 때문에 방어시스템 입니다.
            broadcast "{@a} :: &a&l[ &f&l/마인리스트 &a&l] &f&l추천하고 보상 받아가세요 !"
            broadcast "{@a} :: &a&l[ &f&l/마인리스트 &a&l] &f&l큐브랜덤박스 , 미스터리랜덤박스 , 마인리스트코인 , 출석코인 , 인첸트병64개"
            broadcast ""
            loop {마인리스트.item::*}: 
                give loop-value to arg 1 #마인리스트 보상을 플레이어에게 지급합니다.
          
        
command 마인리스트설정: #마인리스트 보상 설정
    permission: op.op #op.op 펼미션 설정
    permission message: &c&l당신은 권한이 없습니다. #펼미션이 없을 경우 나오는 메세지
    trigger:
        open chest with 1 row named "&e&l마인리스트 보상" to player #마인리스트 보상 이라는 1줄 상자를 오픈합니다.
        loop {마인리스트.item::*}: 
            add 1 to {_player}
            set slot {_player}-1 of current inventory of player to loop-value #마인리스트 보상 이러는 상자를 오픈한 곳에서 아이템을 저장시킵니다.
                    
on inventory close: #인벤토리를 닫을 경우
    if inventory name of current inventory of player is "&e&l마인리스트 보상": #그 인벤토리 이름이 마인리스트 보상일 시
        delete {마인리스트.item::*}
        loop 9 times:
            add slot (loop-number)-1 of current inventory of player to {마인리스트.item::*} #넣은 아이템을 보관하는 구문입니다.


every 1 minutes: #1분마다
    if "%now%" contains "오후 11:59": #오후 11시 59분일 경우 여기서 1분 빠르게 한 이유는 이게 1분 좀 늦어서 11시 59으로 해두면 12시에 명령어가 실행됩니다.
        broadcast "&b&l[ &f&l자정 &b&l] &f&l자정이 되어 마인리스트 , 신입수 가 초기화 되었습니다."
        broadcast "&b&l[ &f&l자정 &b&l] &f&l마인리스트 추천 한번씩 부탁 드립니다. /마인리스트" #초기화 됐다고 공지
        delete {마인카운트} #하루 누적 추천자수 초기화
        stop
구분선.png

 

다음에는 더욱 유용하고 실용적인 스크립트들을 가져오겠습니다!

 

혹시나 필요한 스크립트나 강좌가 필요한 플로그인 있다면 알려주세요 !

 

감사합니다!

Profile
36
Lv
해피

  안녕하세요. 레지나서버를 운영하고 있는 탑키드 (RG_topkide) 입니다.

 

유저 채널에서 해피강좌로 플러그인 , 스크립트를 강좌하고 있습니다.

2개의 댓글

Profile
아이스틴
11 일 전

어려워서 포기했었는데 다시한번 해봐야겠군요

Profile
해피
11 일 전
@아이스틴

한번 도전해보세요! 매우 간단합니다 !

해피강좌 채널

채널 매니저 : 해피 / 초보 유저분들에게 다양한 플러그인과 스크립트 등의 자료 소개, 강좌를 할 게시판입니다