local modf = math.modf local triggerPoints = { level1 = { tlx = 34.6, tly = 44.1, brx = 39.2, bry = 45.8 }, level2 = { tlx = 51.2, tly = 19.3, brx = 54.8, bry = 20.7 }, level3 = { tlx = 61.1, tly = 44.0, brx = 64.0, bry = 45.1 }, level4 = { tlx = 41.4, tly = 72.9, brx = 45.4, bry = 74.7 } } local function getTrigger( x, y ) for k, v in pairs( triggerPoints ) do if not ( x < v.tlx or x > v.brx or y < v.tly or y > v.bry ) then return k end end end local mapShowing = false local sprMap = sprMap or nil local sprCur = sprCur or nil local function showMap() ActivateMouse() -- activating mouse SetSpritePosition( sprMap, 50, 50 ) mapShowing = true end local function hideMap() DeactivateMouse() SetSpritePosition( sprMap, 200, 200 ) SetSpritePosition( sprCur, 200, 200 ) mapShowing = false end function maptest_init( e ) if sprMap == nil then sprMap = CreateSprite( LoadImage( "scriptbank\\images\\map.png" )) SetSpriteDepth( sprMap, 100 ) SetSpriteSize( sprMap, -1, 80 ) SetSpriteOffset( sprMap, -1, 40 ) end if sprCur == nil then sprCur = CreateSprite( LoadImage( "titlesbank\\default\\cursor.png" )) SetSpriteDepth( sprCur, 0 ) SetSpriteColor( sprCur, 200 , 100, 200, 200 ) end hideMap() end local plrclicked = false local keyPresed = false function maptest_main( e ) local Ekey = g_KeyPressE == 1 if not mapShowing then if Ekey then if not keyPressed then keyPressed = true showMap() return end else keyPressed = false end else local mx, my = g_MouseX, g_MouseY SetSpritePosition( sprCur, g_MouseX, g_MouseY ) Prompt( modf( mx * 10 ) / 10 .. ", " .. modf( my * 10 ) / 10 ) if Ekey then if not keyPressed then keyPressed = true hideMap() return end else keyPressed = false end local trigger = getTrigger( mx, my ) if trigger ~= nil then Prompt( trigger ) end -- mouse click: 1 = left mouse button, 2 = right mouse button if g_MouseClick == 1 then if not plrclicked then plrclicked = true if trigger == nil then return end hideMap() PromptDuration( "Jump to " .. trigger, 3000 ) end else plrclicked = false end end end