Jump to content

Attaching object to vehicle--help


denny199

Recommended Posts

Posted

Hi there

I've just has got getted an idea a automatic pilot =D but I IDK how to attach a object to an car: needs to add it server side or else i can't move it ;):oops:

Server Side:

vliegtuigenn = { [592]=true, [511]=true, [512]=true, [593]=true, [520]=true, [553]=true, [593]=true, [476]=true, [519]=true, [460]=true, [513]=true, [577]=true  } 
  
addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), 
function () 
for i,v in pairs(getElementsByType("player")) do 
bindKey(v,"b","down",autopiloot) 
end 
end) 
  
  
function autopiloot ( player ) 
    local vliegtuig = getPedOccupiedVehicle(player) 
    if ( vliegtuigenn[getElementModel(vliegtuig)] ) then 
        triggerClientEvent ( "deGui", getRootElement(), vliegtuigen ) 
    end 
end 
  
function moveLV ( player ) 
    local car = getPedOccupiedVehicle(player) 
 local object = createObject ( 980, 0, 0, 3 ) 
attachElements ( object, car ) 
    moveObject ( object, 10000, 0, 0, 6 ) 
end 
addEvent( "LV", true ) 
addEventHandler( "LV", getRootElement(), moveLV ) 

Client Side:

GUIEditor_Window = {} 
GUIEditor_Button = {} 
GUIEditor_Memo = {} 
  
GUIEditor_Window[1] = guiCreateWindow(206,160,216,320,"Auto piloot",false) 
guiWindowSetMovable(GUIEditor_Window[1],false) 
guiWindowSetSizable(GUIEditor_Window[1],false) 
guiSetVisible (GUIEditor_Window[1],false) 
GUIEditor_Button[1] = guiCreateButton(15,32,192,29,"San Fiero Airport",false,GUIEditor_Window[1]) 
GUIEditor_Button[2] = guiCreateButton(15,80,192,29,"Las Venturas Airport",false,GUIEditor_Window[1]) 
GUIEditor_Button[3] = guiCreateButton(15,129,192,29,"Verdant Meadows Airport",false,GUIEditor_Window[1]) 
GUIEditor_Button[4] = guiCreateButton(15,178,192,29,"Los Santos Airport",false,GUIEditor_Window[1]) 
GUIEditor_Memo[1] = guiCreateMemo(13,224,194,87,"\nDeze Autopiloot script is gemaakt bij [DenR]Danny \n Heb veel plezier ermee \n zitten er bugs in gebruik dan /report",false,GUIEditor_Window[1]) 
  
  
  
function deGui() 
guiSetVisible (GUIEditor_Window[1],true) 
showCursor(true) 
end 
addEvent("deGui",true) 
addEventHandler("deGui",getRootElement(),deGui) 
  
addEvent("deGuiWeg",true) 
addEventHandler("deGuiWeg",getRootElement(), 
function () 
guiSetVisible(GUIEditor_Window[1],false) 
showCursor (false) 
end) 
  
function move () 
    triggerServerEvent ( "LV", getLocalPlayer(), "LV" )  
end 
  
function clicked (player, vehicle) 
   if (source == GUIEditor_Button[2]) then 
player = getLocalPlayer () 
setTimer ( move, 1000, 1 ) 
   guiSetVisible (GUIEditor_Window[1],false) 
   showCursor (false) 
   outputChatBox ("Auto Piloot: Oke, U wordt naar Las Venturas Airport gebracht",225,225,0) 
   elseif (source == GUIEditor_Button[1]) then 
   outputChatBox ("Auto Piloot: Oke, U wordt naar San Fiero Airport gebracht",225,225,0) 
      guiSetVisible (GUIEditor_Window[1],false) 
   showCursor (false) 
   elseif (source == GUIEditor_Button[3]) then 
   outputChatBox ("Auto Piloot: Oke, U wordt naar Verdant Meadows Airport gebracht",225,225,0) 
        guiSetVisible (GUIEditor_Window[1],false) 
   showCursor (false) 
   elseif (source == GUIEditor_Button[4]) then 
   outputChatBox ("Auto Piloot: Oke, U wordt naar Los Santos Airport gebracht",225,225,0) 
      guiSetVisible (GUIEditor_Window[1],false) 
   showCursor (false) 
  end 
end 
addEventHandler("onClientGUIClick",getRootElement(), clicked ) 

Posted (edited)

server:

vliegtuigenn = { [592]=true, [511]=true, [512]=true, [593]=true, [520]=true, [553]=true, [593]=true, [476]=true, [519]=true, [460]=true, [513]=true, [577]=true  } 
  
addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), 
function () 
for i,v in pairs(getElementsByType("player")) do 
bindKey(v,"b","down",autopiloot) 
end 
end) 
  
  
function autopiloot ( player ) 
    local vliegtuig = getPedOccupiedVehicle(player) 
    if ( vliegtuigenn[getElementModel(vliegtuig)] ) then 
        triggerClientEvent ( "deGui", getRootElement(), vliegtuigen ) 
    end 
end 
  
function moveLV ( ) 
 local car = getPedOccupiedVehicle ( source ) 
 local object = createObject ( 980, 0, 0, 3 ) 
attachElements ( object, car ) 
    moveObject ( object, 10000, 0, 0, 6 ) 
end 
addEvent( "LV", true ) 
addEventHandler( "LV", getRootElement(), moveLV ) 

client:

GUIEditor_Window = {} 
GUIEditor_Button = {} 
GUIEditor_Memo = {} 
  
