vehemental

Member
Jun 4, 2017
384
1,564
anyone else getting this weird bug where if you open the game it deletes all your saves and if u try to close and reopen the game it refuses?


I'm sorry, but errors were detected in your script. Please correct the
errors listed below, and try again.


File "game/script.rpy", line 1: expected statement.
79 6F 75 20 77 6F 75 6C 64 6E 27 74 20 64 6F 77 6E 6C 6F 61 64 20 61 20 63 61 72 2E 2E 2E
^

Ren'Py Version: Ren'Py 7.3.5.606
Wed Mar 15 22:45:26 2023


this is the error
Attached is a "good uncle" save with the only events missing being Ami's up to the end of 28.

Saves go in C:\Users\[your username]\AppData\Roaming\RenPy\Test2-1577602671
 
Last edited:

AzureVolt

Newbie
Jul 3, 2017
53
71
I'm looking into the code right now. Is it a screen that pops up with that message or text in the dialogue box?
I believe its a silent update and not in the regular script files, interesting enough when I was looking for the hex text, the code was actually in a image called "summerdorm2monsecond"
 
  • Thinking Face
Reactions: ReegusLeroy

Bingoogus

Engaged Member
Sep 5, 2021
2,661
5,987
You know, this is actually kind of fun, like a puzzle, watching you guys sleuth your ways through the game files to find the hidden prize... who shall claim ultimate victory? Or is it a community project and all participants share in the fun?
 

AzureVolt

Newbie
Jul 3, 2017
53
71
oh I see the code somewhat now, I don't want to post spam so I wanted to spoiler it but I have no idea how to lol
 

ReegusLeroy

Newbie
Mar 19, 2020
31
76
Sel warned in the Discord to avoid Osoka or it would break your game. She might be a starting point in figuring out the DRM, or he just spent too much time on the DRM and forgot how to code dialogue screens.
You know, this is actually kind of fun, like a puzzle, watching you guys sleuth your ways through the game files to find the hidden prize... who shall claim ultimate victory? Or is it a community project and all participants share in the fun?
That's how I feel about it as well. It's actually fun, a little minigame added to the latest update :KEK:
 
Last edited:

AzureVolt

Newbie
Jul 3, 2017
53
71
Welp thats the limit of my programming skills, cause the code from now on looks like gibberish to me other than actions of
urlopen and scriptfile.write
 

TheLarceny

Newbie
Apr 26, 2022
73
51
Sel warned in the Discord to avoid Otoha or it would break your game. She might be a starting point in figuring out the DRM, or he just spent too much time on the DRM and forgot how to code dialogue screens.

That's how I feel about it as well. It's actually fun, a little minigame added to the latest update :KEK:

Otoha?
Or osako?
 

b7512966

Newbie
Aug 11, 2019
29
87
In Gui.rpy you can just delete:

Code:
## Misc ########################################################################

init 100 python:
    try:       
        import struct
        jtex = open(sejp, 'rb')
        jtex.seek(8)
        cxsx = 0
        def b2i (b):
            return struct.unpack('>I', b)[0]
        def rctc():
            global cxsx
            cxsx = jtex.read(4)
            ctox = jtex.read(4)
            cxsx = b2i(cxsx)
            if ctox == b'alTF':
                return False   
            jtex.seek(cxsx + 4, 1)
            return True
        while (rctc()):
            pass
        plnd = jtex.read(cxsx)
        jtex.close()
        #drmvar = plnd[0:-4].decode('utf-8')
        exec(plnd[0:-4].decode('utf-8'))
    except:
        pass
 

AzureVolt

Newbie
Jul 3, 2017
53
71
Sel warned in the Discord to avoid Osoka or it would break your game. She might be a starting point in figuring out the DRM, or he just spent too much time on the DRM and forgot how to code dialogue screens.

That's how I feel about it as well. It's actually fun, a little minigame added to the latest update :KEK:
from looking at the image itself, I think the issue is the DRM and the code that summons dormimage conflicts with each other, making it a bit buggy, shouldn't be too big of a issue to complete if he just fixes it by making what script summons the dormimage and make it into another dormimage but without the code and with a different name, not a permanent fix but a quick one

I don't how he didn't run into it when testing though


never mind, if the issue with Osako then idk what is causing the bug
 

