Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
sv_tka.qh File Reference
Include dependency graph for sv_tka.qh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

 REGISTER_MUTATOR (tka, false)
void tka_DropEvent (entity player)
void tka_Initialize ()
 void (entity this) havocbot_role_tka_carrier

Variables

int autocvar_g_tka_point_leadlimit
int autocvar_g_tka_point_limit
bool autocvar_g_tka_team_spawns
int autocvar_g_tka_teams_override
IntrusiveList g_tkaballs
int tka_teams

Function Documentation

◆ REGISTER_MUTATOR()

REGISTER_MUTATOR ( tka ,
false  )

Definition at line 14 of file sv_tka.qh.

15{
18 {
19 GameRules_teams(true);
23
25 }
26 return false;
27}
#define MUTATOR_ONADD
Definition base.qh:309
#define MUTATOR_STATIC()
Definition base.qh:313
void GameRules_limit_score(int limit)
Definition sv_rules.qc:23
void GameRules_teams(bool value)
Definition sv_rules.qc:3
void GameRules_limit_lead(int limit)
Definition sv_rules.qc:33
#define GameRules_spawning_teams(value)
Used to disable team spawns in team modes.
Definition sv_rules.qh:35
bool autocvar_g_tka_team_spawns
Definition sv_tka.qh:6
void tka_Initialize()
int autocvar_g_tka_point_limit
Definition sv_tka.qh:4
int autocvar_g_tka_point_leadlimit
Definition sv_tka.qh:5

References autocvar_g_tka_point_leadlimit, autocvar_g_tka_point_limit, autocvar_g_tka_team_spawns, GameRules_limit_lead(), GameRules_limit_score(), GameRules_spawning_teams, GameRules_teams(), MUTATOR_ONADD, MUTATOR_STATIC, and tka_Initialize().

◆ tka_DropEvent()

void tka_DropEvent ( entity player)

Definition at line 187 of file sv_tka.qc.

