Talking to objects
Talking to objects
I just started with DX SDK and am trying to set up some conversations with non-human objects, like the one with the water cooler and toilet in the Malkavian mod. I can get a human or robot convo to work but not objects and decorations (tried with Microscope, HKBuddha and MIBCarcass). Do I need to change some attributes or create a new item class?
For the record the conversations are set to invoke on frob or proximity of 5. I also gave each object a bindname in their conversation properties (same as their item class).
For the record the conversations are set to invoke on frob or proximity of 5. I also gave each object a bindname in their conversation properties (same as their item class).
Re: Talking to objects
*Pokes the Malkavian mod thread*
Jonas Wæver
Chief Poking Manager of TNM
I've made some videogames:
Expeditions: Rome
Expeditions: Viking
Expeditions: Conquistador
Clandestine
Chief Poking Manager of TNM
I've made some videogames:
Expeditions: Rome
Expeditions: Viking
Expeditions: Conquistador
Clandestine
Re: Talking to objects
In DeusEx you could talk to DeusEx.AIPrototype which is also a Decoration. Maybe you should lock at the map.
Re: Talking to objects
It's probably just a problem of the decoration being pushable or something like that, which overwrites the conversation event.
Jonas Wæver
Chief Poking Manager of TNM
I've made some videogames:
Expeditions: Rome
Expeditions: Viking
Expeditions: Conquistador
Clandestine
Chief Poking Manager of TNM
I've made some videogames:
Expeditions: Rome
Expeditions: Viking
Expeditions: Conquistador
Clandestine
Re: Talking to objects
Thanks guys, after a bit of experimentation I found putting bMovable to false or setting orders to idle does indeed mean you can't converse with an actor, I'm guessing this is stopping the Buddha conversation. BTW bIdle="true" does give Silver Dragon a cool look though. He'd make a good decoration (reminds me of Magus's castle in Chrono Trigger for some reason).
I have a few other questions if that is okay:
How to I make actors die/explode as a result of a conversation? I'm thinking of Trestkon's death after the Scara-Narcissus lecture and the killing the dogs (sorry "wolves") in the Malkavian mod. It would also be good if NPCs could be made to explode/become parts as if they had just been blown up. Any ideas?
What sound editors would you guys recommend for editing mp3 and wav files? I'm looking into cutting and pasting bits of convo audio together into new shapes like in the Malk mod/Deus Ex Machinima video.
How do you change the player character? When I open TNM maps in SDK it is always JC as PC and I was wondering how to make Trestkon the player character.
Finally is there by any chance a list of all the audio files in TNM? I went through the 2500 approx lines in the TNMConvos1AudioMission20.u just working out where they all came from (and found some interesting new dialogue I never came across before) but when I got to the end I realised I hadn't even heard all the day 1 convos, let alone the rest. It would save time looking for specific files if there was a list or at least an indication of roughly what is in each of the 10 audio files.
I have a few other questions if that is okay:
How to I make actors die/explode as a result of a conversation? I'm thinking of Trestkon's death after the Scara-Narcissus lecture and the killing the dogs (sorry "wolves") in the Malkavian mod. It would also be good if NPCs could be made to explode/become parts as if they had just been blown up. Any ideas?
What sound editors would you guys recommend for editing mp3 and wav files? I'm looking into cutting and pasting bits of convo audio together into new shapes like in the Malk mod/Deus Ex Machinima video.
How do you change the player character? When I open TNM maps in SDK it is always JC as PC and I was wondering how to make Trestkon the player character.
Finally is there by any chance a list of all the audio files in TNM? I went through the 2500 approx lines in the TNMConvos1AudioMission20.u just working out where they all came from (and found some interesting new dialogue I never came across before) but when I got to the end I realised I hadn't even heard all the day 1 convos, let alone the rest. It would save time looking for specific files if there was a list or at least an indication of roughly what is in each of the 10 audio files.
- Hassat Hunter
- Illuminati
- Posts: 2182
- Joined: Fri Apr 10, 2009 1:20 pm
Re: Talking to objects
Well, I have no DX modding experience at all, but I am going to try and answer some questions anyway .
For the killing, this is probably done by mission script (like uncovering characters and such). Set a flag, and have the script kill the NPC if that flag is set.
Well, that's what I think is done...
No idea how they did it though.
Also, the folders are structured the *exact* same way as the dialogue files, so it should be rather easy to find what you are looking for if you don't change the structure.
EDIT:
Also searching the con-files myself now and seeing the actor "Python". Is that Jonas' unfound secret? I want to find it!
EDIT2:
Then again, no responses in the SDK files on Trestkon's word, so maybe not...
EDIT3:
You mean bMovable to true?Delta2501 wrote:bMovable to false does indeed mean you can't converse with an actor
Well, for the explosion part just look up a MIB or WIB or something. They explode. Not sure how.How to I make actors die/explode as a result of a conversation? I'm thinking of Trestkon's death after the Scara-Narcissus lecture and the killing the dogs (sorry "wolves") in the Malkavian mod. It would also be good if NPCs could be made to explode/become parts as if they had just been blown up. Any ideas?
For the killing, this is probably done by mission script (like uncovering characters and such). Set a flag, and have the script kill the NPC if that flag is set.
Well, that's what I think is done...
You realise Trestkon is actually a reskinned JCDenton, right? He is still always listed at JC, which is why you can actually play Trestkon in the original DX campaign with TNM.How do you change the player character? When I open TNM maps in SDK it is always JC as PC and I was wondering how to make Trestkon the player character.
No idea how they did it though.
Well, you could just search for the appropriate filename in the TNM SDK folder, no? Or do I miss some bigger picture here?Finally is there by any chance a list of all the audio files in TNM? I went through the 2500 approx lines in the TNMConvos1AudioMission20.u just working out where they all came from (and found some interesting new dialogue I never came across before) but when I got to the end I realised I hadn't even heard all the day 1 convos, let alone the rest. It would save time looking for specific files if there was a list or at least an indication of roughly what is in each of the 10 audio files.
Also, the folders are structured the *exact* same way as the dialogue files, so it should be rather easy to find what you are looking for if you don't change the structure.
EDIT:
Also searching the con-files myself now and seeing the actor "Python". Is that Jonas' unfound secret? I want to find it!
EDIT2:
Then again, no responses in the SDK files on Trestkon's word, so maybe not...
EDIT3:
Hilarious. Shame it didn't make the game. I recall reading somewhere or read it that the game couldn't detect who Abom killed making this line unused.Wow, that felt good. Man, I hate those pesky board guests. "How do I get on the boat?" STUFF THE FUCKING BOAT UP YOUR ASS, BITCH! Killing those wieners just makes me smile.
Can somebody tell me how I can get a custom avatar?
Oh wait, I already got one...
Oh wait, I already got one...
Re: Talking to objects
That would be true if you couldn't move the the "Hitler" plant in Malkavania mod, but you can, so I am not sure thats it, or was the hitler plant made differently than a normal house plant?You mean bMovable to true?
For a conversation, if you create the NPC the way WIB or MIB explosion code is done, then use a trigger to kill the NPC, which would kill it, as it dies, it would explode as its coded to explode when it gets killed, not KO'd. Now don't ask me what trigger to do that, not sure.How to I make actors die/explode as a result of a conversation? I'm thinking of Trestkon's death after the Scara-Narcissus lecture and the killing the dogs (sorry "wolves") in the Malkavian mod. It would also be good if NPCs could be made to explode/become parts as if they had just been blown up. Any ideas?
My nature videos: http://www.youtube.com/user/DynamixWarePro
My whistle/flute videos (and some other videos): http://www.youtube.com/user/DXMorpheus
My whistle/flute videos (and some other videos): http://www.youtube.com/user/DXMorpheus
Re: Talking to objects
Take a look at tnmmission20and22.uc, I think the function to gib Trestkon after the Narcissus convo is in there. We used Shane's MSCallbackTrigger to hook into the script for events like that, but you can just as well copy the code and trigger it with a flag instead, if you don't want to figure out how the callback trigger works.Hassat Hunter wrote:Well, for the explosion part just look up a MIB or WIB or something. They explode. Not sure how.
Well... yes and no. Our player class has a hell of a lot of extra code that Deus Ex's didn't (primarily because a ludicrous amount of Unreal code belongs in the player class), so saying Trestkon is just a reskinned JCDenton isn't really fair, he's more like a hugely upgraded JCDenton. We just maintained his default bind name because there was no reason to change it - it's not visible in-game anyway - being able to use him in Deus Ex was a happy side effect of that.You realise Trestkon is actually a reskinned JCDenton, right? He is still always listed at JC, which is why you can actually play Trestkon in the original DX campaign with TNM.
No idea how they did it though.
Indeed, that's why we released the SDK in the first place. Just look at the .con files for the stuff you need and check the corresponding audio folder for the sound file.Well, you could just search for the appropriate filename in the TNM SDK folder, no? Or do I miss some bigger picture here?
Yeah, that's not in the game, so it's not the secret I meantEDIT:
Also searching the con-files myself now and seeing the actor "Python". Is that Jonas' unfound secret? I want to find it!
EDIT2:
Then again, no responses in the SDK files on Trestkon's word, so maybe not...
That was just a random joke character I wrote like 6 years ago, but we never implemented him because he was just a tad too silly and pointless (which is saying a lot). I actually made the decision to cut him before Trestkon's lines were recorded, but I neglected to remove him from the Trestkon script, so Trest's audio for the conversation is all there - if anybody wanted to re-implement the character, you'd just have to record Python's lines and place an actor with the bindname somewhere in the game.
Yeah there were a couple of problems with that, sadly. First of all, there was no telling where the player would be at that point, so in most cases he would be too far away from Abom to hear the line. We have a shout trigger that makes sure the line is played no matter how far from the line's owner the player is, but Abom might kill the board guest when the player was half-way across the map, and that would create really weird results.EDIT3:Hilarious. Shame it didn't make the game. I recall reading somewhere or read it that the game couldn't detect who Abom killed making this line unused.Wow, that felt good. Man, I hate those pesky board guests. "How do I get on the boat?" STUFF THE FUCKING BOAT UP YOUR ASS, BITCH! Killing those wieners just makes me smile.
Secondly, we couldn't really check if Abom killed the board guest in question or if somebody else did, so Abom would still use the line if the player killed the board guest, and that would also be weird. I experimented with putting it in a cutscene, but mid-level cutscenes suck, so I never committed the results. It was a nice little bit of characterisation that I was sad to drop, but I'd rather leave it out than force it on the player like that.
Jonas Wæver
Chief Poking Manager of TNM
I've made some videogames:
Expeditions: Rome
Expeditions: Viking
Expeditions: Conquistador
Clandestine
Chief Poking Manager of TNM
I've made some videogames:
Expeditions: Rome
Expeditions: Viking
Expeditions: Conquistador
Clandestine
Re: Talking to objects
Plus the conversation system is actually hardcoded to assume the player always has a bindname of JCDenton: you could change that by recoding consys.u (and indeed TNM has recoded consys.u to let pawns play anims in convos, and the like) but you'd just be changing it to another hardcoded name, so you'd be in the exact same position without the ability to use Trest in DX.Jonas wrote:We just maintained his default bind name because there was no reason to change it - it's not visible in-game anyway - being able to use him in Deus Ex was a happy side effect of that.
Re: Talking to objects
I didn't know there was a TNM SDK!
*Runs off to grab box of delights*
*Runs off to grab box of delights*
Re: Talking to objects
I am anal enough that we would've probably done this if we'd decided to recode consys.u before we were well into writing the conversations, however. But by the time we started messing with consys.u, way too many conversations had already been written for us to bother changing the player's bindname, even if ConEdit does have a pretty convenient way to handle that sort of stuff.DDL wrote:you could change that by recoding consys.u (and indeed TNM has recoded consys.u to let pawns play anims in convos, and the like) but you'd just be changing it to another hardcoded name, so you'd be in the exact same position without the ability to use Trest in DX.
Jonas Wæver
Chief Poking Manager of TNM
I've made some videogames:
Expeditions: Rome
Expeditions: Viking
Expeditions: Conquistador
Clandestine
Chief Poking Manager of TNM
I've made some videogames:
Expeditions: Rome
Expeditions: Viking
Expeditions: Conquistador
Clandestine
- Hassat Hunter
- Illuminati
- Posts: 2182
- Joined: Fri Apr 10, 2009 1:20 pm
Re: Talking to objects
Well, I was talking about the skin, not so much the underlying code. Although that might not even be true either in the uncoated version (re-skinned NSF I read it was?). But regardless; a long time ago even I managed to make JC look different with one of Tack's tutorials. And if I can...Jonas wrote:Well... yes and no. Our player class has a hell of a lot of extra code that Deus Ex's didn't (primarily because a ludicrous amount of Unreal code belongs in the player class), so saying Trestkon is just a reskinned JCDenton isn't really fair, he's more like a hugely upgraded JCDenton. We just maintained his default bind name because there was no reason to change it - it's not visible in-game anyway - being able to use him in Deus Ex was a happy side effect of that.
Then again I ran into troubles with ConEdit only accepting JCDenton and I gave up on making a minor mod (combined with the fact I can't design any decent maps anyway).
Darn... Well, more snooping to do I guess.Yeah, that's not in the game, so it's not the secret I meant
We have a shout trigger that makes sure the line is played no matter how far from the line's owner the player is, but Abom might kill the board guest when the player was half-way across the map, and that would create really weird results.
That would have been hilarious, but I can see the problem. Just walking around Downtown and suddenly hearing *that* out of the blue is certain to freak some people out.
I am assuming "You saved boardguest [Long numer]" is related to saving the guy from Abom, and are thus never played ingame either?
Have you opened up the Gotem map in the SDK? I am going to assume trigger here. Probably combined with a destroytrigger for that trigger if Hitler is killed.Morpheus wrote:That would be true if you couldn't move the the "Hitler" plant in Malkavania mod, but you can, so I am not sure thats it, or was the hitler plant made differently than a normal house plant?
Same with the UN flag that precedes it.
However I doubt the guy is a regular plant either, considering the massive explosion that follows.
What are you asking, how to knock down a NPC with code? Set their HP to 0 and bUnconscious to true. Like happens in DX' tutorial, harvest that missionscript for the exact things to set.For a conversation, if you create the NPC the way WIB or MIB explosion code is done, then use a trigger to kill the NPC, which would kill it, as it dies, it would explode as its coded to explode when it gets killed, not KO'd. Now don't ask me what trigger to do that, not sure.
Or do you want to make them explode even when knocked unconscious? In that case I have no idea...
EDIT. Or not listen to me and just refer the code so you don't mess up.
Mission00 Script, Section 'Knocking down an UNATCO Agent':
Code: Select all
if (localURL == "00_TRAINING")
{
// knock this guy out
foreach AllActors(class'UNATCOTroop', troop, 'Test_Subject')
{
troop.HealthTorso = 0;
troop.Health = 0;
troop.bStunned = True;
troop.TakeDamage(1, troop, troop.Location, vect(0,0,0), 'KnockedOut');
}
}
Can somebody tell me how I can get a custom avatar?
Oh wait, I already got one...
Oh wait, I already got one...
Re: Talking to objects
Exactly. It was the beginnings of a small subplot involving a secret organisation of board guests, but we scrapped that idea and it became the inspiration for the N00Bz side mission insteadHassat Hunter wrote:I am assuming "You saved boardguest [Long numer]" is related to saving the guy from Abom, and are thus never played ingame either?
Jonas Wæver
Chief Poking Manager of TNM
I've made some videogames:
Expeditions: Rome
Expeditions: Viking
Expeditions: Conquistador
Clandestine
Chief Poking Manager of TNM
I've made some videogames:
Expeditions: Rome
Expeditions: Viking
Expeditions: Conquistador
Clandestine
Re: Talking to objects
I was wondering how to trigger the death of a character in a convo, presumably by using a trigger. By looking at the convo file I found the death trigger is "Trigger KillTrestkonDelay", but I'm not sure how this would work.
Can someone recommend a tutorial to expain how to make a trigger such as a switch do different things like open door, trigger explosion, kill an NPC etc? Are there any other useful tutorials besides Tack's and the Universal Constructor?
Also could one use a trigger (ideally in a conversation) to create the same effect as the summon/spawnmass command so that a load of live grenades are spawned?
Speaking of grenades, what is the Vortex Grenade name and how do I place them (I can't find it under the TNM ammo in UnrealED)? Is it also possible to edit what kinds of NPC they effect (e.g. make them effect robots)?
Can someone recommend a tutorial to expain how to make a trigger such as a switch do different things like open door, trigger explosion, kill an NPC etc? Are there any other useful tutorials besides Tack's and the Universal Constructor?
Also could one use a trigger (ideally in a conversation) to create the same effect as the summon/spawnmass command so that a load of live grenades are spawned?
Speaking of grenades, what is the Vortex Grenade name and how do I place them (I can't find it under the TNM ammo in UnrealED)? Is it also possible to edit what kinds of NPC they effect (e.g. make them effect robots)?
Re: Talking to objects
Vortex nades are plasmanades I believe.
As for doing stuff in convos, you can fire off triggers from convos and do it that way, but you end up needing a vast number of fairly context specific triggers. I would tend to simply set a flag in the convo and then check it via missionscript in timer(). For example:
As for doing stuff in convos, you can fire off triggers from convos and do it that way, but you end up needing a vast number of fairly context specific triggers. I would tend to simply set a flag in the convo and then check it via missionscript in timer(). For example:
Code: Select all
class Asplodyconvoscript extends missionscript;
function timer()
{
local scriptedpawn P;
super.timer();
if(flags.getbool('TiemToDie') && !flags.getbool('PawnAsploded'))
{
foreach Allactors(Class'scriptedpawn',P,'YourPawnTagHere')
{
P.HealthTorso = 0;
P.Health = 0;
P.TakeDamage(10000, P, P.Location, vect(0,0,0), 'Exploded');
}
flags.setbool('PawnAsploded',true);
}
}