아이디어게시판

아이디어게시판 [아이디어게시판]
Lua 스크립트 모드 아이디어
2022.01.28 23:47 조회 : 347
Lv. 12스위시플레인 가입된 패밀리가 없습니다. 작성자 게시물 더보기
제가 고안한 LUA 모드입니다. RP 라는 장르는 다른 게임에도 존재하지만 카스온라인에서는 구현히 힘들 것이라고 생각했기 때문에 지금까지는 그냥 넘겼지만 제가 LUA를 너무 과소평가한 게 아닌가 싶어서 다시 시도를 해 보았습니다.


시스템을 소개하겠습니다.



a. 관리자 시스템

게임이 시작되면 1 부터 24까지의 숫자를 지정해 가장 먼저 접속한 플레이어에게 부여하게 됩니다. 게임이 끝날 때까지 이 번호들은 플레이어를 식별하는 수단으로 사용됩니다. 제일 먼저 접속한 플레이어는 1번을 받게 되는데, 이는 곧 방장을 뜻합니다. 1번을 받은 플레이어는 자동으로 관리자가 됩니다. 
맵 제작자는 닉네임이 특별히 하드코딩되어 최고 관리자 권한을 얻게 됩니다.





b. 부 관리자 시스템

관리자는 /subadmin #(유저번호) 명령어로 부 관리자를 임명할 수 있습니다. 부 관리자는 부 관리자 임명권을 제외한 관리 권한을 가집니다.





c. 관리자 물려주기 시스템 & 행동 점수

관리자가 모종의 이유로 게임을 종료하게 되면 해당 사건을 감지한 뒤, 다른 사람에게 관리자 직을 물려줍니다. 

일단 게임이 처음 시작되고, 플레이어가 들어오면 각각 행동 점수 라는 변수를 생성합니다. 행동 점수는 100 점으로 시작하며, 채팅에 욕을 하거나 사람을 죽이면 최대 10 점까지 감소하고, 꾸준히 직업활동을 하거나 이벤트에 참여하면 조금씩 오릅니다. 행동 점수는 최저 0 점부터 최대 제한이 없습니다(설정에 따라 다름). 이렇게 모은 행동 점수를 계산해서 가장 점수가 높은 사람에게 관리자 권한을 넘기게 됩니다. 단, 이전의 관리자가 임명한 부 관리자 권한은 유지됩니다. 행동 점수는 한 게임 내에서 얼마나 매너 있는 행동을 했는지 보여주는 지표로서, 행동 점수가 높을수록 다양한 부분에서 보너스를 얻게 됩니다. 





d. 범죄 시스템

행동 점수는 관리자 출마에 제한이 있긴 해도 실제 플레이에 불편함을 주진 않지만, 대신 범죄 점수라는 게 있습니다. 이 범죄 점수도 게임 시작부터 기록됩니다. 0 이 제일 깨끗하고 그 이상은 제한이 없습니다. 범죄 점수가 다른 사람에게 보이거나 하는 것은 아니지만, 만약 경찰 직업을 가진 플레이어나 관리자가 당신이 범죄자인걸 알아내면 해당 플레이어를 감옥에 보낼 수 있는데, 명령어를 입력했을 때 해당 플레이어를 검사하여 범죄 점수가 0 이하이면 "해당 유저는 범죄자가 아닙니다." 라는 말이 출력되지만, 1 이상일 경우 꼼짝없이 감옥에 갇히게 됩니다. 범죄 점수 1 당 10 초 갇혀 있어야 하며, 범죄 점수는 타 플레이어에게 입힌 데미지 만큼 쌓입니다. 감옥 입구에는 영역 트리거를 이용한 스캐너가 있어서 범죄 점수가 0 이면 마음껏 들락날락 할 수 있지만 1 이라도 있으면 감옥 안쪽 좌표로 순간이동시켜 버립니다. 범죄자 플레이어 본인이 스스로 감옥에 가서 갇힐 수도 있는데 이렇게 되면 자수한 것입니다.





e. 체력 시스템

