News | Forum | People | FAQ | Links | Search | Register | Log in
Mapping Help
This is the place to ask about mapping problems, techniques, and bug fixing, and pretty much anything else you want to do in the level editor.

For questions about coding, check out the Coding Help thread: https://www.celephais.net/board/view_thread.php?id=60097
First | Previous | Next | Last
Great! 
I was allready looking to older examples of the Phenomenon CD. But with this I can go on for a while.
Glad to have this little help, because c coding for me is almost as hard as writing a full sentence without spelling problems! 
 
[deleted by metlslime] 
MadFox 
Are you trying to "rebirth" hexen weapons ? 
Knew It Won't Be Easy 
I don't think the shotgun has a substantive bullit?

By now my only progress is replacing the s_spike.mdl for an arrow.mdl
Then the supershotgun shoots arrows, while the nailgun still punshes nails.

But that's no true code afterall. 
I Understood That. 
 
Arrows And Stuff 
Ok, the full walkthrough on coding the arrow in.

Find
void() W_FireSuperSpikes =
and duplicate the whole function, renaming the copy of the function to W_FireArrow

In this version of the function, replace the model of the spike with the arrow model and either find a suitable sound replacement or just delete that line. Change the line
newmis.touch = superspike_touch;
to
newmis.touch = arrow_touch;
and

self.currentammo = self.ammo_nails = self.ammo_nails - 2;

to


self.currentammo = self.ammo_shells = self.ammo_shells - 1;


Copy the function void() superspike_touch = and paste it about the W_FireArrow function. Now rename it as arrow_touch. Here you can set the damage you want the arrow to do, replace the two instances that say 18 with whatever damage you see fit : -).

Finally, go down to the function W_Attack. Find the line

