Mission Director Basics and Installation

The place to discuss scripting and game modifications for X³: Reunion.

Moderators: Moderators for English X Forum, Scripting / Modding Moderators

Post Reply
ChemODun
Posts: 320
Joined: Mon, 12. Feb 07, 21:58
x3tc

Post by ChemODun » Fri, 4. Jan 08, 14:39

CBJ wrote: I'll divulge a little snippet of information that I probably shouldn't: player comms integration is one of the MD features that is already under development for whatever future product the MD might be used in.
It's sound good.

How often new public version of this preview will be realased?

I was prepare Russian translation all <document> tags in director.xsd. I can send it to your or public in this topic.
Multiply entropy by absolute zero

Ñâîáîäà ñðåäè çâåçä / Freedom in space

CBJ
EGOSOFT
EGOSOFT
Posts: 51740
Joined: Tue, 29. Apr 03, 00:56
x4

Post by CBJ » Fri, 4. Jan 08, 14:42

ChemODun wrote:How often new public version of this preview will be realased?
Clearly another misunderstanding. There are no plans to release any updates to the preview. That's part of what is meant by "unsupported".

ChemODun
Posts: 320
Joined: Mon, 12. Feb 07, 21:58
x3tc

Post by ChemODun » Fri, 4. Jan 08, 16:24

CBJ wrote:
ChemODun wrote:How often new public version of this preview will be realased?
Clearly another misunderstanding. There are no plans to release any updates to the preview. That's part of what is meant by "unsupported".
So, no new releases of MD until full version ?

It must be released in X3 or another game ?

If it will be released not in X3, what for it was public ?
Multiply entropy by absolute zero

Ñâîáîäà ñðåäè çâåçä / Freedom in space

User avatar
Moonraven
Posts: 968
Joined: Wed, 27. Aug 03, 11:13
x3

Post by Moonraven » Fri, 4. Jan 08, 16:40

It's just a public preview, of the MD without any support from Egosoft.

It won't be released in X3.

It MIGHT be integrated in a following game.


It's just a thing for the egosoft-team, to see, if the way, how the md works, is ok for the public.
Gruß Moonraven
Wer lesen kann, ist ganz klar im Vorteil.
[ external image ]

CBJ
EGOSOFT
EGOSOFT
Posts: 51740
Joined: Tue, 29. Apr 03, 00:56
x4

Post by CBJ » Fri, 4. Jan 08, 16:46

I'm not sure what you are asking. I thought I'd explained it pretty clearly, but here it is again: there are no plans for any updated releases of the MD for X3.

The MD in X3 2.5 is a technology preview. The MD is being developed for use in future Egosoft games, but as you know there has been no announcement about what those future games might be. The technology preview has been released in X3 for several reasons:

- So that Egosoft can see how it performs and behaves "in the wild", and influence development of the MD accordingly for whatever future game or games it is used in.
- So that scripters and modders can have fun creating yet more content for X3, while at the same time honing their MD skills for whatever comes next.
- So that players of that content can have fun playing any new content created by those scripters and modders.

ChemODun
Posts: 320
Joined: Mon, 12. Feb 07, 21:58
x3tc

Post by ChemODun » Fri, 4. Jan 08, 16:50

Moonraven wrote:It's just a public preview, of the MD without any support from Egosoft.

It won't be released in X3.

It MIGHT be integrated in a following game.


It's just a thing for the egosoft-team, to see, if the way, how the md works, is ok for the public.
Understand. It was public for one thing, from my point of view - say to all X-series pilots: "We are live. Don't forget about us".

P.S. I will finish my translation of "Mission Director – Beginners’ Guide", and lay it on the shelf.

Append.
CBJ wrote: The technology preview has been released in X3 for several reasons:

- So that Egosoft can see how it performs and behaves "in the wild", and influence development of the MD accordingly for whatever future game or games it is used in.
- So that scripters and modders can have fun creating yet more content for X3, while at the same time honing their MD skills for whatever comes next.
- So that players of that content can have fun playing any new content created by those scripters and modders.
It sound great, but if MD don't have any bugs. I find it hard to believe.
But becouse bugs may be in MD , and EGOSOFT haven't any plans for fixing ... it's only PR action.
Multiply entropy by absolute zero

Ñâîáîäà ñðåäè çâåçä / Freedom in space

CBJ
EGOSOFT
EGOSOFT
Posts: 51740
Joined: Tue, 29. Apr 03, 00:56
x4

