News | Forum | People | FAQ | Links | Search | Register | Log in
Teaching Old Progs.dat New Tricks.
You know about the info_notnull explosion hack. You know about making monsters drop weapons or alternate ammo using the .weapon and .ammo_whatever hacks. You know about making items float in the air by spawning them on a temporary platform. Let's have a thread where we talk about new ways to use existing behavior and get novel gameplay. If you're a "retired" mapper, this is a great time to do some armchair level design and suggest ideas you'll never have a chance to use yourself.
First | Previous | Next | Last
How? 
 
It's Very Simple, Actually 
Assuming you have a soldier.mdl with 2 skins (0 is regular grunt and 1 is your boss grunt):
{
"classname" "monster_army"
"armorvalue" "1000"
"armortype" "1"
"skin" "1"
"super_damage_finished" "9999"
}
His shotgun will deliver 4x the normal damage, but without the quad damage sound. And this sucker can take more than 1000 hit points.

The idea can be extended to any regular monster. 
Useful, But... 
If you have new skins you to include external files for the custom model right? In that case you might as well create a custom progs and run it as a mod. 
Not Necessarily 
A lot of modern engines support replacement model textures, and these can be used to add skins to a model that doesn't have them. 
But... 
can you replace skins that don't exist in the original mdl? 
Odd Occurance, I Noticed 
some months ago I was dicking around with Air Quake source and Dark Places with the intention of making some high(er) poly md3 models for it. I added a func_model type entity to the Air Quake source, designed a bouy type model and texture to test it with, and I added it to a map.

The md3 model showed up, but the texture didn't. I tried the various recommendations in the vast DP literature, and none of them worked to bring the skin in.

So I then converted the model to a Quake mdl, and indexed the colors of the skin texture to the Quake pallette. It showed up in game perfectly, not the mdl model, but the md3 and the md3 skin! So, apparently you need to have an mdl version for DP to recognize an external
skin. 
Metl 
I'm not sure, but I think you can from QC request skins/frames from ext texes that don't exist in the 8-bit mdl/spr.

Of course, it won't work so well then if you disable ext texes or don't support them. 
 
I see about the engines allowing external skins, and metlslime, I imagine you would use some sort of naming convention (eg: wizard_skin00.tga, wizard_skin01.tga) to support multiple additional skins in these engines.
Still, you have to include these new files somehow. I have always imagined these map hacks were useful mainly for maps that you don't want to bother zipping up properly or include a readme (speedmaps) or maps you want to run on vanilla Quake with no extra assets.

HeadThump - I know that with md2 models and some engines, you have to preserve the original paths of a model (where to look for the skin is hard-coded in the model). So if Quake 2 installs a model at: models/monsters/gladiator/tris.md2 (model) models/monsters/gladiator/gladiator.pcx (skin)

... you have to rename the files (the skin at least) and preserve these paths under a Q1 mod directory. The same may be true of Q3. 
Oh Yeah.. 
.. sounds like when you converted your md3 to mdl, it was able to find the skin (treating it as an external skin) because mdl models aren't as fussy about paths. 
Thanks Omus 
It's been a while since I visited my little project, but I think I'll see if that possibilaty is the case.

I checked the paths at the time to see if they matched up, but I may have only done so relative to the mod path and not the models internal structure, thus missing a crucial subdirectory. 
I Guess... 
the thing I'm worried about is that "replacing a texture that exists in the mdl" might be a feature of a number of engines, but it seems completely up to chance whether each implementation happens to work even when the texture isn't in the mdl file.

So you could try it, and it could work in some engines, but who knows which ones. 
Omus 
[quote]
If you have new skins you to include external files for the custom model right? In that case you might as well create a custom progs and run it as a mod.
[/quote]

Yeah, but the thread theme is about making new stuff without new progs.dat, so I believe it's still on-topic :). 
Player Weapon Damage 
Can I increase it with superdamagefinished as for monsters? If so how - because it'll need to be set for coop as well. I'm guessing this will be more difficult than a standard monster hack . . .

The idea is to boost the players close combat attack to make it a viable alternative to the SSG and not just the SG. And make it a choice against tougher creatures, since I've omitted knights from my pack.

I reckon about the same damage as a rocket, so two hits would kill and ogre, four a shalrath - though I'd have to playtest alot so as not to unbalence the game. 
Not Without Modifying The QC 
Also, quad wwould affect all weapons, not just the axe. 
Ah Well 
It was just a thought, maybe for the next time. It�d also affect alot of things, eg. it�d be easy to lose ammo backpack pickups by gibbing too many monsters. 
Question 
Any way to use stuffcmd in a map ent?? 
Mechtech 
it is possible in Quoth Pack. Just use info_command or trigger_command, and and your command in the message field. Maybe you should ask Kell or necros for further details. 
Which Brings Me 
to a bug in info_command in Quoth; there should always be a newline "\n" at the end of the string, otherwise the engine might not execute the command properly.

The Quoth doc doesn't include this information. 
Bprint? 
I want to do a coop map. It would be nice if there was a way to broadcast a message to all players (like "the gate is open"). The closest thing I could find is ClientDisconnect(), but that still bprints "left the game." after the message that I put in .netname. Is there some way to hide that 2nd message? I tried flooding it off the screen but it didn't work. It just moves my message up on the console. 
Sorry. I Meant ClientConnect() 
 
 
sprint() ? 
 
Umm... bprint(), sorry 
Not Sure What You're Asking, Lardarse 
Bprint is broadcast print, no? 
Not An Easy One 
I don't know that this one is possible. What you'd really want is a function that has the .netname bit printed *after* the rest of the text, so then you can newline all the previous lines away. However, assuming there are none in the monster files, the only such examples are in the clientobituaries, and only in the messages for client vs client deaths(for example: telefragging). So I don't think there's a way to hack those in. 
Thanks, Preach 
That's about what I figured. Just wanted to check with an expert. 
First | Previous | Next | Last
You must be logged in to post in this thread.
Website copyright © 2002-2024 John Fitzgibbons. All posts are copyright their respective authors.