Szerző Téma: Jármű alkatrészei  (Megtekintve 1899 alkalommal)

Nem elérhető id100

  • 903
    • Profil megtekintése
Jármű alkatrészei
« Dátum: 2016. Március 31. - 20:37:47 »
0
Sziasztok!
Hogyan lehetne a jármű egyik alkatrészét clientEvent-tel hozzácsatolni bone_attach-al a carry animhoz?? (szerver oldali parancs)
Most pont a jobb-első ajtóra gondolok, mivel ugye az a door_rf_dummy onnan kiindulva bármelyik alkatrészt rácsatolhatom a játékosra.
Valaki segítene?
(Legalább egy kiindulási pont, egy funkció kéne a jobb ajtó játékosra csatolásához :) )
E:
Találtam egy getVehicleComponents(...) funkciót, de nem nagyon tudok benne eligazodni, jó lenne ha valaki segítene a jobb első ajtót felcsatolni vagy valahogy azt mint egy element használni :)
« Utoljára szerkesztve: 2016. Április 01. - 09:38:35 írta id100 »

Nem elérhető Tarack

  • 177
    • Profil megtekintése
Jármű alkatrészei
« Válasz #1 Dátum: 2016. Április 01. - 10:11:32 »
0
Legkönnyeb dolog ha egy járművet attacholsz a kézbe,aminek minden componentjét letiltod setComponentVisible-vel kivéve azt az 1-et nem ami neked kell. meg ugye a collisionját is kikapcsolod hogy átlehessen menni rajta,stb. És utána az atacholásnál mozgatod a koordinátákkal. Így a legegyszerűbb. :)

Nem elérhető id100

  • 903
    • Profil megtekintése
Jármű alkatrészei
« Válasz #2 Dátum: 2016. Április 01. - 10:47:38 »
0
Az a baj, hogy egy szerelő-rendszerről beszélünk aminél ugye ott kell hogy maradjon az alap jármű a helyén.
Ha meg minden kocsinál amit javít újra kell csinálnom az rengeteg idő.
pl ha egy infernus-t javít ne emperor ajtót adjon, remélem érted :D

Nem elérhető Tarack

  • 177
    • Profil megtekintése
Jármű alkatrészei
« Válasz #3 Dátum: 2016. Április 01. - 11:45:46 »
0
Mikor szereli lekéred a jármű modeljét amit szerel. Készítesz egy járművet amibe nem lehet beszálni,col ját letiltod, és setElementModel-lel beállítod a lekért modellt,amit szerel.  See-mta-n is így van megoldva :)
így még mindig a legkönnyebb :)
« Utoljára szerkesztve: 2016. Április 01. - 11:47:25 írta Tarack »

Nem elérhető id100

  • 903
    • Profil megtekintése
Jármű alkatrészei
« Válasz #4 Dátum: 2016. Április 01. - 11:47:10 »
0
Konkrét funkciót adnál :D?

Nem elérhető Tarack

  • 177
    • Profil megtekintése
Jármű alkatrészei
« Válasz #5 Dátum: 2016. Április 01. - 11:51:10 »
0

function car ()
local veh = getElementsByType(\"vehicle\",getRootElement(),true)
for k,v in ipairs(veh) do
local x,y,z = getElementPosition(localPlayer)
local x2,y2,z2 = getElementPosition(v)
if getDistanceBetweenPoints3D(x,y,z,x2,y2,z2) <= 2 then
-- ide beírod mittomén
local px,py,pz = getElementPosition(localPlayer)
-- ide jöhet az attach vagy amit akarsz :) --
local dummy = createVehicle(getElementModel(v),px,py,pz)
setElementCollisionsEnabled(dummy,false)
-- ide a komponentes dolog amit a v-nek tilts le :)
end
end
end
-- a car function-t bármivel meghívhatod :) --
-- ez egy kliens oldali példa :) --
« Utoljára szerkesztve: 2016. Április 01. - 11:53:08 írta Tarack »

Nem elérhető id100

  • 903
    • Profil megtekintése
Jármű alkatrészei
« Válasz #6 Dátum: 2016. Április 01. - 11:53:06 »
0
Azt hiszem ha így tiltom le akkor nem a kezébe lesz a kijelölt alkatrész :D

Nem elérhető Tarack

  • 177
    • Profil megtekintése
Jármű alkatrészei
« Válasz #7 Dátum: 2016. Április 01. - 11:53:57 »
0
a példában a dummy-nak tiltsd le a componenteket egy másik functionban vagy abban amit irtam.
és csak azt engedélyezd amit akarsz látni a kézben,és amit irtam segítségben oda írd bele az attachokat :)

