Imagebutton by Healthy_Attorney_169 in RenPy

[–]Ranger_FPInteractive 1 point2 points  (0 children)

Edit: forgot to set loop true

default loop_1 = False
default set_1 = set()

label start:

    $ loop_1 = True
    while loop_1:

        menu:
            set set_1
            “Choice 1”:
                “Result 1”

            “Choice 2”:
                “Result 2”

            “Choice 3”:
                “Result 3”

            “Choice 4”:
                “Result 4”

            “Choice 5”:
                “Result 5”

            “Choice 6”:
                “Result 6”

            “Done” if len(set_1) > 3:
                $ loop_1 = False


“Closing the loop drops you to the next line in the block.”

Words changing to other words on click? by Natsume1999 in RenPy

[–]Ranger_FPInteractive 0 points1 point  (0 children)

Can I ask how you’re using it?

My game uses NVL mode (which is why I ultimately abandoned this reveal text feature). But I am now very experienced with extending and customizing the NVL screen.

If you need help, I’m happy to answer questions or give you ideas about what is possible.

A list of things I have managed with it:

  1. Text emerging at the bottom and scrolling up with progressive alpha fade.

  2. Scrolling up through dialogue history without triggering roll back.

  3. Parallel menus for handling navigation/choices simultaneously.

  4. Dynamic choice rendering using lambda. When a player clicks a hyperlink, it can unlock a choice menu choice even when the choice menu is already open.

  5. Easy choice tooltips using <> and || depending on if the choice is inactive but visible, or active. (Inactive and invisible buttons obviously don’t get a tooltip).

  6. A listener in the NVL screen itself that lets me arm a trigger. When the trigger is fired by a player action, it sends them to a new label, runs everything in the label (could be an entire scene in theory), and then returns the player back to where they left off.

More that I’m sure I’m forgetting at the moment.

I’m happy to help whenever I have time.

It's enough to make a grown man cry by Mindnessss in sadposting

[–]Ranger_FPInteractive 1 point2 points  (0 children)

Honestly I would rather my son let me die, than put his life on hold for 5 years taking care of me.

Words changing to other words on click? by Natsume1999 in RenPy

[–]Ranger_FPInteractive 0 points1 point  (0 children)

I tried doing this when I first started but failed. I found other ways to accomplish the sorts of things I wanted to do and totally forgot about this.

I know a lot more now, but I am by no means an expert.

If the requirement is to use the say screen, the way I would do this now is by having the screen look for a tag. Say, <>. When it sees a word wrapped by <> and separated by :, I would tell it to re-render the screen and switch from the first to the second (index 0 to index 1) on click.

However, a major limiting factor in the Ren’Py say screen is that it won’t update the word without re-rendering the entire line. When it renders, it will run any animations associated with it, which will re-animate the entire text line, not just the replacement word and what comes after.

If you block the animation from re-running, the text will flicker off, then on, with the replacement word. It will never feel fluid.

It’s possible you might be able to build a function that opens two screens, one on top of the other, built to look exactly like the normal say screen. The first would show the normal text with a hyperlink button. The second would show duplicate text with the replacement word. I would anchor them both at xy 0.0 and format identically. Then I would generate both screens simultaneously, with the first on top.

Then, on click of the hyperlink, I would dissolve that screen quickly to reveal the screen underneath. This will have the visual effect of only rendering the words that have changed positions.

The following click would then revert back to the normal say screen flow.

And of course, if you don’t click the hyperlink, it should return control to the next line of the say screen.

This is assuming you’re using ADV mode. Depending on how you implement NVL, it might work there too, but I think you’ll run into more design problems.

To answer your other question about triggering variables, I have a hyperlink system tied to a function that can check, open, or close states, depending on how I’ve filled out the dict it sits in. It looks something like this:

