|
2015-12-30 17:05
조회: 5,628
추천: 1
단축키 xml 파일 분석 및 수정방법 이미 몇개 글들이 올라왔지만 제가 연구한 내용을 추가해보려고 합니다.
트오세 단축키 설정 xml파일의 위치는 TOS 설치폴더/release/ 안에 있습니다. hotkey.xml, hotkey_mousemode.xml hotkey_joystick.xml 3개 파일이며 각자 키보드 모드,마우스 모드,패드 모드의 단축키 설정을 담고 있습니다. 여기선 hotkey_joystick.xml 파일의 분석을 중점적으로 다룹니다.게임내에서 어느정도 단축키 편집이 가능한 다른 두모드와 달리 패드는 아예 안되기 때문입니다. xml 형식은 단순합니다. <Category> <HotKey .../> <HotKey .../> </Category HotKey 한행당 키바인드 하나를 정의하고있습니다. HotKey 행 하나를 살펴보면 여러가지 요소가 있는데요 일단 1) Name, UseAlt, UseCtrl, OnEdit Name은 설명문으로 실제 작용은 없는 것 같습니다. UseAlt,UseCtrl 은 키보드 모드에서 인계된 요소로 보이며 패드에서는 다 NO면 됩니다. OnEdit은 게임내에서 수정 가능한지 여부를 묻는 것일텐데 건드릴 이유는 없겠죠. 2) ID, DownScp, UpScp 이 부분은 누른 키가 어떤 기능을 수행하는지에 대한 요소입니다. DownScp는 키를 눌렀을 때, UpScp는 키를 뗄때 실행됩니다. 문제는 둘다 None으로 되어 있는 행이 있는데 이 경우 ID에 따라 기능을 부여하는 것 같은데 이 부분은 자료도 부족하고 실험도 부족해서 아직 정확하진 않습니다. 3) Key, PressedKey 이 두개가 눌려지는 키를 지정합니다. PressedKey는 선행해서 눌러야하는 키죠 L1+세모면 L1이 해당됩니다. a)여기서 주의해야할 건 PressedKey 단독으로 눌려지는 건 지정하면 안된다는 겁니다. L1에 무언가를 지정한다면 L1 + 세모가 눌리기 전에 L1이 실행되기 때문이죠. b)그리고 복합키 구문은 단일키 구문보다 위에 나와야합니다. 세모 버튼 지정행이 L1+세모 버튼 지정행보다 위에 있으면 L1+세모가 먹히지 않습니다. 아마 위에서부터 차례대로 읽으면서 일치하는 걸 찾기 때문이겠죠. c)또 하나는 R2 + L2 처럼 어느 쪽이 눌리든 상관 없는 행을 만들고 싶으면 두개 다 지정해야합니다. L2+R2로 하나 R2+L2로 하나 이렇게 말이죠. 다만 예외는 L1L2, R1R2는 따로 키하나를 부여했더군요 L1L2+ 지정키 조합을 만들고 싶어서 아예 그렇게 만든 것 같습니다. 키 변수는 밑에 또 추가로 적겠습니다. 4) Mode Mode는 Key,Mouse,Both 가 있습니다. 패드모드, 마우스모드, 양쪽다에 해당되겠죠. 지정된 행이 어느 모드에서 동작할 거를 지정합니다. 보통은 Key를 지정하면 됩니다. A) DualShock 4의 키 변수 -아날로그 스틱 상: JOY_UP 하: JOY_DOWN 좌: JOY_LEFT 우: JOY_RIGHT -십자패드 십자상: JOY_CROSS_UP 십자하: JOY_CROSS_DOWN 십자좌: JOY_CROSS_LEFT 십자우: JOY_CROSS_RIGHT 네모: JOY_BTN_1 세모: JOY_BTN_4 동글: JOY_BTN_3 엑스: JOY_BTN_2 L1: JOY_BTN_5 L2: JOY_BTN_7 L3: JOY_BTN_11 R1: JOY_BTN_6 R2: JOY_BTN_8 R3: JOY_BTN_12 L1+L2: JOY_L1L2 R1+R2: JOY_R1R2 Share: JOY_BTN_9 Option: JOY_BTN_10 터치패드: JOY_BTN_14 PS버튼: JOY_BTN_13 B) 함수 목록 패드퀵슬롯: JOYSTICK_QUICKSLOT_EXECUTE(x) x:숫자 마우스 모드: joystick.ToggleMouseMode() 맵열기: UI_TOGGLE_MAP() 퀘스트아이템: QUESTITEMUSE_EXECUTE() 마우스가속: joystick.MouseSpeedUp(x) x:가속수치 음수면 감속 퀵슬롯전환: JOYSTICK_QUICKSLOT_SWAP(1) 무기변경: WEAPONSWAP_SWAP_EQUIP() 워프: SELECT_QUEST_WARP() 컴패탑승: ON_RIDING_VEHICLE(x) 1=타기,0=내리기 컴패연관: COMPANION_INTERACTION(x) 1=쓰다듬기,2=먹이주기 휴식모드: control.RestSit() --------키보드 배열에서--------- 채팅: ui.ProcessReturnKey() 캐릭터: UI_TOGGLE_STATUS() 캐릭터정보: CHARBASEINFO_EXCHANGE() 인벤토리: UI_TOGGLE_INVENTORY() 스킬트리: UI_TOGGLE_SKILLTREE() 모험일지: UI_TOGGLE_JOURNAL() 퀘스트: UI_TOGGLE_QUEST() 파티리스트: UI_TOGGLE_PARTY() 친구리스트: UI_TOGGLE_FRIEND() 매크로: UI_TOGGLE_POSE_MACRO() 컴패니언: UI_TOGGLE_PETLIST() 도움말: UI_TOGGLE_HELPLIST() 월드맵: UI_TOGGLE_WORLDMAP() 미니맵크기: SET_MINIMAP_SIZE(x) 1=크게,0=작게 퀵슬롯: QUICKSLOTNEXPBAR_EXECUTE(x) 0~39 채팅매크로x: EXEC_CHATMACRO(x) 1~10 확인: UI_KEYDOWN_OKAY() 취소: UI_KEYDOWN_CANCEL() 채팅변경: ui.ProcessTabKey() C) 함수가 없는 ID 목록 위쪽 방향 이동: MoveUp 아래쪽 방향 이동: MoveDown 왼쪽 방향 이동: MoveLeft 오른쪽 방향 이동: MoveRight 일반공격: NormalAttack 점프: Jump 선택/스킵: Select ESC버튼: Escape 타겟 고정: TargetFixed 타겟 변경: TargetChange 보조 무기: LHand // 마우스모드 사용 십자키 위: CrossUp 십자키 아래: CrossDown 십자키 왼쪽: CrossLeft 십자키 오른쪽: CrossRight 활용 예 a) 방패나 보조 무기를 쓰지 않아서 세모 버튼을 퀵슬롯으로 지정하고 싶은 경우 <HotKey ID="LHand" Name="보조 무기" DownScp="None" UpScp="None" Key="JOY_BTN_4" PressedKey="None" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO"/> 이 행을 찾아서 DownScp에 퀵슬롯 실행 함수를 넣습니다. 저는 QUICKSLOTNEXPBAR_EXECUTE(20) 키보드 모드에서 숫자 1번에 해당되는 걸 넣었습니다. <HotKey ID="LHand" Name="보조 무기" DownScp="None" UpScp="QUICKSLOTNEXPBAR_EXECUTE(20)" Key="JOY_BTN_4" PressedKey="None" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO"/> 이렇게 바꾼 뒤 세모로 쓰고 싶은 스킬을 키보드 모드에서 숫자 1칸에 넣으면 해당 스킬이 사용됩니다. b) 무기를 바꿈과 동시에 스킬창을 전환하고 싶은 경우 <HotKey ID="WeaponSwap1" Name="무기 스왑" DownScp="WEAPONSWAP_SWAP_EQUIP()" UpScp="None" Key="JOY_BTN_11" PressedKey="None" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO"/> 이 행을 찾아서 UpScp에 JOYSTICK_QUICKSLOT_SWAP(1)를 넣습니다. <HotKey ID="WeaponSwap1" Name="무기 스왑" DownScp="WEAPONSWAP_SWAP_EQUIP()" UpScp="JOYSTICK_QUICKSLOT_SWAP(1)" Key="JOY_BTN_11" PressedKey="None" Mode="Key" UseAlt="NO" UseCtrl="NO" OnEdit="NO"/> 그러면 L3을 누를 때 무기가 바뀌고 뗄때 스킬창이 바뀌게 됩니다. //아직 이부분은 실험한 적이 없네요 c) 패드에는 있는데 사용되지 않는 버튼 찾아서 쓰기 DS4의 경우 터치패드 버튼과 PS버튼이 전혀 활용되지 않지만 변수는 확실히 있었습니다. 이 숫자를 알아보는 방법은 해당 패드를 컴퓨터에 연결한 후 설정에서 테스트 해보는 겁니다. ![]() 이 화면에서 해당 버튼을 눌러서 무슨 숫자로 나오는지 알아보고 그걸 JOY_BTN_ 뒤에 붙이면 됩니다. |

재버웍 