private void ExitWithoutSaving(MenuItemStandard m) { //Log.ToChat( "CharacterEditorMenu ExitWithoutSaving" ); Root.cleanCloseMenu(); var pedData = JsonConvert.DeserializeObject <PedData>(Client.Instance.Instances.Session.GetPlayer(Game.Player).GetGlobalData("Character.SkinData", "")); CharacterEditorMenu.handleSkinCreate(pedData); }
public SkinHandler(Client client) : base(client) { client.RegisterEventHandler("Skin.LoadPlayerSkin", new Action <dynamic>(data => { CharacterEditorMenu.handleSkinCreate(data == null ? CharacterEditorMenu.skinData : data); })); client.RegisterEventHandler("Skin.StartCharacterCreation", new Action <int>(async playerHome => { CharacterEditorMenu charMenu = new CharacterEditorMenu(); while (charMenu.Observer.CurrentMenu != null) { Client.Get <Arrest>().DisableActions(); Game.PlayerPed.Task.ClearAll(); await BaseScript.Delay(0); } //if (playerHome != 0) TriggerEvent("spawnPlayerHome", playerHome); })); client.RegisterEventHandler("Skin.UpdatePlayerSkinData", new Action <dynamic>(skinData => CharacterEditorMenu.skinData = skinData)); client.RegisterEventHandler("Skin.SaveCurrentOutfit", new Action <string>(handleOutfitCreate)); client.Get <InteractionUI>().RegisterInteractionMenuItem(new MenuFramework.MenuItemStandard { Title = "Clothing Store", OnActivate = state => { new CharacterEditorMenu(true); InteractionUI.Observer.CloseMenu(true); } }, () => clothingStoreLocaitons.Any(o => o.DistanceToSquared(Game.PlayerPed.Position) < 5.0f), 500); BlipHandler.AddBlip("Clothing store", clothingStoreLocaitons, new BlipOptions { Sprite = BlipSprite.Clothes }); MarkerHandler.AddMarker(clothingStoreLocaitons); client.RegisterEventHandler("Skin.RefreshSkin", new Action(RefreshPlayerSkin)); client.RegisterEventHandler("Player.OnLoginComplete", new Action(RefreshPlayerSkin)); client.RegisterEventHandler("Player.CheckForInteraction", new Action(() => { if (clothingStoreLocaitons.Any(o => o.DistanceToSquared(Game.PlayerPed.Position) < 5.0f)) { new CharacterEditorMenu(true); } })); client.RegisterEventHandler("Player.OnSkinLoaded", new Action(() => canRefreshSkin = false)); CommandRegister.RegisterCommand("refreshskin", async cmd => { if (!canRefreshSkin) { return; } await cmd.Session.UpdateData("Character.SkinData"); RefreshPlayerSkin(); }); }
public async void RefreshPlayerSkin() { while (LocalSession == null) { await BaseScript.Delay(0); } if (!string.IsNullOrEmpty(LocalSession.GetGlobalData("Character.SkinData", ""))) { var pedData = JsonConvert.DeserializeObject <PedData>(LocalSession.GetGlobalData("Character.SkinData", "")); CharacterEditorMenu.handleSkinCreate(pedData); } else { //BaseScript.TriggerEvent("Skin.StartCharacterCreation"); } }