OLD POST wrote:Coding each individual NPC and mission whilst making my RPG was a pain, so this is supposed to be my fix for that problem.
This is (or will be, with help) a kit that allows you to create your own complex missions and NPCs for your maps, with some functionality that hasn't been done before AFAIK. (NPCs being able to act as allies, follow, patrol, do small item transfers and all of this at different stages of missions etc.)
*other stuff removed*
2015 EDIT: I randomly revisited this and got it working about a year ago. Since then, progress has been at a snail's pace, and it's just perpetually awaiting testing, or fixes (for weird DX stuff) etc but it's obviously never going to happen. It's not in a state I'd consider releasable, but it's very close, and I don't want it just going to waste. Before 2016 is good enough.
It's a shame I wasn't capable of getting this to work when the game was active. RPG maps would have been very different. Oh well. Dumping it here, and if anyone uses it or learns anything from it, I'll be super happy.
What is MPConversations?
MPConversations is a mod-tool that I created for my RPG projects, to speed up the creation of missions for Deus Ex Multiplayer. With this, missions never need to be hard-coded, and can be created from within UnrealEd itself - with no coding required. It reduces the time required to make MP missions from hours of tedious copy-pasting to about 5 minutes of work. Unfotunately, I failed to get it working in 2011 and gave up, but revisited it years later (2014).
Warning: While this mod does work, note that it's not fully tested or polished. I can't work on it any more, so I'm releasing it as-is. If you'd like to use or modify MPConversations - please do! Just see permissions at the bottom.
How it works (logic)
To use this mod, there are only two values to understand: Mission Number, and Mission State. These are both just integers.
* MissionNumber refers to which mission an object is part of (you can have multiple missions in a map). Mission 0 doesn't exist; it must be 1 or higher to work.
* MissionState refers to the state of the mission (like flags). Objects can behave differently depending on the state of the mission. Each player has their own.
EXAMPLE:
- We have a simple (example) mission - a door is locked, and can only be opened by bribing or killing the nearby NPC. How this would work:
- The default MissionState is 0. The door would ignore you on 0, and only open for 1 or higher.
- The NPC, at MissionState 0, would offer to open the door for money. If you pay him, MissionState will be 1, and you can now use the door.
- Additionally, we can set it so that killing him at MissionState 0 will set it to 1 - also unlocking the door (you can add text implying that you took his keys)
That's it! Obviously, you'd flesh it out with dialogue and more options, but functionally, this is all you need to understand. Make sure every object in the mission has the same MissionNumber. See the notes at the bottom.
THINGS TO NOTE:
- You can have up to 128 missions (MissionNumber) on a map. There is virtually no limit on MissionState (integer limit: over 2 billion).
- NPCs have 10 maximum '_Interactions'. This means 10 different sets of behaviour, 10 full conversations, etc. It's more than enough.
- You can make CO-OP missions, but they're -not fully tested-. They behave like normal missions, except MissionState is the same for all players, and dialogue, rewards etc are shared.
- Remember that you can run your own code through MPConvo. Just use any Event to call your own object, and it will run that object's Triggered() code. Use MPConvo_Trigger to set mission states.
Download