12-02-2021, 18:14
WiseBear
Эта функция используется для получения списка всех элементов заданного типа. Это может быть полезно, Так как он не учитывает того, где в дереве элементов. Он может использоваться как для встроенных типов (см. ниже) или с любого пользовательского типа, используемая в .файл карте. Например, если имеется элемент типа "флаг" (например, <флаг />) в интернет .Map-файл, используя "флаг" в качестве аргумента типа хотела ее найти.
Syntax
Server
Client Обязательные Аргументы
Тип элемента вы хотите, чтобы список. Это же как имя тега в .Map файл, поэтому он может использоваться с пользовательским типом элемента, если это необходимо. Встроенных типов можно найти здесь: элемент
- "player": Игрок подключен к серверу
- "ped": A пед
- "water": Водный многоугольник
- "sound":Звук игры
- "vehicle": Транспортное средство
- "object": Объект
- "pickup": Пикап
- "marker": Маркер
- "colshape": Форма столкновения
- "blip": Блип
- "radararea": Радар
- "team": Команда
- "spawnpoint": Спавн Поинт
- "console": Консоль
- "projectile": Клиентский снаряд
- "effect": Клиентские Эфекты
- "light": клиентский свет
- "searchlight": Скриншот
- "shader": Шейдер
- "texture": Текстуры
Необязательные аргументы
ПРИМЕЧАНИЕ: При использовании необязательных аргументов вам может потребоваться предоставить все аргументы перед тем, который вы хотите использовать. Для получения дополнительной информации о необязательных аргументах см. Дополнительные аргументы.
startat: элемент, с которого должен начинаться поиск. Выполняется поиск дочерних элементов этого элемента, братьев, сестер или родителей не будет. По умолчанию,
это корневой элемент, который подходит для большинства случаев использования.
streamedIn: если true, функция будет возвращать только те элементы, которые передаются в потоковом режиме.
Возврат
Возвращает таблицу, содержащую все элементы указанного типа. Возвращает пустую таблицу, если нет элементов указанного типа.
Возвращает false, если указанная строка недействительна (или не является строкой).
Пример
Пример 1: Этот пример извлекает таблицу игроков на сервере и проверяет, находится ли каждый из них в транспортном средстве: local players = getElementsByType ( "player" ) -- get a table of all the players in the server for theKey,thePlayer in ipairs(players) do -- use a generic for loop to step through each player if ( isPlayerInVehicle ( thePlayer ) ) then -- if the player is in a vehicle, announce it outputChatBox ( getPlayerName ( thePlayer ) .. " is in a vehicle" ) else -- if the player isn't in a vehicle, announce that he/she is on foot outputChatBox ( getPlayerName ( thePlayer ) .. " is on foot" ) end
Пример 2: Этот пример извлекает таблицу команд на сервере и отображает их в чате:local teams = getElementsByType("team") for i,team in ipairs(teams) do local teamName = getTeamName(team) -- get the team name outputChatBox(teamName) -- display the team name in chat end
Пример 3: Здесь показано, как можно создать новый элемент для описания заправочной станции:function createGasStations(below) local gasstations = getElementsByType ( "gasstation", below ) -- get a table of all the gas station elements in the element tree for theKey,theGasStation in ipairs(gasstations) do local x = getElementData(theGasStation, "posX") -- get the position of the element local y = getElementData(theGasStation, "posY") local z = getElementData(theGasStation, "posZ") setElementParent(createColSphere(x, y, z, 10), theGasStation) -- create a colshape for the gas station at the gas station's position addEventHandler("onColShapeHit", theGasStation, giveGas) -- when the player hits end end function mapLoad() createGasStations(source) -- create gas stations for the map that's just loaded end addEventHandler("onResourceStart", resourceRoot, mapLoad) function giveGas(hittingElement) local theGasStation = source if getElementType(hittingElement) == "vehicle" then local gas_left = getElementData(theGasStation, "amount") local gas_speed = getElementData(theGasStation, "speed") if gas_left > 0 then local gas_to_remove = gas_speed if gas_left < gas_speed then gas_to_remove = gas_left local current_vehicle_gas = getElementData(hittingElement, "gas") current_vehicle_gas = current_vehicle_gas + gas_to_remove gas_left = gas_left - gas_to_remove setElementData(hittingElement, "gas", current_vehicle_gas) setElementData(theGasStation, "amount", gas_left) else outputChatBox("Pump is out of gas!") end end endПример 4: Этот пример проходит через всех подключенных игроков и перенаправляет их на другой хост-сервер:local serverIP = "99.88.77.66" -- Change to your server IP to redirect everyone local serverPort = 22005 -- The destination server's port function redirectAllPlayers() for _,p in ipairs (getElementsByType("player")) do if p then redirectPlayer (p, serverIP, serverPort) end end end addEventHandler ("onResourceStart", resourceRoot, redirectAllPlayers)