일단 현실감을 위해 화면 하단의 수치화된 체력을 UI.BOX 로 가립니다. 체력은 100으로 고정되어 있지만 1 이하로 줄어들지 않으며, 절대 죽지 않습니다. 대신 데미지를 입을 때 마다 화면의 UI.BOX가 빨간색으로 야간투시경처럼 그려지는데 체력이 닳을수록 색이 더욱 진해져 나중에는 앞을 보기 힘들 정도가 됩니다. 체력이 10 이하가 되면 자동으로 병원으로 순간이동합니다. 병원에서 체력이 다시 100 으로 회복되어야 나올 수 있습니다. 병원에 있는 사람을 공격하는 것도 가능한데 이러면 비매너 행위로 간주하여 행동 점수가 엄청나게 깎입니다. 체력이 1 이하로는 내려가지 않지만 이렇게 공격당해서 체력이 깎이면 10에서 100까지 회복하는 시간보다 더 많은 시간이 걸리게 됩니다. 체력이 10이 되면 순간이동하기 전에 가지고 있던 무기를 서 있던 자리에 모두 떨어뜨립니다.





f. 직업 시스템

플레이어는 게임 시작 시 랜덤으로 직업을 가지게 됩니다. 직업의 종류는 총 10가지로, 의사, 경찰, 무기상, 농부, 어부, 광부, 운동선수, 보물사냥꾼, 시민, 투명인간 이 있습니다.

각 직업은 전용 직업 명령어가 있습니다.

의사
는 병원에서 근무를 합니다. 병원 카운터에서 가만히 서 있거나 병실 침대 옆에 서 있을 때 마다 돈과 행동점수가 오릅니다. 영역 트리거를 사용합니다.

경찰
은 무조건 한명은 걸리게 되어 있습니다. 범죄자를 잡아서 감옥으로 보낼 때마다 돈과 행동 점수를 얻습니다. 경찰이 범죄를 저질러 관리자나 다른 경찰에 의해 감옥에 가게 되면 엄청난 벌금을 내야 합니다.

무기상
은 일반 유저들이 구입할 수 없는 무기들을 구입할 수 있습니다. 구입한 무기를 본인이 쓰거나 다른 플레이어에게 돈을 받고 팔 수가 있습니다. 넘겨줄 때는 버리기 키를 누르면 됩니다. 무기상이 사기를 치면 방법이 없습니다. 죽여서 약탈을 한 뒤 감옥을 가는 것이 방법일 수도... 
 
농부
는 밭에 가서 가만히 서 있으면 돈을 버는 직업입니다. 아쉽게도 행동 점수는 그렇게 많이 얻지 못합니다. 대신 돈을 더 많이 벌 수 있습니다. 농부가 되면 사냥용으로 윈체스터 샷건을 지급 받습니다. 어떻게 쓸지는 자유입니다만 괜히 경찰 앞에서 들고다니지 않도록 합시다...

어부
는 강가의 다리에서 가만히 서 있으면 돈을 버는 직업입니다. 어부만 들어갈 수 있는 장소가 있는데 그 곳에 가면 손전등이 있습니다. 손전등은 어부 밖에 얻을 수 없습니다.

광부
는 광산에서 가만히 있으면 돈을 벌 수 있습니다. 광부만 들어갈 수 있는 장소가 있는데 그 곳에 들어가면 정크 슈터랑 정크 수류탄이 소환됩니다. 전부 30분마다 한 번 소환되고 정크 슈터는 4개 수류탄은 2개만 소환됩니다..

운동선수
는 도시를 둘러싸고 있는 도로를 뺑뺑 돌때마다 돈을 얻습니다. 체크포인트를 응용해서 만듭니다. 돈은 적게 벌지만 대신 스태미나 게이지가 다른 직업들의 두 배입니다.

보물사냥꾼
은 돌아다니는 직업이라 딱히 가만히 돈벌곳이 없습니다. 대신 걸어다니다가 일정 확률로 돈을 주울 수 있는데 얻을 수 있는 금액이 천차만별입니다. 걷기만해도 돈이 들어오는 직업입니다.

시민
은 직업이 정해져있지 않지만 반대로 모든 직업의 일을 할 수 있습니다. 그러나 얻는 돈과 행동 점수는 절반 밖에 안 됩니다.

투명인간
은 일종의 벌입니다. 채팅을 치고 대화할 수 있지만 모든 명령어를 사용할 수 없습니다.





g. 맵 내 재화

