Jump to content

Problema compra carros


0xCiBeR

Recommended Posts

Posted

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' 

DevOps Engineer, Cloud Advocate & Security Engineer(Red Team) | Coffee, Containers & Burp

 
Posted
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) 

San Andreas Utopia RPG (SAUR) Owner & Developer.

560x95_FFFFFF_FF9900_000000_000000.png

Education is the most powerful weapon which you can use to change the world.

  • Recently Browsing   0 members

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