home *** CD-ROM | disk | FTP | other *** search
/ Top 50 Space / SPACE.bin / data / siege / siege.ace / training / training_fns.cs < prev    next >
Encoding:
Text File  |  1999-03-22  |  5.3 KB  |  221 lines

  1. $alphaComplete       = false;
  2. $bravoComplete       = false;
  3. $charlieComplete     = false;
  4. $deltaComplete       = false;
  5. $warning             = 0;
  6. $playerNum           = 0;
  7. $playerId            = 0;
  8. $lastDistance        = 0;
  9. $stray               = 0.0;
  10. $missionFailed       = false;
  11. $missionCompleted    = false;
  12. $runNearingFunction  = false;
  13. $missionFailed       = false;
  14. $alphaId             = 0;
  15. $bravoId             = 0;
  16. $charlieId           = 0;
  17. $deltaId             = 0;
  18. $customId            = 0;
  19.  
  20. function onForceToDebrief(%string)
  21. {
  22.    say(0, 1234, *IDSTR_TRG_OUTR01, "TR_OUTR01.WAV");
  23.    TRForceToDebrief(%string);
  24. }
  25.  
  26. function onMissionFailed(%pause, %order_disregarded)
  27. {
  28.     $missionFailed = true;
  29.     $Client::TrainingMissionStatus = "ONE_OR_MORE_FAILED";
  30.  
  31.     schedule("say(0, 1234, *IDSTR_TRG_HNTRFL, \"TR_HNTRFL.WAV\");", %pause);
  32.  
  33.    if (%order_disregarded)
  34.    {
  35.        schedule("onForceToDebrief(*IDSTR_TRG_FOLLOWORDERS);", 5 + %pause);
  36.    }
  37.    else
  38.    {
  39.        schedule("onForceToDebrief(*IDSTR_MISSION_FAILED);", 5 + %pause);
  40.    }
  41. }
  42.  
  43. function onMissionCompleted(%string, %speech)
  44. {
  45.    $missionCompleted = true;
  46.     $Client::TrainingMissionStatus = "ALL_COMPLETED";
  47.  
  48.     say(0, 1234, %string, %speech);
  49.     schedule("onForceToDebrief(*IDSTR_MISSION_SUCCESSFUL);", 5);
  50. }
  51.  
  52. function onMissionStart()
  53. {
  54.    cdAudioCycle(SS4, Purge);
  55.    exec("keymaps\\Key_Mouse_DigiJoy.cs");
  56.     $Client::TrainingMissionStatus = "IN_PROGRESS";
  57. }
  58.  
  59. function player::onAdd(%this)
  60. {
  61.    $playerNum = %this;
  62. }
  63.  
  64. function ensureNavPointSet(%nav_point)
  65. {
  66.    if (getNavMarkerStatus(%nav_point) == true && $missionFailed == false && $missionCompleted == false)
  67.    {
  68.       setNavMarker(%nav_point, true, -1);
  69.       schedule("ensureNavPointSet("@%nav_point@");", 1);
  70.    }
  71. }
  72.  
  73. function disableAllNavPoints()
  74. {
  75.    disableNavMarker("MissionGroup/Nav Points/Nav Alpha");
  76.    disableNavMarker("MissionGroup/Nav Points/Nav Bravo");
  77.    disableNavMarker("MissionGroup/Nav Points/Nav Charlie");
  78.    disableNavMarker("MissionGroup/Nav Points/Nav Delta");
  79. }
  80.  
  81. function vehicle::onAdd(%this)
  82. {
  83.    %num = playerManager::vehicleIdToPlayerNum(%this);
  84.       
  85.    if(%num == $playerNum)
  86.    {
  87.       $playerId = %this;
  88.    }
  89. }
  90.  
  91. function onSPClientInit()
  92. {
  93.    $alphaId   = getObjectId("MissionGroup/Nav Points/Nav Alpha");
  94.    $bravoId   = getObjectId("MissionGroup/Nav Points/Nav Bravo");
  95.    $charlieId = getObjectId("MissionGroup/Nav Points/Nav Charlie");
  96.    $deltaId   = getObjectId("MissionGroup/Nav Points/Nav Delta");
  97.    $customId  = getVehicleNavMarkerId($playerId);
  98.  
  99.    disableAllNavPoints();
  100.    setHudChatDisplayType(1);
  101.  
  102.    initTrainer();
  103. }
  104.  
  105. function vehicle::onDestroyed(%this, %who)
  106. {
  107.    if (%this == $playerId)
  108.    {
  109.       onMissionFailed(0, false);
  110.    }
  111. }
  112.  
  113. function onStrayNavPoint(%arg)
  114. {
  115.    if (%arg == $alphaId)
  116.    {
  117.         say(0, 1234, *IDSTR_TRG_HNTRAW, "TR_HNTRAW.WAV");
  118.    }
  119.    else if (%arg == $bravoId)
  120.    {
  121.         say(0, 1234, *IDSTR_TRG_HNTRBW, "TR_HNTRBW.WAV");
  122.    }
  123.    else if (%arg == $charlieId)
  124.    {
  125.         say(0, 1234, *IDSTR_TRG_HNTRCW, "TR_HNTRCW.WAV");
  126.    }
  127.    else if (%arg == $deltaId)
  128.    {
  129.         say(0, 1234, *IDSTR_TRG_HNTRDW, "TR_HNTRDW.WAV");
  130.    }
  131.    else if (%arg == $customId)
  132.    {
  133.       say(0, 1234, *IDSTR_TRG_HNTRYW, "TR_HNTRYW.WAV");
  134.    }
  135. }
  136.  
  137. function onLeaveTrainingArea()
  138. {
  139.    say(0, 1234, *IDSTR_TRG_HNTRFW, "TR_HNTRFW.WAV");
  140.    onMissionFailed(5, true);
  141. }
  142.  
  143. function msay(%channel, %client, %string, %wave)
  144. {
  145.    if ($missionFailed == false && $missionCompleted == false)
  146.    {
  147.       say(%channel, %client, %string, %wave);
  148.    }
  149. }
  150.  
  151. function monitorProgress(%arg, %nearing_distance, %arrival_distance, %stray_distance)
  152. {
  153.    $stray              = 0.0;
  154.    $warning            = 0;
  155.    $runNearingFunction = false;
  156.    $lastDistance       = getDistance($playerId, %arg);
  157.  
  158.     playerDistanceCheck(%arg, %nearing_distance, %arrival_distance, %stray_distance);
  159. }
  160.  
  161. function playerDistanceCheck(%arg, %nearing_distance, %arrival_distance, %stray_distance)
  162. {
  163.    %distance = getDistance($playerId, %arg);
  164.     %pause    = 0;
  165.    %continue = getNavMarkerStatus(%arg);
  166.  
  167.    if (%continue && $missionFailed == false && $missionCompleted == false)
  168.    {
  169.        %diff = %distance - $lastDistance;
  170.  
  171.        if (%diff > 0.0)
  172.        {
  173.            $stray += %diff;
  174.  
  175.            if ($stray > %stray_distance)
  176.            {
  177.             $warning ++;
  178.             $stray = 0.0;
  179.  
  180.             if ($warning < 3)
  181.             {
  182.                %pause = 6;
  183.                onStrayNavPoint(%arg);
  184.             }
  185.             else
  186.             {
  187.                %continue = false;
  188.                onLeaveTrainingArea();
  189.             }
  190.            }
  191.        }
  192.        
  193.        else if (%diff < 0.0)
  194.        {
  195.            $warning = 0;
  196.            $stray   = 0.0;
  197.  
  198.            if (%nearing_distance  && (%distance <= 
  199.              %nearing_distance) && ($runNearingFunction == false))
  200.            {
  201.                $runNearingFunction = true;
  202.             onNearingNavPoint(%arg);
  203.            }
  204.  
  205.            if (%arrival_distance && (%distance <= 
  206.              %arrival_distance))
  207.            {
  208.             %continue = false;
  209.             onArriveNavPoint(%arg);
  210.            }
  211.       }
  212.  
  213.        if (%continue)
  214.        {
  215.            $lastDistance = %distance;
  216.          schedule("playerDistanceCheck("
  217.             @%arg@", "@%nearing_distance@", "@%arrival_distance@", "@%stray_distance@");", 1 + %pause);
  218.        }
  219.    }
  220. }
  221.