맵 내에는 세 종류의 화폐가 있습니다. 첫 번째는 돈입니다. 돈은 고유의 시스템을 통해 인벤토리의 코인과는 별개로 구현됩니다. 두 번째는 경험치 입니다. 경험치는 기존 코인 시스템으로, 인벤토리를 열어서 볼 수 있는 그것입니다. 경험치는 1 초마다 1 씩 쌓여서, 영구히 저장됩니다. 일종의 누적 플레이타임과 같으며 경험치가 일정 이상이 되면 계급이 올라가고, 계급에 따라서 할 수 있는 일과 명령어도 다양해집니다.





h. PK 시스템

일단 마음대로 싸울 수는 있습니다. 감옥에 가는 것도 자수하거나 관리자, 경찰이 집어넣어야 가는 것입니다. 안 들키거나 경찰이 부패경찰이고 관리자도 부재중이라면 대놓고 싸워도 감옥에 가지 않을 확률이 높습니다..

PK를 상시 모니터링하는 것을 방지하기 위해 UI.BOX로 킬 로그 뜨는 곳을 가려 놓습니다. 경찰이 사람을 죽이는 것을 눈으로 직접 보고 감옥에 넣는 시스템으로 디자인하였습니다. 





i. 무기 상점 시스템

모든 플레이어가 쓸 수 있는 명령어인 /buy 를 입력하면 무기를 구입할 수 있는 메뉴가 뜬다. 이 메뉴는 UI.BOX로 구현되며 스튜디오에 넣을 수 있는 모든 무기들 중 클래식 무기에 해당하는 종류를 구입할 수 있습니다.  권총이 제일 저렴하고, 중화기로 갈 수록 비싸집니다.





j. 명령어

명령어에는 최고 관리자 전용 명령어(A)와, 관리자 명령어(B), 부 관리자 명령어(C), 직업 전용 명령어(D), 일반 명령어(E)가 있습니다.

관리자 명령어는 일반 플레이어가 사용할 경우 "당신은 관리자가 아닙니다." 라는 경고가 출력되며, 관리자 계급끼리도 서열이 존재해서, 관리자와 부 관리자는 최고 관리 명령어를 사용할 수 없습니다.

관리자는 직업 전용 명령어를 제외한 자기 등급 아래의 명령어를 전부 사용할 수 있습니다.

기본 구조.

//1337 == isadmin 이고 9999 == issuperadmin 이다.. 만약 해당 유저의 코드가 1337이고 isadmin 이라면 해당 명령어를 실행하고 아니라면 "당신은 (최고)관리자가 아닙니다." 를 출력한다.//

최고 관리자 전용 명령어(A)

/cash (번호) (수량) - 번호를 입력한 유저의 돈을 변경합니다. 변경하는 이유는 경우에 따라 돈을 뺏어야 할 상황이 생길 수도 있기 때문입니다.
/score (번호) (수량) - 번호를 입력한 유저의 경험치(코인)를 변경합니다. 마찬가지로 더하기 빼기가 아닌 이유는 경험치를 뺏어야 할 상황이 생길 수 있어서입니다.
/select - 맵 어딘가의 상공에 있는 상점 구입 지역이 있는 좌표로 순간이동합니다. 아무 돈을 내지 않고 원하는 무기를 얻을 수 있습니다.

관리자 명령어(B)

/subadmin (번호) 0,1- 번호를 입력한 유저를 부 관리자로 임명합니다. 0을 입력하면 파면시키고 1을 입력하면 임명합니다. 관리자가 아닌 유저를 파면시키려고 할 때 "그 유저는 관리자가 아닙니다." 문구를 출력합니다.

부 관리자 명령어(C)

