Great!
#3562 posted by madfox on 2005/04/24 15:59:49
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!
#3563 posted by generic viagra alternative on 2005/04/25 00:41:11
[deleted by metlslime]
MadFox
#3564 posted by JPL on 2005/04/25 04:52:59
Are you trying to "rebirth" hexen weapons ?
Knew It Won't Be Easy
#3565 posted by madfox on 2005/04/25 12:58:57
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.
#3566 posted by metlslime on 2005/04/25 14:14:15
Arrows And Stuff
#3567 posted by Preach on 2005/04/26 13:31:49
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
#3568 posted by madfox on 2005/04/27 09:30:15
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
#3569 posted by blagger on 2005/04/27 12:24:23
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
#3570 posted by Preach on 2005/04/27 13:07:57
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...
#3571 posted by distrans on 2005/04/27 20:04:14
...you are a great boon to this community.
Thankyou.
Preach
#3572 posted by blaGGer on 2005/04/28 13:15:52
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..
#3573 posted by Preach on 2005/04/28 16:18:20
(...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
#3574 posted by blaGGer on 2005/04/30 10:06:49
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
#3575 posted by HeadThump on 2005/04/30 17:57:54
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
#3576 posted by blaGGer on 2005/05/01 04:22:30
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
#3577 posted by blaGGer on 2005/05/01 04:28:15
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
#3578 posted by blaGGer on 2005/05/01 05:33:19
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?
#3579 posted by Kell on 2005/05/01 05:40:44
Sounds like exactly the right way - good work.
Not So Good
#3580 posted by blaGGer on 2005/05/01 11:41:42
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
#3581 posted by HeadThump on 2005/05/01 21:47:09
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
#3582 posted by blaGGer on 2005/05/02 02:40:44
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
#3583 posted by blaGGer on 2005/05/02 07:38:09
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
#3584 posted by czg on 2005/05/02 09:45:33
...it just seems you forgot to terminate the line above with a semicolon;
Czg
#3585 posted by blaGGer on 2005/05/02 10:21:50
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
#3586 posted by blaGGer on 2005/05/02 11:29:25
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?
|