Witam. Chcia?em doda? wi?cej czo?g?w aby by?o ma?e zr??nicowanie w zakresie pojazd?w wojskowych. Ta funkcja idealnie mi przypasowa?a i uda?o mi si? j? zastosowa? w praktyce. Ale tutaj zaczyna si? zabawa. Nie wiem jak zrobi? aby si? synchronizowa?a wraz z ruchem myszki tak jak w oryginalnym czo?gu i pojazdach z wie?ami. Nie mog? pobra? odpowiednich danych aby m?c ustawi? rotacj? dw?ch rzeczy "misc_a" i "misc_c"(chyba albo misc_b). Kt?r? funkcj? b?d? m?g? pobra? odpowiednie dane oraz jak to zrobi? aby synchronizowa?o si?. Z g?ry dzi?ki za odpowied?.
Edit
W wolnym czasie znalaz?em co? co mi pomog?o i zrobi?em taki oto skrypt ale jest jeszcze niedopracowany. Mianowicie kamera nie obraca si? razem z pojazdem tzn. jak jad? prosto czyli na po?udnie patrz?c na mapk? to mam wie?yczk? normalnie ale jak zawr?c? to si? obr?ci o 180 wie kto? jak to wyklepa??
Wiesz zrobi?em troch? inaczej i te? zadzia?a?o wi?c problem rotacji ju? rozwi?zany ale wyskoczy? drugi. Mianowicie synchronizacja mi?dzy wszystkimi tzn jak ja porusz? wie?? to u drugiego gracza nadal mam prosto. Pr?bowa?em na stron? serwera a potem z serwera na klienta ale no nie dzia?a. Czy wgl Trigger by zadzia?a?? Oto kod ale no nie chce mi za nic zadzia?a? tak jak bym tego chcia?.
Nie jest to chyba najlepsze rozwi?zanie, ale dzia?a
c-side:
function move()
if isPedInVehicle(localPlayer) and not isCursorShowing() then
local veh = getPedOccupiedVehicle(localPlayer)
if (veh and getPedOccupiedVehicleSeat(localPlayer)==0) then
if (getElementModel(veh) == 605) or (getElementModel(veh) == 420) then
local rotX,_,rotZ = getCameraRotation()
local _,_,rZ = getElementRotation(veh)
setVehicleComponentRotation(veh,"misc_a",0,0,rotZ - rZ )
setVehicleComponentRotation(veh,"misc_b",rotX,0,0)
setElementData(veh,"misc_a",rotZ-rZ)
setElementData(veh,"misc_b",rotX)
else return end
end
end
end
--addEventHandler("onClientVehicleEnter", root, move)
addEventHandler("onClientRender",root,move)
function getCameraRotation ()
local px, py, pz, lx, ly, lz = getCameraMatrix()
local rotz = 6.2831853071796 - math.atan2 ( ( lx - px ), ( ly - py ) ) % 6.2831853071796
local rotx = math.atan2 ( lz - pz, getDistanceBetweenPoints2D ( lx, ly, px, py ) )
--Convert to degrees
rotx = math.deg(rotx)
rotz = math.deg(rotz)
return rotx, 180, rotz
end
setTimer(function()
for i,v in ipairs(getElementsByType("vehicle")) do
if isElementStreamedIn(v) and not isVehicleBlown(v) and isElement(v) and (getElementModel(v) == 605 or getElementModel(v) == 420) then
local misc_a=getElementData(v,"misc_a")
local misc_b=getElementData(v,"misc_b")
if misc_a and misc_b then
setVehicleComponentRotation(v,"misc_a",0,0,misc_a)
setVehicleComponentRotation(v,"misc_b",misc_b,0,0)
end
end
end
end,500,0)
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach