blank My CNCSeries
Username:
Password:
blank
(Register)
Content Overview Files Database Tiberium Wars Section Red Alert 3 Section Zero Hour Section Generals Section Yuris Revenge Section Red Alert 2 Section Renegade Section About CNCSeries
» FAQ · History
» Staff · Contact Us

Header

Who's Online? 0 members & 4 guests

» Advanced Mapping Tutorial Unique Techniques


In this section I will explain how to do all sorts of interesting stuff in which you could incorporate into your map to give it a unique feeling. I have provided a zip file of all the scripts involved in these effects. First of all I will go into general touch-ups.

» Download WA Scripts.zip

General Touch-ups

Intro Text
A good few maps on the net have intro text at the start of their maps, the great thing about these maps is that they can be a kind of signature for your work, it can also be handy for advertisement for your site and for giving a sense of atmosphere mission style. First of all you should decide how many messages you want, 2,3 or 4? Well lets first look how I do things, on most of my maps I have at least 3 messages,

\"Map Name"

\"By Waraddict"

\"Brought to you by cncseries.com"

Each one displays separately, one after the other, these are the scripts"

Intro_1

*** IF ***
True.
*** THEN ***
Show military briefing String: 'Map01:Intro_1' for 5000 milliseconds.
Set timer 'Intro_2_Timer' to expire in 6.00 seconds.

In script "Intro_1", no condition is required for its actions to execute, and so a military briefing text is shown straight away for 5 seconds, notice that its done by strings, the string name for my first message is "Map01:Intro_1", I will explain this soon. A countdown timer is also set to 6 seconds, this timer is the timer for the second message to come up, with the current message lasting 5 seconds and the next message coming up in 6, I"ve left a nice rest of 1 second between them.

Intro_2

*** IF ***
  Timer 'Intro_2_Timer' has expired.
*** THEN ***
  Show military briefing String: 'Map01:Intro_2' for 5000 milliseconds.
  Set timer 'Intro_3_Timer' to expire in 6.00 seconds.

"Intro_2" is initialised when the 6 second timer set in the last script "Intro_1" is finished, and in "Intro_2"s actions the string "Map01:Intro_2" is displayed and the timer for "Intro_3" is initiated.

Intro_3

*** IF ***
Timer 'Intro_3_Timer' has expired.
*** THEN ***
Show military briefing String: 'Map01:Intro_3' for 5000 milliseconds.

Finally, when the timer for Intro_3 is up, the third message string is displayed "Map01:Intro_3".

Now, I can safely say, you can copy ALL of the above strings for your own use, these scripts are not made for any personal use, the map.str file determines that. It"s as simple as this, to specify what the stings, "Map01:Intro_1", "Map01:Intro_2", and "Map01:Intro_3", you just open notepad and type the following"

Map01:Intro_1
"The 1st message you want"
END

Map01:Intro_2
" The 2nd message you want "
END

" The 3rd message you want "
END

And save it as "map.str" in YOUR map file, along with the above strings you should have the text messages working perfectly. If you want to add an extra message you just have to add a timer for it in the preceding message script and in your new message script have the timer running out as a condition. Be sure to add a "Map01:Intro_4" string in your "map.str" file aswell.

I have provided a script file and string file just to get you started in the "script.zip" file, to use the script file just open your map and go to scripts and click import, then simply browse to the "introtext.scb" file. To modify the "map.str" file to the messages you want, simply open up notepad and open the "map.str" file from there and make your changes, click save when finished. Remember put the "map.str" file in YOUR map file!

Filenames for intro text effect in WAScripts.zip file: introtext.scb, map.str

Darkened Intro Screen Effect
To add some atmosphere to your intro text, you could add a mission-like darkened screen during the moments of your text displaying. Keep in mind, on skirmish maps the AI WILL have a slight advantage by only a few seconds, as the darkened screen effect delays the player by a few seconds. On multiplayer maps all players will be delayed by a few seconds simultaneously.

During this effect it is preferred to lock all player input as you can"t really play in the dark anyway. The script for darkening can be given a specified length in frames to last, we want it to last until the text is finished, or at least near finished as guessing the length it should last for is a bit tricky, the length will also be different on other people"s computers depending on their CPU but it shouldn"t be much of a difference. I start at 500 frames and 30 to fade back to clear, whether or not the length is going to be different on other computers, keep in mind the length the player input will be locked will be specified in seconds.

