[YARDIM] F11 Map

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı ardaabo

  • Acemi Üye
  • *
    • İleti: 145
: 04 Şubat 2021, 17:28:08
Merhaba, Başka bir script ile F11 scripti kullanıyorum ve şöyle bir durum var F11 açtığım zaman Bazı scriptler Map in önüne geçiyor,
benim istediğim f11 açıldığında herşey Map in arkasında kalsın. Nasıl ayarlayabiliriz

Fotoğraf:
Spoiler for Hiden:
client
Kod
local screenW,screenH = guiGetScreenSize()
local middleX,middleY = screenW/2,screenH/2

local localPlayer  = getLocalPlayer()
local thisResource = getThisResource()

local toggle        = false
local zoom          = 1
local zoomRate      = 0.1
local movementSpeed = 5
local minZoomLimit  = 1
local maxZoomLimit  = 5

local xOffset = 0
local yOffset = 0

local x,y         = 0,0
local hSize,vSize = 0,0

local R,G,B,A      = 255,255,255,175
local mapDrawColor = tocolor(R,G,B,A)
local normalColor  = tocolor(255,255,255,255)

local mapFile                           = ":maximap/images/radar.png"
local topLeftWorldX,topLeftWorldY       = -3000,3000
local lowerRightWorldX,lowerRightWorldY = 3000,-3000
local mapWidth,mapHeight                = 6000,6000
local pixelsPerMeter                    = screenH/6000
local imageOwnerResource                = getThisResource()

toggleControl("radar",false)

local abs=math.abs

function calculateFirstCoordinates()  -- This function is for making export functions work without the map having been opened once
hSize=pixelsPerMeter*mapWidth*zoom
vSize=pixelsPerMeter*mapHeight*zoom

x=middleX-hSize/2+xOffset*zoom
y=middleY-vSize/2+yOffset*zoom
end
addEventHandler("onClientResourceStart",getResourceRootElement(),calculateFirstCoordinates)

function unloadImageOnOwnerResourceStop(resource)
if resource==imageOwnerResource and resource~=thisResource then
setPlayerMapImage()
end
end
addEventHandler("onClientResourceStop",getRootElement(),unloadImageOnOwnerResourceStop)

function drawMap()
if not toggle then
dxDrawImage(0,0,0,0,mapFile,0,0,0,0,false)  -- This is actually important, because otherwise you'd get huge lag when opening the maximap after a while (it seems to unload the image after a short while)
else
checkMovement()

hSize=pixelsPerMeter*mapWidth*zoom
vSize=pixelsPerMeter*mapHeight*zoom

x=middleX-hSize/2+xOffset*zoom
y=middleY-vSize/2+yOffset*zoom

dxDrawImage(x,y,hSize,vSize,mapFile,0,0,0,mapDrawColor,false)

drawRadarAreas()
drawBlips()
drawLocalPlayerArrow()
end
end
addEventHandler("onClientPreRender",getRootElement(),drawMap)

function drawRadarAreas()
local radarareas=getElementsByType("radararea")
if #radarareas>0 then
local tick=abs(getTickCount()%1000-500)
local aFactor=tick/500

for k,v in ipairs(radarareas) do
local x,y=getElementPosition(v)
local sx,sy=getRadarAreaSize(v)
local r,g,b,a=getRadarAreaColor(v)
local flashing=isRadarAreaFlashing(v)

if flashing then
a=a*aFactor
end

local hx1,hy1 = getMapFromWorldPosition(x,y+sy)
local hx2,hy2 = getMapFromWorldPosition(x+sx,y)
local width   = hx2-hx1
local height  = hy2-hy1

dxDrawRectangle(hx1,hy1,width,height,tocolor(r,g,b,a),false)
end
end
end

function drawBlips()
for k,v in ipairs(getElementsByType("blip")) do
if not getElementData(v,"DoNotDrawOnMaximap") then
local icon=getBlipIcon(v) or 0
local size=(getBlipSize(v) or 2)*4
local r,g,b,a=getBlipColor(v)

