Announcement

Collapse
No announcement yet.

Silly Instagib Mod

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

  • slackhead
    replied
    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...

    Leave a comment:


  • slackhead
    replied
    Yes on port 26666

    Leave a comment:


  • Mindf!3ldzX
    replied
    I connected to your server,wanna show me stuff?

    so far I've tried

    commands
    help
    !help
    dm3

    Instagib is @ r0t.co.uk yes?

    Leave a comment:


  • slackhead
    replied
    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.

    Leave a comment:


  • slackhead
    replied
    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.

    Leave a comment:


  • slackhead
    replied
    Ok the SZ_GetSpace is fixed I think

    Leave a comment:


  • slackhead
    replied
    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.

    Leave a comment:


  • PrimalLove
    replied
    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.

    Leave a comment:


  • R00k
    replied
    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.

    Leave a comment:


  • slackhead
    replied
    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.

    Leave a comment:


  • R00k
    replied
    Seems like something is being sent to the client in large amounts, and EVERY frame, thus flooding the client.

    Leave a comment:


  • Mr.Burns
    replied
    Originally posted by wicked_lord View Post
    @slackhead, not sure what the deal is with your server's, I tried to connect to both port's using ProQuake and obviously i could not connect. I then tried DarkPlaces and i was able to connect but for only about 5 second's then i would automatically get disconnected. This happened on both port's and it give's me no error's or reason's why I get disconnected.
    just to check this out, I just tried connecting from England and had exactly the same experience.
    Using proquake to connect to the Deathmatch server...
    Code:
    Quake Error
    SZ_GetSpace:Overflow without allowoverflow set
    Using proquake to connect to the Coop server...
    Code:
    Quake Error
    SZ_GetSpace:Overflow without allowoverflow set
    Using Darkplaces to connect to the Deathmatch server = Disconnection after 5-10 seconds
    Using Darkplaces to connect to the Coop server = Disconnection after 5-10 seconds

    I currently get no problems connecting to other servers but I hope this helps

    Monty

    Leave a comment:


  • R00k
    replied
    hmm i only see th_pain used for secret doors...

    I dont think, that a call to a func like that can carry a parameter.

    example:

    self.think = foo(blah,blah);


    Edit:

    wait it's still early in the morning.... i was thinking of somethng else..

    is this where you're changing?
    Code:
    	oldself = self;
    	self = targ;
    	if (self.th_pain)
    	{
    		self.th_pain (attacker, take);
    	}
    	self = oldself;
    Last edited by R00k; 09-13-2014, 09:03 AM.

    Leave a comment:


  • slackhead
    replied
    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;

    Leave a comment:


  • slackhead
    replied
    Weird. I don't know why. Other people have been playing on them so I can't say.

    I thought that using the quake protocol allowed other quakes like proquake to join?

    Leave a comment:

Working...
X