Dark Cheater

파일:DarkCheater.jpg

1 개요

Dark Tornado가 만든 스크립트이다. 공식 명칭은 "Dark Cheater"이고, 공식 한글 명칭은 "다크 치터", 공식 줄임말은 "닼치"이다. 2차 공유는 금지되어 있다. 마인크래프트 0.10.4, 블록런처 1.8.6, 안드로이드 젤리빈 이상에서 작동한다. 네이티브 함수와 같은 블록런처 내부의 객체들에 접근하는 부분들이 많아서, 블록런처가 아니면 일부 기능이 작동하지 않는다. 현재는 스크립트 자체가 블록런처에서만 작동하도록 되어있으며, 원격 차단[1] 소스가 최초로 탑재된 스크립트이다.

우선, 기능이 매우 많다. 서버 관리 기능부터 스마트 무빙모션은 없다, 명령어, 테러, 테러 방지, 기타 쓸 데 없는 기능 등이 탑재되어있다. 덕분에 용량도 많이 나간다. 따라서 일부 소스가 내장 메모리에 텍스트 문서로 분리되어 있다. 이를 닼치에서는 "추가 파일"이라고 부른다. 기능 목록은 깃허브 또는 스크립트 내부에서 확인할 수 있다. 버튼이나 메뉴의 배경을 수정하는 '테마'가 존재한다.

일부 메뉴들은 해당 메뉴를 여는 버튼이 없다. 그 메뉴들을 여는 법은 다음과 같다.

  • 갑옷 슬롯 수정 - 인벤토리 수정 버튼을 길게 누름.
  • 다크 포인트 - 인벤토리 수정 버튼을 더블 터치.
  • DL Skill - 월드 정보 수정 버튼을 길게 누름.
  • 플레이어들 관리 - 플레이어 관리 버튼을 길게 누름.
  • 밴 목록 - 플레이어 관리 버튼을 더블 터치.
  • 주변 엔티티 관리 - 엔티티 관리 버튼을 길게 누름.
  • Server Plugin[2] - 서버 관련 버튼을 길게 누름.
  • 서버 테러 - 테러 방지 옵션 버튼을 길게 누름.
  • 테러 도우미 - 테러 방지 옵션 버튼을 더블 터치.
  • 추가 기능 - 기타 기능 버튼을 길게 누름.
  • 회원 전용 기능 - 기타 기능 버튼을 더블 터치. 로그인을 해야 사용 가능.

2 Dark Cheater Addon

Dark Cheater Addon 이란 다크 치터와 연동이 가능한 스크립트이다. Dark Cheater Addon 말고도, 연동이 가능한 스크립트들도 있으나, 공식적으로 공개 및 배포되고 있는 것들은 Dark Cheater Addon 라고 부른다.
다크 치터와는 달리, 대부분 2차 공유가 허용되어 있으며, 닼치 2.4.0부터는 닼치 내부에서 다운로드가 가능하다.

다음은 다크 치터와 연동이 가능한 스크립트들을 출시 순서대로 나열한 것이다.

  • 테러 도우미 : 장거리 멀티와 호환되는 테러 스크립트이나, 블록런처 1.12.1 이후부터는 버튼 삭제로 인해 사용할 수 없다. 이후 버튼을 계속 유지되나, 기능이 줄어들은 "Terror Helper"가 등장했다.
  • Dark Cheater Addon - Client World Edit Plus : 서버원용 월드에딧 스크립트로서, 서버장이 다크 치터를 적용해야 사용이 가능하다. 서버장이 미리 다크 치터를 이용하여 해당 서버원이 월드 에딧을 사용할 수 있도록 해야 작동한다. 블록런처 1.12.1 이후부터는 버튼 삭제로 인해 존재 의미가 사라졌다. 버튼 삭제야 부활시키면 되는데, 서버원 => 서버장 메시지 전달에 사용되는 Server.sendChat();이 고장나버렸다.
  • 개발자 기능 - 개발자가 쓰려고 만든 것. 공유될 일은 없다.
  • TRA 추가기능 - TRA[3] 회원들을 위한 기능이다.
  • Dark Cheater Addon - The Seed : 제작자의 또 다른 스크립트인 Cardinal System의 하향버전. 당연히 모티브는 소드 아트 온라인카디널
  • Nustia - Terror Supporter[4] : 불법적인 요소도 포함되어 있는 테러 스크립트. 당연히 공유되지 않으며, 개발자 기능과 연동되어있다.
  • Dark Cheater Addon - Virtual Inventory : '가상 인벤토리' 스크립트의 2.0에 대응된다. 다른 스크립트들과는 달리, 다크 치터와 자동으로 연동되어 있으며, 버전 2.4.0 이상의 다크 치터에서 사용이 가능하다.
  • Dark Cheater Addon - Nusty : 아직 개발중인 인공지능이다. S보이스시리와 유사한 기능.
  • Dark Cheater Addon - Commands : 아직 개발중인 다크 치터를 명령어화시킨 스크립트이다.
  • Dark Cheater Addon - Terror Supporter : 테러 도우미 8.0에 대응되는 스크립트로, 버전 2.4.0 이상의 다크 치터에서 사용이 가능하다.