if icon~=0 then
r,g,b=255,255,255
size=16
end

local x,y,z=getElementPosition(v)
x,y=getMapFromWorldPosition(x,y)

local halfsize=size/2

dxDrawImage(x-halfsize,y-halfsize,size,size,"images/blips/"..icon..".png",0,0,0,tocolor(r,g,b,a),false)
end
end
end

function drawLocalPlayerArrow()
local x,y,z=getElementPosition(localPlayer)
local r=getPedRotation(localPlayer)

local mapX,mapY=getMapFromWorldPosition(x,y)

dxDrawImage(mapX-8,mapY-8,16,16,"images/blips/2.png",(-r)%360,0,0,normalColor,false)
end

function zoomOutRecalculate()
local newVSize=pixelsPerMeter*mapHeight*zoom
if newVSize>screenH then
local newY=middleY-newVSize/2+yOffset*zoom

if newY>0 then
yOffset=-(middleY-newVSize/2)/zoom
elseif newY<=(-newVSize+screenH) then
yOffset=(middleY-newVSize/2)/zoom
end
else
yOffset=0
end

local newHSize=pixelsPerMeter*mapWidth*zoom
if newHSize>screenW then
local newX=middleX-newHSize/2+xOffset*zoom

if newX>=0 then
xOffset=-(middleX-newHSize/2)/zoom
elseif newX<=(-newHSize+screenW) then
xOffset=(middleX-newHSize/2)/zoom
end
else
xOffset=0
end
end

function checkMovement()
-- Zoom
if getPedControlState("radar_zoom_in") and zoom<maxZoomLimit then
zoom=zoom+zoomRate
if zoom>maxZoomLimit then zoom=maxZoomLimit end
elseif getPedControlState("radar_zoom_out") and zoom>minZoomLimit then
zoom=zoom-zoomRate
if zoom<minZoomLimit then zoom=minZoomLimit end

zoomOutRecalculate()
end

-- Move
if getPedControlState("radar_move_north") then
local newY=y-yOffset*zoom+(yOffset+movementSpeed)*zoom
if newY<0 then
yOffset=yOffset+movementSpeed
end
end
if getPedControlState("radar_move_south") then
local newY=y-yOffset*zoom+(yOffset-movementSpeed)*zoom
if newY>(-vSize+screenH) then
yOffset=yOffset-movementSpeed
end
end
if getPedControlState("radar_move_west") then
local newXOff=(xOffset+movementSpeed)
local newX=x-xOffset*zoom+newXOff*zoom

if newX<0 then
xOffset=xOffset+movementSpeed
end
end
if getPedControlState("radar_move_east") then
local newX=x-xOffset*zoom+(xOffset-movementSpeed)*zoom
if newX>(-hSize+screenW) then
xOffset=xOffset-movementSpeed
end
end
end

addEvent("onClientPlayerMapHide")
addEvent("onClientPlayerMapShow")

setElementData(getLocalPlayer(),"mapRender",true)

function toggleMap()
    if not getElementData(getLocalPlayer(),"logedin") then return end
    if not getElementData(getLocalPlayer(),"mapRender") then return end
    if getElementData(getLocalPlayer(),"Harita") < 1 then return end           --Eğer Harita var ise F11 Haritayı Açar.
if toggle then
if triggerEvent("onClientPlayerMapHide",getRootElement(),false) then
toggle=false
end
else
if triggerEvent("onClientPlayerMapShow",getRootElement(),false) then
toggle=true
end
end
end
bindKey("F11","up",toggleMap)

-- Export functions

function getPlayerMapBoundingBox()
return x,y,x+hSize,y+vSize
end

function setPlayerMapBoundingBox(startX,startY,endX,endY)
if type(startX)=="number" and type(startY)=="number" and type(endX)=="number" and type(endY)=="number" then
-- TODO
return true
end
return false
end

function isPlayerMapVisible()
return toggle
end

function setPlayerMapVisible(newToggle)
if type(newToggle)=="boolean" then
toggle=newToggle