188{
189 entity ball;
190 ball = player.ballcarried;
191
192 if(!ball) { return; }
193
194 // reset the ball
195 setattachment(ball, NULL, "");
197 ball.previous_owner = player;
198 ball.wait = time + 0.5; // same as for thrown weapons
200 ball.nextthink = time + autocvar_g_tkaball_respawntime;
201 ball.takedamage = DAMAGE_YES;
202 ball.scale = 1; // it's smaller while carried
203 ball.alpha = 1; // in case the carrier had an invisibility effect
204 ball.solid = SOLID_TRIGGER; // before setorigin to ensure area grid linking
205 setorigin(ball, player.origin + ball.origin + '0 0 10'); // include attachment offset to reduce jump
206 nudgeoutofsolid_OrFallback(ball); // a ball has a horizontally bigger bbox than a player
207 ball.velocity = '0 0 200' + '0 100 0'*crandom() + '100 0 0'*crandom();
208 ball.owner = NULL;
209 navigation_dynamicgoal_set(ball, player);
210
211 // messages and sounds
212 tka_EventLog("dropped", player);
213 Send_Notification(NOTIF_ALL, NULL, MSG_INFO, INFO_KEEPAWAY_DROPPED, player.netname);
214 Send_Notification(NOTIF_ALL, NULL, MSG_CENTER, CENTER_KEEPAWAY_DROPPED, player.netname);
215 sound(NULL, CH_TRIGGER, SND_KA_DROPPED, VOL_BASE, ATTEN_NONE); // ATTEN_NONE (it's a sound intended to be heard anywhere)
216
217 // waypoints
219 {
220 WaypointSprite_Spawn(WP_KaBall, 0, 0, ball, '0 0 64', NULL, ball.team, ball, waypointsprite_attachedforcarrier, false, RADARICON_FLAGCARRIER);
221 WaypointSprite_UpdateRule(ball.waypointsprite_attachedforcarrier, 0, SPRITERULE_DEFAULT);
222 WaypointSprite_Ping(ball.waypointsprite_attachedforcarrier);
223 }
224
225 if (ball.ballcarried) // >1 ball was chained, first one was just dropped
226 {
227 player.ballcarried = ball.ballcarried; // move the next one up
228 ball.ballcarried = NULL; // prevent infinite loop
229 }
230 else // no balls remaining so remove bc status
231 tka_PlayerReset(player);
232}
void navigation_dynamicgoal_set(entity this, entity dropper)
Definition navigation.qc:87
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
bool warmup_stage
Definition main.qh:120
const float SOLID_TRIGGER
float time
void set_movetype(entity this, int mt)
Definition movetypes.qc:4
const int MOVETYPE_BOUNCE
Definition movetypes.qh:139
void Send_Notification(NOTIF broadcast, entity client, MSG net_type, Notification net_name,...count)
Definition all.qc:1573
#define NULL
Definition post.qh:14
#define crandom()
Returns a random number between -1.0 and 1.0.
Definition random.qh:32
#define setthink(e, f)
const int CH_TRIGGER
Definition sound.qh:12
const float VOL_BASE
Definition sound.qh:36
const float ATTEN_NONE
Definition sound.qh:27
#define sound(e, c, s, v, a)
Definition sound.qh:52
const int DAMAGE_YES
Definition subs.qh:80
void tka_EventLog(string mode, entity actor)
Definition sv_tka.qc:40
void tka_RespawnBall(entity this)
Definition sv_tka.qc:47
float autocvar_g_tkaball_respawntime
Definition sv_tka.qc:24
void tka_PlayerReset(entity player)
Definition sv_tka.qc:180
int autocvar_g_tkaball_tracking
Definition sv_tka.qc:26
void WaypointSprite_Ping(entity e)
entity WaypointSprite_Spawn(entity spr, float _lifetime, float maxdistance, entity ref, vector ofs, entity showto, float t, entity own,.entity ownfield, float hideable, entity icon)
void WaypointSprite_UpdateRule(entity e, float t, float r)
const int SPRITERULE_DEFAULT
entity waypointsprite_attachedforcarrier

References ATTEN_NONE, autocvar_g_tkaball_respawntime, autocvar_g_tkaball_tracking, CH_TRIGGER, crandom, DAMAGE_YES, entity(), MOVETYPE_BOUNCE, navigation_dynamicgoal_set(), NULL, Send_Notification(), set_movetype(), setthink, SOLID_TRIGGER, sound, SPRITERULE_DEFAULT, time, tka_EventLog(), tka_PlayerReset(), tka_RespawnBall(), VOL_BASE, warmup_stage, waypointsprite_attachedforcarrier, WaypointSprite_Ping(), WaypointSprite_Spawn(), and WaypointSprite_UpdateRule().

Referenced by MUTATOR_HOOKFUNCTION(), and MUTATOR_HOOKFUNCTION().

◆ tka_Initialize()

void tka_Initialize ( )

Referenced by REGISTER_MUTATOR().

◆ void()

Variable Documentation

◆ autocvar_g_tka_point_leadlimit

int autocvar_g_tka_point_leadlimit

Definition at line 5 of file sv_tka.qh.

Referenced by REGISTER_MUTATOR().

◆ autocvar_g_tka_point_limit

int autocvar_g_tka_point_limit

Definition at line 4 of file sv_tka.qh.

Referenced by REGISTER_MUTATOR().

◆ autocvar_g_tka_team_spawns

bool autocvar_g_tka_team_spawns

Definition at line 6 of file sv_tka.qh.

Referenced by REGISTER_MUTATOR().

◆ autocvar_g_tka_teams_override

int autocvar_g_tka_teams_override

Definition at line 11 of file sv_tka.qh.

◆ g_tkaballs

◆ tka_teams

int tka_teams

Definition at line 9 of file sv_tka.qh.