Jump to content

ماب تفاعلي في فري روم جديد


Recommended Posts

هلا والله شباب ,,

وش اسوي عشان اضيف نفس الماب الموجود في الفري روم الى الفري روم الجديد حقي

سويت اللوحة :

mapwnd = guiCreateWindow(345, 81, 433, 410, "", false) 

الحين من وين اجيب الماب التفاعلي اللي في الفري روم

لاحد يقولي جيب من الفري روم الاصلي

لانه ماراح ينفع

Client Side --
function warpMapInit() 
    addEventHandler('onClientRender', g_Root, updatePlayerBlips) 
end 
  
function spawnMapDoubleClick(relX, relY) 
    setPlayerPosition(relX*6000 - 3000, 3000 - relY*6000, 0) 
    closeWindow(wndSpawnMap) 
end 
  
function closeSpawnMap() 
    showCursor(false) 
    removeEventHandler('onClientRender', g_Root, updatePlayerBlips) 
    for elem,data in pairs(g_PlayerData) do 
        for i,name in ipairs({'mapBlip', 'mapLabelShadow', 'mapLabel'}) do 
            if data.gui[name] then 
                destroyElement(data.gui[name]) 
                data.gui[name] = nil 
            end 
        end 
    end 
end 
  
wndSpawnMap = { 
    'wnd', 
    text = 'Select spawn position', 
    width = g_MapSide + 20, 
    controls = { 
        {'img', id='map', src='map.png', width=g_MapSide, height=g_MapSide, ondoubleclick=spawnMapDoubleClick}, 
        {'lbl', text='Welcome to freeroam. Double click a location on the map to spawn.', width=g_MapSide-60, align='center'}, 
        {'btn', id='close', closeswindow=true} 
    }, 
    oncreate = warpMapInit, 
    onclose = closeSpawnMap 
} 
  

Server Side--

  
function spawnMe(x, y, z) 
    if not x then 
        x, y, z = getElementPosition(source) 
    end 
    if isPedTerminated(source) then 
        repeat until spawnPlayer(source, x, y, z, 0, math.random(9, 288)) 
    else 
        spawnPlayer(source, x, y, z, 0, getPedSkin(source)) 
    end 
    setCameraTarget(source, source) 
    setCameraInterior(source, getElementInterior(source)) 
end 

Freeroam Code

Link to comment

شفت الماب الموجود في الفري روم ابيه احطه في اللوحه اللي عندي

mapwnd = guiCreateWindow(345, 81, 433, 410, "", false)

الماب التفاعلي يعني فيه بليبل بمكان اللاعب و لما اضغط على مكان في الخريطه يوديني المكان ذا والاحداثيات وغيره مثل الموجود في الفريروم

Link to comment

guiCreateStaticImage

onClientGUIDoubleClick

guiSetPosition

setPlayerPosition

onClientRender

طبعا الاكواد ذي كلينت

ولازم قبل ما تسويها تكون مجهز لوحه وجدول

حسب طريقه شغلك

getElementPosition

clientCall

اكواد السيرفر ... انا بحاول ارتب لك بس

المهم اذا انا انسيت شغله او زدت شغله ردلي خبر

واذا ما فهمت اي شي انا جاهز بساعدك

بس المهم لا تواخذني بس فاطس من النعس

تقبل مروري بالتوفيق #

Link to comment

سوي جدول ... او قيم

مثلا قيمه او مكان بالداتا عشان تحجز للاحداثيات

مثلا x = "JJ"

بعدين تجيب الداتا بمكان الكبسه بالافنت الي معطيك اياه فوق

Link to comment

هنا تجيب المكان الي ضغط منه

local x, y = getCursorPosition( ) 
x, y = x*6000, y*6000 

كذا ضربنا مكان الماوس على حجم ماب اللعبة الكامل

طبعا الاحداثيات تكون relative

اذ ماتعرفها

تجي كذا

0.5 -- يعني نص

1.0 -- يعني كامل

وهذا حدث اذ ضغط مرتين

onClientGUIDoubleClick

بس اعطيتك الطريقة اللي لما يضغط ينتقل :mrgreen:

Link to comment

كذا ؟

ارجوا المساعده والله محتاجه

setElementPosition ( source, x+0.5, y+0.5, 3 ) هذي سيرفر

يبيلها تريقر !

map = guiCreateStaticImage(1, 46, 432, 364, "map.png", false, mapwnd)  

local x, y = getCursorPosition( ) 
x, y = x*6000, y*6000 
  
  
                addEventHandler("onClientGUIDoubleClick",root, 
function () 
if source == map then 
triggerServerEvent ( "map", localPlayer) 
end 
 end 
)  

سيرفر

addEvent ("map", true) 
addEventHandler ("map", root, 
    function () 
setElementPosition ( source, x+0.5, y+0.5, 3 ) 
    end 
) 

Link to comment

addEventHandler("onClientGUIDoubleClick", resourceRoot, function( ) 
    if source == map then 
        local x, y = getCursorPosition( ) 
        x, y = x*6000, y*6000 
        setElementPosition(localPlayer, x, y, getGroundPosition(x, y, 500)+1) 
    end 
end) 

مني متاكد من الاحداثي z :mrgreen:

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...