Announcement

Collapse
No announcement yet.

Silly Instagib Mod

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

  • #16
    Can you try to connect to the test server on port 26666? I've turned off the insta mod for now so it should be clean coop.

    -r0t.uk- cOOp - Mapvote - r0t.uk:26001
    -r0t.uk- DM - Mapvote - r0t.uk:26000

    Comment


    • #17
      ya port 26666 works

      Here's what CAx's instagib looks like

      Code:
      void() Neutron_Touch =
      {
      	local vector org;
      	
      	if (other == self.owner)
      		return;		// don't explode on owner
      
      	if (pointcontents(self.origin) == CONTENT_SKY)
      	{
      		remove(self);
      		return;
      	}
      	
      //	sound (self, CHAN_WEAPON, "enforcer/enfstop.wav", 1, ATTN_STATIC);
      	org = self.origin - 8*normalize(self.velocity);
      
      	if (other.health)
      	{
      		SpawnBlood (org, self.velocity*0.2, 15);		
      		self.owner.frags = self.owner.frags + 1;
      		Check_Fraglimit(self.owner);
      		self.owner.stats_lg_frac = self.owner.stats_lg_frac + 325;
      		other.health = -99;
      		Killed (other, self.owner);
      	}
      	else
      	{
      		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);
      		T_RadiusDamage (self, self.owner, 120, other, "slug");
      	}
      
      	remove(self);	
      };
      
      /*
      ============
      FireNeutron
      ============
      */
      void()  W_Fire_Neutron =
      {
      	local entity missile;
      	local float n;
      
      	n = random()*3;
      	
      	if (n < 2 ) sound (self, CHAN_WEAPON, "weapons/ric1.wav",1,ATTN_NORM);
      	if (n == 2) sound (self, CHAN_WEAPON, "weapons/ric2.wav",1,ATTN_NORM);
      	if (n > 2 ) sound (self, CHAN_WEAPON, "weapons/ric3.wav",1,ATTN_NORM);
      	
      	missile		 	= spawn ();
      	missile.owner 		= self;
      	missile.movetype 	= MOVETYPE_FLYMISSILE;
      	missile.solid 		= SOLID_BBOX;
      	missile.effects 	= EF_DIMLIGHT;
      	missile.classname 	= "slug";
      	
      	makevectors 	(self.v_angle);
      	
      	missile.velocity 	= aim(self,10000);
      	missile.velocity 	= missile.velocity * 10000;
      	missile.angles		= vectoangles(missile.velocity);
      	missile.touch 		= Neutron_Touch;
      	missile.nextthink 	= time + 5;
      	missile.think 		= SUB_Remove;
      	
      	setmodel	(missile, "progs/w_spike.mdl");
      	setsize 	(missile, '0 0 0', '0 0 0');		
      	setorigin 	(missile, self.origin + v_forward*8 + '0 0 16');
      	        
         	self.stats_lg_tot	= self.stats_lg_tot + 325;
      	missile.state 		= 1;	
      };
      although, you have to set maxvelocity to 10000... i should have just used a traceline but i wanted the player to be able to dodge and also the shot to emit a particle effect.
      www.quakeone.com/qrack | www.quakeone.com/cax| http://en.twitch.tv/sputnikutah

      Comment


      • #18
        Originally posted by slackhead View Post
        Testing shooting switched etc and still crashing. I had to change these lines in combat.qc:

        Code:
         95         if (self.classname == "door")
         96             self.th_pain (attacker, 1);
         97         else
         98             self.th_die();
         99 
        100         self = oself;
        This is why I mentioned just using a clean combat.qc. Unless you are just wanting enemy fire to be stronger? You can still do that but you are using way too much damage for it to work correctly. It will crash because of the amount of damage being dealt to the shootable button because they have health. Normally this isn't a problem because the amount of damage dealt is fairly low. But if you want enemies to deal more damage you could make other changes besides the ones you've made.

        I'd just do a clean combat.qc, make a new weapon for your instagib like r00k has shown above and the one I made earlier and then just have it so that when deathmatch 2 and maybe coop 2 are active it will give you only the instagib gun.

        i like r00k's example insta gun because as you can see:

        Code:
        if (other.health)
        	{
        		SpawnBlood (org, self.velocity*0.2, 15);		
        		self.owner.frags = self.owner.frags + 1;
        		Check_Fraglimit(self.owner);
        		self.owner.stats_lg_frac = self.owner.stats_lg_frac + 325;
        		other.health = -99;
        		Killed (other, self.owner);
        This solution just sets the health of the enemy to -99 which will be enough to gib them but not so much that it would crash anything (buttons). It also sets the Killed function. So this will by pass using any of the multidamage, applydamage, traceattack in weapons.qc or t_damage or similar in combat.qc.

        This would be your best option. You can make enemies stronger if you still want too but this will easily fix your weapon crashing problem. Assuming you fix your combat.qc.

        As a side note: It is always best to use the simpliest solution first and try to avoid using or changing too many built in functions as possible to accomplish your goal. A lot of these functions get reused by either the monsters or for various other actions in the game so to avoid having to compensate for that it's usually easily to just make your own function or use one that isn't dependent of too many other variables.

        EDIT: Also if you want the attack to be instant you can set it to traceline instead of velocity like r00k stated. I kinda like the idea that you can possibly dodge it if far enough away. Nice work r00k
        Last edited by PrimalLove; 09-13-2014, 11:58 AM.

        Comment


        • #19
          Ok I will look at changing the health/damage to a lower amount.

          Yeah I did want monsters etc to have the same power. More fun that way.

          -r0t.uk- cOOp - Mapvote - r0t.uk:26001
          -r0t.uk- DM - Mapvote - r0t.uk:26000

          Comment


          • #20
            Ok the SZ_GetSpace is fixed I think

            -r0t.uk- cOOp - Mapvote - r0t.uk:26001
            -r0t.uk- DM - Mapvote - r0t.uk:26000

            Comment


            • #21
              New version upload.

              Added: Berserk mode.

              Set BERSERKTIMER in defs.qc which sets a timer + a random element. When the timer gets to zero you are equipped with an axe only.

              You only need to set the weapon now.

              -r0t.uk- cOOp - Mapvote - r0t.uk:26001
              -r0t.uk- DM - Mapvote - r0t.uk:26000

              Comment


              • #22
                Just fixed Berserker mode continuation on death or connecting in the middle of it.

                Index of /quake-mods

                I'd better explain what berserk mode is. You get 15 seconds with an axe. Look at the end defs.qc for the settings.

                -r0t.uk- cOOp - Mapvote - r0t.uk:26001
                -r0t.uk- DM - Mapvote - r0t.uk:26000

                Comment


                • #23
                  I connected to your server,wanna show me stuff?

                  so far I've tried

                  commands
                  help
                  !help
                  dm3

                  Instagib is @ r0t.co.uk yes?
                  Want to get into playing Quake again? Click here for the Multiplayer-Startup kit! laissez bon temps rouler!

                  Comment


                  • #24
                    Yes on port 26666

                    -r0t.uk- cOOp - Mapvote - r0t.uk:26001
                    -r0t.uk- DM - Mapvote - r0t.uk:26000

                    Comment


                    • #25
                      Update to stop Primal Love from crashing my server!

                      I'll leave a few of the old ones up for now

                      There's still a problem with weapon firing animation...

                      -r0t.uk- cOOp - Mapvote - r0t.uk:26001
                      -r0t.uk- DM - Mapvote - r0t.uk:26000

                      Comment


                      • #26
                        Update to fix broken animation

                        -r0t.uk- cOOp - Mapvote - r0t.uk:26001
                        -r0t.uk- DM - Mapvote - r0t.uk:26000

                        Comment


                        • #27
                          Mindz, please give him some merit, he is hosting and writing his own mod. It is not easy. This IS the coolest thing anyone can do with Quake.

                          Common commands are not so common; those are specific to /common/ mods.


                          wha?

                          hhee

                          i mean what we are used to are not standard.

                          even though i will provide source via pm's
                          but thats no fun!
                          www.quakeone.com/qrack | www.quakeone.com/cax| http://en.twitch.tv/sputnikutah

                          Comment


                          • #28
                            Been having fun testing it out.

                            Comment


                            • #29
                              So I have to go for the night but have been enjoying the testing and the mod is quite fun. Here is what I was talking about when using the built in quad stuff.. Basically I changed your postthink stuff here:


                              Code:
                              if (BERSERK)
                                  {
                                      if (BERSERK == 1)
                                      {
                                          BERSERK = 2;
                                          KEEPWEAPON = IT_AXE;
                                          centerprint(self, BerserkMsg);
                                          sound (self, CHAN_AUTO, "items/damage3.wav", 1, ATTN_NORM);
                                          self.weapon = IT_AXE;
                                          self.weaponmodel = instamodel[0];
                                          self.items = self.items | IT_QUAD;
                              		   self.super_time = 1;
                              		   self.super_damage_finished = time + 30;
                                      }
                                      
                                  }
                                  else
                                  {
                                      self.items = self.items & !IT_QUAD;
                              	self.super_damage_finished = time;
                                      self.super_time = 0;
                                      KEEPWEAPON = IT_KEEPWEAPON;
                                      self.weapon = IT_KEEPWEAPON;
                                      //W_SetCurrentAmmo ();
                                      self.weaponmodel = instamodel[IT_KEEPWEAPON];
                                  }
                              	    CheckPowerups ();
                              This sets quad to 30 but it can be any time as long as it is over your Beserk Mod time. Next when the timer is over it will go to the next part which it will take quad away, set the super_damage_finished = to time (it needs this to turn off the glow and to be reset) and set self.super_time to 0. So because of this it still relies on your timer so the timer for the super_damage_finished is basically not important because it gets reset anyway.
                              Last edited by PrimalLove; 09-14-2014, 03:18 AM.

                              Comment


                              • #30
                                Right, that's sounds, deaths, (re)connecting done. Also changed ammo amount to 1.

                                Thanks for the help and testing.

                                -r0t.uk- cOOp - Mapvote - r0t.uk:26001
                                -r0t.uk- DM - Mapvote - r0t.uk:26000

                                Comment

                                Working...
                                X