Post by CBJ » Fri, 4. Jan 08, 17:32

The MD was tested sufficiently to be reasonably confident that it is good enough for the purposes stated above. Those are the primary reasons for its inclusion; if you choose to put some other spin on it then that's entirely up to you. I'm sure others will enjoy playing around with it even if you dismiss it as PR.

User avatar
Sandalpocalypse
Posts: 4447
Joined: Tue, 2. Dec 03, 22:28
x4

Post by Sandalpocalypse » Fri, 4. Jan 08, 18:37

ah yeah it got put up but it wasn't in the update list ;)

cheers

Jakesnake5
Posts: 2880
Joined: Fri, 17. Feb 06, 04:55
x4

Post by Jakesnake5 » Fri, 4. Jan 08, 20:40

@ChemODun

Several points.

1) MD was not the 'primary' item released in 2.5. It was an 'addon', which they cannot support, as it would take time away from more important activities.

2) MD was released because it was 'mostly' bug free (there are 1 or 2 glitches, but nothing bad), and had been mentioned in an earlier News article, but no sign of it but to those of L5+ access.

3) Egosoft wanted to give the users a much demanded 'easier alternate' to creating missions. MD does this, it just takes a little practice to get used to.

MD is event driven. If you can imagine an event, the MD can probably use it in a mission.

Since MD can't do some of the more complicated things with objects, it has the ability to run standard X3 scripts to deal with them.

It is upto us users of MD, to find out what can be done, and help others if we can. Egosoft has a full plate in front of them, and cannot allocate the time to 'update' the MD.

I am glad they even THOUGHT to add the MD to 2.5. I liked playing with it, seeing if I could make it 'bark'. :D
Perfection is in the hands of God, we bags of dirt can only do the best we can©
[ external image ]
Modders are a source of ideas to help the Game Makers improve what they have made. Cherrish them, for they are the fruit of thy labors.©

ChemODun
Posts: 320
Joined: Mon, 12. Feb 07, 21:58
x3tc

Post by ChemODun » Fri, 4. Jan 08, 22:51

Jakesnake5 wrote:@ChemODun

Several points.

1) MD was not the 'primary' item released in 2.5. It was an 'addon', which they cannot support, as it would take time away from more important activities.
Ok. What item is primary? Export Game Statistics ? Or 8 new script commands ? Big step from 2.0.02 to 2.5.
Jakesnake5 wrote: 2) MD was released because it was 'mostly' bug free (there are 1 or 2 glitches, but nothing bad), and had been mentioned in an earlier News article, but no sign of it but to those of L5+ access.
MD - great thing. At least it has internal documentation (after I was make translation to Russian director.xsd - I know how it's work). But if it not be supported and it doesn't have new feature in X3 - it's bad for me. It dead
Jakesnake5 wrote: 3) Egosoft wanted to give the users a much demanded 'easier alternate' to creating missions. MD does this, it just takes a little practice to get used to.
But it look like : "We have grat thing - MD, but you can't have it full functionality in current game. When we release new game, buy this game and ..."
Jakesnake5 wrote: MD is event driven. If you can imagine an event, the MD can probably use it in a mission.
Yes. I can see it :-)

Ok. I was say all from my point of view.
P.S. MD - great tool, but in future. Not in X3.
Multiply entropy by absolute zero

Ñâîáîäà ñðåäè çâåçä / Freedom in space

User avatar
Stevio
Posts: 2271
Joined: Sat, 4. Jun 05, 10:36
x3tc

Post by Stevio » Fri, 4. Jan 08, 23:22

ChemODun wrote:Ok. What item is primary? Export Game Statistics ? Or 8 new script commands ? Big step from 2.0.02 to 2.5.
Version numbers are usually build codes, but they can even be a random number to make it seem more important :P :lol:

Cycrow
Moderator (Script&Mod)
Moderator (Script&Mod)
Posts: 22201
Joined: Sun, 14. Nov 04, 23:26
x4

Post by Cycrow » Fri, 4. Jan 08, 23:49

ChemODun wrote: Ok. I was say all from my point of view.
P.S. MD - great tool, but in future. Not in X3.
well i disagree, just because its unsupported, doesn't make it useless.

you can still use it to make and add missions into X3, and it will be able to expand on what can currently be added to the game.

also, the missions you make should work on the next game when its available as well, or at the very elast, u'll be able to start creating new missions straight away

User avatar
SymTec ltd.
Posts: 5285
Joined: Mon, 11. Apr 05, 21:11
x3tc

