- 346
- 83
- Версия MoonLoader
- Другое
можно как-нибудь сделать проверку камеры персонажа чтоб renderFontDrawText не отображал рендер сзади персонажа? Транспорт стоит за спиной персонажа.
Lua:local sampev = require 'lib.samp.events' require "lib.moonloader" local tCarsName = {"Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana", "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam", "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BFInjection", "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie", "Stallion", "Rumpo", "RCBandit", "Romero","Packer", "Monster", "Admiral", "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair"...
Lua:local sampev = require 'lib.samp.events' require "lib.moonloader" local tCarsName = {"Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana", "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam", "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BFInjection", "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie", "Stallion", "Rumpo", "RCBandit", "Romero","Packer", "Monster", "Admiral", "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair", "Berkley'sRCVan", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RCBaron", "RCRaider", "Glendale", "Oceanic", "Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX", "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "NewsChopper", "Rancher", "FBIRancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking", "BlistaCompact", "PoliceMaverick", "Boxvillde", "Benson", "Mesa", "RCGoblin", "HotringRacerA", "HotringRacerB", "BloodringBanger", "Rancher", "SuperGT", "Elegant", "Journey", "Bike", "MountainBike", "Beagle", "Cropduster", "Stunt", "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "hydra", "FCR-900", "NRG-500", "HPV1000", "CementTruck", "TowTruck", "Fortune", "Cadrona", "FBITruck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan", "Blade", "Freight", "Streak", "Vortex", "Vincent", "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder", "Primo", "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite", "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratum", "Elegy", "Raindance", "RCTiger", "Flash", "Tahoma", "Savanna", "Bandito", "FreightFlat", "StreakCarriage", "Kart", "Mower", "Dune", "Sweeper", "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400", "NewsVan", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club", "FreightBox", "Trailer", "Andromada", "Dodo", "RCCam", "Launch", "PoliceCar", "PoliceCar", "PoliceCar", "PoliceRanger", "Picador", "S.W.A.T", "Alpha", "Phoenix", "GlendaleShit", "SadlerShit", "Luggage A", "Luggage B", "Stairs", "Boxville", "Tiller", "UtilityTrailer"} function main() repeat wait(0) until isSampAvailable() font = renderCreateFont("EagleSans-Bold", 9, 5) while true do wait(0) if not sampIsDialogActive() and not sampIsScoreboardOpen() then for k, v in pairs(getAllVehicles()) do local x, y, z = getCarCoordinates(v) local mx, my, mz = getCharCoordinates(PLAYER_PED) if isCarOnScreen(v) and isCharOnScreen(v) and (getDistanceBetweenCoords3d(mx, my, mz, x, y, z) < 400) then local distance = getDistanceBetweenCoords3d(X, Y, Z, myX, myY, myZ) local rx, ry = convert3DCoordsToScreen(x, y, z) local id = getCarModel(v) local health = '\nHP: '..getCarHealth(v)..'\n' local engine = 'Engine: '..(isCarEngineOn(v) and '{00FF00}On' or '{FF0000}Off') local lock = '\n{AAAAAA}Locked: '..(getCarDoorLockStatus(v) == 2 and '{FF0000}Off' or '{00FF00}On') local text = '? ['..id..']'..health..engine..lock if tCarsName[id-399] then text = tCarsName[id-399]..' ['..id..']'..health..engine..lock end renderFontDrawText(font, text, rx, ry, 0xFFAAAAAA) end end end end end function getNearCharToCenter(radius) local arr = {} local sx, sy = getScreenResolution() for _, player in ipairs(getAllChars()) do if select(1, sampGetPlayerIdByCharHandle(player)) and isCharOnScreen(player) and player ~= playerPed then local plX, plY, plZ = getCharCoordinates(player) local cX, cY = convert3DCoordsToScreen(plX, plY, plZ) local distBetween2d = getDistanceBetweenCoords2d(sx / 2, sy / 2, cX, cY) if distBetween2d <= tonumber(radius and radius or sx) then table.insert(arr, {distBetween2d, player}) end end end if #arr > 0 then table.sort(arr, function(a, b) return (a[1] < b[1]) end) return arr[1][2] end return nil end function getNearCarToCenter(radius) local arr = {} local sx, sy = getScreenResolution() for _, car in ipairs(getAllVehicles()) do if isCarOnScreen(car) and getDriverOfCar(car) ~= playerPed then local carX, carY, carZ = getCarCoordinates(car) local cX, cY = convert3DCoordsToScreen(carX, carY, carZ) local distBetween2d = getDistanceBetweenCoords2d(sx / 2, sy / 2, cX, cY) if distBetween2d <= tonumber(radius and radius or sx) then table.insert(arr, {distBetween2d, car}) end end end if #arr > 0 then table.sort(arr, function(a, b) return (a[1] < b[1]) end) return arr[1][2] end return nil end
local sampev = require 'lib.samp.events'
require "lib.moonloader"
local tCarsName = {"Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana", "Infernus",
"Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam", "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BFInjection", "Hunter",
"Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie", "Stallion", "Rumpo",
"RCBandit", "Romero","Packer", "Monster", "Admiral", "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed",
"Yankee", "Caddy", "Solair", "Berkley'sRCVan", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RCBaron", "RCRaider", "Glendale", "Oceanic", "Sanchez", "Sparrow",
"Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX", "Burrito", "Camper", "Marquis", "Baggage",
"Dozer", "Maverick", "NewsChopper", "Rancher", "FBIRancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking", "BlistaCompact", "PoliceMaverick",
"Boxvillde", "Benson", "Mesa", "RCGoblin", "HotringRacerA", "HotringRacerB", "BloodringBanger", "Rancher", "SuperGT", "Elegant", "Journey", "Bike",
"MountainBike", "Beagle", "Cropduster", "Stunt", "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "hydra", "FCR-900", "NRG-500", "HPV1000",
"CementTruck", "TowTruck", "Fortune", "Cadrona", "FBITruck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan", "Blade", "Freight",
"Streak", "Vortex", "Vincent", "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder", "Primo", "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada",
"Yosemite", "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratum", "Elegy", "Raindance", "RCTiger", "Flash", "Tahoma", "Savanna", "Bandito",
"FreightFlat", "StreakCarriage", "Kart", "Mower", "Dune", "Sweeper", "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400", "NewsVan",
"Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club", "FreightBox", "Trailer", "Andromada", "Dodo", "RCCam", "Launch", "PoliceCar", "PoliceCar",
"PoliceCar", "PoliceRanger", "Picador", "S.W.A.T", "Alpha", "Phoenix", "GlendaleShit", "SadlerShit", "Luggage A", "Luggage B", "Stairs", "Boxville", "Tiller",
"UtilityTrailer"}
function main()
repeat wait(0) until isSampAvailable()
font = renderCreateFont("EagleSans-Bold", 9, 5)
while true do
wait(0)
if not sampIsDialogActive() and not sampIsScoreboardOpen() then
for k, v in pairs(getAllVehicles()) do
local x, y, z = getCarCoordinates(v)
local mx, my, mz = getCharCoordinates(PLAYER_PED)
if isPointOnScreen (x, y, z, 0) then
local distance = getDistanceBetweenCoords3d(X, Y, Z, myX, myY, myZ)
local rx, ry = convert3DCoordsToScreen(x, y, z)
local id = getCarModel(v)
local health = '\nHP: '..getCarHealth(v)..'\n'
local engine = 'Engine: '..(isCarEngineOn(v) and '{00FF00}On' or '{FF0000}Off')
local lock = '\n{AAAAAA}Locked: '..(getCarDoorLockStatus(v) == 2 and '{FF0000}Off' or '{00FF00}On')
local text = '? ['..id..']'..health..engine..lock
if tCarsName[id-399] then
text = tCarsName[id-399]..' ['..id..']'..health..engine..lock
end
renderFontDrawText(font, text, rx, ry, 0xFFAAAAAA)
end
end
end
end
end
function getNearCharToCenter(radius)
local arr = {}
local sx, sy = getScreenResolution()
for _, player in ipairs(getAllChars()) do
if select(1, sampGetPlayerIdByCharHandle(player)) and isCharOnScreen(player) and player ~= playerPed then
local plX, plY, plZ = getCharCoordinates(player)
local cX, cY = convert3DCoordsToScreen(plX, plY, plZ)
local distBetween2d = getDistanceBetweenCoords2d(sx / 2, sy / 2, cX, cY)
if distBetween2d <= tonumber(radius and radius or sx) then
table.insert(arr, {distBetween2d, player})
end
end
end
if #arr > 0 then
table.sort(arr, function(a, b) return (a[1] < b[1]) end)
return arr[1][2]
end
return nil
end
function getNearCarToCenter(radius)
local arr = {}
local sx, sy = getScreenResolution()
for _, car in ipairs(getAllVehicles()) do
if isCarOnScreen(car) and getDriverOfCar(car) ~= playerPed then
local carX, carY, carZ = getCarCoordinates(car)
local cX, cY = convert3DCoordsToScreen(carX, carY, carZ)
local distBetween2d = getDistanceBetweenCoords2d(sx / 2, sy / 2, cX, cY)
if distBetween2d <= tonumber(radius and radius or sx) then
table.insert(arr, {distBetween2d, car})
end
end
end
if #arr > 0 then
table.sort(arr, function(a, b) return (a[1] < b[1]) end)
return arr[1][2]
end
return nil
end
угу, но можно как-нибудь теперь радиус уменьшить? Т.к рендер долбит все кары в зоне стримаLua:local sampev = require 'lib.samp.events' require "lib.moonloader" local tCarsName = {"Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana", "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam", "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BFInjection", "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie", "Stallion", "Rumpo", "RCBandit", "Romero","Packer", "Monster", "Admiral", "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair", "Berkley'sRCVan", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RCBaron", "RCRaider", "Glendale", "Oceanic", "Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX", "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "NewsChopper", "Rancher", "FBIRancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking", "BlistaCompact", "PoliceMaverick", "Boxvillde", "Benson", "Mesa", "RCGoblin", "HotringRacerA", "HotringRacerB", "BloodringBanger", "Rancher", "SuperGT", "Elegant", "Journey", "Bike", "MountainBike", "Beagle", "Cropduster", "Stunt", "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "hydra", "FCR-900", "NRG-500", "HPV1000", "CementTruck", "TowTruck", "Fortune", "Cadrona", "FBITruck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan", "Blade", "Freight", "Streak", "Vortex", "Vincent", "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder", "Primo", "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite", "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratum", "Elegy", "Raindance", "RCTiger", "Flash", "Tahoma", "Savanna", "Bandito", "FreightFlat", "StreakCarriage", "Kart", "Mower", "Dune", "Sweeper", "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400", "NewsVan", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club", "FreightBox", "Trailer", "Andromada", "Dodo", "RCCam", "Launch", "PoliceCar", "PoliceCar", "PoliceCar", "PoliceRanger", "Picador", "S.W.A.T", "Alpha", "Phoenix", "GlendaleShit", "SadlerShit", "Luggage A", "Luggage B", "Stairs", "Boxville", "Tiller", "UtilityTrailer"} function main() repeat wait(0) until isSampAvailable() font = renderCreateFont("EagleSans-Bold", 9, 5) while true do wait(0) if not sampIsDialogActive() and not sampIsScoreboardOpen() then for k, v in pairs(getAllVehicles()) do local x, y, z = getCarCoordinates(v) local mx, my, mz = getCharCoordinates(PLAYER_PED) if isPointOnScreen (x, y, z, 0) then local distance = getDistanceBetweenCoords3d(X, Y, Z, myX, myY, myZ) local rx, ry = convert3DCoordsToScreen(x, y, z) local id = getCarModel(v) local health = '\nHP: '..getCarHealth(v)..'\n' local engine = 'Engine: '..(isCarEngineOn(v) and '{00FF00}On' or '{FF0000}Off') local lock = '\n{AAAAAA}Locked: '..(getCarDoorLockStatus(v) == 2 and '{FF0000}Off' or '{00FF00}On') local text = '? ['..id..']'..health..engine..lock if tCarsName[id-399] then text = tCarsName[id-399]..' ['..id..']'..health..engine..lock end renderFontDrawText(font, text, rx, ry, 0xFFAAAAAA) end end end end end function getNearCharToCenter(radius) local arr = {} local sx, sy = getScreenResolution() for _, player in ipairs(getAllChars()) do if select(1, sampGetPlayerIdByCharHandle(player)) and isCharOnScreen(player) and player ~= playerPed then local plX, plY, plZ = getCharCoordinates(player) local cX, cY = convert3DCoordsToScreen(plX, plY, plZ) local distBetween2d = getDistanceBetweenCoords2d(sx / 2, sy / 2, cX, cY) if distBetween2d <= tonumber(radius and radius or sx) then table.insert(arr, {distBetween2d, player}) end end end if #arr > 0 then table.sort(arr, function(a, b) return (a[1] < b[1]) end) return arr[1][2] end return nil end function getNearCarToCenter(radius) local arr = {} local sx, sy = getScreenResolution() for _, car in ipairs(getAllVehicles()) do if isCarOnScreen(car) and getDriverOfCar(car) ~= playerPed then local carX, carY, carZ = getCarCoordinates(car) local cX, cY = convert3DCoordsToScreen(carX, carY, carZ) local distBetween2d = getDistanceBetweenCoords2d(sx / 2, sy / 2, cX, cY) if distBetween2d <= tonumber(radius and radius or sx) then table.insert(arr, {distBetween2d, car}) end end end if #arr > 0 then table.sort(arr, function(a, b) return (a[1] < b[1]) end) return arr[1][2] end return nil end
Просто сделай проверку на стены(т.е. processLine чото там, на вики найди)угу, но можно как-нибудь теперь радиус уменьшить? Т.к рендер долбит все кары в зоне стрима
Выше кидал тоже самое, только с параметром 1 он все равно будет немного залезать сзади экранана if isPointOnScreen (x, y, z, 1) then замени и все будет у тебя заебись
не должен залезатьВыше кидал тоже самое, только с параметром 1 он все равно будет немного залезать сзади экрана