Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2020-04-15, 22:30


Irvs







Wiek: 31
Na forum: 2821 dni
Posty: 48

Piwa: 3

Respekt: 50

Cze?? wszystkim,

Mam problem z kodem, kt?ry jak zauwa?y?em jest sklejk? 2 skrypt?w.
Problem polega na tym, ?e gracz zakuty w kajdanki jest rozkuwany gdy osoba kt?ra go zaku?a wejdzie do samochodu lub interioru, jak temu zaradzi??
Czy kto? b?dzie w stanie pom?c to naprawi??


 function kajdankii ( player, cmd, gracz )
    if getElementData(player,'player:faction') and getElementData(player,'player:faction')=='SAPD' then
        if not (gracz) then
        outputChatBox("B??d! U?yj: /zakuj <nick/ID> ",player)
        return
        end
        local targetElement=exports['pystories-core']:findPlayer(player, gracz)    
        if targetElement then
            local x, y, z = getElementPosition(player)
            local tx, ty, tz = getElementPosition(targetElement)                
            local distance = getDistanceBetweenPoints3D(x, y, z, tx, ty, tz)                
          if (distance<=10) then
            local dokogo=getElementData(targetElement,"kajdanki")
            if (not dokogo or not isElement(dokogo)) then    
                if isPedInVehicle(targetElement) then
                removePedFromVehicle(targetElement)
                end            
                
                toggleControl(targetElement, "sprint", false )
                toggleControl(targetElement, "jump", false )
                toggleControl(targetElement, "aim_weapon", false )
                toggleControl(targetElement, "fire", false )
                toggleControl(targetElement, "crouch", false )
                triggerEvent("onKajdankiZakuj", root, player, targetElement)
                outputChatBox("#0078FFZa?o?y?e? kajdanki.",player,255, 0, 0, true)
            --    outputChatBox("#0078FFPolicjant za?o?y? ci kajdanki. Nie mo?esz szybko biega?, skaka? ani prowadzi? pojazd?w.",targetElement,255, 0, 0, true)
            else
                toggleControl(targetElement, "sprint", true )
                toggleControl(targetElement, "jump", true )
                toggleControl(targetElement, "crouch", true )
                triggerEvent("onKajdankiZakuj", root, player, targetElement)
                outputChatBox("* #0078FF?ci?gn??e? graczowi kajdanki.", player,255, 0, 0, true)
            --    outputChatBox("* #0078FFPolicjant ?ci?gna? Ci kajdanki.",targetElement,255, 0, 0, true)            
            end
          else
              outputChatBox("* #0078FFJeste? za daleko gracza, ?eby m?c go zaku?.", player,255, 0, 0, true)
           end
        end    
    else
          outputChatBox("#FF0000Nie Jeste? Policjantem.",player)
    end
 end
 addCommandHandler("zakuj", kajdankii)




addEvent("onKajdankiZakuj", true)
addEventHandler("onKajdankiZakuj", resourceRoot, function(kto,kogo)
  triggerClientEvent(kogo, "onKajdankiZakuj", resourceRoot, kto)
end)




