Serginix Posted April 7, 2011 Share Posted April 7, 2011 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 ), 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 Link to comment
Castillo Posted April 7, 2011 Share Posted April 7, 2011 Cual es el problema, no podemos ayudarte si no aclaras bien. Link to comment
Serginix Posted April 7, 2011 Author Share Posted April 7, 2011 Error en la consola con la funcion getAccountName y objetos que no se mueven.... Link to comment
juniorblinxs Posted April 8, 2011 Share Posted April 8, 2011 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
Serginix Posted April 9, 2011 Author Share Posted April 9, 2011 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
juniorblinxs Posted April 10, 2011 Share Posted April 10, 2011 posiblemente no haigas puesto bien los comandos de las puertas.... Link to comment
Serginix Posted April 10, 2011 Author Share Posted April 10, 2011 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
Castillo Posted April 11, 2011 Share Posted April 11, 2011 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
juniorblinxs Posted April 11, 2011 Share Posted April 11, 2011 WoW solid snake que gran script =D yo tambien la quiero... me la puedo copiar? Link to comment
Castillo Posted April 11, 2011 Share Posted April 11, 2011 Es para que lo use el que lo quiera. Link to comment
Serginix Posted April 11, 2011 Author Share Posted April 11, 2011 (edited) 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 April 11, 2011 by Guest Link to comment
Castillo Posted April 11, 2011 Share Posted April 11, 2011 Pues, un poquito mas dificil que eso, como viste te deje un ejemplo para agregar una segunda puerta. elseif source == cols[2] then eso es cuando tenes otro colshape indexeado 2, despues de eso le pones el moveObject y todo eso Link to comment
Serginix Posted April 11, 2011 Author Share Posted April 11, 2011 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
Recommended Posts