You are not logged in.

Megistos

Apprentice

(10)

  • "Megistos" started this thread

Posts: 0

Activitypoints: 0

Date of registration: Feb 29th 2004

Reputation modifier: 9

Level: 1 [?]

Experience: 0

Next Level: 10

  • Send private message

member since 168 month member since 168 month member since 168 month member since 168 month member since 168 month member since 168 month member since 168 month member since 168 month member since 168 month member since 168 month member since 168 month member since 168 month member since 168 month member since 168 month

1

Wednesday, April 21st 2004, 1:02pm

Part 3...here goes This will be more of a reference section, because I don´t know what you´ll want your story missions to be about. I´ll cover here how to set up the events most likely to occur in your mission. If you want a particular event covered that I haven´t done, post and I´ll do it. 1) Using Jumpholes/Gates Firstly, make sure that the ships that will jump with the player, if any, have the attribute &quot;jumper = true&quot; in the MsnShip entry. To make them join formation with the player when he meets them, use this: [ObjList nickname = enter_player_formation MakeNewFormation = fighter_basic [Trigger nickname = join_formation system = *system* Cnd_DistShip = inside, Player, *ship*, 10000 Act_GiveObjList = *allies´ label*, enter_player_formation Making the jumping bit is easy. Set an NNObjective as a rep_inst on the hole/gate and give it the appropriate &quot;Take the Jumphole to the Chugoku system&quot;, text or whatever system you use. Set it like this: [Trigger nickname = at_jumphole Cnd_DistShip = inside, Player, *jumphole/gate name*, 2000 Act_SetNNObj = take_jumphole &lt;-- use whatever you named that objective Simple as that. The ships that are in formation with you will automatically jump, provided they have jumper = true in the ship entry. 2) Destroying bases/big ships + their escort This is fairly easy to accomplish. Make sure you have all the ships you´re fighting named under a common label. Then, use the Cnd_Destroyed: [Trigger nickname = ships_destroyed Cnd_Destroyed = *label name*, *no of ships*, EXPLODE Act_SetNNObj = *next objective* If you want a &quot;break and run, they´re too strong&quot; scenario, lower the number in the condition line to however many have to be destroyed. 3) Winning Can´t believe I didn´t mention this before<img src=smilies/icon_smile_blush.gif width=15 height=15 border=0 align=middle> To make the mission succeed, simply place Act_ChangeState = SUCCEED in the Trigger(s) that must be fulfilled. Equally, put Act_ChangeState = FAIL in Triggers you have to prevent from happening, like mission-critical ships being destroyed 4) Moving the player What I mean here are places like in the 10th mission, you embark on the Osiris in the Hamburg system, but without leaving the ship, you magically appear in Texas. (yes, it´s a ship that can move, but I´m speaking from a coding viewpoint here) If your mission involves moving like this, there are a number of options you have available. Act_ForceLand = *base name* -- this will land you on a base of your choosing. The difference between this and RelocatePlayer is that with this one you see the landing sequence - an important difference in some places. Act_RelocatePlayer = *base room name* -- this will place you in a specific room of a specific base. This is how the Osiris works. Act_MovePlayer = *coordinates* -- different from the other two, this works within a system. It´s rarely useful but is often used after a thorn file which features the player moving so you don´t appear back where you were. I don´t claim this is a comprehensive tutorial, because story missions are immensely complex things. I have, however, included a list of all the conditions and actions. Most of them should be self explanatory, but also have a look in the mission ini files to see how they´re used. This isn´t finished, and probably never will be, but if you want to know how to make something happen in a story mission that I haven´t covered, just ask<img src=smilies/icon_smile_big.gif width=15 height=15 border=0 align=middle> &quot;There are 10 kinds of people in this world: those who understand binary and those who don´t&quot; Edited by - Darkstone on 4/23/2004 11:44:35 AM
Signature from »Megistos« A good pun is its own reword.

Megistos

Apprentice

(10)

  • "Megistos" started this thread

Posts: 0

Activitypoints: 0

Date of registration: Feb 29th 2004

Reputation modifier: 9

Level: 1 [?]

Experience: 0

Next Level: 10

  • Send private message

member since 168 month member since 168 month member since 168 month member since 168 month member since 168 month member since 168 month member since 168 month member since 168 month member since 168 month member since 168 month member since 168 month member since 168 month member since 168 month member since 168 month

2

Wednesday, April 21st 2004, 1:02pm

Right, second instalment Having declared ships, NPCs and Solars, there are a couple more things to do. MsnFormations, which allow you to spawn groups of ships at once, rather than inputting a load of SpawnShip lines. Typical entry: [MsnFormation nickname = gmg_patrol &lt;-- name of formation, used when spawning it position = 49560, -12, -77300 &lt;-- where it spawns, if not overridden orientation = 1, 0, 1, 0 &lt;-- not sure about this one formation = fighter_li_lsf &lt;-- the arrangement of ships, use fighter_basic if unsure ship = gmg_leader ship = gmg_wing1 &lt;-- the ships in the formation, as listed under MsnShip ship = gmg_wing2 / You also need to set objectives, so the player knows what to do. Typical objective: [NNObjective nickname = nn_searchpt1alt &lt;-- name, for later use state = HIDDEN &lt;-- initial state, almost always should be HIDDEN type = navmarker, Li01, 22025, 25025, 55160, -800, -67782 &lt;-- the type of objective There are several different types that objectives can take: <b>ids </b> = *string value*, simply displays text <b>navmarker </b> = sets a waypoint. Use it *system* *string value* *er...other string value<img src=smilies/icon_smile_tongue.gif width=15 height=15 border=0 align=middle>* *coordinates* <b>rep_inst </b> = places a mission waypoint as a ship, do the same as &quot;navmarker&quot; but add another bit on the end, the name of the ship Unless you´re going to be using objectives which are exactly the same as existing ones text-wise, you´ll need to use fled-ids to create the text strings. Now, once you´re happy you´ve included enough ships, NPCs and Solars, and grouped them into formations, you need to set things called ObjLists. These are basically instructions to NPCs, like &quot;join formation with player&quot;, which occurs quite frequently, or &quot;fly to point X&quot;, like in missions where you part company with someone. Now, there are a LOT of different ObjLists you can enter. I´ll list some of the more useful ones, take a look at the mission ini files, search for &quot;objlist&quot;, and you´ll see what else you can use them for. Make an ObjList like this: [ObjList nickname = ol_goto_prisonship &lt;--give these instructions to NPCs with this name GotoShip = goto, prisonship, 800, true, -1 StayInRange = prisonship, 750 &lt;--- the instructions BreakFormation = no_params / Some common ObjList instructions: GotoShip = goto, *MsnShip/Solar name*, *distance of ship to come within*, true, -1 -- this will cause an NPC to fly to the selected ship/solar StayInRange = *MsnShip/Solar name*, *range* -- this will prevent an NPC from moving outside a specified range of a ship/solar MakeNewFormation = *formation name* -- this will make the ships it´s applied to form up in the specified way BreakFormation = no_params -- this will make the NPCs break their formation, no matter what it is Dock = *base/gate/hole/lane name* -- do I really have to explain this one?<img src=smilies/icon_smile_tongue.gif width=15 height=15 border=0 align=middle> There are more, but those are the essential ones if you want to make the NPCs really seem alive. Now it´s time to move onto the ´Main Course´, as it were, the Triggers. These are what will make your mission work (eventually<img src=smilies/icon_smile_wink.gif width=15 height=15 border=0 align=middle>). They´re also very fickle, because a mission is generally one long chain of triggers, if you make a typo somewhere, the entire chain is broken and your mission will simply stop working at that point. The first triggers to make are the ones that are active all the time throughout the mission, like escorting critical ships or key characters like King and Juni and the general state of the mission. The first Trigger should be something like this (this is taken from the first mission, after landing on Pittsburgh): [Trigger nickname = general_triggers system = Li01 &lt;-- make sure to enter this correctly. Is important Cnd_True = no_params &lt;-- this basically means &quot;this is always active&quot; Act_PlayerCanTradelane = false &lt;-- disallows the player from using tradelanes Act_MarkObj = escort, 1 &lt;-- this trigger marks &quot;escort&quot; (King) as Important on the Contact list Act_Invulnerable = escort, true, false, 0.900000 &lt;-- gives King a certain amount of invulnerability<img src=smilies/icon_smile_tongue.gif width=15 height=15 border=0 align=middle> Act_ActTrig = king_dies &lt;-- this is an ActTrig, see below Act_RandomPop = false &lt;-- this turns off random encounters, so you only fight what you´re meant to Act_NagDistLeaving = std, escort, escort, 22195, 5000, NAG_IN_COMBAT &lt;-- not sure There are a few vital Conditions and Actions which it´s essential you understand how to use properly Cnd_True = no_params -- this basically announces Actions which are always active, no matter what Cnd_Destroyed = *label/MsnShip name*, *number destroyed*, EXPLODE -- this will come into effect when a specified number of ships of a label are destroyed. If you use an MsnShip name, the number must ALWAYS be 1. Cnd_SpaceEnter/Exit = *system name* -- when the player takes off/docks Cnd_SystemEnter/Exit = *system name* -- the player uses a jumpgate/hole Act_ActTrig = *trigger name* -- This forms the basis of the chain trigger system. You have to use this in your Triggers to activate others, or the others will remain passive even if the conditions are fulfilled. This might sound really unnecessary, but in practice it´s quite useful Act_DeactTrig = *trigger name* -- exactly the opposite of above. For example, if you accept a mission, the Trigger for declining the mission is disabled. Act_SpawnShip/Solar/Formation = *Ship/Solar/Formation name* -- does exactly what it says on the tin. You´ll need to use this frequently, ships won´t appear at all without it. Act_SetNNObj = *objective name* -- this will cause an objective to flash up on the screen, and the waypoint, if any, to appear. Those are all the ESSENTIAL ones that you´ll almost definitely need to use. The next Triggers to make are the ones that fail the mission if certain ships are destroyed. Make them on this model: [Trigger nickname = king_dies system = Li01 Cnd_Destroyed = escort, 1 Act_ChangeState = FAIL, 22196 Set those up for your principal characters. The next ones to make are those concerning the mission offer and the player accepting it or rejecting it. This bit is rather thorny (experienced modders will get the sheer cheese of that<img src=smilies/icon_smile_big.gif width=15 height=15 border=0 align=middle>), and it´s probably best, at least in the short term, to pike a mission offer from another story mission. If your mission takes place on a base other that ones in the story, you can always use RelocatePlayer to put yourself there only for that bit<img src=smilies/icon_smile_tongue.gif width=15 height=15 border=0 align=middle>. Anyway, here´s the Mission 2 Briefing, you can always use fled ids to change the text [Trigger nickname = lce_bar_li01_01 Cnd_LocEnter = Bar, Li01_01_base Act_AddRTC = missionsm02M002_s009a_Li01_01_offer.ini Act_ActTrig = mrp_reject Act_ActTrig = mrp_accept Act_ActTrig = write_mission_log Act_DeactTrig = entered_the_system Act_DeactTrig = meet_on_manhattan Act_SetNNObj = talk_to_juni [Trigger nickname = mrp_reject Cnd_MsnResponse = reject Act_RemoveRTC = missionsm02M002_s009a_Li01_01_offer.ini Act_AddRTC = missionsm02M002_s009d_Li01_01_reoffer.ini, repeatable [Trigger nickname = mrp_accept Cnd_MsnResponse = accept Act_RemoveRTC = missionsm02M002_s009d_Li01_01_reoffer.ini Act_AddRTC = missionsm02M002_s010x_Li01_01_nrml.ini Act_ActTrig = spe_li01_01 Act_SetTitle = 22200 Act_SetOffer = 22205 Act_SetNNObj = first_launch Act_DeactTrig = mrp_reject Act_RandomPopSphere = -30642, 0, -29671, 6000, off Act_RandomPop = false Act_ActTrig = exit_base Act_DeactTrig = beginning_ether Act_NNIds = 30205, HISTORY Act_ActTrig = entering_cityscape Act_DeactTrig = keep_door_open Now you can´t use exactly that because your Objectives and so forth have different names, but if you look at it, you´ll see that you need to set up 3 triggers. Act_NNIds is a Log entry, and RTCs are reserved spaces in the bar for main characters so you can talk to them again if you reject the mission. I may update this section later, but for now it´s a real fog to me<img src=smilies/icon_smile_sad.gif width=15 height=15 border=0 align=middle> I´ve covered all the essentials, now on to putting them together to form a mission. After your mission accept/reject triggers, you´ll want to put a Cnd_LaunchComplete trigger in, and have it spawn the ships that are there immediately with either SpawnShip or SpawnSolar. Also use another useful Trigger, SetVibeLblToShip. Use it like this: Act_SetVibeLblToShip = *label of ships*, Player, REP_FRIEND_THRESHOLD. This will ensure that the ships show up as green. When you meet enemies, put these three actions in: Act_SetVibeLblToShip = *label of enemies*, *label of allies*, REP_HOSTILE_THRESHOLD Act_SetVibeLblToShip = *label of allies*, *label of enemies*, REP_HOSTILE_THRESHOLD Act_SetVibeLblToShip = *label of enemies*, Player, REP_HOSTILE_THRESHOLD Enough for now. More soon Edited by - Darkstone on 4/22/2004 12:30:40 PM
Signature from »Megistos« A good pun is its own reword.

Lethal_Dark

Private First Class

(10)

Date of registration: Feb 20th 2005

Reputation modifier: 8

  • Send private message

member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month

3

Sunday, April 3rd 2005, 10:23am

Did you ever get new story mission to work properly?
Signature from »Lethal_Dark«

Date of registration: Dec 15th 2004

Reputation modifier: 8

  • Send private message

member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month

4

Sunday, April 3rd 2005, 10:37am

I went through the first mission after reading this tutorial and now I have a few questions: 1. How are camera movements and cuts done? 2. A lot of thn files are referred to, what exactly do they do? Are they responsible for camera movements? Or do they do something else? 3. How are the conversations on a planet between two persons done? For example the Manhattan bartender and Trent.
Signature from »Manhattan_Guy«

LaneHacka

Private First Class

(10)

Date of registration: May 17th 2005

Reputation modifier: 8

  • Send private message

member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month

5

Tuesday, May 17th 2005, 9:58am

1. Thorn Files *.thn 2. Use this program to decompile them perfectly. <A href=´http://www.cyberionsystems.com/freelancer/files/THN-decompiler.zip´ Target=_Blank>Click here</a> 3. See #1 Edited by - LaneHacka on 5/17/2005 9:01:23 AM
Signature from »LaneHacka«

Date of registration: Dec 15th 2004

Reputation modifier: 8

  • Send private message

member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month

6

Friday, May 27th 2005, 3:15am

I see. Well I suppose those camera-THN´s just contain information how the camera has to move. But it must somehow be defined, exactly where in the current scene the camera is located. As far as I can see, the conversations on planets are the most difficult part of the whole story-mission scripting, because of the complex animations of the bodies, which I think are only usable by the character, that already used it in the original missions. However, it could also be the case, that every body has the same &quot;animation hardpoints&quot; and every model can perform the same animations. Anyway, it still seems to be a tricky thing, getting fluid animations.
Signature from »Manhattan_Guy«

Date of registration: Dec 15th 2004

Reputation modifier: 8

  • Send private message

member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month

7

Saturday, July 16th 2005, 1:54pm

There is one very important aspect which I think was not mentioned here. How are the missions triggered? What tells the game to start Mission 1a now? Is it hardcoded? Well, it obviously has something to do with the pilot´s level, that´s for sure, but how exactly does it work?
Signature from »Manhattan_Guy«

Aldebaran28

Apprentice

(10)

Date of registration: Jan 20th 2005

Reputation modifier: 8

  • Send private message

member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month

8

Sunday, July 17th 2005, 6:51pm

THN´s are used in many cut scenes. The most common places they are used include: Single Player Story Cut Scenes The various Intro screens you get playing in the background of the menu Any ´room´ on a planet or station Any docking and landing scenes that occur Sometimes one scene can have as many as four THN´s (as in the case of planetary landing scenes: There is the ambient THN for lighting and special effects including background traffic (or was that a seperate file, I can´t remember clearly at this time of morning), hardpoints (where everything appears in the scene including the scenerio, the player ship etc...), a landing animation THN and a take off THN). It is not just Camera movements defined in the THN´s but more importantly, it does dictate the start and stopping points (or what the camera is following and where to begin from). The same applies to any animations as well. Freeworlds Mod Developer Author of Modular Station ´There is no Good nor Evil in the universe, just perceptions and circumstances.´
Signature from »Aldebaran28« Freeworlds Mod Developer Author of Modular Station `There is no Good nor Evil in the universe, just perceptions and circumstances.`

Date of registration: Dec 15th 2004

Reputation modifier: 8

  • Send private message

member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month

9

Monday, July 18th 2005, 6:37am

Thank you, but that was not really my question. Maybe I should specify it. How does the game know to start m01a.ini now, at the beginning of the game? And how does it know to start m01b after that?
Signature from »Manhattan_Guy«

Louva-Deus

Apprentice

(10)

Posts: 0

Activitypoints: 0

Date of registration: Aug 29th 2003

Reputation modifier: 9

Level: 1 [?]

Experience: 0

Next Level: 10

  • Send private message

member since 180 month member since 180 month member since 180 month member since 180 month member since 180 month member since 180 month member since 180 month member since 180 month member since 180 month member since 180 month member since 180 month member since 180 month member since 180 month member since 180 month member since 180 month

10

Monday, July 18th 2005, 10:48am

Because of the following entry in the newplayer.fl [StoryInfo Mission = Mission_01a MissionNum = 1 delta_worth = -1 Edited by - Louva-Deus on 7/18/2005 9:55:30 AM
Signature from »Louva-Deus« Old dog. New tricks.

Date of registration: Dec 15th 2004

Reputation modifier: 8

  • Send private message

member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month member since 156 month

11

Friday, July 22nd 2005, 12:27pm

Ah, great. And now of course the folowing question is: How is defined which mission comes after the first one? Is it maybe defined at the end of the script of the first mission? And with the question &quot;What is initialized?&quot; the question &quot;When is it initialized?&quot; remains. Ah and of course where the missions are listed. Cuz in m01a.ini, the term &quot;Mission_01a&quot;, referred to by the newplayer.fl, actually never appears. Thus there must be a file or entry in which all missions are defined and given their ini-files. Where is this located? And another one, about IDs this time: The mission title and description at the very beginning of the script lead to empty strings, like the objective IDs to as well. Any idea what´s going on here?
Signature from »Manhattan_Guy«

Louva-Deus

Apprentice

(10)

Posts: 0

Activitypoints: 0

Date of registration: Aug 29th 2003

Reputation modifier: 9

Level: 1 [?]

Experience: 0

Next Level: 10

  • Send private message

member since 180 month member since 180 month member since 180 month member since 180 month member since 180 month member since 180 month member since 180 month member since 180 month member since 180 month member since 180 month member since 180 month member since 180 month member since 180 month member since 180 month member since 180 month

12

Saturday, July 23rd 2005, 12:37am

All of that is handled by the content.dll file as far as I know.
Signature from »Louva-Deus« Old dog. New tricks.

Social bookmarks

Legend:

Forum contains no new posts
Forum contains new posts
Forum is closed
Forum is an external link