Dupla hozzászólás automatikusan összefûzve. ( 2016. Április 01. - 11:55:08 )

Csak ezzel meg az a gond hogy minden alaktrészre kel irni egy ilyen functiont csak más component letiltásokkal. Én így oldanám meg és igy is oldottam meg a szerveremen :)

Nem elérhető id100

  • 903
    • Profil megtekintése
Jármű alkatrészei
« Válasz #8 Dátum: 2016. Április 01. - 11:56:14 »
0
Felvennél skypen?
zola9987
Nem kell beszélnünk, csak sokkal gyorsabb írogatni :)

Dupla hozzászólás automatikusan összefûzve. ( 2016. Április 01. - 15:36:25 )

Nem működik nálam.
A következőt próbáltam:
 

function car ()
local veh = getElementsByType(\"vehicle\",getRootElement(),true)
for k,v in ipairs(veh) do
local x,y,z = getElementPosition(localPlayer)
local x2,y2,z2 = getElementPosition(v)
if getDistanceBetweenPoints3D(x,y,z,x2,y2,z2) <= 2 then
 
local px,py,pz = getElementPosition(localPlayer)
local dummyx = createVehicle(getElementModel(v),px,py,pz)
setElementCollisionsEnabled(dummyx,false)
local compok = getVehicleComponents(dummyx)
for k,v in ipairs(compok) do
setVehicleComponentVisible(dummyx, k, false)
end
setVehicleComponentVisible(exmp, \"door_rr_dummy\", true)
setVehicleComponentVisible(v, \"door_rr_dummy\", false)
exports.bone_attach:attachElementToBone(dummyx, localPlayer, 12, 0, 0, 0, 0, 180, 0)
end
end
end

 
( A bug: Az egész autót rám attacholja, nem tünnek el az alkatrészek )
« Utoljára szerkesztve: 2016. Április 01. - 15:36:25 írta id100 »

Nem elérhető Tarack

  • 177
    • Profil megtekintése
Jármű alkatrészei
« Válasz #9 Dátum: 2016. Április 02. - 23:36:34 »
+1
Kiindulásnak :) --
 

function fixCar()
local vehicles = getElementsByType(\"vehicle\",getRootElement(),true) -- kiválasztja a jármű elementeket--
for k,v in ipairs(vehicles) do -- kiválasztja a mapon lévö összes kocsit
local x,y,z = getElementPosition(localPlayer) -- player positionját lekérjük )
local carX,carY,carZ = getElementPosition(v) -- Jármű pos-ját lekéred --
if getDistanceBetweenPoints3D(x,y,z,carX,carY,carZ) <= 3 then -- a kocsit 3-as távolságban van töled csak azon müködik (közel állj a kocsihoz) --
dummycar = createVehicle(getElementModel(v),x,y,z)
setElementData(localPlayer,\"car\",dummycar)
setPedAnimation(localPlayer, \"CARRY\", \"crry_prtial\", 0, true, false, true, true) --szebb ha van anim :) --
exports.gl_attach:attachElementToBone(dummycar, localPlayer, 12, -0.9, 0, 0.8, 0, 60, 60) -- a koordinátákkal játszadozz,nagyjábol belöttem,de te állítgasd :) --
dummyTuntet () -- functiont meghívjuk --
setVehicleComponentVisible(v, \"door_rr_dummy\", false)
-- setVehicleComponentVisible(dummycar, \"door_rr_dummy\", false)
        outputChatBox(\"Sikeres ez a példa script \") --debug,jó ha van :) --
        addEventHandler(\"onClientRender\",getRootElement(),dummyTuntet) -- renderrel megy csak :) --
        setElementCollisionsEnabled(dummycar,false)
        end
end
end -- lezárjuk egy endel a functionokat --
bindKey(\"e\",\"down\",fixCar) -- bebindeljük a gombot,ami meghivja a functiont
 
function dummyTuntet ()
--outputChatBox(\"nemwok\")
        local getComponent = getVehicleComponents(dummycar) -- get a table with all the components of the vehicle
        for k in pairs (getComponent) do
        setVehicleComponentVisible(dummycar, k, false) -- hides the component
                     setVehicleComponentVisible(dummycar, \"door_rr_dummy\", true)
        end
    end
   
   
    -- Ezekböl már ki tudsz indulni :) --

Nem elérhető id100

  • 903
    • Profil megtekintése
Jármű alkatrészei
« Válasz #10 Dátum: 2016. Április 03. - 10:50:53 »
0
Köszi ! :D

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal