Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
sv_minigames.qh
Go to the documentation of this file.
1#pragma once
2
3enum
4{
13};
15 {"create", "join", "list", "list-sessions", "end", "part", "invite"};
16
19
22entity start_minigame(entity player, string minigame );
23
26entity join_minigame(entity player, string game_id );
27
30string invite_minigame(entity inviter, entity player);
31
32// Part minigame session
33void part_minigame(entity player);
34
35// Ends a minigame session
36void end_minigame(entity minigame_session);
37
38// Ends all minigame sessions
39void end_minigames();
40
41// Only sends entities to players who joined the minigame
42// Use on customizeentityforclient for gameplay entities
43bool minigame_CheckSend(entity this, entity client);
44
45// Check for minigame impulses
46bool MinigameImpulse(entity this, int imp);
47
48// Parse a client command ( cmd minigame ... )
49void ClientCommand_minigame(entity caller, int request, int argc, string command);
50
51// Find the minigame_player entity for the given client entity
53
56
60
62
63bool minigame_SendEntity(entity this, entity to, int sf);
64
65REGISTRY(Minigames, BITS(4))
66REGISTER_REGISTRY(Minigames)
67REGISTRY_CHECK(Minigames)
68
69REGISTRY_DEFINE_GET(Minigames, NULL)
70#define REGISTER_MINIGAME(name,nicename) \
71 REGISTER(Minigames, MINIGAME_##name, m_id, new_pure(minigame_descriptor)); \
72 int name##_server_event(entity, string, ...); \
73 REGISTER_INIT(MINIGAME_##name) { \
74 this.netname = strzone(strtolower(#name)); \
75 this.message = nicename; \
76 this.minigame_event = name##_server_event; \
77 } \
78 REGISTER_INIT(MINIGAME_##name)
#define BITS(n)
Definition bits.qh:9
var entity(vector mins, vector maxs,.entity tofield) findbox_tofield_OrFallback
entity active_minigame
#define NULL
Definition post.qh:14
#define REGISTER_REGISTRY(id)
Definition registry.qh:229
#define REGISTRY(id, max)
Declare a new registry.
Definition registry.qh:26
#define REGISTRY_CHECK(id)
Definition registry.qh:175
#define REGISTRY_DEFINE_GET(id, null)
Definition registry.qh:40
int int int imp
Definition impulse.qc:90
entity minigame_players
For minigame sessions: list of players For minigame_player: client entity.
bool MinigameImpulse(entity this, int imp)
entity minigame_sessions
bool minigame_CheckSend(entity this, entity client)
string MINIGAME_COMMON_CMD[MINIGAME_COMMON_CMD_COUNT]
bool autocvar_sv_minigames
@ MINIGAME_COMMON_CMD_COUNT
@ MINIGAME_COMMON_CMD_ID_LIST_SESSIONS
@ MINIGAME_COMMON_CMD_ID_PART
@ MINIGAME_COMMON_CMD_ID_JOIN
@ MINIGAME_COMMON_CMD_ID_END
@ MINIGAME_COMMON_CMD_ID_INVITE
@ MINIGAME_COMMON_CMD_ID_LIST
@ MINIGAME_COMMON_CMD_ID_CREATE
entity join_minigame(entity player, string game_id)
Join an existing minigame session.
bool autocvar_sv_minigames_observer
void end_minigames()
bool minigame_SendEntity(entity this, entity to, int sf)
void part_minigame(entity player)
void end_minigame(entity minigame_session)
entity start_minigame(entity player, string minigame)
Create a new minigame session.
string invite_minigame(entity inviter, entity player)
Invite a player to join in a minigame.
entity minigame_find_player(entity client)
void ClientCommand_minigame(entity caller, int request, int argc, string command)