local function follow()
    local dokogo=getElementData(localPlayer,"kajdanki")
    if (not dokogo or not isElement(dokogo)) then
      setElementData(localPlayer,"kajdanki", nil)
      removeEventHandler("onClientPreRender", root, follow)
      triggerServerEvent("setPedAnimation", localPlayer)
      return
    end



    if (getPedOccupiedVehicle(dokogo) or getElementInterior(dokogo)~=getElementInterior(localPlayer) or getElementDimension(dokogo)~=getElementDimension(localPlayer)) then
      setElementData(localPlayer,"kajdanki", true)
    --  removeEventHandler("onClientPreRender", root, follow)
      triggerServerEvent("setPedAnimation", localPlayer)
          setElementInterior(localPlayer, getElementInterior(dokogo))
    setElementDimension(localPlayer, getElementDimension(dokogo))
              local veh = getPedOccupiedVehicle(dokogo)
            warpPedIntoVehicle ( localPlayer, veh, 3 )     
            toggleControl(localPlayer, "enter_exit", false )
      return
    end

    local x,y,z=getElementPosition(dokogo)
    local x2,y2,z2=getElementPosition(localPlayer)
    local kat=0
    kat=math.deg(math.atan(-1*(x2-x)/(y2-y)))
    if (y2-y)<0 then
        kat=kat+180.0
    end
    kat=(kat+180)%360
    setPedRotation(localPlayer, kat)
    local dist=getDistanceBetweenPoints3D(x,y,z,x2,y2,z2)
    if (dist<1) then
        setControlState("forwards", false)
    else
        setControlState("forwards", true)
    end
    if (dist>30) then
      setElementPosition(localPlayer, x+math.random(-1,1), y+math.random(-1,1), z+math.random(0,10)/10)
      return
    end
    if (dist>2) then
        setControlState("sprint", true)
        setControlState("walk", false)
    else
        setControlState("walk", true)
        setControlState("sprint", false)
    end
end

addEvent("onKajdankiZakuj", true)
addEventHandler("onKajdankiZakuj", resourceRoot, function(kto)
  local obecnie=getElementData(localPlayer, "kajdanki")
  if (obecnie and obecnie==kto) then
      setElementData(localPlayer,"kajdanki", false)
      removeEventHandler("onClientPreRender", root, follow)
      triggerServerEvent("setPedAnimation", localPlayer)
      outputChatBox(getPlayerName(kto):gsub("#%x%x%x%x%x%x","") .. " zdejmuje z Ciebie kajdanki.",0,0,255)
    return
  end
  outputChatBox(getPlayerName(kto):gsub("#%x%x%x%x%x%x","") .. " zakuwa Ci? w kajdanki.",0,0,255)
  setElementData(localPlayer,"kajdanki", kto)
  addEventHandler("onClientPreRender", root, follow)
end)

-------------------------------

local obecnie=getElementData(localPlayer, "kajdanki")
if (obecnie and isElement(obecnie)) then
  addEventHandler("onClientPreRender", root, follow)

end


Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-04-15, 23:02


Wilq







Wiek: 24
Na forum: 4569 dni
Posty: 3409

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Usu? linijke dotycz?ca ustawiania element daty "kajdanki" na true w warunku getPedOccupiedVehicle w funkcji follow. Wpisujesz dane potrzebne do ustawiania pozycji i wtedy Ci? rozkuwa.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-04-20, 12:34


Irvs







Wiek: 31
Na forum: 2821 dni
Posty: 48

Piwa: 3

Respekt: 50

Kto? potrafi pom?c?

Okej, a jak zrobi? by w momencie wsiadania do samochodu osoba zakuta te? wsiad?a?

Dopisa?em w funkcji follow tam gdzie by?o ustawianie arg. na True przy ElementDacie taki kod i niestety nie dzia?a


local veh = getPedOccupiedVehicle(dokogo)
warpPedIntoVehicle ( localPlayer, veh, 3 )     
toggleControl(localPlayer, "enter_exit", false )


debug nie pokazuje ?adnych b??d?w przy wsiadaniu do auta maj?c zakut? osobe.

oraz jest problem z teleportem do interioru

po warunku

    if (getPedOccupiedVehicle(dokogo) or getElementInterior(dokogo)~=getElementInterior(localPlayer) or getElementDimension(dokogo)~=getElementDimension(localPlayer)) then

da?em nast?puj?cy kod i do pozycji przenosi, lecz interior i dimension pozostaj? stare


      setTimer ( function()
          setElementInterior(localPlayer, getElementInterior(dokogo))
    setElementDimension(localPlayer, getElementDimension(dokogo))
    local x,y,z=getElementPosition(dokogo)
    setElementPosition(localPlayer, x+1, y, z)
    end, 2000, 1 )


[ Dodano: 2020-04-18, 03:47 ]

Postaw piwo autorowi tego posta
 

 
Tagi: kajdanki
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA Odpowiedz do tematu

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
Dodaj temat do Ulubionych
Wersja do druku