Servus MTA-SA.org Community.
Seitdem mir langsam der Spaß an MTA vergeht und ich eigendlich nurnoch Race derzeit, möchte ich euch mein Radar geben. (Ich brauch es selbst nicht mehr und da viel zu viele schon die Berechnungen gepostet haben finde ich dies auch in Ordnung).
Spoiler anzeigen
Lua
local zoom = 1.5;
local zName = "";
local pInt = getElementInterior(localPlayer);
local playerPos = {getElementPosition(localPlayer)};
local rand = 15;
local width = 300; -- Größe von der Anzeige
local height = 200;
local mwidth = 6000; -- Größe von der Map
local mheight = 6000;
local renderMapTaget = false;
local mapTexture = false;
local screenSize = {guiGetScreenSize()};
function onClientResourceStart()
renderMapTaget = dxCreateRenderTarget(mwidth, mheight);
mapTexture = dxCreateTexture("images/map.jpg");
if(not renderMapTaget or not mapTexture) then
return outputChatBox("lRadar: Es ist ein Fehler aufgetreten.", 255, 106, 0);
end
addEventHandler("onClientRender", root, drawMap);
end
addEventHandler("onClientResourceStart", resourceRoot, onClientResourceStart);
function drawMap()
if(isPlayerHudComponentVisible("radar")) then
showPlayerHudComponent("radar", false);
end
pInt = getElementInterior(localPlayer);
zName = getZoneName(playerPos[1], playerPos[2], playerPos[3]);
if(pInt >= 1) then
zName = "Interior";
elseif(zName == "Unknown") then
zName = "#FF0000Unbekannter Ort";
end
-- Haupthintergrund
dxDrawRectangle((rand - 3), (screenSize[2] - 3) - (rand + height), (width + 6), (height + 3), tocolor(0, 0, 0, 150), true);
if(pInt >= 1) then
dxDrawImage(rand, screenSize[2] - (rand + height), width, height, "images/int.jpg", 0, 0, 0, white, true);
else
if(renderMapTaget) then
playerPos = {getElementPosition(localPlayer)};
dxSetRenderTarget(renderMapTaget);
dxDrawImage(0, 0, mwidth, mheight, mapTexture);
local x, y, elePos = false, false, false;
-- Blips
for _, blip in pairs(getElementsByType("blip", root, true)) do
local model = getBlipIcon(blip);
if(model > 3) then
elePos = {getElementPosition(blip)};
x = elePos[1] / (6000 / mwidth) + mwidth/2
y = elePos[2] / (-6000/ mheight) + mheight/2
dxDrawImage(x-8, y+8, 16, 16, "images/"..tostring(model)..".png", rot);
end
end
-- ...
dxSetRenderTarget();
local mapX = playerPos[1] / (6000 / mwidth) + mwidth/2 - width / zoom/2
local mapY = playerPos[2] / (-6000/ mheight) + mheight/2 - height / zoom/2
-- Map
local _, _, rot = getElementRotation(localPlayer);
dxDrawImageSection(rand, screenSize[2] - (height + rand), width, height, mapX, mapY, width/zoom, height/zoom, renderMapTaget, 0, 0, 0, white, true)
-- localPlayer Blip
dxDrawImage((rand + (width / 2) - 8), (screenSize[2] - (rand + (height / 2) - 5)), 16, 16, "me.png", -rot, 0, 0, tocolor(255,255,255), true);
end
end
-- Hintergrund Zone
dxDrawRectangle(rand, screenSize[2] - (rand + 20), width, 20, tocolor(0, 0, 0, 150), true);
-- Stadt anzeigen
dxDrawText(zName, rand, screenSize[2] - (rand + 20), (rand + width), screenSize[2] - rand, tocolor(255, 255, 255, 255), 1, "default-bold", "center", "center", false, false, true, true);
end
Alles anzeigen
//EDIT: (Unten links wird es angezeigt)
Externer Inhalt
i.gyazo.com
Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
//EDIT 2:
Download: klick mich
ACHTUNG: Bis jetzt ist nur Blip ID 23 eingefügt. Die anderen Blips müsst ihr selbst erstellen
//EDIT: DL wurde gefixxt.
MFG: LuXorioN