DarkRP.initDatabase = DarkRP.stub{ name = "initDatabase", description = "Initialize the DarkRP database.", parameters = { }, returns = { }, metatable = DarkRP } DarkRP.storeRPName = DarkRP.stub{ name = "storeRPName", description = "Store an RP name in the database.", parameters = { { name = "ply", description = "The player that gets the RP name.", type = "Player", optional = false }, { name = "name", description = "The new name of the player.", type = "string", optional = false } }, returns = { }, metatable = DarkRP } DarkRP.retrieveRPNames = DarkRP.stub{ name = "retrieveRPNames", description = "Whether a given RP name is taken by someone else.", parameters = { { name = "name", description = "The RP name.", type = "string", optional = false }, { name = "callback", description = "The function that receives the boolean answer in its first parameter.", type = "function", optional = false } }, returns = { }, metatable = DarkRP } DarkRP.retrievePlayerData = DarkRP.stub{ name = "retrievePlayerData", description = "Get a player's information from the database.", parameters = { { name = "ply", description = "The player to get the data for.", type = "Player", optional = false }, { name = "callback", description = "The function that receives the information.", type = "function", optional = false }, { name = "failure", description = "The function that is called when the information cannot be retrieved.", type = "function", optional = false } }, returns = { }, metatable = DarkRP } DarkRP.offlinePlayerData = DarkRP.stub{ name = "offlinePlayerData", description = "Get a player's information from the database using a SteamID for use when the player is offline.", parameters = { { name = "steamid", description = "The SteamID of the player to get the data for.", type = "string", optional = false }, { name = "callback", description = "The function that receives the information.", type = "function", optional = false }, { name = "failure", description = "The function that is called when the information cannot be retrieved.", type = "function", optional = false } }, returns = {}, metatable = DarkRP } DarkRP.storeOfflineMoney = DarkRP.stub{ name = "storeOfflineMoney", description = "Store the wallet amount of an offline player. Use DarkRP.offlinePlayerData to fetch the current wallet amount.", parameters = { { name = "sid64", description = "The SteamID64 of the player to set the wallet of. NOTE: THIS USED TO BE THE UNIQUEID, BUT THIS CHANGED!", type = "number", optional = false }, { name = "amount", description = "The amount of money.", type = "number", optional = false } }, returns = {}, metatable = DarkRP } DarkRP.createPlayerData = DarkRP.stub{ name = "createPlayerData", description = "Internal function: creates an entry in the database for a player who has joined for the first time.", parameters = { { name = "ply", description = "The player to create the data for.", type = "Player", optional = false }, { name = "name", description = "The name of the player.", type = "string", optional = false }, { name = "wallet", description = "The amount of money the player has.", type = "number", optional = false }, { name = "salary", description = "The salary of the player.", type = "number", optional = false }, { name = "onError", description = "What to do when creating the player data fails. This function will get an argument holding the SQL error", type = "function", optional = true } }, returns = { }, metatable = DarkRP } DarkRP.storeMoney = DarkRP.stub{ name = "storeMoney", description = "Internal function. Store a player's money in the database. Do not call this if you just want to set someone's money, the player will not see the change!", parameters = { { name = "ply", description = "The player.", type = "Player", optional = false }, { name = "amount", description = "The new contents of the player's wallet.", type = "number", optional = false } }, returns = { }, metatable = DarkRP } DarkRP.storeSalary = DarkRP.stub{ name = "storeSalary", description = "Internal and deprecated function. Used to store a player's salary in the database.", deprecated = "Use the ply:setSelfDarkRPVar(\"salary\", value) function instead.", parameters = { { name = "ply", description = "The player.", type = "Player", optional = false }, { name = "amount", description = "The new contents of the player's wallet.", type = "number", optional = false } }, returns = { { name = "amount", description = "The new contents of the player's wallet.", type = "number" } }, metatable = DarkRP } DarkRP.retrieveSalary = DarkRP.stub{ name = "retrieveSalary", description = "Get a player's salary from the database.", parameters = { { name = "ply", description = "The player to get the data for.", type = "Player", optional = false }, { name = "callback", description = "The function that receives the salary. Deprecated, use the return value.", type = "function", optional = false } }, returns = { { name = "salary", description = "The salary.", type = "number" } }, metatable = DarkRP } DarkRP.restorePlayerData = DarkRP.stub{ name = "restorePlayerData", description = "Internal function that restores a player's DarkRP information when they join.", parameters = { }, returns = { }, metatable = DarkRP } DarkRP.storeDoorData = DarkRP.stub{ name = "storeDoorData", description = "Store the information about a door in the database.", parameters = { { name = "ent", description = "The door.", type = "Entity", optional = false } }, returns = { }, metatable = DarkRP } DarkRP.storeTeamDoorOwnability = DarkRP.stub{ name = "storeTeamDoorOwnability", description = "Store the ownability information of a door in the database.", parameters = { { name = "ent", description = "The door.", type = "Entity", optional = false } }, returns = { }, metatable = DarkRP } DarkRP.storeDoorGroup = DarkRP.stub{ name = "storeDoorGroup", description = "Store the group of a door in the database.", parameters = { { name = "ent", description = "The door.", type = "Entity", optional = false }, { name = "group", description = "The group of the door.", type = "string", optional = false } }, returns = { }, metatable = DarkRP } DarkRP.notify = DarkRP.stub{ name = "notify", description = "Make a notification pop up on the player's screen.", parameters = { { name = "ply", description = "The receiver(s) of the message.", type = "Player, table", optional = true }, { name = "msgType", description = "The type of the message.", type = "number", optional = false }, { name = "time", description = "For how long the notification should stay on the screen.", type = "number", optional = false }, { name = "message", description = "The actual message.", type = "string", optional = false } }, returns = { }, metatable = DarkRP } DarkRP.notifyAll = DarkRP.stub{ name = "notifyAll", description = "Make a notification pop up on the everyone's screen.", parameters = { { name = "msgType", description = "The type of the message.", type = "number", optional = false }, { name = "time", description = "For how long the notification should stay on the screen.", type = "number", optional = false }, { name = "message", description = "The actual message.", type = "string", optional = false } }, returns = { }, metatable = DarkRP } DarkRP.printMessageAll = DarkRP.stub{ name = "printMessageAll", description = "Make a notification pop up in the middle of everyone's screen.", parameters = { { name = "msgType", description = "The type of the message.", type = "number", optional = false }, { name = "message", description = "The actual message.", type = "string", optional = false } }, returns = { }, metatable = DarkRP } DarkRP.printConsoleMessage = DarkRP.stub{ name = "printConsoleMessage", description = "Prints a message to a given player's console. This function also handles server consoles too (EntIndex = 0).", parameters = { { name = "ply", description = "The player to send the console message to.", type = "Player", optional = false }, { name = "msg", description = "The actual message.", type = "string", optional = false } }, returns = { }, metatable = DarkRP } DarkRP.talkToRange = DarkRP.stub{ name = "talkToRange", description = "Send a chat message to people close to a player.", parameters = { { name = "ply", description = "The sender of the message.", type = "Player", optional = false }, { name = "playerName", description = "The name of the sender of the message.", type = "string", optional = false }, { name = "message", description = "The actual message.", type = "string", optional = false }, { name = "size", description = "The radius of the circle in which players can see the message in chat.", type = "number", optional = false } }, returns = { }, metatable = DarkRP } DarkRP.talkToPerson = DarkRP.stub{ name = "talkToPerson", description = "Send a chat message to a player.", parameters = { { name = "receiver", description = "The receiver of the message.", type = "Player", optional = false }, { name = "col1", description = "The color of the first part of the message.", type = "Color", optional = false }, { name = "text1", description = "The first part of the message.", type = "string", optional = false }, { name = "col2", description = "The color of the second part of the message.", type = "Color", optional = false }, { name = "text2", description = "The secpnd part of the message.", type = "string", optional = false }, { name = "sender", description = "The sender of the message.", type = "Player", optional = true } }, returns = { }, metatable = DarkRP } DarkRP.isEmpty = DarkRP.stub{ name = "isEmpty", description = "Check whether the given position is empty. If you want the function not to ignore your entity, set the variable NotEmptyPos (ex. ENT.NotEmptyPos = true)", parameters = { { name = "pos", description = "The position to check for emptiness.", type = "Vector", optional = false }, { name = "ignore", description = "Table of things the algorithm can ignore.", type = "table", optional = true } }, returns = { { name = "empty", description = "Whether the given position is empty.", type = "boolean" } }, metatable = DarkRP } -- findEmptyPos(pos, ignore, distance, step, area) -- returns pos DarkRP.findEmptyPos = DarkRP.stub{ name = "findEmptyPos", description = "Find an empty position as close as possible to the given position (Note: this algorithm is slow!).", parameters = { { name = "pos", description = "The position to check for emptiness.", type = "Vector", optional = false }, { name = "ignore", description = "Table of things the algorithm can ignore.", type = "table", optional = true }, { name = "distance", description = "The maximum distance to look for empty positions.", type = "number", optional = false }, { name = "step", description = "The size of the steps to check (it places it will look are STEP units removed from one another).", type = "number", optional = false }, { name = "area", description = "The hull to check, this is Vector(16, 16, 72) for players.", type = "Vector", optional = false } }, returns = { { name = "pos", description = "A found position. When no position was found, the parameter is returned", type = "Vector" } }, metatable = DarkRP } DarkRP.PLAYER.applyPlayerClassVars = DarkRP.stub{ name = "applyPlayerClassVars", description = "Applies all variables in a player's associated GMod player class to the player.", parameters = { { name = "applyHealth", description = "Whether the player's health should be set to the starting health.", type = "boolean", optional = true } }, returns = {}, metatable = DarkRP.PLAYER } DarkRP.PLAYER.removeDarkRPVar = DarkRP.stub{ name = "removeDarkRPVar", description = "Remove a shared variable. Exactly the same as ply:setDarkRPVar(nil).", parameters = { { name = "variable", description = "The name of the variable.", type = "string", optional = false }, { name = "target", description = "The clients to whom this variable is sent. Defaults to all players.", type = "table", optional = true } }, returns = {}, metatable = DarkRP.PLAYER } DarkRP.PLAYER.setDarkRPVar = DarkRP.stub{ name = "setDarkRPVar", description = "Set a shared variable. Make sure the variable is registered with DarkRP.registerDarkRPVar!", parameters = { { name = "variable", description = "The name of the variable.", type = "string", optional = false }, { name = "value", description = "The value of the variable.", type = "any", optional = false }, { name = "target", description = "The clients to whom this variable is sent. Defaults to all players.", type = "table", optional = true } }, returns = {}, metatable = DarkRP.PLAYER } DarkRP.PLAYER.setSelfDarkRPVar = DarkRP.stub{ name = "setSelfDarkRPVar", description = "Set a shared variable that is only seen by the player to whom this variable applies.", parameters = { { name = "variable", description = "The name of the variable.", type = "string", optional = false }, { name = "value", description = "The value of the variable.", type = "any", optional = false } }, returns = {}, metatable = DarkRP.PLAYER } DarkRP.PLAYER.sendDarkRPVars = DarkRP.stub{ name = "sendDarkRPVars", description = "Internal function. Sends all visibleDarkRPVars of all players to this player.", parameters = { }, returns = {}, metatable = DarkRP.PLAYER } DarkRP.PLAYER.setRPName = DarkRP.stub{ name = "setRPName", description = "Set the RPName of a player.", parameters = { { name = "name", description = "The new name of the player.", type = "string", optional = false }, { name = "firstrun", description = "Whether to play nice and find a different name if it has been taken (true) or to refuse the name change when taken (false).", type = "boolean", optional = true } }, returns = {}, metatable = DarkRP.PLAYER } DarkRP.PLAYER.addCustomEntity = DarkRP.stub{ name = "addCustomEntity", description = "Add a custom entity to the player's limit.", parameters = { { name = "tblEnt", description = "The entity table (from the DarkRPEntities table).", type = "table", optional = false } }, returns = {}, metatable = DarkRP.PLAYER } DarkRP.PLAYER.removeCustomEntity = DarkRP.stub{ name = "removeCustomEntity", description = "Remove a custom entity to the player's limit.", parameters = { { name = "tblEnt", description = "The entity table (from the DarkRPEntities table).", type = "table", optional = false } }, returns = {}, metatable = DarkRP.PLAYER } DarkRP.PLAYER.customEntityLimitReached = DarkRP.stub{ name = "customEntityLimitReached", description = "Set a shared variable.", parameters = { { name = "tblEnt", description = "The entity table (from the DarkRPEntities table).", type = "table", optional = false } }, returns = { { name = "limitReached", description = "Whether the limit has been reached.", type = "boolean" } }, metatable = DarkRP.PLAYER } DarkRP.PLAYER.customEntityCount = DarkRP.stub{ name = "customEntityCount", description = "Get the count of a custom entity.", parameters = { { name = "tblEnt", description = "The entity table (from the DarkRPEntities table).", type = "table", optional = false } }, returns = { { name = "count", description = "The current count of the custom entity.", type = "number" } }, metatable = DarkRP.PLAYER } DarkRP.PLAYER.getPreferredModel = DarkRP.stub{ name = "getPreferredModel", description = "Get the preferred model of a player for a job.", parameters = { { name = "TeamNr", description = "The job number.", type = "number", optional = false } }, returns = { { name = "model", description = "The preferred model for the job.", type = "string" } }, metatable = DarkRP.PLAYER } DarkRP.hookStub{ name = "DarkRPDBInitialized", description = "Called when DarkRP is done initializing the database.", parameters = { }, returns = { } } DarkRP.hookStub{ name = "CanChangeRPName", description = "Whether a player can change their RP name.", parameters = { { name = "ply", description = "The player.", type = "Player" }, { name = "name", description = "The name.", type = "string" } }, returns = { { name = "answer", description = "Whether the player can change their RP names.", type = "boolean" }, { name = "reason", description = "When answer is false, this return value is the reason why.", type = "string" } } } DarkRP.hookStub{ name = "onNotify", description = "Called when a notification is sent.", parameters = { { name = "plys", description = "The table recipients of the notification.", type = "table" }, { name = "msgType", description = "The notification type (NOTIFY_ enum)", type = "number" }, { name = "duration", description = "How long the notification should stay on screen.", type = "number" }, { name = "message", description = "The message of the notification.", type = "string" } }, returns = { { name = "suppress", description = "Whether to suppress the notification. Return true to suppress.", type = "boolean" } } } DarkRP.hookStub{ name = "onPlayerChangedName", description = "Called when a player's DarkRP name has been changed.", parameters = { { name = "ply", description = "The player.", type = "Player" }, { name = "oldName", description = "The old name.", type = "string" }, { name = "newName", description = "The new name.", type = "string" } }, returns = { } } DarkRP.hookStub{ name = "onPlayerFirstJoined", description = "Called when a player joins this server for the first time (i.e. no entry for this player exists in the DarkRP database)", parameters = { { name = "ply", description = "The player.", type = "Player" }, { name = "data", description = "Contains the default wallet, salary and RPName that will be put in the database", type = "table" } }, returns = { { name = "data", description = "Override the data that is to be put in the database.", type = "table" } } } DarkRP.hookStub{ name = "playerBoughtPistol", description = "Called when a player bought a pistol.", parameters = { { name = "ply", description = "The player.", type = "Player" }, { name = "weaponTable", description = "The table (from the CustomShipments table).", type = "table" }, { name = "ent", description = "The spawned weapon.", type = "Weapon" }, { name = "price", description = "The eventual price.", type = "number" } }, returns = { } } DarkRP.hookStub{ name = "playerBoughtShipment", description = "Called when a player bought a shipment.", parameters = { { name = "ply", description = "The player.", type = "Player" }, { name = "shipmentTable", description = "The table (from the CustomShipments table).", type = "table" }, { name = "ent", description = "The spawned entity.", type = "Entity" }, { name = "price", description = "The eventual price.", type = "number" } }, returns = { } } DarkRP.hookStub{ name = "playerBoughtCustomVehicle", description = "Called when a player bought a vehicle.", parameters = { { name = "ply", description = "The player.", type = "Player" }, { name = "vehicleTable", description = "The table (from the CustomVehicles table).", type = "table" }, { name = "ent", description = "The spawned vehicle.", type = "Entity" }, { name = "price", description = "The eventual price.", type = "number" } }, returns = { } } DarkRP.hookStub{ name = "playerBoughtCustomEntity", description = "Called when a player bought an entity (like a money printer or a gun lab).", parameters = { { name = "ply", description = "The player.", type = "Player" }, { name = "entityTable", description = "The table of the custom entity (from the DarkRPEntities table).", type = "table" }, { name = "ent", description = "The spawned entity.", type = "Entity" }, { name = "price", description = "The eventual price.", type = "number" } }, returns = { } } DarkRP.hookStub{ name = "playerBoughtAmmo", description = "Called when a player buys some ammo.", parameters = { { name = "ply", description = "The player.", type = "Player" }, { name = "ammoTable", description = "The table (from the AmmoTypes table).", type = "table" }, { name = "ent", description = "The spawned ammo entity.", type = "Weapon" }, { name = "price", description = "The eventual price.", type = "number" } }, returns = { } } DarkRP.hookStub{ name = "canDemote", description = "Whether a player can demote another player.", parameters = { { name = "ply", description = "The player who wants to demote.", type = "Player" }, { name = "target", description = "The player whom is to be demoted.", type = "Player" }, { name = "reason", description = "The reason provided for the demote.", type = "string" } }, returns = { { name = "canDemote", description = "Whether the player can change demote the target.", type = "boolean" }, { name = "message", description = "The message to show when the player cannot demote the other player. Only useful when canDemote is false.", type = "string" } } } DarkRP.hookStub{ name = "demoteTeam", description = "The team the player is to be demoted to instead of the default team.", parameters = { { name = "target", description = "The player whom is to be demoted.", type = "Player" }, }, returns = { { name = "demoteTeam", description = "The team the player is to be demoted to.", type = "number" }, } } DarkRP.hookStub{ name = "onPlayerDemoted", description = "Called when a player is demoted.", parameters = { { name = "source", description = "The player who demoted the target.", type = "Player" }, { name = "target", description = "The player who has been demoted.", type = "Player" }, { name = "reason", description = "The reason provided for the demote.", type = "string" } }, returns = { } } DarkRP.hookStub{ name = "canDropWeapon", description = "Whether a player can drop a certain weapon.", parameters = { { name = "ply", description = "The player who wants to drop the weapon.", type = "Player" }, { name = "weapon", description = "The weapon the player wants to drop.", type = "Weapon" } }, returns = { { name = "canDrop", description = "Whether the player can drop the weapon.", type = "boolean" } } } DarkRP.hookStub{ name = "canSeeLogMessage", description = "Whether a player can see a DarkRP log message in the console.", parameters = { { name = "ply", description = "The player.", type = "Player" }, { name = "message", description = "The log message.", type = "string" }, { name = "color", description = "The color of the message.", type = "Color" } }, returns = { { name = "canHear", description = "Whether the player can see the log message.", type = "boolean" } } } DarkRP.hookStub{ name = "canVote", description = "Whether a player can cast a vote.", parameters = { { name = "ply", description = "The player.", type = "Player" }, { name = "vote", description = "Table containing all information about the vote.", type = "table" } }, returns = { { name = "canVote", description = "Whether the player can vote.", type = "boolean" }, { name = "message", description = "The message to show when the player cannot vote. Only useful when canVote is false.", type = "string" } } } DarkRP.hookStub{ name = "playerGetSalary", description = "When a player receives salary.", parameters = { { name = "ply", description = "The player who is receiving salary.", type = "Player" }, { name = "amount", description = "The amount of money given to the player.", type = "number" } }, returns = { { name = "suppress", description = "Suppress the salary message.", type = "boolean" }, { name = "message", description = "Override the default message (suppress must be false).", type = "string" }, { name = "amount", description = "Override the salary.", type = "number" } } } DarkRP.hookStub{ name = "playerWalletChanged", description = "When a player receives money.", parameters = { { name = "ply", description = "The player who is getting money.", type = "Player" }, { name = "amount", description = "The amount of money given to the player.", type = "number" }, { name = "wallet", description = "How much money the player had before receiving the money.", type = "number" } }, returns = { { name = "total", description = "Override the total amount of money (optional).", type = "number" } } } DarkRP.hookStub{ name = "playerClassVarsApplied", description = "When a player has had GMod player class variables applied to them through ply:applyPlayerClassVars().", parameters = { { name = "ply", description = "The player in question.", type = "Player" } }, returns = {} } DarkRP.hookStub{ name = "canEarnNPCKillPay", description = "If a player should profit from killing a NPC", parameters = { { name = "ply", description = "The player who killed the NPC.", type = "Player" }, { name = "npc", description = "The NPC that they killed.", type = "Entity" } }, returns = { { name = "answer", description = "Whether the player can earn money.", type = "boolean" } } } DarkRP.hookStub{ name = "calculateNPCKillPay", description = "How much a player should profit from killing a NPC", parameters = { { name = "ply", description = "The player who killed the NPC.", type = "Player" }, { name = "npc", description = "The NPC that they killed.", type = "Entity" } }, returns = { { name = "total", description = "How much money they should earn.", type = "number" } } }