Zegangani
King
- Joined
- Oct 9, 2020
- Messages
- 843
Sorry Gedemon for disturbing you again, I know I was such an noisance lately, but I just don't get it with the Exposed Members Method. I'm defenitely doing something wrong, but I just don't know how I can solve this. The UI file doesn't load at all (since a don't get anuthing from print functions in it).
Here is the Complete code:
UI:
GameplayScript:
Modinfo:
Here is the Complete code:
UI:
Code:
function GetUnitProductionProgress(playerID, CityID, iProdcutionItemType)
local pPlayer = Players[playerID]
local pCity = pPlayer:GetCities():FindID(CityID)
print("Unit Progress 1")
if pCity ~= nil then
if ( iProdcutionItemType == 0 ) then
print("Unit Progress 2")
return pCity:GetBuildQueue():GetUnitProgress()
end
end
print("Unit Progress 3.")
end
ExposedMembers.SRE.GetUnitProductionProgress = GetUnitProductionProgress;
GameplayScript:
Code:
ExposedMembers.SRE = {};
function GetUnitProgress(playerID, CityID, iProdcutionItemType)
print("Unit Progress Check #1")
return ExposedMembers.SRE.GetUnitProductionProgress(playerID, CityID, iProdcutionItemType)
end
function OnUnitBuildableCheck( PlayerID, cityID, iProdcutionItemType)
local pPlayer = Players[PlayerID];
local pCity = pPlayer:GetCities():FindID(CityID)
print("City Selected.");
if ( iProdcutionItemType == 0 ) then
for row in GameInfo.Resources() do
local ResourceType = GameInfo.Resources[row.ResourceType]
for row in GameInfo.Units() do
-- local kBuildParameters = {};
-- kBuildParameters.UnitType = row.Hash;
local UnitTypeInfo = GameInfo.Units[row.UnitType];
local UnitTypeIndex = UnitTypeInfo.Index;
local UnitTypeHash = row.Hash
local UnitType = row.UnitType
local UnitName = Locale.Lookup(UnitTypeInfo.Name);
print("Unit Check #1", UnitType, UnitName, UnitTypeHash, UnitTypeInfo, UnitTypeIndex);
if (UnitType ~= nil) then
print("Unit Check #2", UnitType, UnitName);
for row in GameInfo.Units_BonusesAndResourceCosts() do
if (row.UnitType == UnitType) then
local AdditionalStrategicResource = GameInfo.Resources[row.AdditionalStrategicResource];
local fuelName = Locale.Lookup(AdditionalStrategicResource.Name);
local AdditionalStrategicResourceCost:number = row.AdditionalStrategicResourceCost;
print("UCheck #3", UnitType, UnitName, AdditionalStrategicResource, fuelName);
if (AdditionalStrategicResource ~= nil) then
if (ResourceType == AdditionalStrategicResource) then
local mResource = AdditionalStrategicResource.Index
local pResource:number = pPlayer:GetResources():GetResourceAmount(mResource);
print("Unit Check Resource", AdditionalStrategicResourceCost, mResource, pResource, AdditionalStrategicResource, fuelName, UnitType, UnitName);
if (AdditionalStrategicResourceCost > 0) then
if (pResource >= AdditionalStrategicResourceCost ) then
print("Unit is Set to be Buildable");
local eUnitIndex = GameInfo.Units[row.UnitType].Index;
pPlayer:GetUnits():SetBuildDisabled(eUnitIndex, false)
print("This Unit: " .. UnitName .. " is Now going to be buildable!!", UnitType, UnitName, eUnitIndex)
else
local eUnitIndex = GameInfo.Units[row.UnitType].Index;
pPlayer:GetUnits():SetBuildDisabled(eUnitIndex, true)
print("This Unit: " .. UnitName .. " is Now not buildable!", UnitType, UnitName, eUnitIndex)
print("Unit is Still not Buildable", UnitType, UnitName);
end
end
end
end
end
end
end
end
end
end
end
Events.CitySelectionChanged.Add( GetUnitProgress );
Events.CitySelectionChanged.Add( OnUnitBuildableCheck );
Events.PlayerResourceChanged.Add( OnUnitBuildableCheck );
print('SRE Units loaded');
Modinfo:
Code:
<InGameActions>
<AddGameplayScripts id="SetupLua">
<Properties>
<loadOrder>600</loadOrder>
</Properties>
<File>SRE_UnitProductionGameplayScript.lua</File>
</AddGameplayScripts>
<ImportFiles id="SRE_ImportFiles_All">
<Properties>
<LoadOrder>1000</LoadOrder>
</Properties>
<File>SRE_UnitProductionGameplayScript.lua</File>
<File>SRE_UnitProductionUIScript.lua</File>
</ImportFiles>
<Files>
<File>SRE_UnitProductionGameplayScript.lua</File>
<File>SRE_UnitProductionUIScript.lua</File>
</Files>