-Rex-

Members
  • Content count

    220
  • Joined

  • Last visited

Community Reputation

5 Neutral

3 Followers

About -Rex-

  • Rank
    Trick

Details

  • Location
    Ecuador
  • Interests
    Powerlifting
  1. Solicito ayuda en un script.

    onVehicleExit no tiene nada que ver con lo que quiere hacer, debe usar este evento https://wiki.multitheftauto.com/wiki/OnVehicleExplode
  2. AYUDA

    busca en la comunidad, savesystem
  3. GET account ID

    .
  4. Buenas, paso que hace tiempo un cliente me pidio que le haga un script de duelos lo cual luego me arrepenti por haber pedido demasiado poco por el script. Entonces decidí nunca entregarlo, logré desarrollarlo casi por completo pero después por temas de la Universidad no segui trabajando en nada que tenga que ver con MTA y deje muchos proyectos sin terminar. Yendo al grano, el script posee estas caracteristicas Interfaz en DX ( No multiresolucion, fue hecha en 1280x600 ) Puedes elegir entre 8 mapas diferentes Cada duelo es creado en una dimension diferente junto con el mapa ( Es decir cada vez que crees un duelo automaticamente se buscara X dimension desocupada creando el mapa en dicha dimension y redireccionando a los jugadores a la misma ). Se otorgaran armas al jugador en cada respawn Para ganar el duelo debes matar a tu contrincante 5 veces. En fin, el script esta casi por completo, faltaron agregar las Coordenadas de los spawns, los mapas y siertas cosillas en la interfaz. Espero lo puedan modificar a su gusto. Imagenes: https://imgur.com/a/DKkHy Código Cliente Código server link de descarga: https://mega.nz/#!JuY3UKiI!IeYNbel4Ll0pUS5jCx6t0D_ixdZH3NWzNl6KcQL89IE
  5. Ya que tenia un tiempo sin scriptear nada en Lua, decidí recrear mi sistema de grupos, pero esta vez con diferentes funcionalidades.. El sistema solo funcionara a partir de comandos. Caracteristicas previas: Cualquiera puede crear su grupo No hay limite de espacio para sus miembros Solo dos rangos por defecto ( modificables ). Puedes expulsar miembros introduciendo su nickname o su nombre de cuenta En caso de que un jugador este desconectado cuando sea expulsado, se le será notificado cuando ingrese quien lo expulso. Puedes ver detalles como: Nombre del grupo, Quién lo creo y cuando, Miembros totales y miembros activos. Saber a que distancia esta tu compañero y demás que segun tenga tiempo le ire añadiendo, cualquier sugerencia te agradecería mucho.
  6. MODO LINEAGE2

    Algo parecido al LOL.
  7. Tapleto Host es de fiar?

    Ya lo probe, tiene Mala ping.
  8. JOB - (2 personas) <AYUDA

    Explicate mejor ?) Ah, un consejo... Podrias usar tablas en vez de variables.
  9. [Ayuda] Tengo una duda!

    Podría servirte esa función https://wiki.multitheftauto.com/wiki/FetchRemote
  10. POR DONDE EMPIEZO?

    Todos aqui empezamos en Lua, Jeje. Es más facil de aprender, Podrias empezar creando scripts basicos y de ahi poco a poco poniendote retos; Pero si lo que quieres es empezar de lleno en la programación, Pues C# es un buen lenguaje. Zysharp suena mas zukulemto 7w7
  11. [Ayuda] Tengo una duda!

    Podrías sizas descargar el archivo desde servidor y mandarlo al lado del cliente para que se carge.
  12. Es necesario que veas esto!......

    http://mtaz.wikiforum.net/ Ve a la seccion tutoriales y busca.
  13. [APORTE] Sistema básico de grupos

    No es necesario que instales nada a tu servidor
  14. Es necesario que veas esto!......

    En el foro brasileño encuentras tutoriales de todo eso
  15. Buscando entre las cosas antiguas que tenia en mi PC, encontré un script que habia desarrollado hace algún tiempo y decidí por aportarlo a la comunidad. El script es simple, funciona por niveles de conquista, es decir cuando empiezas a conquistar un territorio comenzará desde 0 y cada siertos segundos irá aumentando de 1 en 1 los niveles. Server side --------------------------------------------------------------------- -- Desarrollador/Developer: -Rex- -- Proyecto/Proyect: N/A -- Contacto/Contact: https://www.facebook.com/rexscripting/ -- -- Libre uso y modificacion, No borrar los creditos, Gracias --------------------------------------------------------------------- local base = dbConnect( "sqlite", "base.db" ) local deleteOnStop = false function crearBaseDeDatos( ) if deleteOnStop then local qh = dbQuery( base,"DROP TABLE turfs" ) dbFree( qh ) end local cc = base:query( "CREATE TABLE IF NOT EXISTS turfs ( idturf INT, gangOwner STRING, color STRING )") dbFree( cc ) if isDbTableEmpty( base, "turfs" ) then for i=1,#zonePositions do dbExec( base,"INSERT INTO turfs ( idturf, gangOwner, color) VALUES(?,?,?)", i, "none", "#00ff00" ) end end for i, playerG in ipairs( getElementsByType( "player" )) do playerG:setData( "isInTurf", nil ) playerG:setData( "turfNivel", nil ) end for i,v in ipairs( zonePositions ) do local PosX = v.x local PosY = v.y local ancho = v.w local largo = v.h local col = createColRectangle( PosX, PosY, ancho, largo ) local radar = createRadarArea( PosX, PosY, ancho, largo, 0, 255, 0, 155 ) local testQuery = dbQuery( base, "SELECT * FROM turfs WHERE idturf=?", i ) local poll = dbPoll( testQuery, -1 ) for _, columna in ipairs( poll ) do local turfOwner = columna["gangOwner"] local turfColor = columna["color"] col:setData ( "turfID", i ) col:setData ( "turfOwner", turfOwner ) col:setData ( "turfColor", turfColor ) local colors = { getColorFromString( turfColor ) } local r = colors[1] local g = colors[2] local b = colors[3] setRadarAreaColor( radar, r, g, b, 155 ) end col:setData ( "turfC", true ) col:setData ( "turfRadar", radar ) end end addEventHandler( "onResourceStart", getRootElement(), crearBaseDeDatos ) function hill_Enter ( thePlayer ) if getElementData( source, "turfC" ) and getElementType( thePlayer ) == "player" then if not isPedInVehicle( thePlayer ) then local groupPlayer = getElementData( thePlayer, "Group" ) if not gangs[groupPlayer] then gangs[groupPlayer] = { } end if groupPlayer and groupPlayer ~= "N/A" then local turfID = source:getData( "turfID" ) local turfOwner = source:getData( "turfOwner" ) local radarArea = source:getData( "turfRadar" ) if turfOwner ~= "none" then outputChatBox( "Este territorio pertenece a "..turfOwner, thePlayer, 255, 255, 255, true ) end if turfOwner ~= groupPlayer then thePlayer:setData( "theTurf", source ) if not isRadarAreaFlashing( radarArea ) then setRadarAreaFlashing( radarArea, true ) end if not gangs[groupPlayer]["turf_"..tostring( turfID ) ] then if isTimer( gangs[groupPlayer]["timerturf_"..tostring( turfID ) ] ) then killTimer( gangs[groupPlayer]["timerturf_"..tostring( turfID ) ] ) end gangs[groupPlayer]["turf_"..tostring( turfID ) ] = 0 gangs[groupPlayer]["timerturf_"..tostring( turfID ) ] = setTimer( function ( col, thePlayer ) local groupPlayer = thePlayer:getData( "Group" ) local turfID = col:getData( "turfID" ) local turfOwner = col:getData( "turfOwner" ) local radarArea = col:getData( "turfRadar" ) local otrosGrupos = 0 local miGrupo = 0 local otrosGTable = groupPlayer for i,v in ipairs( getElementsWithinColShape( col, "player" ) ) do if getElementData( v, "Group" ) == groupPlayer then miGrupo = miGrupo + 1 end if v ~= thePlayer then if getElementData( v, "Group" ) ~= groupPlayer then if gruposOficiales[getElementData( v, "Group" )] then otrosGrupos = otrosGrupos + 1 otrosGTable = otrosGTable..", "..getElementData( v, "Group" ) end end end end if otrosGrupos == 0 then if miGrupo == 0 then local contador = gangs[groupPlayer]["turf_"..tostring( turfID ) ] if contador > 0 then gangs[groupPlayer]["turf_"..tostring( turfID ) ] = math.max( gangs[groupPlayer]["turf_"..tostring( turfID ) ] - 1, 0 ) else for i,v in ipairs( getElementsByType( "player" ) ) do if getElementData( v, "Group" ) == groupPlayer then outputChatBox( "Perdieron la conquista del territorio "..getTurfName( tonumber( turfID ) ), v, 255, 255, 255, true ) end end resetTurf( col ) resetGTimer( groupPlayer, turfID ) end return end gangs[groupPlayer]["turf_"..tostring( turfID ) ] = gangs[groupPlayer]["turf_"..tostring( turfID ) ] + 1 local contador = gangs[groupPlayer]["turf_"..tostring( turfID ) ] for i,v in ipairs( getElementsWithinColShape( col, "player" ) ) do if getElementData( v, "Group" ) == groupPlayer then setElementData ( v, "nivelTturf", contador ) end end if contador >= niveles then setTurfOwner( col, groupPlayer ) resetGTimer( groupPlayer, turfID ) darPremio( col, groupPlayer ) outputChatBox( groupPlayer.." Conquisto el territorio "..getTurfName( tonumber( turfID ) ), root, 255, 255, 255, true ) end else gangs[groupPlayer]["turf_"..tostring( turfID ) ] = math.max( gangs[groupPlayer]["turf_"..tostring( turfID ) ] - 1, 0 ) local value = aleatorio( ) if value then outputChatBox ( "#0000FF"..otrosGTable.." #00FF00Están en guerra por el territorio #0000FF"..getTurfName( tonumber( turfID ) ), root, 255, 255, 255, true ) end end end, segundosNivel*1000, 0, source, thePlayer ) end end end end end end addEventHandler ( "onColShapeHit", root, hill_Enter ) function hill_Leave ( thePlayer ) setElementData ( thePlayer, "theTurf", nil ) setElementData ( thePlayer, "nivelTturf", nil ) end addEventHandler ( "onColShapeLeave", root, hill_Leave ) function resetGTimer( group, turfID ) killTimer( gangs[group]["timerturf_"..tostring( turfID ) ] ) gangs[group]["turf_"..tostring( turfID ) ] = nil for i,v in ipairs( getElementsByType( "player" ) ) do if getElementData( v, "Group" ) == group then setElementData ( v, "theTurf", nil ) setElementData ( v, "nivelTturf", nil ) end end end function darPremio( col, group ) for i, player in ipairs( getElementsWithinColShape( col, "player" ) ) do if getElementData( player, "Group" ) == group then givePlayerMoney( player, 6000 ) end end end function toboolean(value) if type(value) == "string" or type(value) == "number" or type(value) == "table" then return true end return false end function dbTableExists( name ) if ( type( name ) == "string" ) then local qh = base:query( "SELECT * FROM "..name ) local tabla = qh:poll( -1 ) return toboolean ( tabla ) end return false end function isDbTableEmpty( database, tabla ) local testQuery = dbQuery( database, "SELECT * FROM "..tabla ) local poll = dbPoll( testQuery, -1 ) if #poll == 0 then return true end return false end function getTurfOwner( col ) if not getElementData ( col, "turfC" ) then return "none" end local data = getElementData ( col, "turfOwner" ) if data and data ~= "none" then return data end return "none" end function getTurfName( id ) if turfNames[id] then return turfNames[id] end return "Territorio Desconocido" end function aleatorio( ) local a = { [0] = false, [1] = true, [2] = false, [3] = false, } return a[math.random( 0, 3)] end function setTurfOwner( col, grupo ) local radarArea = col:getData( "turfRadar" ) local groupColor = exports.gpsystem:getGroupColor( grupo ) local colors = { getColorFromString( groupColor ) } local r = colors[1] local g = colors[2] local b = colors[3] col:setData ( "turfOwner", grupo ) col:setData ( "turfColor", turfColor ) setRadarAreaFlashing( radarArea, false ) setRadarAreaColor( radarArea, r, g, b, 155 ) dbExec( base, "UPDATE turfs SET gangOwner=?, color=? WHERE idturf=?", grupo, groupColor, col:getData( "turfID" ) ) end function resetTurf( col ) local radarArea = getElementData( col, "turfRadar" ) setRadarAreaFlashing( radarArea, false ) end Client side --------------------------------------------------------------------- -- Desarrollador/Developer: -Rex- -- Proyecto/Proyect: N/A -- Contacto/Contact: https://www.facebook.com/rexscripting/ -- -- Libre uso y modificacion, No borrar los creditos, Gracias --------------------------------------------------------------------- local x, y = guiGetScreenSize( ) local bool = false local parpadeo = 255 addEventHandler("onClientRender", root, function() if not bool then if parpadeo > 0 then parpadeo = parpadeo - 5 else bool = true end else if parpadeo < 255 then parpadeo = parpadeo + 5 else bool = false end end local turfCol = localPlayer:getData( "theTurf" ) if turfCol then local turfNivel = localPlayer:getData( "nivelTturf" ) dxDrawText("Conquista "..( turfNivel or 0 ).."/"..tostring( niveles ), 0 + 1, ( y-36 ) + 1, 1280 + 1, 590 + 1, tocolor(24, 24, 24, parpadeo), 1.00, "bankgothic", "center", "top", false, false, false, false, false) dxDrawText("Conquista "..( turfNivel or 0 ).."/"..tostring( niveles ), 0, ( y-36 ), 1280, 590, tocolor(247, 19, 19, parpadeo), 1.00, "bankgothic", "center", "top", false, false, false, false, false) end end ) Shared gangs = { } segundosNivel = 15 niveles = 10 zonePositions = { { x = -1347.57421875, y = 87.8779296875, w = 200, h = 200 }, { x = -1330.7109375, y = -162.4765625, w = 100, h = 100 }, { x = -1219.8310546875, y = -136.3349609375, w = 100, h = 100 }, } turfNames = { [1] = "Territorio 1", [2] = "Territorio 2", [3] = "Territorio 3", } No te olvides de agregar esto al meta.xml <oop>true</oop>