|
I Just Explained This...
#3928 posted by Preach on 2005/07/24 04:11:58
The reason the trigger_teleport doesn't trigger is because if you give a teleporter a target, it only teleports things that are in the trigger at the instant it is teleported. That's how you do teleports for monsters, the teleporter isn't permanently switched on, just for the next 0.2 seconds. That value is hard coded into quake.
But, rejoice, there is a way to do it. Read a few posts up(3923) to my bit on how to activate a trigger using a hack based on the info_notnull entity. Following that guide exactly tells you how to make the trigger_once that turn on, make sure to set the wait of the info_notnull to -1.
You can also use the same trick to turn an info_notnull into a teleporter. Follow the same method as before, but instead of setting the touch function of the info_notnull to multi_touch, set it to teleport_touch. You will also have to set the target of the info_notnull to the info_teleport_destination as you would for a normal trigger_teleport.
Oh, one last thing I realised just before I posted, the whole thing won't work, unless you set the teleport trigger's .nextthink to 9999999, basically as large as you can. Of course, in theory somebody could play the map longer than this time, but plenty of other things in the quake engine will break before this time, so don't worry : -).
While I'm posting, there's a slightly easier way to make brush entities with a classname of info_notnull. Just make a new brush entity in your map, make it a trigger_blah(ie. a type of trigger that doesn't exist). Then give it all the fields the info_notnull is meant to have. Finally use adquedit to extract the entity file, and just rename the trigger from trigger_blah to info_notnull. You still need to go through all the hassle of extracting, editing and replacing the entities, but it's less easy to screw up if you're just changing one classname.
CrAzYCoW: What mod are you using for these effects? I'm sure it's a fairly easy fix in the source code, but since I don't know which mod you're using, I can't look at the code. I had a look at doing it with a hack in normal quake, but all I can do is fire player rockets from an info_notnull. I'm guessing you have the rocket already as a brush model or similar?
An Old Problem Revisited
#3929 posted by Preach on 2005/07/24 04:38:21
Phait, you still need the levitating zombie, right? I got off my arse and completed something for a change, here's how you do it.
First, edit the zombie model. Duplicate the last scene, the crucified animation, and make it into a framegroup (right click and select 'Group frames for scene' in QMe). Then save the model.
Open plats.qc, and go to the very bottom. Duplicate the function misc_teleporttrain and rename the copy as misc_zombietrain. Delete the line that reads
self.avelocity = '100 200 300';
replace the lines
precache_model2 ("progs/teleport.mdl");
setmodel (self, "progs/teleport.mdl");
with
precache_model ("progs/zombie.mdl");
setmodel (self, "progs/zombie.mdl");
and finally add
self.frame = 198;
to the bottom of the function. And that's all, just set it up like you would a normal train. It really shouldn't have taken me this long to figure that one out. I'd copied the function for a func_train instead and was modifying that, for some reason the line
self.classname = "train";
causes Bad Things to happen if you use it for a zombietrain. So now it's fixed and works and I got another double-post in this thread.
Awesome
#3930 posted by . on 2005/07/24 04:58:02
I will see how it works, appreciate your help :)
Thanks Preach
#3931 posted by bambuz on 2005/07/24 05:42:35
but we decided yesternight to pursue the spikeshooter & door AND logic gate route for now...
Hmm
#3932 posted by bambuz on 2005/07/24 07:07:08
on another note, couldn't one do that enableable trigger inbuilt into quake.fgd so it works straight in worldcraft?
Probably...
#3933 posted by Preach on 2005/07/24 07:20:59
You probably could, I'm not organised enough to set that up first. The only problem with it is that there is already an info_notnull in the fgd, and it's a point entity, not a trigger. I'm not sure how well worldcraft would cope with two entities with the same name but different properties. You certainly wouldn't want to hardcode that function into the info_notnull, the best thing about them is that they can do all sorts of different things. Which reminds me, back to writing that up...
:)
#3934 posted by bambuz on 2005/07/24 07:24:54
yeah maybe one could differentiate if the other is a point entity and the other a brush, dunno, maybe i'll look into it some year...
Regarding The Entities, Preach
#3935 posted by czg on 2005/07/24 13:44:24
Thanks for the tip about this. I've used it now for a targeted trigger_changelevel by simply setting the .use key to trigger_changelevel, which works because trigger_changelevel() doesn't precache anything.
Worldcraft does NOT like it if you put a definition for both a solid and a point entity with the same classname in the fgd. You'll have to make two entries for it, one being solid and called info_notnull2 or something.
However if you're using aguirre's tools, you can automate the process a bit by setting up a batch file like this:
updateents.bat
@echo off
bspinfo -copyents %1
echo Please go ahead and edit %1.ent
pause
qbsp -onlyents %1.ent
@echo on
And then run it like updateents mymap, edit the generated .ent file in your text editor of choice and then go back to the bat file and "press any key to continue...".
If you've got the knowhow to do it you could probably have a commandline tool to do a regex search on the generated ent file automatically and replace all info_notnull2 with info_notnull. You know, something like grep or the likes.
Actually After Thinking About It For 10 Seconds More
#3936 posted by czg on 2005/07/24 13:47:40
It would perhaps be best if you didn't have any info_notnull entries at all in the fgd file.
WC will not complain if you type in your own classname in the entity properties, and then doesn't care if the entity is solid or not. The only drawback is you won't get the benefit of SmartEdit, but for info_notnulls there are so many different fields to be set on them depending on what you plan to use them for that using SmartEdit would just be a clutter.
The Grep-like Tool
#3937 posted by aguirRe on 2005/07/24 14:51:56
is often called sed (stream-edit) and for the simple entity name replacement, you don't even need regex (which can be a bit tricky to set up).
Preach.. Which Function?
#3938 posted by . on 2005/07/24 19:58:09
and finally add
self.frame = 198;
to the bottom of the function. And that's all...
Which function?
Nevermind
#3939 posted by . on 2005/07/24 20:20:46
I missed the bit about copying the function and renaming it, got it now.
Preach Again...
#3940 posted by . on 2005/07/24 20:30:32
Well, I looked over everything and I'm certain I did things right. You forgot to mention I need to work with the ZOMBIE.MDL by putting it in a progs directory.
So, in the map - the zombie is completely stationary and not in crucified pose. Yet he moans like he does when in that pose. Also, I triggered him and he didn't move to any path_corners I set. I even removed the trigger_once and walked up to him, but nothing happened either.
CrAzYCoW...
#3941 posted by distrans on 2005/07/24 22:14:37
...if you want a hack for multiple explosions using one button then tie sequentially named func_explosions (fe1, fe2 etc.) to trigger_counters with increasing count numbers but the same name.
OK...
#3942 posted by distrans on 2005/07/24 22:23:13
...that might've been a bit confusing.
Make the launch button target a series of trigger_counters named "missile", but give each trigger_counter a higher count value than the last. Now make each trigger_counter target a different func_explosion... to make things easy, get the trigger_counter with count 1 target the func_explosion with the name fe1, trigger_counter with count 2 targets the func_explosion with name fe2 etc.
Moaning
#3943 posted by Preach on 2005/07/25 02:25:38
The misc_zombietrain shouldn't moan at all, unless that's some bit of code you've added. There are no sounds that automatically play with certain animations, and the misc_zombietrain doesn't even precache them, so they'd only be loaded if you had other zombies in the level. Could you make a quick testmap with just a misc_zombietrain and a few path corners, and see if you get the same result?
Preach
#3944 posted by . on 2005/07/25 03:11:30
What I originally didn't realize I needed to do, was rename the monster_zombie to misc_zombietrain and set the fields. I just tried and it works well.
Though, is there anyway to have him in his crucified, animated pose while retaining his train functionality? Or at least how might I have him stationary but in the crucified pose? (He's just stood straight up).
Animation
#3945 posted by Preach on 2005/07/25 07:19:15
I may not have been clear enough in my explanation of how to edit the zombie model. You need to duplicate the crucified animation, and only make the second, copied version of it into a framegroup. If you do that, the framegroup should be frame 198 of the zombie model, and so the line that sets the zombietrain's frame to 198 will make it animated while crucified. I'm guessing that the problem is your modified zombie doesn't have a frame 198, so it loops back to frame 0. The first crucified animation should remain as individual frames, as the normal crucified zombies need those frames to be seperate.
Yep
#3946 posted by . on 2005/07/25 14:38:28
I'm pretty sure that's how I did it, but I'll try it again...
Ok
#3947 posted by . on 2005/07/26 04:04:00
Is this what you mean? Cause if I do it how I understand it, the total frames goes to 204, not 198:
http://www.phait-accompli.com/q/s4/pre/qme1.jpg
Two Things
#3948 posted by Preach on 2005/07/26 04:57:59
One is that the total framecount by QMe counts all the frames in a framegroup seperately, so the last frame in the grouped crucifixion is number 204 according to QMe, but that's not how the quake engine will see it. Since the last frame is 204, the first frame should be 198. Since quake treats all the frames in a framegroup as one frame, they will all have the number of the first frame, 198.
Except....There are four other animations that are grouped in your copy of the model, painb through to paine. Each one of these sequences was 10 to 20 frames long in the original model. However, since they are framegroups now, they are each only one frame long. Which brings the total count of frames as quake sees it to about 140.
If you're using some other mod which requires them to be grouped, then you're going to have to work out which frame the grouped crucified animation is, and use that value instead of 198. Otherwise, ungroup them and it should work out.
Oh, and one more thing I should have said before but forgot, rename the second crucified sequence, it's possible it could cause a problem. I really should have put that in the first post, as it's not obvious you need to do it. What usually happens is the two sequences with the same name end up merged into one, but if one is grouped and one is ungrouped it may not happen. Still, best not to take chances and give it a different name.
So Yeah, An Updating Batch File Using Sed:
#3949 posted by czg on 2005/07/26 10:40:39
bspinfo -copyents %1
sed s/info_notnull2/info_notnull/ %1.ent > %1.edited.ent
copy %1.edited.ent %1.ent /Y
del %1.edited.ent
qbsp -onlyents %1.ent
The stupid copying thing is because I couldn't figure out a 'overwrite old file' switch for the rename command, and if you make sed output to to same file you input from you get a blank file and if you mke sed append to the same file you input from you get a doubled file. Not foolproof, but it works.
Get sed here: http://www.cornerstonemag.com/sed/
Thanks CZG
#3950 posted by Preach on 2005/07/26 10:58:23
Should prove to be useful.
On an entirely unrelated not, I'm sure I remember once seeing a compiler for Q1 that supported a nodraw texture. But now I can't find it, did I just imagine it? If you know where it went please let me know, it would be handy for a mod I'm doing.
Preach
#3951 posted by R.P.G. on 2005/07/26 13:41:47
That Was The One
#3952 posted by Preach on 2005/07/26 14:19:24
Thanks!
|
|
You must be logged in to post in this thread.
|
Website copyright © 2002-2024 John Fitzgibbons. All posts are copyright their respective authors.
|
|