JASS – Cuadros de Votaciones
Para crear un sistema de diálogos de cuadros de votación en JASS que se inicie cuando el mapa se carga y permita a los jugadores elegir entre dos opciones (“Ganar estadísticas por la noche” o “No ganar estadísticas por la noche”), puedes utilizar el siguiente código como punto de partida:
globals
integer dialog
integer dialogButton1
integer dialogButton2
boolean shouldGainStats = true // Por defecto, ganar estadísticas por la noche
endglobals
function CreateDialog takes nothing returns nothing
set dialog = DialogCreate()
call DialogSetMessage(dialog, "¿Deseas que tu héroe gane estadísticas por la noche?")
set dialogButton1 = DialogAddButton(dialog, "Ganar estadísticas por la noche")
set dialogButton2 = DialogAddButton(dialog, "No ganar estadísticas por la noche")
call DialogDisplay(Player(0), dialog, true)
endfunction
function DialogResponse takes nothing returns nothing
local integer response = GetClickedButton()
if response == dialogButton1 then
set shouldGainStats = true
elseif response == dialogButton2 then
set shouldGainStats = false
endif
call DialogClear(dialog)
endfunction
function InitTriggers takes nothing returns nothing
call CreateDialog()
call TimerStart(CreateTimer(), 1.0, false, function CheckDialogStatus)
endfunction
function CheckDialogStatus takes nothing returns nothing
if not DialogIsVisible(dialog) then
call DestroyTimer(GetExpiredTimer())
call InitMapConfig()
end
endfunction
function InitMapConfig takes nothing returns nothing
// Realiza la configuración inicial del mapa aquí, basada en 'shouldGainStats'.
if shouldGainStats then
// Configuración para ganar estadísticas por la noche
// Por ejemplo, puedes llamar a la función que habíamos definido previamente para ganar estadísticas por la noche.
else
// Configuración para no ganar estadísticas por la noche
endif
endfunction
function CreateTriggers takes nothing returns nothing
call InitTriggers()
endfunction
//===========================================================================
function Init takes nothing returns nothing
call CreateTriggers()
endfunction
En este código:
- Creamos un cuadro de diálogo con dos botones (“Ganar estadísticas por la noche” y “No ganar estadísticas por la noche”) utilizando la función
CreateDialog
. - El jugador puede elegir una de las opciones en el cuadro de diálogo. El resultado se almacena en la variable global
shouldGainStats
en la funciónDialogResponse
. - Usamos un temporizador en la función
CheckDialogStatus
para verificar si el cuadro de diálogo ya no está visible. Una vez que el jugador elige una opción, el cuadro de diálogo se cierra, y el temporizador se inicia para ejecutar la funciónInitMapConfig
. - La función
InitMapConfig
es donde debes realizar la configuración inicial del mapa basada en la elección del jugador. Puedes personalizar esta parte según tus necesidades.
Asegúrate de asociar el activador que llama a CreateTriggers
al evento de inicio del mapa en el Editor de Mapas de Warcraft 3.
Danos tu opinion abajo usando tu cuenta de facebook.