Aller au contenu

Photo

Question about where two scripts should fire.


  • Veuillez vous connecter pour répondre
14 réponses à ce sujet

#1
andysks

andysks
  • Members
  • 1 645 messages

Hi all. I have a sequence of conversations that lasts a while, jumping from one to the next, resulting to the player not having a chance to save his game. Moreover, this sequence leads to a possible ending. I am using two scripts there in between.

One to autosave the game, and one to export the character.

 

My question is, do these script functions require a specific handling? Like... I don't know, not putting them at the complete end of a conversation and so on? The question came to me when I thought that I cannot put the autosave in a conversation that happens in an area that there is no exit from. In other words, an area that is used only for that cutscene and is not designed for play. So if an autosave happens in there, and the player reloads, he is locked in. These are tricky situations and I'd like some brainstorming from you if possible :).



#2
Claudius33

Claudius33
  • Members
  • 256 messages

Well I would simply put the autosave somewhere in the area(s) leading to the cut scene area.

For instance if you have a transition spot leading to the cut scene area, remove the way-point link and put a script in the OnClick event. The script can fires a warning conversation :

do you want to save your game?

  • yes : exit convo. The player can save in a chosen slot and click again on the transition spot to proceed.
  • no : jump the party.
  • auto : autosave then jump the party.


#3
ColorsFade

ColorsFade
  • Members
  • 1 267 messages

 

Well I would simply put the autosave somewhere in the area(s) leading to the cut scene area.

For instance if you have a transition spot leading to the cut scene area, remove the way-point link and put a script in the OnClick event. The script can fires a warning conversation :

do you want to save your game?

  • yes : exit convo. The player can save in a chosen slot and click again on the transition spot to proceed.
  • no : jump the party.
  • auto : autosave then jump the party.

 

 

You could even do this on a door opening, if that is something that happens right before the cut-scene. 

 

But I'd definitely do this before the conversations fire. 



#4
Claudius33

Claudius33
  • Members
  • 256 messages

You could even do this on a door opening, if that is something that happens right before the cut-scene. 

 

But I'd definitely do this before the conversations fire. 

 

Sure, a door would be ok too, providing it is not in the same area as the cut scene.  The autosave must be done before entering the cut scene area.



#5
ColorsFade

ColorsFade
  • Members
  • 1 267 messages

he autosave must be done before entering the cut scene area.

 

Why do you think that? 

 

Autosaves can be done from anywhere. There's a trigger in the blueprints, and all it does is call two functions: 

 

MarkAsDone()

DoSinglePlayerAutosave()

 