if toggle then
triggerEvent("onClientPlayerMapShow",getRootElement(),true)
else
triggerEvent("onClientPlayerMapHide",getRootElement(),true)
end

return true
end
return false
end

function getMapFromWorldPosition(worldX,worldY)
local mapX=x+pixelsPerMeter*(worldX-topLeftWorldX)*zoom
local mapY=y+pixelsPerMeter*(topLeftWorldY-worldY)*zoom
return mapX,mapY
end

function getWorldFromMapPosition(mapX,mapY)
local worldX=topLeftWorldX+mapWidth/hSize*(mapX-x)
local worldY=topLeftWorldY-mapHeight/vSize*(mapY-y)
return worldX,worldY
end

function setPlayerMapImage(image,tLX,tLY,lRX,lRY)
if image and type(image)=="string" and type(tLX)=="number" and type(tLY)=="number" and type(lRX)=="number" and type(lRY)=="number" then
sourceResource                    = sourceResource or thisResource
if string.find(image,":")~=1 then
sourceResourceName                = getResourceName(sourceResource)
image                             = ":"..sourceResourceName.."/"..image
end

if dxDrawImage(0,0,0,0,image,0,0,0,0,false) then
imageOwnerResource                = sourceResource

mapFile                           = image
topLeftWorldX,topLeftWorldY       = tLX,tLY
lowerRightWorldX,lowerRightWorldY = lRX,lRY
mapWidth,mapHeight                = lRX-tLX,tLY-lRY
pixelsPerMeter                    = math.min(screenW/(mapWidth),screenH/mapHeight)

zoom                              = 1
xOffset                           = 0
yOffset                           = 0

return true
end
elseif not image then
imageOwnerResource                = thisResource

mapFile                           = ":maximap/images/radar.jpg"
topLeftWorldX,topLeftWorldY       = -3000,3000
lowerRightWorldX,lowerRightWorldY = 3000,-3000
mapWidth,mapHeight                = 6000,6000
pixelsPerMeter                    = screenH/6000

zoom                              = 1
xOffset                           = 0
yOffset                           = 0

return true
end

return false
end

function getPlayerMapImage()
return mapFile
end

function setPlayerMapColor(r,g,b,a)
local color=tocolor(r,g,b,a)
if color then
mapDrawColor = color
R,G,B,A      = r,g,b,a
return true
end
return false
end

function setPlayerMapMovementSpeed(s)
if type(s)=="number" then
movementSpeed=s
return true
end
return false
end

function getPlayerMapMovementSpeed()
return movementSpeed
end

function getPlayerMapZoomFactor()
return zoom
end

function getPlayerMapZoomRate()
return zoomRate
end

function getBlipShowingOnMaximap(blip)
if isElement(blip) and getElementType(blip)=="blip" then
return not getElementData(blip,"DoNotDrawOnMaximap")
end
return false
end

function setBlipShowingOnMaximap(blip,toggle)
if isElement(blip) and getElementType(blip)=="blip" and type(toggle)=="boolean" then
return setElementData(blip,"DoNotDrawOnMaximap",not toggle,false)
end
return false
end

function setPlayerMapZoomFactor(z)
if type(z)=="number" then
if z>=minZoomLimit and z<=maxZoomLimit then
local prevZoom=zoom
zoom=z

if z<prevZoom then
zoomOutRecalculate()
end

return true
end
end
return false
end

function setPlayerMapZoomRate(z)
if type(z)=="number" then
zoomRate=z
return true
end
return false
end

function setPlayerMapMinZoomLimit(l)
if type(l)=="number" then
minZoomLimit=l
return true
end
return false
end

function setPlayerMapMaxZoomLimit(l)
if type(l)=="number" then
maxZoomLimit=l
return true
end
return false
end

function getPlayerMapMinZoomLimit()
return minZoomLimit
end

function getPlayerMapMaxZoomLimit()
return maxZoomLimit
end

function getPlayerMapColor()
return R,G,B,A
end
 


MTASATURK

[YARDIM] F11 Map
« : 04 Şubat 2021, 17:28:08 »