We will need two scripts, one to start the darkening feature and to lock input, the second just to unlock input, I suggest strongly to make the running out of the timer for the third intro text as a condition for unlocking. If you want, you could use the "freeze time" script in the first script and the "unfreeze time" script in the second, if you are concerned about time being wasted. You may well want to do this if you haven"t got something moving at the start for sound effects during the darkening effect.

Disable_Input_and_Darken

*** IF ***
True.
*** THEN ***
  Fade (0-1) from 0.00 to 1.00 subtracting toward black. Take 0 frames to increase, hold for 500 fames, and decrease 30 frames.
  Disable mouse and keyboard input.
  Set Draw-icon UI to be enabled FALSE (False to disable.)
  Set EVA to be enabled FALSE (False to disable.)
  Set Occlusion to be enabled FALSE (False to disable.)
  Set Particle Cap to be enabled FALSE (False to disable.)
  Start letterbox mode (hide UI, add border).
  Set timer 'Enable Timer' to expire in 20.00 seconds.

Above is the script for disabling the input and darkening the screen, I used the "[Camera] Fade using a subtractive blend to black" script to do the darkening bit, for this effect just leave the first three values the same, the first is the specified level of shade to start of with, 0.00, which is clear. The Second is the level of shade to fade towards, 1.00, which is black. Now since we want it to start off black we simply put "0" as the amount of frames to increase (to go through) fading from 0.00 (Clear) to 1.00 (Black).

The last two values are for you to mess around with, in the above script you can see I specified 500 frames for the length and 30 frames for fading back to clear (NOTE: this is why I told it to start off from 0.00 and fade to 1.00, if it was 1.00 to 1.00 it would never fade out again).

The next 5 actions are typical things to do when disabling input for a camera sequence, or darkening effect in this case.

  Disable mouse and keyboard input.
  Set Draw-icon UI to be enabled FALSE (False to disable.)
  Set EVA to be enabled FALSE (False to disable.)
  Set Occlusion to be enabled FALSE (False to disable.)
  Set Particle Cap to be enabled FALSE (False to disable.)

The first one obviously disables any mouse and keyboard input.

The second hides any special power icons if actually used during the video (Very rarely happens, but just to be safe you should disable them), examples would be the paratrooper special icon, or the nuke launch radius icon.

The third disables any base voices, such as the ones when you"re getting attacked, if you are doing a camera sequence definitely disable this.

The fourth disables Occlusion, which is the ability to see units behind buildings by an indicator, this can be enabled in graphics options in generals.

Not sure about the last, all I can tell you is that its ALWAYS disabled in mission camera sequences/darkening effects.

The next two need specific attention,

Start letterbox mode (hide UI, add border).

If you want a moment of cinema like flat screen effect after the screen has cleared and before the input is re-enabled you can add this in. This feature is used more during camera sequences in missions etc.

Set timer 'Enable Timer' to expire in 20.00 seconds.

This "Enable Timer" is the timer set up for the "Enabling_Input" script"s condition.

Enabling_Input

*** IF ***
Timer 'Enable Timer' has expired.
*** THEN ***
Enable mouse and keyboard input.
Set Draw-icon UI to be enabled TRUE (False to disable.)
Set EVA to be enabled TRUE (False to disable.)
Set Occlusion to be enabled TRUE (False to disable.)
Set Particle Cap to be enabled TRUE (False to disable.)
End letterbox mode (show UI, remove border).
'ZoomFX' plays, allowing overlap TRUE (true to allow, false to disallow).

As you can see, the "Enabling_Input" script only executes when the "Enable_Timer" has expired (Timer set in last script). Next we have everything we disabled, re-enabled and anything else we turned on (e.g. the letterbox mode), turned off. You can also see I added a "ZoomFX" sound to play as the player gains control, believe it or not it"s a speech sound, so its "[Multimedia] Play speech" that you use.

I have provided both scripts for you to start off on in the "WA Scripts.zip" file, you may have to specify your own frame length etc. for the darkened effect, by default its 500 for length and 30 for fade back to clear.