else if (self.weapon == IT_SHOTGUN)
{
player_shot1 ();
W_FireShotgun ();
self.attack_finished = time + 0.5;

and change it to


else if (self.weapon == IT_SHOTGUN)
{
player_shot1 ();
W_FireArrow ();
self.attack_finished = time + 0.5;



Note that the weapon is using a single shell each time it fires. If you want to change what kind of ammo it uses you need to poke around in lots of different functions, even more if you want it to use multiple shells in a shot. So let me know what you had in mind ammo-wise and I'll get back to you. 
Kind 
you took the time to give me some attention!

I was already working with a weapons.qc from "Freak" in his Firepower addition.
He had a progs.dat which was working right, but the client.qc and weapons.qc didn't work.

I'll try this code, and let you know how it goes. 
Preach 
Thank you.

I like your training methods-

if(!(self.flags & NONOISE))

should be

if(!(self.spawnflags & NONOISE))

Just like last time I stared at it not working for a long time before I saw the problem. I found it so I must be learning!!

But I am still very grateful for your help and I am still thanking you and you are helping others as well. Well done. 
WARNING: DO NOT TAKE AURALLY 
Oh yeah, all the stuff I write about QC should come with the following disclaimer:
Preach is to busy/lasy to actually compile the code he writes on this board, let alone test if it work. Use at your own risk. 
Nonetheless... 
...you are a great boon to this community.

Thankyou. 
Preach 
I blow my own trumpet now.

I changed your transporting monsters progs.dat to have silent monsters if I want by setting Spawnflag 4 on the monster

void() monster_teleport =
{
if(!self.spawnflags & NONOISE) //blaGGer setup the if-then-else routine
{
self.think1(); //PREACH: set up the monster in place
spawn_tfog(self.origin); // spawn the effect
spawn_tdeath(self.origin, self); // and teleport as required
}
else
{
self.think1();
spawn_tdeath(self.origin, self);
}

};


I will hug a tree with happiness. 
What's On The Tele.. 
(...the goldfish bowl, like usual)

Looks solid, the only thing that I'd check is that spawnflag 4 isn't used for anything else on any monster - it doesn't look like it though. If it is, just change it to some higher power of 2, like 16 or 32.

In other news, I have been experimenting with what you can and can't do with a func_notnull, and the results are suprising to say the least. The teleport sound I mentioned a few posts earlier works, although it'll only play once per entity as it has a remove in the function. But I've found many more functions that work too...I have a little testmap made up, but I'm gonna see if I can't make something useful out of the entities before I let on. 
Exploding Walls 
I looking at a exploding wall mod by Ben Lehman (1996). It works good but the rubble bits flicker in the game until they disappear.

Does any of you know how to stop this? 
Double Check The Skin 
on the rubble model; It could be a number of possibilaties. It may need to have the fullbrights removed or the skin isn't covering the entire surface. Also if any of the surface normals are facing the wrong directions it could appear to flicker while in movement. Any of those problems can be corrected with a basic Quake modeler like MDL. 
Quake Models 
I have the rubble models in qME and I want to change the texture to match the wall that the exploding wall is in.

How can I overlay the city8_2 texture on the model? I have Adquedit, qME and I got Photoshop at work.

Does anybody know of helpful sites for these old programs? 
HeadThump 
I did not understood the flicker problem at first time. I was looking at it with quad damage and it not flicker with normal looking. So OK now. Thank you for helping. 
I Hug More Trees 
In my rest time I used the company Photoshop and made new model skin.

I exported the new texture from TexMex in BMP
I exported the old skin from qME in BMP
I imported them two into Photoshop using layers
I changed the Mode to RGB and erased the old skin leaving the new texture to show through
I flattened the layers
I changed the Mode to Indexed
I saved it as BMP
I imported it into qME
I changed the old skin name to skin1
I changed the new skin to skin0
I saved the model into the program folder and run Quake and it works so now some of the rubble bits look like the wall that just exploded.

Now I get back to work and change the more rubble bits tonite. Is this the right way to change skins? 
 
Sounds like exactly the right way - good work. 
Not So Good 
I am now using txture Rock1_2. When I import back into qME I see lots of black pixels that were not in Photoshop view.

When I convert back from Photoshop RGB to Indexed my selections are Palette: exact, Forced: none, Matte: none. Are some of the colors changing somehow in my converting and qME thinks they are not Quake colors so just gives those pixels black color?

I was happy hugging the trees and now I boot them. 
Indexed 
modes with Photoshop have always given me a lttile fuss as well. I would suggest exporting in RPG and using Wally or TexMex (which is the simplest of the two methods as it does the conversion automatically; I like touching things up in Wally though) to convert back to Quake 16 bit indexed.

The root problem could very well be that Photoshop is defaulting the RGB mode to 24 bit though, in which case, instead of my above suggestion, convert the 24 bit RGB to 16 bit RGB and then convert it to 16 bit Indexed. The translation should be smoother. 
HeadThump 
This works all the time for rubble bits:

export skin from qME - this is automatic BMP file
open in Photoshop - this is automatic Index Mode
change Mode to RGB - this is automatic 8 bits
copy to new layer
delete Background layer
Magic Wand in black area - Tolerence 0, Anti-alias off
Inverse selection
press Delete - this is the mask
deselect
export rubble bits texture from TexMex - use BMP
open in Photoshop - this is automatic Index Mode
change Mode to RGB - this is automatic 8 bits
use Move tool to drag texture into mask window - this opens as a new layer
swap the layers around - this puts the texture under the mask
Flatten image
change Mode to Index - Palette: exact, Forced: none
save as BMP - File Format: Windows, Depth 8 bit
Import into TexMex
do nothing - maybe drink coffee
Export as BMP
Import into qME
Save model into Quake progs
Play Quake

Time to work this out and type this 25 minutes
Time to do it now I know is 4 minutes each rubble bit

Thank you HeadThump 
More Quake C Help Please 
The exploding wall entity calls a function that starts a new entity (local entity new) that uses setmodel to define the rubble bits models (setmodel (new, "progs/rubble1.mdl");). I can set the skin of the exploding wall entity in the editor. I can read setting from inside the function but this is not the rubble bits so the rubble bits skin will not change yet.

How can I set the skin of that rubble model using the skin setting that I bring in from the exploding wall entity? I think like this - rubbleskin = self.skin and then set the rubble.mdl to use the skin rubbleskin. rubbleskin will be a number 1 to 4 being textured rock(1), wall(2), wood(3) and metal(4)

I try various self.skin = 1, new.skin = 1, to test the setting of the skin but get errors like - Error wall QC(17): expected;, found new.

new is the name of the entity that has been made to create the rubble bits and is the first part of the line after self.skin = 1

I hope you understand this Preach or HeadThump? 
From What I Gather From The Error Message 
...it just seems you forgot to terminate the line above with a semicolon; 
Czg 
Dohhhh. I am the dopie one.

It now works as I wanted. No tree hugging now as my girlfrend has suspisions.

Thank you czg. 
Setting Monsters 
Can you explain why these are two separate functions and not all in one? Is it needed because there are more than one ogres in a level?

void() monster_ogre =

void() monster_ogre_set =

And what is void() monster_ogre_marksman =

please? 
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.