-
Posts
2,106 -
Joined
-
Last visited
-
Days Won
6
Everything posted by aka Blue
-
ÓRDENES DE BÚSQUEDA Y CAPTURA | SCRIPT Hace un tiempo estuve jugando en un servidor que tenía un sistema parecido. Se trata de un sistema para los policías de órdenes de búsqueda y captura de jugadores. Tiene varios comandos con los que puedes editar el estado del fugitivo, o, borrar la orden. Cada uno lo puede editar a su gusto. Adicional: Si no lo queréis, podéis quitar el evento de onPlayerChangeNick. Lo puse para que, al intentar editar su nick, le cancele el evento cuando esté en orden de búsqueda y captura. local police_data = { } local policias = createTeam( "Policia Nacional", 0, 0, 51 ) -- Team de la policia addCommandHandler( "addbusq", function( player, commandName, nombre_fugitivo, motivo, estado ) local nombre_fugitivo = tostring( nombre_fugitivo ) local estado = tostring( estado ) local motivo = tostring( motivo ) local team = getTeamName( getPlayerTeam ( player ) ) if team == "Policia Nacional" then if nombre_fugitivo and estado and motivo then if not police_data[ nombre_fugitivo ] then police_data[ nombre_fugitivo ] = { motivo = motivo, estado = estado } outputChatBox( "Añadida orden de búsqueda para "..nombre_fugitivo, player, 255, 255, 0 ) outputChatBox( "Motivo:", player, 255, 255, 0 ) outputChatBox( tostring( motivo ), player, 255, 255, 255 ) else local razon = police_data[ nombre_fugitivo ].motivo outputChatBox( "Hay una orden contra "..nombre_fugitivo..". Motivo:", player, 0, 255, 0 ) outputChatBox( tostring( razon ), player, 255, 255, 255 ) end end end end ) function bloquearCambio( viejoNick ) if police_data[ viejoNick ] then cancelEvent( ) end end addEventHandler( "onPlayerChangeNick", getRootElement(), bloquearCambio ) addCommandHandler( "checkorden", function( player, commandName, nombre_fugitivo ) local nombre_fugitivo = tostring( nombre_fugitivo ) local team = getTeamName( getPlayerTeam( player ) ) if team == "Policia Nacional" then if nombre_fugitivo then if police_data[ nombre_fugitivo ] then outputChatBox( nombre_fugitivo.." es buscado por la policía.", player, 0, 255, 0 ) outputChatBox( "Motivo: "..police_data[ nombre_fugitivo ].motivo, player, 255, 255, 0 ) outputChatBox( "Estado: "..police_data[ nombre_fugitivo ].estado, player, 255, 255, 0 ) else outputChatBox( nombre_fugitivo.." no tiene una orden de búsqueda y captura", player, 255, 0, 0 ) end end end end ) addCommandHandler( "bbusq", function( player, commandName, nombre_fugitivo ) local team = getTeamName( getPlayerTeam( player ) ) local nombre_fugitivo = tostring( nombre_fugitivo ) if team == "Policia Nacional" then if nombre_fugitivo then if police_data[ nombre_fugitivo ] then police_data[ nombre_fugitivo ] = nil outputChatBox( "Borrada la orden contra "..nombre_fugitivo, player, 0, 255, 0 ) else outputChatBox( nombre_fugitivo.." no tiene una orden de búsqueda y captura", player, 255, 0, 0 ) end end end end ) addCommandHandler( "ebusq", function( player, commandName, nombre_fugitivo, estado ) local nombre_fugitivo = tostring( nombre_fugitivo ) local estado = tostring( estado ) local team = getTeamName( getPlayerTeam( player ) ) if team == "Policia Nacional" then if nombre_fugitivo then if police_data[ nombre_fugitivo ] then local _estado = tostring( police_data[ nombre_fugitivo ].estado ) police_data[ nombre_fugitivo ].estado = estado outputChatBox( "Editada orden de búsqueda de "..nombre_fugitivo, player, 0, 255, 0 ) outputChatBox( "Nuevo estado: "..estado, player, 255, 255, 255 ) else outputChatBox( nombre_fugitivo.." no tiene una orden de búsqueda.", player, 255, 0, 0 ) end end end end ) ¿Cómo funciona? Este sistema cuenta con una serie de comandos los cuales perfectamente se pueden pasar a eventos y usar junto a una GUI y hacerlo más práctico, no obstante, esta es una versión libre por lo cual funciona con comandos, los cuales, son los siguientes: /addbusq [nombre del fugitivo] [motivo] [estado (detenido o libre)]: Con este comando añadimos una orden de búsqueda y captura a nuestra tabla global (base de datos, digamos), police_data. /checkorden [nombre del fugitivo]: Con este comando comprobamos si hay alguna orden de búsqueda pendiente en la base de datos de la policía. /bbusq [nombre del fugitivo]: Con este comando podemos borrar la orden de búsqueda del jugador en cuestión. /ebusq [nombre del fugitivo] [nuevo estado]: Con este comando podemos editar el estado de búsqueda del jugador (detenido, en búsqueda, etc...) Espero que os guste. Aún no he podido testearlo a fondo porque no tengo con quién, si alguien tiene un servidor, podemos ir mejorandolo para la comunidad
-
Good work, but, in my opinion, i hate that effect
-
You say this would be your last request but im 100% sure that you are going to request another free resource in a few days (or hours ). We can help you if you show interest in learning. We are not slaves and we are not going to do your server scripts for free.
-
@Arsilex ¿Dejarlo como un componente? ¿Cómo sería eso posible?
-
@Arsilex El tema no es reemplazar la textura (eso ya lo sé, hay una textura de los faros, con un poco de edición en photoshop y shaders puedo aplicar y quitar para hacer el efecto de intermitente), sino, dibujar en esa posición. Algo como esto: x, y, z = posicionfaro x1, y1 = getScreenFromWorldPosition( x, y, z ) dxDrawText( "←", x1, y1, x1, y1 )
-
Con vector creo que se obtenía la parte trasera del vehículo, es lo que quiero hacer.
-
@Arsilex Si, si. No es por eso, si no, sobre lo que comentaste de los arrays.
-
Gracias @Arsilex
-
@Arsilex Asignando y reemplazando a la hora de querer editarlo. Él lo que quiere es añadir. Es como hacer: tabla[1] = "Hola", tabla[2] = "Que", tabla[3] = "Tal" Bueno, te lo estoy explicando como si fueras tonto o algo (xd). De todos modos, creo que en vez de usar arrays y tonterías, con table.insert le es suficiente.
-
Quizas no funcione pero has intentado con table.insert( tabla[player], value )? El elemento player lo obtienes con getPlayerFromName si lo quieres obtener por nombre
-
Buenas, estoy realizando unos nametags y tengo un problema. Resulta que quiero hacer que se centre el texto pero no consigo hacerlo, se va a otras posiciones y si lo cambio mediante sumas o restas, el otro jugador no lo ve correctamente. ¿Cómo podría arreglarlo? Gracias de antemano: addEventHandler( "onClientRender", root, function( ) local cx, cy, cz = getCameraMatrix( ) local lx, ly, lz = getElementPosition( localPlayer ) local jugadores = getElementsByType( 'player' ) for i=1, #jugadores do local p = jugadores[i] --if players[ p ] then local x, y, z = getElementPosition( p ) local dist = getDistanceBetweenPoints3D( lx, ly, lz, x, y, z ) if dist < 15 then if isLineOfSightClear( lx, ly, lz, x, y, z, true, false, false, true, false, false, false, localPlayer ) then local name = getPlayerName( p ) local bone = { getPedBonePosition( p, 5 ) } local c = { getScreenFromWorldPosition( bone[1], bone[2], bone[3]+0.3 ) } if c[1] and c[2] then dxDrawText( name, c[1]-5, c[2]+1, 0, 0, tocolor( 0, 0, 0 ), 1, font ) dxDrawText( name, c[1]-5, c[2], 0, 0, tocolor( 255, 145, 0 ), 1, font ) end end end --end end end )
-
@Arsilex Eso es reemplazar un dato. A lo mejor quiere añadir con table.insert (? Para ello creo que era: local tabla = { } function insertarEnTabla() local player = getPlayerFromName("PrivateBeach") table.insert( tabla, player, "DATO A AÑADIR" ) end
-
Dudo que algo así se pudiera hacer en MTA. Se podría hacer algo semejante pero no igual. De todos modos, el importar animaciones actualmente está desactivado por problemas o algo así (no terminé de enterarme sobre el tema).
-
This is your 21 post and you dont care to read the basic about Lua scripting. This is a forum for help, not a free script supermarket
-
Un detalle. Para que quede perfecta en el suelo, usa getGroundPosition. He aquí el ejemplo: local white = tocolor(255,255,255,255) local x, y, z = 14.3134765625, -4.248046875, 3.1171875 -- cordenadas de la imagen local zs = getGroundPosition ( 14.3134765625, -4.248046875, 3.1171875 ) local zdj = dxCreateTexture("hospital.png") -- Textura o imagen png, etc function dxDrawImage3D(x,y,z,w,h,m,c,r,...) local lx, ly, lz = x+w, y+h, (z+tonumber(r or 0)) or z return dxDrawMaterialLine3D(x,y,z, lx, ly, lz, m, h, c or white, ...) end addEventHandler("onClientRender", root, function() dxDrawImage3D(x, y, zs, 6, 6, zdj, tocolor(255,255,255,255),0, x, y, z) end)
-
Hace un tiempo @alex17, publicó el código para hacer este tipo de dibujados en un post. Lo tengo guardado por si algún dia lo necesito. No me des las gracias a mi: local white = tocolor(255,255,255,255) local x, y, z = 1964.216796875, -2365.044921875, 13 -- cordenadas de la imagen local zdj = dxCreateTexture(":Rs-Interfaz/Hud/circle.png") -- Textura o imagen png, etc function dxDrawImage3D(x,y,z,w,h,m,c,r,...) local lx, ly, lz = x+w, y+h, (z+tonumber(r or 0)) or z return dxDrawMaterialLine3D(x,y,z, lx, ly, lz, m, h, c or white, ...) end addEventHandler("onClientRender", root, function() dxDrawImage3D(x, y, z , 6, 6, zdj, tocolor(255,255,255,255),0, x, y, z +0.5) end)
-
La pregunta del millón en este foro: ¿Estás dispuesto a pagar?
-
Con :gsub haces algo parecido a lo que te ha dicho @#Dv^, bueno, directamente la reemplazas mejor dicho. Se usa en los Roleplays bastante: getPlayerName( source ):gsub("_"," ") -- Ejemplo, pasaría de Robert_Johnson a Robert Johnson, sin la "_"
-
Ya decía yo, se me hacia extraño. Gracias por la info @Sergioks
-
@BluRay No, si a mi me da igual como vas a vivir jaja.
- 8 replies
-
- tent
- tienda de campaña
-
(and 2 more)
Tagged with:
-
Y si has generado 8.000BSF, no te puedes pagar el host? Quizás me equivoque, pero 8.000bsf es bastante dinero:
-
Buf esa ortografia @BluRay...
- 8 replies
-
- tent
- tienda de campaña
-
(and 2 more)
Tagged with:
-
Usa el evento onResourceStart para lado server y onClientResourceStart para lado cliente