aka Blue Posted April 19, 2017 Share Posted April 19, 2017 Bueno, aprovechando esta nueva sección Española, me gustaría crear mi tema para pequeños aportes para diferentes modalidades de juego, empezando por un simple script de specteo a otros jugadores el cual cuenta con lo siguiente: Comando: Utilizando el comando /spectate [nombre del jugador] podremos observar lo que hace en cada momento ya que nuestra cámara se redirigirá a la suya. Nuestra posición antes de spectear se guardará en la tabla lPos y al volver a teclear el comando /spectate, nos devolverá a la misma. Cualquier error, postear abajo. O sugerencias. SCRIPT SERVER-SIDE local lPos = { } local specteando = { } local g_permitidos = { "Admin", "Moderator", "Helper" } addCommandHandler( "spectear", function( player, cmd, name ) local name = tostring( name ) local accName = getAccountName( getPlayerAccount( player ) ) for i=1, #g_permitidos do local grupo = g_permitidos[i] if isObjectInACLGroup( "user."..accName, aclGetGroup( tostring( grupo ) ) ) then if specteando[ player ] == true then if lPos[ player ] then local x, y, z = lPos[ player ].x, lPos[ player ].y, lPos[ player ].z setElementPosition( player, x, y, z ) setCameraTarget( player, player ) setElementFrozen( player, false ) setElementAlpha( player, 255 ) else setElementPosition( player, 0, 0, -0.9 ) setElementFrozen( player, false ) setElementAlpha( player, 255 ) end else if name then local p_ = getPlayerFromName( name ) if p_ then local x, y, z = getElementPosition( player ) lPos[ player ] = { x = x, y = y, z = z } specteando[ player ] = true outputChatBox( "Ahora estás specteando a "..name, player, 0, 150, 0 ) setCameraTarget( player, p_ ) setElementFrozen( player, true ) setElementAlpha( player, 0 ) setElementPosition( player, 0, 0, 0 ) else outputChatBox( "No se ha encontrado al jugador", player, 255, 0, 0 ) end else outputChatBox( "/spectear [nombre del jugador]", player, 255, 255, 255 ) end end break end end end ) 1 Link to comment
aka Blue Posted April 24, 2017 Author Share Posted April 24, 2017 Nuevo script: 24/04/2017 Bueno, no hay mucho que explicar. Se trata de un script que permite, cuando mueves la cámara, mover la cabeza del jugador como en SA:MP. Puede ser útil para servidores Roleplay o RPG, que es donde se suele usar para no rolear mirar a x lado, etc. SCRIPT CLIENT-SIDE addEventHandler( "onClientCursorMove", getRootElement( ), function ( _, _, _, _, x, y, z ) setPedLookAt( getLocalPlayer( ), x, y, z ) end ) 1 Link to comment
aka Blue Posted April 25, 2017 Author Share Posted April 25, 2017 Nuevo script: 25/04/2017 Este script de nametags al estilo SA:MP cuenta con una barra de vida y barra de chaleco indicando el nivel de cada uno de los estados. Se puede modificar a vuestro gusto. Se añade el nametag únicamente si el jugador está logueado, esto se puede editar también: SERVER-SIDE addEventHandler( "onPlayerQuit", getRootElement( ), function( ) triggerClientEvent( root, "nmtgs:removePlayer", root, source ) end ) addEventHandler( "onPlayerLogout", getRootElement( ), function( ) triggerClientEvent( root, "nmtgs:removePlayer", root, source ) end ) addEventHandler( "onPlayerLogin", getRootElement( ), function( ) triggerClientEvent( root, "nmtgs:addPlayer", root, source ) end ) CLIENT-SIDE local players = { } addEvent( "nmtgs:addPlayer", true ) addEventHandler( "nmtgs:addPlayer", getRootElement( ), function( player ) players[ player ] = player end ) addEvent( "nmtgs:removePlayer", true ) addEventHandler( "nmtgs:removePlayer", getRootElement( ), function( player ) if players[ player ] then players[ player ] = nil end end ) 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 ) } local width, health = 80, getElementHealth( p ) local armor = getPedArmor( p ) if c[1] and c[2] then dxDrawText(name, c[1], c[2]-38, c[1], c[2], tocolor( 0, 0, 0 ), 1.5, "default-bold", "center", "center") dxDrawText(name, c[1], c[2]-40, c[1], c[2], tocolor( 255, 255, 255 ), 1.5, "default-bold", "center", "center") dxDrawRectangle( c[ 1 ] - ( width / 1.90 ), c[ 2 ] - 4, width+3, 11, tocolor( 0, 0, 0, 255 ) ) dxDrawRectangle( c[ 1 ] - ( width / 2 ), c[ 2 ] - 2.3, width, 8, tocolor( 150, 0, 0, 255 ) ) dxDrawRectangle( c[ 1 ] - ( width / 2 ), c[ 2 ] - 2.3, width * ( health / 100 ), 8, tocolor( 255, 0, 0, 255 ) ) if armor and tonumber( armor ) > 0 then dxDrawRectangle( c[ 1 ] - ( width / 1.90 ), c[ 2 ] + 10, width+3, 11, tocolor( 0, 0, 0, 255 ) ) dxDrawRectangle( c[ 1 ] - ( width / 2 ), c[ 2 ] + 11.3, width, 8, tocolor( 150, 150, 150, 150 ) ) dxDrawRectangle( c[ 1 ] - ( width / 2 ), c[ 2 ] + 11.3, width * ( armor / 100 ), 8, tocolor( 255, 255, 255, 255 ) ) end end end end end end end ) IMÁGENES Spoiler 2 Link to comment
Cracker$ Posted February 20, 2020 Share Posted February 20, 2020 SCRIPT ERROR: NameTagRP\server.Lua:16: "(" expected (to close "(" at line 13) near "<eof>" ERROR: Loading script failed: NameTagRP\server.Lua:16: "(" expected (to close "(" at line 13) near "<eof>" Que puede ser? Es el lado server del NameTag, ayuda, necesito ese script. Link to comment
aka Blue Posted February 20, 2020 Author Share Posted February 20, 2020 1 hour ago, Cracker$ said: SCRIPT ERROR: NameTagRP\server.Lua:16: "(" expected (to close "(" at line 13) near "<eof>" ERROR: Loading script failed: NameTagRP\server.Lua:16: "(" expected (to close "(" at line 13) near "<eof>" Que puede ser? Es el lado server del NameTag, ayuda, necesito ese script. Creo que has copiado mal el código. Copiandolo como lo he puesto, funciona. Lo acabo de probar. Link to comment
nyxudf Posted March 19, 2022 Share Posted March 19, 2022 Una disculpa de antemano por revivir este post viejo pero me entró la curiosidad de saber cómo se podría ocultar el nametag propio del jugador, o sea, que el jugador solo pueda ver el de los demás y no el propio. Gracias xD Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now