Artisz Posted August 23, 2016 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.
idarrr Posted August 26, 2016 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.
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