Character-specific Endings??

MysticalMist

Well-known member
I remember playing one of Pierwolf's games - Fighter's History Revenge, and noticed how depending on which character you finish the last level as, a brief cutscene would play. (Though I'm not sure how it functions if it is multiplayer).

Would this have to be done as a unique freespecial/followanim for a player during said stage that's called by a script, or would it be best to have it somehow branch into a new scene? Also, what would be an effective way, if there is two players or more, to determine which character ending plays?
 
It depends on the ending is displayed. If it's displayed by scene (outside of level), you'd need branches and script to choose which branch to go to depending on main character.
If it's displayed by in game scene, you'd need entity which performs animation depending on main character. Script is used of course.

As for which one is better, I can't say cause each has pros and cons. Scene is great for long scenes (ending) while in game scene is great for short scenes (quick dialogues) just to name a few.

what would be an effective way, if there is two players or more, to determine which character ending plays?

With script of course, though what to do when there were more players than one depends on you. You could :
1. Play one ending from just one player ignoring the other.
2. Play both endings from first player's then to second player's.
3. Play unique ending featuring both player's characters.

So which do you prefer?
 
With script of course, though what to do when there were more players than one depends on you. You could :
1. Play one ending from just one player ignoring the other.
2. Play both endings from first player's then to second player's.
3. Play unique ending featuring both player's characters.

So which do you prefer?

Honestly, I feel like the first or second would be a better choice. I'm assuming Scene may be my best option JUST IN CASE, if they are long.
 
Yet another cool feature addressed.
FHR is a great source of knowledge.
I'm grateful that you guys covered this topic.
Option 3 is exactly what I'm looking for.
a special end for Ken and Ryu, I can see it now.
 
The first one sounds like it's default, only focusing on one player for its own ending. The second one sounds like Tekken Tag 1 style where the first teammate's ending shows first before the second one's own. (I forgot if that does it or not. Sorry.) The third sounds like King of Fighters's special endings for specific edit teams, as well as Billy and Jimmy's ending in ROTD.
 
I'm posting those options without realizing that #2 is harder to create than the other two 😅.
My idea for #1 is: the ending scenes is arranged like this:
Code:
level    data/levels/final.txt
branch    End1
scene    data/scenes/end1.txt
level    data/levels/goend.txt
branch    End2
level    data/levels/goend.txt
branch    End3
level    data/levels/goend.txt
branch    FEnd
scene    data/scenes/end.txt # this is the last entry in this set

Goend is quick level which brings player to FEnd branch. The idea is after one of those scenes is played, player will skip the other scenes and go to end.txt scene.

There are couple ways to choose which scene to play or rather which branch to go to after final level is completed. I chose to use spawnscript such as this:
EndSelect.c
C:
void main()
{
  void P1 = getplayerproperty(0, "entity");
  void P2 = getplayerproperty(1, "entity");
  void Play;

  if(P1){
    Play = P1;
  } else if(P2){
    Play = P2;
  }

  if(Play){
    void Model = getentityproperty(Play, "defaultname");

    if(Model == "Hero3"){
      jumptobranch("End3",1);
    } else if(Model == "Hero2"){
      jumptobranch("End2",1);
    } else {
      jumptobranch("End1",1);
    }
  }
}

This script is saved in /scripts folder and declared like this after boss' death:
Code:
spawn   flash
spawnscript data/scripts/EndSelect.c
coords  -160 220
at    0

I'm spawning the flash offscreen so no one could see it when it is spawned but the script would still be run. The script could be declared on any spawn actually.
Speaking of script, the script finds one active player from available players. If both players are active, player 1 is selected. If only one player is active, he/she will be selected.
Then his/her name is checked to pick which branch to go to next or rather which scene to play next.

Option #3 needs some modification of this script.
Option #2 is rather hard to make, I won't tell it right now.

That being said, this method could be modified to make character specific branches.
 
@Bloodbane, is there a way to adjust the endselect.c script to play AFTER a level, instead of making it spawn in once a boss dies? I have a level designed to work like a cutscene after the final boss fight and I'm hoping to make it play once the cutscene level is finished.
 
Back
Top Bottom