Jump to content

globalelite

Members
  • Posts

    11
  • Joined

  • Last visited

globalelite's Achievements

Square

Square (6/54)

0

Reputation

  1. Всем привет. Как сделать, чтобы объект можно было вращать и перемещать с использованием курсора мыши и клавиш на клавиатуре. function updatePos() local object = tempOb[localPlayer] if object then guiSetVisible(baseCPanel.window[1], false) local screenX, screenY = guiGetScreenSize() local x,y = getCursorPosition() local x,y = x*screenX,y*screenY local sX,sY,sZ = getWorldFromScreenPosition(x,y,0) local sX2,sY2,sZ2 = getWorldFromScreenPosition(x,y,20) local hit,oX,oY,oZ = processLineOfSight(sX,sY,sZ,sX2,sY2,sZ2,true,false,false,true,false,true,false,false,object) if not hit then return end setElementPosition(object,oX,oY,oZ + getElementDistanceFromCentreOfMassToBaseOfModel(object)) end end local rotationAxis = "z" function setRotationOfObject(button,state) local object = tempOb[localPlayer] if button == "arrow_u" or button == "arrow_d" then if state then rotationAxis="y" else rotationAxis="z" end elseif button == "arrow_r" or button == "arrow_l" then if state then rotationAxis="x" else rotationAxis="z" end end if not state then return end if button == "mouse_wheel_up" or button == "pgup" then if rotationAxis == "z" then local x,y,z = getElementRotation(object) setElementRotation(object,x,y,z+5) elseif rotationAxis == "y" then local x,y,z = getElementRotation(object) setElementRotation(object,x,y+5,z) elseif rotationAxis == "x" then local x,y,z = getElementRotation(object) setElementRotation(object,x+5,y,z) end elseif button == "mouse_wheel_down" or button == "pgdn" then if rotationAxis == "z" then local x,y,z = getElementRotation(object) setElementRotation(object,x,y,z-5) elseif rotationAxis == "y" then local x,y,z = getElementRotation(object) setElementRotation(object,x,y-5,z) elseif rotationAxis == "x" then local x,y,z = getElementRotation(object) setElementRotation(object,x-5,y,z) end end end Если я добавлю примерно такой код: elseif button == "num_2" then local x,y,z = getElementPosition(object) setElementPosition(object,x,y,z+1) То появляется вот такая проблема: когда я жму num2, объект поднимается вверх, но так как в этом месте стоит курсор, объект принимает позицию курсора. Как это можно исправить? Вот видео:
  2. Спасибо за ответ. Есть какие-то скрипты для редактирования? Использовал guieditor, но там вроде нет возможности создания кнопок в красивом оформлении В guieditor как раз есть dxDrawRectangle, dxDrawText, onClientClick
  3. Why?Remove programms for convert from DayZ SA. All servers will be the same
  4. No, in debugscript don't was errors
  5. Hello guys. Why I can't connect to any server with anticheat?Always server kick me with reason: "Modifed *any_file.txd* in gta3.img not allowed"! I reinstall GTA:SA and MTA, but problem not fixed. GTA without mods p.s. sorry for my english.
  6. Hello everyone. I did the animation for a system of ladders (author: PrettySweetie), but when I climb up or down the stairs, then there is no animation. What is wrong in the code? dff = engineLoadDFF ( "ladder.dff", 1428 ) engineReplaceModel ( dff, 1428 ) inladder = false setElementFrozen ( localPlayer, false) setPedAnimation ( localPlayer ) ladder_id = 0 current_ladder = nil inladder_down = false going_up = false ladder_x, ladder_y, ladder_z = 0,0,0 ladder_rz = 0 child_ladder = nil launch_available = false function updateCamera () if inladder and launch_available then local state = getControlState ( "forwards" ) local state_back = getControlState ( "backwards" ) if state and not going_down then setElementCollisionsEnabled ( localPlayer, false ) local x,y,z = getElementPosition ( localPlayer ) setElementPosition ( localPlayer, ladder_x, ladder_y,z+0.05) setPedAnimation( localPlayer,"PED","FightShF", -1, true, false, true) local rx,ry,rz = getElementRotation ( localPlayer ) setElementRotation ( localPlayer, rx,ry, ladder_rz) going_up = true return true elseif state_back then local x,y,z = getElementPosition ( localPlayer ) local z_ground = getGroundPosition ( x,y,z ) if z-z_ground >= 2 then setElementCollisionsEnabled ( localPlayer, false ) --setElementCollidableWith ( localPlayer, current_ladder, false ) local pos = setElementPosition ( localPlayer, ladder_x, ladder_y,z-0.05) setPedAnimation( localPlayer,"PED","FightShF", -1, true, false, true) local rx,ry,rz = getElementRotation ( localPlayer ) setElementRotation ( localPlayer, rx,ry, ladder_rz) wasClimbing = true return true else inladder = false going_down = false going_up = false current_ladder = nil ladder_id = 0 child_ladder = nil setElementCollisionsEnabled ( localPlayer, true ) end end setElementCollisionsEnabled ( localPlayer, true ) end end addEventHandler ( "onClientRender", root, updateCamera ) function onClientColShapeHit( theElement, matchingDimension ) --outputChatBox ( "enter: "..tostring (getElementData ( source, "ladder_id"))) if ( theElement == getLocalPlayer() ) then if getElementData ( source, "ladder") then inladder = true ladder_id = getElementData ( source, "ladder_id" ) or 0 current_ladder = source local posX, posY, posZ = getElementPosition ( source ) local rotation = getElementData ( source, "ladder_rz") posX = posX + math.sin(math.rad(rotation)) * 0.2 posY = posY - math.cos(math.rad(rotation)) * 0.2 ladder_x, ladder_y = posX, posY ladder_z = posZ going_down = false ladder_rz = -getElementData ( source, "ladder_rz") elseif getElementData ( source, "ladder_down") and ent_avail then local parent = getElementData ( source, "ladder_parent" ) setElementCollidableWith ( localPlayer, parent, false ) if not going_up then going_down = true inladder = true ladder_id = getElementData ( source, "ladder_id" ) or 0 current_ladder = parent local posX, posY, posZ = getElementPosition ( parent ) local rotation = getElementData ( parent, "ladder_rz ") posX = posX - math.sin(math.rad(rotation)) * 0.2 posY = posY + math.cos(math.rad(rotation)) * 0.2 ladder_x, ladder_y = posX, posY ladder_z = posZ child_ladder = source ladder_rz = -getElementData ( parent, "ladder_rz ") end end end end addEventHandler("onClientColShapeHit",getRootElement(),onClientColShapeHit) function onClientColShapeLeave (theElement) if ( theElement == getLocalPlayer() and getElementData ( source, "ladder") and inladder ) then local x,y,z = getElementPosition ( localPlayer ) setTimer ( checkStillInLadder, 200, 1, ladder_id,z-1.5) going_down = false --elseif theElement == getLocalPlayer() and getElementData ( source, "ladder_down" )and inladder and not isElementWithinColShape (localPlayer, current_ladder ) end end addEventHandler("onClientColShapeLeave",getRootElement(),onClientColShapeLeave) function checkStillInLadder ( lad_id, posZ ) if lad_id == ladder_id and not isElementWithinColShape (localPlayer, current_ladder ) then inladder = false going_down = false going_up = false child_ladder = nil setElementCollisionsEnabled ( localPlayer, true ) if ladder_z < posZ then setElementFrozen ( localPlayer, true ) triggerServerEvent ("playFinishClimbing", localPlayer) ent_avail = false setTimer ( function () ent_avail = true end, 3000, 1) end end end function displayLoadedRes ( res ) for i, v in ipairs ( getElementsByType ( 'short_lad')) do local rx,ry,rz = tonumber(getElementData (v, "rotX")), tonumber(getElementData (v, "rotY")), tonumber(getElementData (v, "rotZ")) createObject ( 1428, tonumber(getElementData (v, "posX")), tonumber(getElementData (v, "posY")), tonumber(getElementData (v, "posZ")), rx,ry,rz ) --local tube = createColTube (tonumber(getElementData (v, "posX")), tonumber(getElementData (v, "posY")), tonumber(getElementData (v, "posZ"))-1.5, 0.5, 3) local tube = createColTube (tonumber(getElementData (v, "posX")), tonumber(getElementData (v, "posY")), tonumber(getElementData (v, "posZ"))-1.5, 0.5, 3) local tube_down = createColTube (tonumber(getElementData (v, "posX")), tonumber(getElementData (v, "posY")), tonumber(getElementData (v, "posZ"))+1.5, 0.5, 1) setElementData ( tube, "ladder", true) setElementData ( tube, "ladder_rz", rz) setElementData ( tube_down, "ladder_down", true) setElementData ( tube, "ladder_id", i) setElementData ( tube_down, "ladder_id", i) setElementData ( tube_down, "ladder_parent", tube) end end addEventHandler ( "onClientResourceStart", getResourceRootElement(), displayLoadedRes ) triggerServerEvent ("askLaunchAvailC", localPlayer) function recieveLaunchAvailC(avail) launch_available = avail end addEvent( "recieveLaunchAvail", true ) addEventHandler( "recieveLaunchAvail", getRootElement(), recieveLaunchAvailC )
  7. You just translate russian tutorials, add in gamemode and selling this. p.s. sry for my english
  8. Всем привет. Кто нибудь знает, возможно ли убрать такой баг: если ставить объекты в мап едиторе где нибудь далеко от Сан Андреаса (далеко в море), то можно будет сквозь объекты смотреть поворачивая камеру.
×
×
  • Create New...