X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fclient.qh;h=cb71a3eaa59298632061a5276fbeb6475dc5910c;hb=8141387a9bf057652453a8d4dc530116cf4cc31a;hp=5fc5422c63f7e55e5d4316f1a91fad7f3b0bdce5;hpb=893f0da37d1e575eb5e9217ce498326e489deb75;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/client.qh b/qcsrc/server/client.qh index 5fc5422c6..cb71a3eaa 100644 --- a/qcsrc/server/client.qh +++ b/qcsrc/server/client.qh @@ -7,6 +7,7 @@ #include bool autocvar__notarget; +bool autocvar_sv_show_entnum; int autocvar_g_balance_armor_start; float autocvar_g_balance_pause_armor_rot_spawn; float autocvar_g_balance_pause_fuel_rot_spawn; @@ -49,12 +50,29 @@ float autocvar_gameversion_max; string autocvar_hostname; int autocvar_spawn_debug; string autocvar_sv_motd; +string autocvar_sv_motd_permanent; int autocvar_sv_name_maxlength = 64; +string autocvar_sv_quickmenu_file; bool autocvar_sv_servermodelsonly; +bool autocvar_sv_showspectators; int autocvar_sv_spectate; bool autocvar_sv_teamnagger; float autocvar_sv_player_scale; -bool autocvar_sv_showspectators; + +// z411 +string autocvar_hostname_full; +string autocvar_g_teamnames_red; +string autocvar_g_teamnames_blue; +string autocvar_g_teamnames_yellow; +string autocvar_g_teamnames_pink; + +void send_TeamNames(int channel, entity to); + +// Medals +float autocvar_g_medals_excellent_time = 2; + +// Timer +int autocvar_sv_timer_countdown = 1; // 0 = disabled, 1 = enabled, 2 = spect only // WEAPONTODO .string weaponorder_byimpulse; @@ -64,14 +82,15 @@ bool autocvar_sv_showspectators; .float jointime; // time of connecting .float startplaytime; // time of switching from spectator to player .float alivetime; // time of being alive -.float motd_actived_time; // used for both motd and campaign_message .bool wasplayer; .int spectatee_status; .bool zoomstate; +.bool team_selected; .bool just_joined; +.bool wants_join; .int pressedkeys; @@ -82,15 +101,14 @@ bool autocvar_sv_showspectators; void ClientState_attach(entity this); -IntrusiveList g_players; -STATIC_INIT(g_players) { g_players = IL_NEW(); } - CLASS(Client, Object) /** Client name */ ATTRIB(Client, netname, string, this.netname); ATTRIB(Client, colormap, int, this.colormap); ATTRIB(Client, team, int, this.team); ATTRIB(Client, clientcolors, int, this.clientcolors); + ATTRIB(Client, countrycode, int, this.countrycode); + ATTRIB(Client, rank, string, this.rank); /** Client IP */ ATTRIB(Client, netaddress, string, this.netaddress); ATTRIB(Client, playermodel, string, this.playermodel); @@ -159,8 +177,8 @@ CLASS(Client, Object) ATTRIB(Client, teamkill_soundtime, float, this.teamkill_soundtime); ATTRIB(Client, teamkill_soundsource, entity, this.teamkill_soundsource); ATTRIB(Client, usekeypressed, bool, this.usekeypressed); - ATTRIB(Client, motd_actived_time, float, this.motd_actived_time); ATTRIB(Client, jointime, float, this.jointime); + ATTRIB(Client, wants_join, bool, this.wants_join); ATTRIB(Client, spectatortime, float, this.spectatortime); ATTRIB(Client, startplaytime, float, this.startplaytime); ATTRIB(Client, version_nagtime, float, this.version_nagtime); @@ -186,7 +204,6 @@ CLASS(Client, Object) ATTRIB(Client, specialcommand_pos, int, this.specialcommand_pos); ATTRIB(Client, hitplotfh, int, this.hitplotfh); ATTRIB(Client, clientdata, entity, this.clientdata); - ATTRIB(Client, cmd_floodcount, int, this.cmd_floodcount); ATTRIB(Client, cmd_floodtime, float, this.cmd_floodtime); ATTRIB(Client, wasplayer, bool, this.wasplayer); ATTRIB(Client, weaponorder_byimpulse, string, this.weaponorder_byimpulse); @@ -208,6 +225,7 @@ CLASS(Client, Object) ATTRIB(Client, cvar_cl_pokenade_type, string, this.cvar_cl_pokenade_type); ATTRIB(Client, cvar_cl_spawn_near_teammate, bool, this.cvar_cl_spawn_near_teammate); ATTRIB(Client, cvar_cl_gunalign, int, this.cvar_cl_gunalign); + ATTRIB(Client, cvar_cl_chat_sounds, bool, this.cvar_cl_chat_sounds); ATTRIB(Client, cvar_cl_handicap, float, this.cvar_cl_handicap); ATTRIB(Client, cvar_cl_clippedspectating, bool, this.cvar_cl_clippedspectating); ATTRIB(Client, cvar_cl_autoscreenshot, int, this.cvar_cl_autoscreenshot); @@ -279,10 +297,8 @@ CLASS(Player, Client) INIT(Player) { this.classname = STR_PLAYER; - IL_PUSH(g_players, this); } DESTRUCTOR(Player) { - IL_REMOVE(g_players, this); } ENDCLASS(Player) @@ -314,13 +330,16 @@ bool independent_players; #define IS_INDEPENDENT_PLAYER(e) ((e).solid == SOLID_TRIGGER) #define MAKE_INDEPENDENT_PLAYER(e) (((e).solid = SOLID_TRIGGER), ((e).frags = FRAGS_PLAYER_OUT_OF_GAME)) +.float lastkill; +.int countrycode; .int killcount; +.string rank; // RJZ //flood fields .float nickspamtime; // time of last nick change .float nickspamcount; -void SendWelcomemessage_msg_type(entity this, bool force_centerprint, int msg_type); +void SendWelcomeMessage(entity this, int msg_type); // respawning .int respawn_flags; @@ -361,6 +380,10 @@ void calculate_player_respawn_time(entity this); bool PlayerInList(entity player, string list); +bool PlayerInIDList(entity p, string idlist); + +bool PlayerInIPList(entity p, string iplist); + void ClientData_Touch(entity e); int nJoinAllowed(entity this, entity ignore); @@ -394,6 +417,8 @@ void SetSpectatee_status(entity this, int spectatee_num); void FixPlayermodel(entity player); +void ResetPlayerResources(entity this); + void ClientInit_misc(entity this); int GetPlayerLimit(); @@ -402,7 +427,15 @@ const int MIN_SPEC_TIME = 1; bool joinAllowed(entity this); void Join(entity this); +void PlayerFrame (entity this); + #define SPECTATE_COPY() ACCUMULATE void SpectateCopy(entity this, entity spectatee) #define SPECTATE_COPYFIELD(fld) SPECTATE_COPY() { this.(fld) = spectatee.(fld); } const int MAX_SPECTATORS = 7; + +float _medal_times; +#define Give_Medal(entity,medalname) \ + _medal_times = GameRules_scoring_add(entity, MEDAL_##medalname, 1); \ + Send_Notification(NOTIF_ONE, entity, MSG_MEDAL, MEDAL_##medalname, _medal_times); +