• Inicio
  • Miembros
  • STAFF
  • Ayuda
  • Buscar
  • Register
  • Login
  • Inicio
  • Miembros
  • Ayuda
  • Buscar
Foros de Araboth Roleplay Comunidad Aportes Sistema de graffity

 
  • 0 voto(s) - 0 Media
Sistema de graffity
Lucass
Sin conexión

Usuario
Registrados
Mensajes: 6
Temas: 5
Registro en: Mar 2024
Reputación: 2
#1
24-04-2024, 07:21 PM
Buenas chicos, quería aportar la base de un sistema de grafitis pero creo que éste sistema puede aportar mucho al servidor y dar mucho rol para las familias. Creo que con ésta base se les puede ocurrir muchas ideas y mejorarlo en un 200%, éxitos.

Código:
-- Creamos una tabla para almacenar los grafitis pendientes de aprobación
local grafitisPendientes = {}

-- Creamos una tabla para almacenar los grafitis realizados por cada familia
local grafitisPorFamilia = {}

-- Definimos una función para mostrar el panel de escritura
function mostrarPanelDeEscritura(player)
    -- Verificamos si la familia del jugador ha alcanzado el límite diario de grafitis
    local playerTeam = getPlayerTeam(player)
    if not playerTeam then
        outputChatBox("Necesitas pertenecer a una familia para hacer grafiti.", player, 255, 0, 0)
        return
    end
   
    local teamName = getTeamName(playerTeam)
    if not grafitisPorFamilia[teamName] then
        grafitisPorFamilia[teamName] = 0
    end
   
    if grafitisPorFamilia[teamName] >= 3 then
        outputChatBox("Tu familia ha alcanzado el límite diario de grafitis.", player, 255, 0, 0)
        return
    end
   
    -- Mostramos el panel de escritura
    local screenWidth, screenHeight = guiGetScreenSize()
    local panel = guiCreateWindow((screenWidth - 400) / 2, (screenHeight - 200) / 2, 400, 200, "Escribir grafiti", false)
    local editText = guiCreateEdit(0.05, 0.3, 0.9, 0.4, "", true, panel)
    local button = guiCreateButton(0.3, 0.7, 0.4, 0.2, "Confirmar", true, panel)
   
    addEventHandler("onClientGUIClick", button, function()
        local grafitiText = guiGetText(editText)
        destroyElement(panel)
        solicitarAprobacion(player, grafitiText)
    end, false)
end

-- Definimos una función para solicitar la aprobación del grafiti
function solicitarAprobacion(player, texto)
    table.insert(grafitisPendientes, {player = player, texto = texto})
    outputChatBox("¡Nuevo grafiti pendiente de aprobación!", root, 255, 255, 0)
end

-- Definimos una función para mostrar el panel de grafitis pendientes
function mostrarPanelDeGrafitisPendientes(admin)
    local screenWidth, screenHeight = guiGetScreenSize()
    local panel = guiCreateWindow((screenWidth - 400) / 2, (screenHeight - 300) / 2, 400, 300, "Grafitis Pendientes", false)
    local gridList = guiCreateGridList(0.05, 0.05, 0.9, 0.8, true, panel)
    guiGridListAddColumn(gridList, "Jugador", 0.5)
    guiGridListAddColumn(gridList, "Texto", 0.5)
   
    for _, grafiti in ipairs(grafitisPendientes) do
        local row = guiGridListAddRow(gridList)
        guiGridListSetItemText(gridList, row, 1, getPlayerName(grafiti.player), false, false)
        guiGridListSetItemText(gridList, row, 2, grafiti.texto, false, false)
    end
   
    local button = guiCreateButton(0.3, 0.9, 0.4, 0.1, "Aprobar seleccionados", true, panel)
   
    addEventHandler("onClientGUIClick", button, function()
        local selectedItems = guiGridListGetSelectedItems(gridList)
       
        for _, item in ipairs(selectedItems) do
            local row = item.row
            local grafiti = grafitisPendientes[row]
            realizarGrafiti(grafiti.player, grafiti.texto)
            table.remove(grafitisPendientes, row)
        end
       
        guiGridListClear(gridList)
        for _, grafiti in ipairs(grafitisPendientes) do
            local row = guiGridListAddRow(gridList)
            guiGridListSetItemText(gridList, row, 1, getPlayerName(grafiti.player), false, false)
            guiGridListSetItemText(gridList, row, 2, grafiti.texto, false, false)
        end
    end, false)
