set g_balance_shotgun_secondary_melee_no_doubleslap 1
set g_balance_shotgun_secondary_melee_nonplayerdamage 40
set g_balance_shotgun_secondary_melee_multihit 1
-set g_balance_shotgun_secondary_damage 100
+set g_balance_shotgun_secondary_damage 70
set g_balance_shotgun_secondary_force 200
set g_balance_shotgun_secondary_refire 1.25
set g_balance_shotgun_secondary_animtime 1
set g_balance_crylink_primary_edgedamage 5
set g_balance_crylink_primary_force -55
set g_balance_crylink_primary_radius 80
-set g_balance_crylink_primary_speed 1800
-set g_balance_crylink_primary_spread 0.075
-set g_balance_crylink_primary_shots 7
+set g_balance_crylink_primary_speed 2000
+set g_balance_crylink_primary_spread 0.08
+set g_balance_crylink_primary_shots 6
set g_balance_crylink_primary_bounces 1
set g_balance_crylink_primary_refire 0.7
set g_balance_crylink_primary_animtime 0.3
set g_balance_crylink_primary_ammo 3
set g_balance_crylink_primary_bouncedamagefactor 0.5
-set g_balance_crylink_primary_joindelay 0
-set g_balance_crylink_primary_joinspread 0.4
+set g_balance_crylink_primary_joindelay 0.1
+set g_balance_crylink_primary_joinspread 0.2
set g_balance_crylink_primary_jointime 0
set g_balance_crylink_primary_joinexplode 1
set g_balance_crylink_primary_joinexplode_damage 0
-// hagar trail
+// mortar trail
// smoke
// used in qcsrc/client/projectile.qc: trailparticles(self, particleeffectnum("TR_GRENADE"), from, to)
// used in qcsrc/client/projectile.qc: trailparticles(self, particleeffectnum("TR_GRENADE"), from, to)
-// mortar trail
+// hookbomb trail
// smoke
// used in qcsrc/client/projectile.qc: trailparticles(self, particleeffectnum("TR_KNIGHTSPIKE"), from, to)
// used in qcsrc/client/projectile.qc: trailparticles(self, particleeffectnum("TR_KNIGHTSPIKE"), from, to)
velocitymultiplier 5
staincolor 0x808080 0x808080
staintex 16 24
+
+// hagar trail
+// smoke
+effect tr_hagar
+trailspacing 4
+type smoke
+color 0x101010 0x000000
+tex 0 8
+size 3 2
+bounce 1
+sizeincrease 10
+alpha 300 400 780
+originjitter 1 1 1
+velocityjitter 1 1 1
+velocitymultiplier -0.02
+//gravity -0.11
+// fire
+effect tr_hagar
+notunderwater
+trailspacing 4
+type static
+color 0xffdf72 0x811200
+tex 48 55
+size 5 2
+sizeincrease -15
+alpha 100 144 988
+airfriction 8
+velocityjitter 32 32 32
+velocitymultiplier -1.0
+// bubbles
+effect tr_hagar
+underwater
+trailspacing 16
+type bubble
+tex 62 62
+color 0x404040 0x808080
+size 1 1
+alpha 256 256 256
+gravity -0.125
+bounce 1.5
+liquidfriction 4
+velocityjitter 16 16 16
case PROJECTILE_PORTO_RED: setmodel(self, "models/grenademodel.md3");self.traileffect = particleeffectnum("TR_WIZSPIKE"); self.scale = 4; break;
case PROJECTILE_PORTO_BLUE: setmodel(self, "models/grenademodel.md3");self.traileffect = particleeffectnum("TR_WIZSPIKE"); self.scale = 4; break;
case PROJECTILE_HOOKBOMB: setmodel(self, "models/grenademodel.md3");self.traileffect = particleeffectnum("TR_KNIGHTSPIKE"); break;
- case PROJECTILE_HAGAR: setmodel(self, "models/hagarmissile.mdl");self.traileffect = particleeffectnum("TR_GRENADE"); self.scale = 0.75; break;
- case PROJECTILE_HAGAR_BOUNCING: setmodel(self, "models/hagarmissile.mdl");self.traileffect = particleeffectnum("TR_GRENADE"); self.scale = 0.75; break;
+ case PROJECTILE_HAGAR: setmodel(self, "models/hagarmissile.mdl");self.traileffect = particleeffectnum("tr_hagar"); self.scale = 0.75; break;
+ case PROJECTILE_HAGAR_BOUNCING: setmodel(self, "models/hagarmissile.mdl");self.traileffect = particleeffectnum("tr_hagar"); self.scale = 0.75; break;
case PROJECTILE_FIREBALL: self.model = ""; self.modelindex = 0; self.traileffect = particleeffectnum("fireball"); break; // particle effect is good enough
case PROJECTILE_FIREMINE: self.model = ""; self.modelindex = 0; self.traileffect = particleeffectnum("firemine"); break; // particle effect is good enough
case PROJECTILE_TAG: setmodel(self, "models/laser.mdl"); self.traileffect = particleeffectnum("TR_ROCKET"); break;
void() m_init;
void(float keynr, float ascii) m_keydown;
void() m_draw;
-void() m_toggle;
+void(float mode) m_toggle;
void() m_shutdown;
/////////////////////////////////////////////////////////
main.hideNotify(main);
}
-void m_toggle()
+void m_toggle(float mode)
{
if(Menu_Active)
+ {
+ if (mode == 1)
+ return;
m_hide();
+ }
else
+ {
+ if (mode == 0)
+ return;
m_display();
+ }
}
void m_shutdown()
if(selection)
{
- if(self.team != selection || self.deadflag != DEAD_NO)
- ClientKill_TeamChange(selection);
- else
+ if(self.team == selection && self.deadflag == DEAD_NO)
sprint(self, "^7You already are on that team.\n");
+ else if(self.wasplayer && autocvar_g_changeteam_banned)
+ sprint(self, "^1You cannot change team, forbidden by the server.\n");
+ else
+ ClientKill_TeamChange(selection);
}
}
else
// as a GENERAL rule:
// if you have the invisibility powerup, sprites ALWAYS are restricted to your team
// but only apply this to real players, not to spectators
- if(g_minstagib && (self.owner.items & IT_STRENGTH) && (e == other))
+ if(g_minstagib && (self.owner.flags & FL_CLIENT) && (self.owner.items & IT_STRENGTH) && (e == other))
{
if(!WaypointSprite_isteammate(self.owner, e))
return FALSE;