KeyBindSettings.cs 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414
  1. namespace Client
  2. {
  3. public enum KeybindOptions : int
  4. {
  5. Bar1Skill1 = 0,
  6. Bar1Skill2,
  7. Bar1Skill3,
  8. Bar1Skill4,
  9. Bar1Skill5,
  10. Bar1Skill6,
  11. Bar1Skill7,
  12. Bar1Skill8,
  13. Bar2Skill1,
  14. Bar2Skill2,
  15. Bar2Skill3,
  16. Bar2Skill4,
  17. Bar2Skill5,
  18. Bar2Skill6,
  19. Bar2Skill7,
  20. Bar2Skill8,
  21. Inventory,
  22. Inventory2,
  23. Equipment,
  24. Equipment2,
  25. Skills,
  26. Skills2,
  27. Creature,
  28. MountWindow,
  29. Mount,
  30. Fishing,
  31. Skillbar,
  32. Mentor,
  33. Relationship,
  34. Friends,
  35. Guilds,
  36. GameShop,
  37. Quests,
  38. Closeall,
  39. Options,
  40. Options2,
  41. Group,
  42. Belt,
  43. BeltFlip,
  44. Pickup,
  45. Belt1,
  46. Belt1Alt,
  47. Belt2,
  48. Belt2Alt,
  49. Belt3,
  50. Belt3Alt,
  51. Belt4,
  52. Belt4Alt,
  53. Belt5,
  54. Belt5Alt,
  55. Belt6,
  56. Belt6Alt,
  57. Belt7,
  58. Belt7Alt,
  59. Belt8,
  60. Belt8Alt,
  61. Logout,
  62. Exit,
  63. CreaturePickup,
  64. CreatureAutoPickup,
  65. Minimap,
  66. Bigmap,
  67. Trade,
  68. Rental,
  69. ChangeAttackmode,
  70. AttackmodePeace,
  71. AttackmodeGroup,
  72. AttackmodeGuild,
  73. AttackmodeEnemyguild,
  74. AttackmodeRedbrown,
  75. AttackmodeAll,
  76. ChangePetmode,
  77. PetmodeBoth,
  78. PetmodeMoveonly,
  79. PetmodeAttackonly,
  80. PetmodeNone,
  81. Help,
  82. Keybind,
  83. Autorun,
  84. Cameramode,
  85. Screenshot,
  86. DropView,
  87. TargetDead,
  88. Ranking,
  89. AddGroupMember,
  90. HeroSkill1,
  91. HeroSkill2,
  92. HeroSkill3,
  93. HeroSkill4,
  94. HeroSkill5,
  95. HeroSkill6,
  96. HeroSkill7,
  97. HeroSkill8,
  98. HeroInventory,
  99. HeroEquipment,
  100. HeroSkills,
  101. TargetSpellLockOn,
  102. PetmodeFocusMasterTarget
  103. }
  104. public class KeyBind
  105. {
  106. public KeybindOptions function = KeybindOptions.Bar1Skill1;
  107. public string Group = "", Description = "";
  108. public Keys Key = 0;
  109. /// <summary>
  110. /// Require Options : 0 = Require unpressed key, 1 = Require pressed key, 2 = Don't care
  111. /// </summary>
  112. public byte RequireCtrl = 0;
  113. public byte RequireShift = 0;
  114. public byte RequireAlt = 0;
  115. public byte RequireTilde = 0;
  116. }
  117. public class KeyBindSettings
  118. {
  119. private static InIReader Reader = new InIReader(@".\KeyBinds.ini");
  120. public List<KeyBind> Keylist = new List<KeyBind>();
  121. public List<KeyBind> DefaultKeylist = new List<KeyBind>();
  122. public KeyBindSettings()
  123. {
  124. New(Keylist);
  125. New(DefaultKeylist);
  126. if (!File.Exists(@".\KeyBinds.ini"))
  127. {
  128. Save(DefaultKeylist);
  129. return;
  130. }
  131. Load();
  132. }
  133. public void Load()
  134. {
  135. foreach (KeyBind Inputkey in Keylist)
  136. {
  137. Inputkey.RequireAlt = Reader.ReadByte(Inputkey.function.ToString(), "RequireAlt", Inputkey.RequireAlt);
  138. Inputkey.RequireShift = Reader.ReadByte(Inputkey.function.ToString(), "RequireShift", Inputkey.RequireShift);
  139. Inputkey.RequireTilde = Reader.ReadByte(Inputkey.function.ToString(), "RequireTilde", Inputkey.RequireTilde);
  140. Inputkey.RequireCtrl = Reader.ReadByte(Inputkey.function.ToString(), "RequireCtrl", Inputkey.RequireCtrl);
  141. string Input = Reader.ReadString(Inputkey.function.ToString(), "RequireKey", Inputkey.Key.ToString());
  142. Enum.TryParse(Input, out Inputkey.Key);
  143. }
  144. }
  145. public void Save(List<KeyBind> keyList)
  146. {
  147. Reader.Write("Guide", "01", "RequireAlt,RequireShift,RequireTilde,RequireCtrl");
  148. Reader.Write("Guide", "02", "have 3 options: 0/1/2");
  149. Reader.Write("Guide", "03", "0 < you cannot have this key pressed to use the function");
  150. Reader.Write("Guide", "04", "1 < you have to have this key pressed to use this function");
  151. Reader.Write("Guide", "05", "2 < it doesnt matter if you press this key to use this function");
  152. Reader.Write("Guide", "06", "by default just use 2, unless you have 2 functions on the same key");
  153. Reader.Write("Guide", "07", "example: change attack mode (ctrl+h) and help (h)");
  154. Reader.Write("Guide", "08", "if you set either of those to requireshift 2, then they wil both work at the same time or not work");
  155. Reader.Write("Guide", "09", "");
  156. Reader.Write("Guide", "10", "To get the value for RequireKey look at:");
  157. Reader.Write("Guide", "11", "https://msdn.microsoft.com/en-us/library/system.windows.forms.keys(v=vs.110).aspx");
  158. foreach (KeyBind Inputkey in keyList)
  159. {
  160. Reader.Write(Inputkey.function.ToString(), "RequireAlt", Inputkey.RequireAlt);
  161. Reader.Write(Inputkey.function.ToString(), "RequireShift", Inputkey.RequireShift);
  162. Reader.Write(Inputkey.function.ToString(), "RequireTilde", Inputkey.RequireTilde);
  163. Reader.Write(Inputkey.function.ToString(), "RequireCtrl", Inputkey.RequireCtrl);
  164. Reader.Write(Inputkey.function.ToString(), "RequireKey", Inputkey.Key.ToString());
  165. }
  166. }
  167. public void New(List<KeyBind> list)
  168. {
  169. KeyBind InputKey;
  170. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.InventoryOpenClose), function = KeybindOptions.Inventory, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.F9 };
  171. list.Add(InputKey);
  172. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.InventoryOpenCloseAlt), function = KeybindOptions.Inventory2, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 0, Key = Keys.I };
  173. list.Add(InputKey);
  174. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.EquipmentOpenClose), function = KeybindOptions.Equipment, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.F10 };
  175. list.Add(InputKey);
  176. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.EquipmentOpenCloseAlt), function = KeybindOptions.Equipment2, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 0, Key = Keys.C };
  177. list.Add(InputKey);
  178. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SkillsOpenClose), function = KeybindOptions.Skills, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.F11 };
  179. list.Add(InputKey);
  180. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SkillsOpenCloseAlt), function = KeybindOptions.Skills2, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 0, Key = Keys.S };
  181. list.Add(InputKey);
  182. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.HeroInventoryOpenClose), function = KeybindOptions.HeroInventory, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 1, Key = Keys.I };
  183. list.Add(InputKey);
  184. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.HeroEquipmentOpenClose), function = KeybindOptions.HeroEquipment, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 1, Key = Keys.C };
  185. list.Add(InputKey);
  186. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.HeroSkillsOpenClose), function = KeybindOptions.HeroSkills, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 1, Key = Keys.S };
  187. list.Add(InputKey);
  188. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.CreaturesOpenClose), function = KeybindOptions.Creature, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.E };
  189. list.Add(InputKey);
  190. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.MountOpenClose), function = KeybindOptions.MountWindow, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.J };
  191. list.Add(InputKey);
  192. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.FishingOpenClose), function = KeybindOptions.Fishing, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.N };
  193. list.Add(InputKey);
  194. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SkillbarOpenClose), function = KeybindOptions.Skillbar, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.R };
  195. list.Add(InputKey);
  196. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.MentorOpenClose), function = KeybindOptions.Mentor, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.None };
  197. list.Add(InputKey);
  198. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.RelationshipOpenClose), function = KeybindOptions.Relationship, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.L };
  199. list.Add(InputKey);
  200. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.FriendsOpenClose), function = KeybindOptions.Friends, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.F };
  201. list.Add(InputKey);
  202. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.GuildOpenClose), function = KeybindOptions.Guilds, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 0, Key = Keys.G };
  203. list.Add(InputKey);
  204. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.GameshopOpenClose), function = KeybindOptions.GameShop, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.Y };
  205. list.Add(InputKey);
  206. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.QuestDiaryOpenClose), function = KeybindOptions.Quests, RequireAlt = 0, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.Q };
  207. list.Add(InputKey);
  208. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.OptionsOpenClose), function = KeybindOptions.Options, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.F12 };
  209. list.Add(InputKey);
  210. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.OptionsOpenCloseAlt), function = KeybindOptions.Options2, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.O };
  211. list.Add(InputKey);
  212. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.GroupOpenClose), function = KeybindOptions.Group, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.P };
  213. list.Add(InputKey);
  214. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.BeltOpenClose), function = KeybindOptions.Belt, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 0, Key = Keys.Z };
  215. list.Add(InputKey);
  216. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.MinimapOpenClose), function = KeybindOptions.Minimap, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.V };
  217. list.Add(InputKey);
  218. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.BigmapOpenClose), function = KeybindOptions.Bigmap, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.B };
  219. list.Add(InputKey);
  220. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.RankingOpenClose), function = KeybindOptions.Ranking, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.K };
  221. list.Add(InputKey);
  222. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.HelpOpenClose), function = KeybindOptions.Help, RequireAlt = 2, RequireShift = 0, RequireTilde = 2, RequireCtrl = 0, Key = Keys.H };
  223. list.Add(InputKey);
  224. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.KeybindsOpenClose), function = KeybindOptions.Keybind, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.U };
  225. list.Add(InputKey);
  226. InputKey = new KeyBind { Group = "Dialogs", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.CloseAllWindows), function = KeybindOptions.Closeall, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.Escape };
  227. list.Add(InputKey);
  228. InputKey = new KeyBind { Group = "Skillbar", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SkillbarSlot)+" 1", function = KeybindOptions.Bar1Skill1, RequireAlt = 2, RequireShift = 0, RequireTilde = 0, RequireCtrl = 0, Key = Keys.F1 };
  229. list.Add(InputKey);
  230. InputKey = new KeyBind { Group = "Skillbar", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SkillbarSlot)+" 2", function = KeybindOptions.Bar1Skill2, RequireAlt = 2, RequireShift = 0, RequireTilde = 0, RequireCtrl = 0, Key = Keys.F2 };
  231. list.Add(InputKey);
  232. InputKey = new KeyBind { Group = "Skillbar", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SkillbarSlot)+" 3", function = KeybindOptions.Bar1Skill3, RequireAlt = 2, RequireShift = 0, RequireTilde = 0, RequireCtrl = 0, Key = Keys.F3 };
  233. list.Add(InputKey);
  234. InputKey = new KeyBind { Group = "Skillbar", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SkillbarSlot)+" 4", function = KeybindOptions.Bar1Skill4, RequireAlt = 2, RequireShift = 0, RequireTilde = 0, RequireCtrl = 0, Key = Keys.F4 };
  235. list.Add(InputKey);
  236. InputKey = new KeyBind { Group = "Skillbar", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SkillbarSlot)+" 5", function = KeybindOptions.Bar1Skill5, RequireAlt = 2, RequireShift = 0, RequireTilde = 0, RequireCtrl = 0, Key = Keys.F5 };
  237. list.Add(InputKey);
  238. InputKey = new KeyBind { Group = "Skillbar", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SkillbarSlot)+" 6", function = KeybindOptions.Bar1Skill6, RequireAlt = 2, RequireShift = 0, RequireTilde = 0, RequireCtrl = 0, Key = Keys.F6 };
  239. list.Add(InputKey);
  240. InputKey = new KeyBind { Group = "Skillbar", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SkillbarSlot)+" 7", function = KeybindOptions.Bar1Skill7, RequireAlt = 2, RequireShift = 0, RequireTilde = 0, RequireCtrl = 0, Key = Keys.F7 };
  241. list.Add(InputKey);
  242. InputKey = new KeyBind { Group = "Skillbar", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SkillbarSlot)+" 8", function = KeybindOptions.Bar1Skill8, RequireAlt = 2, RequireShift = 0, RequireTilde = 0, RequireCtrl = 0, Key = Keys.F8 };
  243. list.Add(InputKey);
  244. InputKey = new KeyBind { Group = "Skillbar", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SkillbarAltSlot)+" 1", function = KeybindOptions.Bar2Skill1, RequireAlt = 2, RequireShift = 0, RequireTilde = 0, RequireCtrl = 1, Key = Keys.F1 };
  245. list.Add(InputKey);
  246. InputKey = new KeyBind { Group = "Skillbar", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SkillbarAltSlot)+" 2", function = KeybindOptions.Bar2Skill2, RequireAlt = 2, RequireShift = 0, RequireTilde = 0, RequireCtrl = 1, Key = Keys.F2 };
  247. list.Add(InputKey);
  248. InputKey = new KeyBind { Group = "Skillbar", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SkillbarAltSlot)+" 3", function = KeybindOptions.Bar2Skill3, RequireAlt = 2, RequireShift = 0, RequireTilde = 0, RequireCtrl = 1, Key = Keys.F3 };
  249. list.Add(InputKey);
  250. InputKey = new KeyBind { Group = "Skillbar", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SkillbarAltSlot)+" 4", function = KeybindOptions.Bar2Skill4, RequireAlt = 2, RequireShift = 0, RequireTilde = 0, RequireCtrl = 1, Key = Keys.F4 };
  251. list.Add(InputKey);
  252. InputKey = new KeyBind { Group = "Skillbar", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SkillbarAltSlot)+" 5", function = KeybindOptions.Bar2Skill5, RequireAlt = 2, RequireShift = 0, RequireTilde = 0, RequireCtrl = 1, Key = Keys.F5 };
  253. list.Add(InputKey);
  254. InputKey = new KeyBind { Group = "Skillbar", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SkillbarAltSlot)+" 6", function = KeybindOptions.Bar2Skill6, RequireAlt = 2, RequireShift = 0, RequireTilde = 0, RequireCtrl = 1, Key = Keys.F6 };
  255. list.Add(InputKey);
  256. InputKey = new KeyBind { Group = "Skillbar", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SkillbarAltSlot)+" 7", function = KeybindOptions.Bar2Skill7, RequireAlt = 2, RequireShift = 0, RequireTilde = 0, RequireCtrl = 1, Key = Keys.F7 };
  257. list.Add(InputKey);
  258. InputKey = new KeyBind { Group = "Skillbar", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SkillbarAltSlot)+" 8", function = KeybindOptions.Bar2Skill8, RequireAlt = 2, RequireShift = 0, RequireTilde = 0, RequireCtrl = 1, Key = Keys.F8 };
  259. list.Add(InputKey);
  260. InputKey = new KeyBind { Group = "Skillbar", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.HeroSkillbarSlot)+" 1", function = KeybindOptions.HeroSkill1, RequireAlt = 2, RequireShift = 1, RequireTilde = 0, RequireCtrl = 0, Key = Keys.F1 };
  261. list.Add(InputKey);
  262. InputKey = new KeyBind { Group = "Skillbar", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.HeroSkillbarSlot)+" 2", function = KeybindOptions.HeroSkill2, RequireAlt = 2, RequireShift = 1, RequireTilde = 0, RequireCtrl = 0, Key = Keys.F2 };
  263. list.Add(InputKey);
  264. InputKey = new KeyBind { Group = "Skillbar", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.HeroSkillbarSlot)+" 3", function = KeybindOptions.HeroSkill3, RequireAlt = 2, RequireShift = 1, RequireTilde = 0, RequireCtrl = 0, Key = Keys.F3 };
  265. list.Add(InputKey);
  266. InputKey = new KeyBind { Group = "Skillbar", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.HeroSkillbarSlot)+" 4", function = KeybindOptions.HeroSkill4, RequireAlt = 2, RequireShift = 1, RequireTilde = 0, RequireCtrl = 0, Key = Keys.F4 };
  267. list.Add(InputKey);
  268. InputKey = new KeyBind { Group = "Skillbar", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.HeroSkillbarSlot)+" 5", function = KeybindOptions.HeroSkill5, RequireAlt = 2, RequireShift = 1, RequireTilde = 0, RequireCtrl = 0, Key = Keys.F5 };
  269. list.Add(InputKey);
  270. InputKey = new KeyBind { Group = "Skillbar", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.HeroSkillbarSlot)+" 6", function = KeybindOptions.HeroSkill6, RequireAlt = 2, RequireShift = 1, RequireTilde = 0, RequireCtrl = 0, Key = Keys.F6 };
  271. list.Add(InputKey);
  272. InputKey = new KeyBind { Group = "Skillbar", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.HeroSkillbarSlot)+" 7", function = KeybindOptions.HeroSkill7, RequireAlt = 2, RequireShift = 1, RequireTilde = 0, RequireCtrl = 0, Key = Keys.F7 };
  273. list.Add(InputKey);
  274. InputKey = new KeyBind { Group = "Skillbar", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.HeroSkillbarSlot)+" 8", function = KeybindOptions.HeroSkill8, RequireAlt = 2, RequireShift = 1, RequireTilde = 0, RequireCtrl = 0, Key = Keys.F8 };
  275. list.Add(InputKey);
  276. InputKey = new KeyBind { Group = "Belt", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.RotateBelt), function = KeybindOptions.BeltFlip, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 1, Key = Keys.Z };
  277. list.Add(InputKey);
  278. InputKey = new KeyBind { Group = "Belt", Description = GameLanguage.ClientTextMap.GetLocalization((ClientTextKeys.BeltSlot),1), function = KeybindOptions.Belt1, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.D1 };
  279. list.Add(InputKey);
  280. InputKey = new KeyBind { Group = "Belt", Description = GameLanguage.ClientTextMap.GetLocalization((ClientTextKeys.BeltSlotAlt),1), function = KeybindOptions.Belt1Alt, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.NumPad1 };
  281. list.Add(InputKey);
  282. InputKey = new KeyBind { Group = "Belt", Description = GameLanguage.ClientTextMap.GetLocalization((ClientTextKeys.BeltSlot),2), function = KeybindOptions.Belt2, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.D2 };
  283. list.Add(InputKey);
  284. InputKey = new KeyBind { Group = "Belt", Description = GameLanguage.ClientTextMap.GetLocalization((ClientTextKeys.BeltSlotAlt),2), function = KeybindOptions.Belt2Alt, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.NumPad2 };
  285. list.Add(InputKey);
  286. InputKey = new KeyBind { Group = "Belt", Description = GameLanguage.ClientTextMap.GetLocalization((ClientTextKeys.BeltSlot),3), function = KeybindOptions.Belt3, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.D3 };
  287. list.Add(InputKey);
  288. InputKey = new KeyBind { Group = "Belt", Description = GameLanguage.ClientTextMap.GetLocalization((ClientTextKeys.BeltSlotAlt),3), function = KeybindOptions.Belt3Alt, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.NumPad3 };
  289. list.Add(InputKey);
  290. InputKey = new KeyBind { Group = "Belt", Description = GameLanguage.ClientTextMap.GetLocalization((ClientTextKeys.BeltSlot),4), function = KeybindOptions.Belt4, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.D4 };
  291. list.Add(InputKey);
  292. InputKey = new KeyBind { Group = "Belt", Description = GameLanguage.ClientTextMap.GetLocalization((ClientTextKeys.BeltSlotAlt),4), function = KeybindOptions.Belt4Alt, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.NumPad4 };
  293. list.Add(InputKey);
  294. InputKey = new KeyBind { Group = "Belt", Description = GameLanguage.ClientTextMap.GetLocalization((ClientTextKeys.BeltSlot),5), function = KeybindOptions.Belt5, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.D5 };
  295. list.Add(InputKey);
  296. InputKey = new KeyBind { Group = "Belt", Description = GameLanguage.ClientTextMap.GetLocalization((ClientTextKeys.BeltSlotAlt),5), function = KeybindOptions.Belt5Alt, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.NumPad5 };
  297. list.Add(InputKey);
  298. InputKey = new KeyBind { Group = "Belt", Description = GameLanguage.ClientTextMap.GetLocalization((ClientTextKeys.BeltSlot),6), function = KeybindOptions.Belt6, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.D6 };
  299. list.Add(InputKey);
  300. InputKey = new KeyBind { Group = "Belt", Description = GameLanguage.ClientTextMap.GetLocalization((ClientTextKeys.BeltSlotAlt),6), function = KeybindOptions.Belt6Alt, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.NumPad6 };
  301. list.Add(InputKey);
  302. InputKey = new KeyBind { Group = "Belt", Description = GameLanguage.ClientTextMap.GetLocalization((ClientTextKeys.BeltSlot),7), function = KeybindOptions.Belt7, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.D7 };
  303. list.Add(InputKey);
  304. InputKey = new KeyBind { Group = "Belt", Description = GameLanguage.ClientTextMap.GetLocalization((ClientTextKeys.BeltSlotAlt),7), function = KeybindOptions.Belt7Alt, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.NumPad7 };
  305. list.Add(InputKey);
  306. InputKey = new KeyBind { Group = "Belt", Description = GameLanguage.ClientTextMap.GetLocalization((ClientTextKeys.BeltSlot),8), function = KeybindOptions.Belt8, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.D8 };
  307. list.Add(InputKey);
  308. InputKey = new KeyBind { Group = "Belt", Description = GameLanguage.ClientTextMap.GetLocalization((ClientTextKeys.BeltSlotAlt),8), function = KeybindOptions.Belt8Alt, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.NumPad8 };
  309. list.Add(InputKey);
  310. InputKey = new KeyBind { Group = "General", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.Logout), function = KeybindOptions.Logout, RequireAlt = 1, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.X };
  311. list.Add(InputKey);
  312. InputKey = new KeyBind { Group = "General", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.Exit), function = KeybindOptions.Exit, RequireAlt = 1, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.Q };
  313. list.Add(InputKey);
  314. InputKey = new KeyBind { Group = "General", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.MountDismount), function = KeybindOptions.Mount, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.M };
  315. list.Add(InputKey);
  316. InputKey = new KeyBind { Group = "General", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.PickupFloorItem), function = KeybindOptions.Pickup, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.Tab };
  317. list.Add(InputKey);
  318. InputKey = new KeyBind { Group = "General", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.CreatureItemPickup), function = KeybindOptions.CreaturePickup, RequireAlt = 0, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.X };
  319. list.Add(InputKey);
  320. InputKey = new KeyBind { Group = "General", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.CreatureAutoPickup), function = KeybindOptions.CreatureAutoPickup, RequireAlt = 1, RequireShift = 2, RequireTilde = 2, RequireCtrl = 0, Key = Keys.A };
  321. list.Add(InputKey);
  322. InputKey = new KeyBind { Group = "General", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.RequestTrade), function = KeybindOptions.Trade, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.T };
  323. list.Add(InputKey);
  324. InputKey = new KeyBind { Group = "General", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.RecruitGroupMember), function = KeybindOptions.AddGroupMember, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 1, Key = Keys.G };
  325. list.Add(InputKey);
  326. InputKey = new KeyBind { Group = "Toggle", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.ToggleAttackMode), function = KeybindOptions.ChangeAttackmode, RequireAlt = 2, RequireShift = 0, RequireTilde = 2, RequireCtrl = 1, Key = Keys.H };
  327. list.Add(InputKey);
  328. InputKey = new KeyBind { Group = "Toggle", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SetAttackModePeace), function = KeybindOptions.AttackmodePeace, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.None };
  329. list.Add(InputKey);
  330. InputKey = new KeyBind { Group = "Toggle", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SetAttackModeGroup), function = KeybindOptions.AttackmodeGroup, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.None };
  331. list.Add(InputKey);
  332. InputKey = new KeyBind { Group = "Toggle", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SetAttackModeGuild), function = KeybindOptions.AttackmodeGuild, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.None };
  333. list.Add(InputKey);
  334. InputKey = new KeyBind { Group = "Toggle", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SetAttackModeEnemyGuild), function = KeybindOptions.AttackmodeEnemyguild, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.None };
  335. list.Add(InputKey);
  336. InputKey = new KeyBind { Group = "Toggle", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SetAttackModeRedBrown), function = KeybindOptions.AttackmodeRedbrown, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.None };
  337. list.Add(InputKey);
  338. InputKey = new KeyBind { Group = "Toggle", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SetAttackModeAll), function = KeybindOptions.AttackmodeAll, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.None };
  339. list.Add(InputKey);
  340. InputKey = new KeyBind { Group = "Toggle", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.TogglePetMode), function = KeybindOptions.ChangePetmode, RequireAlt = 0, RequireShift = 2, RequireTilde = 2, RequireCtrl = 1, Key = Keys.A };
  341. list.Add(InputKey);
  342. InputKey = new KeyBind { Group = "Toggle", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SetPetModeBoth), function = KeybindOptions.PetmodeBoth, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.None };
  343. list.Add(InputKey);
  344. InputKey = new KeyBind { Group = "Toggle", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SetPetModeMoveOnly), function = KeybindOptions.PetmodeMoveonly, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.None };
  345. list.Add(InputKey);
  346. InputKey = new KeyBind { Group = "Toggle", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SetPetModeAttackOnly), function = KeybindOptions.PetmodeAttackonly, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.None };
  347. list.Add(InputKey);
  348. InputKey = new KeyBind { Group = "Toggle", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SetPetModeNone), function = KeybindOptions.PetmodeNone, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.None };
  349. list.Add(InputKey);
  350. InputKey = new KeyBind { Group = "Toggle", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.SetPetModeFocusMasterTarget), function = KeybindOptions.PetmodeFocusMasterTarget, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.None };
  351. list.Add(InputKey);
  352. InputKey = new KeyBind { Group = "Toggle", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.ToggleAutorun), function = KeybindOptions.Autorun, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.D };
  353. list.Add(InputKey);
  354. InputKey = new KeyBind { Group = "Toggle", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.ToggleCameraMode), function = KeybindOptions.Cameramode, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.Insert };
  355. list.Add(InputKey);
  356. InputKey = new KeyBind { Group = "Toggle", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.TakeScreenshot), function = KeybindOptions.Screenshot, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.PrintScreen };
  357. list.Add(InputKey);
  358. InputKey = new KeyBind { Group = "Toggle", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.ToggleDropview), function = KeybindOptions.DropView, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.Tab };
  359. list.Add(InputKey);
  360. InputKey = new KeyBind { Group = "Combat", Description = GameLanguage.ClientTextMap.GetLocalization(ClientTextKeys.HoldEnableTargetSpellLockOn), function = KeybindOptions.TargetSpellLockOn, RequireAlt = 2, RequireShift = 2, RequireTilde = 2, RequireCtrl = 2, Key = Keys.None };
  361. list.Add(InputKey);
  362. }
  363. public string GetKey(KeybindOptions Option, bool defaultKey = false)
  364. {
  365. List<KeyBind> lst;
  366. if (defaultKey) lst = CMain.InputKeys.DefaultKeylist;
  367. else lst = CMain.InputKeys.Keylist;
  368. string output = "";
  369. for (int i = 0; i < lst.Count; i++)
  370. {
  371. if (lst[i].function == Option)
  372. {
  373. if (lst[i].Key == Keys.None) return output;
  374. if (lst[i].RequireAlt == 1)
  375. output = "Alt";
  376. if (lst[i].RequireCtrl == 1)
  377. output = output != "" ? output + " + Ctrl" : "Ctrl";
  378. if (lst[i].RequireShift == 1)
  379. output = output != "" ? output + " + Shift" : "Shift";
  380. if (lst[i].RequireTilde == 1)
  381. output = output != "" ? output + " + ~" : "~";
  382. output = output != "" ? output + " + " + lst[i].Key.ToString() : lst[i].Key.ToString();
  383. return output;
  384. }
  385. }
  386. return "";
  387. }
  388. }
  389. }