GetTeamWithFewestPlayers

Jump to: navigation, search

An useful function that gives you a table with the teams with less players. I've only put this here to replace a crappy function.

Syntax

`table getTeamWithFewestPlayers([table teams])`

Optional arguments

• teams: a regular indexed table of teams. Example: {team, team, team, [4]=team}

Return

Returns a table containing teams. If it fails (invalid table provided) or if there are no teams; returns false.

Code

```function getTeamsWithFewestPlayers(t)
if t and type(t)=="table" then -- Do checks for validity
for i,v in ipairs(t) do
if (not isElement(v)) or (type(v) ~= "team") then
-- Use stacktrace from debug to output a message to parent function
return false
end
end
else t = getElementsByType("team") end
local lowestScorers, lowestCount = {}, math.huge
for i,v in ipairs(t) do
local count = countPlayersInTeam(v)
if count < lowestCount then
lowestScorers = {v}
lowestCount = count
elseif count == lowestCount then
table.insert(lowestScorers, v)
end
end
return lowestScorers
end
```

Example

Click to collapse [-]
Example

This example adds a "/lowest" to tell the player which team has the lowest amount of players.

```-- Create a local function for the command "/lowest"
function lowestTeam(player)
local teams = getTeamsWithFewestPlayers()
local multiple = #teams > 1 -- is there more than one team?
local teamListStr = ""
for i,v in ipairs(teams) do
local name = getTeamName(v)
teamListStr = teamListStr .. " " .. name
if (" "..teamListStr ~= name) and (i ~= #teams) then
teamListStr = teamListStr .. " and"
end
end
local str = string.format("The %s with the fewest players %s %s!", multiple and "teams" or "team", multiple and "are" or "is", teamListStr)
outputChatBox(str, player)
end
addCommandHandler("lowest", lowestTeam)
```

Author: qaisjp

See Also

Table functions

• isValueInTable » This function returns true if the value exists in the table, false if the value does not exist in the table.
• setTableToSql » This function is used to save the table in the database (sql).
• getTableFromSql » This functionality is used to obtain saved tables using the function (SetTableToSql ).
• rangeToTable » This function converts a string range to a table containing number values.
• setTableProtected » This function protects a table and makes it read-only.
• Sort_Functions » These functions are able to sort your tables by a key.
• table.compare » This function checks whether two given tables are equal.
• table.copy » This function copies a whole table and all the tables in that table.
• table.empty » This function checks whether a table is empty.
• table.map » This function goes through a table and replaces every field with the return of the passed function, where the field's value is passed as first argument and optionally more arguments.
• table.merge » This function merges two or more tables together.
• table.random » This function retrieves a random value from a table.
• table.removeValue » This function removes a specified value from a table.
• table.size » This function returns the absolute size of a table.
• table.getRandomRows » This function returns random rows from table.

ACL functions

• aclGroupClone » This function clone a group to another group with/without ACLs and/or objects.
• getPlayerAcls » This function returns a table of all ACL groups on a player.
• isPlayerInACL » This function checks if a player element is in an ACL group.
• isPlayerStaff » This function checks if a player is server admin or staff.
• renameAclGroup » This function gives an existing ACL group a new name.

Camera functions

• smoothMoveCamera » This function allows you to create a cinematic camera flight.

Cursor functions

• getCursorMovedOn » This function checks in which way the cursor is currently moving.

Effects functions

• attachEffect » This function allows you attach an effect to an element.

Elements functions

• getElementSpeed » This function returns the specified element's speed in m/s, km/h or mph.
• getElementsInDimension » This function returns a table of elements that are in the specified dimension.
• getElementsWithinMarker » This function returns a table of elements that are within a marker's collision shape.
• isElementInPhotograph » This function checks if an element is in the player's camera picture area.
• isElementInRange » This function allows you to check if an element's range to a main point is within the maximum range.
• isElementMoving» This function checks if an element is moving.
• isElementWithinAColShape» This function checks if an element is within a collision shape element.
• multi_check » This function checks one element to many, handy and clean.
• setElementSpeed » This function allows you to set the speed of an element in kph or mph units.

Events

• onVehicleWeaponFire » This code implements an event that is triggered when a player in a vehicle fires a vehicle's weapon.

Input functions

• bindControlKeys » This function allows you to bind each key bound to a control individually. Doing this bypasses a little MTA restriction.
• getBoundControls » This function returns a table of control names that are bound to the specified key.
• unbindControlKeys » This function allows you to unbind each key bound to a control individually. Use this function with bindControlKeys.
• getClipboard » This event returns the contents of the clipboard by pressing ctrl + v / ctrl + V. Event triggered ONLY if cursor is showing.

Data functions