Post by SymTec ltd. » Sat, 5. Jan 08, 00:11

Maybe it would help if the ones interested in creating missions just went ahead and did so (and asked questions about this in this thread), instead of the ones not interested in creating missions discussing the MD in theory without any practical reference.

I made one early mission that did not work (at that time - MD might have been fixed since then :roll:), and wrote an MD-plugin that worked great from the beginning on and is already used by me and others to improve MSCI-scripts and the game X3. If you decide not to use the powers of the MD, go ahead and not do so - but why is there a need then to talk about this? I decided not to go into ship modding - do I discuss this in a thread? No.

CBJ
EGOSOFT
EGOSOFT
Posts: 51740
Joined: Tue, 29. Apr 03, 00:56
x4

Post by CBJ » Sat, 5. Jan 08, 00:21

ChemODun wrote:Ok. What item is primary? Export Game Statistics ? Or 8 new script commands ?
The game statistic export facility was the primary, and indeed the only, reason for this patch. Anything else that is included in the 2.5 release is a bonus; it is there because the patch gave the developers one final opportunity to add a few small things that had been requested (such as the script commands and fixes) or that they thought would be interesting (like the MD). Why am I so sure? Because it was me who requested that the MD be included in the patch, and I can assure you that my reasons for doing so were those that I listed before.

If you don't want to use the MD in X3 then no-one is forcing you to. Feel free to step away from this thread any time you like and let people get on with it, as they already have been in the German forum. I'm looking forward to seeing what they come up with.

User avatar
Sandalpocalypse
Posts: 4447
Joined: Tue, 2. Dec 03, 22:28
x4

Post by Sandalpocalypse » Sat, 5. Jan 08, 08:29

Blech.

I'm not sure what I'm doing wrong here...

My first test mission won't even try to start. The cue shows up in the mission director menu but it doesnt do anything, even when I remove all the conditions and added a test incoming-message. Next I tried adding the "Hello World" script to the Director-directory and that seems to work fine so the director itself seems functional.

My game isn't generating a director.dmp file either. I tried running it as administrator and no joy so I don't *think* it's a vista issue. I could probably troubleshoot this myself if I could see the dmp file :/

i get nothing with this..

Code: Select all

  <cues>
    <cue name="DS01 Start">
      <condition>
          <check_age value="{player.age}" min="10s" />            
      </condition>
      <action>
        <!--<do_all>-->          
          <incoming_message text="testing" />
          <!--<add_bbs_quest name="DS01 Quest" priority="5000" max="1"/>
        </do_all>-->
      </action>
and that's functionally identical to Hello World as far as I can tell...

the file itself is here, I'm sure there are plenty of errors further down, but I am mostly concerned about the start.

Diamonddragon
Posts: 1957
Joined: Sat, 7. Feb 04, 20:26
x3tc

Post by Diamonddragon » Sat, 5. Jan 08, 11:20

Got it working, at least till it shows up on the BBS.
A problem with your reset_cue: you reset the top level cue, meaning it will add the quest again etc. but thats unnecessary. Cancel the cue thats triggered when the bbs quest is evaluated is enough for the cues to be

Oh and about the multiple typenames: The MD will choose ONE of the ones you provided, so if it chooses SS_FAC_F219 but there is only a destillery with the typename SS_FAC_F219_1 in the system, it wont find it. You could first search for the first typename and then with a do_if look if there was an object found. If not, the search for the station with the other typename and if that didnt work, cancel the cue.

About the director.dmp: it has been deactivated in the released 2.5 version because of performance problems.

Code: Select all