3 DCMS

DCMS는 Dark Cheater Modify Script의 약자로, 블록런처에서 스크립트나 애드온[5] 등을 적용하듯이, 다크 치터에서 DCMS를 적용하는 것이다.
ModPE 스크립트를 기반으로 만들어졌으며, 확장자는 ".dcms".

콜백을 사용할 수 없다. 즉, 사용자 정의 함수를 사용할 수 없다. 신나게 함수를 정의하여도, 컴파일러가 무시하고 지나간다.
지역변수를 지원하지 않는다. 상수와 전역변수만 지원한다. 상수 또는 전역변수를 사용할 시, 상수의 앞에는 #을, 전역변수의 앞에는 @를 붙여야 한다. 다른 DCMS의 상수나 변수에 접근하는 것이 가능하다.

if, switch, for, while 등의 제어문은 ModPE와 문법이 동일하다.

3.1 상수 선언법

상수는 다음과 같이 선언한다.


function defineConst(){
상수명 = 값;
}

3.2 변수 선언법

변수는 다음과 같이 선언한다. 선언법은 상수에서 defineConst 대신에 defineVar를 사용한다는 것을 제외하고는 동일하다.


function defineVar(){
변수명 = 값;
}

3.3 이벤트 리스너

이벤트 리스너는 다음과 같다. ModPE 스크립트와는 달리, 매개변수들의 이름이 정해져있으며, 이벤트 리스터의 () 안의 매개변수들을 생략하여도 생략한 매개변수를 사용할 수 있다.

  • function blockTouch() 블록을 터치하면 호출된다. 매개변수는 x, y, z, i, b, s, it, bd 또는 x, y, z, itemId, blockId, side, itemDamage, blockDamage로 사용해야 한다. ModPE 스크립트의 useItem에 대응된다.
  • function entityHit() 엔티티를 때리면 호출된다. 매개변수는 a, v 또는 attacker, victim으로 사용해야 한다. ModPE 스크립트의 attackHook에 대응된다.
  • function entityDie() 엔티티가 죽으면 호출된다. 매개변수는 m, v 또는 murderer, victim으로 사용해야 한다. ModPE 스크립트의 deathHook에 대응된다.
  • function modSecond() 1초마다 호출된다. 매개변수는 없다. ModPE 스크립트의 modTick에 약간 대응된다.
  • function chatSend() 채팅을 하면 호출된다. 서버원의 채팅은 인식하지 않는다. 매개변수는 s 또는 str로 사용해야 한다. ModPE 스크립트의 chatHook에 대응된다.
  • function selectMap() 맵에 들어가면 호출된다. 매개변수는 wn 또는 worldName으로 사용해야 한다. ModPE 스크립트의 newLevel에 대응된다.
  • function selectServer() 서버를 선택하면 호출된다. 매개변수는 ip, port로 사용해야 한다. ModPE 스크립트의 이벤트 리스너들 중에 대응되는 것이 없다.
  • function quitToTitle() 맵이나 서버에서 매인 화면으로 나오면 호출된다. 매개변수는 없다. ModPE 스크립트의 leaveGame에 대응된다.

3.4 라이브러리

DCMS에서는 ModPE 스크립트의 메소드들을 사용할 수 있다.
DCMS 라이브러리를 적용하면, DCMS에서만의 메소드를 사용할 수 있다. DCMS에서의 라이브러리는 C언어에서의 헤더에 대응되는 개념이다. 라이브러리 파일의 확장자는 .dclib이다. 근데, 깃허브에는 확장자가 .js로 올라와있다.
현재 Dark Tornado가 진행중인 수상한 프로젝트 때문에 DCMS 라이브러리들이 그 프로젝트에서 다루는 ModPE 라이브러리로 대체될 가능성이 있다.

