- wget -O data/maps/g-23.waypoints.cache https://gitlab.com/xonotic/xonotic-maps.pk3dir/raw/master/maps/g-23.waypoints.cache
- wget -O data/maps/g-23.waypoints.hardwired https://gitlab.com/xonotic/xonotic-maps.pk3dir/raw/master/maps/g-23.waypoints.hardwired
- make
- - EXPECT=3134955e1b2af87635ba19947dccc2a4
+ - EXPECT=f17c2b4e7a8619ff77983de267669802
- HASH=$(${ENGINE} -noconfig -nohome +exec serverbench.cfg
| tee /dev/stderr
| grep '^:'
set g_nexball_basketball_trail 1 "1 to leave a trail"
set g_nexball_football_trail 0 "1 to leave a trail"
set g_nexball_trail_color 254 "1-256 for different colors (Quake palette, 254 is white)"
+set g_nexball_playerclip_collisions 1 "make the ball bounce off clips"
set g_nexball_radar_showallplayers 1 "1: show every player and the ball on the radar 0: only show teammates and the ball on the radar"
seta g_nexball_safepass_maxdist 5000 "Max distance to allow save fassping (0 to turn off safe passing)"
seta g_nexball_safepass_turnrate 0.1 "How fast the safe-pass ball can habge direction"
if(this.tag_entity && wasfreed(this.tag_entity))
this.tag_entity = NULL;
- viewloc_SetTags(this);
-
MUTATOR_CALLHOOK(TagIndex_Update, this);
if(this.tag_networkentity)
bool Scoreboard_WouldDraw()
{
- if (QuickMenu_IsOpened())
+ if (MUTATOR_CALLHOOK(DrawScoreboard))
+ return false;
+ else if (QuickMenu_IsOpened())
return false;
else if (HUD_Radar_Clickable())
return false;
/** Return true to not draw crosshair */
MUTATOR_HOOKABLE(DrawCrosshair, EV_NO_ARGS);
+
+/** Return true to not draw scoreboard */
+MUTATOR_HOOKABLE(DrawScoreboard, EV_NO_ARGS);
bool autocvar_g_nexball_radar_showallplayers;
bool autocvar_g_nexball_sound_bounce;
int autocvar_g_nexball_trail_color;
+bool autocvar_g_nexball_playerclip_collisions = true;
float autocvar_g_nexball_safepass_turnrate;
float autocvar_g_nexball_safepass_maxdist;
set_movetype(this, MOVETYPE_FLY);
+ if(autocvar_g_nexball_playerclip_collisions)
+ {
+ this.dphitcontentsmask = DPCONTENTS_BODY | DPCONTENTS_SOLID | DPCONTENTS_PLAYERCLIP;
+ this.dphitcontentsmask |= DPCONTENTS_PLAYERCLIP;
+ }
+
if(!autocvar_g_nexball_sound_bounce)
this.noise = "";
else if(this.noise == "")
#endif
}
-.vector oldmovement;
-
void PM_jetpack(entity this, float maxspd_mod, float dt)
{
//makevectors(this.v_angle.y * '0 1 0');
{
this.team = myteam + 1; // is this correct?
PHYS_WATERJUMP_TIME(this) -= dt;
- this.oldmovement = this.movement;
this.movement = PHYS_INPUT_MOVEVALUES(this);
this.items = STAT(ITEMS, this);
this.spectatorspeed = STAT(SPECTATORSPEED, this);
}
if (this.com_phys_ladder) {
if (this.viewloc) {
- wishvel.z = this.oldmovement.x;
+ wishvel.z = this.movement_old.x;
}
if (this.ladder_entity.classname == "func_water") {
float f = vlen(wishvel);
{
WarpZone_PlayerPhysics_FixVAngle(this);
Physics_UpdateStats(this, PHYS_HIGHSPEED(this));
- this.oldmovement = this.movement;
}
bool sys_phys_override(entity this, float dt)
this.csqcmodel_teleported = 1;
}
+ if(sf & BIT(14))
+ viewloc_SetTags(this);
+
CSQCModel_InterpolateAnimation_Note(this, sf);
InterpolateOrigin_Note(this);
CSQCPlayer_PostUpdate(this);