Kyth
|
|
« on: August 05, 2013, 06:27:05 AM » |
|
Hi, Thought I might gather all my random thoughts in one place: That's great news Kyth and thanks for the positive reviews so far! Waiting for the tips on the scripting etc? Hi, Some suggestions: 1. As mentioned by Lockie, it's better for all the in-mission message text to be written to the <mission name>_loc_data.text file. The mission name, history and quotes (if any) are written to <New name>.text file, in the text folder. 'New name' means, anything other than the existing files such as mis_text.text, which are intended for the stock missions. 2. Every text string has to be terminated with a semi-colon like this: txt_mi_cc02_siege_attack() { Advance and provide fire support\n; } The text for objectives' on-screen display is normally labelled with a ' _sh'. This consists of a short text (for display with the objective icon) and a long text (for the message box): txt_mi_cc02_siege_attack_sh() { Fire support; Advance and provide fire support\n; } 3. Every 'add mission objective' line has the following format: a b c d e ext, add_misobj, order1, gertigplay, 1, txt_mi_cc02_siege_attack, txt_mi_cc02_siege_attack_sh;a. Order name. The naming convention is 'order1' followed by 'order2', 'order 3' and so on. b. Map object name. Something that has to be defined in the 'cs_map()' section. c. The code number for the 'active' state. d. Long String to display in the Briefing Screen. e. Strings to display in the Game Screen. A short text for the icon, followed by a long text for the message box.4. Every 'add map object' line has the following format: 1 2 3 4 5 6 7 8 9 10 11 ext, add_mo, map0, attack_rub, 0xc0000080, 0x80202020, 4.0, txt_md_ger_startzone1, 0, startzone1, -1, true, 0;1. Name of the object, or group of objects. Useful for changing colours, or removing later on. 2. Symbol or sprite name. Refer to table 9.2 for a listing. 3. Symbol colour (0x, alpha, red, green, blue) 4. Text colour (0x, alpha, red, green, blue), if any. 5. Size of the object. At any one size, some symbols are already larger than others, so play around to see what's suitable. 6. Text string for (4), if any. 7. Skew / tilt angle of the symbol in degrees. Ranges from -180 to 180. '0' = symbol follows the map contour heading. 8. Map contour for the placement of the symbol. 9. Contour point number. Default '-1' (not specific). Anyway, try to use one-point contours for placement of symbols. 10. Rotate along with the map, true / false. Flag symbols should always be upright, hence, 'false'. (Flag placement contours should point due north). 11. Offset value for text, left-right. Default value '0' (centered).5. To link the Mission orders with an actual map location, the following labels have to share the same name: Section b in the Objective entry, and Section 1 in the Map Object entry. The Life Cycle of a Mission ObjectiveThis example is lifted off the 'cs_main()' block of the stock mission, 'ca01_taranovka': a) ext, add_misobj, order1, taranovka, 1, txt_mi_ca01_siege_taranovka, txt_mi_ca01_siege_taranovka_sh; b) ext, wait_tr, siege2; c) ext, change_mo_cols, taranovka, 0xc0800000, 0xc0800000; d) ext, change_misobj, order1, 3; Notice the sequence of events: a) Mission Objective, referred to as 'order1' is assigned. This is linked to the 'taranovka' map object (this appears as a blue flag and oval on the briefing map, and a light-blue square icon in the game screen). The objective is given the status of '1' or 'active'. b) The game waits for a trigger to be activated. In this case, the trigger is 'siege2', which is a 'superiority of allies in a contour' trigger. 'Siege2' is set to activate when your friendlies achieve a force superiority of 2x in the area of Taranovka village. c) The game then changes the colour of the 'taranovka' map object to red. This is purely optional, but it is useful if you want the change of control to be displayed on the briefing map. d) The game also changes the state of 'order1' to '3', or 'completed'. After this line, you may want to add on a 2nd objective, say 'order2'. To make sense from the player's POV, any subsequent Mission Objectives also need to flow the same way, a) to d). Usually, the last Mission Objective will also be a Victory condition, i.e. to bring the Mission to a successful conclusion. @Kyth, many thanks for all that very useful info you supplied, very clear and easy to follow. One question though, at the very bottom of your post in number 5. you mention: "5. To link the Mission orders with an actual map location, the following labels have to share the same name: Section b in the Objective entry, and Section 1 in the Map Object entry."So, does this mean to link the in-mission orders to the map location objects the 2 lines would look like this: ext, add_misobj, order1, gertigplay, 1, txt_mi_cc02_siege_attack, txt_mi_cc02_siege_attack_sh;
ext, add_mo, gertigplay, attack_rub, 0xc0000080, 0x80202020, 4.0, txt_md_ger_startzone1, 0, startzone1, -1, true, 0;Yes that would work, but it would be more logical to have 'gertigplay' located in one of the objective locations, instead of the starting position. Hi,
As a general point on mission-making and cs_radio blocks, I use each one for a sequence of events,
ie. Trigger 1, followed by Message 1, then an interval or wait for another trigger, then Message 2, then another interval or trigger, then Message 3, and so on.
The problem with the above is that Message 2 must follow Message 1. Message 3 must follow Messages 1 and 2, like a railroad.
If you have a lot of different messages to trigger off, this could be a problem since they don't always follow one after the other. You can get around this restriction by using multiple blocks, and have several tracks running in parallel:
cs_radio1 : Trigger 1, followed by Message 1, then an interval or wait for another trigger, then Message 2, then another interval or trigger, then Message 3, and so on. cs_radio2 : Trigger a, followed by Message a, then an interval or wait for another trigger, then Message b, then another interval or trigger, then Message c, and so on. cs_radio3 : Trigger x, followed by Message x, then an interval or wait for another trigger, then Message y, then another interval or trigger, then Message z, and so on.
Try not to have too many unnecessary parallel tracks running at the same time, I suspect it may slow down the game,
ps. The same principle applies to 'cs_main' and 'cs_map'.
I am just trying to insert the squarish colored waypoint or position markers (your suggestion) and am having a problem getting them to show up. I've been trying to duplicate the map object from a simple single mission of YL's.
What I have done is create a couple single contours in a test mission and named them: The_proposed_site and Village. I then copied into my loc_data.text
loc_rus() {
txt_ldm_text1() { The proposed site; } txt_ldm_text2() { Village; }
}
In my scripts file I copied what I think are the related lines:
cs_main() { ext, sel_waypoint, The_proposed_site, 0xff00a040, txt_ldm_text1, 0; ext, sel_waypoint, Village, 0xff00a040,txt_ldm_text2, 0; } Kyth, can you please advise me what's missing here?
Thanks H
Try renaming the contours and their references without caps: 'the_proposed_site' and 'village'. They should show up in the game when you press the '+' key, Kyth No joy! I changed the single contour to lower case, changed the file below to lower case and nothing happens. I should mention that I changed the contour in the Outlines>Maps section as I've seen others do. I can't see how this should make a difference.
cs_main() { ext, sel_waypoint, the_proposed_site, 0xff00a040, txt_ldm_text1, 0; ext, sel_waypoint, village, 0xff00a040,txt_ldm_text2, 0; } I've gone over this backwards and forwards and can't figure it out, as before the answer is usually very simple.
Thanks H
Hi, I'd like to clarify that the waypoints aren't objects on the Briefing map, they're actually seen in the game itself. They're visible as little square, green icons and you can use the '\' key to get them to show up, and '+' key to run through each one.
One more thing that comes to mind: Your other text entries in the loc_data text file are under 'loc_eng()'. So its best to group your waypoint texts under 'loc_eng()' as well. Remember, its either 'loc_rus()' or 'loc_eng()', but not both. One final thing (actually the main thing): Make sure your waypoint entries appear after the briefing and 'nop;' lines. For example: cs_main() { ext, add_misobj, brief, start, 4, txt_brief_shamonin, txt_mis_order; nop; ext, sel_waypoint, the_proposed_site, 0xff00a040, txt_ldm_text1, 0; ext, sel_waypoint, village, 0xff00a040,txt_ldm_text2, 0; }
|