-
Notifications
You must be signed in to change notification settings - Fork 0
DoomWare API
Buu342 edited this page May 13, 2021
·
32 revisions
The following contains a list of scripts and functions which you can use to assist you during the development of new minigames for DoomWare
Minigame Functions
The following scripts are to be used to handle basic minigame logic.| Name | Type | Arguments | Return | Description |
|---|---|---|---|---|
| DoomWare_Server_GameWait | Script | int time | - | Sets the minigame timer to time. |
| DoomWare_Server_TeleportPlayers | Script |
int tid bool telesector bool fog |
- | Teleports all the players to tid.If telesector is enabled, the TeleportInSector method will be used. Otherwise, players will be teleported to individual TID's.Enabling fog will enable the teleport effect+sound |
| DoomWare_Server_TeleportSingle | Script |
int plynum int destination |
- | Teleports a player with PlayerNumber plynum to the destination with ThingID destination
|
| DoomWare_Server_ReturnPlayers | Script | bool fog | - | Returns all teleported players back to the main lobby. If fog is enabled, then a teleport effect+sound will be emitted. |
Player Manipulation
The following functions are used to manipulate player states and abilities.| Name | Type | Arguments | Return | Description |
|---|---|---|---|---|
| Player_Win | Function | int plynum | - | Makes the player with PlayerNumber plynum win the current minigame. |
| Player_Lose | Function |
int plynum bool silent |
- | Makes the player with PlayerNumber plynum lose the current minigame. |
| Player_SavePosition | Function | int plynum | - | Saves the position of the player with PlayerNumber plynum (Used internally by DoomWare_Server_TeleportPlayers). |
| Player_InvalidatePosition | Function | int plynum | - | Clears the stored position of the player with PlayerNumber plynum. |
| Player_Morph | Function |
int plynum str class |
- | Morphs the player with PlayerNumber plynum into the actor class. |
| Player_FreezeTotally | Function | int who | - | Freezes the player totally. Set who to 1 to affect all players, or 0 to affect the activator. |
| Player_UnFreezeTotally | Function | int who | - | Unfreezes the player totally. Set who to 1 to affect all players, or 0 to affect the activator. |
| Give_Achievement | Function |
int plynum int achievement |
- | Gives the player with PlayerNumber plynum the achievement with id achievement. |
Player Information
The following functions are used to retrieve information about players.| Name | Type | Arguments | Return | Description |
|---|---|---|---|---|
| Check_LMS | Function | - | - | Iterates through all players and checks if there is only one last man standing. If so, automtically calls Player_Win on them. |
| Check_WonRoundItem | Function | - | - | Iterates through all players and calls Player_Win on the ones who have "WonRoundItem" in their inventory. |
| Check_FailRoundItem | Function | - | - | Iterates through all players and calls Player_Lose on the ones who have "FailRoundItem" in their inventory. |
| Check_Player_Won | Function | int plynum | bool | Checks if the player with PlayerNumber plynum has won this round. |
| Check_Player_Lost | Function | int plynum | bool | Checks if the player with PlayerNumber plynum has lost this round. |
Observer System
The following functions relate to the observer system| Name | Type | Arguments | Return | Description |
|---|---|---|---|---|
| Add_Observer | Function | int TID | - | Adds a camera with ThingID TID to the observers list. |
| Force_Observe | Function | int plynum | - | Forces the player with PlayerNumber plynum to use the observers camera. At least one camera needs to be in the observers list for this to work! |
Miscellaneous
The following functions don't fit in any other category, but can otherwise prove useful.| Name | Type | Arguments | Return | Description |
|---|---|---|---|---|
| Calc_Speed | Function |
int xvel int yvel |
int | Returns the speed from the given x and y velocities xvel & yvel. The returned value is in Fixed Point format. |
| Distance | Function |
int tid1 int tid2 |
int | Returns the distance between the actor with tid1 and tid2 in Fixed Point format. |
| Max | Function |
int a int b |
int | Returns the largest number between a and b
|
| AToI | Function | str s | int | Converts the string s to an integer. |
DECORATE
The following scripts are solely used in DECORATE.| Name | Type | Arguments | Return | Description |
|---|---|---|---|---|
| DoomWare_Entity_MarkCleanup | Script | - | - | Changes the calling entity's ThingID to TID_REMOVE |
| DoomWare_Entity_CheckCleanup | Script | - | - | Checks if a minigame is ocurring, and if it isn't, it removes this entity. This is needed because sometimes the initial TID_REMOVE cleanup fails. |
The following contains a list of global variables which you can modify during the execution of your minigame.
TODO
This section contains a list of internal functions and scripts used by DoomWare. You should have very little reason to use them, but they're here for documentation's sake.
Server Logic
The following scripts and functions relate to the initialization of the gamemode, as well as the main gamemode logic.| Name | Type | Arguments | Return | Description |
|---|---|---|---|---|
| DoomWare_Server_Boot | Script | - | ||
| DoomWare_Server_Initialize | Script | - | ||
| DoomWare_Server_InitMap | Script | - | ||
| DoomWare_Server_InitHints | Script | - | ||
| SoloBanList | Function | |||
| DoomWare_Server_InitRounds | Script | - | ||
| DoomWare_Server_InitHighscores | Script | - | ||
| DoomWare_Server_InitGlobals | Script | - | ||
| DoomWare_Server_GameLogic | Script | - | ||
| DoomWare_Server_SyncGlobals | Script | - |
Client Logic
The following scripts relate to the initialization of the player, as well as the main player gamemode logic.| Name | Type | Arguments | Return | Description |
|---|---|---|---|---|
| DoomWare_Client_Join | Script | |||
| DoomWare_Client_Initialize | Script | |||
| DoomWare_Client_Death | Script | |||
| DoomWare_Client_Disconnect | Script | |||
| DoomWare_Client_Respawn | Script | |||
| DoomWare_Client_GameLogic | Script | |||
| DoomWare_Client_DrawHUD | Script |
Checking Functions
The following functions are used for checking various gamemode states| Name | Type | Arguments | Return | Description |
|---|---|---|---|---|
| Should_Speedup | Function | |||
| ShouldTieBreak | Function | |||
| Is_1v1_TieBreaker | Function | |||
| No_MidRound_Array | Function |
Wackymods
The following scripts and functions handle wacky modifier logic.| Name | Type | Arguments | Return | Description |
|---|---|---|---|---|
| DoomWare_Server_Wackymod | Script | |||
| Player_SetWackymod | Function | |||
| DoomWare_WackyMod_DoubleJump | Script |
Data Networking
The following functions relate to the networking of global variables to CLIENTSIDE scripts.| Name | Type | Arguments | Return | Description |
|---|---|---|---|---|
| Player_SetCVar | Function | |||
| Player_SetCVarString | Function | |||
| Player_SetCVarStringPacked | Function | |||
| Pack_Global_Array | Function | |||
| Unpack_CVar_Array | Function | |||
| Unpack_CVar_Array_String | Function |
Database Handling
The following scripts and functions relate to [player stat tracking](Player-Stats).| Name | Type | Arguments | Return | Description |
|---|---|---|---|---|
| DoomWare_Server_UpdateDB | Script | - | ||
| DB_NetworkStats | Function | |||
| Load_PlayerDB | Function |
Highscore Table
The following scripts handle the highscore table.| Name | Type | Arguments | Return | Description |
|---|---|---|---|---|
| 257 | Script | - | ||
| DoomWare_Server_CalcHighscore | Script | - | ||
| DoomWare_Client_DrawHighscore | Script | - |
Observer System
The following scripts handle the observer system.| Name | Type | Arguments | Return | Description |
|---|---|---|---|---|
| 988 | Script | - | ||
| DoomWare_Server_ClearObservers | Script | - |
DoomWare Menu
The following scripts are related to the DoomWare menu.| Name | Type | Arguments | Return | Description |
|---|---|---|---|---|
| 999 | Script | - | ||
| DoomWare_Client_DrawMenu | Script | - | ||
| Handle_Menu_Option | Function | |||
| Handle_Menu_Achievement | Function |
Player Hats
The following scripts and functions handle player hats.| Name | Type | Arguments | Return | Description |
|---|---|---|---|---|
| IsBetaTester | Function | |||
| DoomWare_Server_Hats | Script | - |
Miscellaneous
The following scripts did not fit into any other category, but are used in some way by the gamemode.| Name | Type | Arguments | Return | Description |
|---|---|---|---|---|
| DoomWare_Entity_Cleanup | Script | - | ||
| DoomWare_Entity_SetPlayerTranslation | Script | - | ||
| DoomWare_DoLightning | Script | - | ||
| DoomWare_AchievementLog | Script | - |
This section contains a list of internal global variables used by DoomWare. Modifying these variables during gameplay can cause problems with the gamemode, therefore they should be treated as READ ONLY.
TODO