Filename for darkening effect in WAScripts.zip file :     DarkEffect.scb

Bringing Life to a map

What"s better then a map with a detailed village or city? How about a map with a lively village and a busy city? In this part we are going to learn how to add moving civilians and traffic. In both cases we cannot use any [Team] or [Player] scripts as these have been disabled on multiplayer maps for cheating reasons. Instead, we have to use the [Unit] scripts.

Busy Civilians
Getting civilians to move is the exact same thing as getting vehicles to move, the only reason why I"m putting these separate is because you can use several interesting waypoint path styles for realistic traffic, whereas civilians do not need such detailed waypoint paths as they don"t stick to roads. A typical place to put wandering civilians is in a market square"

» Screenshot 3-0

As you can see I have several civilians placed around the square and a randomly designed waypoint path around the square also. To get these civilians moving their ass just give each one a suitable marker name, I used "civ1" through to "civ8". Then name the waypoint path "Marketpath1" or something, whatever you prefer. Next, make a script, condition "True" and action \"Unit 'civ1' follows waypoints, beginning at Waypoint Path 'Marketpath1'", repeating for each civilian you have (Don"t make a new script, just a new action). Make sure you use the "[Unit] Set a specific unit to follow a waypoint path" script, as any other follow waypoint paths don"t work for some reason. Your script should look like this"

Civ_Wander

*** IF ***
True.
*** THEN ***
  Unit 'civ1' follows waypoints, beginning at Waypoint Path 'Marketpath1'
  Unit 'civ2' follows waypoints, beginning at Waypoint Path ' Marketpath1'
  Unit 'civ3' follows waypoints, beginning at Waypoint Path ' Marketpath1'
  Unit 'civ4' follows waypoints, beginning at Waypoint Path ' Marketpath1'
  Unit 'civ5' follows waypoints, beginning at Waypoint Path ' Marketpath1'
  Unit 'civ6' follows waypoints, beginning at Waypoint Path ' Marketpath1'
  Unit 'civ7' follows waypoints, beginning at Waypoint Path ' Marketpath1'
  Unit 'civ8' follows waypoints, beginning at Waypoint Path ' Marketpath1'

Traffic
Getting traffic to move works the EXACT same way as the civilians, so I won"t go into the triggers, what I DO want to go into is the different waypoint path stiles you could use for realistic traffic.

1. Set Traffic Waypoint Path
Put some random waypoint paths on parts of you roads and set a particular unit to follow that waypoint path.

Advantages
No mess ups, the vehicles always go where you expect them to go.

Disadvantages
Can be boring and unrealistic.

2. Box Junction Waypoint Path
For every junction make a waypoint path box and for every straight road have two waypoint paths going each direction, connect both together.
Advantages
Traffic can go anywhere, much more unpredictable then the first waypoint path design.

Disadvantages
Traffic going anywhere is the exact problem, remember that Mr. Bean episode where he drives round the roundabout about 30 times?

3. Centre-Point Junction Waypoint path
Similar to the last, except each waypoint path coming in and out of a junction is connected to one point only.
Advantages
Vehicles will not drive around in circles on junctions anymore.

Disadvantages
There are two, all vehicles using the same waypoint on a junction to turn any direction will cause massive blocking problems and a vehicle driving straight on will look like a retard.

4. Net Junction Waypoint Path
The most complex but most perfect junction, if mastered can be of great help after going through the hells of the first three designs. Each waypoint path going in to a junction gets its own private connection with the waypoint paths going out (I would recommend NOT connecting the waypoint paths going in with the waypoint paths right beside them going out).
Advantages
Vehicles get only one chance to turn at a junction, like the Centre-Point junction, however they don not get in eachother"s way.

Disadvantages
There are none, although you have to watch it when designing them as you could easily mess them up.

This is a diagram of each waypoint path design for traffic, each corresponding to their number assigned.

» Traffic.JPG

No. 4, the Net Junction needs to be explained step by step, here"s the diagram for the steps while we go through them.

» NetJunction.JPG

1.   Put in all waypoint paths both heading in and heading out of the junction and stop them at the box of the junction.

2.   Take one waypoint path heading in, and connect it to the 2/3 other waypoint paths heading out (Not to the one heading out right beside it if you want to avoid traffic as much as possible).

3.   Take another and repeat.

4.   Repeat until all 3/4 waypoint paths heading in are connected to each of the waypoint paths heading out (Note again, just not connected to the waypoint path heading out one right beside the waypoint path heading in). To do a T Junction, just ignore the faded out waypoint paths.

When finished doing the whole road system on your map, just copy the civilian movement trigs except your road waypoint path may be called "Road1" and your vehicles may be called "car1" through to "car8" etc.

Treats, no Tricks!

In this part we are going to learn about adding a little extra something to sweeten the map for players.

Boxes
We all know how to add boxes, go to object placing, the civilian object list then "Misc_Man_Made", and there you are, we can place boxes from 100 to 2500 credits, also if you notice there"s a 2freeCrusaders box.

Wouldn"t it be more interesting if a box(es) constantly respawned itself? Simply make a script called "Crate" untick "Deactivate upon success" and set it to evaluate every 300 seconds or so. Make the condition "True" and use the "[Unit] Spawn - unnamed unit on a team at waypoint".

It should look like this"

Crate

*** IF ***
True.
*** THEN ***
Spawn unit of type '1500DollarCrate' on Team 'teamPlyrCivilian' at waypoint Waypoint 'Crate'

Vehicles
You can also place some empty vehicles which you could take by just inserting infantry into them, to do this though you have to add two teams. What we"ll be doing is placing the vehicles we want to be taken on the map then scripting placed Jarmen Kell infantry to empty them, then script the game to remove the Jarmen Kells when done. Name the two teams "JK" and "Victim", "JK" should be a GLA team, "Victim" should be any team you want, preferably civilian, "JK" should view "Victim" as enemy. Place your vehicles and name them "V1", "V2", "V3" etc. (also set them to "sleep" mode) and place Jarmen Kells right up beside them and name them respective to what vehicle they"re going to empty, e.g. the Jarmen Kell that is to snipe "V1" should be called "JK1" etc.

Making the teams

» Screenshot 3-1.JPG

Setting up. Remember, vehicles = TeamVictim, Jarmen Ks = TeamJK

» Screenshot 3-2

Once you"ve got that set up, you need to individually tell each Jarmen Kell to use the "GLAsnipevehicleattack" commandbutton, don"t use "[Unit] use commandbutton on object" or "[Unit] use commandbutton on waypoint", both don"t work, instead use "[Unit] use commandbutton" and the fact Team JK sees Team Victim as an enemy will fix the rest, aslong as you keep the Jarmen Kells up close enough.

The Script should look like this"
JK_Snipe

*** IF ***
True.
*** THEN ***
  Unit 'JK1' use Ability 'Command_GLAInfantryJarmenKellSnipeVehicleAttack'.
  Unit 'JK2' use Ability 'Command_GLAInfantryJarmenKellSnipeVehicleAttack'.
  Unit 'JK3' use Ability 'Command_GLAInfantryJarmenKellSnipeVehicleAttack'.
  Unit 'JK4' use Ability 'Command_GLAInfantryJarmenKellSnipeVehicleAttack'.
  Unit 'JK5' use Ability 'Command_GLAInfantryJarmenKellSnipeVehicleAttack'.
  Unit 'JK6' use Ability 'Command_GLAInfantryJarmenKellSnipeVehicleAttack'.
  Unit 'JK7' use Ability 'Command_GLAInfantryJarmenKellSnipeVehicleAttack'.
Etc.

The result is, if you have placed the Jarmen Kells properly facing their target, all the vehicles will be left driverless and ripe for the taking. Of course we can"t have some useless Jarmen Kells lying about our map either so we add this script aswell"

JK_Remove

*** IF ***
  Unit 'V1' has been attacked by a(n) 'GLAInfantryJarmenKell'
  *AND* Unit 'V2' has been attacked by a(n) 'GLAInfantryJarmenKell'
  *AND* Unit 'V3' has been attacked by a(n) 'GLAInfantryJarmenKell'
  *AND* Unit 'V4' has been attacked by a(n) 'GLAInfantryJarmenKell'
  *AND* Unit 'V5' has been attacked by a(n) 'GLAInfantryJarmenKell'
  *AND* Unit 'V6' has been attacked by a(n) 'GLAInfantryJarmenKell'
  *AND* Unit 'V7' has been attacked by a(n) 'GLAInfantryJarmenKell'

Etc.
*** THEN ***
  Unit 'JK1' is removed from the world.
  Unit 'JK2' is removed from the world.
  Unit 'JK3' is removed from the world.
  Unit 'JK4' is removed from the world.
  Unit 'JK5' is removed from the world.
  Unit 'JK6' is removed from the world.
  Unit 'JK7' is removed from the world.

Etc.

And so nobody is none the wiser what the hell went on to leave them some nice vehicles on the map.

I have provided the two scripts for you to use, it does 7 vehicles altogether, you"ll have to make the two teams, and place the Jarmen Kells and vehicles yourself, but at least this part is done. Make sure you name your seven Jarmens "JK1" through to "JK7" and your vehicles from "V1" to "V7".

Filename for empty vehicles in WAScripts.zip file :    EmptyVehicles.scb

Adding "Bite" to your map!

In this part we will be taking some of the previous ideas and developing them further. Beside each heading I will note the parts that need to have been read before proceeding.

Militia (Bringing life to a map)
For this we will have to add a new player, "Militia" being the preferable name. Make it computer controlled and FactionCivilian and give it any colour you want (TO give it a customised colour click on the colour box.

» Screenshot 3-3.jpg

Next, you will need to add a Script to make the Militia enemy to the human player, simply make a script with condition "True" and use the script "[Player] Change how a Player relates to another Player" make the Militia view as enemy and use it again to make view Militia as enemy.

Make_Enemy

*** IF ***
True.
*** THEN ***
Player '' considers Player 'Militia' to be Enemy
Player 'Militia' considers Player '' to be Enemy

Next, simply copy your moving civilian and vehicles/traffic scripts we learned earlier and tell Militia owned attack units to follow those waypoints path instead or along with the civilians and traffic, like I did in my Militia Mayhem map.

You can also reinforce the Militia by placing the reinforcements outside the map boundaries and inside the border, where they can"t be seen. If you name every single Militia unit you could script for a replacement unit to come on if a particular unit has been destroyed, and if you want you could script another replacement to come on if that one is destroyed etc. . Here"s what the reinforcement script should look like for one unit.

MilitiaUnit1_Reinforcement

*** IF ***
  Unit 'MilitiaUnit1' has been destroyed.
*** THEN ***
  Unit 'MilitiaUnit6' follows waypoints, beginning at Waypoint Path ' Road1'

When the "MilitiaUnit1" is destroyed "MilitiaUnit6" comes on to replace it, If you open up my Militia Mayhem map in the World Builder you"ll notice that the five technicals on my map are named from "MilitiaUnit1" to "MilitiaUnit5". On my map border, I"ve a total of 5 Quad Cannons and 5 Scorpion Tanks ready to reinforce those technicals and the Quad Cannons are named from "MilitiaUnit6" to "MilitiaUnit10", the Scorpions are "MilitiaUnit11" to "MilitiaUnit15". I"ve scripted all situations for each unit for what would happen if they were destroyed, for example if "MilitiaUnit1", a technical which is already driving around the map, is destroyed, "MilitiaUnit6", a Quad Cannon outside the map, comes on and follows the waypoint path, and if THAT is destroyed "MilitiaUnit11", a scorpion outside the map comes on to replace that Quad Cannon and it"s the same for the other vehicles.

Playing with Water
Ah, there"s was nothing like playing with the good ol"H20 back in the toddler days! The kind of playing we"ll be doing with will be different though, imagine making a map where both players are separated by a large water body, but over time it reduces in height and reveals a land-bridge. Kind of a 5min build up army game incorporated into the map, or you could have tech buildings and supplies left out on unreachable islands which, from time to time, join with the mainland.

To start messing with the height of a water area we first have to name it, just for reference lets call it "WaterArea1". Now, there are really basically only three things we would want to do with it, either make it go from low to high over a long time on a map, high to low over a long time on a map or either of these two repeating.

First two are simple, here"s what the scripts look like, (Note: use the "[Map] Adjust Water height to a new level with damage over time" script)

WaterLevel_Down

*** IF ***
  True.
*** THEN ***
  area 'WaterArea1' changes altitude to 0.00 in 150.00 seconds doing 0.00 dam/sec.

This trigger will bring down the water gradually to a height of 0 in 5 minutes (150 seconds), doing 0 points of damage each time it moves (Note: As the water is lowering, there is no chance anything could get in its way so the amount of damage it does is irrelevant).

WaterLevel_Up

*** IF ***
  True.
*** THEN ***
  area 'WaterArea1' changes altitude to 20.00 in 150.00 seconds doing 1000.00 dam/sec.

The above one, similar to above, only IF the water is lower then 20 then it will rise to that height of 20 within 5 minutes, doing 1000 points of damage each time it moves (Note: Pick a large damage number, no object should survive if its in the water"s way).

Getting the water to constantly lower and rise again is simple, although needs a little explaining, first thing is to decide how much time the lowering, rising and time in-between should take. Its good to do a little plan like this as you do need to note some points when timing the scripts.

Lowering (30 secs) " Stay Low (60 secs) " Rising (30 secs) " Stay High (60 secs)

In my little plan above, I"ll have to not for my scripting that the Lowering script can start straight away and repeat every 180 seconds. As for the Rising script, it too can repeat every 180 seconds but it MUST start 90 seconds AFTER the lowering script first executes. Simply, my lowering script can just be this"

WaterLower

*** PROPERTIES ***
Deactivate upon success "no"
Evaluate Script every 180 seconds
*** IF ***
  True.
*** THEN ***
  area 'WaterArea1' changes altitude to 0.00 in 30.00 seconds doing 0.00 dam/sec.

My rising script will be very similar to the lowering script, except for three important points, the height it changes to has to be original water area height before it lowered, the damage has to be a significantly large number (Lets say 1000) and most importantly, for now, it has to be disabled.

WaterRise

*** PROPERTIES ***
Script is Active "no"
Deactivate upon success "no"
Evaluate Script every 180 seconds
*** IF ***
  True.
*** THEN ***
  area 'WaterArea1' changes altitude to 7.00 in 30.00 seconds doing 1000.00 dam/sec.

For our lowering/rising effect to work now, all we have to do is enable the rising script 60 seconds later from the start of the game. All we have to do is add two more scripts, one to set a timer for 60 seconds and another to enable the rising script when that timer expires. Like so"

Set_Rise_Timer

*** IF ***
  True.
*** THEN ***
  Set timer 'Rise_Timer' to expire in 60.00 seconds.
Enable_WaterRise

*** IF ***
 Timer 'Rise_Timer" has expired.
*** THEN ***
 Enable Script 'WaterRise'.

With these last four scripts, you"ll have the water lowering straight away to 0 within 30 seconds , then a break of 60 seconds, then the water rising to 7 again within 30 seconds (Destroying anything in its way), then a break of 60 seconds, then repeat.

I"ve provided the scripts for the water lowering/rising effect in the WAScripts.zip file, feel free to mess with the times and don"t let your imagination limit you while using these scripts.

Filename for dynamic water effect in WAScripts.zip file :     DyanamicWater.scb

All you need to do is import the script, modify the times to whichever times you want (Right now they"re the same as in the example) and name the water area you want to change to "WaterArea1".

Camera Sequences (General Touch-ups)
In this part we"ll be learning the rules of the movie like camera sequences we find in the Generals missions. Before starting any Camera Sequences there are almost universal rules to apply to every style of camera sequence you could make.

The following script is generally what I was talking about, I explained what each action does in "General Touch-ups". With most camera sequences they have this script in it at the start in some kind of form, if you can"t find it, it"s because they"ve added the actions in with some other script only for compacting reasons. You want to do a camera sequence? Take it from me, you"ll be getting somewhere if you just added this in first. Note that this one is designed to happen straight away, and unless your camera sequence is at the start you may want to put a condition on it.

Set_Camera_Mode

*** IF ***
  True.
*** THEN ***
  Disable mouse and keyboard input.
  Set Draw-icon UI to be enabled FALSE (False to disable.)
  Set EVA to be enabled FALSE (False to disable.)
  Set Occlusion to be enabled FALSE (False to disable.)
  Set Particle Cap to be enabled FALSE (False to disable.)
  Start letterbox mode (hide UI, add border).
(<- optional, flat screen movie effect)

Sooner or later you will have to set everything back to normal, to do this, just copy your "Set_Camera_Mode" scripts" actions and set them to opposite (Note: the first and last actions have their opposite right beside them on the script menu).

Forget about getting it back to normal for now, what we simply want to do now is make a camera sequence, to tell you the truth there is almost an infinite amount of different camera effects you could make with the given camera scripts. It"s all about experimenting, aslong as you got the above script anything should work if you script it properly.

Sometimes you need to reveal parts of the map during the camera sequences, use this if so"

[Map] Reveal Map at waypoint " permanently

or

[Map] Reveal the entire map permanently for player

Don"t let the "permanently" get you, what that means is that fog won"t cover that place if one of your units isn"t there, I suggest setting up your uncovered areas in the "Set_Camera_Mode" script, like so"

Set_Camera_Mode

*** IF ***
  True.
*** THEN ***
  Disable mouse and keyboard input.
  Set Draw-icon UI to be enabled FALSE (False to disable.)
  Set EVA to be enabled FALSE (False to disable.)
  Set Occlusion to be enabled FALSE (False to disable.)
  Set Particle Cap to be enabled FALSE (False to disable.)
  Start letterbox mode (hide UI, add border).
  The map is permanently revealed at Waypoint 'Point1' with a radius of 200.00 for Player ''. (Afterwards referred to as Reveal Name: Reveal1).
  The map is permanently revealed at Waypoint 'Point2' with a radius of 200.00 for Player ''. (Afterwards referred to as Reveal Name: Reveal2).

Note that you can name the reveal action something, you know why? Because along with your "Set_Normal_Mode" script you could use this"

[Map] Reveal Map at waypoint " undo permanently

Which allows you to refer to a named reveal so that it could be undone, oh and for your reveal the map permanently script you simply use this one"

[Map] Reveal the entire map permanently is undone for player

To get somewhere quickly, I"d recommend roughly deciding what length this camera sequence should be and setting the timer for the "Set_Normal_Mode" script in the "Set_Camera_Mode" script, while keeping mind what we want to set up, like so" Set_Camera_Mode

*** IF ***
  True.
*** THEN ***
  Disable mouse and keyboard input.
  Set Draw-icon UI to be enabled FALSE (False to disable.)
  Set EVA to be enabled FALSE (False to disable.)
  Set Occlusion to be enabled FALSE (False to disable.)
  Set Particle Cap to be enabled FALSE (False to disable.)
  Start letterbox mode (hide UI, add border).
  The map is permanently revealed at Waypoint 'Point1' with a radius of 200.00 for Player ''. (Afterwards referred to as Reveal Name: Reveal1).
  The map is permanently revealed at Waypoint 'Point2' with a radius of 200.00 for Player ''. (Afterwards referred to as Reveal Name: Reveal2).
Set timer "Camera_Mode_End_Timer' to expire in 150.00 seconds.

Set_Normal_Mode

*** IF ***
  Timer "Camera_Mode_End_Timer' has expired.
*** THEN ***
  Enable mouse and keyboard input.
  Set Draw-icon UI to be enabled TRUE (False to disable.)
  Set EVA to be enabled TRUE (False to disable.)
  Set Occlusion to be enabled TRUE (False to disable.)
  Set Particle Cap to be enabled TRUE (False to disable.)
  End letterbox mode (show UI, remove border).
  Reveal Name: Reveal1 is undone.
  Reveal Name: Reveal2 is undone.

Now, after 2.5 minutes everything will be back to normal, so depending on what length you entered the time to be you should now roughly plan out your Camera Sequence. I"m going to go through a few handy scripts you"d want to use in your Camera Sequence.

[Mulitmedia] Play a Speech File

What I want to note about this script is that two handy sounds can be played using this, "ZoomFX" and "SpyCameraDrama". "Zoomfx" is useful for when hopping to a point and "SpyCameraDrama" is great for giving a well, spy camera effect.

[Scripting] Time Freeze
[Scripting] Time Unfreeze

If you use time freezing while hopping from one waypoint to the next in your camera sequence you can have a convincing spycamera effect if you play the spycamerdrama speech file sound each time you do it, keep in mind you"ll need to set timers, oh and this important script also"

[Camera] Set up the camera

This lets you position a camera at a waypoint, facing in the direction of another waypoint, with a particular zoom and pitch.

Here"s an example of a SpyCamera routine.

Set_Camera_Mode

*** IF ***
True.
*** THEN ***
  Freeze Time
  Disable mouse and keyboard input.
  Set Draw-icon UI to be enabled FALSE (False to disable.)
  Set EVA to be enabled FALSE (False to disable.)
  Set Occlusion to be enabled FALSE (False to disable.)
  Set Particle Cap to be enabled FALSE (False to disable.)
  Start letterbox mode (hide UI, add border).
  The map is permanently revealed at Waypoint 'Point1' with a radius of 200.00 for Player ''. (Afterwards referred to as Reveal Name: Reveal1).
  The map is permanently revealed at Waypoint 'Point2' with a radius of 200.00 for Player ''. (Afterwards referred to as Reveal Name: Reveal2).
  The map is permanently revealed at Waypoint 'Point3' with a radius of 200.00 for Player ''. (Afterwards referred to as Reveal Name: Reveal3).
Set timer "Camera_Mode_End_Timer' to expire in 30.00 seconds.

Set_SpyCamera_Timers

*** IF ***
  True.
*** THEN ***
  Set timer 'SpyCamera2_Timer' to expire in 10.00 seconds.
Set timer 'SpyCamera3_Timer' to expire in 20.00 seconds.

SpyCamera1

*** IF ***
  True
*** THEN ***
  'SpyCameraDrama' plays, allowing overlap TRUE (true to allow, false to disallow).
  Position camera at Waypoint 'Point1', zoom = 1.00(0.0 to 1.0), pitch = 1.00(1.0==default), looking towards Waypoint 'West'.

SpyCamera2

*** IF ***
Timer 'SpyCamera2_Timer' has expired.
*** THEN ***
'SpyCameraDrama' plays, allowing overlap TRUE (true to allow, false to disallow).
Position camera at Waypoint 'Point2', zoom = 1.00(0.0 to 1.0), pitch = 1.00(1.0==default), looking towards Waypoint 'East'.

SpyCamera3

*** IF ***
  Timer 'SpyCamera3_Timer' has expired.
*** THEN ***
  'SpyCameraDrama' plays, allowing overlap TRUE (true to allow, false to disallow).
  Position camera at Waypoint 'Point3', zoom = 1.00(0.0 to 1.0), pitch = 1.00(1.0==default), looking towards Waypoint 'South'.

Set_Normal_Mode

*** IF ***
Timer "Camera_Mode_End_Timer' has expired.
*** THEN ***
  Unfreeze Time
  Enable mouse and keyboard input.   Set Draw-icon UI to be enabled TRUE (False to disable.)
  Set EVA to be enabled TRUE (False to disable.)
  Set Occlusion to be enabled TRUE (False to disable.)
  Set Particle Cap to be enabled TRUE (False to disable.)
  End letterbox mode (show UI, remove border).
  Reveal Name: Reveal1 is undone.
  Reveal Name: Reveal2 is undone.
Reveal Name: Reveal3 is undone.

I have provided a default Camera Sequence setup which lasts for 2.5 minutes and also reveals the whole map to the local player during it.

Filename for Camera Sequence Setup effect in WAScripts.zip file :     CSSetup.scb

I have also provided a mini SpyCamera Sequence for you to mess with, you must name the three waypoints you want "Spied on", "Point1", "Point2" and "Point3" and the waypoints you want your camera to face in when spying on these points named respectively, "Direction1", "Direction2" and "Direction3".

Filename for SpyCamera Sequence effect in WAScripts.zip file :    SpyCamera.scb

As for any other Camera Sequence effects, just experiment while having the camera sequence setup scripts in and you should be able to do anything, contact me by private message if you really need help.

» Section One | Section Two

Printable Version | Tell A Friend | Bookmark

CNCSeries.Com