Originally posted by nahuel
View Post
Announcement
Collapse
No announcement yet.
Mod idea using stock elements
Collapse
X
-
You may have read what I wrote backwards.
Quakeone.com - Being exactly one-half good and one-half evil has advantages. When a portal opens to the antimatter universe, my opposite is just me with a goatee.
So while you guys all have to fight your anti-matter counterparts, me and my evil twin will be drinking a beer laughing at you guys ...
-
well, i do not wanna be so rude with amon, i believe this can help you
cool-little to no additional models
check this function in weapons.qc-axe plays the fiend tear sound when it hits enemies. much more damage.
Code:void() W_FireAxe = { local vector source; local vector org; makevectors (self.v_angle); source = self.origin + '0 0 16'; traceline (source, source + v_forward*64, FALSE, self); if (trace_fraction == 1.0) return; org = trace_endpos - v_forward*4; if (trace_ent.takedamage) { trace_ent.axhitme = 1; SpawnBlood (org, '0 0 0', 20); T_Damage (trace_ent, self, self, 20); [COLOR="Red"]// you can see here "20" is the ammount of damage[/COLOR] } else { // hit wall sound (self, CHAN_WEAPON, "player/axhit2.wav", 1, ATTN_NORM); // [COLOR="Red"]sound (self, CHAN_WEAPON, "player/axhit2.wav", 1, ATTN_NORM); you need to add your custom sound here, maybe usinf another channel (not CHAN_WEAPON, use CHAN_AUTO instead [/COLOR] WriteByte (MSG_BROADCAST, SVC_TEMPENTITY); WriteByte (MSG_BROADCAST, TE_GUNSHOT); WriteCoord (MSG_BROADCAST, org_x); WriteCoord (MSG_BROADCAST, org_y); WriteCoord (MSG_BROADCAST, org_z); } };you need to add a new model here dude, this is incompatible with "-little to no additional models", aniway, check this InsideQC - Tutorialscan be thrown/picked back up
check SMC code-nails stick in walls (ive seen this one before)
(maybe weapons.qc)
check this tutorials InsideQC - Tutorials adapt it to your mod-Nails and Axe sometimes cause damaged enemies to leak gib-style blood and bleed out over time.
this is a feature only posible in a specific engine, because you do not have "tiny" lights in vanilla quake (EF_MUZZLEFLASH and EF_DIMLIGHT are not "tiny" lights). if you use darkplaces engine or FTE you can add some nice custom particles in traceattack, superspike_touch and spike_touch functions. (weapons.qc)-shotgun/nail impacts create tiny flashes of light on hard objects, maybe emit a few rising smoke particles
look this in w_attack function (weapons.qc)-shotgun reload is a little bit slower, does more damage. knocks enemies back a little.
to "knock" enemies llok in TraceAttack (weapons.qc)Code:else if (self.weapon == IT_SHOTGUN) { player_shot1 (); W_FireShotgun (); self.attack_finished = time + 0.5; [COLOR="Red"]//time + 0.5; is the time to "reload" the shotgun, change it[/COLOR] }
Code:if (trace_ent.takedamage) { SpawnBlood (org, vel*0.2, damage); AddMultiDamage (trace_ent, damage); [COLOR="Red"]//you can add a little pull here maybe something like[/COLOR] [COLOR="SeaGreen"] if (self.weapon == IT_SHOTGUN) { trace_ent.velocity = (v_forward * 100.000); trace_ent.velocity_z = 50 + (random() * 500); } [/COLOR] }
same for IT_SHOTGUN, to change the spread check, W_FireSuperShotgun (weapons.qc)-super shotgun reload also slower, does massive damage, but spreads very wide. also knocks enemies back a little.
Code:FireBullets (14, dir, '0.14 0.08 0'); //[COLOR="Red"] '0.14 0.08 0' the vector to the spread!! change it [/COLOR]
copol-nailgun is the same
i do not understand at all the concept... you need to add a new global float here, maybe you can call it "sngoverheat".-SNG overheats if fired too long, makes lava hiss as it gets close to overheat.
in defs.qc at the bottom
Code:.float sngoverheat
if weapons.qc
Code:void() W_FireSuperSpikes = { local vector dir; [COLOR="SeaGreen"]if (self.sngoverheat >= 20) { self.sngoverheat = 0; self.attack_finished = time + 5; } else { self.attack_finished = time + 0.2; self.sngoverheat = self.sngoverheat + 1; }[/COLOR] sound (self, CHAN_WEAPON, "weapons/spike2.wav", 1, ATTN_NORM); self.currentammo = self.ammo_nails = self.ammo_nails - 2; dir = aim (self, 1000); launch_spike (self.origin + '0 0 16', dir); newmis.classname = "super_spike"; //so we know the difference --gnounc newmis.touch = superspike_touch; setmodel (newmis, "progs/s_spike.mdl"); setsize (newmis, VEC_ORIGIN, VEC_ORIGIN); self.punchangle_x = -2; };
again.. particle effects?? check the extensions in each engine-Lightning gun has a random jitter in its arc, gibs lesser enemies, gibs have smoke trails as well as blood.
look at W_FireRocket function (weapons.qc)-rockets are faster, more particles of smoke
Code:missile.velocity = missile.velocity * 1000;

-grenades the same.define-Quad Damage increases players max speed slightly, emit blue particles
in defs.qcCode:.float maxspeed
in client.qc look at CheckPowerups;
Code:if (self.super_damage_finished) { // sound and screen flash when items starts to run out if (self.super_damage_finished < time + 3) { if (self.super_time == 1) { sprint (self, "Quad Damage is wearing off\n"); stuffcmd (self, "bf\n"); sound (self, CHAN_AUTO, "items/damage2.wav", 1, ATTN_NORM); self.super_time = time + 1; } if (self.super_time < time) { self.super_time = time + 1; stuffcmd (self, "bf\n"); } } if (self.super_damage_finished < time) { // just stopped self.items = self.items - IT_QUAD; self.super_damage_finished = 0; self.super_time = 0; } if (self.super_damage_finished > time) self.effects = self.effects | EF_DIMLIGHT; else self.effects = self.effects - (self.effects & EF_DIMLIGHT); [COLOR="SeaGreen"] if (self.super_damage_finished > time) self.maxspeed = 1,5; else self.maxspeed = 1; [/COLOR] }
after look at puntclientinserver
Code:void() PutClientInServer = { local entity spot; self.classname = "player"; self.health = 100; [COLOR="SeaGreen"]self.maxspeed = 1; [/COLOR]i do not understand the concept-Pentagram causes melee damage to be reflected back to enemy. red particles
this stuff is something complex to do... aniway you have some ways to achiieve it "always run" is one problem here, you can use "maxspeed" float-if health is below 10, running is disabled.
you can play with cl_forwardspeed and such...
the invasion has begun! hide your children, grab the guns, and pack sandwiches.
syluxman2803
Comment
-
re: Health below 10 be slow ...
Rook provided this code once upon a timeOriginally posted by nahuel View Postthis stuff is something complex to do... aniway you have some ways to achiieve it "always run" is one problem here, you can use "maxspeed" float
you can play with cl_forwardspeed and such...
You'd put into PlayerPreThink in client.qc and you could modify a player's speed there.Code:if (self.flags & FL_ONGROUND) { if (vlen(self.velocity) >= 320) { self.velocity = (self.velocity * (320/ (vlen(self.velocity)))); } }
Just change the formula to account for health. The 320 in the above code is the normal sv_maxspeed in Quake.Quakeone.com - Being exactly one-half good and one-half evil has advantages. When a portal opens to the antimatter universe, my opposite is just me with a goatee.
So while you guys all have to fight your anti-matter counterparts, me and my evil twin will be drinking a beer laughing at you guys ...
Comment
-
@bfg
It was a sniper rifle. I never released it or anything. It was just for shits and giggles. It was my education in traceline functions lol.
Comment
-
Alright, making some baby-step progress so far. Right now I'm just screwing around with the blood particles, making the badguys squirt confetti when shot. I'm looking all over the place and I cant find where to change the particle colors for gib trails though.
Comment
-
That's the best way to do it! The particles colors can be changed within the particle() function. It is one of the function fields, I don't remember which, but I remember vanilla quake has it set to 73, which is in reference to the color pallete number (medium red in this case). I personally like setting it to 69, the red is a little darker. You do not want to set the number too close to a multiple of 16, as the particle colors are slightly randomized around the number you input. The quake color pallete separates shades of colors every 16 colors (all the grays are 1-16, browns are 17-32, so on so forth). If you set too close to a multiple of 16, your particles may randomly spawn a totally unrelated color.
Gib trails are not customizable in a vanilla engine. The trail is set by a model flag, not by a QC function. If you want to make custom gib trails, you will have to set up .think functions for the gibs, and spawn your particles this way. You are probably a long ways from figuring this out, so my advice is learn how .think functions work.
I don't expect you to know or understand all this, but once you start playing with the particles function and check out the quake color pallete you will see what I mean.
Comment
-
Gotcha. Yeah I noticed right away with the blood color randomization example that the random numbers were values from the palette which is a series of gradients on a list of 256 values.
You greybeards will have a chuckle at this. While I was getting familiar with everything I went "Gee! This sure looks a lot like C#!--oh wait..."
Right now I'm hunting around to see if there's a way to stop weapon pickup models from rotating, looking more like something that would just be found lying on the ground.
Thanks again, stay tuned for other noob questions and disasters.
Comment
-
@bfg --- he said he wants to make a Quake compatible mod. Not a DarkPlaces-only mod.
(progs/g_rock2.mdl ... the ground rocket launcher is an example)Originally posted by Amon26 View PostRight now I'm hunting around to see if there's a way to stop weapon pickup models from rotating, looking more like something that would just be found lying on the ground.
The only way is to open the .mdl in QME 3.1 and remove the rotate flag, after opening the model you click View->Model Property Properties->Click the Flags Tab, there is a flag called rotate. You uncheck that. Then obviously save the file as c:\quake\mymod\progs\g_rock2.mdl (as an example).
https://www.quaddicted.com/files/tools/qme31.zip
I'm assuming that you know how to open Pak files with Pakscape https://www.quaddicted.com/files/tools/pakscape-011.zipLast edited by Baker; 11-08-2016, 11:31 AM.Quakeone.com - Being exactly one-half good and one-half evil has advantages. When a portal opens to the antimatter universe, my opposite is just me with a goatee.
So while you guys all have to fight your anti-matter counterparts, me and my evil twin will be drinking a beer laughing at you guys ...
Comment
-
He also said he wants to do advanced particle effects, which are only supported by some engines. The advantage of the SMC is that it's very well documented, making it a great learning tool. He's gonna have to make a choice eventually between some of his desired features and vanilla compatibility.Last edited by Mugwump; 11-08-2016, 12:00 PM.♪ I'm skiiiiiiinnin' in the pain, just skiiiiiiinnin' in the pain ♪
♪ What a glorious feelin' I'm haaaaaaappy again ♪
Comment
-
If it isn't in the "By Name" tag, it doesn't do anything in Quake. QME can edit Quake 2 stuff (I think) and maybe Hexen 2 (I think) stuff so maybe all those extra numbers are for those.Originally posted by Amon26 View PostBaker. Just started messing with flags in QME actually. Making guns and pickups lay flat on the ground now.
i see in the flags editor of QME there's a "By Number" tab. Is there a list anywhere that shows what any of those flags do?
Just use the "by name" Tab.Quakeone.com - Being exactly one-half good and one-half evil has advantages. When a portal opens to the antimatter universe, my opposite is just me with a goatee.
So while you guys all have to fight your anti-matter counterparts, me and my evil twin will be drinking a beer laughing at you guys ...
Comment
-
Actually, I think the particle randomization was a feature I coded in...it may not be random at all in vanilla progs. You can of course make it random by replacing the 73 with "73 + rint(crandom()*5)" where the 5 can be any number that won't put the value past a multiple of 16. If you didn't know, crandom() is a function that returns a value between -1 and 1. rint() is a function that returns a rounded integer.
I haven't tried this, but could you set the model.flags to 0 in the weapon spawn function to override the model rotation? Worth a try.
To make weapons lay on the ground, you will need to modify the model via QME so that it's not hovering above the ground.
Comment
Comment