/jail (번호) - 번호를 입력한 유저를 감옥으로 보냅니다. 명령어를 치는 즉시 해당 유저를 검사하여 범죄수치가 1이라도 있으면 감옥 내부 좌표로 순간이동 시킵니다.
/unjail (번호) - 감옥에 있는 유저를 스폰지점으로 순간이동 시킵니다.
/stat (번호) - 번호를 입력한 유저의 경험치와 돈, 행동 점수, 범죄 점수, 닉네임을 채팅창에 출력합니다. 감옥에 있는 지 여부도 알려줍니다.
/unarm (번호) - 번호를 입력한 유저를, 먼저 유저의 좌표를 저장한 뒤 무기제거 영역으로 순간이동시킨 다음 무기가 없어지면 다시 저장한 원래 좌표로 순간이동시킵니다. 무기 제거 영역은 매우 먼 곳에 배치하도록 합니다.    
/gateon - 감옥문을 업니다. 피스톤으로 작동시킵니다.
/gateoff - 감옥문을 닫습니다. 피스톤으로 작동시킵니다.
/gravity (번호) 1-100 - 번호를 입력한 유저를 중력변경블록에 순간이동시킨 다음 다시 원래 좌표로 돌려보냅니다. 
/police (번호) - 해당 유저를 강제로 경찰로 전직시킵니다. 
/doctor (번호) - 해당 유저를 강제로 의사로 전직시킵니다. 
/hunter (번호) - 해당 유저를 강제로 보물사냥꾼으로 전직시킵니다. 
/trainer (번호) - 해당 유저를 강제로 운동선수로 전직시킵니다. 
/fisher (번호) - 해당 유저를 강제로 어부로 전직시킵니다. 
/miner (번호) - 해당 유저를 강제로 광부로 전직시킵니다. 
/farmer (번호) - 해당 유저를 강제로 농부로 전직시킵니다.
/buyer (번호) - 해당 유저를 무기상으로 전직시킵니다. 
/citizen (번호) - 해당 유저를 시민으로 전직시킵니다.
/jet (번호)  - 해당 유저에게 제트팩을 지급합니다. 날아다니는 데에 제한 시간은 없습니다. 
/unjet (번호) - 해당 유저에게 지급한 제트팩을 회수합니다.

직업 전용 명령어(D)

(경찰)
/jail (번호) - 번호를 입력한 유저를 감옥으로 보냅니다. 명령어를 치는 즉시 해당 유저를 검사하여 범죄수치가 1이라도 있으면 감옥 내부 좌표로 순간이동 시킵니다.
/unjail (번호) - 감옥에 있는 유저를 스폰지점으로 순간이동 시킵니다.
/gateon - 감옥문을 업니다. 피스톤으로 작동시킵니다.
/gateoff - 감옥문을 닫습니다. 피스톤으로 작동시킵니다.

(의사)

/aheal - 고급 치료 명령어입니다. 일반 /heal 과는 다르게 체력을 완전히 회복합니다. 돈 일부 차감.

(무기상)

/abuy - 고급 무기 구매 명령어입니다. 클래식 무기를 제외한 무기들을 전부 구입할 수 있습니다.

(농부)

/farmon - 농장의 문을 엽니다. 피스톤 작동. 농장에는 1분마다 소환되는 윈체스터가 있습니다.
/farmoff - 농장의 문을 닫습니다. 피스톤 작동.

(어부)

/fishon - 다리 밑의 비밀 통로 문을 엽니다. 피스톤 작동. 안에는 손전등과 연막탄이 있습니다.
/fishoff - 다리 밑의 비밀 통로를 닫습니다. 피스톤 작동.

(광부)

/mineon - 광산의 창고 문을 엽니다. 피스톤 작동. 안에는 정크 슈터와 정크 수류탄이 있습니다.
/mineoff - 광산의 창고 문을 닫습니다.

(운동선수)

/rest - 스태미나를 즉시 완전히 회복합니다. 5초에 한 번 사용 가능합니다.

(보물사냥꾼)

/search - 10초 동안 정신을 집중하여 돈 10만, 행동 점수 50, 경험치 100을 얻습니다. 1분에 한 번 사용 가능합니다.

일반 명령어(E)

/buy - 클래식 무기를 구입할 수 있는 메뉴를 엽니다.
/kill - 제자리에서 자살하여 즉시 병원으로 갑니다. 체력 90을 잃고 병원 좌표로 순간이동.
/time - 현실 시각을 봅니다. 20XX년 XX월 XX일 XX시 XX분 XX초
/help - UI.BOX를 이용한 명령어 도움말을 봅니다. 여러 상태이상에 대한 도움말도 있습니다.
/heal - 일정 돈을 내고 체력을 소량 회복합니다.
/armor - 방탄복을 구입합니다. 100의 수치를 얻습니다.
/licence - 살인면허를 구입합니다. 일회용이고 매우 비싸지만 상대를 죽여도 범죄 점수가 오르지 않습니다. 행동 점수는 여전히 깎입니다.
/house - 집을 구입합니다.
/housein - 구입한 집에 들어갑니다.
/lotto (1부터50) - 복권을 뽑습니다. 돈 1만이 차감됩니다.
/hello - 접속한 유저에게 인사를 합니다.
/nogame - 이벤트에 참가하지 않습니다.
/join - 이벤트가 시작되는 장소로 갑니다.
/me - 현재 자신의 정보를 UI.BOX 로 띄웁니다. 행동 점수, 번호, 범죄 점수, 닉네임, 계급을 볼 수 있습니다.





