- Jan 10, 2018
- 665
- 1,085
And now you'll never unsee it, at least you'll always be able to see if a drawing is by MITY or not.God dammit Balrog, now you've made me see it.
And now you'll never unsee it, at least you'll always be able to see if a drawing is by MITY or not.God dammit Balrog, now you've made me see it.
Got my script working and completed (with parallel processing, ooOOooOoo) and have the individual labels as .rpy files. Attached in case you want to take a peek. Previous upload was only half-complete because of a dumb logic error in my script (skipped every other label because stupid). Edit: removed some test labels I was using that aren't stock.Heh. Check out the code for the blackjack game from Book 2 if you haven't already, that's always fun.
If you're serious about working on this thing btw, it might be worth looking into the actual Ren'Py parser before doing anything. As far as I remember it does store things like lines, labels, jumps and variables in some kind of data structure, so there might already be a list containing every label as a list of dictionaries or something similar.
I'm not familiar enough with PowerShell to comment, but good job. From here you could add some kind of filter functionality into the section checking the lines and throw away everything that isn't a menu (ends withGot my script working and completed (with parallel processing, ooOOooOoo) and have the individual labels as .rpy files. Attached in case you want to take a peek. Previous upload was only half-complete because of a dumb logic error in my script (skipped every other label because stupid). Edit: removed some test labels I was using that aren't stock.
Included the label separator powershell script for reuse/posterity.
Haven't looked enough into the renpy parser to see if it can be used for mapping specifically.
:\n
but isn't a label), a Python block (starts with *\$
, excluding things like $ renpy.pause()
) or control flow (contains jump
or call
). Then tie those together, and you've got a complete map of the game's logic, like...some_name
but not some_name_other
or "some_name"
or jump some_name
or $ some_name()
.Fair enough. Last post about this particular topic unless I have some breakthrough worth time:I'm not familiar enough with PowerShell to comment, but good job. From here you could add some kind of filter functionality into the section checking the lines and throw away everything that isn't a menu (ends with:\n
but isn't a label), a Python block (starts with*\$
, excluding things like$ renpy.pause()
) or control flow (containsjump
orcall
). Then tie those together, and you've got a complete map of the game's logic, like...
View attachment 503213
Which would ideally be a screen you get by hitting F11 or something in the Ren'Py IDE, which is a thing that exists in the parallel universe that isn't shit like ours.
Otherwise, the cheap solution would be to convert the label and jump statements into Twine code or some type of markup/charting language with everything inbetween kept as literal text lines, then loading the entire blob into an existing visual editor which would render the tree for you.
View attachment 503236
A proper Ren'Py oriented visual editor would be fucking sick though. Just imagine being able to filter dialogue/jumps/variables on and off at any time on that chart above, or clicking a line and having a debugger on the right side of your screen display which variables exist and what images have been placed onto the screen at that exact point, THEN clicking those and immediately jumping to the point where they've been defined or changed. Or you could use an import window to select a Photoshop file, have it automatically import all the frames of an animation and create a LiveComposite from the layers, then resize and move it into place on your screen in a matter of seconds. Or you could actually just GO TO A LINE by clicking on it, as opposed to reloading the game, holding Ctrl for five minutes, realizing you've gone too far, scrolling back with the mousewheel, realizing you've gone too far again and then mashing space to get there. OR, get this, you could rename a variable by just RENAMING IT, as opposed to having to Ctrl + F through 18 separate fucking files with a fucking regex search to rename all instances ofsome_name
but notsome_name_other
or"some_name"
orjump some_name
or$ some_name()
.
Anyways, I'll stop derailing this thread now with shit that five people care about. Someone post MITY's new game so we have something to argue over.
That honestly doesn't look too bad. Obviously you'd separate things into books 1-4 first since they act as standalone games for the most part, and do a bit of manual cleanup by dragging things around (and trimming out stupid shit like the 50+ labels used by the crab battles or the 100+ labels of the maze). Color coding the arrows and increasing the vertical spacing between elements might help a lot too. You can still kinda tell how the game works from a glance however - there are major junction points everything starts from which act as hubs of content like they do in the game (bk4_korra_room1, palace_night_menu), with "next" labels on the other side that clean things up and decide where to send you (fnext, love_bk3_next, next_day).Fair enough. Last post about this particular topic unless I have some breakthrough worth time:
Used a similar parser to pull 1:1 mappings of jumps inside each label, put it in a csv, and generated a dot file for it to be parsed in graphviz to generate a tree map. It. . .wasn't pretty.
You don't have permission to view the spoiler content. Log in or register now.
Figured it would be less nightmarish if I wasn't mapping every single label in every book at the same time, so decided to organize the scripts/labels a bit. Changed my script to generate a new directory for each parent .rpy file so that shit in the same area was grouped together, and shoved em all into separate book directories (this could go further, e.g. Bk2 Main vs Ember, Bk 4 Main vs SPole, etc).
So, I did. Here's the still frightening label map (you'll need to zoom in. And give your computer time to render it.):
You don't have permission to view the spoiler content. Log in or register now.
Attached the extracted labels sorted by book and the .dot files for generating the diagrams.
I'm depressed.
so, what is the name of this game? I cant find it anywhere
would like to know as wellso, what is the name of this game? I cant find it anywhere
I'm sorry, but an uncaught exception occurred.
While running game code:
File "game/bk3_s_arena_shit.rpy", line 14813, in <module>
NameError: name 'hit_chance' is not defined
-- Full Traceback ------------------------------------------------------------
Full traceback:
File "stand_dealerplays.rpyc", line 14, in script call
File "stand_dealerplays.rpyc", line 14, in script call
File "stand_dealerplays.rpyc", line 14, in script call
File "bjstart.rpyc", line 90, in script call
File "stand_dealerplays.rpyc", line 14, in script call
File "stand_dealerplays.rpyc", line 14, in script call
File "stand_dealerplays.rpyc", line 14, in script call
File "bjstart.rpyc", line 90, in script call
File "bjstart.rpyc", line 93, in script call
File "blackjack.rpyc", line 138, in script call
File "stand_dealerplays.rpyc", line 14, in script call
File "stand_dealerplays.rpyc", line 14, in script call
File "stand_dealerplays.rpyc", line 14, in script call
File "bjstart.rpyc", line 90, in script call
File "bk3_s_arena_shit.rpyc", line 14813, in script
File "D:\verschiedenes\Four_Elements_Trainer_v.0.8.3c-pc\renpy\ast.py", line 1729, in execute
if renpy.python.py_eval(condition):
File "D:\verschiedenes\Four_Elements_Trainer_v.0.8.3c-pc\renpy\python.py", line 1943, in py_eval
return py_eval_bytecode(code, globals, locals)
File "D:\verschiedenes\Four_Elements_Trainer_v.0.8.3c-pc\renpy\python.py", line 1936, in py_eval_bytecode
return eval(bytecode, globals, locals)
File "game/bk3_s_arena_shit.rpy", line 14813, in <module>
NameError: name 'hit_chance' is not defined
Windows-8-6.2.9200
Ren'Py 7.0.0.196
Four Elements Trainer 0.8.4b
Wed Jan 01 18:19:07 2020
Water Tribe Vacation (Scenes with Cardboard Box Girl aka Jinora, Zhuli, Senna, Korra, Eska & Desna Twins)what in the new update of 8.4a and b
Well, I see a probable problem: your game is reported as 0.8.4b, but it's installed into the 0.8.3c folder. Delete the entire folder and put the update in it's own folder -- you cannot drop a new update directly on top of the already installed version.Hadn't done the love route of book 3 yet so I figured I might as well do that now however I also encountered the crab battling problem. Spamming ignore temporary fixes it, but that can't be the right way.
Anyone got a fix for it? Thanks in advance.Code:I'm sorry, but an uncaught exception occurred. While running game code: File "game/bk3_s_arena_shit.rpy", line 14813, in <module> NameError: name 'hit_chance' is not defined -- Full Traceback ------------------------------------------------------------ Full traceback: File "stand_dealerplays.rpyc", line 14, in script call File "stand_dealerplays.rpyc", line 14, in script call File "stand_dealerplays.rpyc", line 14, in script call File "bjstart.rpyc", line 90, in script call File "stand_dealerplays.rpyc", line 14, in script call File "stand_dealerplays.rpyc", line 14, in script call File "stand_dealerplays.rpyc", line 14, in script call File "bjstart.rpyc", line 90, in script call File "bjstart.rpyc", line 93, in script call File "blackjack.rpyc", line 138, in script call File "stand_dealerplays.rpyc", line 14, in script call File "stand_dealerplays.rpyc", line 14, in script call File "stand_dealerplays.rpyc", line 14, in script call File "bjstart.rpyc", line 90, in script call File "bk3_s_arena_shit.rpyc", line 14813, in script File "D:\verschiedenes\Four_Elements_Trainer_v.0.8.3c-pc\renpy\ast.py", line 1729, in execute if renpy.python.py_eval(condition): File "D:\verschiedenes\Four_Elements_Trainer_v.0.8.3c-pc\renpy\python.py", line 1943, in py_eval return py_eval_bytecode(code, globals, locals) File "D:\verschiedenes\Four_Elements_Trainer_v.0.8.3c-pc\renpy\python.py", line 1936, in py_eval_bytecode return eval(bytecode, globals, locals) File "game/bk3_s_arena_shit.rpy", line 14813, in <module> NameError: name 'hit_chance' is not defined Windows-8-6.2.9200 Ren'Py 7.0.0.196 Four Elements Trainer 0.8.4b Wed Jan 01 18:19:07 2020
$ hit_chance = ((crab_acc - (crab_acc * (1 - ((crab_acc/4)*0.03))))*.01)
Prob bug fix for the few that was found.what in the new update of 8.4a and b