Nuclide
Software Development Kit for id Technology (BETA)
api_func.h
1.float deaths;
2
22/* Util library */
23typedef struct
24{
31 string TimeToString(int realTime, int zoneType, string formatString);
32} utilAPI_t;
34
35/* Exists library */
36typedef struct
37{
38 bool InMap(string);
39 bool InPVS(entity, vector);
40 bool InVFS(string fileName);
43
44/* Ents library */
45typedef struct
46{
54 entity Create(string className, vector spawnPos);
60 entity ChangeToClass(entity targetEntity, string className);
71 entity Input(entity target, string inputName, string dataString, entity activator);
75 bool isAI(entity entityToCheck);
79 bool isAlive(entity entityToCheck);
83 bool isGodMode(entity entityToCheck);
87 bool isPlayer(entity entityToCheck);
91 bool isSentient(entity entityToCheck);
95 bool isBot(entity entityToCheck);
96} entsAPI_t;
98
99/* Game library */
100typedef struct
101{
102 void LoadNextMap(void);
103 void CleanUpMap(void);
104 string GetMap(void);
105 string GetNextMap(void);
106 void SetSpawnPoint(string);
107 void TeleportToSpawn(entity);
108 entity FindRandomClassObject(string);
109} gameAPI_t;
111
112/* MOTD library */
113typedef struct
114{
115 void LoadDefault(void);
116 void LoadFromFile(string);
117} motdAPI_t;
119
120/* MOTD library */
121typedef struct
122{
123 string GetInventory(entity);
124 bool HasItem(entity, string);
125 int GetReserveAmmo(entity, int);
126 bool MaxAmmo(entity, int);
127 int TotalActors(void);
129
130 float AimAtPos(entity, vector);
131 float MoveToPos(entity, vector);
132 bool CanSee(entity, entity);
133 bool CanShoot(entity, vector, vector);
135 entity FindCoverNode(entity);
136} actorAPI_t;
138
139typedef struct
140{
151 void Damage(entity targetEnt, entity inflictingEnt, entity attackingEnt, string damageDef, vector damageOrigin, vector damageDir, vector hitLocation);
162 void RadiusDamage(vector damageCenter, float damageRange, int damageMin, int damageMax, entity attackingEnt, string damageDef);
169 void Obituary(string targetName, string attackerName, string weaponDef, string meansOfDeath);
172 // end of multiprogs
174
175__variant
176linkToServerProgs(string funcName)
177{
178 static void empty(void)
179 {
180 print("Called unimplemented server-side API call.\n");
181 breakpoint();
182 }
183
184 void *func = externvalue(0, funcName);
185
186 if (func) {
187 return ((__variant)func);
188 } else {
189 return (empty);
190 }
191}
192
193void
194_server_main(void)
195{
196 game.LoadNextMap = linkToServerProgs("SVPF_game_LoadNextMap");
197 game.CleanUpMap = linkToServerProgs("SVPF_game_CleanUpMap");
198 game.GetMap = linkToServerProgs("SVPF_game_GetMap");
199 game.GetNextMap = linkToServerProgs("SVPF_game_GetNextMap");
200 game.SetSpawnPoint = linkToServerProgs("SVPF_game_SetSpawnPoint");
201 game.TeleportToSpawn = linkToServerProgs("SVPF_game_TeleportToSpawn");
202 game.FindRandomClassObject = linkToServerProgs("Spawn_SelectRandom");
203
204 combat.Damage = linkToServerProgs("SVPF_combat_Damage");
205 combat.RadiusDamage = linkToServerProgs("SVPF_combat_RadiusDamage");
206 combat.Obituary = linkToServerProgs("SVPF_combat_Obituary");
207
208 ents.Create = linkToServerProgs("spawnClass");
209 ents.ChangeToClass = linkToServerProgs("changeClass");
210 ents.Input = linkToServerProgs("sendInput");
211 ents.isAI = linkToServerProgs("isAI");
212 ents.isAlive = linkToServerProgs("isAlive");
213 ents.isGodMode = linkToServerProgs("isGodMode");
214 ents.isPlayer = linkToServerProgs("isPlayer");
215 ents.isSentient = linkToServerProgs("isSentient");
216
217 actor.GetInventory = linkToServerProgs("SVPF_actor_GetInventory");
218 actor.GetReserveAmmo = linkToServerProgs("SVPF_actor_GetReserveAmmo");
219 actor.MaxAmmo = linkToServerProgs("SVPF_actor_MaxAmmo");
220 actor.TotalActors = linkToServerProgs("SVPF_actor_TotalActors");
221 actor.TotalActorsOnTeam = linkToServerProgs("SVPF_actor_TotalActorsOnTeam");
222 actor.MoveToPos = linkToServerProgs("SVPF_actor_MoveToPos");
223 actor.HasItem = linkToServerProgs("SVPF_actor_HasItem");
224
225 exists.InMap = linkToServerProgs("SVPF_exists_InMap");
226 exists.InVFS = linkToServerProgs("SVPF_exists_InVFS");
227 exists.InPVS = linkToServerProgs("SVPF_exists_InPVS");
228
229 motd.LoadDefault = linkToServerProgs("MOTD_LoadDefault");
230 motd.LoadFromFile = linkToServerProgs("MOTD_LoadFromFile");
231
232 util.TimeToString = linkToServerProgs("SVPF_util_TimeToString");
233}
var motdAPI_t motd
Definition: api_func.h:118
var existsAPI_t exists
Definition: api_func.h:42
var gameAPI_t game
Definition: api_func.h:110
var utilAPI_t util
Definition: api_func.h:33
var combatAPI_t combat
Definition: api_func.h:171
var entsAPI_t ents
Definition: api_func.h:97
var actorAPI_t actor
Definition: api_func.h:137
Definition: api_func.h:122
entity FindCoverNode(entity)
float AimAtPos(entity, vector)
int GetReserveAmmo(entity, int)
int TotalActorsOnTeam(int)
bool MaxAmmo(entity, int)
bool CanShoot(entity, vector, vector)
bool HasItem(entity, string)
bool CanSee(entity, entity)
float MoveToPos(entity, vector)
int TotalActors(void)
bool ClearEnemy()
string GetInventory(entity)
Definition: api_func.h:140
void Obituary(string targetName, string attackerName, string weaponDef, string meansOfDeath)
Lets everyone in the game know that something, or something, has passed.
void Damage(entity targetEnt, entity inflictingEnt, entity attackingEnt, string damageDef, vector damageOrigin, vector damageDir, vector hitLocation)
Applies damage to a given entity.
void RadiusDamage(vector damageCenter, float damageRange, int damageMin, int damageMax, entity attackingEnt, string damageDef)
Does damage to all entities within a specified radius with a linear falloff.
Definition: api_func.h:46
bool isSentient(entity entityToCheck)
Returns true/false depending on if the entity is either a player, or AI character.
entity Create(string className, vector spawnPos)
Creates a new entity of a given class name.
entity Input(entity target, string inputName, string dataString, entity activator)
Sends an input (See ncIO::Input) to an entity.
entity ChangeToClass(entity targetEntity, string className)
Transitions an entity from one class to another.
bool isAI(entity entityToCheck)
Returns true/false depending on if the entity is an AI character.
bool isGodMode(entity entityToCheck)
Returns true/false depending on if the entity is in "god" mode.
bool isBot(entity entityToCheck)
Returns true/false depending on if the entity is a bot.
bool isPlayer(entity entityToCheck)
Returns true/false depending on if the entity is a player.
bool isAlive(entity entityToCheck)
Returns true/false depending on if the entity is alive.
Definition: api_func.h:37
bool InVFS(string fileName)
bool InMap(string)
bool InPVS(entity, vector)
Definition: api_func.h:101
entity FindRandomClassObject(string)
void CleanUpMap(void)
void LoadNextMap(void)
string GetMap(void)
void TeleportToSpawn(entity)
string GetNextMap(void)
void SetSpawnPoint(string)
Definition: api_func.h:114
void LoadFromFile(string)
void LoadDefault(void)
Definition: api_func.h:24
string TimeToString(int realTime, int zoneType, string formatString)
Returns the current time.