You can call those from anywhere, from any script (and don't have to use a trigger, hence a door opening, a conversation end node, etc.). There's no limitation that says (to the best of my knowledge) that you need to call DoSinglePlayerAutosave() before loading an area. 



#6
4760

4760
  • Members
  • 1 204 messages
I guess Claudius was only highlighting that the autosave had to be done before entering the area since in the current case it has no way out except through the cutscene.

#7
ColorsFade

ColorsFade
  • Members
  • 1 267 messages

I guess Claudius was only highlighting that the autosave had to be done before entering the area since in the current case it has no way out except through the cutscene.

 

Oh I get it. I misread the original poster. 

 

Yeah, as there would be "no way back" with the autosave, you'd want do it earlier. But you can do it anywhere. 

 

The thing is - the logic is what matters here. Andy says the conversation "may" result in an ending, but that means it doesn't have to. Does that mean that some branches of the conversation cause the PC to be sent to a different area? If so, I'd simply do the auto-save at the beginning of the conversation (like in a walk-up to wherever the conversation starts). If the PC chooses the branch that leads to end ending, then export. If the PC chooses a branch that ports them elsewhere, then they go there. If they loaded that auto-save, they're right back at the beginning of the conversation, where they can take a different route. 



#8
kevL

kevL
  • Members
  • 4 052 messages
another idea, since Andy wants a bit o brainstorming, is to have an onEnter script for the cutscene area, that automatically shunts any entering character to a different, playable area. UNLESS a flag has been set (on the Area) to indicate it's ready to receive players for the cutscene; then switch the flag off when the autosave happens.

but as Claudius suggests, the save should be made *before* entering the cutscene-area -- or as CF suggests the dialog ought be setup to handle subsequent reloads.

#9
Tchos

Tchos
  • Members
  • 5 030 messages

I was writing the same thing, but I abandoned the idea because I couldn't think of a reason to make an autosave in such a situation.  However, my thought was to do the auto-jump if a local int is on the area.  The integer would be set at the beginning of the conversation cutscene, and removed at the end of it.



#10
andysks

andysks
  • Members
  • 1 645 messages

I was just thinking the following, and I will also write the situation.

 

  1. PC reaches a point in play, where if he travels to a certain place in order to advance the story he will be stopped by an encounter in world map. The area of this encounter is not reachable in any other means.
  2. From here on, there is no brake between conversations.
  3. After the encounter is over (basically a cutscene encounter), I transfer the PC to another area, also not reachable in another way.
  4. On that new area, another conversation encounter happens.
  5. When this is over, we finally get transferred to our camp, where another conversation happens and the PC can decide through another conversation if he continues the game or wants to stop, therefore get the early ending.

So, perhaps allowing the autosave flag on world map travel gives me a solution to the first travel, before the first encounter.

As for the second, perhaps it would be a good idea to transfer the PC to the camp, but not fire the conversation right away, instead fire another one that asks if he wants to save. Or even better, make an autosave every time the PC enters the camp?

 

Even better, I just make an autosave upon arrival at the camp, and only if the previous events happened.



#11
kevL

kevL
  • Members
  • 4 052 messages
opinion:

PC reaches a point in play, where if he travels to a certain place in order to advance the story he will be stopped by an encounter in world map. The area of this encounter is not reachable in any other means.


ay, In the script where player chooses to 'advance the story' ... auto-save. Then send party to special encounter map(s).
 

When this is over, we finally get transferred to our camp, where another conversation happens and the PC can decide through another conversation if he continues the game or wants to stop, therefore get the early ending.


If player chooses the early ending, export character. Finis

also, It'd be nice to ask Player about export.
  • - Do you want to end the story early?
    • + yes
      • - Do you want to export your character?
        • + yes (export & continue early finish)
        • + no (just continue early finish)
    • + no (continue to story ...)

... make an autosave every time the PC enters the camp?


too many autosaves is a bad thing. Better let player decide when he/she wants to screw it up feels that a save should be made.
 

Even better, I just make an autosave upon arrival at the camp, and only if the previous events happened.


see above. They might want to redo the special encounters they just went through ...

#12
andysks

andysks
  • Members
  • 1 645 messages

Well, basically from what I understand from your words, perhaps once the player reaches the point where he needs to make the first travel, he could be warned like: "You will not have a chance to save your game for a while. It is advised that you do so now." Then my hands are clean :).



#13
kamal_

kamal_
  • Members
  • 5 238 messages

I put in "Congratulations you are done" messages, informing the player they are finished but the game is not exiting so they can export their character if they want or keep looking around (keeping in mind that they are officially done and I'm not responsible for post-completion bugs), and they can just exit the game when they are ready.



#14
kevL

kevL
  • Members
  • 4 052 messages
Andy, I didn't want it to sound all bad

here's a policy to go by:

do Autosave when you the designer think things are about to get tough, or there's going to be significant plot-changing choices upcoming.

let the player do a save *after* those types of events (when he/she is satisfied with their outcome).

( i advise not to do things like *Save your game now* -- it's very irksome/ immersion breaking ) you decide ofc.

#15
andysks

andysks
  • Members
  • 1 645 messages

I know what you meant :). Honestly, I dislike the world map autosave so I will not do that. Also, every time one enters the hangout is a bit too much.

 

The way I made it now, is the following. Once the player clicks to travel to the place where the significant events follow, the world map script I have makes an autosave. But only then and only one time. Next available save is at the complete end of all events. That is, if one doesn't choose the early ending. And this one is normal... manual save.

 

This way, one can still reload and replay the events, but doesn't get a save just before the option to end the game. In any case, the convo node informs the player that the game will end, so why would he need to save anyway? Yes, maybe to see the ending and reload :). But that's not happening :).

 

I often played games with long sequences of events where I had no chance to save, and once they end, I'm like "OK, what do I do now... first... SAVE!" I guess this will happen here as well. Testing will show of course...