I have mission where I want the player to avoid Krusty in a later stage. Krusty is instead appearing at the start of the mission with no car. The problems:
1. Krusty doesn't have a car and is driving nothing.
2. The waypoint he starts at doesn't exist in the p3d file so I don't know why he's showing up there.
3. The mxl file doesn't mention Krusty's character model so they couldn't have loaded him in by accident.
4. The "addriver" code line is in a later stage of the mission, so the game isn't just loading him in wrong.
SelectMission("m3"); SetMissionResetPlayerInCar("m3_apucarstart_sd"); SetDynaLoadData("l3z1.p3d;l3r1.p3d;l3r5.p3d;l3r5_dam.p3d;"); InitLevelPlayerVehicle("apu_v","m3_apucarstart_sd","OTHER"); SetNumValidFailureHints( 5 ); UsePedGroup(0); SetForcedCar(); AddStage(16); RESET_TO_HERE(); SetMaxTraffic(5); SetStageMessageIndex(118); SetHUDIcon( "flatmeat" ); AddStageVehicle("cletu_v","m3_cletus_carstart","target","Missions\level03\M3dump.con", "cletus"); SetVehicleAIParams( "cletu_v", -10, -9 ); // very dumb - no shortcuts AddStageWaypoint( "m3_cletus_path5" ); AddStageWaypoint( "m3_cletus_path9" ); AddStageWaypoint( "m3_cletus_path1" ); StartCountdown(count); AddToCountdownSequence( "3", 1000 ); // duration time in milliseconds AddToCountdownSequence( "2", 1000 ); // duration time in milliseconds AddToCountdownSequence( "1", 1000 ); // duration time in milliseconds AddToCountdownSequence( "GO", 400 ); // duration time in milliseconds AddObjective("dump", "neither"); SetObjTargetVehicle("cletu_v"); AddNPC("apu", "m3_apu_hide"); AddCollectible("m3_flatmeat_1","roadkill"); AddCollectible("m3_flatmeat_2","roadkill"); AddCollectible("m3_flatmeat_3","roadkill"); AddCollectible("m3_flatmeat_4","roadkill"); AddCollectible("m3_flatmeat_5","roadkill"); AddCollectible("m3_flatmeat_6","roadkill"); AddCollectible("m3_flatmeat_7","roadkill"); AddCollectible("m3_flatmeat_8","roadkill"); AddCollectible("m3_flatmeat_9","roadkill"); AddCollectible("m3_flatmeat_10","roadkill"); AddCollectible("m3_flatmeat_11","roadkill"); AddCollectible("m3_flatmeat_12","roadkill"); AddCollectible("m3_flatmeat_13","roadkill"); AddCollectible("m3_flatmeat_14","roadkill"); AddCollectible("m3_flatmeat_15","roadkill"); CloseObjective(); SetStageTime(120); AddCondition("timeout"); CloseCondition(); AddCondition("outofvehicle"); SetCondTime( 10000 ); CloseCondition(); AddCondition( "damage" ); SetCondMinHealth( 0.0 ); SetCondTargetVehicle( "apu_v" ); CloseCondition(); SetCompletionDialog("jerkwater","apu"); ShowStageComplete(); CloseStage(); AddStage(0); SetMaxTraffic(5); SetStageMessageIndex(181); SetHUDIcon( "observ" ); AddObjective("goto", "both"); SetDestination("m3_observatory", "carsphere"); SetCollectibleEffect("wrench_collect"); AddStageVehicle("cKlimo","m3_cKlimo_carstart","NULL","Missions\level07\M7Chase.con","krusty"); CloseObjective(); AddCondition("outofvehicle"); SetCondTime( 10000 ); CloseCondition(); AddCondition( "damage" ); SetCondMinHealth( 0.0 ); SetCondTargetVehicle( "apu_v" ); CloseCondition(); SetStageTime(40); AddCondition("timeout"); CloseCondition(); //AddDriver("krusty","cKlimo"); SetCompletionDialog("miss","krusty"); CloseStage(); AddStage(1); SetMaxTraffic(5); SetStageMessageIndex(21); SetHUDIcon("krusty"); ActivateVehicle("cKlimo","NULL","chase"); SetVehicleAIParams("cKlimo",-10,-9); AddObjective("losetail"); SetObjTargetVehicle("cKlimo"); SetObjDistance(200); CloseObjective(); SetStageTime(60); AddCondition("timeout"); CloseCondition(); ShowStageComplete(); CloseStage(); AddStage(2); SetMaxTraffic(5); SetStageMessageIndex(181); SetHUDIcon( "observ" ); AddObjective("goto", "both"); SetDestination("m3_observatory", "carsphere"); SetCollectibleEffect("wrench_collect"); CloseObjective(); AddCondition("outofvehicle"); SetCondTime( 10000 ); CloseCondition(); AddCondition( "damage" ); SetCondMinHealth( 0.0 ); SetCondTargetVehicle( "apu_v" ); CloseCondition(); SetStageTime(20); AddCondition("timeout"); CloseCondition(); SetFadeOut( 1.0 ); SwapInDefaultCar(); SetSwapDefaultCarLocator("m3_carend"); SetSwapForcedCarLocator("m3_apu_carend"); SetSwapPlayerLocator("m3_lisa_observatory"); ShowStageComplete(); CloseStage(); AddStage(3); SetStageMessageIndex(182); SetHUDIcon( "observ" ); AddObjective("interior"); AddNPC("frink", "m3_frink"); SetDestination("Observatory", "obsv_mission_doorstar"); CloseObjective(); CloseStage(); AddStage(4); SetStageMessageIndex(66); SetHUDIcon( "frink" ); AddObjective("talkto", "neither"); AddNPC("frink", "m3_frink"); AddObjectiveNPCWaypoint( "frink", "m3_frink_walk_1" ); SetTalkToTarget("frink", 0, 0); CloseObjective(); CloseStage(); AddStage("final"); AddObjective("dialogue"); AmbientAnimationRandomize( 1, 0 ); // ( pc=0, npc=1) (nonrandom=0, random=1) AmbientAnimationRandomize( 0, 0 ); SetConversationCam( 0, "pc_far" ); SetConversationCam( 1, "npc_near" ); SetConversationCam( 2, "pc_far" ); AddAmbientNpcAnimation( "none" ); AddAmbientPcAnimation( "dialogue_hands_in_air" ); SetDialogueInfo("lisa","frink","conspiracy",0); CloseObjective(); CloseStage(); CloseMission();