Hooks & Functions - kirillbrest123/deathmatch-unlimited GitHub Wiki
Functions
Notifications & announcements
DMU.SendNotification(string text, player ply)
- sends a notification (hint) to a player or all players- text - text of the notification
- ply - (optional) receiver of the notification. If not present, the notification will be sent to all players
DMU.SendAnnouncement(string text, number length, string sound, player ply)
- sends an announcement to a player or all players- text - text of the announcement
- length - duration of the announcement
- sound - path to sound that will be played when the announcement is received
- ply - (optional) receiver of the announcement. If not present, the announcement will be sent to all players
End game & end round
DMU.EndGame(winner)
- ends the match- winner - winner of the game. Can be a team index or a player. If not present, team/player (depends on
MODE.FFA
) with the highest score will be picked as a winner
- winner - winner of the game. Can be a team index or a player. If not present, team/player (depends on
DMU.EndRound(winner)
- ends the round- winner - winner of the round. Can be a team index or a player. If not present, the round will end without a winner
Player score
plymeta:SetScore(number score)
- sets the score of this playerplymeta:GetScore()
- gets the score of this playerplymeta:AddScore(number score)
- adds this number to the score of this player
Bot objectives
DMU.AddBotObjective(entity)
- marks the entity as a bot objective. All bots regardless of their team will walk to this entityDMU.RemoveBotObjective(entity)
DMU.AddBotTeamObjective(team_i, entity)
- marks the entity as a team bot objective. This has a priority over regular bot objectivesDMU.RemoveBotTeamObjective(team_i, entity)
DMU.AddBotPersonalObjective(ply, entity)
- marks the entity as an objective for a specific bot. This has a priority over regular and team bot objectivesDMU.RemoveBotPersonalObjective(ply, entity)
3D2D
Functions below are meant for simple 3D2D stuff. Do not use them if you need to update stuff a lot! Code your own solution instead.
DMU.Add3D2DEnt(entity ent, string mat, color color)
- adds a 3D2D sprite to an entity. Repeated calls will replace current 3D2D sprite- ent - 3D2D sprite will be displayed on this entity. Must exist on client!
- mat - path to material
- color - color that will be applied to the material
DMU.Remove3D2DEnt(entity ent)
- removes a 3D2D sprite from an entityDMU.Add3D2DPos(number index, vector pos, string mat, color color)
- adds a 3D2D sprite to this position. Repeated calls will replace current 3D2D sprite- index - index that will be used to update and remove the 3D2D sprite attached to this position
- pos - position to attach a 3D2D sprite to
- mat - same as above
- color - same as above
DMU.Remove3D2DPos(number index)
- removes a 3D2D sprite attached to this positionDMU.Sync3D2DEnt()
andDMU.Sync3D2DPos()
- syncs 3D2D entities and positions with client. They are automatically called by 3D2D functions
Medals
DMU.RegisterMedal(string name, string printname, path material)
- registers a medal to be used byDMU.GiveMedal()
. Can be created on server, but it's required on clientDMU.GiveMedal(player ply, string medal)
- gives player a medal registered withDMU.RegisterMedal()
Misc
plymeta:DMU_SetGravity(number gravity_multiplier)
- modifies this player's gravity. Unlikeplymeta:SetGravity()
, this one is properly predicted (players with ping won't experience lagging)- gravity_multiplier - player's gravity will be multiplied by this number
DMU.AutoAssign(player ply)
- automatically assigns a player to a team with least players
Hooks
Shared
DMU_GameEnded(winner)
- winner can be a player or a team indexDMU_RoundEnded(winner)
- winner can be a player or a team indexDMU_PreRoundStart()
- called after the map has been cleaned-up but before players have been respawned and countdown has startedDMU_PlayerReceivedMedal(player ply, string medal)
- called after a player has receiver a medal
Server
DMU_RoundStart()
- called after the countdown ended and players have been unfrozenDMU_HoldZoneScore(entity hill, number team)
- a controlled hill will call this hook every 1.2 seconds- hill - hill entity
- team - index of the team that control this hill
DMU_TagCollected(entity tag, player ply)
- called after a tag has been collectedDMU_TimeLimitReached()
- called after match/round time limit has been reached. Returning true in this hook will cause it to not execute default behavior (ending round without winners/ending match with some winner)DMU_HoldZoneCaptured(capturing_team, new_team, old_team)
- called after a hill has been captured, including both when it was partially and fully captured- capturing_team - team which has captured the hill
- new_team - team which now controls the hill (-1 for none)
- old_team - team which used to control the hill (-1 for none)