Szerző Téma: [SCRIPT] Kliens oldali variáns  (Megtekintve 2024 alkalommal)

Nem elérhető Xenius

  • 668
    • Profil megtekintése
[SCRIPT] Kliens oldali variáns
« Dátum: 2016. Június 29. - 13:24:20 »
+4
Sziasztok, gondoltam megosztom veletek hogyan lehet kliens oldalon variánst váltani egy járművön. Ez a megoldás bizonyos esetekben nagyon hasznos tud lenni, hiszen nem kell ezért triggerelni a szervert.
Szóval, a lényeg hogy létrehozunk kliens oldalon egy új járművet, az aktuális variánsal amit szeretnénk (createVehicle) és azt a szerver oldalon létrehozott járművünkre ragasztjuk (attach). Ha szeretnénk speciális elemeket (pl tuningot rá tenni) akkor azt egy 50ms-es timerrel kell megoldani, mert a jármű létrehozásakor nem lehet azonnal rá tenni semmit sem az element datán kívük. (valami stream hiba lehet az mtaban)
Fontos: hogy ha eltűntetjük a létrehozott ideiglenes járművet, akkor a szerver oldalon frissíteni kell a jármű hasmagasságát egy triggerrel. Példa:
 
addEvent(\"tuning->fixChassis\", true)
addEventHandler(\"tuning->fixChassis\", root, function(veh)
setVehicleHandling(veh, \"suspensionLowerLimit\", exports.handling:getHandlingProperty(getElementModel(veh), \"suspensionLowerLimit\"))
setVehicleHandling(veh, \"suspensionUpperLimit\", exports.handling:getHandlingProperty(getElementModel(veh), \"suspensionUpperLimit\"))
end)

 
Függvény:
 
local actualVariants = {255, 255}
local attachedVeh
local oldVehicle
function setVehicleVariant(veh, var1, var2)
local x, y, z = getElementPosition(veh)
local rx, ry, rz = getElementRotation(veh)
attachedVeh = createVehicle(getElementModel(veh), x, y, z, rx, ry, rz, getVehiclePlateText(veh), var1, var2)
setElementCollisionsEnabled(attachedVeh, false)
setElementAlpha(attachedVeh, 0)
actualVariants = {var1, var2}
setTimer(function(veh, attachedVeh)
for k, v in ipairs(getVehicleUpgrades(veh)) do
   addVehicleUpgrade(attachedVeh, v)
end
local r, g, b = getVehicleHeadLightColor(veh)
setVehicleHeadLightColor(veh, r, g, b)
local r1, g1, b1, r2, b2, g2, r3, b3, g3, r4, g4, b4 = getVehicleColor(veh, true)
setVehicleColor(attachedVeh, r1, g1, b1, r2, b2, g2, r3, b3, g3, r4, g4, b4)
oldVehicle = veh
setElementAlpha(veh, 0)
setElementAlpha(attachedVeh, 255)
end, 50, 1, veh, attachedVeh)
attachElements(attachedVeh, veh)
return attachedVeh
end
« Utoljára szerkesztve: 2016. Június 29. - 13:31:05 írta anGeL »

Nem elérhető Eduka

  • 214
    • Profil megtekintése
[SCRIPT] Kliens oldali variáns
« Válasz #1 Dátum: 2016. Július 29. - 10:00:33 »
0
Köszi Xenius, ment a pacsi! :) :thumbsup:

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal