~Hakurei Shrine~ > Rika and Nitori's Garage Experiments
※ Danmakufu Q&A/Problem thread 3 ※
Helepolis:
--- Quote from: Sparen on February 14, 2016, 10:54:34 PM ---By setting the player life to be above 0, you prevent the script from ending. My Continue System task handles communication with the package - if the player has continues left and it's not a replay, the package is notified to Pause the Stage. From here, the player decides in the package which course they would like to take, and the stage is notified from the package via NotifyEvent.
--- End quote ---
Oh I see. That is quite a clever workaround. Because 0 lives in Touhou actually means it is your last life right? So preventing it from going to -1? Events are strong it seems, guess I have to call in its help again.
Any side effects of keeping never triggering the PlayerState or StageSceneState to PLAYER_DOWN? Like replays breaking. Desyncing, etc.
Sparen:
--- Quote from: Helepolis on February 15, 2016, 06:24:48 AM ---Oh I see. That is quite a clever workaround. Because 0 lives in Touhou actually means it is your last life right? So preventing it from going to -1? Events are strong it seems, guess I have to call in its help again.
Any side effects of keeping never triggering the PlayerState or StageSceneState to PLAYER_DOWN? Like replays breaking. Desyncing, etc.
--- End quote ---
I am unsure, but ExPorygon has a replay-safe continue system (which he uses for Ephemeral Unnatural Balance). So if you're interested in a system that definitely works with replays, you should consider PMing him. Personally, my system handles replays in a very haphazard way.
Rule of thumb is that if something is done in the actual play through that is not done exactly the same way in the replay, things will break. If PlayerState is never triggered in either the original play through nor the replay, it should be consistent.
Helepolis:
Will see if he shows up here. Though from what you explained and what I know:
A replay file is "cut/edited" based on the FinalizeStageScene function and the PauseStageScene. Technically a PauseStageScene is called when the user manually pauses it. Thus the replay knows how to handle the moment until PauseStageScene is set back to false
Currently my game calls the "ending scene" in two conditions:
- STAGE_RESULT_PLAYER_DOWN = FinalizeStageScene -> launches a Ending scene.
- Escape button pressed = PauseStageScene -> launches a Pause scene.
The stage closing happens in the Stage script with GetPlayerState.
So basically the STAGE_RESULT_PLAYER_DOWN should be never checked. The GetPlayerState should never be used to check and changed into sort of manual event / commondata I guess. Inside the package script, when the event/commondata is triggered, a forced PauseStageScene needs to be called inside the ending scene. As long as you don't spawn / set / modify anything during the pause, your replays should be in my opinion safe. Actually, PauseStageScene will pretty much make sure of this.
Seems I need to adjust my ending scene and inject a part of the pause scene into it.
iVAwalys:
What are the easiest Touhou bosses to replicate, or base on, in Danmakufu?
Sparen:
--- Quote from: iVAwalys on February 17, 2016, 08:04:42 PM ---What are the easiest Touhou bosses to replicate, or base on, in Danmakufu?
--- End quote ---
Depends on what you mean by 'base on' or 'replicate', as well as the general availability of graphical assets. This question is extremely broad, but characters with simpler danmaku (Stage 1-2 bosses) without custom graphics (IE not Nazrin) tend to be less of a logistical hassle. It is for this reason that Rumia used to be one of the most commonly used bosses in early scripts.