k. 신고 시스템

권한남용을 하는 관리자 유저를 신고할 수 있습니다. 자세한 설명과 스크린샷을 첨부하면 맵 제작자가 검토하여, 해당 유저의 닉네임을 하드코딩하여 맵에 접속하더라도 아무 명령어도 사용할 수 없는 "투명인간" 으로 만듭니다.





l. 스태미나 시스템

W를 두번 빠르게 누르면 달릴 수 있습니다. 속도는 그렇게 빠르지는 않지만 버니합이나 패스트런 보다는 빠릅니다. 달리면 화면이 서서히 파란색으로 변하여 나중엔 앞이 잘 보이지 않게 됩니다. 스태미나 수치는 100 으로 시작해 달릴수록 서서히 감소하여 0 까지 내려갑니다. UI.BOX로 구현합니다. 스태미나가 고갈되면 더 이상 달릴 수 없으며 자동으로 해제됩니다.





m. 호흡 시스템

플레이어의 현재 좌표를 계산하여, 물 속. 그러니까 해수면보다 z 좌표가 낮은 곳에 들어가면 산소 게이지가 닳게 됩니다. 산소가 닳으면 화면이 점점 검은색으로 변합니다. 산소 게이지는 일반적으로 카스에서 물에 최대로 머무를 수 있는 시간입니다. 원래 물 속에 오래 있으면 체력이 닳는데 이 시간을 비슷하게 맞춰 수치화 하여 시스템으로 구현하는 것입니다. 수치는 100이 최대이고 0으로 될 수록 화면이 검어집니다. 물 위에 둥둥 떠 있을 때는 산소 게이지가 줄지 않습니다.





n. 채팅창 시스템

기존 채팅창을 사용할 수 없게 하고, 새로운 채팅창 시스템을 제작합니다. 최고 관리자는 파란색, 관리자와 부관리자는 채팅창에 글을 쓸 때 노란색으로 표시되며, 나머지는 하얀색입니다. 채팅창의 배경은 반투명한 검은 사각형이며, 채팅을 치면 "닉네임(번호) : 내용" 이렇게 출력됩니다. 





o. 계급 시스템

게임에 접속한 후 1초 마다 경험치를 얻고 이게 어느 정도까지 쌓이면 계급이 올라갑니다. 레벨업을 하게 되면 체력에 보너스가 있는데 그뿐입니다. 매 계급이 오를 수록 최대 체력이 25씩 증가하게 됩니다.





p. 지하철 시스템

근처의 지하철역에서 전철을 탑승하여 맵 끝과 끝으로 이동할 수 있습니다. 지하철에 탑승하면 20초 정도 가만히 있다가 맵 반대쪽으로 순간이동합니다.
돈이 일부 차감됩니다.





q. 맵

맵은 걸어서 이동하기 적당한 크기로 만들되, 다른 시스템을 위해서 중간에는 강이 흐르고 육교나 다리를 설치합니다.





r. 집 시스템

집은 보통 빌라식으로 되어 있고 순간이동 방식의 엘레베이터가 있습니다. 1층 현관 옆에 버튼이 6개 있는데 순서대로 1부터 6까지이며 누르면 각 층으로 순간이동합니다..
한 아파트에 최대 6층까지 있고 그런 집이 4채 있습니다. 꼭대기층으로 갈 수록 고급 집입니다.

집 코드를 24개 하드코딩해서 저장한 다음 유저가 해당 집을 구입하면 해당 유저 번호에 집 코드를 반영구 할당합니다. 집은 게임을 종료할 때까지 지속되며, 가격은 매우 비쌉니다.

집 앞에있는 영역 트리거에 들어가서 /housein 를 입력하면 집안으로 들어갈 수 있습니다. 명령어를 입력하면 플레이어를 검사하여 몇번째 집을 갖고있는지 확인한 뒤 여기가 그 집이 맞으면 들여보내주고 그렇지 않다면 "집이 없습니다." 또는 "이곳은 당신의 집이 아닙니다." 를 출력합니다. 들여보내주는 건 순간이동을 사용합니다. 

