Jump to content

Script de Movimiento de Objetos para Admines?


Serginix

Recommended Posts

Hola, recientemente me entro en la cabeza crear un script para que se movieran unas cuartas puertas, pero solo que funcionaran para que abrieran ante la presencia admin, buscando en MTA Community, encontre un script que hacia esto, y su funcion o su Lua se veia asi:

   
   a51gate1 = createObject ( 2929, 215.99548339844, 1875.40234375, 13.938992500305, 0, 0, 0 ) 
   a51gate2 = createObject ( 2929, 211.94564819336, 1875.40234375, 13.938992500305, 0, 0, 0 ) 
   a51col = createColCircle ( 213.94564819336, 1875.40234375, 13.938992500305, 7 ) 
  
function opena51gates(thePlayer) 
if isObjectInACLGroup( 'user.'..getAccountName( getPlayerAccount( thePlayer ) ), aclGetGroup( 'Admin' ) ) and hasObjectPermissionTo( thePlayer, 'function.door', true ) then 
       moveObject (a51gate1, 5000, 218.99548339844, 1875.40234375, 13.938992500305 ) 
       moveObject (a51gate2, 5000, 208.94564819336, 1875.40234375, 13.938992500305 ) 
end 
  
end 
addEventHandler( "onColShapeHit", a51col, opena51gates ) 
  
function closea51gates(thePlayer) 
if isObjectInACLGroup( 'user.'..getAccountName( getPlayerAccount( thePlayer ) ), aclGetGroup( 'Admin' ) ) and hasObjectPermissionTo( thePlayer, 'function.door', true ) then 
       moveObject (a51gate1, 5000, 215.99548339844, 1875.40234375, 13.938992500305 ) 
       moveObject (a51gate2, 5000, 211.94564819336, 1875.40234375, 13.938992500305 ) 
end 
end 
addEventHandler( "onColShapeLeave", a51col, closea51gates ) 
   

hasta ay todo va bien, y si las puertas solo se abren ante los admines, la cosa esque intente hacerlo yo, lo intente varias cientos de veces, de todas las maneras, (si entiendo bien las fuciones del script, estube mirando la wiki) la puerta que eh creado no se mobia y la consola me decia que getPlayerAccount y/o getAccountName tiraban error, lo extraño esque en el server esta puerta se movia, aun asi con la advertencia y la mia no....

Eh tomado como referencia este script, (cambiando las coodenadas) y eh utilizado scripts generadores de movimiento como el OMG y otros de la web, pero aparte de que el OMG no me guardaba el archivo lua, (tocaba copy paste xD), al final logre que 1 miserable puerta se moviera.... solo 1..... las otras 10 que puse estaban estorbando..............

me aburri y deje el script tirado que podria hacer amables amigos??? xDDD

PD: Estoy tratando de aprender LUA Scripting con la Wiki del MTA y es dificil asi que todo no sea tam complicado :S

Link to comment

Hmmmm habras puesto la ubicacion erronea por que debes ponerla exacta por ejemplo;

esta en la ubicacion 200,46784

tu solo pones 200,4 obviamete no dara...

ese es un posible error o tambien creaste una Meta (meta.xml) que no sirve con lo que quieres

Si te fijas bien puede ser esto

function opena51gates(thePlayer) 
if isObjectInACLGroup( 'user.'..getAccountName( getPlayerAccount( thePlayer ) ), aclGetGroup( 'Admin' ) ) and hasObjectPermissionTo( thePlayer, 'function.door', true ) then 
  

Ya que no has puesto ¨function.door¨ en la acl..

Link to comment

Dudo que sea eso, puesto que ya logre que 1 miserable puerta se moviera, pero quiero como 10, y de esas solo 1 funciona, eh estado funcionando y jodiendo mucho con eso, y pues mi felicidad cuando pude mover 1, ya que apenas estoy aprendiendo, y en este paso es normal el Ensayo-Error-Ensayo-Error-Ensayo-Funciona!-Error........., las cordenadas estan en perfectas condiciones ya las revise, y porque 1 se mueve y las otras no ? que esta mal' ya revise todo bien....

