gl_texturecompression_q3bsplightmaps 0
gl_texturecompression_sky 1
- set menu_mouse_absolute 0 "TODO make this seta if the engine understands this right"
+ seta menu_mouse_absolute 1 "use the OS mouse pointer motion for menu"
seta menu_mouse_speed 1 "speed multiplier for the mouse in the menu (does not affect in-game aiming)"
set menu_use_default_hostname 1
alias sethostname "set menu_use_default_hostname 0; hostname $*"
set cl_handicap 1 "the higher, the more damage you will receive (client setting)"
+seta cl_noclipspectating 0 "noclip for spectators so that you can pass through walls and such. (client setting)"
+
// must be at the bottom of this file:
// alias for switching the teamselect menu
alias menu_showteamselect "menu_cmd directmenu TeamSelect"
// enable menu syncing
alias menu_sync "menu_cmd sync"
alias scoreboard_columns_set "cl_cmd scoreboard_columns_set $*"
-
- // BALANCE TESTING (TEMPORARY, PLEASE REMOVE LATER)
- alias balanceSamual "exec balanceSamual.cfg; restart"
- alias balanceFruitieX "exec balanceXonotic.cfg; restart"
- bind f7 balanceSamual
- bind f8 balanceFruitieX
accuracy_resend(self);
self.spectatortime = time;
-
+
self.classname = "observer";
self.iscreature = FALSE;
self.health = -666;
self.takedamage = DAMAGE_NO;
self.solid = SOLID_NOT;
- self.movetype = MOVETYPE_NOCLIP;
+ self.movetype = (self.cvar_cl_noclipspectating ? MOVETYPE_NOCLIP : MOVETYPE_FLY);
self.flags = FL_CLIENT | FL_NOTARGET;
self.armorvalue = 666;
self.effects = 0;
self.fixangle = TRUE;
self.crouch = FALSE;
- self.view_ofs = PL_VIEW_OFS;
+ self.view_ofs = '0 0 0'; // so that you can't go inside walls with MOVETYPE_FLY, previously "PL_VIEW_OFS" - for some reason this is diff from normal players
setorigin (self, spot.origin);
- setsize (self, '0 0 0', '0 0 0');
+ setsize (self, '-16 -16 -24', '16 16 24'); // so that you can't go inside walls with MOVETYPE_FLY
self.prevorigin = self.origin;
self.items = 0;
self.weapons = 0;
}
if(!zoomstate_set)
- SetZoomState(self.BUTTON_ZOOM || (self.BUTTON_ATCK2 && self.weapon == WEP_NEX) || (self.BUTTON_ATCK2 && self.weapon == WEP_SNIPERRIFLE && autocvar_g_balance_sniperrifle_secondary == 0));
+ SetZoomState(self.BUTTON_ZOOM || self.BUTTON_ZOOMSCRIPT || (self.BUTTON_ATCK2 && self.weapon == WEP_NEX) || (self.BUTTON_ATCK2 && self.weapon == WEP_SNIPERRIFLE && autocvar_g_balance_sniperrifle_secondary == 0));
float oldspectatee_status;
oldspectatee_status = self.spectatee_status;
float require_spawnfunc_prefix; // if this float exists, only functions with spawnfunc_ name prefix qualify as spawn functions
- #define BUTTON_ATCK button0
- #define BUTTON_JUMP button2
- #define BUTTON_ATCK2 button3
- #define BUTTON_ZOOM button4
- #define BUTTON_CROUCH button5
- #define BUTTON_HOOK button6
- #define BUTTON_INFO button7
- #define BUTTON_CHAT buttonchat
- #define BUTTON_USE buttonuse
- #define BUTTON_DRAG button8
+ #define BUTTON_ATCK button0
+ #define BUTTON_JUMP button2
+ #define BUTTON_ATCK2 button3
+ #define BUTTON_ZOOM button4
+ #define BUTTON_CROUCH button5
+ #define BUTTON_HOOK button6
+ #define BUTTON_INFO button7
+ #define BUTTON_CHAT buttonchat
+ #define BUTTON_USE buttonuse
+ #define BUTTON_DRAG button8
+ #define BUTTON_ZOOMSCRIPT button9
// Globals
.vector anim_forwardleft; // player running forward and left
.vector anim_backright; // player running backward and right
.vector anim_backleft; // player running back and left
+ .vector anim_melee; // player doing the melee action
// weapon animation vectors:
.vector anim_fire1;
.float cvar_cl_playerdetailreduction;
.float cvar_scr_centertime;
.float cvar_cl_shownames;
+.float cvar_cl_noclipspectating;
.string cvar_g_xonoticversion;
.string cvar_cl_weaponpriority;
.string cvar_cl_weaponpriorities[10];