Well, I can only answer the first 2 questions for you...
To make the bloody pieces don't disappear, open player.qc and find ThrowGib(), replace that whole function with this one:
Code: Select all
void(string gibname, float dm) ThrowGib =
{
local entity new;
new = spawn();
new.origin = self.origin;
setmodel (new, gibname);
setsize (new, '0 0 0', '0 0 0');
new.velocity = VelocityForDamage (dm);
new.movetype = MOVETYPE_BOUNCE;
new.solid = SOLID_NOT;
new.avelocity_x = random()*600;
new.avelocity_y = random()*600;
new.avelocity_z = random()*600;
new.ltime = time;
new.frame = 0;
new.flags = 0;
};
Notice that I've removed the new.think and new.nextthink lines, that makes it disappear.
About the right side guns, open weapons.qc and scroll down to W_FireRocket(). Change the setorigin line to this:
Code: Select all
setorigin (missile, self.origin + v_forward*8 + '0 0 16' + v_right*9);
v_right will make the rocket spawn 9 units to the right.
Do the same with W_FireGrenade():
Code: Select all
setorigin (missile, self.origin + v_right*9);
Change launch_spike() in W_FireSuperSpikes():
Code: Select all
launch_spike (self.origin + '0 0 16' + v_right*9, dir);
Same with W_FireSpikes(), but a little different:
Code: Select all
launch_spike (self.origin + '0 0 16' + v_right*(9 + ox), dir);
Now the third question I don't know exactly... Maybe some other guy will help you.