Link to comment

yo creo que si, puesto que una vez logre que 1 puerta se moviese, hize copy paste varias veces, reemplaze el nombre de la puerta, nombre de la funcion, nombre del col, mejor dicho reemplaze todo, menos la funcion para admines, y los mismos comandos para movimiento de las puertas

Link to comment
gates = {} 
cols = {} 
  
gates[1] = createObject ( 2929, 215.99548339844, 1875.40234375, 13.938992500305, 0, 0, 0 ) 
gates[2] = createObject ( 2929, 211.94564819336, 1875.40234375, 13.938992500305, 0, 0, 0 ) 
cols[1] = createColCircle ( 213.94564819336, 1875.40234375, 13.938992500305, 7 ) 
  
function openGates(thePlayer) 
if source == cols[1] then 
if isObjectInACLGroup( 'user.'..getAccountName( getPlayerAccount( thePlayer ) ), aclGetGroup( 'Admin' ) ) and hasObjectPermissionTo( thePlayer, 'function.door', true ) then 
       moveObject (gates[1], 5000, 218.99548339844, 1875.40234375, 13.938992500305 ) 
       moveObject (gates[2], 5000, 208.94564819336, 1875.40234375, 13.938992500305 ) 
elseif source == cols[2] then 
        
          end 
     end 
end 
addEventHandler( "onColShapeHit", getRootElement(), openGates ) 
  
function closeGates(thePlayer) 
if source == cols[1] then 
if isObjectInACLGroup( 'user.'..getAccountName( getPlayerAccount( thePlayer ) ), aclGetGroup( 'Admin' ) ) and hasObjectPermissionTo( thePlayer, 'function.door', true ) then 
       moveObject (gates[1], 5000, 215.99548339844, 1875.40234375, 13.938992500305 ) 
       moveObject (gates[2], 5000, 211.94564819336, 1875.40234375, 13.938992500305 ) 
elseif source == cols[2] then 
        
          end 
     end 
end 
addEventHandler( "onColShapeLeave", getRootElement(), closeGates ) 

De esta manera puedes crear mas puertas sin hacer mucho lio.

Link to comment

Simplemente genial, agarraste el script y lo perfeccionaste !, ahora para agregar mas puertas solo cambio las coordenadas y el nombre de la puerta y ya ?...

