private void ConfirmPlayAsTrio() { var box = RPGMessageBox.Create("Are you sure you want to play as the trio?", "Play as Michael Trevor and Franklin", "Continue Playing GTA:RPG", () => { View.CloseAllMenus(); RPGMethods.PlayAsTrio(); }, () => { View.MenuPosition = new Point(UI.WIDTH - 300, 0); }); RPGUI.FormatMenu(box); View.AddMenu(box); }
private void ConfirmReturnToNormal() { var box = RPGMessageBox.Create("Are you sure you want to return to normal mode?", "Return to normal mode", "Continue Playing GTA:RPG", () => { View.CloseAllMenus(); RPGMethods.ReturnToNormal(); }, () => { View.MenuPosition = new Point(UI.WIDTH - 300, 0); }); RPGUI.FormatMenu(box); View.AddMenu(box); }
private void ConfirmPlayAsYourCharacter() { var box = RPGMessageBox.Create("Are you sure you want to switch to your character?", "Play as " + RPG.PlayerData.Name, "Continue Playing", () => { View.CloseAllMenus(); RPG.InitCharacter(); }, () => { View.MenuPosition = new Point(UI.WIDTH - 300, 0); }); RPGUI.FormatMenu(box); View.AddMenu(box); }
private void NewGame() { var confirm = RPGMessageBox.Create("Are you sure you want to start over?", "Start new game", "Continue playing", () => { RPG.GameLoaded = false; CharCreationNew.RestartCharCreation(); }, () => { }); RPGUI.FormatMenu(confirm); RPG.UIHandler.View.AddMenu(confirm); }
public UIHandler() { RPG.UIHandler = this; KeyDown += OnKeyDown; //Use some fancy transitions View.MenuTransitions = true; View.PopMenu(); View.MenuOffset = new Point(-302, 0); View.MenuPosition = new Point(UI.WIDTH - 300, 0); CharacterMenu = new RPGMenu("Character Menu", new GTASprite("CommonMenu", "interaction_bgd", Color.ForestGreen), new IMenuItem[] { new MenuButton("Quests", "").WithActivate(OpenQuestLog), new MenuButton("Set Skillbar", "").WithActivate(OpenSkillBarMenu), new MenuButton("Skills", "").WithActivate(OpenSkillsMenu), new MenuButton("Weapons", "").WithActivate(OpenWeaponsMenu), //new MenuButton("Talents", "", () => { View.PopMenu(); }), //new MenuButton("Mod Weapons", "", () => { View.PopMenu(); }), //new MenuButton("Mod Cars", "", () => { View.PopMenu();}), new MenuButton("Back", "").WithActivate(() => View.PopMenu()) }); ActionsMenu = new RPGMenu("ACTIONS", new GTASprite("CommonMenu", "interaction_bgd", Color.Red), new IMenuItem[] { new MenuButton("Spawn Personal Vehicle", "").WithActivate(() => RPGMethods.SpawnCar()), new MenuButton("Get Random Contract", "").WithActivate(GetRandomContract), new MenuButton("Purchase Goods", "").WithActivate(OpenShop), new MenuButton("Craft Items", "").WithActivate(OpenCrafting), new MenuButton("Back", "").WithActivate(View.PopMenu) }); SkillTreeMenu = RPG.SkillHandler.GetSkillMenu(); WeaponTreeMenu = RPG.WeaponHandler.GetWeaponMenu(); //var o = new MenuNumericScroller("Number", "", d => { }, d => { }, 0, 100, 1); //var p = new MenuToggle("Toggle", "", ()=> { }, () => { }); MainMenu = new RPGMenu("RPG Menu", new GTASprite("CommonMenu", "interaction_bgd", Color.DodgerBlue), new IMenuItem[] { new MenuButton("Inventory", "").WithActivate(OpenInventory), new MenuButton("Character Menu", "").WithActivate(OpenCharacterMenu), new MenuButton("Actions ", "").WithActivate(() => View.AddMenu(ActionsMenu)), new MenuButton("Options", "").WithActivate(() => OpenOptionsMenu()), new MenuButton("Play as Michael, Franklin and Trevor ", "").WithActivate(ConfirmPlayAsTrio), new MenuButton("Play as Yourself", "").WithActivate(ConfirmPlayAsYourCharacter), new MenuButton("Return to Normal Mode ", "").WithActivate(ConfirmReturnToNormal), new MenuButton("Close", "").WithActivate(View.PopMenu) }); RPGUI.FormatMenu(ActionsMenu); RPGUI.FormatMenu(MainMenu); RPGUI.FormatMenu(CharacterMenu); }
private void UpdateInventory(int selected = 0) { var inventoryList = new List <IMenuItem>(); if (!PlayerData.Inventory.Any()) { inventoryList.Add(new MenuButton("Empty")); } for (int i = 0; i < PlayerData.Inventory.Count; i++) { var item = PlayerData.Inventory[i]; inventoryList.Add(new MenuButton(item.Quantity + "x\t" + item.Name, item.Description)); } inventoryList.Add(new MenuButton("Back")); foreach (var i in inventoryList) { i.Parent = InventoryMenu; } if (InventoryMenu == null) { InventoryMenu = new RPGListMenu("Inventory", new GTASprite("CommonMenu", "interaction_bgd", Color.ForestGreen), UseInventoryItem, inventoryList.ToArray()); } else { InventoryMenu.Caption = "GTA$" + PlayerData.Money.ToString("N0"); InventoryMenu.Items.Clear(); InventoryMenu.Items.AddRange(inventoryList); InventoryMenu.Initialize(); } RPGUI.FormatMenuWithFooter(InventoryMenu); InventoryMenu.HeaderHeight = 25; InventoryMenu.Caption = "GTA$" + PlayerData.Money.ToString("N0"); if (InventoryMenu != null && IsOpen(InventoryMenu)) { InventoryMenu.SelectedIndex = selected; } }
public void UpdateQuestLog(int selected = 0) { var questList = new List <IMenuItem>(); var storyQuests = RPG.PlayerData.Quests.Where(q => !q.IsContract && !q.IsRepeatable).ToList(); var completion = (float)storyQuests.Count(s => s.Done) / storyQuests.Count; var quests = PlayerData.Quests.Where(s => s.InProgress).Concat(PlayerData.Quests.Where(c => !c.InProgress)).Where(c => !c.IsContract || c.InProgress).ToList(); for (int i = 0; i < quests.Count; i++) { var item = quests[i]; questList.Add(new MenuButton((item.InProgress ? "[In Progress] " : (item.Done ? "[Done] " : "[Not Started] ")) + item.Name, item.Description)); } questList.Add(new MenuButton("Back")); foreach (var i in questList) { i.Parent = QuestLogMenu; } if (QuestLogMenu == null) { QuestLogMenu = new RPGListMenu("Quest Log", new GTASprite("CommonMenu", "interaction_bgd", Color.DarkOrange), UseQuestLogEntry, questList.ToArray()); } else { QuestLogMenu.Caption = "Story Progress: " + completion.ToString("P0"); QuestLogMenu.Items.Clear(); QuestLogMenu.Items.AddRange(questList); QuestLogMenu.Initialize(); } QuestLogMenu.Caption = "Story Progress: " + completion.ToString("P0"); RPGUI.FormatMenuWithFooter(QuestLogMenu); QuestLogMenu.FooterHeight = 40; QuestLogMenu.HeaderHeight = 25; if (QuestLogMenu != null && IsOpen(QuestLogMenu)) { QuestLogMenu.SelectedIndex = selected; } }
public void UpdateDialog(int selected = 0) { var dialogList = new List <IMenuItem>(); if (CurrentDialog == null) { return; } var dialogs = CurrentDialog.Current.Responses.Where(r => r.ConditionsMet).ToList(); for (int i = 0; i < dialogs.Count; i++) { var item = dialogs[i]; dialogList.Add(new MenuButton((item.Text))); } foreach (var i in dialogList) { i.Parent = DialogMenu; } if (DialogMenu == null) { DialogMenu = new RPGDialogMenu(CurrentNpc.Name + ": " + CurrentDialog.Current.NpcText, SelectDialog, dialogList.ToArray()); DialogMenu.ExtendWindowHeight = false; } else { DialogMenu.Caption = CurrentNpc.Name + ": " + CurrentDialog.Current.NpcText; DialogMenu.Items.Clear(); DialogMenu.Items.AddRange(dialogList); DialogMenu.Initialize(); } DialogMenu.Caption = CurrentNpc.Name + ": " + CurrentDialog.Current.NpcText; RPGUI.FormatMenu(DialogMenu); DialogMenu.HeaderHeight = 25; if (DialogMenu != null && IsOpen(DialogMenu)) { DialogMenu.SelectedIndex = selected; } }
private void UseQuestLogEntry(RPGListMenu obj) { var quests = PlayerData.Quests.Where(s => s.InProgress).Concat(PlayerData.Quests.Where(c => !c.InProgress)).Where(c => !c.IsContract || c.InProgress).ToList(); var selected = obj.SelectedIndex; if (selected >= quests.Count) { View.PopMenu(); return; } var selectedItem = quests[selected]; if (selectedItem.InProgress && selectedItem.Cancellable) { var abandon = RPGMessageBox.Create("Would you like to abandon [" + selectedItem.Name + "] ?", "Abandon Quest", "Cancel", () => { selectedItem.Reset(); UpdateQuestLog(); }, () => { }); RPGUI.FormatMenu(abandon); abandon.HeaderCentered = true; View.AddMenu(abandon); } }
public void UpdateShop(int selected = 0) { var shopList = new List <IMenuItem>(); var purchasableItems = ItemRepository.Items.Where(i => i.CanBuy).ToList(); for (int i = 0; i < purchasableItems.Count; i++) { var item = purchasableItems[i]; shopList.Add(new MenuButton(item.Quantity + "x\t" + item.Name, "[ GTA$" + item.Cost + " ]" + item.Description)); } shopList.Add(new MenuButton("Back")); foreach (var i in shopList) { i.Parent = ShopMenu; } if (ShopMenu == null) { ShopMenu = new RPGListMenu("Shop", new GTASprite("CommonMenu", "interaction_bgd", Color.ForestGreen), BuyShopItem, shopList.ToArray()); } else { ShopMenu.Caption = "GTA$" + PlayerData.Money.ToString("N0"); ShopMenu.Items.Clear(); ShopMenu.Items.AddRange(shopList); ShopMenu.Initialize(); } ShopMenu.Caption = "GTA$" + PlayerData.Money.ToString("N0"); RPGUI.FormatMenuWithFooter(ShopMenu); ShopMenu.HeaderHeight = 25; if (ShopMenu != null && IsOpen(ShopMenu)) { ShopMenu.SelectedIndex = selected; } }
public void UpdateCrafting(int selected = 0) { var craftingList = new List <IMenuItem>(); var craftableItems = ItemRepository.Items.Where(i => i.CanCraft).ToList(); for (int i = 0; i < craftableItems.Count; i++) { var item = craftableItems[i]; craftingList.Add(new MenuButton(item.Quantity + "x\t" + item.Name, item.GetCraftString())); } craftingList.Add(new MenuButton("Back")); foreach (var i in craftingList) { i.Parent = CraftingMenu; } if (CraftingMenu == null) { CraftingMenu = new RPGListMenu("Crafting", new GTASprite("CommonMenu", "interaction_bgd", Color.ForestGreen), CraftItem, craftingList.ToArray()); } else { CraftingMenu.Items.Clear(); CraftingMenu.Items.AddRange(craftingList); CraftingMenu.Initialize(); } RPGUI.FormatMenuWithFooter(CraftingMenu); CraftingMenu.FooterCentered = true; CraftingMenu.FooterHeight = 75; if (CraftingMenu != null && IsOpen(CraftingMenu)) { CraftingMenu.SelectedIndex = selected; } }
protected override void Start() { RPGSettings.AudioVolume = RPG.Settings.GetValue("Options", "AudioVolume", 35); RPGSettings.PlayKillstreaks = RPG.Settings.GetValue("Options", "PlayKillAnnouncements", true); RPGSettings.ShowKillstreaks = RPG.Settings.GetValue("Options", "ShowKillAnnouncements", true); RPGSettings.ShowPrerequisiteWarning = RPG.Settings.GetValue("Options", "ShowPrerequisiteWarning", true); RPGSettings.ShowPressYToStart = RPG.Settings.GetValue("Options", "ShowPressYToStart", true); RPGSettings.EnableAutoSave = RPG.Settings.GetValue("Options", "EnableAutoSave", true); RPGSettings.AutosaveInterval = RPG.Settings.GetValue("Options", "AutosaveIntervalSeconds", 30); RPGSettings.AutostartRPGMode = RPG.Settings.GetValue("Options", "AutostartRPGMode", true); RPGSettings.ShowQuestTracker = RPG.Settings.GetValue("Options", "ShowQuestTracker", true); RPGSettings.ShowSkillBar = RPG.Settings.GetValue("Options", "ShowSkillBar", true); RPGSettings.SafeArea = RPG.Settings.GetValue("Options", "SafeArea", 10); NpcCamera = World.CreateCamera(Game.Player.Character.Position, Game.Player.Character.Rotation, GameplayCamera.FieldOfView); OptionsMenu = new RPGMenu("Options", new GTASprite("CommonMenu", "interaction_bgd", Color.ForestGreen), new IMenuItem[] { new MenuButton("Save Game", "").WithActivate(() => { RPG.SaveAllData(); RPG.Subtitle("Saved"); }), new MenuButton("New Game", "").WithActivate(NewGame), new MenuNumericScroller("AudioVolume", "", 0, 100, 10, RPGSettings.AudioVolume / 10).WithNumericActions(ChangeAudioVolume, d => { }), new MenuNumericScroller("SafeArea Setting", "", 0, 10, 1, RPGSettings.SafeArea).WithNumericActions(ChangeSafeArea, d => { }), new MenuToggle("Toggle Skill Bar", "", RPGSettings.ShowSkillBar).WithToggles(ToggleSkillBar, ToggleSkillBar), new MenuToggle("Toggle Quest Tracker", "", RPGSettings.ShowQuestTracker).WithToggles(ToggleQuestTracker, ToggleQuestTracker), new MenuToggle("Play Kill Announcer Sounds", "", RPGSettings.PlayKillstreaks).WithToggles(ToggleKillAnnounceSounds, ToggleKillAnnounceSounds), new MenuToggle("Show Killstreak Text", "", RPGSettings.ShowKillstreaks).WithToggles(ToggleShowKillAnnounce, ToggleShowKillAnnounce), new MenuToggle("Show Prerequisite Warning", "", RPGSettings.ShowPrerequisiteWarning).WithToggles(ToggleWarning, ToggleWarning), new MenuToggle("Show Press Y To Start", "", RPGSettings.ShowPressYToStart).WithToggles(ToggleShowPressY, ToggleShowPressY), new MenuToggle("Enable Auto Save", "", RPGSettings.EnableAutoSave).WithToggles(ToggleAutoSave, ToggleAutoSave), new MenuNumericScroller("Autosave Interval (s)", "", 0, 120, 10, RPGSettings.AutosaveInterval / 10).WithNumericActions(ChangeAutosaveInterval, d => { }), new MenuToggle("Autostart RPG Mode", "", RPGSettings.AutostartRPGMode).WithToggles(ToggleAutostartRPG, ToggleAutostartRPG), new MenuButton("Mod Version: " + RPG.Version, ""), new MenuButton("Back", "").WithActivate(() => View.PopMenu()) }); RPGUI.FormatMenu(OptionsMenu); }
private void StartRPGMode() { World.DestroyAllCameras(); Game.Player.CanControlCharacter = true; string missing; var statusGood = CheckStatus(out missing); if (statusGood || !RPGSettings.ShowPrerequisiteWarning) { RPG.Initialise(); Enabled = false; } else { var mb = (RPGMessageBox)RPGMessageBox.Create("Missing: " + missing + " View readme for more info.", "Play Anyway ( WARNING: Bugs/errors expected))", "Return to normal mode", PlayAnyway, () => { RPGMethods.ReturnToNormal(); RPG.UIHandler.View.CloseAllMenus(); }); RPGUI.FormatMenu(mb); mb.TopColor = Color.Red; mb.HeaderScale = 0.5f; RPG.UIHandler.View.AddMenu(mb); Enabled = false; } }
private void UpdateSkillBarMenu() { var items = new IMenuItem[6]; var skillSlots = RPG.PlayerData.SkillSlots; var entries = RPG.SkillHandler.GetEntriesFormatted(); for (int i = 0; i < 5; i++) { var slot = skillSlots[i]; if (!slot.IsEmpty) { var indexOfCur = Array.IndexOf(entries, slot.Name); items[i] = new MenuEnumScroller(slot.GetMenuKeyName() + ":", "Skill for " + slot.Key, RPG.SkillHandler.GetEntriesFormatted(), indexOfCur).WithEnumActions(ChangeAction, ClearAction); } else { items[i] = new MenuEnumScroller(slot.GetMenuKeyName() + ":", "Skill for " + slot.Key, RPG.SkillHandler.GetEntriesFormatted()).WithEnumActions(ChangeAction, ClearAction); } } items[5] = new MenuButton("Back").WithActivate(View.PopMenu); SkillbarMenu = new RPGMenu("Set skills", new GTASprite("Commonmenu", "interaction_bgd", Color.LightBlue), items); RPGUI.FormatMenuWithFooter(SkillbarMenu); }
private UIContainer GetQuestTracker() { var quests = PlayerData.Quests.Where(q => q.InProgress).ToList(); if (!quests.Any()) { return(new UIContainer()); } //350 IS MAP height Point questTrackerPoint; switch (RPGSettings.SafeArea) { case 0: questTrackerPoint = new Point((RPGInfo.IsWideScreen ? 63 : 63), 10); break; case 1: questTrackerPoint = new Point((RPGInfo.IsWideScreen ? 57 : 57), 15); break; case 2: questTrackerPoint = new Point((RPGInfo.IsWideScreen ? 51 : 50), 20); break; case 3: questTrackerPoint = new Point((RPGInfo.IsWideScreen ? 45 : 45), 25); break; case 4: questTrackerPoint = new Point((RPGInfo.IsWideScreen ? 39 : 39), 30); break; case 5: questTrackerPoint = new Point((RPGInfo.IsWideScreen ? 32 : 32), 35); break; case 6: questTrackerPoint = new Point((RPGInfo.IsWideScreen ? 26 : 26), 40); break; case 7: questTrackerPoint = new Point((RPGInfo.IsWideScreen ? 19 : 19), 45); break; case 8: questTrackerPoint = new Point((RPGInfo.IsWideScreen ? 13 : 13), 50); break; case 9: questTrackerPoint = new Point((RPGInfo.IsWideScreen ? 6 : 6), 55); break; case 10: questTrackerPoint = new Point((RPGInfo.IsWideScreen ? 0 : 0), 60); break; default: questTrackerPoint = new Point((RPGInfo.IsWideScreen ? 0 : 0), 65); break; } var questTracker = new UIContainer(questTrackerPoint, new Size(180, UI.HEIGHT - 190)); //note: -180 for non-RPG-UI var bottomPoint = (questTracker.Size.Height); for (int i = quests.Count - 1; i >= 0; i--) { var quest = quests[i]; var text = quest.GetProgressString(); var formattedText = RPGUI.FormatText(text, 80); var lines = formattedText.Length; var height = 15 + (lines * 10) + 2; bottomPoint = bottomPoint - height; var point = new Point(5, bottomPoint); questTracker.Items.Add(new UIRectangle(point, new Size(170, 15), Color.FromArgb(120, 255, 255, 255))); questTracker.Items.Add(new UIText(quest.Name, new Point(point.X + 1, point.Y), 0.25f, Color.FromArgb(230, 8, 8, 8), 0, false)); questTracker.Items.Add(new UIText((i + 1).ToString("00"), new Point(point.X + 170 - 14, point.Y + 1), 0.25f, Color.FromArgb(230, 78, 78, 78), Font.Monospace, false)); for (int j = 0; j < lines; j++) { questTracker.Items.Add(new UIText(formattedText[j], new Point(5 + point.X, point.Y + 15 + (j * 10)), 0.2f, Color.White, 0, false)); } //questTracker.Items.Add(new UIText("- " + quest.GetProgressString(), new Point(point.X, point.Y + 15),0.2f,Color.White,0,false)); //questTracker.Items.Add(new UIText("- Malvoro is upset with your last mission.\n- Kill Antonio\n- Speak to bob\n- Eat cakes\n- Dist: 5m", new Point(5 + point.X, point.Y + 15),0.2f,Color.White,0,false)); } questTracker.Items.Add(new UIText("Missions", new Point(1, bottomPoint - 17), 0.28f, Color.White, 0, false)); //questTracker.Items.Add(new UIRectangle(new Point(1, bottomPoint - 17), new Size(180 - 6, 15), Color.FromArgb(120, 150, 150, 150))); return(questTracker); }
public override void Update() { if (!CanRun) { return; } if (!_show) { return; } int showTime = TimeToShowMs / 14; int fadeTime = showTime / 8; if (HideOnlyWhenClosed) { CloseablePopups.Add(this); } while (_timeWaited < showTime && _show) { if (_timeWaited < fadeTime) { if (FadeInPopup) { RPGUI.SetAlpha(_popup, Math.Min((int)(((float)_timeWaited / fadeTime) * 255), 255)); } } if (_timeWaited > showTime - fadeTime) { if (HideOnlyWhenClosed || HideTillManuallyClosed) { while (_show && !Function.Call <bool>(Hash.IS_CUTSCENE_ACTIVE)) { _popup.Draw(); Wait(0); } } if (FadeOutPopup) { var timeOfFrame = _timeWaited - (showTime - fadeTime); RPGUI.SetAlpha(_popup, Math.Min((int)(255 - (255 * ((float)timeOfFrame / fadeTime))), 0)); } } if (DoCustom != null) { DoCustom.Invoke(_popup, _timeWaited, showTime, fadeTime); } _popup.Draw(); _timeWaited++; Wait(0); } Finish(); }
//private void ChangeVariation(int obj) //{ // var index = Mennu.SelectedIndex; // var kvp = variations.ElementAt(index); // var component = kvp.Key; // Function.Call(Hash.SET_PED_COMPONENT_VARIATION, Game.Player.Character, component, obj, 0,0); //} //private Menu Mennu; //Dictionary<int, int> variations = new Dictionary<int, int>(); // // //private void SelectTile(int obj) //{ // throw new NotImplementedException(); //} public override void Update() { if (Game.IsKeyPressed(Keys.F5)) { //try //{ //RPG.PlayerData.AddMoney(20120324); //var mmmmmenu = new TiledMenu("Select Your Gender", // new TiledPanel("Male", new GTASprite("mptattoos1", "tattoo_drugdeal", Color.Red), Color.DodgerBlue, SelectTile, "Play as an XY chromosome."), // new TiledPanel("Female", new GTASprite("mptattoos", "killplayerbountyhead", Color.Purple),Color.Pink, SelectTile, "Play as an XX chromosome.")); //View.AddMenu(mmmmmenu); //variations = new Dictionary<int, int>(); //for (int i = 0; i < 10 ; i++) //{ // var a = Function.Call<int>(Hash._0x5FAF9754E789FB47, Game.Player.Character, i); // //if(a > 1) // //{ // // variations.Add(i,a); // RPGLog.Log("Tried " + i + " got variations: " + a); // //} //} //Function.Call(Hash.SET_PED_RANDOM_PROPS, Game.Player.Character); //Function.Call(Hash.SET_PED_PROP_INDEX, Game.Player.Character, 0, adasdasdasdij); //adasdasdasdij++; // // View.MenuPosition = new Point(UI.WIDTH/2 - 150, UI.HEIGHT - 300); // Mennu.Width = 300; // RPGUI.FormatMenu(Mennu); // View.AddMenu(Mennu); //} //catch (Exception ex) //{ // RPGLog.Log(ex); //} //Wait(500); //try //{ // var outArg = new OutputArgument(); // var a = Function.Call<Vector3>(Hash.GET_HUD_COMPONENT_POSITION, 15, outArg); // RPG.Notify("a: " + a); // RPG.Notify("a: " + outArg.GetResult<Vector3>()); // //} //catch //{ // //} //string s = Game.GetUserInput(100); //try //{ // var propName = s; // Model m = propName; // var p = World.CreateProp(m, Game.Player.Character.Position + Game.Player.Character.ForwardVector * 2, true, true); // Wait(5000); // if (p.Exists()) // { // p.Delete(); // } //} //catch (Exception) //{ // RPG.Notify("err"); //} } if (!Debug) { return; } var c = new UIContainer(new Point(UI.WIDTH - 305, UI.HEIGHT - 305), new Size(300, 300), Color.FromArgb(180, 50, 50, 50)); var debug = ""; debug += "player co-ordinates: " + VecStr(Game.Player.Character.Position) + "\n"; debug += "- heading: " + Game.Player.Character.Heading + "\n"; debug += "- rotation: " + VecStr(Game.Player.Character.Rotation) + "\n"; debug += "- model hash: " + Game.Player.Character.Model.Hash + "\n"; var v = new UIText(debug, new Point(0, 0), 0.25f, Color.White); if (Game.Player.Character.IsInVehicle()) { debug += "vehicle model: " + Game.Player.Character.CurrentVehicle.Model.Hash + "\n"; debug += "- heading: " + Game.Player.Character.CurrentVehicle.Heading + "\n"; debug += "- rotation: " + VecStr(Game.Player.Character.CurrentVehicle.Rotation) + "\n"; } foreach (var wep in RPG.PlayerData.Weapons) { debug += string.Format("Weapon: {0} [{1}] , Unlocked {2} \n", wep.WeaponName, wep.WeaponHash.ToString(), wep.Unlocked); } var lines = RPGUI.FormatText(debug, 99); for (int i = 0; i < lines.Length; i++) { var x = new UIText(lines[i], new Point(0, 0 + (30 * i)), 0.25f, Color.White); c.Items.Add(x); } c.Draw(); }