Topic: Campaign Question  (Read 3062 times)

0 Members and 1 Guest are viewing this topic.

Teeth_03

  • Guest
Campaign Question
« on: March 19, 2003, 06:38:01 pm »
I wanted to edit the romulan campaign to add the Maiden Voyage mission at the end of it after Unity Starbase was destroyed so I could remove the extra campaign that included the Maiden Voyage mission.I added this after the romulan salt mission in the metaassets\ServerProfiles\singleplayer\missiongoals gf file:

[X_Voyage]
GoalDescription="To celebrate your upcoming retirement,Lord Shinzon himself has ordered you to try out the newly built Scimitar in sector 24,15."

[X_Voyage/Goals]

0="Time Wait 10 OR"
1="Location Move Hex 24 15 Wander 1"
2="Location Move Hex 24 15 Wander 0"
3="Package Deliver Mission X_Voyage"

Then I added  17="X_Voyage.scr"   in the scripts\campaigns\romulan gf file.But when I finished the Salt the Ground mission(less than 15 min. ago),it played the end movie and took me back to the campaign selection screen. Did I miss something?If you know why this didn't work please tell me.  

NuclearWessels

  • Guest
Re: Campaign Question
« Reply #1 on: March 19, 2003, 07:46:21 pm »
At the end of salt the ground, the mission script itself returns a result saying the campaign is over (either it's over and you won, or it's over and you lost).

As far as I know, about the only way to acheive the result you want is to alter and recompile the "Rom_Salt" mission script so that it schedules maiden voyage next (this is in addition to the .gf changes you've described).

Specifically, you'd need to replace this method:
Code:

void tPlayerTeam::mScheduleNextMission( tVictoryCondition* VictoryCondition )
{
   fMissionScheduler.fVictoryLevel = VictoryCondition->mCalcVictoryStatus( mGetTeam() );
   fMissionScheduler.fPrestige = VictoryCondition->mGetPrestigePoints( fMissionScheduler.fVictoryLevel );
   fMissionScheduler.fBonusPrestige = VictoryCondition->mGetBonusPrestige();
   fMissionScheduler.fNextMissionScore = -1;

   switch( fMissionScheduler.fVictoryLevel )
   {
   case kAstoundingVictory:
   case kVictory:
   case kDraw:
      fMissionScheduler.fMedal = kMedalSpecialFour;
      fMissionScheduler.fCampaignEvent = tTeamInfo::tMissionScheduler::kRetire;
      break;
   default:
      fMissionScheduler.fCampaignEvent = tTeamInfo::tMissionScheduler::kLost;
      break;
   }
}



with one like this:

Code:

void tPlayerTeam::mScheduleNextMission( tVictoryCondition* VictoryCondition )
{
   fMissionScheduler.fVictoryLevel = VictoryCondition->mCalcVictoryStatus( mGetTeam() );
   fMissionScheduler.fPrestige = VictoryCondition->mGetPrestigePoints( fMissionScheduler.fVictoryLevel );
   fMissionScheduler.fBonusPrestige = VictoryCondition->mGetBonusPrestige();
   fMissionScheduler.fNextMissionScore = -1;

   switch( fMissionScheduler.fVictoryLevel )
   {
   case kAstoundingVictory:
   case kVictory:
   case kDraw:
      fMissionScheduler.fMedal = kMedalSpecialFour;
      fMissionScheduler.fNextMissionScore = 1000;
      fMissionScheduler.fNextMissionTitle = "X_Voyage";
      break;
   default:
      fMissionScheduler.fCampaignEvent = tTeamInfo::tMissionScheduler::kLost;
      break;
   }
}



dave
 

Teeth_03

  • Guest
Re: Campaign Question
« Reply #2 on: March 20, 2003, 03:00:11 pm »
I can't script.But if you would do it, that would be cool,nice and did I mention cool.(and try to get some person to play the whole romulan campaign again to see if it works.)    

Praxis

  • Guest
Re: Campaign Question
« Reply #3 on: March 21, 2003, 01:52:30 am »
Just add MaidenVoyager BEFORE Salt