 _____________________________________________

		MPConvo Version 4
			_

	    http://insolitogaming.com
 _____________________________________________

 - Created by Cozmo, 2011

 - 1. Description
 - 2. Features
 - 3. Installation
 - 4. Tutorial
 - 5. Non-detail tutorial
 - 6. Detailed explanation of options
 - 7. Permissions
 _____________________________________________

   1. Description


 - This mod/kit allows you to create complex
   NPCs and entire custom missions for them
   from within the standard Deus Ex SDK
   (UnrealEd) for your multiplayer maps.

 - Each NPC features a possible 20 lines of
   dialogue in each conversation, and 10
   different "interactions" (featuring these
   conversations), so that's 200 lines of
   possible dialogue per NPC (overkill).

 _____________________________________________

   2. Features


 - Create custom missions
 - Customise NPCs
 - Large amount of "interactions" and
   conversations
 - Respawning
 - Follow players (and wait for them)
 - Follow paths
 - Patrol routes
 - Allies and enemies
 - Spawn them at will (ambushes etc)
 - Not only compatible with but can work with
   other mods! (via triggering!)
 - Pedestrian generator from Cozmo_RPG

   [Warning: Incoming mess below...]

 - Storable conditions, that can be set via
   conversations, ending a path, reaching a
   destination (via following), dying, taking
   damage, opening a door or picking up an
   item. You can also check for these
   conditions most of those times.

 _____________________________________________

   3. Installation


 - Extract MPConvoV4.u to your DeusEx/System
   folder

 - Now open your DeusEx.ini in the same folder

 - Search [CTRL + F] for EditPackages= and
   add a new line under that and paste this

 - EditPackages=MPConvov4

   And we're done. It will now load the mod
   whenever you run the SDK.

 _____________________________________________

   4. Tutorial


   Important!

   This all might seem overwhelming at first,
   but remember remember that when it comes
   down to it, you only have to change a few
   values per mission. This is in A LOT more 
   detail than it needs to be. Moving on...

 _____________________________________________


   5. Non-detail tutorial

   I'm VERY serious about it being easy. I
   don't want it to be disregarded as 
   overcomplicated. Once you're done reading
   the block below, this is all it actually
   was.



   - Add storage class to map

   - Create a pawn
   - Change pawn appearance and name to cop
   - Set MissionNumber
   - Set first conversation and second, set
     conditions

   - Create another pawn
   - Change appearance, name and tag to
     hostage.
   - Add dialogue, set condition

   - Add NPC check, final dialogue and reward
     for cop pawn



   And it's ready. I'm not sure the process
   can be simplified further, if at all.

 _____________________________________________

   We're going to do a basic mission for the
   tutorial. To make use of the functionality,
   it's going to be a small hostage rescue.

   This is just an example mission; sorry for
   the lack of creativity.

   First off, whenever we want to use MPConvo
   we have to add ONE MPConvoV4_Storage class
   to the map.

   Actor > Info > Mutators > MPConvoV4_Storage

   Add it anywhere; it's invisible in-game.
   We'll need to do this once per map that
   uses this mod. It won't work otherwise.

   Now, how do we want our mission to work?
   It's best to plan these out in notepad
   beforehand. Let's say, we talk to a cop,
   get given objectives by him and have to
   rescue a hostage (normal male civilian?)
   from a facility. Whether you kill the
   terrorists or not is irrelevant.

 _____________________________________________

   Okay, so let's get started.

   First, we're going to make our cop. Add
   the pawn to the map.

   Actor > Pawn > ScriptedPawn > MPBot_Edit
   > MPConvoPawn_V4

   You should now have a white silhouette of
   an NPC. You can choose textures and models
   as you wish, but for convenience, we're
   going to use the existing cop appearance.

   Right click on the pawn, and you should
   have a list of properties. Extend the
   MPConvoPawn_V4 part and you should have a
   list of options. Click on the AppearAs
   field, and type the class name OR click the
   "..." button to the right of it, and select
   the desired pawn with the appearance you
   wish to copy.

   Inside the editor, it will still appear to
   be a white silhouette, but as long as a
   valid class name is in AppearAs field, it
   will show up in-game. Trust me. While we're
   here, change "Pawnsname" to "Cop" or
   something else of your choice, and set the
   MissionNumber to 1 (or leave as 0, but this
   will need to be referenced later).

   Now we want our cop to do stuff. By default
   he should be standing still, but in the 
   "Orders" section of properties, you can
   change this to Wandering, Sitting, Dancing
   and so on. Let's just have him stand around
   for now...

 _____________________________________________

   We now have our cop, but he's standing
   around with no custom dialogue. Let's 
   change that. In the MPConvoPawn_V4 part of 
   the properties, there should be more inside
   under "Interactions". Open this, and you
   should have 10 different ones that can be
   expanded further.

   Expand the top one. You should now have a
   lot of new options. Ignore all of them for
   now, and focus on ConditionID. This should
   be 1337; change it to 0. You'll see later.

   Now then. Expand the "ConvoMessages" part.

   This is where dialogue is entered. The
   lines will show at the top of the screen,
   one after the other, until it hits a blank
   line. Fill the lines with dialogue for when
   you FIRST talk to the cop, like so.

   Note that "|p3" or other numbers denotes
   colour. 3 being yellow, and 1 being white.
   Note that White doesn't work as well in MP.

   [Warning: Lame dialogue incoming]

   ConvoMessages[0] "|p3You: Hello."

   ConvoMessages[1] "|p1Cop: Hi. Need you to
   do a mission etc DIALOGUE HERE."

   ConvoMessages[2] "|p1You: I'll do it."
   
   We're done. I hope you entered a more
   creative conversation than I did. Now, we
   don't want to have this conversation with
   the cop again, so look for 

   E_SetMissionCondition

   and set it to 1.

   You should notice that there are a few
   properties starting with E_ here, like
   that one. The E_ prefix means it happens
   AFTER the conversation in this interaction.

   You'll notice two more prefixes. EP_ and D_
   EP_ is stuff that happens at the end of a
   path (eg. patrol route) and D_ is stuff that
   happens when the pawn dies. Note that
   everything in this section is specifically
   checking for the condition we set earlier
   (ConditionID 0! Everything in this section
   only happens if this mission's condition is
   0.)

   A note on what this is; each mission has a
   "condition", where it's remembered by the
   game through integers. In this case, the
   condition for MissionNumber 1 (or 0, if you
   left it) being 0 means we haven't spoken
   to the cop, and 1 means we have. 2 will be
   all of the above, plus gained the hostage.

 _____________________________________________

   Now for a small detail. Open the second
   "Interactions" chunk and change this 
   ConditionID to 1. Remember how we set the
   mission condition to 1 a minute ago? This
   means that now only the stuff in this
   Interaction can happen. We're using this
   so you don't get the mission brief again.

   ConvoMessage[0] "|p3Cop: What are you still
   doing here?"

   And that's that. Moving on.

   Now we need to make the hostage. Add
   another MPConvoPawn_V4 to the map, and set
   their appearance to whatever you want. One
   of the civilians maybe? Now add the same
   mission number you used earlier in the cop.
   Change pawnsName to "Hostage", and the tag
   to hostage too (lower case for tags).

   We don't want the hostage to interact with
   the player at all if they haven't spoken
   to the cop, so in a fresh Interactions in
   this new class, set the ConditionID to 1,
   and forget 0 completely. Easy. Now add a
   small conversation (though you don't have
   to)...

   ConvoMessage[0] "|p1You: Follow me - I'm
   getting you out of here."

   ConvoMessage[1] "|p3Hostage: Thanks!"

   And set E_FollowPlayer (when convo ends,
   follow player) to true.

   Now back to the cop.

   New Interaction for the cop. Change the
   ConditionID to 2, and change  CheckNPCTag
   to hostage (lower case for tag). Change 
   E_GiveMoneyToPlayer to, say, 200 credits
   and give a little winning dialogue.
   Also set E_SetMissionCondition to 4 if
   you want the player to complete it, or
   0 if you want them to be able to do it
   again.

   Now, when the player returns to the cop
   with their newfound friend, the cop will
   check if they're nearby and do the last
   interaction, resulting in a mission
   completion and 200 credits.





