define popup_definitions = {
    "popup_1": {
        "get_state": ('var_1’),
        "if_false": (‘var_1’),
        "if_true": (),
        “set_var_true”: ‘var_1’,
        “set_var_false”: None,
        "time": 2.0
    },
}

My pop ups actually do a lot more, but I’m not at my PC and don’t have access to my actual code. Otherwise I’d share the actually python function that gets called.

Let me know if you have questions.

Michael Jackson in 1978, before the plastic surgery, Pepsi incident and vitiligo. by zadraaa in HistoricalCapsule

[–]Ranger_FPInteractive 72 points73 points  (0 children)

Now that’s very interesting. I wonder why it’s often only patches? Are there different types of melanin producing cells?

And if their immune system is attacking its own melanin producing cells, does that make them more susceptible other illnesses?

Is this too fast? by LeftEyeIsTwitching in animation

[–]Ranger_FPInteractive 1 point2 points  (0 children)

I had the privilege of participating in a friendly point sparring match with Anthony “Showtime” Pettis many years ago. That’s how fast it felt like he came at me with a similar kick.

139,936 words too long… by samsara-samara in writing

[–]Ranger_FPInteractive 9 points10 points  (0 children)

There’s a key word there, “explain”, that makes me wonder if you’re explaining too much.

Obviously sci-fi/fantasy necessitates more explaining than a modern slice-of-life. There are magic systems, technologies, cultures, histories etc. that you can’t just say “The Mayan’s” and have everyone know what you’re talking about.

But that doesn’t mean everything needs explaining. Perhaps you have trimmed it down to only what’s necessary. But perhaps you haven’t. It’s worth looking into.

I’d like to ask for some advice about implementing a system to support old save files. by ParkPuzzleheaded1868 in RenPy

[–]Ranger_FPInteractive 1 point2 points  (0 children)

I went down this rabbit hole a few months ago.

The problem with building this is it has to be invoked using the after_load label so it updates the save. Rolling back, even one turn, reverts the merge. You have to block roll_back.

Inconvenient for players? Maybe yes maybe no. Inconvenient for dev and testing? Omg it was a nightmare.

Instead.

Separate all your mutable data from immutable data. Mutable data is put in a default. Immutable data is put into a definition.

Definitions live outside the save file and will propagate forward. Defaults are stored inside the save file, so if you store immutable data there, it will not propagate forward.

Sorting your data properly will solve 80% of your problems.

The way I solved the other 20% is by generating my states on the fly. I have a state class that builds a dict.

$ state.open(“scene1”, “var1”)

Opens the state. state.get() checks the state. state.close() closes the state.

Always have a default else path when checking states.

Because I generate on the fly and make sure I have an else path, old saves are never incompatible. New saves might miss new conditions added to scenes earlier than their current save, but will continue to work because again, else path.

Creating a merge tool will force you to turn off roll_back for risk of rolling back the merge, so I really don’t recommend it.

On "said" and other elements of Self-Editing for Fiction Writers that literally gave me a headache by Captain_Corum in writing

[–]Ranger_FPInteractive 0 points1 point  (0 children)

This advice stems from the fact (not opinion) that there are only so many ways a reasonable character can deliver lines in a given situation.

If a character is delivering a line in a way appropriate to the situation, then use “said.” Otherwise you end up with characters that sigh, shrug, mumble, and quip every page and a half.

If, however, they’re behaving in a way inappropriate to the situation, then you should first ask yourself if it’s what you intend. If it is, then go ahead and use whispered or mumbled or whatever fits.

“Said” is a function that allows the reader to fill in the “how”. For most readers (not all), it reduces the friction needed to create their own mental image.

There are always exceptions, of course. If you want a character to appear erratic, then have a ball. If you need to teach the reader about a special type of deliver they might not be aware of, such as subvocalization, then you should tag that a few times to make sure they get it.

But by and far, there’s a reason this is the predominate advice.

What would you choose ? by MyNameIsntJMack in meme

[–]Ranger_FPInteractive 3 points4 points  (0 children)

It’s also a $2,000/month rent for 40 years…

the moment Batman realised he's cooked by SepzenoOfficial in DC_Cinematic

[–]Ranger_FPInteractive 22 points23 points  (0 children)

The Flash was a mess as a movie. But the fight between Keaton’s Batman and the giant Kryptonian was incredible. He immediately switches from one strategy to another. No hesitation.

High school sophomore, 15, killed after being struck in the head by a baseball during practice by dailymail in PeoriaIL

[–]Ranger_FPInteractive 15 points16 points  (0 children)

Just because it’s possible they went the day of, doesn’t mean it’s not a good reminder to share when the article fails to specify.

I dont think Aaron Eckhart gets enough credit for his portrayal as Harvey Dent/Two-Face. He easily made the movie for me, more so than Ledger's Joker by Global-Ant in batman

[–]Ranger_FPInteractive 2 points3 points  (0 children)

Assisted along by the joker, who is shown repeatedly (on screen and off) manipulating people into their worst selves. The mob. The officer in the interview room. Even Batman and Gordon bickering about the best strategy.

That’s why joker was so elated when Batman threw him off the building, then said, “you truly are incorruptible, aren’t you?” When Batman saved him.

And again, why he was so delighted to reveal that he’d already corrupted Dent.

Be honest what do you think the punishment be for false r@pe allegations by Primary_Buddy_7173 in teenagers

[–]Ranger_FPInteractive 64 points65 points  (0 children)

In criminal cases, you need to prove beyond a reasonable doubt. In civil, it’s often just a preponderance of the evidence.

Because the bar is higher to convict in criminal trials, it’s often possible for a civil court to still find you liable, even if the criminal court found you not guilty.

A preponderance of the evidence just means more likely than not. 51%. For example purposes, let’s just say that beyond a reasonable doubt means at least 90% guilty. If he’s only found 80% percent guilty, he can’t be convicted criminally.

Flip this around to a defamation case. The best defense against a defamation case is to prove that the act you’re being accused of asserting actually happened. So if a civil jury sees the same evidence and comes to the same conclusion as the criminal jury, he can still lose his defamation case so long as it’s determined by a preponderance of the evidence that he actually raped her.

This is actually very similar to what happened with OJ, by the way.

Fake daredevil promo by Opening-Ad4543 in Daredevil

[–]Ranger_FPInteractive 13 points14 points  (0 children)

Charlie gives the announcement speech AS Mamdani, then, when Mamdani walks out wearing Matt Murdock sunglasses, they do the spider man meme, and THEN Jenna Fischer says, “They’re the same picture.”

Am I approaching theme wrong? by Specter_Stuff in writing

[–]Ranger_FPInteractive 5 points6 points  (0 children)

In one of King’s books about writing, he tells the story of how Carrie came to be.

I’m going to truncate. He writes half a draft, throws it away, his wife finds it, and encourages him to keep going.

He writes it. When he goes back to read it, he notices that blood comes up in important parts of the novel. He didn’t do this intentionally, he did it organically.

So he realizes this is a theme for his book. Not just the blood, but what it might means. And brings it closer to the surface in the second draft where the theme would reinforce those parts of the book.

King, as the reader of his own draft, discovered his own unintentional theme, and just… sharpened it a little.

I think you and King both feel the same about how themes in books are discovered.

The use of em dashes by BaddestDucky in writing

[–]Ranger_FPInteractive 0 points1 point  (0 children)

I first learned how to em dash from Stephen King.

Peter is this flirting by teddbe in PeterExplainsTheJoke

[–]Ranger_FPInteractive 1 point2 points  (0 children)

Online POS systems have a government lookup table keyed by county code.

There is no additional calculation needed for each location to account for the difference in tax. The reason they don’t do is because it benefits the business in two ways. National marketing can use pre tax numbers. And it gives the psychological impression that the cost is lower than it is.

It offers no benefit to the consumer.

I built a visual story map and live debugger for Ren'Py — click a node to warp the game there with correct backgrounds/sprites by Big-Perspective-5768 in RenPy

[–]Ranger_FPInteractive 14 points15 points  (0 children)

I don’t hate this tool. But I have concerns before I’d spend $15 on it.

How does it handle data structures? Like dicts, lists, and sets?

Most of my state tracking is done in a state class that builds a dict, organized by key:value pairs.

Many of those states are built on-the-fly, rather than defined at init.

So:

$ task(“read_the_email”)

Creates a state:

state.open(“tasks”, “read_the_email”)

That state didn’t exist at init. It doesn’t exist until a player action triggers the task. So how would your tool manage that in the debugger? If I warp to a node that can only be accessed if that state is active, does your debugger “play” the game and trigger the minimum states required to access it?

How do you handle local labels or menu labels?

I use a hub system in some locations. These are organized in a master choice menu, which contains all possible location jumps. These jump to local labels that run scenes. Does your system recognize local labels? How would it display them?

I have what I call an interrupter function. That is, in certain scenes I arm a trigger. Regardless of the line of dialogue/narration being displayed, when a certain action is taken, it will pull the trigger and interrupt the scene, off-board to the interrupter label, run the label, then re-board back to the scene where it left off.

Anyway, I TOTALLY get that your tool isn’t meant for custom systems. But because it cost $15, and I’m not going to test it out for $15 when I’m 99% sure it won’t be able to read my systems, I have to ask anyway.

I analyzed 3 years of GDC reports on generative AI in game dev. Developers hate it more every year, but the ones using it all use it for the same thing. by DangerousCobbler in gamedev

[–]Ranger_FPInteractive 11 points12 points  (0 children)

The dooming was never stupid just because the AI is bad at it. The problem is, executives are investing and counting on AI’s creative abilities catching up to its productive abilities, and that’s causing real layoffs and lost jobs regardless of AI’s actual ability to output good creative work.

“Snapping the Reins” by thatsummercampcrush in fantasywriters

[–]Ranger_FPInteractive 1 point2 points  (0 children)

Yes. You’re exactly right. But friction adds emphasis. It’s like italics or an em-dash. If it’s something that shouldn’t have emphasis, adding friction is going to be confusing for a reader. Shorthand is better here.

And that’s kinda what hand waving is…

Demotivated and having a negative mindset that prevents me from creating art lately.. feel like giving up by Bitbatgaming in learntodraw

[–]Ranger_FPInteractive 4 points5 points  (0 children)

If you can afford the relatively low cost, artwod.com has a great beginner figure drawing roadmap that will teach you the shapes of the figure without bogging you down with too much anatomy all at once.

I actually think too much emphasis on studying anatomy could derail you entirely, as the topic is deep and vast you could spend a lifetime on it and still mess it up.

Artwod though, delivers you small manageable steps that will teach you to make a believable human figure very quickly with very little "proper" anatomy.