27/02/2024

JASS – Ver Nivel de los usuarios

0

Tengo un mapa de Warcraft 3 Frozen Throne version 1.27b y me gustaria editar el mapa con un SCOREBOARD GLOBAL que permita ver el NIVEL de cada personaje en la partida. Al referirme a cada personaje me refiero a que se pueda ver el nivel de personaje de cada usuario. Podrias ayudarme ?? quiero que el codigo sea programado en JASS, es un lenguaje de WORLD EDITOR de WARCRAFT 3.

¡Claro, puedo ayudarte a crear un Scoreboard Global en JASS para tu mapa de Warcraft 3 Frozen Throne! Para agregar un marcador global que muestre el nivel de cada personaje, necesitarás realizar algunas modificaciones en el código JASS de tu mapa. A continuación, te proporcionaré un ejemplo básico de cómo podrías implementar esto. Ten en cuenta que este es un ejemplo simple y puede requerir ajustes según tus necesidades específicas.

Primero, debes agregar las siguientes variables globales al inicio de tu script JASS:

globals
    integer SCOREBOARD_COLUMN_LEVEL   = 8
    integer SCOREBOARD_ROW_START      = 1
    integer SCOREBOARD_ROW_INCREMENT  = 1
    integer SCOREBOARD_MAX_PLAYERS   = 12
    integer LEVEL_COLUMN_INDEX        = 1
    integer SCOREBOARD_UPDATE_PERIOD = 1
endglobals

A continuación, deberás crear una función para actualizar el marcador global. Aquí hay un ejemplo de cómo podrías hacerlo:

function UpdateScoreboard takes nothing returns nothing
    local player p
    local integer rowIndex = SCOREBOARD_ROW_START

    // Actualiza el marcador para cada jugador
    loop
        exitwhen rowIndex > SCOREBOARD_MAX_PLAYERS
        set p = Player(rowIndex)

        call SetPlayerScore(p, LEVEL_COLUMN_INDEX, GetHeroLevel(GetNamedUnit("HeroName" + I2S(rowIndex))))
        set rowIndex = rowIndex + SCOREBOARD_ROW_INCREMENT
    endloop

    // Programa la próxima actualización
    call TimerStart(CreateTimer(), SCOREBOARD_UPDATE_PERIOD, false, function UpdateScoreboard)
endfunction

Esta función actualizará el marcador global con el nivel de cada héroe para cada jugador. Asegúrate de ajustar "HeroName" + I2S(rowIndex) con el nombre de tus héroes en tu mapa.

Finalmente, necesitas activar la función de actualización en el inicio de tu mapa. Puedes hacer esto con un temporizador al comienzo del juego:

function InitTriggers takes nothing returns nothing
    // Otros gatillos de inicio aquí...

    // Inicia la actualización del marcador
    call TimerStart(CreateTimer(), SCOREBOARD_UPDATE_PERIOD, false, function UpdateScoreboard)
endfunction

Estos son solo ejemplos básicos y es posible que necesites ajustar el código según las características específicas de tu mapa. Además, ten en cuenta que el ejemplo asume que tienes un héroe para cada jugador y que los héroes tienen un nombre específico en tu mapa. Asegúrate de personalizar el código según las necesidades de tu proyecto.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *