Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local screenW, screenH = guiGetScreenSize()
- local walls = {}
- local number = 0
- if not getResourceFromName("freecam") then outputDebugString("Do działania zasobu jest wymagany freecam!", 1) end
- --Narzedzia menu
- BG = guiCreateWindow(0.89, 0.40, 0.09, 0.34, "Narzedzia", true)
- guiWindowSetMovable(BG, false)
- guiWindowSetSizable(BG, false)
- newObjectButton = guiCreateButton(0.14, 0.08, 0.76, 0.19, "Dodaj nowy obiekt", true, BG)
- editObjectButton = guiCreateButton(0.14, 0.30, 0.76, 0.19, "Edytuj obiekt", true, BG)
- textureButton = guiCreateButton(0.14, 0.51, 0.76, 0.19, "Teksturuj", true, BG)
- deleteButton = guiCreateButton(0.14, 0.72, 0.76, 0.19, "Usun", true, BG)
- --Obiekty menu
- objectMenu = guiCreateWindow(656, 900, 608, 134, "Wybierz obiekt", false)
- guiWindowSetMovable(objectMenu, false)
- guiWindowSetSizable(objectMenu, false)
- wallButton = guiCreateButton(0.03, 0.28, 0.22, 0.45, "Sciana", true, objectMenu)
- wallDoorButton = guiCreateButton(0.26, 0.28, 0.22, 0.45, "Sciana ze drzwiami", true, objectMenu)
- wallWindowButton = guiCreateButton(0.50, 0.28, 0.22, 0.45, "Sciana z oknem", true, objectMenu)
- stairsButton = guiCreateButton(0.74, 0.28, 0.22, 0.45, "Schody", true, objectMenu)
- guiSetVisible(BG, false)
- guiSetVisible(objectMenu, false)
- --Edytor Menu
- editObjectWindow = guiCreateWindow(0.02, 0.30, 0.16, 0.39, "Edytuj obiekt", true)
- guiWindowSetMovable(editObjectWindow, false)
- guiWindowSetSizable(editObjectWindow, false)
- modelBox = guiCreateEdit(119, 23, 79, 31, "", false, editObjectWindow)
- xBox = guiCreateEdit(0.09, 0.16, 0.25, 0.07, "", true, editObjectWindow)
- yBox = guiCreateEdit(119, 69, 79, 31, "", false, editObjectWindow)
- zBox = guiCreateEdit(0.66, 0.16, 0.25, 0.07, "", true, editObjectWindow)
- rxBox = guiCreateEdit(0.09, 0.30, 0.25, 0.07, "", true, editObjectWindow)
- ryBox = guiCreateEdit(119, 130, 79, 31, "", false, editObjectWindow)
- rzBox = guiCreateEdit(0.66, 0.30, 0.25, 0.07, "", true, editObjectWindow)
- saveButton = guiCreateButton(0.02, 0.88, 0.45, 0.09, "Ustaw", true, editObjectWindow)
- exitEditButton = guiCreateButton(0.52, 0.88, 0.45, 0.09, "Zamknij okno", true, editObjectWindow)
- guiSetVisible(editObjectWindow, false)
- function myInteriorCursor()
- if guiGetVisible(BG) == true then
- if isCursorShowing(localPlayer) == false then
- showCursor(true)
- else
- showCursor(false)
- end
- end
- end
- bindKey("f", "down", myInteriorCursor)
- function myInteriorOn()
- if guiGetVisible(BG) == false then
- guiSetVisible(BG, true)
- exports.freecam:setFreecamEnabled()
- setCameraTarget(localPlayer)
- else
- guiSetVisible(BG, false)
- guiSetVisible(objectMenu, false)
- guiSetVisible(editObjectWindow, false)
- showCursor(false)
- exports.freecam:setFreecamDisabled()
- setCameraTarget(localPlayer)
- end
- end
- addCommandHandler("myi", myInteriorOn)
- addEventHandler("onClientGUIClick", resourceRoot, function()
- if source == newObjectButton then
- if guiGetVisible(objectMenu) == false then
- guiSetVisible(objectMenu, true)
- else
- guiSetVisible(objectMenu, false)
- end
- elseif source == editObjectButton then
- if guiGetVisible(editObjectWindow) == false then
- guiSetVisible(editObjectWindow, true)
- else
- guiSetVisible(editObjectWindow, false)
- end
- elseif source == exitEditButton then
- guiSetVisible(editObjectWindow, false)
- elseif source == wallButton then
- number = number + 1
- local x,y,z = getElementPosition(localPlayer)
- walls[number] = createObject(14863, x,y+2,z, 0, 0, 0)
- elseif source == wallDoorButton then
- number = number + 1
- local x,y,z = getElementPosition(localPlayer)
- walls[number] = createObject(15027, x,y+2,z, 0, 0, 0)
- elseif source == saveButton then
- setElementPosition(walls[tonumber(guiGetText(modelBox))], guiGetText(xBox), guiGetText(yBox), guiGetText(zBox))
- setElementRotation(walls[tonumber(guiGetText(modelBox))], guiGetText(rxBox), guiGetText(ryBox), guiGetText(rzBox))
- elseif source == deleteButton then
- destroyElement(walls[tonumber(guiGetText(modelBox))])
- end
- end)
- addEventHandler("onClientClick", getRootElement(), function(button, state, absoluteX, absoluteY, worldX, worldY, worldZ, clickedElement)
- guiSetText(modelBox, "")
- for i,v in pairs(walls) do
- if clickedElement == walls[i] then
- local x,y,z = getElementPosition(walls[i])
- local rx,ry,rz = getElementRotation(walls[i])
- guiSetText(modelBox, i)
- guiSetText(xBox, x)
- guiSetText(yBox, y)
- guiSetText(zBox, z)
- guiSetText(rxBox, rx)
- guiSetText(ryBox, ry)
- guiSetText(rzBox, rz)
- end
- end
- end)
- addEventHandler("onClientRender", root, function()
- local getI = guiGetText(modelBox)
- if getI == "" then return else
- local x,y,z = getElementPosition(walls[tonumber(getI)])
- local rx,ry,rz = getElementRotation(walls[tonumber(getI)])
- if (getKeyState("num_8")) then
- setElementPosition(walls[tonumber(getI)], x+0.1, y, z)
- elseif (getKeyState("num_2")) then
- setElementPosition(walls[tonumber(getI)], x-0.1, y, z)
- elseif (getKeyState("num_4")) then
- setElementPosition(walls[tonumber(getI)], x, y-0.1, z)
- elseif (getKeyState("num_6")) then
- setElementPosition(walls[tonumber(getI)], x, y+0.1, z)
- elseif (getKeyState("num_add")) then
- setElementPosition(walls[tonumber(getI)], x, y, z+0.1)
- elseif (getKeyState("num_sub")) then
- setElementPosition(walls[tonumber(getI)], x, y, z-0.1)
- elseif (getKeyState("num_7")) then
- setElementRotation(walls[tonumber(getI)], rx+1, ry, rz)
- elseif (getKeyState("num_9")) then
- setElementRotation(walls[tonumber(getI)], rx-1, ry, rz)
- elseif (getKeyState("num_1")) then
- setElementRotation(walls[tonumber(getI)], rx, ry+1, rz)
- elseif (getKeyState("num_3")) then
- setElementRotation(walls[tonumber(getI)], rx, ry-1, rz)
- elseif (getKeyState("num_5")) then
- setElementRotation(walls[tonumber(getI)], rx, ry, rz+1)
- elseif (getKeyState("num_0")) then
- setElementRotation(walls[tonumber(getI)], rx, ry, rz-1)
- end
- end
- end)
- function dxMyInteriorDraw()
- getI = guiGetText(modelBox)
- if getI == "" then return else
- minx, miny, minz, mx, my, mz = getElementBoundingBox(walls[tonumber(getI)])
- local x,y,z = getElementPosition(walls[tonumber(getI)])
- local Line = 5
- dxDrawLine3D(minx+x, miny+y, mz+z, minx+x, my+y ,mz+z, tocolor(200, 0, 0, 180), Line, false, 0)
- dxDrawLine3D(minx+x, miny+y, mz+z, mx+x, miny+y ,mz+z, tocolor(200, 0, 0, 180), Line, false, 0)
- dxDrawLine3D(mx+x, my+y, mz+z, minx+x, my+y ,mz+z, tocolor(200, 0, 0, 180), Line, false, 0)
- dxDrawLine3D(mx+x, miny+y, mz+z, mx+x, my+y ,mz+z, tocolor(200, 0, 0, 180), Line, false, 0)
- dxDrawLine3D(minx+x, miny+y, minz+z, minx+x, my+y ,minz+z, tocolor(200, 0, 0, 180), Line, false, 0)
- dxDrawLine3D(minx+x, miny+y, minz+z, mx+x, miny+y ,minz+z, tocolor(200, 0, 0, 180), Line, false, 0)
- dxDrawLine3D(mx+x, my+y, minz+z, minx+x, my+y ,minz+z, tocolor(200, 0, 0, 180), Line, false, 0)
- dxDrawLine3D(mx+x, miny+y, minz+z, mx+x, my+y ,minz+z, tocolor(200, 0, 0, 180), Line, false, 0)
- dxDrawLine3D(minx+x,miny+y,minz+z,minx+x,miny+y,mz+z,tocolor(200, 0, 0, 180), Line, false, 0)
- dxDrawLine3D(mx+x,my+y,minz+z,mx+x,my+y,mz+z,tocolor(200, 0, 0, 180), Line, false, 0)
- dxDrawLine3D(mx+x,miny+y,mz+z, mx+x,miny+y,minz+z,tocolor(200, 0, 0, 180), Line, false, 0)
- dxDrawLine3D(minx+x,my+y,mz+z, minx+x,my+y,minz+z,tocolor(200, 0, 0, 180), Line, false, 0)
- end
- end
- addEventHandler("onClientRender", root, dxMyInteriorDraw)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement