Hello there, I hope you are all fine.
So I decided to do the jump and start converting my map to Lua, trigger by trigger.
But before I even go further, I cannot even manage to get my triggers to run.
I have made a GUI trigger :
Init() is my old Jass Map Initialization trigger that I converted :
Of course I have commented out all the disabled triggers that I haven't converted yet.
But these 2 converted triggers do not run :
- CameraZoomSlider()
- HandleCount()
In fact the whole Init() function doesn't seem to run at all...
Here are these triggers :
CameraZoomSlider() :
HandleCount() :
So I have 2 questions :
- Why doesn't my custom script line "Init()" call the function Init() ???
- Are my 2 converted triggers OK when it comes to Lua syntax ?
Thanks for any help provided.
So I decided to do the jump and start converting my map to Lua, trigger by trigger.
But before I even go further, I cannot even manage to get my triggers to run.
I have made a GUI trigger :
-
Lua Init
-
Events
-
Time - Elapsed game time is 0.00 seconds
-
-
Conditions
-
Actions
-
Custom script: Init()
-
-
Init() is my old Jass Map Initialization trigger that I converted :
Lua:
function Init()
InitializeGlobals()
-- Map configuration
DoNotSaveReplay()
SetMapFlag(MAP_LOCK_SPEED, true)
SetMapFlag(MAP_USE_HANDICAPS, true)
SetFloatGameState(GAME_STATE_TIME_OF_DAY, 18.00)
SuspendTimeOfDay(true)
ClearMapMusic()
SetCreepCampFilterState(false)
SetPlayerName(BallsMaster, "Balls Master")
SetPlayerName(Player(PLAYER_NEUTRAL_PASSIVE), "Ether")
SetPlayerState(BallsMaster, PLAYER_STATE_GIVES_BOUNTY, 1)
RemoveAllGuardPositions(BallsMaster)
-- Hide standard UI
BlzHideOriginFrames(true)
BlzEnableUIAutoPosition(false)
BlzFrameSetAbsPoint(BlzGetFrameByName("ConsoleUI", 0), FRAMEPOINT_BOTTOM, 0.0, -0.24)
BlzFrameSetVisible(BlzGetFrameByName("ConsoleUIBackdrop", 0), false)
CameraZoomSlider()
-- Initialize Custom Triggers
-- Game
-- DifficultyDialogs()
-- APlayerLeaves()
-- HostAndPlayersControls()
-- Levels
-- EndLevel()
-- Towers and Heroes
-- Advanced_Sell()
-- SFXOnUpgrade()
-- RangeIndicate()
-- SetupOnBuildOrUpgrade()
-- BuildBlockingTowersWall()
-- ReorderBallAfterTowerKilled()
-- Custom Spells
-- AutoBlinkSpell()
-- FixRageEffect()
-- SetAutoCastState()
-- FlashForwardSpell()
-- GoBackHomeSpell()
-- ElectricalDisruptionSpell()
HandleCount()
-- End of Map Init
-- TimerStart(MapInitFinished, 0.00, false, function AfterInit)
end
But these 2 converted triggers do not run :
- CameraZoomSlider()
- HandleCount()
In fact the whole Init() function doesn't seem to run at all...
Here are these triggers :
CameraZoomSlider() :
Lua:
function CameraZoomSlider()
local cameraZoomSlider=CreateTrigger()
local verticalSlider=BlzCreateFrameByType("SLIDER", "distance", BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0), "QuestMainListScrollBar", 0)
local sliderToolTip=BlzCreateFrameByType("TEXT", "SliderTitle", BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0), "", 0)
local color= BlzConvertColor(255, 255, 255, 0)
-- Set parametees for the Slider...
BlzFrameSetSize(verticalSlider, 0.016, 0.12)
BlzFrameSetAbsPoint(verticalSlider, FRAMEPOINT_BOTTOMLEFT, 0.002, 0.0)
BlzFrameSetMinMaxValue(verticalSlider, 100, 4000)
BlzFrameSetValue(verticalSlider, 2600)
BlzFrameSetStepSize(verticalSlider, 10)
-- ... and for the sliderToolTip
BlzFrameSetTextColor(sliderToolTip, color)
BlzFrameSetText(sliderToolTip, "USE THIS SLIDER TO CONTROL THE CAMERA ZOOM")
BlzFrameSetScale(sliderToolTip, 1.60)
BlzFrameSetAbsPoint(sliderToolTip, FRAMEPOINT_BOTTOMLEFT, 0.0, 0.14)
BlzFrameSetTooltip(verticalSlider, sliderToolTip)
-- Set Initial camera distance for all players
SetCameraField(CAMERA_FIELD_TARGET_DISTANCE, 2600, 0)
-- Add event and actions in conditions to trigger for the Slider
BlzTriggerRegisterFrameEvent(cameraZoomSlider, verticalSlider, FRAMEEVENT_SLIDER_VALUE_CHANGED)
TriggerAddCondition(cameraZoomSlider, function()
local distance=BlzGetTriggerFrameValue()
local farZ=distance+2100
if (GetTriggerPlayer()==GetLocalPlayer()) then
SetCameraField(CAMERA_FIELD_TARGET_DISTANCE, distance, 0)
SetCameraField(CAMERA_FIELD_FARZ, farZ, 0 )
SetTerrainFogEx(0, farZ, farZ, 0, 1.00, 1.00, 1.00)
end
return false
end)
-- niling
verticalSlider=nil
sliderToolTip=nil
cameraZoomSlider=nil
end
Lua:
function HandleCount()
local hC=CreateTrigger()
TriggerRegisterTimerEvent(hC, 2.00, true)
TriggerAddCondition(hC, function ()
local t=CreateTimer()
BJDebugMsg("Current handle count = "..(GetHandleId(t)-0x100000))
DestroyTimer(t)
t=nil
return false
end)
hC=nill
end
So I have 2 questions :
- Why doesn't my custom script line "Init()" call the function Init() ???
- Are my 2 converted triggers OK when it comes to Lua syntax ?
Thanks for any help provided.