집은 총알을 얻을 수 있는 유일한 곳이며, 저급일수록 총알을 조금 얻을 수 있고 고급일수록 총알을 많이 얻을 수 있습니다. 총알 소환시간은 동일합니다. 또한 방탄복이 기본적으로 소환됩니다. 





s. 복권 시스템

20분 마다 복권을 추첨합니다. 복권 금액은 기본 50만부터 시작하는데 복권을 사면 살수록 돈이 더 누적됩니다. 복권을 한번 사면 돈 1만이 빠져 나가지만 실제로 누적되는 돈은 10만입니다. 일확천금을 위해 이렇게 디자인하였습니다.

복권은 /lotto (1부터 50까지숫자) 명령어로 구입할 수 있으며, 각 숫자는 변수가 되어 lotto_01 부터 lotto_50 까지 생성되고, 구입한 로또 변수에 플레이어의 번호를 저장합니다. 가장 먼저 명령어를 입력한 유저의 번호를 가장 윗번에 쓰며 로또 추첨이 끝나면 변수의 숫자를 전부 0으로 만듭니다..

복권은 한 사람당 최대 3장까지만 구입할 수 있습니다.

예를 들어 1337카서(1) 라는 플레이어가 복권을 3장 사고, leet카서(2) 라는 유저가 복권을 2장 샀다면 변수값은 
lotto_01 == 1
lotto_02 == 1
lotto_03 == 1
lotto_04 == 2
lotto_05 == 2

이렇게 됩니다.

1부터 5, 6부터 10, 11부터 15, 16부터 20 이런 식으로 총합 10묶음을 지정한 뒤 1부터 10까지 랜덤으로 숫자를 하나 뽑아 1/10확률로 한 그룹이 걸리게 합니다. 이 그룹에 속해 있던 플레이어번호를 검사하고 플레이어가 있다면 총 상금을 나눈 뒤 해당 유저가 산 로또 수만큼 지급합니다. 로또를 더 많이 샀다면 그 유저한테 더 돈이 돌아갈 것입니다.





t. 질병 시스템

매 번 날짜가 바뀔 때 마다 1씩 더합니다.

날짜가 하나 더해질 때 마다 랜덤 숫자를 생성합니다. 1/100 의 확률로 병에 걸리며, 해당유저의 illness 카운터가 0에서 1이 됩니다.
병에 걸리게 되면 해당 유저의 달리기 능력을 없앱니다.

즉, 달리기 기능을 쓰려면 먼저 해당 유저의 스태미나가 0이 아니고, 질병 카운터가 0이 되어 있어야 한다는 것입니다.

질병은 다시 날짜가 바뀌면 현재 플레이어의 체력을 검사해서 남아있는 체력이 90퍼센트 이상일 경우 고쳐지고, 90퍼센트 이하 50퍼센트 이상일 경우 절반의 확률로 고쳐지거나 낫지 않습니다.  50퍼센트 미만일 경우 그대로 남습니다. 체력도 90퍼센트 미만이면서 질병에 한 번 더 당첨되었을 경우 시스템 카운터를 우선합니다.





u. 인사 시스템

새로운 유저가 접속하면 감지합니다. 그리고 아래 문구를 출력합니다.

"(닉네임) 님이 게임에 접속하셨습니다. 모두 환영해주세요!" 

카운트 다운을 5초 셉니다. 5초 안에 /hello 명령어를 입력하면 "(닉네임) 님이 반갑다고 합니다." 라는 문구가 출력 되며 명령어를 입력한 유저와 접속한 유저 모두의 돈과 행동 점수를 조금 늘립니다. 인사는 해당 카운트 동안 단 한번만 할 수 있습니다.  더 할려고 하면 "이미 인사를 하셨습니다." 문구가 출력 됩니다.





v. 이벤트 룰렛 시스템

철인삼종경기, 수영, 라스트 스탠딩. 이 3개의 이벤트를 추가합니다. 10 분마다 이벤트 카운트가 시작되는데 불참하고 싶으면 미리 /nogame 명령어를 입력해서 참여를 거절해야 합니다. 게임에서 제외되어 있는 사람을 죽이게 되면 범죄 점수가 오르고, 게임 중인 사람을 죽이게 되면 범죄 점수가 오르지 않습니다. 게임에서 제외되어 있는 유저가 게임 참가 중인 유저를 공격했을 시, 제외되어 있는 유저를 참가 중으로 바꿉니다.