3.4.1 DCMS Basic Library

  • sendMessage(내용);[6] 채팅창에 메시지를 출력한다. clientMessage();와는 달리, 서버원에게도 보인다.
  • teleport(엔티티 x좌표, y좌표, z좌표); 해당 엔티티를 해당 위치로 이동시킨다. 서버원 포함.
  • checkInternet(); 인터넷 연결 여부를 반환한다. 연결되어 있으면 true, 아니면 false.
  • nightCheck(); 밤이면 true, 낮이면 false를 반환한다.
  • toast(내용); 토스트 메시지를 출력한다. print();와는 달리, 앞에 스크립트의 이름이 뜨지 않는다.
  • openUrl(url); 해당 url로 이동한다.
  • showDialog(제목, 내용); 다이얼로그를 출력한다.
  • getRealTime(날짜표함여부); 현실세계에서의 현재 시간을 가져온다. 날짜 표함 여부에는 true 또는 false를 넣으면 된다.
  • getBatteryLevel(); 현재 베터리의 잔량이 몇 %인지 반환한다.

3.4.2 ModPE Expension Library

  • Level.spawnSpiderJoky(x좌표, y좌표, z좌표); 해당 위치에 스파이더 조키를 소환한다.
  • Level.spawnChickenJoky(x좌표, y좌표, z좌표); 해당 위치에 치킨 조키를 소환한다.
  • Level.isNight(); 밤인지 확인한다. 밤이면 true, 낮이면 false 반환. nightCheck();와 동일
  • Player.getHealth(); 플레이어의 체력을 반환한다.
  • Player.removeEnchant(); 플레이어가 들고 있는 아이템의 인첸트를 해제한다.
  • Entity.linkWithParticle(엔티티1, 엔티티2); 엔티티1과 엔티티2 사이를 파티클로 연결한다.
  • Entity.getNearEntities(엔티티, 반경, 기타_엔티티_포함_여부); 해당 엔티티를 기준으로 해당 반경 내에 있는 엔티티들을 배열로 반환한다.

기타 엔티티 포함 여부가 false거나 생략한 경우, 화살, 눈덩이, 활성화된 TNT 등은 포함하지 않는다.

  • Entity.removeNameTag(엔티티); 해당 엔티티의 이름표를 지운다.
  • Entity.makeBaby(엔티티, 참/거짓); 해당 엔티티를 아기로 만든다. 좀비와 좀비 피그맨에게만 사용 가능. true일 시 아기로, 거짓일 시 어른(?)으로 만든다.
  • Entity.startBattle(엔티티1, 엔티티2); 엔티티1과 엔티티2가 싸우도록 만든다.
  • Entity.removeEntities(엔티티_타입_아이디); 특정 종류의 엔티티들을 전부 삭제한다.
  • Item.getAllItemIds(블록_포함_여부); 존재하는 모든 아이템의 아이템 아이디를 배열로 반환한다.
  • ModPE.getBlocklauncherVersion(참/거짓); 블록런처의 버전을 가져온다. 참이면 블록런처 프로, 거짓이면 블록런처 무료의 버전을 가져온다.
  • ModPE.getMyIp();[7] 현재 나의 IP를 가져온다.
  • ModPE.getUserName(); 현재 나의 닉네임을 가져온다.
  • ModPE.checkBlocklauncherIsPro(); 현재 사용중이 블록런처가 프로 버전인지 확인한다. 프로 버전이면 true, 무료 버전이면 false 반환.
  • ModPE.setWindow10Ui(참/거짓); 마크의 UI를 윈도우 10 에디션의 UI로 변경한다. 바로 적용되지는 않으며, 완전히 바뀌는 것도 아니다.
  • Server.kickAllPlayers(); 서버에 접속한 모든 플레이어를 강제로 내보낸다.
  • Server.getPlayerByName(닉네임); 해당 닉네임을 가진 플레이어의 엔티티값을 반환한다.

4 Deep Dark Cheater

다크 치터 회원들만 사용이 가능한 수상한 기능. "TRA 추가 기능에서도" 실행시킬 수 있다. 공식 줄임말을 '딥닼치'.
하나의 스크립트 처럼 작동하나, 다크 치터의 일부이다. 로그인하면 열리는 '회원 전용 기능'에 있으며, 일반 회원들은 서버에서 딥닼치를 사용할 수 없다. 일반 회원보다 높은 회원들도 광역 파괴와 같은 사악한 기능들은 사용할 수 없도록 막혀있다.
회원 전용 기능처럼 원격으로 업데이트되며, 딥닼치 부분 소스를 파싱으로 가져와서 닼치에다가 추가하는 방식이기 때문에, 닼치를 뜯어도 딥닼치의 소스는 나오지 않는다.