end

-- Definimos una función para verificar si un jugador es administrador
function isPlayerAdmin(player)
    -- Aquí debes agregar tu lógica para determinar si un jugador es administrador
    -- Por ejemplo, puedes usar una tabla de administradores o una función específica del servidor
    return true -- Por ahora asumiremos que todos los jugadores son administradores para fines de demostración
end

-- Definimos una función para realizar el grafiti en el juego
function realizarGrafiti(player, texto)
    local x, y, z = getElementPosition(player)
    local _, _, rot = getElementRotation(player)
    local offset = 1.5
    local grafitiX = x + offset * math.cos(math.rad(rot))
    local grafitiY = y + offset * math.sin(math.rad(rot))
    local grafitiObject = create3DText(texto, grafitiX, grafitiY, z, 0, 0, 0)
    outputChatBox("¡Grafiti realizado! Texto: " .. texto, player, 0, 255, 0)
   
    local playerTeam = getPlayerTeam(player)
    if playerTeam then
        local teamName = getTeamName(playerTeam)
        grafitisPorFamilia[teamName] = (grafitisPorFamilia[teamName] or 0) + 1
    end
end

-- Definimos un comando para que los administradores vean los grafitis pendientes
addCommandHandler("grafitispendientes", function(player)
    if not isPlayerAdmin(player) then
        outputChatBox("No tienes permiso para usar este comando.", player, 255, 0, 0)
        return
    end
   
    mostrarPanelDeGrafitisPendientes(player)
end)

-- Definimos un comando para que los jugadores hagan grafiti
addCommandHandler("grafiti", function(player)
    mostrarPanelDeEscritura(player)
end)

-- Restablecemos el contador de grafitis diario para cada familia al inicio de cada día (cada 24 horas)
setTimer(function()
    grafitisPorFamilia = {}
end, 24 * 60 * 60 * 1000, 0) -- Se ejecuta cada 24 horas

Hay que ajustar la función "isPlayerAdmin" para que refleje la lógica real de tu servidor para determinar si un jugador es administrador.
Breeze slot
Sin conexión

Usuario
Registrados
Mensajes: 19
Temas: 10
Registro en: Apr 2024
Reputación: 0
#2
25-04-2024, 02:13 PM
Quedaría obsoleto. Aca no se interpretan pandillas, puro mafias y organizaciones.
Lucass
Sin conexión

Usuario
Registrados
Mensajes: 6
Temas: 5
Registro en: Mar 2024
Reputación: 2
#3
28-04-2024, 05:28 PM
(25-04-2024, 02:13 PM)Breeze slot escribió: Quedaría obsoleto. Aca no se interpretan pandillas, puro mafias y organizaciones.

No sabes ni lo que jugas si crees que éste servidor se abstiene de roles de pandillas.

Te dejo hasta una guía de como te enseñan a hacerlo por si tenes dificultades en el rol.
Ivako
Sin conexión

get busy.
Registrados
Mensajes: 2,637
Temas: 11
Registro en: Nov 2022
Reputación: 42
Personaje principal: Santana
#4
16-05-2024, 01:02 PM
grande mi bro el rolero
lollypop
Sin conexión

im a dog woof woof
CONTRIBUYENTE
Mensajes: 2,125
Temas: 73
Registro en: Aug 2023
Reputación: 64
Personaje principal: gladys777
#5
27-06-2024, 03:44 PM (Última modificación: 27-06-2024, 03:44 PM por lollypop.)
Muy buena idea sisi.