라스트 스탠딩을 제외한 나머지 게임은 참가시 무기를 전부 없애게 되니 미리 집에 버리고 와야 합니다. /join 을 하게 되면 ingame 변수가 1로 바뀌게 되고 ingame 변수가 1인 사람은 죽여도 범죄 수치가 오르지 않습니다. 게임 제외 유저가 참가 중인 유저를 공격해도 변수가 바뀝니다.

game_swim
game_champion
game_laststanding
카운터가 있는데, 랜덤으로 이 셋 중 하나의 값이 0에서 1로 바뀌며 골라집니다.

그러면 /join 명령어를 입력해서 이벤트 장소로 순간 이동 할 수 있는데 명령어를 입력하면 현재 저 셋의 변수에 1이 되어 있는 게 있는지 감지한 후 해당 게임의 스폰좌표에 순간 이동을 시킵니다. 

//만약 game_swim 의 값이 1이라면 좌표 x,y,z 로 보내고, game_champion 의 값이 1이라면 좌표 x,y,z 로 보내고, game_laststanding 이 1이라면 좌표 x,y,z 로 보낸다. 이 셋 중 없다면 "현재 참여 가능한 이벤트가 없습니다." 문구를 출력한다.//

철인삼종경기는 덕버니맵, 등산맵, 기타 이어달리기 같은 맵이 종합되어 있는 코스입니다. 체크포인트를 모두 통과해서 정상에 먼저 도착한 사람이 승리하고 돈을 받습니다. 경기가 끝나면 다시 도시 스폰 좌표로 전부 순간 이동합니다.

수영은 도시 바깥 해변가의 암초 코스를 도는 것으로, 체크포인트를 찍고 다시 시작 지점으로 가장 먼저 돌아오면 돈을 받습니다.

라스트 스탠딩은 도시 내에서 벌어지는 게임으로 작은 배틀 로얄입니다. 게임 시작 시 도시 곳곳에서 딴 좌표로 랜덤 스폰되고 공중에서 여러 종류의 총이 떨어집니다. 해당 총을 들고 마주치는 유저들을 다 병원으로 보내고 혼자 살아남으면 됩니다. 4분의 시간이 주어지고 카운트가 끝났을 때 체력이 11 이상인 사람이 승리합니다. 둘이서 작당 하여 보상을 같이 받으려는 경우 게임이 종료되고 행동 점수를 비교하여 더 낮은 플레이어를 강제로 병원으로 보냅니다. 자기장에 의해 체력이 점점 닳기 때문에 사람들은 도시 가운데 강변으로 모이게 됩니다.





w. 인디케이터

체력과 방탄복이 있던 곳은 UI.BOX 로 가립니다. 돈은 가려진 체력 위에 표시됩니다.. 총알 양은 여전히 알 수 있습니다. 체력은 수치 상으로 알지 못하므로 계급이 올라서 체력이 증가하여도 그냥 화면 빨개지는 거 보고 어림 해야 합니다.

기존 모드에서 라운드가 표시 되는 곳 즉 상단 중앙에 시간 카운터를 놓습니다. 시간 카운터는 옆으로 긴 직사각형 형태이며 4개의 구역으로 분리되어 있고 각각 색이 다릅니다. 밤은 짙은 파랑, 새벽은 보라, 아침은 주황, 낮은 노랑. 으로 합니다. 시간이 흐를수록 하얀색 화살표가 오른쪽으로 이동하여 시간을 나타냅니다.





x. 시간 시스템

화면에 검은 UI.BOX 를 반 투명하게 출력하여  어두움을 나타냅니다. 낮이면 하얀색 UI.BOX를 반 투명하게 출력합니다. 과하지 않게 만듭니다.

밤이 너무 길면 귀찮으므로 낮을 제일 길게 하고 새벽은 짧게, 아침도 짧게, 밤은 아침, 새벽보단 길지만 낮보다 짧게 합니다.

인 게임 시간으로 30분이 지나면 하루가 지납니다.










추천 : 1
댓글을 남기시려면 로그인 해주세요
댓글 : 1
  • 전체적인 시스템은 옛날에 플레이했던 SAMP 모드에서 모티브를 얻었습니다. Lv. 12스위시플레인 2022.01.29