Jump to content


  • Content Count

  • Joined

  • Last visited

  • Medals

Everything posted by thobson

  1. Well it is now more than 6 months almost 11 years since I released Abandoned Armies v1.40 and I think that by now everyone that might be interested in playing it will have given it a try. I have received many comments and questions on the mission over the last several months that indicate to me that not everyone has discovered everything in the mission. Actually discovering everything would require the mission to be played many times in many different ways. To help those that have played the mission but not yet found everything and to help those that got stuck early on I have prepared a Spoiler document that can be downloaded at a broken link*. Note that this document should only be read by people that have played the mission through to the end, those that have got stuck, or those that think they may be missing something. August 2016: *As the link to the document has since been irrevocably broken I have copied and pasted (with permission) the full text of the document below as posts 11 to 27 (It was too long to all go in one post). Apologies that some of the formatting has got screwed in the process. The reason for putting it here after all this time is that apparently there are some who are playing this mission Also it is good to have a complete historical record.
  2. thobson

    Cannot create 3D device

    Thank you all for this. I have spent a bit over a day working on this and finally have a solution. My machine is a MacPro 5 (the one that had 4 hard drive bays anyone of which can be booted from) One bay has an OSX drive another has Windows 7 64 bit. OFP will not run on this drive because it thinks I have 0 memory. I installed Windows XP in another bay but could find no drivers for it. So I then installed Windows 7 32 bit in the fourth bay and eventually found some drivers that worked, and now it is running okay. Very many thanks for pointing me to the issue being related to the drivers.
  3. thobson

    Cannot create 3D device

    I am trying to install the original OFP disks on a newish computer. When I try to run the game I get the message 'Cannot create 3D device' . This happens for both Windows 7 32 bit and Windows XP. Is there a fix for this? Many thanks
  4. thobson

    Cannot create 3D device

    During the installation I am told I have DirectX 9 installed and am given the option to install DirectX 8.1 (I think) which I decline.
  5. thobson

    A blast from the past

    Some years ago I wrote a mission for OFP called Abandoned Armies that proved quite popular. Time moved on and I thought it had been forgotten about, but then recently someone emailed me about it asking for the design notes/spoiler/walkthrough document that I wrote explaining how it all worked. They wanted to play it again and it seems like the link to the document I put up many years ago is now broken. Would it be possible to put that document here for the purposes of historical record and just in case anyone else wants to play the mission again? I find it amazing, and gratifying, that someone is still playing this mission. Many thanks THobson
  6. I am trying to depbo an OFP mission from over 10 years ago. The depbo programs I can find now seem to work with ArmA but are not compatible with the original OFP. Does anyone have in an old backup somewhere a depbo program from 10+ years ago. I know they worked then. Many thanks
  7. thobson

    Old Old Depbo Program

    Thank you for the appreciation and your accurate assessment of my playing skills (now). No object id's? That would make the mission completely impossible to build. How do you turn off specific street lights, empty specific fuel stations, destroy vast numbers of houses, fences and trees, not to mention locating units and waypoints in relation to objects on the island. The mission makes so much use of object id's that it had to be played on the original OFP map, a slight edit would throw everything out which was irritating since one of the road signs at La trinity was incorrect and I wanted to change it but that would mean the mission could only be played on my map. Apologies for maligning your depbo utilities, as I said, operator error. I must have been using someone else's program that I had previously down loaded. I'll send you an email.
  8. thobson

    Old Old Depbo Program

    @zulu1 I am indeed wanting to depbo original CWC files. Thank you for the links I will check them all out. Much appreciated,
  9. thobson

    Old Old Depbo Program

    @mikero Thank you mate. I didn't realise you were still around here. I hope you are well. I am struggling with time at the moment so it may be 'operator error' on my part :rolleyes: . I will be in touch via email. It was really weird recently getting an email from someone who as an infant watched a relative play the mission and now 11 years later is playing it himself. It brought back a lot of memories. He would have been a good beta tester. He did something neither I nor any of the other testers managed to do, he got the second set of civis killed and got a message to say they were okay! Anyway the immediate problem has gone away. I searched deep into my backups and found the pre-pbo files so all is well there, though I still want to de-pbo the stock OFP music. This renewed interest has made me want to play the mission again but when I try I can't even get to the first cutscene. Age I guess. This is a great disappointment to my 10 yr old grandson who wants to hear is mum and dad in the mission. All the best. TH
  10. thobson

    Old Old Depbo Program

    Thanks. Eliteness creates files that contain gibberish so I assume it is not backwards compatible. ExtractPBO I can't get to work. I will contact mikero, I know him well. Many thanks once again.
  11. Many thanks. I feel happy that the document will now be preserved fro the historical record. I know of one person who has just tarted to play the mission but I doubt there will be (m)any others.
  12. Please refer to posts 1 & 11 if you are puzzled by these recent posts. All the best
  13. Appendix 2 – Statistics Number of units (a) Number of Groups North (East) 290 to 320 (b) 36 South (West) 290 to 320 (b) 44 © Resistance 30 8 Civilians 25 9 Notes: (a) This is the number of living two legged units. The crew of a vehicle are all counted individually but the vehicle itself is not counted. Dead units are not included. (b) The number of soldiers in most of the infantry groups is random and so the total number of enemy can be different each time the mission is played. The range shown is the range I experienced during testing, theoretically it is possible that .the numbers will be outside this range. © The larger number of groups in the Southern army is as a result having several individuals and small groups of soldier for Tatyana’s scene at Vigny, and the roadblock and garrison at Le Port and the towns south of Chapoi. The average size of the northern groups has been increased to compensate for this.. Vehicle count North South Empty Hind 1 1 0 Cobra 1 1 0 Abrams 2 3 1 T80 3 3 1 T72 4 3 0 Bradley 2 1 2 BMP2 1 2 0 Vulcan 5 5 2 M2 Jeep 4 4 4 Jeep/UAZ 0 0 5 Police Jeep 0 0 1 5t and Ural Repair truck 1 1 5 5t and Ural Fuel truck 1 1 4 5t and Ural Ammo truck 2 2 2 5t and Ural truck 2 2 5 Cars and motorcycles 0 0 5 M2 Static machine gun 9 8 4 Civilian Truck 0 0 1 Boat 0 0 1 The above includes the damaged Repair truck at La Trinite, but excludes Police Jeep at Sainte Marie that starts the mission destroyed. Music capability is provided in all vehicles except for: - Police Jeep - Motorcycle - Boat - M2 Static machine guns (Flashpoint treats these as vehicles) ‘Out of fuel’ and ‘Too damaged to move’ messages available for all vehicles except for: - M2 Static machine guns - Boat So – yes – if you manage to capture a chopper you can play onboard music!!
  14. Appendix 1 – Instructions for Testing the Mission For a mission of this size it is obviously necessary to be able to test parts of it independently without having to play through to the point that is to be tested. The following are a set of instructions that can be used to test individual parts of the mission. Unless you particularly want to be shot at you should change Resistance to be friendly with everyone in the mission editor. Unless you particularly want it to be dark, rainy and foggy you should set _setEnvironment = false in Init.sqs Some of the instructions below require a radio trigger to be used. Only use Radio Charlie to Radio Golf. All the other radio slots are used by the mission. For many of the cut scenes you may wish to place a dead soldier near the player so you can pick up a weapon before triggering the scene. Cadet Mode: Just start the mission (not a saved game) when in Cadet mode. Anything in Vigny at the start of the mission: Move the player into Vigny in the mission editor and wait 30 seconds after the start of the mission before doing anything. Try shooting Tatyana and also inspecting the three dead bodies for example. First Mountain Lodge cutscene: Put the player outside the trigger area (Ed38). Put a trigger on the map that does the following a few seconds after the start of the mission: Vigny_CutScene = true Wait 30 seconds after the start of the mission before entering the cutscene trigger area. You might want to put an empty vehicle nearby to test arriving in a vehicle. Note that because Tatyana will still be alive a couple of the shots in the scene will seem odd. You will know them when you see them. This is a good location to have a dead soldier nearby so you can pick up a rifle before starting the cutscene. First civilian cutscene: Put the player outside the trigger area (Dd46). Put a trigger on the map that does the following a few seconds after the start of the mission: Civil_radio_message = true Wait 30 seconds after the start of the mission before entering the cutscene trigger area. You may wish to place a jeep and a truck nearby to see what happens if you get in a large and a small vehicle before and after the scene. Second Mountain Lodge cutscene: Put the player outside the trigger area of the first Civilian hut (Dd46). Put a trigger on the map that does the following a few seconds after the start of the mission: Civil_radio_message = true; Mountain_CutScene = true; {[_x] join Alexi;_x setPos getPos Alexi} forEach [Ruslan,Karl,Erik,Irena] Put an empty truck on the map about 200m from the mountain lodge and call it TestTruck. In Scene_Civi1.sqs remove the semicolons shown below in red from the code in the following lines: ;================== Testing ====================== ;{unassignVehicle _x} forEach units group Alexi ;{_x setPos [(getPos testTruck select 0)-10,getPos testTruck select 1,0]} forEach (units group Yuri) + (units group Alexi) ;=================End Testing =============== Wait 30 seconds after the start of the mission, then activate the First civilian cutscene. At the end of that scene you will be transported to near the TestTruck,. Get in and drive it to the mountain lodge. Second civilian cutscene: Put the player outside the trigger area (Fd35). Put a trigger on the map that does the following a few seconds after the start of the mission: YuriJoined = true Wait 30 seconds after the start of the mission before entering the cutscene trigger area. Note that the dialogue will be different if you have also set Truce = false Houdan (Sergei) cutscene: Put a trigger on the map that does the following a few seconds after the start of the mission (just copy and paste the whole lot into the activation field of the trigger): YuriJoined = true; Sergei setDir 273; Sergei setPos [7147.74,6052.06,0]; Sergei doWatch [(getPos Sergei select 0) + sin(getDir Sergei),(getPos Sergei select 1) + cos(getDir Sergei),0]; whx = 7146;why = 6050.5;whz = 0.1; wH1 = "weaponHolder" createVehicle [whx,why,whz]; wH1 addMagazineCargo ["M16", 2]; wH1 addWeaponCargo ["M16", 1]; wH1 setPos [whx,why,whz]; wH1 setDir 240; wH2 = "weaponHolder" createVehicle [whx,why,whz]; wH2 addMagazineCargo ["HandGrenade", 2]; wH2 setPos [whx+1.7,why+1.4,whz]; wH2 setDir 45 Wait 30 seconds after the start of the mission before entering the trigger area. Note that the dialogue will be different if you have also set: Truce = false and/or LaTvisited = true Dourdan Woman Scene 1: Wait 30 seconds after the start of the mission before entering the building. Dourdan Woman Scene 2: Put a trigger on the map that does the following a few seconds after the start of the mission: DoneFirstMsg set [7,true] Note that the dialogue will be different if you have also set: Sergei setDammage 0.6 or Sergei setDammage 1.or left him undamaged Wait 30 seconds after the start of the mission before entering the building. Dourdan Woman Scene 3: Do scene 2 and then re-enter the loft. Dourdan Woman Scene 4: Put a trigger on the map that does the following a few seconds after the start of the mission: LarcheDone = true Wait 30 seconds after the start of the mission before entering the building. Also try re-entering the loft after seeing scene 4 Le Port Concentration camp Scene 1: Put a trigger on the map that does the following a few seconds after the start of the mission: Mountain_CutScene = true Wait 30 seconds after the start of the mission before entering the cutscene trigger area. Le Port Concentration camp Scene 2: Put a trigger on the map that does the following a few seconds after the start of the mission: Mountain_CutScene = true; PavelJoined = true Wait 30 seconds after the start of the mission before entering the cutscene trigger area. Le Port Concentration camp Scene 3: Put a trigger on the map that does the following a few seconds after the start of the mission: Mountain_CutScene = true; PavelJoined = true; Pavel setDammage 1 Wait 30 seconds after the start of the mission before entering the cutscene trigger area. Le Port Concentration camp Scene 4: Put a trigger on the map that does the following a few seconds after the start of the mission: Mountain_CutScene = true; PavelJoined = true; Put in a radio trigger (Charlie to Golf only) that sets: Pavel setDammage 1 Wait 30 seconds after the start of the mission before entering the cutscene trigger area. When scene 2 is finished leave the trigger area, activate a radio trigger that kills Pavel and then re-enter the cutscene trigger area. End scene: Put a trigger on the map that does the following a few seconds after the start of the mission: Mountain_CutScene = true; YuriJoined = true; MarekJoined = true; PavelJoined = true; SergeiJoined = true; ViktorJoined = true; {[_x] join Alexi;_x setPos getPos Alexi} forEach [Ruslan,Karl,Erik,Irena,Yuri,Marek,Pavel,Sergei,Viktor] Put in the following radio triggers (Charlie to Golf only): Trigger C kill Stamenov: Stamenov setDammage 1 Trigger D kill south army: {_x setDammage 1} forEach west_loons – [stamenov] Trigger E kill Andropov: Andropov setDammage 1 Trigger F kill north army: {_x setDammage 1} forEach east_loons – [Andropov] Trigger G kill some of the team: {_x setDammage 1} forEach [Ruslan,Sergei,or whoever you want] Wait 30 seconds after the start of the mission before activating any of the triggers. Note that because Tatyana will still be alive one part of the scene will seem a bit odd. You will know it when you see it. Also Stamenov may seem to be in a strange place – not to worry, in the real final cutscene he will be where you killed him. The killing of Stamenov: Put a trigger on the map that does the following a few seconds after the start of the mission: Mountain_CutScene = true Wait 30 seconds after the start of the mission before entering Stamenov’s HQ. Changing a flag: Put a trigger on the map that does the following a few seconds after the start of the mission: Mountain_CutScene = true; {[_x] join Alexi;_x setPos getPos Alexi} forEach [Ruslan,Karl,Erik,Irena,Yuri,Marek,Pavel,Sergei,Viktor] Put Alexi in one of the border towns and place a trigger near him with radius 500 that does the following 30 seconds after the start of the mission: {_x setDammage 1} forEach thislist Note that for the southern towns the condition of the trigger should be West Present, for the northern towns it should be East Present. Then either wait a few minutes or use a radio trigger to run the following: [] exec “CheckFlag.sqs†You may wish to put some east soldiers in a southern town (after the occupiers are dead of course) or west soldiers in a northern town, and just watch them change the flag. Any voiceover at an atrocity or in Chapoi: Put a trigger on the map that does the following a few seconds after the start of the mission: Mountain_CutScene = true (note the above trigger is only needed for testing within Chapoi) Wait 2 minutes after the start of the mission before going near the location of the voiceover. Voiceover at the house in Larche: Put a trigger on the map that does the following a few seconds after the start of the mission: Dourdan_CutScene = true Wait 30 seconds after the start of the mission before entering the trigger area. Listen to the sound of the electricity generators: Put a trigger on the map that does the following a few seconds after the start of the mission: Mountain_CutScene = true Wait 2 minutes after the start of the mission. Note the building used for the generators are: 14287 and 35903 Vehicles: Play music/out of fuel message/damaged message: Wait 30 seconds after the start of the mission before getting into the vehicle. Try it with a vehicle that has no fuel or is badly damaged. Also try a vehicle that is fine but keep driving it into a wall until it is too damaged to move, then repair it again Reorganising the team: Put a trigger on the map that does the following a few seconds after the start of the mission: Mountain_CutScene = true; YuriJoined = true; MarekJoined = true; PavelJoined = true; SergeiJoined = true; ViktorJoined = true; {[_x] join Alexi;_x setPos getPos Alexi} forEach [Ruslan,Karl,Erik,Irena,Yuri,Marek,Pavel,Sergei,Viktor]; 1 setRadioMsg "Reorganise team" Wait 30 seconds after the start of the mission before activating radio 1. Note that the messages you get will depend on whether: Truce = true or false allDeadW = true or false allDeadE = true or false endGameW = true or false endGameE = true or false YuriJoined = true or false MarekJoined = true or false SergeiJoined = true or false Stamenov is alive or dead Andropov is alive or dead Ruslan is alive or dead Erik is alive or dead Irena is alive or dead Any of your team has an AT rocket, or the team in total has > 3 LAW or RPGs when you reorganise for the first time. Sergei has told you about the woman in Dourdan in a previous reorganisation- not the current one. Taking Ruslan to Vigny: Put a radio trigger on the map (Charlie to Golf only) that does the following: [Ruslan] join Alexi Ruslan setPos getPos Alexi Move the player into Vigny and wait 30 seconds after the start of the mission then enter the house and trigger the Tatyana cutscene. Once Tatyana has been killed move about 300m out of Vigny and use the radio trigger to get Ruslan to join you and move to your location. Make sure more than 2 minutes have passed since the start of the mission, then take Ruslan into Vigny. Note you must have been through the cutscene with Tatyana and she must be dead for this to work. Vehicles being captured by the soldiers at La Trinite: Place a empty vehicle near La Trinite. Put a radio trigger on the map (Charlie to Golf only) that does the following: [west] exec "CaptureVehicles.sqs" or alternatively: [east] exec "CaptureVehicles.sqs" Put the player outside the town where he would be if hiding from soldiers – but put him somewhere where you can see one of the wire barricades on the main road at the exit to the town. Wait 30 seconds after the start of the mission and then activate the radio trigger. Or just wait until a convoy arrives. This will work for any vehicle – even some that are not on the mission. For some reason an M113 ambulance and a V80 chopper proved more difficult than other vehicles. Try it with a chopper or a truck for example, make sure you are not in the vehicle when you activate the trigger but then get in the back of the vehicle as the crew are getting in just to see where the vehicles go. If the vehicle is placed in the town near the huts then it is not always possible for the ai driver to get out of town successfully. To help with this the script checks to see if the vehicle is there and if the player is far enough away that they will not be able to see then the script will setPos the vehicle on to the main road in the town facing in the correct direction (facing north for capture by east and facing south for capture by west). Note that the distance from La Trinite that empty vehicles will be captured depends on the levels of Rain and Fog. This is to simulate the effect of reduced visibility these cause. Peeping Civilians: Probably the best way to test this is to be one of the civilians. Find the group of women civilians located at Hg53 and make one of them the player. Then run the mission and just wait. There will be a longer wait at the start as other things in the mission initialise, then it will get into a pattern. Alternatively give the player a sniper rifle and put him on the hills overlooking Larche. Then just watch and wait – but it could take a long time.
  15. 35. Driving over soldiers: There is a feature of OFP that allows the player sometimes to get away with killing soldiers by driving over them without the soldiers reacting to the player and killing him. There are several factors that seem to impact on this – civilian vehicles are a particular problem, as is low visibility say because it is night time. I have addressed this problem by having a script running the whole time the player is in a vehicle. This script will continually check for the presence of nearby soldiers and will reveal the player to them. It doesn’t always result in the player being shot at, but it does often enough to discourage players from doing it. 36. Avoiding conflicting messages: The player has a lot of freedom to do things in a sequence that they decide, as a result I cannot predict when each of the possible cutscenes will be triggered. In addition there are many voice messages in the mission that will occur under certain circumstances. I also cannot predict when these will occur either. As a result it could be possible for some voice messages to overlap, or to occur during a cutscene. This would produce a clumsy result. To avoid this I have a global variable called okForMsg that is set to true in init.sqs and the code for most cutscenes and voice messages start with: @okForMsg okForMsg = false and end with: okForMsg = true There are some messages that must happen irrespective of what else is going on, the voice of the woman pleading not to be shot by Stamenov is one of these. In these cases I do not check the value of okForMsg. 37. De-Bugging and Testing: The mission starts in the early dawn, it is dark, raining and it is foggy, 4x speed is not allowed and certain cutscenes etc are not available until certain other things have happened. So how did I test a mission in this state? Well the answer is I didn’t. If you look in the mission editor you will see the weather set to sunny, there is no fog and the time is midday. If you look in init.sqs the first lines of code are: DeBug = false _setEnvironment = true These are important variables governing the state of the mission. If _ setEnvironment is set to false then the weather, fog level and time of day will be left at the setting given in the mission editor giving excellent visibility. If DeBug is set to true then many things happen. Hint and sideChat diagnostic messages are turned on, 4x is allowed, certain scripts are disabled and a unit position monitoring script is turned on. This unit position monitoring script will display the location of all key units on the map and update the position every couple of seconds. In the release version of the mission this script will still run if DeBug = true but the location of the units will not be displayed because I have deleted the relevant markers to help avoid the large savegame bug. To turn this feature back on you will need to create some markers in the mission editor. Look in showPos.sqs to see the names of the markers required. I used red for ‘e’ markers and green for ‘w’ markers. Convoy vehicle are denoted by ‘c’ and patrol jeeps by ‘p’. If you wish to test any of the things described in this document in the mission editor then please be aware that: - the mission takes a bit of time to initialise. There are a lot of scripts running that initialise things in the first few seconds of the mission, for example the content of ammo crates and the state of health of some armour units. I delay some of these initialisation scripts to spread out the demand on the computer at the start pf the mission. I also delay the start of the main loop in ‘Housekeeping.sqs’ by nearly 2 minutes at the start of the mission. As it is Housekeeping.sqs that moves the triggers to give the player most of the voiceovers you would need to wait at least this long before you could get the voiceovers in a reliable way. - certain things can only happen in a particular sequence and so what you wish to test may not be possible without making other changes. An example of this is meeting Sergei. If the player goes to Houdan before the second mountain lodge cutscene when the player is told about the need to search Houdan then Sergei and his weapons will not be there (this is fine from a plot point of view – he has just gone for a walk or to visit the woman in Dourdan). See the Appendix 1 for detailed instructions on how to test most things in the mission. 38. Other stuff: Other stuff that might have been missed: - One of the guards in the house in Vigny is sitting down on the red recliner chair with his rifle on the floor beside him. If he is killed in that position he will die realistically. If one of his mates spot the enemy (you), or is killed then he will stand up, bend down and pick up his rifle then go to COMBAT. Only the most observant player will notice this. - At the end of the cutscene with Tatyana the location of the mountain lodge appears on the map. This should not be a surprise. Alexi is a family member and if you look at the photograph of Nikolai in the briefing you will see that it was taken at the lodge. Alexi is family, knows about the place. - When reorganising the team Ruslan tells you that he does not want to go to Vigny until the island is clear of soldiers and he can bring Tatyana home in peace. If you take Ruslan too close to Vigny he will object (you will get a voiceover) and will then move off away from the town. - If a player gets into a vehicle that is too damaged to move, or has no fuel, or if he is in the vehicle when it is damaged sufficiently that it cannot move or it runs out of fuel while the player is in it there will be an appropriate voiceover. There are two possible voiceovers for ‘too damaged to move’ and two for ‘out of fuel’. The voiceover used is selected at random, because there are only two voiceovers each there may be some repetition, but it is unpredictable. - You will get only one message for each vehicle for each time it is too damaged to move or it runs out of fuel. If you repair or refuel it and then later damage it again or run out of fuel again you will again get an appropriate message. This can go on indefinitely. In other words repeatedly getting into a vehicle that is damaged or out fuel will not result in irritation from messages being repeated, but if it is subsequently fixed then the messages will come back when relevant. - The mission is intended to be played in Veteran mode. If the player starts the mission in Cadet mode they will receive a message recommending them to change their settings. - For all the cutscenes except two Alexi has his NV Goggles removed if he has them. The two exceptions are the scene with the woman in the attic in Dourdan and the scene at the concentration camp at Le Port. There is no source of light for either of these so if it is dark enough for Alexi to wear NVGs when he gets there he will certainly need them on to see the cut scene. - Some cutscenes involve the death of one or more units (three soldiers being shot in the intro and Tatyana being killed at Vigny). Rather that use setDammage 1 I have camcreated a bullet within their body to make the whole thing look more realistic. - In the end scene looking down on the mountain lodge – the civilians that were rescued in the early part of the game run from the lodge ready to start their new life. - There are several mixed armour/infantry groups. These groups comprise a main battle tank (Abrams or T80) and APC (BMP or Bradley) and a squad of six infantry. The infantry start off in the APC, but will automatically dismount when close to the enemy, and then remount again if the group sets off on a long journey. This technique I obtained from Macguba’s Un-Impossible mission. - The first message you get from each of your team when you reorganise them is predetermined. After that the messages are selected randomly from a list of available messages. These available messages change throughout the mission and can depend on certain events having happened – or not happened. - The radio message you get while at the mountain lodge can only be got by going into the ruin and activating the Turn on radio action. However if before listening to the radio the player goes too far from the lodge then one of his team will alert him to the message on the radio. - All the streetlights on the island have been turned off - When the Southern convoy is completely disabled a road block will be erected just north of Dourdan using the wire and fencing that is lying at the side of the road. - All the fuel stations other than those guarded by soldiers, have had their fuel removed. - In the final scene there is some background music while you are shown your fallen comrades. There are several suitable tracks. The track used is selected on the basis of how long the music is and how long it needs to play for. So the track chosen can be different depending on how many casualties you have had in your team. - Getting enough illumination on the graves of Uncle Nikolai and his friends in the mountain cut scene was a problem. To solve it I have an unlit fire nearby, the fire is lit just before that part of the scene and then it is deleted as soon as that part is finished. - Did you visit Sainte Marie? Did you hear the music drifting from a music system left on by one of the inhabitants when they were hauled away by Stamenov’s soldiers? This is turned off if Reduced Features is selected by the player at the star of the mission. Even when not turned off it sometimes is not there. - Were you curious about the road block on the road leading to Le Port? If you visit Le Port you will find a concentration camp and a cutscene - Did you visit the woman in Dourdan? Getting a cutscene to trigger only when the player is on the top floor of a building is not a trivial task. Player getPos select 2 gives the distance the player is above the floor he is currently on! I spent ages getting this so the cutscene would trigger when the player got to the top of the ladder – only to find that due to a bug in FlashPoint after saving and restoring the mission the action to climb the ladder is not available to the player! As a result of this I now start the cutscene when the player reaches the bottom of the ladder, and at the end of the scene he is deposited back on the same floor. - You may have noticed some bottles on the table in Tatyana’s house in Vigny. If the table is destroyed the bottles would normally stay where they are suspended in space. I have attached a killed Event Handler to the table to move the bottles onto the floor to give a more realistic effect. I have done something similar to the medical cabinet that can be found in the northern hut at La Trinite. - I presume you found the AV and AP tripwires and detonators at La Trinite, the map of Larche from the woman in Dourdan, and that you experienced the dialog for reorganising your team. If not then you must have missed half of the mission. THobson trevor_hobson@hotmail.com
  16. 31. Save Games: The player starts with 42 savegames and does not get any more. The reason for this is to remove the hint messages that would spoil the atmosphere of the mission if savegames were to be added during the mission. I selected 42 because that is the answer to Life the Universe and Everything. (See: http://en.wikipedia.org/wiki/The_Answer_to_Life_the_Universe_and_Everything#The_Ultimate_Answer ) All my calculations of the number of savegames came out close to 42 so I assumed the difference between 42 and the number I was calculating was due to my calculating error. 32. Visiting the locations out of sequence: There are two groups of civilians that the player is told about in the early stage of the mission. He then visits them to complete his objectives. It is important that the story flows that way, so if the player were to visit these locations before he has been told about them it would create a significant continuity problem in the cutscenes. I did not wish to write cutscenes for every unlikely eventuality so instead, if the player approaches either of these locations before being told about them environment sounds of M16 and AK74 firing will begin at several locations around him and few (random) seconds later the player will hear the sound of a bullet hitting a body (chosen at random) and he will then die. To make sure of his death I create bullet inside his body as well as doing a setDammage 1. The mission is large enough without adding cut scenes to deal with aberrant players. A similar thing happens if either of the enemy bases or the concentration camp at Le Port are visited before the player goes to the mountain lodge. This is most unlikely and so this solution is unlikely to impact any but the most unusual player. This was achieved using one set of triggers that are moved about depending on which of these no-go areas the player is closest to. These triggers are deleted when the first group of civilians arrives at the mountain lodge, from this point on there are no no-go areas. The woman at Dourdan can be visited at any time and the dialogue will be appropriate. If the player goes to Houdan before he has been told about the place he will not find Sergei or his weapon. That is logical Sergei will be out on one of his walks – or visiting the woman at Dourdan. Visiting the house in Larche will only generate a voiceover if the player has previously been told about the significance of the house by the woman at Dourdan. 33. Different dialogue in the cutscenes: In this mission the player has a great deal of freedom to decide what to do and when to do it. As a result it has been necessary to create alternative dialogue for several of the cutscenes to deal with the various possibilities that might arise, for example: -the player has or has not done certain things before the scene (for example visited La Trinite) -certain individuals might not be alive when the scene happens (for example the woman in Dourdan asks after Sergei. The response and the subsequent conversation is different depending on whether or not Sergei is alive badly injured or uninjured at that time.) -the war has started or not This is particularly evident in the cutscene at the La Port concentration camp. When the player gets there. Le Port Concentration Camp cutscene(s) There are several options for how this scene will go, and it is possible to have more than one scene if the player visits the camp more than once. If the player arrives at the camp before he has visited the second group of civilians and collected Pavel (the medic), then Alexi and Viktor (the medic in the camp) will have a conversation and Viktor will join the team. There will be no more scenes if the player revisits the camp. If Pavel has already joined Alexi and is still alive when the player first gets to the camp then after a conversation in which Viktor explains that he and Pavel both trained together, Viktor will remain in the camp. Providing Pavel is not subsequently killed any future visits to the camp by the player will not result in a cutscene, but if Pavel is killed and the player then returns to the camp there will be another cutscene and Viktor will join the team. If Pavel has already joined Alexi, but was killed before Alexi first visits the camp then the cutscene will involve a conversation between Alexi and Viktor and Viktor will then join the team. There will be no more scenes if the player revisits the camp. So in summary: The first time the player arrives at the Le Port concentration camp without a medic in his team Viktor will join him and so the team will acquire a medic. 34. State of bodies: There are several groups of dead bodies in the mission. A simple setDammage 1 will leave them all face down. I want some variety in the state of the bodies and so wanted to have several of them face up. There are several face up switchMove positions possible, I have chosen two of them. At the start of the mission I have a script that will randomly put some of these bodies into one of the face up positions. Approximately 40% of the bodies will be face down and 30% of them face up in each of the two possible face up positions. The code to do this is: _bodies = (units group Chapoi_Officers) + (units group Hut3_civ1) + (units group Dourdan_civ1) + (units group Arudy_civ1) + (units group LaP_civ1) + (units group Chapoi_civ1) {if (43 > random 100) then {_x switchmove "CombatDeadVer2";_x setDammage 1}} forEach _bodies {if (30 > random 100) then {_x switchmove "CombatDeadVer3";_x setDammage 1}} forEach _bodies Why the 43? That line will put 43% of the units into the Ver2 position, but the next line will change 30% to the Ver3 position. The end result is: 40% in the default face down position, 30% on the Ver2 position and 30% in the Ver3 position.
  17. 28. Visiting the offshore islands: The player starts on the shore next to a boat he has just arrived in. The boat is damaged, has no weapons and has very little fuel. As this is the boat he is supposed to have just got out of I did not want to lock it to prevent the player getting back in. If I did nothing further there would be nothing to stop the player sailing off to any of the offshore islands and finding a whole range of units, civilians etc. that will be brought onto the island later in the mission. I could have created a shell to destroy the boat if the player used it but that felt a little crude. Instead, the speed of the boat is checked every few minutes and if it is moving I have a script that will create a fully armed, crewed and flying chopper and set it to target the boat. Creating a crewed chopper in the air was not a trivial task, but I wanted to be able to create it over the sea. The chopper will either be a Hind or a Cobra, selected at random. I have also set the fuel level of the boat to be very low so as to discourage the player from using it. Apart from finding his uncle he would also need to find some fuel to return to his family. 29. Messages when re-organising the team: I have provided the facility for the player to reorganise his team so that for example he can choose his number 2, put the medic I the middle and the civis on the outside etc. When doing this team members will speak to the player. The messages are selected randomly from a list, but the list changes dynamically during the mission as progress is made and individuals are killed, or join the squad. Access to the woman at Dourdan is only available to the player by being told about her when reorganising the team. Sergei is the one with the information, but other members of the team will report to you what he told them about her during subsequent conversations. The background music chosen while all this is happening is different from the list used for driving to. 30. Skill levels: The skill levels of the team reflect the fact that, at the start, several of them are untrained civilians and others are trained fighters. However during the mission the skill levels of the team members increases as a result of certain events. Skill Levels are: < 0.25 Novice >= 0.25 and <= 0.45 Rookie > 0.45 and <= 0.65 Recruit > 0.65 and <= 0.85 Veteran > 0.85 Expert The initial levels are: Alexi 0.10(as the player this is automatically raised to 1.0) Karl 0.66 Ruslan 0.06 Erik 0.04 Irena 0.04 Yuri 0.66 Marek 0.40 Pavel 0.30 Sergei 0.50 Viktor 0.80 The skill level of all current team members increases when: - 1st civilians arrive at lodge 0.02 - 2nd civilians arrive at lodge 0.02 - north and south start fighting 0.03 - Sergei joins the team 0.02 - speak to the woman at Dourdan 0.02 - visit the house in Larche 0.03 - visit the camp at Le Port 0.10 - raise the first civilian flag 0.03 - a leader (Stamenov or Andropov) is killed 0.30 - one side is destroyed 0.30 - each atrocity visited 0.02 - observe the escape of prisoners from Chapoi 0.10 - every 45 minutes 0.015 (equivalent to 0.02 per hour) - team rating increases by 3000 0.10 (equivalent to killing 15 normal loons) Note that the above skill level increases are multiplied by: 0.5 for Ruslan 0.6 for Erik 1.5 for Irena 0.5 for Pavel 0.8 for Yuri 0.7 for Marek So not all the team members will progress at the same rate. Irena is a quick learner, and Ruslan is distracted by what happened to his wife. The team rating is calculated as the sum of the ratings of all members of the team. The mechanics are slightly complicated as I did not want the team to suffer significantly if a highly rated member was killed. For this reason I have used the increase in the average rating (total rating /number of team members) between checks to determine if skill levels should increase. It also seems there are some inconsistencies in rating kills. Kill a normal soldier and the rating of the killer increases by 200. Killing a West officer is worth 500 but killing an East officer is worth 1000. Killing vehicles will also give a rating increase to the killer over and above that resulting from killing the crew. Killing the enemy is one of the quickest ways to increase the skill level of the team, but be aware that kills made by driving over them or by use of the custom AV and AP mines do not count. There is a time element to the increase in skill level of each member of the team representing the effect of mutual learning from each other. Increased skill levels for raising the Malden flag and for visiting the atrocities are meant to represent the effect of improved morale (flag), or increased anger and determination (atrocities)
  18. 24. Re-boarding the convoy at La Trinite: Most of the time the convoy guards successfully re-board their vehicles at La Trinite, but just occasionally they do not. I have a script that detects when this happens and physically puts them into their truck. In all my play testing and in all the beta testing this has never caused a problem with the player noticing it. 25. Another strange bug: There appears to be something strange happening with the GetIn/GetOut; Load/Transport Unload waypoints at La Trinite. They worked perfectly during months of beta testing, then they failed with v1.30. The type of failure was strange. The convoys would run fine for a time but then on the fourth of fifth visit of the southern convoy to La Trinite one of the infantry groups would not get out – even though they had done so on previous trips to La Trinite. I solved this problem by replacing all the GetIn/GetOut and Load/Transport Unload waypoints with Move waypoints, and using scripts to cause the infantry to get in and out of their vehicles. 26. Music players in vehicles: Most vehicles have a music system installed. When the player gets in any vehicle with a music system he will be given the option to turn the music on. I have selected several OFP tracks that I felt were suitable for driving plus a track from the same piece of music that was used in the intro. These tracks are in a set sequence, but each time the system is turned on it will select a track at random to play, after completing one track the next in the list is played. When the last track on the list is finished the music will go back to the first track on the list, looping for as long as the system is turned on. I found this to be better than selecting a random track each time as that resulted in too much repetition even when I prevent the same track from being played on consecutive occasions. The player is given an action to turn the music off while in the vehicle. The music will also be turned off when the player exits the vehicle or the vehicle is so badly damaged it cannot move. The thing that took most time with this was getting the volumes correct for different vehicles. The sound of the engine differs widely for the vehicles available in Flashpoint and so that the music does not swamp, or be swamped by, the noise of the engine it is necessary for the script to detect which vehicle the player is in and set the volume of the music at an appropriate level. A vehicle that is too damaged to move will not have any music capability. Music capability will be restored when the vehicle is repaired. The only vehicles in the mission that do not have music capability are police jeeps, motorcycles and boats. 27. Environmental sounds: I have tried to enhance the atmosphere of the mission by making use of some environmental sounds. There are several locations where, under certain circumstances (usually no enemies present), the player may hear the sound of birds or of a dog barking. The bird song used is chosen at random so as not to be predictable. During the hours of darkness an owl is used instead of any of the other birds. During the day there will be no birds if it is raining. I originally tried to do this using sound objects, but there are some problems with this: 1) it is not possible to create or move a sound object during the mission; 2) It is not possible to turn the sound off if it is coming from a sound object; 3) after a time a sound object will stop making its sound. As a result I have had to use triggers that are moved to a random position near the player, taking care to ensure the trigger was placed at ground level (the default is for FlashPoint to place a trigger that it has moved at sea level and of course that could result in the sounds not being heard because the source of the sound would be too far away). I have also created the sound of electricity generators. One is in a building in the airbase and one in a building in Chapoi. If the building is badly damaged the generator will stop. This is implemented using only one trigger that is moved to the correct location depending on where the player is. Crawling round Chapoi in the dark dogging Black Ops with that nose in the background I find quite spooky! In some circumstances the player may come across the sounds of a pack of wolves. They mainly only occur when visibility is limited. Occurrence of the wolves is very unpredictable as follows: - the wolves will usually only occur when there is poor visibility either because it is dark, or quite foggy or it is raining quite hard, or at high altitudes. There is a small probability that they will occur in times of good visibility just to make them even more unpredictable. - they do not occur below 100 metres above sea level. - the number of wolves in each pack is a random number depending on how foggy it is (more fog can mean more wolves), how rainy it is (more rain can mean more wolves) and whether or not it is night time (more wolves may be about in the night). - the distance of the wolves from the player is also a random number where the maximum value allowed is reduced in the dark hours of the night and also as fog and rain intensity increase. In summary, the worse the visibility the more likely the player is to hear a wolf pack, the more wolves there are likely to be in the pack and the closer the individual wolves are likely to be to the player. Many players will complete the mission before it gets dark, but if they don’t they could be in for an interesting experience, especially if they venture to high altitudes in bad weather during the night. I can vouch for this personally, my playing style is quite slow and I often play through to dawn the next day. The sound of wolves used is a mixture of the sound files that come with the game and actual recordings of real wolves. One of the sounds is of a wolf growling. This occurs about 1% of the time. Even though I made the mission this sound occurring close to me while playing he mission still causes me to jump. To understand the wolves more fully examine the following scripts in the sequence: 1. WolfSound.sqs: This creates the sound of a single wolf. This script is called from WolfPack.sqs; 2. WolfPack.sqs: This creates individual wolves to make up the wolf pack. This script is called from CheckForWolves.sqs; 3. CheckForWolves.sqs: Under certain conditions this creates a wolf pack. This script is called every 5 minutes from: Housekeeping.sqs All of these sounds are turned off if Reduced Environmental effects is selected.
  19. 22. Convoys and Patrols: Each side has one patrol consisting of four M2 jeeps and one convoy consisting of an APC (Bradley or BMP), a 5t truck, an ammo ural, a ural (used by one of the infantry groups that travel with the convoy) and a Vulcan. Each of the jeep patrols follow a circular route. The routes are: South patrol: East from Chapoi, then north to Dourdan, west to La Passagne, then south and east back to Chapoi. North patrol: north and west from the fuel station north west of the airbase to the most north westerly T junction, south and west to Goisse, south and east to a T junction, north to another T junction, east to Larche and hence on to Saint Louis and then back to the fuel station. The convoys run from their base (Chapoi or the airbase) to La Trinite and back. The jeep patrols are refuelled and repaired when they get back to their fuel station base (kill the fuel station and there will be no refuelling). The convoys are refuelled and repaired when they are back at their own base with its own fuel station. Again, kill the fuel station and the refuelling will not happen. All simple stuff, but getting it to work reliably took and age. The problems that needed to be dealt with are: Convoys meeting at La Trinite: Clearly the south convoy has a much longer journey than the north convoy so if it were left to run unconstrained the two convoys would eventually arrive at La Trinite at about the same time and a war would start. This is dealt with by only allowing one convoy at a time to be en-route to La Trinite. So as soon as the south convoy leaves Chapoi the north convoy is prevented from leaving the airbase. The north convoy will stay at the airbase until either the south convoy leaves La Trinite heading south or the south convoy is destroyed. Similarly the south convoy will stay at Chapoi until the north convoy either leaves La Trinite or is destroyed. In setting this all up care was taken not to have a situation where by random chance both convoys arrive at their checkpoint simultaneously, are told they can go and then each set the flag stopping the other one a millisecond too late for it to be effective. I also had to avoid the problem of both waiting for the other and so getting stuck. This was done as follows: - the north convoy uses two waypoints for this. At the first it checks to see if it is safe to proceed and if it is it sets a flag that will prevent the south convoy from leaving its base, at the second waypoint it checks again to see if it is safe to proceed. - the south convoy uses only one waypoint for this. At that waypoint it checks to see if it is safe to proceed and if it is it sets the flag to stop the north convoy. If both convoys use the two waypoint method it is possible for both convoys to get stuck at their second waypoint waiting for the other convoy. If both convoys use the one waypoint method it is just possible that each will arrive at the waypoint at exactly the same time, find that it is safe to proceed and set the flag to stop the other too late for it to have any effect. The selected solution is the only one that will work reliably. Vehicles sharing the same piece of road: The routes of the jeep patrols use some of the same road as the convoys. In the north the road from Saint Louis east to the T junction by the airbase is used by both the jeep patrol and the convoy. In the south the road shared is from Chapoi to Dourdan. Many times the two groups of vehicles can successfully negotiate their way past each other, but often they get into difficulties. As I want this island to run forever if left alone even an occasional problem is not acceptable. To make this work each group of vehicles has some waypoints where they check to see if it is safe to proceed and where they set flags telling the other group that it is not safe for them. Virtual traffic lights in other words. Obviously care was taken to avoid any possibility that both groups would end up waiting for the other or that both groups would simultaneously find that it was safe for them to go when it wasn’t. This introduces surprisingly little delay into the journeys of the vehicles. In the north the stretch of road involved is very short. In the south the jeep patrol can usually do two circuits for every one of the convoy. The pattern that usually develops is: - the south jeep patrol is waiting at the fuel station west of Chapoi, the convoy arrives at Chapoi and gets off the road so releasing the patrol - the patrol is faster than the convoy so shortly after passing Chapoi the patrol releases the convoy – which then sets off for La Trinite. - the patrol is sufficiently fast that it will get back to its fuel station just as the convoy arrives at La Trinite. - the patrol then continues on its second circuit without delay and will release the convoy to pass through Dourdan once it has cleared the town. - the patrol gets back to the fuel station and has a short wait until the convoy reaches Chapoi, after which the whole cycle is repeated. Non-lead vehicles getting stuck: The OFP route finding routine, especially for vehicles that are close behind another vehicle can occasionally cause the non-lead vehicles to run off the road, get stuck behind a tree or two vehicles can get stuck both facing each other. Quite often they will eventually sort themselves out, but sometimes they cannot. In a mission that lasts a few minutes this would hardly ever occur but in this mission these vehicles need to keep running for hours if necessary. To solve this I have scripts that will check each of the convoys and each of the patrols at approximately 5 minute intervals. The scripts check the distance between each vehicle and the lead vehicle. If the distance exceeds a set amount then the vehicle is setPosed an appropriate distance behind the lead. This is not done if: - the vehicle is damaged such that it cannot move - the vehicle has no driver or has a driver of a different side (clearly if the player has captured a vehicle then this script should not apply to that vehicle!) In all the beta testing this never caused a problem with the player noticing the setPos in action. Lead vehicles getting stuck: Very rarely a lead vehicle will run off the road and in its attempts to get back on to its correct route it may find itself facing one of the other vehicles in its group. In this situation neither vehicle can move and they will be completely stuck. To deal with this I have a script that checks to see if the lead vehicle has been stationary for a long period and if it has it moves it a few meters to one side, if it remains stuck it moves it twice that distance to the other side, then three times that distance to the first side and so on. Usually only the first move is necessary to clear the problem. Vehicles being damaged: Occasionally a vehicle may run off the road and hit a tree at some speed. The vehicle may have taken that corner 99 times but on the 100th it crashes. There is one particularly nasty hairpin bend west of Larche that has put many jeeps out of action. To deal with this the jeeps descend that stretch of road travelling slowly, and also the trees at the bend that cause the damage are destroyed by a setDammage 1 at the start of the mission. In addition, vehicles may simply collide with each other or some unpredictable obstruction and be damaged so much that it cannot move. To deal with this the vehicle monitoring scripts also check to see if any vehicle has been damaged such that it cannot move, and if it still has crew alive (they will have got out as soon as the vehicle became unable to move). Any such vehicle will be repaired and the crew will then get back in and continue its journey. This is to simulate running repairs being carried out by the crew. For reasons of mission design this problem had to be solved differently for the jeep patrols and the convoys All of the above resulted from many weeks of soak testing the mission. I wanted to make sure that the vehicles would keep running forever if the player did not do anything. I travelled many miles as the gunner in each of the jeep patrols and as the gunner in the Vulcan in each convoy. In de-bug mode the mission will constantly display the location of the key units in the mission on the map (a capability disabled in the released mission). I watched this for hours to see what was going on. Surprisingly the mission could run for 20+ hours without a problem and then suddenly one would occur. Eventually I got it so that I could start the mission on Sunday evening and it was all still running perfectly the next weekend. 23. Convoy guards: The convoys each carry two groups of infantry. If on its journey the convoy detects an enemy (resistance or north, for the southern convoy; resistance or south for the northern convoy) then the infantry units will disembark and attack the enemy. Once the enemy is dead or they have lost contact, the infantry will re-board the convoy and it will continue on its journey. When each convoy gets to La Trinite these groups of infantry will disembark, search the town and then re-board their vehicles. While they are in the town the contents of the ammo crates in La Trinite will be swapped with the contents of the ammo truck in the convoy.
  20. 20. All out attack - Plan of attack: In the case of one side determining that it is strong enough to mount an all out attack on the other side it will use the following plan of attack (note that ownership of a town is determined by which flag is flying there): Andropov (Northern Army): Two infantry groups and an armoured group will attack La Pessagne. Once the town has been captured one infantry group will remain in occupation and the remaining forces will move on Chapoi. Three infantry groups will attack Arudy. Once the town has been captured one group will remain in occupation and the remaining forces will move on Chapoi. Six infantry groups and an armoured group will attack Dourdan. Once captured one infantry group will remain in occupation and the remaining forces will move on Chapoi. A separate armoured group will attack Chapoi directly. If the attacking army suffers significant casualties then up to four additional infantry groups will be released one at a time from the forces at the airbase to join the attack on Chapoi. Helicopters will operate independently. A maximum is placed on the number of units attacking Chapoi so as not to generate too much lag if they all arrive there at the same time. Stamenov (Southern Army) Ignore Goisse. Stamenov is not a military genius but he is probably right, if he has enough strength to attack then Andropov must be so weak that Goisse cannot be a threat – can it? In addition the airbase is a tough nut to crack, so Stamenov will need to concentrate his forces on this task. Four infantry groups attack Larche. Once the town has been captured one group remains in occupation and the remaining forces join the attack on Saint Louis and the airbase. Seven infantry groups (plus any coming from Larche) and two armoured groups attack Saint Louis. Once the town has been captured one infantry group will remain in occupation and the remaining forces will move on the airbase. A separate armoured group will attack the airbase directly If the attacking army suffers significant casualties then up to four additional infantry groups will be released one at a time from the forces around Chapoi to join the attack on the airbase. Helicopters will operate independently. A maximum is placed on the number of units attacking Saint Louis and the airbase so as not to generate too much lag if they all arrive there at the same time. A Counter-attack If one side initiates an attack as described above and either due to some misfortune on their part or the action of the player they suffer significant losses then the conditions may become favourable for the other side to initiate its own attack. If this happens there will be a counter-attack. In practice this is highly unlikely, but the coding of the mission will allow this to happen if the correct conditions arise. Randomness Note that the Northern attack on Chapoi and the Southern attack on the airbase use several groups that are also ‘on Guard’. These groups may be distracted from their attack to deal with the player and his team should they start getting involved or to deal with other enemy units that have been detected so the whole thing is quite unpredictable. 21. Weather: The rain, overcast and fog levels are controlled constantly throughout the mission. The rain intensity is dependant on the overcast level. The overcast level and the fog level are each set every 60 seconds. For both the overcast and fog there is an initial random period at the start of the mission when the level remains constant. After this initial period the level follows a sine wave so ensuring the intensity reduces and increases smoothly throughout the mission. There is one additional piece of sophistication: If left as described above the weather at some point late in the mission could be as bad as it is at the start of the mission. In order to give the player a different experience later in the mission the maximum level of overcast and fog will reduce as the player makes progress. In fact the maximum levels of each will reduce as the size of the smallest of the opposing armies diminishes. So killing a soldier from the side that is currently the smallest will result in a small improvement in the future weather, killing a soldier from the side with the largest army will have no effect on the future weather. This is the only illogical thing that I know of in the mission, but it results in a good weather pattern. It means for instance that the player cannot leave the mission to soak for several hours so as to get better weather. Despite having random elements the weather model ensures that the fog and overcast levels are both at a minimum at about 16:15. As this is close to sunset it should be quite pretty by then. This is all controlled by: weather.sqs and fog.sqs
  21. 18. Soldiers Surrender/runaway: I have put a lot of effort into making sure that the mission does not suffer from the lost last loon problem. There is an extensive script for each side that ensures that when a side is close to defeat all the units of that side converge on its base. and when a side has lost its leader (Stamenov in the south and Andropov in the north) and is down to a small number of soldiers then remaining units of that side will drop their weapons and stop fighting. In the case of the northern army any surviving soldiers will run to the base and will surrender. In the south any soldiers that are in or near the wired compound will surrender, all the others will run away. In addition if any of the southern soldiers that are running away go close to Alexi they will stop running and surrender. Under some rare circumstances this can come together to give some very interesting results. One beta tester (Macguba) so weakened the southern army that the northern army attacked it (see ‘War trigger’ below). In fact the northern army with the player’s help did so well that it captured the southern base of Chapoi. This produced a wonderful screen shot of surrendered southern soldiers with their hand on their heads, surrounded by armed northern soldiers. 19. War trigger: Causing the north and south armies to start fighting is a useful way to get help in reducing the numbers of enemy that have to be dealt with. There are several ways to cause the war to start, mostly these involve the player getting units from each side to see each other. Examples include: - having units chase the player and the player leading them into the territory of the opposing side (this is quite difficult to do safely) - attacking the convoy of one side at a location where surviving units may come into contact with the opposite side’s convoy. In other words at La Trinite. - destroying a hut in La Trinite. When the relevant convoy arrives and discovers the damage some infantry may be dispatched to check it out, with obvious consequences when the other side’s convoy arrives. - unbalanced forces: There is also a way to cause one side to decide that it will attack the other side. If the player concentrates on damaging one side only, then the forces can become significantly out of balance and the strong side may then decide to launch an all out attack on the weak side. This check is carried out as follows: o The strength of each side is assessed. This is done by counting the number of living individuals (not vehicles) of that side and then adding a bonus for certain of the armour units that are still operational. o If the strong side outnumbers the weaker side by more than a certain ratio then the strong side will, if they know they are strong, launch an all out attack on the weaker side. o The ratio above which the strongest side will attack is determined as follows: § 1.5 § + 0.2 if the leader of the weakest side is still alive § - 0.2 if the leader of the strongest side is still alive § - 0.1 for each one of the three border towns that the weakest side has lost control of. Control is determined by which flag is flying there. § + a random number in the range 0 to 0.5 (For example: if Stamenov is dead, Andropov is alive, the civilian flag is flying at Arudy and Dourdan and the Southern army is the weakest then the trigger level for the northern army to attack is: (Strength of southern army) * (1.5 – 0.2 – 0.1 –0.1 + random 0.5) < (Strength of the northern army) o The check is repeated approximately every 5 minutes. o On its own, achieving the superiority shown above will still not be sufficient to cause the strong side to launch an all out attack. It is necessary that the strong side also has the ability to obtain the intelligence that it is sufficiently strong. This is determined as follows: § If the two sides are, or have been, fighting then each side is assumed to know the strength of the other. § If a side has a helicopter flying then it is assumed to know the strength of the other side. This is consistent with what Sergei tells Alexi in Houdan. Sergei is clearly someone who should be listened to. Note that bringing down a chopper too soon will prevent that side from launching an unprovoked attack on the other side. The player needs to take care and not just rush around blasting things. In the case of a war starting by the two sides coming into contact (not an all out attack) then most of the fighting will take place at that point of first contact as guard units from both sides get sucked into the conflict. If that happens each side will also attack the other’s main base with a single (but powerful) armoured group.
  22. 15. OFP Bug – Re-arming empty armoured units: I could hardly believe this when I first came across it. If an armoured unit has no artillery shells of a particular type, then it cannot get any more from an ammo truck. So for example if you have an Abrams that has no HEAT shells, either because they have all been fired or because of a removeMagazine command, then going to an ammo truck will not allow it to get anymore. The same is true for Sabots, but interestingly not for machine gun ammunition. As far as I can tell this problem afflicts all armoured units that fire artillery shells (ie not Shilka/Vulcan). It is as if the standard rearm at ammo truck action will only top-up rounds that it finds in the tank, but not add new rounds if none exist – even though the tank would normally have them. This gave me a problem with this mission as there are several armoured units that are in for repair in each of the two main bases. Obviously an armoured unit that is in for repair should have all of its ammunition removed. My solution to this was to write a script that is activated by a {getIn} Event Handler attached to the relevant armoured units. This script will detect when the vehicle is close to any ammo truck and will give the player the action to rearm. The script automatically detects what type of tank it is dealing with and gives it the correct ammunition. I have made it sound exactly the same as the standard OFP rearm action. The differences between my script and the standard OFP rearm action are: - The standard OFP rearm gives the player the action to: ‘Rearm at Ammo Truck’ my script gives the player the action ‘Re-arm at Ammo Truck’. The hyphen in Re-arm is deliberate so that I will know which script is active. - My script is only attached to vehicles that start the mission with no ammo - My script can only be activated by the player. 16. Sainte Marie minefield: There is a minefield at Sainte Marie. The mines are hand grenades that are detonated a random distance from the selected victim and a random distance underground so will not always be fatal. Features of the minefield are: - there are a limited number of mines in the town - the time duration between explosions is random and depends on the number of units in the town so that it will sound realistic. - only one trigger was used to make it work The intention here is to give the player the impression of a genuine mine field with mines placed randomly in the town, but to do it is such a way that only one trigger is used so keeping down the load on the CPU. 17. ‘Ear candy’ Choppers and mad women: I wanted to have choppers constantly flying overhead during the early part of the mission and I did not want to have a limitation on where they could go. In the early stages of the mission the north and south armies are not in contact and there is no fighting between the two. That does not stay the case for long if there are enemy choppers flying overhead. Even if the choppers are set to be captive and never fire they will still cause a war. This is because ground units on guard will attempt to follow an enemy chopper even if it is set to captive. With this happening it doesn’t take long before opposing groups come into contact with each other and a war starts on its own. My solution is to have the choppers in the early part of the mission (in fact until the war breaks out) crewed by civilians. The pilots are both female to help redress the gender balance elsewhere in the mission and in OFP in general. Once the war starts the civilian crew is exchanged for a military crew and the two civilian gunners are deleted. The two civilian female pilots are not deleted and will for the rest of the mission follow the chopper waypoints that are moved about randomly so there is no telling where these women will turn up. Beta testers loved them and when I removed them from one version there was a clamour to have them back. The beta testers referred to these as ‘mad women’ because of the way they would run blindly through a pitched battle. This should not detract from the logic of the story. In the early part of the mission these helicopters are observing the truce (Sergei tells you this when you meet him in Houdan). Using a civilian crew that gets changed for a military crew once fighting starts between the two sides is quite logical. Note also that once the fighting starts the choppers will each return to their own base to simulate the crew change before returning to the battle. During the mission if your team members report to you the presence of a “Chopper†then it is crewed by civilians, if they report the presence of a “Hind†or “Cobra†then it has a military crew.
  23. 12. Incomplete magazine load-out: When the resistance fighters join your team they will not have a full complement of ammunition, representing the shortage of ammunition available to them and the difficult times they have been through. Their ammunition is selected randomly just before they join your team and so could be different each time. A small percentage of LAW and RPG carriers in the mission will start the mission with only two rockets and one hand grenade instead of having the normal three rockets. This is meant to be an island where things are in short supply, but I also want each side to have plenty of ammunition to fight with. The way I dealt with this is through extensive use of {killed} Event Handlers. Almost every soldier on the island has one or more {killed} Event Handlers that remove magazines, rockets, hand grenades and satchel charges from him at the moment of death. That way the AI solders can have a full load of ammo for fighting the player and each other, but when the player searches the dead bodies it will appear to be an island that is short of ammunition. This is deliberate and makes discovering the workings of the trade La Trinite, and the capture of an ammo truck very valuable to the player. An example of one instruction that achieves this is: {if (PrimaryWeapon _x in ["M16","AK74","AK47","M60","PK","M21","SVDDragunov"]) then {_x AddEventHandler [{killed}, {_weap = primaryWeapon (_this select 0); (_this select 0) removemagazine _weap;(_this select 0) removemagazine _weap;if (25 > random 100) then {(_this select 0) removeMagazine _weap};(_this select 0) removeMagazine "HandGrenade";(_this select 0) removeMagazine "HandGrenade";(_this select 0) removeMagazine "HandGrenade";if (50 > random 100) then {(_this select 0) removeMagazine "HandGrenade"};(_this select 0) removeWeapon _weap;(_this select 0) addWeapon _weap}]}} forEach (_tempLoons + East_loons) There are other similar lines for other weapons. This can all be found in initUnits.sqs 13. Officers: Just in case you have not noticed. There are no officers in the southern army but each group in the northern army is led by an officer – some are US and some are Soviet officers. You may have found the bodies of the southern officers in Chapoi when you were there. This is all consistent with what Sergei tells the player at Houdan. 14. Prison break from Chapoi: On visiting the woman at Dourdan the player will be told about the whole population of Sainte Marie being taken away to Chapoi. At some point during the mission the civilians that are imprisoned in Chapoi will have an opportunity to escape, and they take it. It may be that when they escape there are still enemy soldiers around and if this is the case then the solders may open fire on them. Any civilians that manage to escape from Chapoi will return home to Sainte Marie, and as they are unaware of the significance of the signs around their town will end up being killed by the mine field there. This will all happen. The player may or may not see it and may or may not understand the significance if he does see it. If he remembers what the woman in Dourdan told him he should be able to work it out. At the very minimum the player should see civilian bodies scattered around Chapoi and find their empty prison. I have also inserted a voice message from Alexi about this prison break – but this will only occur if Alexi knows about any of the escapees (his knowsabout level needs to be > 0.000001 for at least one of the civilians for this to happen – I had to experiment quite a lot to get that number.). It is just sufficient to trigger the message if the player sees the escape from a distance through a sniper scope. See also Skill Levels below. This is not turned off if Reduced Environmental effects is selected. It is part of the story and is not very expensive in resources.
  24. 9. Elusive Civilian Population: I wanted to give a fleeting impression of civilians still being around in some of the towns that have not been destroyed, but only in a way that the player may just happen to see. Many players I feel sure will not see this and the ones that do might not believe their eyes. That is the effect I am trying to create. To do this, every few minutes some civilians will be setPosed to one of many buildingPos locations in a selection of buildings in some of the towns. As buildingPos are usually placed behind windows the civilians should be visible from outside the building. After a random delay the civilians are then removed – only to re-appear some minutes later at other randomly selected locations. The positions used are selected at random, but with the following restrictions: no ground floor location is selected, and no position is selected if it is close enough to the player that he might be able to get to the building before the civilians disappear again. It is meant to be the sort of thing that might surprise the player when reconnoitring the town from a distance using binoculars or a sniper scope. Only buildings in Goissy, Larche and Saint Louis are used for this. Note that I have had to work around a bug in FlashPoint that results in buildingPos locations moving a significant distance from their correct location after a save and restart. This is turned off if Reduced Environmental effects is selected. 10. Atrocities: There are several places on the map where there are individual or groups of bodies. For many of these if the player approaches them he will get a voiceover from Alexi that is meant to add to the atmosphere of the mission (see also ‘Skill levels’ below). Atrocities with voiceovers are located at: - several individual bodies in Vigny - Hut at Db50 - Bus at Dg47 - Hut at Gc39 - Barn at Fb52/53 - Truck at Fg58/59 - Piles of bodies: La Pessagne; Arudy; Dourdan and in Stamenov’s compound - Dead officers also in Stamenov’s compound In particular: remember the scene in the intro of a woman being escorted to a barn? That is the barn at Fb52/53. Each of these has a voiceover. Originally I had a separate trigger for each one, but to help reduce lag I reduced this to one trigger in total. That trigger is moved about periodically (every 30 seconds or so) depending where the player is, and when triggered it checks its location so that it will play the correct voiceover. This feature is not turned off by selecting Reduced Environmental effects as it adds a lot to the atmosphere and only requires one trigger to implement. 11. Random Weapons: When Alexi meets Sergei (the Russian soldier) at Houdan one of the many things Sergei tells him is that in the south there is no discipline and soldiers even steal each other’s weapons. To reflect this, approximately 50% (it is random) of all west soldiers in the southern army will be carrying east weapons and vice versa. This applies to M16/AK74s; sniper rifles; machine guns and rocket launchers. In addition a small proportion of soldiers in the southern army will be carrying Kozlice shotguns and also a small proportion of the southern soldiers that should be carrying AK74s will in fact be carrying AK47s. For this reason ammo trucks in the southern army will also carry Kozlice and AK47 ammo. The code used to do this for M16 and AK74 carriers is as follows: {if ("M16" in weapons _x) then {_x removeMagazines "M16";_x removeWeapon "M16";_x addMagazine "AK74";_x addMagazine "AK74";_x addMagazine "AK74";_x addMagazine "AK74";_x addweapon "AK74";_x selectWeapon (primaryWeapon _x)}} forEach _tempLoons {if (("AK74" in weapons _x) and (50 > random 100)) then {_x removeMagazines "AK74";_x removeWeapon "AK74";_x addMagazine "M16";_x addMagazine "M16";_x addMagazine "M16";_x addMagazine "M16";_x addweapon "M16";_x selectWeapon (primaryWeapon _x)}} forEach _tempLoons The above lines convert all M16 carriers to AK74 carriers and then converts 50% of all AK74 carriers to M16 carriers and so will ensure that approximately 50% of all M16 carriers will instead be carrying an AK74, and similarly 50% of all AK74 carriers will in fact be carrying an M16.
  25. 6. Stolen vehicles: The trade that takes place at La Trinite makes this a very attractive place to the player. There will be a real temptation for the player to park a truck there and to load it up with all the weapons the player wants in between visits by the convoys. There is a nasty surprise waiting for any player that does this. Empty vehicles left in the vicinity of La Trinite will be captured by the next convoy to visit the town and will be driven to the relevant base. If the vehicle is not a tank the crew will then disembark. Captured tanks will remain fully crewed and could cause a problem to the player later. This applies to any vehicle from a bicycle to an Abrams to a chopper. Getting it to work for a chopper was a bit of a pain, for reasons I will not go into here, but was necessary as there is a very small chance that the player might capture a chopper during the mission. In doing this I noticed some interestingly different behaviours of several vehicles. The M113 Ambulance and V80 chopper were a real pain to get right. The fact that I spent time on them even though these vehicles do not feature in the mission is testament to my level of insanity. Several vehicles (bicycle, motorcycle, jeep) sometimes will not make it to the base. Despite my best efforts and depending on their location they may try to go through La Trinite and in doing so hit one of the wire barricades or buildings and become disabled. This is not a bad result, nevertheless, to assist them the wire barricades now move smoothly out of the way to open the roads out of town. In determining how far from the town an empty vehicle must be to be captured I have used the level of rain and fog to estimate the likely visibility (see Weather below). So by all means park a vehicle in La Trinite to load up with weapons – just make sure you get it away from the town before the next convoy arrives. 7. Stationary Flags: There is a flag in each of the two main bases and in each of the towns on the two front-lines. If any of these locations are occupied by soldiers from the opposing side, driving out, or killing, the original occupants then one of the capturing soldiers will run to the flagpole, the flag that is there will run down the pole and vanish and the flag of the new occupiers will be raised on the flagpole. The unit that changed the flag will then salute the new flag. This flag changing can be repeated indefinitely, so if the original occupiers mount a successful counter attack then the flag will be changed back in the same way. Originally this was implemented using triggers, but to reduce lag it is now done using a script that runs at slightly more than one minute intervals. In addition to each side putting up its own flag, Alexi (the player) and his team can also put up the flag of the old Malden government. If the area around a flagpole is empty of soldiers but if the player or anyone of his team are close by then one of them may run over the to flagpole and raise the flag. If the player is close by he can change the flag by going to the flagpole. If the player is the only one of his team near the flagpole that is not in a vehicle then it must be him that changes the flag. Note the flags at La Trinite (one for each side) do not change. 8. Flags with mobile groups: In addition to the flags flying from flagpoles certain infantry and vehicle groups also carry flags. Groups that are located near to their base do not carry flags but all the others do. The flag is carried by the leader of the group. When the leader is killed the flag will, after a delay, be transferred to the new group leader. Note though that this will not happen if the player has selected Reduced Environmental features at the start of the mission, in that case the flag will lie with the fallen leader.