(25-04-2024, 02:13 PM)Breeze slot escribió: Quedaría obsoleto. Aca no se interpretan pandillas, puro mafias y organizaciones.

kkkk mi amigo el que mas juega
[Imagen: KQtSHql.jpeg]
Nicolashh
Sin conexión

CONTRIBUYENTE
CONTRIBUYENTE
Mensajes: 2,103
Temas: 13
Registro en: Jul 2023
Reputación: 24
Personaje principal: Nicolas_Segovia
#6
07-07-2024, 02:21 AM
grande mi bro rol serio
[Imagen: emoji-looking-surprised-at-computer.gif]
lollypop
Sin conexión

im a dog woof woof
CONTRIBUYENTE
Mensajes: 2,125
Temas: 73
Registro en: Aug 2023
Reputación: 64
Personaje principal: gladys777
#7
07-07-2024, 05:00 PM
deja de farmear msj nicolash
[Imagen: KQtSHql.jpeg]
Nicolashh
Sin conexión

CONTRIBUYENTE
CONTRIBUYENTE
Mensajes: 2,103
Temas: 13
Registro en: Jul 2023
Reputación: 24
Personaje principal: Nicolas_Segovia
#8
07-07-2024, 08:00 PM
deja de farmear msj lollypop
[Imagen: emoji-looking-surprised-at-computer.gif]
lollypop
Sin conexión

im a dog woof woof
CONTRIBUYENTE
Mensajes: 2,125
Temas: 73
Registro en: Aug 2023
Reputación: 64
Personaje principal: gladys777
#9
08-07-2024, 09:28 PM
No voy a estar activo hoy en el rol. Estoy conociendo una mujer (una de verdad) en una hora y media (no espero que muchos de ustedes entiendan) por favor no me envien mensaje preguntando si puedo rolear (estoy conociendo una mujer, ok) Lo mas probable es que estes tomando un descanso porque yo estare con la mujer (repito no espero que entiendas) ella esta realmente interesada en mi y no es una situacion que pueda pasar por alto por un juego sin sentido como el gta de todas formas lo que pase no sera interesante (porque conocere a una mujer, no es algo que realmente vayas a entender) esta es mi vida ahora. Conocer una mujer y no perder mi precioso tiempo en el rol, tengo que pasar de cosas tan simples y empezar a disfrutar (no entenderias) ? ☝️
[Imagen: KQtSHql.jpeg]
lollypop
Sin conexión

im a dog woof woof
CONTRIBUYENTE
Mensajes: 2,125
Temas: 73
Registro en: Aug 2023
Reputación: 64
Personaje principal: gladys777
#10
09-07-2024, 01:41 AM
farming jaja
[Imagen: KQtSHql.jpeg]
bliss
Sin conexión

aura

Operador
Mensajes: 6,667
Temas: 6,666
Registro en: May 2023
Reputación: 32
Personaje principal: Miku Barzinii
#11
21-04-2025, 04:09 PM
Código bastante pobre y de ChatGPT, esforzate mas la proxima.
DarkCOL
Sin conexión

SAPD
SAPD
Mensajes: 53
Temas: 2
Registro en: May 2024
Reputación: 22
Personaje principal: Zayden_Wayne
#12
24-04-2025, 07:33 PM
bro pero sin chatgpt
Ivako
Sin conexión

get busy.
Registrados
Mensajes: 2,637
Temas: 11
Registro en: Nov 2022
Reputación: 42
Personaje principal: Santana
#13
30-04-2025, 03:41 AM
bro pero sin chatgpt
« Tema anterior | Tema siguiente »

Usuarios navegando en este tema: 2 invitado(s)



Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  Sistema de inventario de una propiedad pab1ogg 1 31 07-04-2025, 08:50 AM
Último mensaje: Ivako
  Sistema Economico y Administrativo Peco22 11 925 09-07-2024, 01:54 AM
Último mensaje: lollypop

  • Ver la versión para impresión
  • Suscribirse a este tema
Salto de foro:

© Designed by D&D - Powered by MyBB

Modo extendido
Modo compacto