Create your AI Cum Slut for Valentine’s Day 60% OFF Now
x
Jan 26, 2020
66
81
Most kinks are clear, but these confuse me as to who is doing what. Can I get an explanation of the differences between them?

watersports (others)
watersports (self)

Cum play (others)
Cum play (self)
 

f69plop

New Member
May 22, 2020
9
14
Good game, but it could benefit from optimisation.
at each version the strip action takes more an more time.
I'd love to improve the performance, but unfortunately the html is obfuscated

* * *
Found the culprit*s* it's a lot of json parse/stringify on saveData (in local storage), even some stringify(parse(savedata))
made some changes to call setSave(obj) for when saving to saveData, and getSave()

function getSave() {
if( !window.saveData ) window.saveData = JSON.parse( localStorage.getItem("savedata")) || {};
return window.saveData
}

function setSave(newSave) {
window.saveData = newSave
localStorage.setItem( "savedata", JSON.stringify(newSave));
}

so I only parse the data if we don't have it, and update the global at the same time i update the storage.

the game is WAY more responsive.

I also tweaked it a bit to allow total submission to 199 (still cap to 100 for 1 npc)
 
Last edited:

f69plop

New Member
May 22, 2020
9
14
there is also 2 others things that are broken : one of the store in the market store (anvil restraints) and one in the pangolin pharma if the shop owner (Ciara/Ciar) is a male...
the code for shop is like shop(id), but it is used as shop(name). Changing the name with the console command (type F12 in firefox choose cosole and type)
window.saveData.characters['Ciara'].name='Ciara'
fix it
for the anvil restraints, editing the code by replacing
"shop(trestrains)npc[npc1][rels]:addl:jobknown",
to
"shop(trestrains)",
make it work again,

also there is tons of deobfuscator online, some works better than other, my bests shots were by extracting the javascript to a file (grep var "Debasing Grounds v0480.html" > one.js) then put it on online deobfuscator (don't remember which )


Still a great game, and many thanks to the author
 

f69plop

New Member
May 22, 2020
9
14
how did you do this? exactly?
If you just want the quick result, just download the 7z in the post, but if you're curious :
I extracted the javascript to a js file (in a linux console, you can have on in windows just install WSL (windows subsystem linux) or WSL2 via the microsoft store, shift right click in directory (Open linux shell here then I typed the command )
grep var "Debasing Grounds v0480.html" | head 1 > script480.js

command explain
-> grep: search pattern or string in file
-> var: is the pattern i search
-> "Debasing Grounds v0480.html": is the file i seach (I can give more than one, or even do a recursive search in directories with the good options)
-> |, by default grep print its result to the standard output of the console, i tell the shell to put that into the input of the next command
-> head -1, I only keep the first line (all the js is in only one file), tail -1 would keep the last
-> > script480.js, like grep head output to the standard ouput, the visible one, i tell the shell to write it to script480_obs.js instead

then I putted the javascript to an oneline deobfuscator, don't remember witch, then i saved the 'clean' javascript to script480.js
then I modified the html to take the script and style to external file, it's easier to work on separated files, notably the layout
then I used firefox profiler to see where the code was loosing time, go to an option you know it will take abonormal time (strip for an npc) F12 -> performance, start recording, click on strip seductively, stop recording when the screen has updated, check where it take too much time (JSON.parse)
then I studied the code
then I patched it with a thing i don't like in code : using a global variable to store the state (the 2 function setSave/getSave).
then I coded a little perl program to do the search & replace
so using the previous linux shell
$./patch.pl script480.js > script480_patched.js
command explain :
./, by default current directory is not in the path where the shell seach command, . is the current directory, / the directory separator
patch.pl, the name of the script program I call
script480.js, the file i want the patcher to work on,
> script480_patched.js, the script print to the standard output, i tell the shell to redirect that to the file

here is the final result, it's 4 file, my patcher for the curious (not needed), the javascript patched for the faster game, and some corrections (shop not working in the original 480), and the html with a different layout (date left of button, the npc just right of the PC)
I was thinking of moving the logo to the right to keep the date maximum left, but i'm happy with it.
there is also my submiss function, i reverted it to the original behaviour, but for my play I put it to 150, to allow more submission; by default the total submission the pc can have, is 100 if you have 50 holder, 50 Ed, if you gain 1 David, it goes 49.5 Holder, 49.5 Ed, 1 David. If you change var maxTotalSubmission = 100; to 150, the max per npc is still 100, but you can have 75 Holder 25 David 50 Ed. Be warned, by changing this value some "bad end" are more likely to be difficult to get out than the vanilla value.
 

f69plop

New Member
May 22, 2020
9
14
Is the Arena broken for anybody else? Can't sign up for fights because Raze always already has enough fighters.
it's not completely broken, the time is not the morning but just after the fight :p, you can watch it, then you can participate. You will have some time to prepare.
 
  • Like
Reactions: aaabbbpriv24
3.80 star(s) 28 Votes