Jump to content

Problema compra carros


0xCiBeR

Recommended Posts

  • MTA Team

Bueno el problema esta que si un player que no es el dueño quiere entrar al vehiculo que tiene dueño, lo deja, cuando deberia no dejarlo y decirle de quien es..

Aca el script:

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 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], "num", i ) 
      setVehicleColor ( cars[i], tonumber(color1), tonumber(color2), 0, 0 ) 
      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") ) 
        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" ) 
      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) 
      xmlSaveFile(root) 
      maxcars = maxcars+1 
    else 
        outputChatBox ("Error: You can't use this command",source, 255,255,127 ) 
    end 
end 
  
addCommandHandler ("acarcreate", adminCreateVehicle) 
addCommandHandler ("acarsave", saveCars) 
  
function getCar ( car ) 
    return cars[car] 
end 
addEventHandler ( "onVehicleEnter", getRootElement(), 
function ( source, seat, jacked ) 
    local playercar = getPedOccupiedVehicle ( source ) 
    if(seat == 0) then 
        if (getElementData ( playercar, "owner" )) then 
                if(getElementData ( playercar, "owner" ) == getAccountName(getPlayerAccount( source ))) then 
                    outputChatBox ("It is your car!",source, 255,255,127 ) 
                    end 
                elseif (getElementData ( playercar, "owner" ) ~= getAccountName(getPlayerAccount( source ))) then 
                cancelEvent () 
                    outputChatBox ("This vehicle owner: "..getElementData ( playercar, "owner" ).."",source, 255,255,127 ) 
                end 
            elseif (getElementData ( playercar, "owner" ) ~= "Nobody" ) then 
                local price = getElementData ( playercar, "price" ) 
                triggerClientEvent ( source, "showBuyCar", source, price) 
                toggleAllControls ( source, false, true, false ) 
                return true 
            end 
        end 
    end) 
  
  
function AcceptToBuyCar ( ) 
    local playercar = getPedOccupiedVehicle ( source ) 
    if(getElementData ( playercar, "owner" ) == "Nobody") then 
        if(getPlayerMoney ( source ) > tonumber(getElementData ( playercar, "price"))) then 
            setElementData ( playercar, "owner", getAccountName(getPlayerAccount( source ))) 
            takePlayerMoney ( source, tonumber(getElementData ( playercar, "price" ))) 
            toggleAllControls ( source, true ) 
            outputChatBox ("You buy this car!", source, 243,149,72 ) 
            destroyElement(buycarpickup[getElementData(playercar,"num")]) 
            saveCars () 
        else 
            outputChatBox ("Error: You don't have enought money", source, 243,149,72 ) 
            setControlState ( source, "enter_exit", true ) 
        end 
    end 
end 
addEvent("acceptBuyCar",true) 
addEventHandler("acceptBuyCar",root,AcceptToBuyCar) 
  
  
  
  
  

Errores:

[2013-04-05 14:01:09] SCRIPT ERROR: PDz_autos_test\cars_main.lua:117: ')' expected (to close '(' at line 98) near 'end' 
[2013-04-05 14:01:09] WARNING: Loading script failed: PDz_autos_test\cars_main.lua:117: ')' expected (to close '(' at line 98) near 'end' 

Link to comment
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 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], "num", i ) 
      setVehicleColor ( cars[i], tonumber(color1), tonumber(color2), 0, 0 ) 
      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") ) 
        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" ) 
      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) 
      xmlSaveFile(root) 
      maxcars = maxcars+1 
    else 
        outputChatBox ("Error: You can't use this command",source, 255,255,127 ) 
    end 
end 
  
addCommandHandler ("acarcreate", adminCreateVehicle) 
addCommandHandler ("acarsave", saveCars) 
  
function getCar ( car ) 
    return cars[car] 
end 
addEventHandler ( "onVehicleStartEnter", getRootElement(), 
    function ( player, seat, jacked ) 
        local playercar = source 
        if ( seat == 0 ) then 
            if (getElementData ( playercar, "owner" )) then 
                if (getElementData ( playercar, "owner" ) == getAccountName(getPlayerAccount( player ))) then 
                    outputChatBox ("It is your car!",player, 255,255,127 ) 
                else 
                    cancelEvent () 
                    outputChatBox ("This vehicle owner: "..getElementData ( playercar, "owner" ).."",player, 255,255,127 ) 
                end 
            elseif (getElementData ( playercar, "owner" ) ~= "Nobody" ) then 
                local price = getElementData ( playercar, "price" ) 
                triggerClientEvent ( player, "showBuyCar", player, price) 
                toggleAllControls ( player, false, true, false ) 
            end 
        end 
    end 
) 
  
function AcceptToBuyCar ( ) 
    local playercar = getPedOccupiedVehicle ( source ) 
    if(getElementData ( playercar, "owner" ) == "Nobody") then 
        if(getPlayerMoney ( source ) > tonumber(getElementData ( playercar, "price"))) then 
            setElementData ( playercar, "owner", getAccountName(getPlayerAccount( source ))) 
            takePlayerMoney ( source, tonumber(getElementData ( playercar, "price" ))) 
            toggleAllControls ( source, true ) 
            outputChatBox ("You buy this car!", source, 243,149,72 ) 
            destroyElement(buycarpickup[getElementData(playercar,"num")]) 
            saveCars () 
        else 
            outputChatBox ("Error: You don't have enought money", source, 243,149,72 ) 
            setControlState ( source, "enter_exit", true ) 
        end 
    end 
end 
addEvent("acceptBuyCar",true) 
addEventHandler("acceptBuyCar",root,AcceptToBuyCar) 

Link to comment
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...