<?xml version="1.0" encoding="ISO-8859-1" ?>
<?xml-stylesheet href="director.xsl" type="text/xsl" ?>
<director name="BBSTemplate" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="director.xsd">
  <documentation>
    <author name="name" alias="username" contact="contact details" />
    <content reference="DS01" name="Distillery Raid" description="Raid a Space Fuel Distillery" />
    <version number="0.1" date="today" status="sample" />
  </documentation>
  <cues>
    <cue name="DS01 Start">
      <condition>
        <check_all>
          <check_age value="{player.age}" min="10s" />
          <!--<object_changed_sector/>-->
        </check_all>
      </condition>
      <action>
        <do_all>
          <add_bbs_quest name="DS01" priority="1000" max="1"/>
        </do_all>
      </action>
      <cues>
        <cue name="DS01 Find Station" instantiate="static">
          <condition>
            <check_all>
              <bbs_quest_evaluated quest="DS01"/>
              <check_value value="{player.sector.race}" exact="{lookup.race@argon}"/>
              <check_any>
                <match_object class="fighter"/>
                <match_object class="m6"/>
                <match_object class="m7"/>
              </check_any>
            </check_all>
          </condition>
          <action>
            <do_all>
              <find_station typename="{random.type@SS_FAC_F219|SS_FAC_F219_1}" nearest="1" name="this.Distillery" max="1" comment="Find the nearest Space Fuel Distillery"/>
              <set_sector name="this.SFDSector" value="{object.sector@this.Distillery}"/>
              <find_station typename="SS_DOCK_A_TRADE" max="1" nearest="1" race="argon" name="this.Paddybase" comment="Find the nearest trading station"/>
              <!--<set_sector name="DS01.DockSector"/>-->
            </do_all>
          </action>
          <cues>
            <cue name="DS01 reset" comment="checks if the dock and distillery are valid and in sector">
              <condition>
                <check_all>
                  <cue_completed cue="DS01 Find Station"/>
                  <check_any>
                  <object_exists negate="1" object="parent.Distillery"/>
                  <object_exists negate="1" object="parent.Paddybase"/>                    
                  <check_value value="{object.race@parent.Distillery}" exact="{object.race@{player.ship}}" comment="Player owned?"/>
                  <check_value negate="1" value="{sector@DS01 Find Station.SFDSector}" exact="{player.sector}"/>
                  <!--<check_value negate="1" value="DS01.DockSector" exact="{player.sector}"/>-->
                </check_any>
                </check_all>
              </condition>
              <timing>
                <time min="1s"/>
              </timing>
              <action>
                <do_all>
                  <cancel_cue cue="DS01 Find Station"/>
                </do_all>
              </action>
            </cue>
            <cue name="DS01 Mission Offer" instantiate="static" comment="This will offer the BBS Mission to the player">
              <condition>
                <check_all>
                  <cue_completed cue="DS01 Find Station"/>
                  <cue_activated negate="1" cue="DS01 reset"/>
                </check_all>
              </condition>
              <action>
                <do_all>
                  <create_actor race="argon" name="Copper" character="{random.pilot.argon}"/>
                  <set_value name="this.DS01Reward" min="101" max="250" profile="decreasing"/>
                  <offer_bbs_quest quest="DS01" author="Copper" text="Raid the Space Fuel Distillery?\n\n[center][select value='yes']You bet![/select][/center]\n" />
                </do_all>
              </action>
              <cues>
                <cue name="DS01 Accept" comment="If the player accepts your quest">
                  <condition>
                    <bbs_quest_selected quest="DS01" answer="yes"/>
                  </condition>
                  <timing>
                    <time min="1s" max="2s"/>
                  </timing>
                  <action comment="start quest, create transport">
                    <do_all>
                      <accept_bbs_quest quest="DS01" />
                      <incoming_message author="Copper" text="Let's go!" />
                      <create_ship group="DS01Paddygroup" leader="1" class="tp" race="argon" highlight="1" typename="{random.type@SS_SH_A_TP_1|SS_SH_A_TP}" capturable="0" name="DS01Paddywagon" dockobject="DS01 Find Station.Paddybase" racelogic="0">
                        <equipment loadout="default">
                        </equipment>
                        <cargo>
                          <ware typename="SS_WARE_MPERSONNEL" min="40" max="60"/>
                          <ware typename="SS_WARE_HWEAPONS" min="40" max="60"/>
                        </cargo>
                        <command command="dock" commandobject="DS01 Find Station.Distillery">
                          <position/>
                        </command>
                        <relations>
                          <relation relation="friend"/>
                          <relation relationobject="DS01 Find Station.Distillery" relation="friend"/>
                        </relations>
                        <pilot shipname="Argon Police Transport" name="{random.pilot.argon}" race="argon" />
                      </create_ship>
                    </do_all>
                  </action>
                  <cues>
                    <cue name="DS01 Paddykilled" comment="Checks if the Paddywagon is dead">
                      <condition>
                        <object_destroyed object="DS01Paddywagon"/>
                      </condition>
                      <timing>
                        <time min="1s"/>
                      </timing>
                      <action>
                        <do_all>
                          <incoming_message author="Copper" text="Mission failed: The transport was destroyed!"/>
                          <cancel_cue cue="DS01 Find Station"/>
                        </do_all>
                      </action>
                    </cue>
                    <cue name="DS01 Distillerykilled" comment="Checks if the distillery has been destroyed">
                      <condition>
                        <object_destroyed object="DS01 Find Station.Distillery"/>
                      </condition>
                      <timing>
                        <time min="1s"/>
                      </timing>
                      <action>
                        <do_all>
                          <incoming_message author="Copper" text="Mission failed: The distillery was destroyed! Excessive force is not appreciated."/>
                          <cancel_cue cue="DS01 Find Station"/>
                        </do_all>
                      </action>
                    </cue>
                    <cue name="DS01 Paddydocked">
                      <condition>
                        <all_objects_are_docked dockobject="DS01 Find Station.Distillery" group="DS01Paddygroup"/>
                      </condition>
                      <timing>
                        <time min="2s" max="3s"/>
                      </timing>
                      <action>
                        <incoming_message author="Copper" text="Great job! We're boarding now, stand by."/>
                      </action>
                      <cues>
                        <cue name="DS01 GJ">
                          <condition>
                            <cue_completed cue="DS01 Paddydocked"/>
                          </condition>
                          <timing>
                            <time min="10s" max="20s"/>
                          </timing>
                          <action>
                            <do_all>
                              <incoming_message author="Copper" text="That's another gang rounded up. Here is your {value@DS01 Mission Offer.DS01Reward},000 credits. You have my thanks, that could have been pretty hairy!"/>
                              <reward_player>
                                <money exact="(DS01 Mission Offer.DS01Reward)*1000"/>
                                <notoriety>
                                  <relation race="argon" exact="10"/>
                                </notoriety>
                              </reward_player>
                              <destroy_object object="DS01Paddywagon" explosion="0"/>
                              <cancel_cue cue="DS01 Find Station"/>
                            </do_all>
                          </action>
                        </cue>
                      </cues>
                    </cue>
                  </cues>
                </cue>
              </cues>
            </cue>
          </cues>
        </cue>
      </cues>
    </cue>
  </cues>