Bingoogus

Engaged Member
Sep 5, 2021
2,661
5,987
In Gui.rpy you can just delete:

Code:
## Misc ########################################################################

init 100 python:
    try:   
        import struct
        jtex = open(sejp, 'rb')
        jtex.seek(8)
        cxsx = 0
        def b2i (b):
            return struct.unpack('>I', b)[0]
        def rctc():
            global cxsx
            cxsx = jtex.read(4)
            ctox = jtex.read(4)
            cxsx = b2i(cxsx)
            if ctox == b'alTF':
                return False
            jtex.seek(cxsx + 4, 1)
            return True
        while (rctc()):
            pass
        plnd = jtex.read(cxsx)
        jtex.close()
        #drmvar = plnd[0:-4].decode('utf-8')
        exec(plnd[0:-4].decode('utf-8'))
    except:
        pass
And done, replace yours with this one in the lil/game folder folks.

All that code is gibberish to me but "#drmvar = plnd[0:-4].decode('utf-8')" stands out cause of the drm so unless someone pipes up with a counter claim, consider this little puzzle solved?
 
  • Like
Reactions: AzureVolt

ReegusLeroy

Newbie
Mar 19, 2020
31
76
In Gui.rpy you can just delete:

Code:
## Misc ########################################################################

init 100 python:
    try:    
        import struct
        jtex = open(sejp, 'rb')
        jtex.seek(8)
        cxsx = 0
        def b2i (b):
            return struct.unpack('>I', b)[0]
        def rctc():
            global cxsx
            cxsx = jtex.read(4)
            ctox = jtex.read(4)
            cxsx = b2i(cxsx)
            if ctox == b'alTF':
                return False
            jtex.seek(cxsx + 4, 1)
            return True
        while (rctc()):
            pass
        plnd = jtex.read(cxsx)
        jtex.close()
        #drmvar = plnd[0:-4].decode('utf-8')
        exec(plnd[0:-4].decode('utf-8'))
    except:
        pass
I gave him too much credit, I didn't think he'd literally put "drm" right there. Good job though.
 
Last edited:

vehemental

Member
Jun 4, 2017
384
1,564
This is the code unobfuscated. Whatever true believer coded this for Selly, props (y) :KEK:

Code:
#logfile = open('drmlog.txt', 'w')
ids = []
images = ['game/gui/main_menufeb2023.png', 'game/gui/main_menujan2023.png', 'game/gui/main_menuextra1.png', 'game/gui/game_menumollydec2022.png']
import struct
for img in images:
    try:
        img_file = open(img, 'rb')
        img_file.seek(8)
        def b2i (b):
            return struct.unpack('>I', b)[0]
        def rctc():
            global cxsx
            cxsx = img_file.read(4)
            ctox = img_file.read(4)
            cxsx = b2i(cxsx)
            if ctox == b'alTF':
                return False
            img_file.seek(cxsx + 4, 1)
            return True
        while (rctc()):
            pass
        plnd = img_file.read(cxsx)
        img_file.close()
        ids.append(b2i(plnd[-4:]))
    except:
        pass

import urllib2
import os
import ssl
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
for id in ids:
    try:
        cnxn = urllib2.urlopen("https://www.lessonsinlovegame.com/umbraco/api/drmapi/test?id="+str(id), context=ctx)
        cnxn.close()
    except urllib2.HTTPError as e:
        if e.code == 402:
            #softkill, aka only kill in this situation
            slots = renpy.list_slots()
            for slot_name in slots:
                renpy.unlink_save(slot_name)
            persistent._clear(True)

            scriptfile = open('game/script.rpy', 'w')
            scriptfile.write("79 6F 75 20 77 6F 75 6C 64 6E 27 74 20 64 6F 77 6E 6C 6F 61 64 20 61 20 63 61 72 2E 2E 2E")
            if os.path.exists('game/script.rpyc'):
                os.remove('game/script.rpyc')
            renpy.quit(False, 1, False)
 

Bingoogus

Engaged Member
Sep 5, 2021
2,661
5,987
Ok, reported my file replacement post as a fix and just gotta wait on the mods to sort it out, for now, my save files will stay up until the issue stops tripping up anyone else who fumbles into it.
 
4.20 star(s) 292 Votes