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

Wysłany: 2014-11-05, 18:21


Dixers

No-Life






Wiek: 26
Na forum: 4453 dni
Posty: 549
Nick w MP: Dixers

Piwa: 412

Respekt: 56,8

Witam serdecznie. Nie dzia?a mi save pojazd?w do XML w tym o to skrypcie. Poka?? tak?e, jak zrobi?em XML, oraz meta, bo mo?e to tam jest b??d:

Skrypt:

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, 0 )
      setElementData (cars,"xpos",tonumber(x))
      setElementData (cars,"ypos",tonumber(y))
      setElementData (cars,"zpos",tonumber(z))
      setElementData (cars,"angle",tonumber(a))
      setElementData (cars,"owner",owner)
      setElementData (cars,"price",tonumber(price))
      setElementData (cars,"lock",tonumber(lock))
      setElementData (cars, "num", i )
      setVehicleColor ( cars, tonumber(color1), tonumber(color2), 0, 0 )
      if(lock == 1) then
      setVehicleLocked ( cars, true )
      end
      if getElementData ( cars, "owner" ) == "Nobody" then
        buycarpickup = createPickup ( x,  y, z, 3, 1274 )
        attachElements ( buycarpickup, cars, 0, 0, 1.9 )
      end
      maxcars = maxcars+1
    end
    outputDebugString ("Pojazdy zosta?y wczytane!")
  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 )
          xmlNodeSetAttribute ( v, "model", getElementModel(cars) )
          xmlNodeSetAttribute ( v, "x", getElementData(cars, "xpos") )
          xmlNodeSetAttribute ( v, "y", getElementData(cars, "ypos") )
          xmlNodeSetAttribute ( v, "z", getElementData(cars, "zpos") )
          xmlNodeSetAttribute ( v, "a", getElementData(cars, "angle") )
          xmlNodeSetAttribute ( v, "color1", color1 )
          xmlNodeSetAttribute ( v, "color2", color2 )
          xmlNodeSetAttribute ( v, "owner", getElementData(cars, "owner") )
          xmlNodeSetAttribute ( v, "price", getElementData(cars, "price") )
          xmlNodeSetAttribute ( v, "lock", getElementData(cars, "lock") )
        end
        xmlSaveFile(root)
    end
end

function adminCreateVehicle ( source, cmd )
    local accName = getAccountName ( getPlayerAccount ( source ) )
    if isObjectInACLGroup ( "user." .. accName, aclGetGroup ( "RCON" ) ) 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 ("Nie masz praw do tej komendy.",source, 255,255,127 )
    end
end

addCommandHandler ("create", adminCreateVehicle)
addCommandHandler ("save", 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 ("Witaj w swoim samochodzie!",source, 255,255,127 )
                else
                    outputChatBox ("Ten pojazd nalezy do 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 ("Kupile? pojazd!", source, 243,149,72 )
            destroyElement(buycarpickup[getElementData(playercar,"num")])
            saveCars ()
        else
        outputChatBox ("Nie masz tyle pini?dzy.", 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, "owner" ) == getPlayerName ( source )) then
        setVehicleLocked ( cars, true )
            setElementData (cars,"lock", 1)
            outputChatBox ("Pojazd zamniety",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, "owner" ) == getPlayerName ( source )) then
            setVehicleLocked ( cars, false )
            setElementData (cars,"lock", 0)
            outputChatBox ("Otworzono pojazd",source, 243,149,72 )
            saveCars()
        end
    end
end

addCommandHandler ("otworz",playerCarUnLock)



cars.xml
Kod:


<car>
<cars>
</cars>
</car>


meta.xml
Kod:


<meta>
<script src="cars_main.lua" />
<script src="cars_client.lua" type="client" />
<script src="cars_commands.lua" />
<export function="saveCars" />
<file src="cars.xml" />
</meta>



Za pomoc stawiam piwka i reputacje +5 :) :piwo:

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-11-05, 19:42


Maximerr

Programmer PHP, LUA






Wiek: 25
Na forum: 4568 dni
Posty: 548

Piwa: 1051

Respekt: 365,3
Respekt: 365,3Respekt: 365,3Respekt: 365,3Respekt: 365,3

Jakie? db3?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-11-05, 19:50


Dixers

No-Life






Wiek: 26
Na forum: 4453 dni
Posty: 549
Nick w MP: Dixers

Piwa: 412

Respekt: 56,8

Maximerr, jest w linijce 137 jak kupuje pojazd:

Bad Argument @ "destroy element" [Expected function at argument 1, got nil]

Postaw piwo autorowi tego posta
 

 
Tagi: savepojazdów :: xml
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