스크립트와 맵을 다운받을 수 있는 DDD(Deep Dark Downloader)를 딥닼치에서 실행할 수 있다. 현재 DDD에서는 스크립트와 맵, 음악을 다운로드할 수 있다. 딥 다크 다운로더는 앱으로도 개발중이다.

5 White Cheater

파일:WhiteCheater.jpg

STL 사건 당시 누군가가 화이트 치터 드립을 쳤었는데, 그것이 실제로 일어났습니다. 공식 줄임말은 화치.
White Cheater Developers라는 이름으로 7명의 개발진[8]이 모여서 만든 치터로서, 서버에 접속할 시. 서버 측으로 화치 적용여부를 채팅을 동해 전달한다[9]. 닼치 만큼은 아니지만 기능은 상당히 많다.
스크립트 내에서 업데이트가 가능하다. 최신 버전 알림이 뜰 때, 최신 버전을 바로 다운할 수 있다.
현재 최신 버전은 2.0.

5.1 Pure White Cheater

딥닼치에 대응되는 화치의 기능. 현재 사용은 가능하나, 실행 방법이 공개되지는 않았다. '푸화치'... 또는 '순백치'가 공식 줄임말이다. 제작자는 순백치 쪽을 더 사용하는 편이다.

6 Black Cheater

파일:BlackCheater.jpg

닼토가 최근에[10] 시작한 프로젝트이다. 공식 줄임말은 '블치'이며, 닼치나 화치와는 달리, 오픈소스 치터이다.
리눅스와 유사하게 누구나 업데이터가 되서 다음 버전으로 업데이트 시킬 수 있는 프로젝트이다. 업데이트와 관련된 것은 Black Cheater 내부에 있는 Black Cheater License를 참고하면 된다. 현재 최신 버전은 2.2이다.
당연히 아직 초기라서 기능은 닼치보다 메우메우 적다.

그 업데이터가 업뎃시킨 버전의 블랙 치터의 2차 공유 허용/비허용 여부를 정할 수 있다.

7 여담

일부 DMCS 라이브러리는 스크립트용으로도 만들어져, 스크립트용 라이브러리와 DMCS용 라이브러리와 충돌하는 관계로, DMCS용 라이브러리가 사라지는 경우도 있었다. 예를 들어 DCMS 라이브러리 중 File 객체 함수들이 들어있는 File IO Library.dclib는, 스크립트 자체에 File 객체의 함수를 추가하는 File Library.js와 충돌하여 사라졌다. 스크립트용 라이브러리를 적용하면 그 라이브러리에 들어있는 메소드들을 DCMS에서도 사용할 수 있기 때문에, DCMS용 라이브러리가 사라졌다. 그런데, 여차하면 다시 부활할 듯 싶다.
  1. 스크립트의 작동 여부를 제작자가 원격으로 결정하는 것. 웹상에 올라와 있는 파일을 다운하거나 파싱해서 그 내용을 읽어온 뒤, 그 내용에 따라 작동 여부를 설정하는 방식.
  2. 이 메뉴를 열기 위해서는 추가 파일이 필요하다.
  3. Terror Research Association, 테러 연구회. ModPE 스크립트를 통한 MCPE 서버의 테러 및 테러 방지를 연구하는 연구회로서, 테러단은 아니다. 무엇보다 회장인 Dark Tornado가 평화주의자.
  4. 세 번째로 등장한 도스 공격 기능이 있는 스크립트. 버튼이 완전히 막혀도 계속 작동은 하는 Nustia 2.0도 있다.
  5. MCPE 0.16.0에서 추가된 Add-ons가 아니다.
  6. 채팅을 보내는 함수인 Server.sendChat();을 변형시킨 것이기 때문에, 장거리 멀티에서는 채팅을 한 사람의 닉네임도 함께 나온다. 그리고 0.15.x에서는...일해라 주웨이
  7. UI 쓰레드 내부에서는 HTTP 연결을 생성할 수 없기 때문에, 사용할 수 없다. 일반 쓰레드를 하나 생성해서 거기에서 쓰면 된다.
  8. 개발진 톡방에 들어온 순서대로 Dark Tornado, 케케, MC_Blue, FLY123, 노이트, 티에온, 틱탭.
  9. 현재 0.15.x용 블록런처에서는 채팅을 보내는 함수가 고장나서 적용 여부가 전송되지 않는다!
  10. 2016/8 기준