• byte2human » This function converts an integer (number of bytes) into a human-readable unit.
• capitalize » This function capitalizes a given string.
• convertNumber » This function converts and formats large numbers.
• convertServerTickToTimeStamp » This function converts server ticks to a unix timestamp.
• convertTextToSpeech » This function converts the provided text to a speech in the provided language which players can hear.
• findRotation » This function takes two points and returns the direction from point A to point B.
• findRotation3D » This function takes two sets of XYZ coordinates. It returns the 3D direction from point A to point B.
• FormatDate » This function formats a date on the basis of a format string and returns it.
• generateString » This function generates a random string with any characters.
• generateRandomASCIIString » This function returns a random string which uses ASCII characters.
• getAge » This function calculates the age of a given birthday.
• getDistanceBetweenPointAndSegment2D » This function takes point coordinates and line (a segment) starting and ending coordinates. It returns the shortest distance between the point and the line.
• getEasterDate » This function returns easter date monthday and month for a given year.
• getKeyFromValueInTable » This function returns the key of the specified value in a table.
• getOffsetFromXYZ » This function allows you to take an entity and a position and calculate the relative offset between them accounting for rotations.
• getPointFromDistanceRotation » This function finds a point based on a starting point, direction and distance.
• getRealMonthH » This function convert english months to arabic months
• getRealMonthM » This function gives you the real months name
• getRGColorFromPercentage »This function returns two integers representing red and green colors according to the specified percentage.
• getScreenRotationFromWorldPosition » This function returns a screen relative rotation to a world position.
• getTimestamp » This function returns the UNIX timestamp of a specified date and time.
• isLeapYear » This function returns a boolean representing if a given year is a leap year.
• isValidMail » This function checks whether a provided e-mail string is valid.
• removeHex » This function is used to remove hexadecimal numbers (colors, for example) from strings.
• RGBToHex » This function returns a string representing the color in hexadecimal.
• secondsToTimeDesc » This function converts a plain seconds-integer into a user-friendly time description.
• string.count » This function counts the amount of occurences of a string in a string.
• string.explode » This function splits a string at a given separator pattern and returns a table with the pieces.
• switch » This function allows the value of a variable or expression to control the flow of program execution via a multiway branch.
• toHex » This function converts a decimal number to a hexadecimal number, as a fix to be used client-side.
• var dump » This function outputs information about one or more variables using outputConsole.
• wavelengthToRGBA » This function converts a physical wavelength of light to a RGBA color.
• getDistanceBetweenElements » Esta funcion sirve para obtener la distancia entre dos elementos.

GUI functions

• centerWindow » This function centers a CEGUI window element responsively in any resolution.
• guiMoveElement » This function moves guiElement by/like using moveObject.
• isMouseOnGUICloseButton » This function allows you to check whether the mouse cursor/pointer is within a gui-window's native close button.
Labels
• guiLabelAddEffect » This function add an effects to the gui-label like (shadow, outline).

Math functions

• mathNumber » This function is a workaround for the client-side floating-point precision of 24-bits.
• math.hypot » This function returns the Hypotenuse of the triangle given by sides x and y.
• math.percent » This function returns a percentage from two number values.
• math.round » Rounds a number whereas the number of decimals to keep and the method may be set.
• reMap » Re-maps a number from one range to another.
• math.isPointInPolygon » Check if point is inside polygon or not.
• math.polygonArea » Compute area of any polygon.
• math.randomDiff » Generates a pseudo-random integer that's always different from the last random number generated.

Map functions

• assignLod » This function lets you conveniently generate and apply a LOD model to a mapping object

Ped functions

• getAlivePlayers » This function returns a table of the alive players client-side.
• getAlivePlayersInTeam » This function returns a table of the alive players in a team.
• getPlayersInVehicles » This function returns a table of the players insides vehicles from a specified dimension.
• getGuestPlayers » This function gets a players not login or players Guest .
• getOnlineAdmins » This function returns a table of all logged-in administrators.
• getPedEyesPosition » This function allows you to get peds eyes position.
• getPedMaxHealth » This function returns a pedestrians's maximum health by converting it from their maximum health stat.
• getPedMaxOxygenLevel » This function returns a ped's maximum oxygen level by converting it from their maximum underwater stamina stat.
• getPlayerFromNamePart » This function returns a player from partial name.
• getPlayerFromSerial » This function returns a player from their serial.
• getPlayersByData » This function returns a table of players that have the specified data name.
• getPlayersInGroup » This function returns all Players In Group .
• getPlayersInPhotograph » This function returns a table of all players in photograph.
• isPedAiming» This function checks if a pedestrian is aiming their weapon.
• isPedAimingNearPed » This is similar to isPedAiming but uses a colshape to be more precise.
• isPedDrivingVehicle » This function checks if a specified pedestrian is driving a vehicle.
• isPlayerInTeam » This function checks if a player is in a specified team.

Player functions

• countPlayersInRange » This function returns the number of players that are within a certain range of the specified coordinates.
• warpToPlayer» This function make player warp to another player.

Browser functions

• playVideo » This function plays a video on the screen.

Team functions

• getTeamFromColor » This function returns a team element by the specified color.
• getTeamWithFewestPlayers » This function returns a team element with least players of all the specified teams.

XML functions

• getXMLNodes » This function returns all children of a XML node.

Utility

• animate » This function allows you to use interpolateBetween without render event and easily used.
• callClientFunction » This function allows you to call any client-side function from the server's side.
• callServerFunction » This function allows you to call any server-side function from the client's side.
• Check » This function checks if its arguments are of the right type and calls the error-function if one is not.
• coroutine.resume » This function applies a fix for hidden coroutine error messages.
• getBanFromName » This functions returns the ban of the given playername.
• getCurrentFPS » This function returns the frames per second at which GTA: SA is running.
• IfElse » This function returns one of two values based on a boolean expression.
• isCursorOnElement » This function checks whether the cursor is in a particular area.
• isMouseInCircle » This function checks if a cursor position is in circular area or not.
• isMouseInPosition » This function allows you to check whether the mouse cursor/pointer is within a rectangular position.
• iterElements » This function returns a time-saving iterator for your for-loops.
• thisCommandHandlersExist » This method checks a string if this exist as command Handlers
• vector3:compare » This method checks whether two vectors match, with optional precision.
• preprocessor » This function allow you to use gcc macros.