Altering story based on Achievements


#1

After scouting the forum and managing not to find what I needed (and not getting the wiki at all -_- ) quick question:

How can I successfully tell my game to have certain scenes if an achievement has been unlocked
AND
how do I prevent a new playthrough from acting as if the achievement has been unlocked?

Or should I instead go with an unrelated variable that will be set to “true” in addition?

I feel ridiculous for asking.


#2
  1. *check_achievements will generate a set of variables, all choice_achieved_foo (where foo is the short code name of the achievement) set to true if it was achieved, and false if not.

  2. I’m not certain what you’re asking.

In practice, assuming you already know how to make achievements:

*check_achievements
*if choice_achieved_win = false
    *achieve win

This will make the game only give you the achievement win if you don’t already have the achievement. (i.e. once the achievement pops once, it will never pop again, no matter how many times you play the game)


#3

Yeah, guess I need an additional variable then.

What I tried to achieve (hah!) Is this

There are a couple of hidden achievements in the game that’d unlock new lines of dialogue and scenes.
And I’d like for them to only appear if an achievements is unlocked in the respective playthrough.


#4

Can confirm you only need a standard boolean variable. The *check_achievements variable will unlock those scenes in all future playthroughs.


#5

Shouldn’t that be:

*if choice_achieved_win = false ?


#6

Thanks. Ah well… at least I know my 140 lines of *create are NOT the longest xD


#7

Well, in practice I’d encourage not(choice_achieved_win), but yes, don’t trust any example code I write off the cuff.


#8

FYI, there’re wiki pages for that :eyes:



#9

Ooh, I’ve already got ideas for this…

Looks like I just broke 200 variables, you’re not alone!