Artisz Posted August 23, 2016 Share Posted August 23, 2016 Hi! I want to create a mechanic system. When I clicked the vehicle, it is show me a panel, with the door/panel states, and if it isn't 0, then it is red. When I click the red dxdraw, he repair the element(this part is the problem). I have two problems. The first, if I do this, that the repair is on client side, all players see the repaired element, or they still see broken? The second problem is that I can't retrieves the clicked vehicle at the part, when I repair. I can do it when I check the broken elements, It is correct, but another function I can't do it. I try to save elementdata, but it's save this: userdata: 0000277 And don't repair the clicked element. Here is the code: First, the clicking on vehicle, client side: function jarmuKlikk ( button, state, absoluteX, absoluteY, worldX, worldY, worldZ, clickedElement ) if (getElementType( clickedElement ) == "vehicle") and (button == "right" and state == "up") then triggerServerEvent("SzereloPanel",root,localPlayer,clickedElement) end end addEventHandler ( "onClientClick", root, jarmuKlikk) Then the triggered event on server side: addEvent("SzereloPanel",true) addEventHandler("SzereloPanel",root,function(jatekos, clickedElement) if(getPlayerFaction(jatekos) == 2) then local posX, posY, posZ = getElementPosition( clickedElement ) local jarmuSphere = createColSphere( posX, posY, posZ, 5) if(isElementWithinColShape ( jatekos, jarmuSphere )) then triggerClientEvent("szereloPanelMegjelenit",getRootElement(), clickedElement) end end end) Again client side, this is the last. And here is the problem too, I think addEvent("szereloPanelMegjelenit",true) addEventHandler("szereloPanelMegjelenit",root, function(clickedElement) nev = getVehicleName ( clickedElement ) setElementData(localPlayer, "jarmureklikkelt", clickedElement) panel0 = getVehiclePanelState(clickedElement, 0) or 0 panel1 = getVehiclePanelState(clickedElement, 1) or 0 panel2 = getVehiclePanelState(clickedElement, 2) or 0 panel3 = getVehiclePanelState(clickedElement, 3) or 0 panel4 = getVehiclePanelState(clickedElement, 4) or 0 panel5 = getVehiclePanelState(clickedElement, 5) or 0 panel6 = getVehiclePanelState(clickedElement, 6) or 0 door0 = getVehicleDoorState(clickedElement, 0) door1 = getVehicleDoorState(clickedElement, 1) door2 = getVehicleDoorState(clickedElement, 2) door3 = getVehicleDoorState(clickedElement, 3) door4 = getVehicleDoorState(clickedElement, 4) door5 = getVehicleDoorState(clickedElement, 5) --outputChatBox(tostring(door3)) triggerEvent("PanelRender",localPlayer,clickedElement) addEventHandler("onClientRender", getRootElement(), PanelRender) end) function PanelRender(clickedElement) dxDrawRectangle(screenW * 0.2760, screenH * 0.2253, screenW * 0.4480, screenH * 0.4427, tocolor(0, 0, 0, 200), false) dxDrawRectangle(screenW * 0.2760, screenH * 0.6927, screenW * 0.4480, screenH * 0.0638, tocolor(0, 0, 0, 200), false) dxDrawRectangle(screenW * 0.2760, screenH * 0.2201, screenW * 0.4480, screenH * 0.0052, tocolor(219, 102, 7, 200), false) dxDrawImage(screenW * 0.4898, screenH * 0.1758, screenW * 0.0271, screenH * 0.0482, "kepek/haromszog.png", 0, 0, 0, tocolor(219, 102, 7, 200), false) dxDrawText(tostring(nev), screenW * 0.2760, screenH * 0.1081, screenW * 0.7240, screenH * 0.1693, tocolor(255, 255, 255, 255), 2.10, "default", "center", "center", false, false, false, false, false) dxDrawRectangle(screenW * 0.2796, screenH * 0.6979, screenW * 0.1384, screenH * 0.0534, tocolor(0, 0, 0, 190), false) dxDrawRectangle(screenW * 0.4305, screenH * 0.6979, screenW * 0.1384, screenH * 0.0534, tocolor(0, 0, 0, 190), false) dxDrawRectangle(screenW * 0.5820, screenH * 0.6979, screenW * 0.1384, screenH * 0.0534, tocolor(0, 0, 0, 190), false) dxDrawText("Ajtók", screenW * 0.2796, screenH * 0.6979, screenW * 0.4180, screenH * 0.7513, tocolor(255, 255, 255, 255), 1.70, "default", "center", "center", false, false, false, false, false) dxDrawText("Panelek", screenW * 0.4305, screenH * 0.6979, screenW * 0.5688, screenH * 0.7513, tocolor(255, 255, 255, 255), 1.70, "default", "center", "center", false, false, false, false, false) dxDrawText("Kerekek", screenW * 0.5820, screenH * 0.6979, screenW * 0.7204, screenH * 0.7513, tocolor(255, 255, 255, 255), 1.70, "default", "center", "center", false, false, false, false, false) if(door0 == 0) then dxDrawRectangle(screenW * 0.3023, screenH * 0.2682, screenW * 0.1633, screenH * 0.0638, tocolor(0, 189, 0, 170) ) else dxDrawRectangle(screenW * 0.3023, screenH * 0.2682, screenW * 0.1633, screenH * 0.0638, tocolor(189, 0, 0, 170) ) end if(door1 == 0) then dxDrawRectangle(screenW * 0.3023, screenH * 0.3932, screenW * 0.1633, screenH * 0.0638, tocolor(0, 189, 0, 170) ) else dxDrawRectangle(screenW * 0.3023, screenH * 0.3932, screenW * 0.1633, screenH * 0.0638, tocolor( 189, 0, 0, 170) ) end if(door2 == 0) then dxDrawRectangle(screenW * 0.3023, screenH * 0.5208, screenW * 0.1633, screenH * 0.0638, tocolor(0, 189, 0, 170) ) else dxDrawRectangle(screenW * 0.3023, screenH * 0.5208, screenW * 0.1633, screenH * 0.0638, tocolor(189, 0, 0, 170) ) end if(door3 == 0) then dxDrawRectangle(screenW * 0.5344, screenH * 0.2695, screenW * 0.1633, screenH * 0.0638, tocolor(0, 189, 0, 170) ) else dxDrawRectangle(screenW * 0.5344, screenH * 0.2695, screenW * 0.1633, screenH * 0.0638, tocolor(189, 0, 0, 170) ) end if(door4 == 0) then dxDrawRectangle(screenW * 0.5344, screenH * 0.3932, screenW * 0.1633, screenH * 0.0638, tocolor(0, 189, 0, 170) ) else dxDrawRectangle(screenW * 0.5344, screenH * 0.3932, screenW * 0.1633, screenH * 0.0638, tocolor(189, 0, 0, 170) ) end if(door5 == 0) then dxDrawRectangle(screenW * 0.5344, screenH * 0.5208, screenW * 0.1633, screenH * 0.0638, tocolor(0, 189, 0, 170) ) else dxDrawRectangle(screenW * 0.5344, screenH * 0.5208, screenW * 0.1633, screenH * 0.0638, tocolor(189, 0, 0, 170) ) end dxDrawText("Motorháztető", screenW * 0.3016, screenH * 0.2669, screenW * 0.4656, screenH * 0.3320, tocolor(255, 255, 255, 255), 1.50, "default", "center", "center", false, false, false, false, false) dxDrawText("Csomagtartó", screenW * 0.3016, screenH * 0.3919, screenW * 0.4656, screenH * 0.4570, tocolor(255, 255, 255, 255), 1.50, "default", "center", "center", false, false, false, false, false) dxDrawText("Bal első", screenW * 0.3016, screenH * 0.5195, screenW * 0.4656, screenH * 0.5846, tocolor(255, 255, 255, 255), 1.50, "default", "center", "center", false, false, false, false, false) dxDrawText("Jobb hátsó", screenW * 0.5337, screenH * 0.5195, screenW * 0.6977, screenH * 0.5846, tocolor(255, 255, 255, 255), 1.50, "default", "center", "center", false, false, false, false, false) dxDrawText("Bal hátsó", screenW * 0.5337, screenH * 0.3932, screenW * 0.6977, screenH * 0.4583, tocolor(255, 255, 255, 255), 1.50, "default", "center", "center", false, false, false, false, false) dxDrawText("Jobb első", screenW * 0.5337, screenH * 0.2682, screenW * 0.6977, screenH * 0.3333, tocolor(255, 255, 255, 255), 1.50, "default", "center", "center", false, false, false, false, false) --if(menu == 1) then if getKeyState("mouse1") == true then outputChatBox("Leütötte a bal klikket!") local cx,cy = getCursorPos() local jarmu = getElementData(localPlayer, "jarmureklikkelt") outputChatBox("Lekérte a járművet, ami:"..tostring(jarmu)) if isInBox( cx, cy, screenW * 0.3016, screenW * 0.4656, screenH * 0.2669, screenH * 0.3320 ) then setVehicleDoorState( jarmu, 0, 0 ) elseif isInBox( cx, cy, screenW * 0.3016, screenW * 0.4656, screenH * 0.3919, screenH * 0.4570 ) then setVehicleDoorState( jarmu, 1, 0 ) elseif isInBox( cx, cy, screenW * 0.3016, screenW * 0.4656,screenH * 0.5195, screenH * 0.5846 ) then setVehicleDoorState( jarmu, 2, 0 ) elseif isInBox( cx, cy, screenW * 0.5337, screenW * 0.6977, screenH * 0.5195, screenH * 0.5846 ) then setVehicleDoorState( jarmu, 3, 0 ) elseif isInBox( cx, cy, screenW * 0.5337, screenW * 0.6977, screenH * 0.3932, screenH * 0.4583 ) then setVehicleDoorState( jarmu, 4, 0 ) elseif isInBox( cx, cy, screenW * 0.5337, screenW * 0.6977, screenH * 0.2682, screenH * 0.3333 ) then setVehicleDoorState( jarmu, 5, 0 ) else outputChatBox("Egyikre se ment rá!") end end --end --dxDrawText(tostring(door3), screenW * 0.4078, screenH * 0.3177, screenW * 0.5908, screenH * 0.3828,tocolor ( 255, 255, 255, 255 ), 1.7,"default","center","center",false,false,false,true) end If I change here: "setVehicleDoorState( jarmu, 0, 0 )" the "jarmu" to "clickedElement", I got a warning, that in argument 1, got nil. Link to comment
idarrr Posted August 26, 2016 Share Posted August 26, 2016 On line 21 you can simply use PanelRender(clickedElement) then try setVehicleDoorState(clickedElement, 0, 0 ) And also, if you repair Vehicle on Client Side, other players still see it broken. Link to comment
Artisz Posted August 27, 2016 Author Share Posted August 27, 2016 Thanks! It's working! Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now