getElementsOnPlayerScreen
الوظيفة تجيب لك الكائنات او الألمنتات الي ظاهرين على شاشتك
Syntax:
table getElementsOnPlayerScreen(string/table elementType = "all")
Source code:
function getElementsOnPlayerScreen(element)
local elementTypes = {['player']=true, ['ped']=true, ['vehicle']=true, ['object']=true, ['pickup']=true};
local element = ((type(element) == 'table' and element) or (element == 'all' and element))
if element then
if type(element) == 'string' then
element = {}
for value in pairs(elementTypes) do
element[#element+1] = value;
end
else
local elementsTable = {};
for index = 1, #element do
if elementTypes[element[index]] then
elementsTable[#elementsTable+1] = element[index]
end
end
element = elementsTable;
end
local elementsTable = {};
local elements = {};
for index = 1, #element do
local element = getElementsByType(element[index])
for key = 1, #element do
elements[#elements+1] = element[key];
end
end
for element = 1, #elements do
if isElementOnScreen(elements[element]) and elements[element] ~= localPlayer then
elementsTable[#elementsTable+1] = elements[element]
end
end
return elementsTable
end
end
شرح الأرقمنتات للفنكشن:
Optional Arguments:
elementType: نوع الألمنتات الي تبي تحقق اذا كانت موجودة في شاشة اللاعب
القيمة ممكن تكون جدول او سترنق
اذا كانت القيمة سترنق ف لازم تكون 'all'
او اذا كانت القيمة جدول تقدر تحط فيه هذي القيم
player
ped
vehicle
object
pickup
Example:
--#Client Side
function getElementsOnPlayerScreen(element)
local elementTypes = {['player']=true, ['ped']=true, ['vehicle']=true, ['object']=true, ['pickup']=true};
local element = ((type(element) == 'table' and element) or (element == 'all' and element))
if element then
if type(element) == 'string' then
element = {}
for value in pairs(elementTypes) do
element[#element+1] = value;
end
else
local elementsTable = {};
for index = 1, #element do
if elementTypes[element[index]] then
elementsTable[#elementsTable+1] = element[index]
end
end
element = elementsTable;
end
local elementsTable = {};
local elements = {};
for index = 1, #element do
local element = getElementsByType(element[index])
for key = 1, #element do
elements[#elements+1] = element[key];
end
end
for element = 1, #elements do
if isElementOnScreen(elements[element]) and elements[element] ~= localPlayer then
elementsTable[#elementsTable+1] = elements[element]
end
end
return elementsTable
end
end
function getNearestElementOnPlayerScreen(player, elementType)
local player = (isElement(player) and getElementType(player) == 'player') and player
local elementType = type(elementType) == 'string' and (elementType == 'all' and elementType or {elementType})
if player and elementType then
local element = getElementsOnPlayerScreen(elementType);
local nearest
local playerX, playerY, playerZ = getElementPosition(player)
for index = 1, #element do
if isElement(nearest) then
local oldDistance = getDistanceBetweenPoints3D(playerX, playerY, playerZ, getElementPosition(nearest))
local newDistance = getDistanceBetweenPoints3D(playerX, playerY, playerZ, getElementPosition(element[index]));
if newDistance < oldDistance then
nearest = element[index];
end
else
nearest = element[index];
end
end
return nearest
end
end
addCommandHandler('warpVehicle', function()
local vehicle = getNearestElementOnPlayerScreen(localPlayer, 'vehicle');
if vehicle then
triggerServerEvent('givePlayerVehicle.', localPlayer, vehicle)
else
outputChatBox('There\'s no vehicle on you screen', 255, 0, 0, true)
end
end)
--#Server Side
addEvent('givePlayerVehicle.', true)
addEventHandler('givePlayerVehicle.', root, function(vehicle)
if not isPedInVehicle(client) then
warpPedIntoVehicle(client, vehicle)
end
end)
المثال هذا اذا كتبت /warpVehicle
ينقلك الى اقرب مركبة