So, why is Max the weak character in this game? is the only male character.Actually, I might pay him to do exactly this. Max is a weak character in this game.
But Alice becoming what she is? To be frank, I kind of saw that coming.
So, why is Max the weak character in this game? is the only male character.Actually, I might pay him to do exactly this. Max is a weak character in this game.
But Alice becoming what she is? To be frank, I kind of saw that coming.
hello frieds
who can help me?
his is not anything happened and i'm stuck in this event
View attachment 1531012
Maybe the update is ready for now, wait for the next glamour v.044So, why is Max the weak character in this game? is the only male character.
you got a missing event where alice doing a sunbathing at the pool in the matt with Ann - suggesting to put sunblock with here, actually its just an max cunniling alice while Ann watch them.hello frieds
who can help me?
his is not anything happened and i'm stuck in this event
View attachment 1531012
Both events are endlessyou got a missing event where alice doing a sunbathing at the pool in the matt with Ann - suggesting to put sunblock with here, actually its just an max cunniling alice while Ann watch them.
but why is the yoga side quest not finished???
check your earlier save and finished it before doing Big Brother quest to trigger the latest update.
if not it will lock the yoga event unfinished.
View attachment 568608
Important: Starting with Glamour 0.27 savegames no longer need to be decrypted and thus this tool no longer works. If you want to import your old savegames to 0.27 check this post.
Presenting Glamour Edit. A savegame editor for Glamour.
After countless hours of reverse engineering the glamour-server I was finally able to understand how savegame decryption and encryption in the game work. Since the server application is embedded into a patched node binary (using pkg) and transformed into tokenized V8 compilations it really was a pain in the ass to debug. Turns out, however, the encryption isn't really that special (decompile the SaveGameCipher class inside this binary to see what's happening under the hood).
As has been mentioned plenty times before, savegames are bound to your windows installation since the encryption and decryption keys are derived from your machine GUID. So in order to share savegames (without altering your machine guid) you can use this utility to export the decoded savegame as a json file. Other players can then import your json and have it encoded properly so the game recognizes it.
I added a JSON editor (based on ace) to the program for easier editing. Hit Ctrl+F while inside the editor if you want to search for specific strings. For the editor to show up and work properly you'll want to have at least Internet Explorer 10 installed on your system. If it's not working or if you don't like to use the built-in version you can export your save to a json file, edit it in a JSON editor of your liking and import it back.
Tested on Win7 SP1 64 and Win10 64 v1903 with Glamour saves from v0.21 and v0.22. Requires .NET Framework 4.6. This program was written in managed code, namely C# and thus its source code is readily available via the binary itself.
Let me know if you run into any problems. Any feedback is appreciated.
PS: Since you will be asking this: each character in the characters array holds a money value. Find the character you're playing right now and edit the money property to your liking.
PPS: Make a backup of your save game before tinkering with it. Editing the wrong values might lead to a broken game state. Values are only checked for syntax but not plausibility before saving.
Update: You'll now find the source code including solution files attached to this post. Not all files in this archive are necessary to compile the program. Some things remained there even after refactoring earlier code (e.g. a proper Save class, which is no longer used).
Cheers,
Update 1.0.5
To expand a little on the last point: if the editor finds a file in the savegame folder it can't decrypt (excluding JSON files) it will now show up in the list as Unknown save:
- You can now resize the tree view on the left
- Removed old/unneccesary code from several classes
- Added the possibility to import binary savegames from other machines.
View attachment 583478
Clicking on it now gives you the option to add a machine ID for decrypting this file:
View attachment 583479
If the machine ID provided is valid and the file can be decoded it will appear in the save list just like any other savegame. No further adjustments are neccessary to make the savegame work.
View attachment 583490
Press "Save" to write the new save to your folder overwriting the old one. The save will now appear ingame.
Hello broImportant: Starting with Glamour v0.27 savegames don't need to be decrypted anymore and thus GlamourEdit is neither working nor needed any longer on newer versions.
How to import old save games into Glamour 0.27
* updated version *
- Use GlamourEdit to export your savegame to a JSON file.
- Open Glamour 0.27 and press CTRL+Shift+I
- A new window will open, on the bottom half you should now see a console where you can enter text. (Click on the Console tab at the top if you can't see it).
- Paste the following code in there (make sure you copy all of it):
JavaScript:const uploadElement = document.createElement("input"); const prepareDom = () => { uploadElement.type = "file"; uploadElement.addEventListener("change", () => { const reader = new FileReader(); let file = uploadElement.files[0]; reader.addEventListener("load", function () { importSavegame(reader.result); }, false); reader.readAsText(file); }); document.body.appendChild(uploadElement); }; const importSavegame = (savegame) => { try { character = JSON.parse(savegame).currentCharacterId; if (character === undefined) { showInfo("Could not detect character of the provided save game. Exiting..."); return; } console.log(character); insertNewSave(character, savegame); } catch (error) { showInfo("Something went wrong. Make sure you selected an unencrpyted version of your save game"); } }; const insertNewSave = (character, savegame) => { let highestSlot = Object.keys(localStorage).filter(n => n.startsWith("save:" + character)).map(item => parseInt(item.split(":")[3])); let freeSlot = Math.max(-1, ...highestSlot); let currentTime = Math.round((new Date).getTime() / 1000); localStorage[`save:${character}:${currentTime}:${++freeSlot}`] = savegame; showInfo("Your savegame should be imported now."); document.body.removeChild(uploadElement); }; const showInfo = alert; prepareDom();
- Press ENTER. If everything went well you will now see a file picker at the top left of your screen labeled "Choose File". If the game is hanging or not responding, close the game and repeat the steps.
- Click on that button and select the JSON file you exported earlier.
- You will get a success message if your savegame was imported properly. If not, make sure you selected the right file.
- The Choose File button will now vanish. Close the developer tools by pressing CTRL+Shift+I again (you can also just restart the game, but it's not necessary)
- Go to the "LOAD GAME" screen. Your savegame should now appear in that list granted you have the correct character selected.
* alternative version *
- Use GlamourEdit to export the savegame you want to play to a JSON file.
- Open Glamour 0.27 and start a new game and choose the same character your old savegame uses.
- Once inside the game, click the cog wheels, select SAVE GAME and save your game. You will be redirected back to the main menu.
- Open the JSON file you exported earlier in a text editor of your choice and copy its content to your clipboard
- Alternatively just select the save in GlamourEdit, click on the editor on the right, press CTRL+A to select all and CTRL+C to copy to clipboard.
- Do whatever way you prefer but the result must be that your old unencrypted save game is now in your clipboard.
- Back in the game press CTRL+Shift+I to open the Chrome Developer Tools.
- Select the tab "Application" at the top (if you dont see it, try resizing the new window that opened and make it bigger or click on », then Application.
- On the left side click on the arrow next to Local Storage to expand it, then click on file://.
- In the list that showed up check the Key column and look for a string that starts with save. For example: save:kate:1593106068:0. If you selected max it will save max instead. Pick the the one with the highest number at the end after the last colon
). (The format of this string is always save:<maincharacter>:<unixtimestamp>:<slotid>)
- Doubleclick on the text in the "Value" column and you'll notice the whole text will be selected. Press CTRL+V to paste and overwrite this text.
- Press CTRL+Shift+I again to close the Chrome Developer Tools. Back in the game click on Load Game.
You should now see your old save. You should load it and save it again ingame to make sure it stored it correctly.You must be registered to see the links
TL;DR: DS included the developer tools in this release for whatever reason which makes it very easy to access the browser that's powering the game. Replace a value in the local storage with your save contents and the game will recognize it.
To make it easier in the future we should probably implement a modified loading system in the game. I attached the (somewhat) unobfuscated source code of the game in case anyone feels like doing that. Relevant code starts at line 5624.
Cheers,
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.ArgumentNullException: Array cannot be null.
Parameter name: bytes
at System.Text.Encoding.GetString(Byte[] bytes)
at GlamourEdit.Util.GetClientId()
at GlamourEdit.Util.SaveGamesLocation()
at GlamourEdit.MainForm.OpenInExplorer_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4420.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
GlamourEdit
Assembly Version: 1.0.5.0
Win32 Version: 1.0.5.0
CodeBase: file:///D:/Games-H/Installer/Glamour/SAVE_EDITOR/GlamourEdit.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4400.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4360.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4390.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4190.0 built by: NET48REL1LAST_B
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4390.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Microsoft.mshtml
Assembly Version: 7.0.3300.0
Win32 Version: 7.0.3300.0
CodeBase: file:///C:/Windows/assembly/GAC/Microsoft.mshtml/7.0.3300.0__b03f5f7f11d50a3a/Microsoft.mshtml.dll
----------------------------------------
Microsoft.CSharp
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.CSharp/v4.0_4.0.0.0__b03f5f7f11d50a3a/Microsoft.CSharp.dll
----------------------------------------
System.Dynamic
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Dynamic/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Dynamic.dll
----------------------------------------
Anonymously Hosted DynamicMethods Assembly
Assembly Version: 0.0.0.0
Win32 Version: 4.8.4420.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_64/mscorlib/v4.0_4.0.0.0__b77a5c561934e089/mscorlib.dll
----------------------------------------
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
so you try editing your save it with console???
Hello bro
This is not work for me
My windows 10 -64bit build is: 19043.1348
Installed last version of Dotnetframework in my PC
View attachment 1531574
Code:See the end of this message for details on invoking just-in-time (JIT) debugging instead of this dialog box. ************** Exception Text ************** System.ArgumentNullException: Array cannot be null. Parameter name: bytes at System.Text.Encoding.GetString(Byte[] bytes) at GlamourEdit.Util.GetClientId() at GlamourEdit.Util.SaveGamesLocation() at GlamourEdit.MainForm.OpenInExplorer_Click(Object sender, EventArgs e) at System.Windows.Forms.Control.OnClick(EventArgs e) at System.Windows.Forms.Button.OnClick(EventArgs e) at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ButtonBase.WndProc(Message& m) at System.Windows.Forms.Button.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) ************** Loaded Assemblies ************** mscorlib Assembly Version: 4.0.0.0 Win32 Version: 4.8.4420.0 built by: NET48REL1LAST_C CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll ---------------------------------------- GlamourEdit Assembly Version: 1.0.5.0 Win32 Version: 1.0.5.0 CodeBase: file:///D:/Games-H/Installer/Glamour/SAVE_EDITOR/GlamourEdit.exe ---------------------------------------- System.Windows.Forms Assembly Version: 4.0.0.0 Win32 Version: 4.8.4400.0 built by: NET48REL1LAST_C CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll ---------------------------------------- System Assembly Version: 4.0.0.0 Win32 Version: 4.8.4360.0 built by: NET48REL1LAST_C CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll ---------------------------------------- System.Drawing Assembly Version: 4.0.0.0 Win32 Version: 4.8.4390.0 built by: NET48REL1LAST_C CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll ---------------------------------------- System.Configuration Assembly Version: 4.0.0.0 Win32 Version: 4.8.4190.0 built by: NET48REL1LAST_B CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll ---------------------------------------- System.Core Assembly Version: 4.0.0.0 Win32 Version: 4.8.4390.0 built by: NET48REL1LAST_C CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll ---------------------------------------- System.Xml Assembly Version: 4.0.0.0 Win32 Version: 4.8.4084.0 built by: NET48REL1 CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll ---------------------------------------- Microsoft.mshtml Assembly Version: 7.0.3300.0 Win32 Version: 7.0.3300.0 CodeBase: file:///C:/Windows/assembly/GAC/Microsoft.mshtml/7.0.3300.0__b03f5f7f11d50a3a/Microsoft.mshtml.dll ---------------------------------------- Microsoft.CSharp Assembly Version: 4.0.0.0 Win32 Version: 4.8.4084.0 CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.CSharp/v4.0_4.0.0.0__b03f5f7f11d50a3a/Microsoft.CSharp.dll ---------------------------------------- System.Dynamic Assembly Version: 4.0.0.0 Win32 Version: 4.8.4084.0 CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Dynamic/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Dynamic.dll ---------------------------------------- Anonymously Hosted DynamicMethods Assembly Assembly Version: 0.0.0.0 Win32 Version: 4.8.4420.0 built by: NET48REL1LAST_C CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_64/mscorlib/v4.0_4.0.0.0__b77a5c561934e089/mscorlib.dll ---------------------------------------- ************** JIT Debugging ************** To enable just-in-time (JIT) debugging, the .config file for this application or computer (machine.config) must have the jitDebugging value set in the system.windows.forms section. The application must also be compiled with debugging enabled. For example: <configuration> <system.windows.forms jitDebugging="true" /> </configuration> When JIT debugging is enabled, any unhandled exception will be sent to the JIT debugger registered on the computer rather than be handled by this dialog box.
yep not really required even for kate route, just do the communication skill for persuasions.is there a point to the extra lessons in max's pc after finishing all the classes? do i need to do them to progress the story or are they there just to waste money on?
You have... wait for further updatesHi ! How I can finished the the Villa side quest ?
Thx
Not sure. Seems like a riddle for the ages.
After midnight when Ann is asleep in her room.
Likewise. I can get everything except force Max to get punished by Alice...I need help i have done everything except for consequences with Alice punishing it doesn't complete