GUIEditor_Window[1] = guiCreateWindow(206,160,216,320,"Auto piloot",false) 
guiWindowSetMovable(GUIEditor_Window[1],false) 
guiWindowSetSizable(GUIEditor_Window[1],false) 
guiSetVisible (GUIEditor_Window[1],false) 
GUIEditor_Button[1] = guiCreateButton(15,32,192,29,"San Fiero Airport",false,GUIEditor_Window[1]) 
GUIEditor_Button[2] = guiCreateButton(15,80,192,29,"Las Venturas Airport",false,GUIEditor_Window[1]) 
GUIEditor_Button[3] = guiCreateButton(15,129,192,29,"Verdant Meadows Airport",false,GUIEditor_Window[1]) 
GUIEditor_Button[4] = guiCreateButton(15,178,192,29,"Los Santos Airport",false,GUIEditor_Window[1]) 
GUIEditor_Memo[1] = guiCreateMemo(13,224,194,87,"\nDeze Autopiloot script is gemaakt bij [DenR]Danny \n Heb veel plezier ermee \n zitten er bugs in gebruik dan /report",false,GUIEditor_Window[1]) 
  
  
  
function deGui() 
guiSetVisible (GUIEditor_Window[1],true) 
showCursor(true) 
end 
addEvent("deGui",true) 
addEventHandler("deGui",getRootElement(),deGui) 
  
addEvent("deGuiWeg",true) 
addEventHandler("deGuiWeg",getRootElement(), 
function () 
guiSetVisible(GUIEditor_Window[1],false) 
showCursor (false) 
end) 
  
function move () 
    triggerServerEvent ( "LV", getLocalPlayer()) 
end 
  
function clicked (button) 
   if (source == GUIEditor_Button[2]) then 
setTimer ( move, 1000, 1 ) 
   guiSetVisible (GUIEditor_Window[1],false) 
   showCursor (false) 
   outputChatBox ("Auto Piloot: Oke, U wordt naar Las Venturas Airport gebracht",225,225,0) 
   elseif (source == GUIEditor_Button[1]) then 
   outputChatBox ("Auto Piloot: Oke, U wordt naar San Fiero Airport gebracht",225,225,0) 
      guiSetVisible (GUIEditor_Window[1],false) 
   showCursor (false) 
   elseif (source == GUIEditor_Button[3]) then 
   outputChatBox ("Auto Piloot: Oke, U wordt naar Verdant Meadows Airport gebracht",225,225,0) 
        guiSetVisible (GUIEditor_Window[1],false) 
   showCursor (false) 
   elseif (source == GUIEditor_Button[4]) then 
   outputChatBox ("Auto Piloot: Oke, U wordt naar Los Santos Airport gebracht",225,225,0) 
      guiSetVisible (GUIEditor_Window[1],false) 
   showCursor (false) 
  end 
end 
addEventHandler("onClientGUIClick",getRootElement(), clicked ) 

Edited by Guest
Posted

It's not moving, because, it's attached to the car.

If it's not attached it will move.

The way you are making this isn't working.

I tried doing that before it didn't work.

Posted

if you cant move object when its attached, then you can use:

  
addEventHandler("onClientRender", getRootElement(), 
function() 
local objX, objY, objZ = getElementPosition(theObject) 
local vehicle = getPedOccupiedVehicle(theVehicle) 
setElementPosition(theVehicle, objX, objY, objZ) 
end) 
  

...instead of attachElements

btw, am i the only on who cant tab here?

Posted
if you cant move object when its attached, then you can use:
  
addEventHandler("onClientRender", getRootElement(), 
function() 
local objX, objY, objZ = getElementPosition(theObject) 
local vehicle = getPedOccupiedVehicle(theVehicle) 
setElementPosition(theVehicle, objX, objY, objZ) 
end) 
  

So... and how can I do this? :P I'm not realy good with onCleintRender, I never did it before ;)

so please help

Posted

After the moveObject function in your server sided script, add a triggerClientEvent to add onClientRender event for the player, clientsided. also add a setTimer after moveObject servesided to remove the event handler for the player.. so that the vehicle is not attached to the vehicle anymore...

example:

  
-- server sided 
function moveLV ( ) 
 local car = getPedOccupiedVehicle ( source ) 
 local object = createObject ( 980, 0, 0, 3 ) 
    moveObject ( object, 10000, 0, 0, 6 ) 
triggerClientEvent("onRequestChangeAttachementState", source, true, object) 
setTimer(removeAttachement, 10000, 1, source) 
end 
  
function removeAttachement(thePlayer) 
triggerClientEvent("onRequestChangeAttachementState", thePlayer, false) 
end 
  
--client sided 
local attachSource = nil 
addEvent("onRequestChangeAttachementState", true) 
addEventHandler("onRequestChangeAttachementState", getRootElement(), 
function(attach, theObject) 
if(source ~= getLocalPlayer())then return end 
attachSource = theObject 
if(attach)then 
addEventHandler("onClientRender", getRootElement(), attach) 
else 
removeEventHandler("onClientRender", getRootElement(), attach) 
end 
end) 
  
function attach() 
local vehicle = getPedOccupiedVehicle(getLocalPlayer()) 
if(vehicle == false)then return end 
local posX, posY, posZ = getElementPosition(attachSource) 
setElementPosition(vehicle, posX, posY, posZ) 
end 
  

i cant press tab here so it may be hard to read the code..

Posted

Tnx Arezu and the other, I had a mistake in attachElements, I need attach the vehicle to the object, now it ill move correct but tnx arezu for you fantastic help and the others ofcourse.

Regards,

Danny!

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...