</director>
Es ist nicht das Schicksal, was die Zukunft bestimmt.
Script- und Modliste

User avatar
Sandalpocalypse
Posts: 4447
Joined: Tue, 2. Dec 03, 22:28
x4

Post by Sandalpocalypse » Sat, 5. Jan 08, 12:43

Cheers Diamonddragon,

All good things to know, and good point about the factories.

I fiddled with your fixed version a bit and think I found a pretty straightforward way to account for that.

Thanks tons for the help. :)

jlehtone
Posts: 21801
Joined: Sat, 23. Apr 05, 21:42
x4

Post by jlehtone » Sat, 5. Jan 08, 13:29

Sorry if asking obvious ...

1.

Code: Select all

<condition>
  <any_object_targeted group="ships_running_trade_mk3"/>
</condition>
...
Would that be a feasible "early warning system", or simply waste of CPU?


2. Events galore, but is any of them of type "player accepted/completed hardcoded BBS mission"? For example to modífy reward if player completes a mission in particular way?
Goner Pancake Protector X
Insanity included at no extra charge.
There is no Box. I am the sand.

eladan
Posts: 7168
Joined: Sat, 7. Jan 06, 16:01
x4

Post by eladan » Sat, 5. Jan 08, 13:43

jlehtone wrote:Would that be a feasible "early warning system", or simply waste of CPU?
It's one of the first things I noticed, and I plan to test it out. :)

OOS problems would undoubtedly remain though.

Xenon_Slayer
EGOSOFT
EGOSOFT
Posts: 13088
Joined: Sat, 9. Nov 02, 11:45
x4

Post by Xenon_Slayer » Sat, 5. Jan 08, 13:43

@jlehtone

Event triggers are not checked as much as value checks. That would wait for a target to be set by the player and then check if the target is in that group. It will not be a CPU hog unless the player repeatedly toggles between targets, even then the object audio description would probably more CPU intesive. That in itself would not be a good early warning system as the player is obviously aware of the target. <find_ships/> will be the best thing if you wanted to create a group which matched some parameters.

Not entirely sure what your second questions about sorry. There are several BBS actions and conditions yes. Be aware that this never seemed to work reliably. Try using other ways to offer missions. <ask_question/> nudge nudge.

Rewards can be what ever you want, even if it is not what the offering mission said. It can be changed anytime in the mission. Have you guys noticed all the different stuff besides money that can be rewarded ;-)
Come watch me on Twitch where I occasionally play several of the X games

Post Reply

Return to “X³: Reunion - Scripts and Modding”