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.
Announcement
Collapse
No announcement yet.
Silly Instagib Mod
Collapse
X
-
ya port 26666 works
Here's what CAx's instagib looks like
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.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; };
Comment
-
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.Originally posted by slackhead View PostTesting 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;
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:
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.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 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
-
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
-
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
-
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!
Comment
-
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:
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.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 ();Last edited by PrimalLove; 09-14-2014, 03:18 AM.
Comment


Comment