Bumbleson on 4/4/2005 at 23:49
Quote Posted by Mandrake
and also I'll try to add physics to the weapon model so it can't stick through the ground... :)
I applied your changes to my scripts and also included making the weapon frobbable (only if it's been dropped) and adding it to physics. There are now 6 or 7 scripts :)
But some minor flaws are left: If I throw a sword away, it flies through the air Thief 2 style (no rotation or anything) and even if it lands on grass, it still makes a metallic sound. The sound is caused by PhysicsSound -> PhysSoundTag, but if I remove it, it sounds even worse. As to the rotation, it would be nice if we could apply a rotation impulse when Garrett throws the weapon.
Also, a sword when thrown at an unconscious/dead AI goes through its body and ends up on the floor under the AI. This may happen because the sword is supposed to cut through, but it doesn't look very realistic. I don't know if this can be changed.
Mandrake on 5/4/2005 at 00:11
Quote Posted by Weasel
You can give an AI the property bWeaponAlwaysDrawn and set it to true. (I think I got the name of the property right).
Looks like my earlier post went missing somehow :weird: but yeah, you can do that. It looks kinda wierd tho as unlike the first two games (where the weapon is always held in the hand) the weapon is always held up high so there is no way to tell alert status..
Mandrake on 5/4/2005 at 00:16
Quote Posted by Bumbleson
I applied your changes to my scripts and also included making the weapon frobbable (only if it's been dropped) and adding it to physics. There are now 6 or 7 scripts :)
Should a still attached weapon be frobbable after they are knocked out though ? In my version of the scripts it is, I was going to fix it so only if it fell to the ground it was frobable, and I thought - Why ?
Surely Garrett can steal the sword after the guard is unconcious. The only problem I encountered is that its only possible to pick up the sword (a back attached kurshok style sword, not a side hilt one) if it's closer to you than the AI - eg if they're lying on their front or side. As soon as you pick up the AI and throw them to the ground they end up lying on their back with the sword underneath and the frob highlighting distance makes it impossible to frob the sword...
Also, now that its possible to knock out a guard without his weapon clattering to the ground, should we be making the weapon clatter noise a noise that AI's will notice ? That way if you (for example) gas bombed an alert AI and he drops his sword, the clatter will alert a nearby AI.
But if you gas bomb them or knock them out with their weapon holstered, there is no clatter, (since the weapon doesn't drop) and therefore no alerting other AI's.
Seems like a good gameplay change to me. What do others think ? Anything that rewards stealthy takedown of an AI and makes things harder taking down alert AI's must be a good thing...
Finally, what should we do about belt mounted health potitions etc ? Should they be changed to not fall off when an AI is knocked out, for consistency ? They can still be frobbed off the unconcious body if we do that, same as Thief1/2. What other objects are there other than health potions that might need this change ?
One other thing thats been niggling at me for a little while but I havn't had time to test, is that I think that the 4 scripts related to seting DontdropWeapon (that I posted in an earlier message) should all have an action at the end that says "Reset all script conditions and actions" right ?
Otherwise the enable and disable script will only work once each and then Dontdropweapon will no longer track guard alert status ? I think this needs to be done for any script that is called repetitively.
Quote:
But some minor flaws are left: If I throw a sword away, it flies through the air Thief 2 style (no rotation or anything)
Does the engine ever apply rotation to any thrown object though ? I don't think so. Is there a script that runs when an object is thrown ? If there is, you could probably set a random rotation vector on it, but I suspect there isn't a suitable script.
Quote:
and even if it lands on grass, it still makes a metallic sound. The sound is caused by PhysicsSound -> PhysSoundTag, but if I remove it, it sounds even worse. As to the rotation, it would be nice if we could apply a rotation impulse when Garrett throws the weapon.
Also, a sword when thrown at an unconscious/dead AI goes through its body and ends up on the floor under the AI. This may happen because the sword is supposed to cut through, but it doesn't look very realistic. I don't know if this can be changed.
Hmm. I suspect that can be changed, but don't know where yet.
Mandrake on 5/4/2005 at 00:38
Quote Posted by jolynsbass
Mandrake and Bumbleson,
You two rule! You are doing all of us a great service with this discovery. Nothing is a disconcerting to me as knocking out a guard, hearing his sword make a huge clatter, and then realize that the guard just next to him didn't hear a thing! I would LOVE it if you guys figured out how to make this apply to not only FM's but the regular T3 as well. It would be a great addition. Keep up the good work! :thumb:
It looks like it should be easy to make it a mod that can apply to the standard game as well as being able to be incorporated into an FM, much like the ultimate difficulty mod in Thief1/2.
It consists of changes to the AI and weapon archetypes, and a few scripts. So basically a custom gamesys file copied over the default one, and a handfull of script files copied into the scripts directory and that should be it - although it might need a volunteer to play through the game and check it works properly with each different AI type in case we've overlooked something :cheeky:
Bumbleson on 6/4/2005 at 01:07
Quote Posted by Mandrake
Should a still attached weapon be frobbable after they are knocked out though ? In my version of the scripts it is, I was going to fix it so only if it fell to the ground it was frobable, and I thought - Why ?
Surely Garrett can steal the sword after the guard is unconcious.
You more or less gave the reason yourself in the thread title: swords as hidable evidence. The original idea was to enable (or force) Garrett to hide dropped weapons as well as bodies. Why should he frob a weapon off an unconscious guard? He can't use it himself, so it would unnecessarily generate an additional piece of evidence to hide. Of course it means a higher degree of freedom and realism if the player is allowed to act foolish, but personally I prefer the convenient way. Another issue is that the player might frob the weapon accidentally while trying to pick up the body, which might cause some frustration. Remember those Hammer-in-the-chest jokes in some Thief 2 FMs? Suddenly you had some junk object in your hands, which was hard to get rid of without making terrible noise. You shouldn't have to do this without reason. But that's up to the FM author.
Quote:
Also, now that its possible to knock out a guard without his weapon clattering to the ground, should we be making the weapon clatter noise a noise that AI's will notice ? That way if you (for example) gas bombed an alert AI and he drops his sword, the clatter will alert a nearby AI.
Yes, of course! That's the next logical step. Other AIs should also notice the sword lying on the ground. All I could find on this so far is AIEvidence, but I don't know what all the options mean. Most objects have "Moving" checked, loot has "Missing", but what is suitable for a dropped weapon?
Quote:
Otherwise the enable and disable script will only work once each and then Dontdropweapon will no longer track guard alert status ? I think this needs to be done for any script that is called repetitively.
Exactly. :)
Quote:
Does the engine ever apply rotation to any thrown object though ? I don't think so. Is there a script that runs when an object is thrown ? If there is, you could probably set a random rotation vector on it, but I suspect there isn't a suitable script.
It's just that a thrown sword looks so strange. :eww:
EDIT: Found it!
Throw -> MinThrowRotation
Throw -> MaxThrowRotation
I set Min to 180 (degrees per second) for the X and Y axis and Max to 270. Gives a nice-looking rotation.
@jolynsbass: Thank you :)
Aja on 6/4/2005 at 04:50
Quote Posted by Mandrake
It consists of changes to the AI and weapon archetypes, and a few scripts. So basically a custom gamesys file copied over the default one, and a handfull of script files copied into the scripts directory and that should be it - although it might need a volunteer to play through the game and check it works properly with each different AI type in case we've overlooked something :cheeky:
I'd be willing to test it when you're ready. Just drop me a PM. The fact that guards never noticed the noise always bothered me as well... :thumb:
Mandrake on 6/4/2005 at 06:43
Quote Posted by Bumbleson
You more or less gave the reason yourself in the thread title: swords as hidable evidence. The original idea was to enable (or force) Garrett to hide dropped weapons as well as bodies. Why should he frob a weapon off an unconscious guard? He can't use it himself, so it would unnecessarily generate an additional piece of evidence to hide. Of course it means a higher degree of freedom and realism if the player is allowed to act foolish, but personally I prefer the convenient way. Another issue is that the player might frob the weapon accidentally while trying to pick up the body, which might cause some frustration. Remember those Hammer-in-the-chest jokes in some Thief 2 FMs? Suddenly you had some junk object in your hands, which was hard to get rid of without making terrible noise. You shouldn't have to do this without reason. But that's up to the FM author.
Ok, I like your reasoning. My original feeling was aiming for maximum freedom/interactivity, but accidentally frobbing the weapon when you were trying to pick up the body would be rather annoying I agree. So yes, definately make it not frobbable on the body, but frobable on the ground...
Quote:
Yes, of course! That's the next logical step. Other AIs should also notice the sword lying on the ground. All I could find on this so far is AIEvidence, but I don't know what all the options mean. Most objects have "Moving" checked, loot has "Missing", but what is suitable for a dropped weapon?
Good question. I've also tried adding things to AIEvidence before too (physics objects) and make them fall over, but the AI's don't seem to care. A sword or hammer lying on the ground should be a source of great consternation among AI's that are allied to the original weapon holder.
Quote:
EDIT: Found it!
Throw -> MinThrowRotation
Throw -> MaxThrowRotation
I set Min to 180 (degrees per second) for the X and Y axis and Max to 270. Gives a nice-looking rotation.
Cool!
The next question is, how to distribute scripts and gamesys changes easily such that FM makers can easily implement them. (Without lots of error prone manual recreation of scripts)
Each script is saved in a seperate file in CONTENT\T3\TriggerScripts\Defs, and the file name of each script can be found by right clicking the script and checking properties.
Once those files are identified and copied, does that mean we can just zip them up, and people can drop them into their Defs directory on their own editor install (possibly renumbering them to avoid conflicts with their own scripts) and they will just be recognised properly ? Has anyone tried copying scripts from one editor installation to another ?
The gamesys is more problematic - a complete gamesys would be fine for applying changes like these to a standard install of the game, but for an FM author who already had a custom gamesys it wouldn't be much use.
Is there any way to export a section of the gamesys and reimport it, like you can do with the registry with regedit and .reg files ?
jtbalogh on 6/4/2005 at 11:29
Quote Posted by Bumbleson
Other AIs should also notice the sword lying on the ground. All I could find on this so far is AIEvidence, but I don't know what all the options mean. Most objects have "Moving" checked, loot has "Missing", but what is suitable for a dropped weapon?
Maybe there are options for a dropped object to be like a corpse, unconscious body or blood.
toolman on 6/4/2005 at 14:02
Quote Posted by Mandrake
Is there any way to export a section of the gamesys and reimport it, like you can do with the registry with regedit and .reg files ?
Well you can definitely export.
if you click on your class
file -> export current class
says it "exports to a .uc that can later be rebuilt."
it'll slap it in ..\Thief3 Edit\T3Gamesys\Classes
will probably be called something like P_ or D_... seems to vary on the archetype.
You can open this file in notepad, and it appears to show all non-default properties laid out nicely.
As for importing,... ah. There doesn't seem to be a button for that.
I guess you will have to manually enter the properties from the uc dump. Not ideal :(
Jadon on 6/4/2005 at 14:20
Exporting unfortunatly doesn't work properly because a) it might crash while doing it and b) we have no compiler to to put the code back in (and last time I knew the devs said that anything that was exported was striped down.)