[NFP] [Solved] Why specific function in GameEvents is perceived as nil?

Lenin1870

Chieftain
Joined
Mar 16, 2013
Messages
50
Code:
-- JFD_YukinoGermany_Decisions_UIFunctions
-- Author: JFD
-- DateCreated: 12/11/2018 7:55:56 AM
--==========================================================================================================================
-- INCLUDES
--==========================================================================================================================
include("JFD_YukinoGermany_Utils.lua");
--===========================================================================
-- CACHING UTILS
--===========================================================================   
local ChangeMilitarizationBalance;
local GetMilitarizationBalanceMax;
local GetMilitarizationBalance;
local SetMilitarizationBalance;
local GetMilitarizationPerTurn;
----------------------------------------------------------------------------
--JFD_YukinoGermany_InitUtils
function JFD_YukinoGermany_InitUtils()
    ChangeMilitarizationBalance = ExposedMembers.YukinoGermany.ChangeMilitarizationBalance;
    GetMilitarizationBalanceMax = ExposedMembers.YukinoGermany.GetMilitarizationBalanceMax;
    GetMilitarizationBalance = ExposedMembers.YukinoGermany.GetMilitarizationBalance;
    GetMilitarizationPerTurn = ExposedMembers.YukinoGermany.GetMilitarizationPerTurn;
end
JFD_YukinoGermany_InitUtils()
--==========================================================================================================================
-- CORE FUNCTIONS
--========================================================================================================================== 
-- GLOBALS
----------------------------------------------------------------------------------------------------------------------------        
local iPlayerID = Game.GetLocalPlayer()
----------------------------------------------------------------------------------------------------------------------------
-- MILITARIZATION
----------------------------------------------------------------------------------------------------------------------------
--JFD_YukinoGermany_PlayerTurnStarted
function JFD_YukinoGermany_PlayerTurnStarted(iPlayerID)
    local pPlayer = Players[iPlayerID];
    local numPoints = GetMilitarizationPerTurn(iPlayerID);
    local numMilitarizationBalance = GetMilitarizationBalance(iPlayerID);
    local numMilitarizationBalanceMax = GetMilitarizationBalanceMax(iPlayerID);
    if numMilitarizationBalance < numMilitarizationBalanceMax then
        ChangeMilitarizationBalance(iPlayerID, numPoints);
    end
end
GameEvents.PlayerTurnStarted.Add(JFD_YukinoGermany_PlayerTurnStarted);
---------------------------------------------------------------------------------------------------------------------------- 
--JFD_YukinoGermany_MilitarizationChanged
function JFD_YukinoGermany_MilitarizationChanged(iPlayerID, numPoints)
    local numMilitarizationBalance = GetMilitarizationBalance(iPlayerID);
    local numMilitarizationBalanceMax = GetMilitarizationBalanceMax(iPlayerID);
    if numMilitarizationBalance < numMilitarizationBalanceMax then
        ChangeMilitarizationBalance(iPlayerID, numPoints);
    end
end   
LuaEvents.JFD_MilitarizationChanged.Add(JFD_YukinoGermany_MilitarizationChanged);
--==========================================================================================================================
--==========================================================================================================================
I took a code of Rule with Faith old version by JFD and modified the code for my purpose. But I found an issue...
'attempt to index a nil value' occurs at line 44, 'GameEvents.PlayerTurnStarted.Add(JFD_YukinoGermany_PlayerTurnStarted);'.
It's so weird. As far as I know, argument in the GameEvents.Blabla.Add is work normally to insert defined function only. I certainly inserted defined function. But the function perceived as nil. Why cannot value of the function work?
 
what's the full log ?
 
It's all in the thread.

GameEvents doesn't exist anymore in UI context.
 
Top Bottom