#1561 posted by metlslime on 2014/09/01 00:19:07
just have a crate you break open to get the item -- you can decide what item to spawn once the crate breaks.
Or have items drop off enemies, and scale the amount based on player's current needs.
Func_fail
#1562 posted by metlslime on 2014/09/01 00:19:28
#1563 posted by necros on 2014/09/01 00:27:54
on your own board, no less!
I prefer using triggers to decide rather than crates because it feels like it creates a better illusion.
#1564 posted by metlslime on 2014/09/01 00:32:14
the trigger thing seems pretty easy as long as you aren't running out of edicts. Just place one trigger in the previous hallway to spawn the item.
#1565 posted by JneeraZ on 2014/09/02 01:17:53
So before I write it, has there ever been an OBJ to MAP convertor written? There had to have been, right? I'd love to use MODO to generate geometry that is downright tedious or impossible in Trenchbroom...
#1566 posted by Spike on 2014/09/02 03:26:45
Sharkbanana who can sometimes be found in #qc had a tool for generating q3 .maps that way. I don't know if he wrote it or got it from elsewhere.
it didn't seem to be worth it. too many precision issues or something. tbh, just use misc_model, but then this is q3bsp that I'm talking about, where that sort of thing is possible.
Willem
#1567 posted by Lunaran on 2014/09/02 03:53:25
why don't you have the relevant items .think and call checkclient()? That's certainly not too slow for every monster in the level to call ten times a second.
#1568 posted by necros on 2014/09/02 06:16:55
ohh yeah, actually that makes way more sense.
checkclient is pretty quick since it's a built in and uses pvs.
#1569 posted by Lunaran on 2014/09/02 07:23:21
you'll have to filter newly awakened monsters, because they count as clients for one frame to propagate aggro through crowds, but that's simple enough.
Checkclient
#1570 posted by metlslime on 2014/09/02 07:38:51
sounds like a pretty good solution.
Monster Behaviour
#1571 posted by madfox on 2014/09/07 05:57:11
I have finished the mr.big model, a rocket jumping, and heavy weapon entity.
Looking in the hknight.qc for the magic to give the gun a "spread" fire action, and in the dog_leap routine for the rocket jump.
The heavy weapon now results in such a damage that even its own entities get killed when placed in the same surounding.
I thought there was a line of code in the ogre.qc that provided this behaviour, not killing own enemy.
Also
SV_startsound:not precached.
How to avoid it?
#1572 posted by necros on 2014/09/07 06:49:23
SV_startsound:not precached.
you forgot to precache a sound you're using, check all the sound() function calls for any you missed.
not sure about the self damaging, that could be many things. the most obvious thing to check for me would be that you are passing the right entity for the ignore argument in t_radiusdamage. For example, usually it's self.owner, so make sure you set the missile's .owner field correctly.
MrBig
#1573 posted by madfox on 2014/09/07 08:15:10
thanks necros. I did check the sounds, but strangly only the second monster's call gives the warning.
For convienence, here 's a testmap for MrBig. The qc is included.
#1574 posted by necros on 2014/09/07 17:20:52
it's the sight sound. that's the only sound that is played outside of the monster's qc file... check ai.qc for the SightSound() method to see which sound is being played.
Ai.qc
#1575 posted by madfox on 2014/09/07 23:38:56
Searched the qc.file, but what I find is in void() FoundTarget, what I believe as local float rsnd;.
Is that the spot for SV_StartSound<q/>?
#1576 posted by Lunaran on 2014/09/08 01:23:07
madfox, ogre grenades can totally kill nearby monsters, it just has such a small weak explosion compared to player explosives that it rarely ever does (dmg is 40, radius is dmg+20). It's not even strong enough to kill a zombie.
Unsound Reasoning
#1577 posted by Preach on 2014/09/08 01:43:17
Ah, here's where the confusion is
SV_StartSound is in the engine, don't go looking for that in the QC. The part of the message you need for debugging is where it tells you which sound wasn't precached. If you like, you can then look through the QC for that sound to find out which bit of code is trying to play it. Really though, you don't have to know who wants to play the sound, just precache it in your monster's spawn function so it stops being an error.
Kanguru Ogre
#1578 posted by madfox on 2014/09/08 05:28:12
@Lun - sure, but this is no ordinary ogre, it is carying an old fashion 8-loop gun and can flush a spread shot of 20 spikes within 20frames.
I lowered it to 8 on 20fr.
That's a lot of damage, see the test file.
@Preach - can't find it in the qc file, precached all sounds. It might be the player's sound is missing but that's loaded in world.qc.
Is there a console command for this tracing not precached?
Get Server To Recognise That Temp1 Has Been Set By Client?
#1579 posted by slackhead on 2014/09/12 06:14:35
Is it possible in quakec for a client to set temp1 via a console command or alias, and have the server see that and act on it? Not having much luck so far.
I have a function that watches temp1 for change and echoes a simple message, and the call for that function is in StartFrame() in world.qc but it isn't picking anything up.
Holy Security Risk, Batman!
#1580 posted by Spike on 2014/09/12 11:59:18
use impulses or krimzon_sv_parseclientcommand.
#1581 posted by slackhead on 2014/09/12 17:14:41
Thanks a lot. krimzon_sv_parseclientcommand is exactly what I need :)
Var On FTEQCC And Save Games
#1582 posted by Preach on 2014/09/13 04:27:32
So in FTEQCC you can use var to make a global function pointer which can be changed, which is very cool. I was worried earlier on when poking around in the text of a save file that I couldn't actually see an entry for this variable. Now I've managed to actually hit a point where loading a save game causes a "null function" crash to console (hitting the same trigger without loading a save first worked fine).
At the moment the variable in question is storing state which can't be deduced from the rest of the world when the save game loads. This rules out a fix using the LoadGame function to repair the damage. So far I've not managed to think of a better workaround than allocating an entity and storing the function in there. Is this a fundamental limitation of the save game parser - that it's not built to read functions into globals? Is there anything smarter I can try?
Additional
#1583 posted by Preach on 2014/09/13 10:49:28
Posted that late at night, in the morning I realised that there was one thing I could test...
The test involves my favourite trick of late, editing the save game that lead to the bug in your text editor. If you add a line "default_monster_spawn" "monster_shambler", the game parses it correctly and the bug goes away. So it's not the loading of the save game that lacks the support. I'll revise my guess that it's the saving of the save game that doesn't support this...
#1584 posted by Spike on 2014/09/13 15:57:35
found in vanillaish pr_edict.c ED_WriteGlobals:
if (type != ev_string
&& type != ev_float
&& type != ev_entity)
continue;
Blame the engine.
OK, As Suspected
#1585 posted by Preach on 2014/09/13 21:35:09
Well, I think I've thought of a not-terrible way to fix up the missing data when a game is saved in this particular case. Must write all this up into a blog post or something though.
|