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

Wysłany: 2015-03-30, 23:37


sebik2303

Mapper :)






Wiek: 25
Na forum: 4301 dni
Posty: 298
Nick w MP: sebik2303

Piwa: 899

Respekt: 55,3

Siemka, mam skrypt na prywatne pojazdy, lecz nie wiem czemu po pierwsze zapisuj? si? auta na NICK nie na konto i mo?na szybo ukra?? pojazdy, po drugie chcia?bym zrobi? tak, ?e jak kto? jest w samochodzie, lub pojazd jest zamkni?ty nie mo?e nikt wsi???. Dam urywek skryptu odpowiadaj?cy zamykaniu, otwieraniu i zapisu aut na nick, nie na konto :(
cars={}
buycarpickup={}
maxcars = 0

addEventHandler ( "onResourceStart", getResourceRootElement(),
function ()
  local root = xmlLoadFile ("cars.xml")
  local houseroot = xmlFindChild (root,"cars",0)
  if (houseroot) then
    for i,v in ipairs (xmlNodeGetChildren(houseroot)) do
      local carmodel = xmlNodeGetAttribute (v,"model")
      local x = xmlNodeGetAttribute (v,"x")
      local y = xmlNodeGetAttribute (v,"y")
      local z = xmlNodeGetAttribute (v,"z")
      local color1 = xmlNodeGetAttribute (v,"color1")
      local color2 = xmlNodeGetAttribute (v,"color2")
      local owner = xmlNodeGetAttribute (v,"owner")
      local price = xmlNodeGetAttribute (v,"price")
      local lock = xmlNodeGetAttribute (v,"lock")
      local a = xmlNodeGetAttribute (v,"a")
      cars[i] = createVehicle ( tonumber(carmodel),tonumber(x),tonumber(y),tonumber(z), 0, 0, tonumber(a) )
      setElementInterior ( cars[i], 0 )
      setElementData (cars[i],"xpos",tonumber(x))
      setElementData (cars[i],"ypos",tonumber(y))
      setElementData (cars[i],"zpos",tonumber(z))
      setElementData (cars[i],"angle",tonumber(a))
      setElementData (cars[i],"owner",owner)
      setElementData (cars[i],"price",tonumber(price))
      setElementData (cars[i],"lock",tonumber(lock))
      setElementData (cars[i], "num", i )
      setVehicleColor ( cars[i], tonumber(color1), tonumber(color2), 0, 0 )
      if(lock == 1) then
          setVehicleLocked ( car, true )
      end
      if getElementData ( cars[i], "owner" ) == "Nobody" then
        buycarpickup[i] = createPickup ( x,  y, z, 3, 1274 )
          attachElements ( buycarpickup[i], cars[i], 0, 0, 1.9 )
      end
      maxcars = maxcars+1
    end
    outputDebugString ("Cars loaded!")
  end
end
)

function saveCars ()
    local root = xmlLoadFile ("cars.xml")
    local houseroot = xmlFindChild (root,"cars",0)
        if (houseroot) then
        for i,v in ipairs (xmlNodeGetChildren(houseroot)) do
         local color1, color2, color3, color4 = getVehicleColor ( cars[i] )
          xmlNodeSetAttribute ( v, "model", getElementModel(cars[i]) )
          xmlNodeSetAttribute ( v, "x", getElementData(cars[i], "xpos") )
          xmlNodeSetAttribute ( v, "y", getElementData(cars[i], "ypos") )
          xmlNodeSetAttribute ( v, "z", getElementData(cars[i], "zpos") )
          xmlNodeSetAttribute ( v, "a", getElementData(cars[i], "angle") )
          xmlNodeSetAttribute ( v, "color1", color1 )
          xmlNodeSetAttribute ( v, "color2", color2 )
          xmlNodeSetAttribute ( v, "owner", getElementData(cars[i], "owner") )
          xmlNodeSetAttribute ( v, "price", getElementData(cars[i], "price") )
          xmlNodeSetAttribute ( v, "lock", getElementData(cars[i], "lock") )
        end
        xmlSaveFile(root)
    end
end

function adminCreateVehicle ( source, cmd )
      local accName = getAccountName ( getPlayerAccount ( source ) )
    if isObjectInACLGroup ( "user." .. accName, aclGetGroup ( "Admin" ) ) then
        local root = xmlLoadFile ("cars.xml")
        local houseroot = xmlFindChild (root,"cars",0)
      local createdcar = xmlCreateChild ( houseroot, "vehicle" )
      local carmodel = xmlNodeSetAttribute ( createdcar, "model", "451" )
      local x, y, z = getElementPosition ( source )
      local xa,ya,a = getElementRotation ( source )
      xmlNodeSetAttribute ( createdcar, "x", x )
      xmlNodeSetAttribute ( createdcar, "y", y )
      xmlNodeSetAttribute ( createdcar, "z", z )
      xmlNodeSetAttribute ( createdcar, "a", a )
      xmlNodeSetAttribute ( createdcar, "color1", "0" )
      xmlNodeSetAttribute ( createdcar, "color2", "0" )
      xmlNodeSetAttribute ( createdcar, "owner", "Nobody" )
      xmlNodeSetAttribute ( createdcar, "price", "0" )
      xmlNodeSetAttribute ( createdcar, "lock", "0" )
      cars[maxcars+1] = createVehicle ( 451,x,y,z,0,0,a )
      setElementData (cars[maxcars+1],"xpos",x)
      setElementData (cars[maxcars+1],"ypos",y)
      setElementData (cars[maxcars+1],"zpos",z)
      setElementData (cars[maxcars+1],"angle", a)
      setElementData (cars[maxcars+1],"owner","Nobody")
      setElementData (cars[maxcars+1],"price",0)
      setElementData (cars[maxcars+1],"lock",0)
      xmlSaveFile(root)
      maxcars = maxcars+1
    else
        outputChatBox ("B??d: Nie mo?esz u?y? tego polecenia.",source, 255,255,127 )
    end
end

addCommandHandler ("stworz.pojazd", adminCreateVehicle)
addCommandHandler ("zapisz.pojazd", saveCars)

function getCar ( car )
    return cars[car]
end

function enterVehicle ( source, seat, jacked )
    local playercar = getPedOccupiedVehicle ( source )
    if(seat == 0) then
        if (getElementData ( playercar, "owner" )) then
               if(getElementData ( playercar, "owner" ) ~= "Nobody" ) then
                   if(getElementData ( playercar, "owner" ) == getPlayerName ( source )) then
                       outputChatBox ("Wsiad?e? do swojego pojazdu.",source, 255,255,127 )
                else
                    outputChatBox ("To jest pojazd gracza: "..getElementData ( playercar, "owner" ).."",source, 255,255,127 )
                end
            else
                local price = getElementData ( playercar, "price" )
                triggerClientEvent ( source, "showBuyCar", source, price)
                toggleAllControls ( source, false, true, false )
                return true
            end
        end
    end
end

addEventHandler ( "onVehicleEnter", getRootElement(), enterVehicle )

function AcceptToBuyCar ( )
    local playercar = getPedOccupiedVehicle ( source )
    if(getElementData ( playercar, "owner" ) == "Nobody") then
        if(getPlayerMoney ( source ) > tonumber(getElementData ( playercar, "price"))) then
               setElementData ( playercar, "owner", getPlayerName ( source ))
            takePlayerMoney ( source, tonumber(getElementData ( playercar, "price" )))
            toggleAllControls ( source, true )
            outputChatBox ("Gratulacje! W?a?nie zakupi?e? pojazd.", source, 243,149,72 )
            destroyElement(buycarpickup[getElementData(playercar,"num")])
            saveCars ()
        else
            outputChatBox ("B??d: Nie masz tyle ?rodk?w na swoim koncie.", source, 243,149,72 )
            setControlState ( source, "enter_exit", true )
        end
    end
end
addEvent("acceptBuyCar",true)
addEventHandler("acceptBuyCar",root,AcceptToBuyCar)

function playerCarLock ( source, cmd)
    for i,v in ipairs (cars) do
        if(getElementData ( cars[i], "owner" ) == getPlayerName ( source )) then
               setVehicleLocked ( cars[i], true )
            setElementData (cars[i],"lock", 1)
            outputChatBox ("Zamkn??e? sw?j pojazd.",source, 243,149,72 )
              saveCars()
        end
    end
end

addCommandHandler ("zamknij",playerCarLock)


function playerCarUnLock ( source, cmd)
    for i,v in ipairs (cars) do
        if(getElementData ( cars[i], "owner" ) == getPlayerName ( source )) then
               setVehicleLocked ( cars[i], false )
            setElementData (cars[i],"lock", 0)
            outputChatBox ("Otworzy?e? sw?j pojazd.",source, 243,149,72 )
              saveCars()
        end
    end
end

addCommandHandler ("otworz",playerCarUnLock)

My?l?, ?e pomo?ecie ;) stawiam :arrow: :piwo:

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-03-31, 12:40


Novovix

xNinja powraca






Wiek: 26
Na forum: 5011 dni
Posty: 240
Nick w MP: xNinja

Piwa: 453

Respekt: 80,5

Nikt ju? nie u?ywa xml, poczytaj sobie o sqlite i mysql. A co do zapisu na konto to uzywasz tych funkcji getPlayerAccount i getAccountName.

Postaw piwo autorowi tego posta
 

 
Tagi: muszę :: poprawić :: troszke :: kod :: prywatne :: pojazdy
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

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