Jump to content

[Ayuda] Movimiento de Reja.


LautaroD

Recommended Posts

Buenas Usuarios de MTA :P...

Bueno les traigo mi segunda duda sobre un erro que me pasa con una reja.

Bueno la reja se abre y cierra perfectamente pero el problema es que cuando yo bajo la reja baja bien pero mi amigo la ve arriba, cuando esta realmente bajando o abajo...

Osea si yo la bajo el no la ve bajar, y si el la baja yo no la veo bajar, como que solo le baja a uno... y si a el le baja y ami no lo veo que la traspasa pero no el no la traspasa xq la ve abajo. Aqui el codigo:

puerta = createObject (980, 135.30000305176, 2040.1999511719, 19.299999237061, 0, 0, 0) 
function moverPuerta(player) 
moveObject (puerta, 5000, 135.30000305176, 2040.1999511719, 13.699999809265) 
setTimer (moveObject, 10000, 1, puerta, 5000, 135.30000305176, 2040.1999511719, 19.299999237061) 
end 
addCommandHandler ("apmilitar", moverPuerta) 

Espero su ayuda, desde ya muchas gracias.

Link to comment

Este funciona por team creas un team Pones donde dice Policias el nombre del team que abre esta puerta hay te deja las post hacia donde quieres moverla

local function isPlayerInTeam(player, teamname) 
    local team = getTeamFromName(teamname) 
    if team and getPlayerTeam(player) == team then 
        return true 
    end 
    return false 
end 
  
gates = { 
    --lorida 
    { 
        objects={ 
            {mid=7657, x=2720.1906, y=-2399.5310, z=13.5909, rx=0, ry=0, rz=270, 
                to_x=2720.1906, to_y=-2390.5310, to_z=13.5909, movetime=2000} 
        }, 
        condition={func=isPlayerInTeam, "Policias"} 
    }, 
} 
  
  
  
  
local colshape2gate={} 
for k,gate in ipairs(gates) do 
    local colshapex, colshapey, colshapez, colshapecc = 0,0,0,0 
    local colshaperadius = 3 
    colshaperadius = colshaperadius*1.2 
    for k,object in ipairs(gate.objects) do 
        local obj = createObject(object.mid, object.x, object.y, object.z, object.rx, object.ry, object.rz) 
        object.pointer = obj 
        object.to_x, object.to_y, object.to_z, object.to_rx, object.to_ry, object.to_rz = 
            object.to_x or object.x, object.to_y or object.y, object.to_z or object.z, object.to_rx or 0, object.to_ry or 0, object.to_rz or 0 
        if object.to_rx ~= 0 or object.to_ry ~= 0 or object.to_rz ~= 0 then 
            object.targrot = {object.rx + object.to_rx, object.ry + object.to_ry, object.rz + object.to_rz} 
            gate.hasRotatingObject = true 
        end 
        colshapex, colshapey, colshapez, colshapecc = colshapex+object.x, colshapey+object.y, colshapez+object.z, colshapecc+1 
        colshaperadius = math.max(colshaperadius, getDistanceBetweenPoints3D(object.x, object.y, object.z, object.to_x, object.to_y, object.to_z)) 
    end 
     
    gate.state = gate.state or "closed" 
     
    colshapex, colshapey, colshapez = colshapex/colshapecc, colshapey/colshapecc, colshapez/colshapecc 
    if colshaperadius > 0 then colshaperadius = colshaperadius*2 else colshaperadius = 5 end 
    local colshape = createColSphere(colshapex, colshapey, colshapez, gate.shaperadius or colshaperadius) 
    colshape2gate[colshape] = gate 
    gate.shape = colshape 
end 
  
function getPlayerCountInGateColShapeThatPassesTheCondition(gate) 
    local retc = 0 
    local func,params=gate.condition.func, gate.condition 
    for k,v in ipairs(getElementsWithinColShape(gate.shape, "player"))do 
        if func(v, unpack(params)) then 
            retc = retc+1 
        end 
    end 
    return retc 
end 
  
function processGates(player, dim_ok) 
    if not dim_ok or getElementType(player) ~= "player" then return end 
    local gate = colshape2gate[source] 
    if gate then 
        local cpass = getPlayerCountInGateColShapeThatPassesTheCondition(gate)>0 
        if gate.state == "closed" and cpass then -- open the gate 
            for k,object in ipairs(gate.objects) do 
                if gate.hasRotatingObject then 
                    stopObject(object.pointer) 
                    setObjectRotation(object.pointer, object.rx, object.ry, object.rz) 
                    moveObject(object.pointer, object.movetime, object.to_x, object.to_y, object.to_z, object.to_rx, object.to_ry, object.to_rz) 
                else 
                    moveObject(object.pointer, object.movetime, object.to_x, object.to_y, object.to_z) 
                end 
            end 
            gate.state = "opened" 
        elseif gate.state == "opened" and not cpass then -- close the gate 
            for k,object in ipairs(gate.objects) do 
                -- 
                if gate.hasRotatingObject then 
                    stopObject(object.pointer) 
                    setObjectRotation(object.pointer, unpack(object.targrot)) 
                    moveObject(object.pointer, object.movetime, object.x, object.y, object.z, -object.to_rx, -object.to_ry, -object.to_rz) 
                else 
                    moveObject(object.pointer, object.movetime, object.x, object.y, object.z) 
                end 
            end 
            gate.state = "closed" 
        end 
    end 
end 
addEventHandler("onColShapeHit", getResourceRootElement(getThisResource()), processGates) 
addEventHandler("onColShapeLeave", getResourceRootElement(getThisResource()), processGates) 
  

Link to comment

Osea yo al hablar con la "T" quiero q hables en Local (IC) = Dentro del Juego.

No que al hablar con la "T" hables globalmente.

Yo puse la "T" en Local pero al escribir comandos no me funcionaban me los ponia en la consola como si estuviera hablando con el "/"... Espero que me entiendas.

Link to comment
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

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