EDIT: Eh mirado, y editado el script con mis coordenadas y como la otra vez y de varias puertas que coloque solo 1 se movio :(, lo raro esque hize un copi - paste de lo que pusiste 2 veces, y la segunda funcion de movimiento funciono, la primera no, y eh mirado todo 3 veces... el caso esque quedo asi:

  
Esta vendria ciendo la Funcion 1, la que no dio: 
  
   gates = {} 
    cols = {} 
      
    gates[1] = createObject ( 2929, 233.5244140625, 1822.6572265625, 7.9560956954956, 0, 0, 90 ) 
    cols[1] = createColCircle ( 233.5244140625, 1822.6572265625, 7.9560956954956, 0, 0, 90 ) 
      
    function openGates(thePlayer) 
    if source == cols[1] then 
    if isObjectInACLGroup( 'user.'..getAccountName( getPlayerAccount( thePlayer ) ), aclGetGroup( 'Admin' ) ) and hasObjectPermissionTo( thePlayer, 'function.door', true ) then 
           moveObject (gates[1], 233.5244140625, 1822.6572265625, 4.4560956954956 ) 
    elseif source == cols[1] then 
            
              end 
         end 
    end 
    addEventHandler( "onColShapeHit", getRootElement(), openGates ) 
      
    function closeGates(thePlayer) 
    if source == cols[1] then 
    if isObjectInACLGroup( 'user.'..getAccountName( getPlayerAccount( thePlayer ) ), aclGetGroup( 'Admin' ) ) and hasObjectPermissionTo( thePlayer, 'function.door', true ) then 
           moveObject (gates[1], 5000, 233.5244140625, 1822.6572265625, 7.9560956954956 ) 
    elseif source == cols[1] then 
            
              end 
         end 
    end 
    addEventHandler( "onColShapeLeave", getRootElement(), closeGates ) 
  
 ----------------------------------------------------------------------------------------------------------------- 
  
Y esta vendria siendo la Funcion 2, que si funciono.  
  
    gates[2] = createObject ( 980, 235.74890136719, 1806.5189208984, 12.164016723633, 0, 90, 0 ) 
    cols[2] = createColCircle ( 235.74890136719, 1806.5189208984, 12.164016723633, 0, 90, 0 ) 
      
    function openGates(thePlayer) 
    if source == cols[2] then 
    if isObjectInACLGroup( 'user.'..getAccountName( getPlayerAccount( thePlayer ) ), aclGetGroup( 'Admin' ) ) and hasObjectPermissionTo( thePlayer,  
  
'function.door', true ) then 
           moveObject (gates[2], 5000, 235.74890136719, 1806.5189208984, 15.164016723633 ) 
    elseif source == cols[2] then 
            
              end 
         end 
    end 
    addEventHandler( "onColShapeHit", getRootElement(), openGates ) 
      
    function closeGates(thePlayer) 
    if source == cols[2] then 
    if isObjectInACLGroup( 'user.'..getAccountName( getPlayerAccount( thePlayer ) ), aclGetGroup( 'Admin' ) ) and hasObjectPermissionTo( thePlayer,  
  
'function.door', true ) then 
           moveObject (gates[2], 5000, 235.74890136719, 1806.5189208984, 12.164016723633 ) 
    elseif source == cols[2] then 
            
              end 
         end 
    end 
    addEventHandler( "onColShapeLeave", getRootElement(), closeGates ) 

Edited by Guest
Link to comment

Mmmmm ok deja ago unas pruebas y agrego el Otro moveObjet con mis cooerdenadas.....

Edit: supongo que iria asi:

    gates = {} 
    cols = {} 
      
    gates[1] = createObject ( 2929, 233.5244140625, 1822.6572265625, 7.9560956954956, 0, 0, 90 ) 
    cols[1] = createColCircle ( 233.5244140625, 1822.6572265625, 7.9560956954956, 0, 0, 90 ) 
  
    gates[2] = createObject ( 980, 235.74890136719, 1806.5189208984, 12.164016723633, 0, 90, 0 ) 
    cols[2] = createColCircle ( 235.74890136719, 1806.5189208984, 12.164016723633, 0, 90, 0 ) 
  
      
    function openGates(thePlayer) 
    if source == cols[1] then 
    if isObjectInACLGroup( 'user.'..getAccountName( getPlayerAccount( thePlayer ) ), aclGetGroup( 'Admin' ) ) and hasObjectPermissionTo( thePlayer,  
  
'function.door', true ) then 
           moveObject (gates[1], 233.5244140625, 1822.6572265625, 4.4560956954956 ) 
    elseif source == cols[2] then 
           moveObject (gates[2], 5000, 235.74890136719, 1806.5189208984, 15.164016723633 )            
              end 
         end 
    end 
    addEventHandler( "onColShapeHit", getRootElement(), openGates ) 
  
      
    function closeGates(thePlayer) 
    if source == cols[1] then 
    if isObjectInACLGroup( 'user.'..getAccountName( getPlayerAccount( thePlayer ) ), aclGetGroup( 'Admin' ) ) and hasObjectPermissionTo( thePlayer,  
  
'function.door', true ) then 
           moveObject (gates[1], 5000, 233.5244140625, 1822.6572265625, 7.9560956954956 ) 
    elseif source == cols[2] then 
           moveObject (gates[2], 5000, 235.74890136719, 1806.5189208984, 12.164016723633 )            
              end 
         end 
    end 
    addEventHandler( "onColShapeLeave", getRootElement(), closeGates ) 

Link to comment
  • Recently Browsing   0 members

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