29/05/2024

Para lograr la generación de oro por segundo en el World Editor de Warcraft 3 utilizando el lenguaje JASS (Just Another Scripting Syntax) en lugar de GUI, sigue estos pasos:

  1. Abre tu mapa en el World Editor de Warcraft 3.
  2. En el Editor de Datos, crea una variable global para rastrear la cantidad de oro que se generará por segundo. Nombra esta variable, por ejemplo, goldPerSecond, y define su tipo como entero (integer).
  3. A continuación, ve al Editor de Objetos y crea una unidad que actuará como el “centro de recursos” desde el cual los jugadores obtendrán oro por segundo. Puedes usar una Mina de Oro u otro edificio apropiado.
  4. En el Editor de Habilidades, crea una nueva habilidad personalizada que representará la generación de oro. Nómbrala “Generar Oro” o cualquier otro nombre que prefieras. Define un icono y sonido para la habilidad si lo deseas.
  5. En la pestaña de Datos de esta nueva habilidad, asigna un valor a “Cantidad de Oro” (por ejemplo, 1) para determinar cuánto oro se generará por segundo.
  6. En el Editor de Objetos, selecciona la unidad que actúa como el centro de recursos y agrega la habilidad personalizada “Generar Oro” a la lista de habilidades de la unidad.
  7. Ahora, ve al Editor de JASS y crea un nuevo script para controlar la generación de oro por segundo. Puedes hacerlo de la siguiente manera:
globals
    private timer timer = CreateTimer()
endglobals

function GenerateGoldPerSecond takes nothing returns nothing
    local player p
    local integer i
    local integer goldGenerated = 0

    // Recorre todos los jugadores
    loop
        set p = Player(i)
        exitwhen p == null

        // Verifica si el jugador controla el centro de recursos
        if GetOwningPlayer(GetTriggerUnit()) == p then
            // Agrega la cantidad de oro por segundo a la variable global
            set goldGenerated = GetGoldGenerated(p) + GetUnitAbilityLevel(GetTriggerUnit(), 'A00B') // Cambia 'A00B' por el ID de la habilidad "Generar Oro"
            call SetGoldGenerated(p, goldGenerated)
            call SetPlayerState(p, PLAYER_STATE_RESOURCE_GOLD, GetPlayerState(p, PLAYER_STATE_RESOURCE_GOLD) + GetAbilityIntegerLevel('A00B', 'Abilities') // Cambia 'A00B' por el ID de la habilidad "Generar Oro"
        endif

        set i = i + 1
    endloop
endfunction

function GetGoldGenerated takes player p returns integer
    return goldGenerated[p]
endfunction

function SetGoldGenerated takes player p, integer gold returns nothing
    set goldGenerated[p] = gold
endfunction

// Inicializa las variables globales
function InitGlobals takes nothing returns nothing
    local integer i
    for i = 0 to bj_MAX_PLAYERS - 1 do
        set goldGenerated[i] = 0
    endfor
endfunction

// Activa el disparador para generar oro por segundo
function Trig_GenerateGoldPerSecond_Actions takes nothing returns nothing
    call TimerStart(timer, 1.00, true, function GenerateGoldPerSecond)
endfunction

//===========================================================================
function InitTrig_GenerateGoldPerSecond takes nothing returns nothing
    set gg_trg_GenerateGoldPerSecond = CreateTrigger()
    call TriggerRegisterTimerEventSingle(gg_trg_GenerateGoldPerSecond, 1.00)
    call TriggerAddAction(gg_trg_GenerateGoldPerSecond, function Trig_GenerateGoldPerSecond_Actions)
endfunction

Este script JASS establece un temporizador que se ejecuta cada segundo para verificar si un jugador controla el centro de recursos y, en caso afirmativo, agrega la cantidad especificada de oro por segundo al jugador.

  1. Asegúrate de ajustar los valores y detalles según tus necesidades específicas de mapa. Asegúrate de reemplazar 'A00B' con el ID de la habilidad “Generar Oro” en tu mapa.
  2. Finalmente, inicia la función InitTrig_GenerateGoldPerSecond en el editor de JASS para activar el disparador y comenzar a generar oro por segundo.

Estos pasos te permitirán crear un sistema de generación de oro por segundo en Warcraft 3 utilizando JASS en el World Editor. Ten en cuenta que el código JASS es más avanzado y requiere un buen conocimiento de programación en Warcraft 3. Asegúrate de guardar y compilar tu mapa después de realizar estos cambios.

Deja un comentario

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