Announcement

Collapse
No announcement yet.

Mod idea using stock elements

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Originally posted by nahuel View Post
    @baker, i know my english is shitty, but i can understand some things about quake
    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 ...

    Comment


    • #17
      well, i do not wanna be so rude with amon, i believe this can help you


      -little to no additional models
      cool

      -axe plays the fiend tear sound when it hits enemies. much more damage.
      check this function in weapons.qc
      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);
      	}
      };
      can be thrown/picked back up
      you need to add a new model here dude, this is incompatible with "-little to no additional models", aniway, check this InsideQC - Tutorials


      -nails stick in walls (ive seen this one before)
      check SMC code (maybe weapons.qc)


      -Nails and Axe sometimes cause damaged enemies to leak gib-style blood and bleed out over time.
      check this tutorials InsideQC - Tutorials adapt it to your mod

      -shotgun/nail impacts create tiny flashes of light on hard objects, maybe emit a few rising smoke particles
      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 reload is a little bit slower, does more damage. knocks enemies back a little.
      look this in w_attack function (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]
      	}
      to "knock" enemies llok in TraceAttack (weapons.qc)


      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]
      	}


      -super shotgun reload also slower, does massive damage, but spreads very wide. also knocks enemies back a little.
      same for IT_SHOTGUN, to change the spread check, W_FireSuperShotgun (weapons.qc)

      Code:
      	FireBullets (14, dir, '0.14 0.08 0');
      //[COLOR="Red"] '0.14 0.08 0' the vector to the spread!! change it [/COLOR]
      -nailgun is the same
      copol

      -SNG overheats if fired too long, makes lava hiss as it gets close to overheat.
      i do not understand at all the concept... you need to add a new global float here, maybe you can call it "sngoverheat".
      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;
      };


      -Lightning gun has a random jitter in its arc, gibs lesser enemies, gibs have smoke trails as well as blood.
      again.. particle effects?? check the extensions in each engine

      -rockets are faster, more particles of smoke
      look at W_FireRocket function (weapons.qc)
      Code:
      	missile.velocity = missile.velocity * 1000;


      -grenades the same.
      -Quad Damage increases players max speed slightly, emit blue particles
      define
      Code:
      .float maxspeed
      in defs.qc

      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]
      -Pentagram causes melee damage to be reflected back to enemy. red particles
      i do not understand the concept



      -if health is below 10, running is disabled.
      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 you can play with cl_forwardspeed and such...
      the invasion has begun! hide your children, grab the guns, and pack sandwiches.

      syluxman2803

      Comment


      • #18
        re: Health below 10 be slow ...

        Originally posted by nahuel View Post
        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 you can play with cl_forwardspeed and such...
        Rook provided this code once upon a time

        Code:
              if (self.flags & FL_ONGROUND)
              {
                 if (vlen(self.velocity) >= 320)
                 {
                    self.velocity = (self.velocity * (320/ (vlen(self.velocity))));
                 }
              }
        You'd put into PlayerPreThink in client.qc and you could modify a player's speed there.

        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


        • #19
          what about of something like
          Code:
          local float vp;
          vp = vlen(self.velocity);
          if (vp>320)
          self.velocity = normalize(self.velocity)*320;
          ��???
          the invasion has begun! hide your children, grab the guns, and pack sandwiches.

          syluxman2803

          Comment


          • #20
            @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.
            'Replacement Player Models' Project

            Comment


            • #21
              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


              • #22
                woa!!! i didnt see all the replies before I wrote that last reply! Gona pick around at all of those for a while, thank you. None of you are being rude at all I'm just slamming my head against the QC and seeing what i can chip off it

                Comment


                • #23
                  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.
                  'Replacement Player Models' Project

                  Comment


                  • #24
                    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


                    • #25
                      The SMC deals with rotation stuff for backpacks and alternative health pickups. World weapons shouldn't be too different.
                      ♪ I'm skiiiiiiinnin' in the pain, just skiiiiiiinnin' in the pain ♪
                      ♪ What a glorious feelin' I'm haaaaaaappy again ♪

                      Comment


                      • #26
                        @bfg --- he said he wants to make a Quake compatible mod. Not a DarkPlaces-only mod.

                        Originally posted by Amon26 View Post
                        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.
                        (progs/g_rock2.mdl ... the ground rocket launcher is an example)

                        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.zip
                        Last 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


                        • #27
                          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


                          • #28
                            Baker. 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?

                            Comment


                            • #29
                              Originally posted by Amon26 View Post
                              Baker. 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?
                              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.

                              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


                              • #30
                                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.
                                'Replacement Player Models' Project

                                Comment

                                Working...
                                X