King William I
King
I've "borrowed" bits of Lua from several sources to build a Mixtec Civ. But I keep getting this error
Here is the Code
Culture equals Bombard is supposed to spawn buildings in all cities based on Culture rate
Artistic Swords is meant to spawn a building when units with a certain promotion is garrisoned
Codex Culture is supposed to spawn a building when a certain buildings great work slot is filled.
Also, I know nothing about Lua code so I apologize if the answer is simple. Thanks in advance!
Code:
[51851.750] Syntax Error: C:\Users\Alex\Documents\My Games\Sid Meier's Civilization 5\MODS\Rise of Civilization's Mixtec Civilization (v 1)\Lua\MixtecFunctions.lua:253: 'end' expected (to close 'function' at line 211) near '<eof>'
[51851.750] Runtime Error: Error loading C:\Users\Alex\Documents\My Games\Sid Meier's Civilization 5\MODS\Rise of Civilization's Mixtec Civilization (v 1)\Lua\MixtecFunctions.lua.
Here is the Code
Code:
--------------------------------------------------------------
--Culture Equals Bombard
--------------------------------------------------------------
local bMCITY1 = GameInfoTypes.BUILDING_MIXTEC_SIEGE_1
local bMCITY2 = GameInfoTypes.BUILDING_MIXTEC_SIEGE_2
local bMCITY3 = GameInfoTypes.BUILDING_MIXTEC_SIEGE_3
local bMCITY4 = GameInfoTypes.BUILDING_MIXTEC_SIEGE_4
local bMCITY5 = GameInfoTypes.BUILDING_MIXTEC_SIEGE_5
local bMCITY6 = GameInfoTypes.BUILDING_MIXTEC_SIEGE_6
local bMCITY7 = GameInfoTypes.BUILDING_MIXTEC_SIEGE_7
local bMCITY8 = GameInfoTypes.BUILDING_MIXTEC_SIEGE_8
local bMCITY9 = GameInfoTypes.BUILDING_MIXTEC_SIEGE_9
local bMCITY10 = GameInfoTypes.BUILDING_MIXTEC_SIEGE_10
GameEvents.PlayerDoTurn.Add(
function(iPlayer)
local pPlayer = Players[iPlayer];
if (pPlayer:IsAlive()) then
if (pPlayer:GetCivilizationType() == GameInfoTypes.CIVILIZATION_ALGERIA) then
for pCity in pPlayer:Cities() do
if (pCity:GetNumBuilding(bMCITY1) > 0) then
pCity:SetNumRealBuilding(bMCITY1, 0);
end
if (pCity:GetNumBuilding(bMCITY2) > 0) then
pCity:SetNumRealBuilding(bMCITY2, 0);
end
if (pCity:GetNumBuilding(bMCITY3) > 0) then
pCity:SetNumRealBuilding(bMCITY3, 0);
end
if (pCity:GetNumBuilding(bMCITY4) > 0) then
pCity:SetNumRealBuilding(bMCITY4, 0);
end
if (pCity:GetNumBuilding(bMCITY5) > 0) then
pCity:SetNumRealBuilding(bMCITY5, 0);
end
if (pCity:GetNumBuilding(bMCITY6) > 0) then
pCity:SetNumRealBuilding(bMCITY6, 0);
end
if (pCity:GetNumBuilding(bMCITY7) > 0) then
pCity:SetNumRealBuilding(bMCITY7, 0);
end
if (pCity:GetNumBuilding(bMCITY8) > 0) then
pCity:SetNumRealBuilding(bMCITY8, 0);
end
if (pCity:GetNumBuilding(bMCITY9) > 0) then
pCity:SetNumRealBuilding(bMCITY9, 0);
end
if (pCity:GetNumBuilding(bMCITY10) > 0) then
pCity:SetNumRealBuilding(bMCITY10, 0);
end
if (pPlayer:GetTotalCulturePerTurn() >= 50) then
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_1"], 1)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_2"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_3"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_4"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_5"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_6"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_7"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_8"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_9"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_10"], 0)
end
if (pPlayer:GetTotalCulturePerTurn() >= 100) then
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_1"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_2"], 1)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_3"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_4"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_5"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_6"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_7"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_8"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_9"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_10"], 0)
end
if (pPlayer:GetTotalCulturePerTurn() >= 150) then
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_1"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_2"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_3"], 1)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_4"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_5"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_6"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_7"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_8"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_9"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_10"], 0)
end
if (pPlayer:GetTotalCulturePerTurn() >= 200) then
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_1"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_2"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_3"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_4"], 1)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_5"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_6"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_7"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_8"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_9"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_10"], 0)
end
if (pPlayer:GetTotalCulturePerTurn() >= 250) then
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_1"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_2"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_3"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_4"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_5"], 1)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_6"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_7"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_8"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_9"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_10"], 0)
end
if (pPlayer:GetTotalCulturePerTurn() >= 300) then
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_1"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_2"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_3"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_4"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_5"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_6"], 1)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_7"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_8"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_9"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_10"], 0)
end
if (pPlayer:GetTotalCulturePerTurn() >= 350) then
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_1"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_2"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_3"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_4"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_5"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_6"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_7"], 1)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_8"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_9"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_10"], 0)
end
if (pPlayer:GetTotalCulturePerTurn() >= 400) then
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_1"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_2"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_3"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_4"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_5"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_6"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_7"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_8"], 1)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_9"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_10"], 0)
end
if (pPlayer:GetTotalCulturePerTurn() >= 450) then
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_1"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_2"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_3"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_4"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_5"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_6"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_7"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_8"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_9"], 1)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_10"], 0)
end
if (pPlayer:GetTotalCulturePerTurn() >= 500) then
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_1"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_2"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_3"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_4"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_5"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_6"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_7"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_8"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_9"], 0)
pCity:SetNumRealBuilding(GameInfoTypes["BUILDING_MIXTEC_SIEGE_10"], 10)
end
end
end
end
end)
---------------------------------
-- Artistic Swords
---------------------------------
local pHappinessPromo = GameInfoTypes.PROMOTION_ROC_MAQUAHUITL;
local DummyBuild = "BUILDING_ROC_MAQUAHUITL"
print ("This is the Rurales Happiness Script");
function GarrisonedArt (iPlayer)
local pPlayer = Players[iPlayer];
if (pPlayer:IsAlive()) then
for pCity in pPlayer:Cities() do
pCity:SetNumRealBuilding(GameInfoTypes["" .. DummyBuild .. ""], 0)
local garrisonedUnit = pCity:GetGarrisonedUnit();
if garrisonedUnit ~= nil then
if (garrisonedUnit:IsHasPromotion(pHappinessPromo)) then
pCity:SetNumRealBuilding(GameInfoTypes["" .. DummyBuild .. ""], 1)
else
pCity:SetNumRealBuilding(GameInfoTypes["" .. DummyBuild .. ""], 0)
end
end
end
end
end
GameEvents.PlayerDoTurn.Add(GarrisonedArt);
GameEvents.PlayerCityFounded.Add(GarrisonedArt);
--------------------------------------------------------------------------------------------------------------------------
-- Codex Culture
--------------------------------------------------------------------------------------------------------------------------
local buildingClassCodexID = GameInfoTypes["BUILDINGCLASS_LIBRARY"]
local civilisationID = GameInfoTypes["CIVILIZATION_ROC_MIXTEC"]
local isMixtecCivActive = JFD_IsCivilisationActive(civilisationID)
function JFD_GetNumCodexGreatWorksFilled(playerID)
local player = Players[playerID]
local numCodexGreatWorksFilled = 0
for city in player:Cities() do
if city:GetNumGreatWorksInBuilding(buildingClassCodexID) > 0 then
numCodexGreatWorksFilled = numCodexGreatWorksFilled + 1
end
return numCodexGreatWorksFilled
end
local buildingCodexFaithID = GameInfoTypes["BUILDING_CODEX_CULTURE"]
function JFD_CodexFaith(playerID)
local player = Players[playerID]
if (player:IsAlive() and player:GetCivilizationType() == civilisationID) then
local capital = player:GetCapitalCity()
if capital then
local numFaith = JFD_GetNumCodexGreatWorksFilled(playerID)
capital:SetNumRealBuilding(buildingCodexFaithID, numFaith)
end
end
end
if isMixtecCivActive then
GameEvents.PlayerDoTurn.Add(JFD_CodexFaith)
end
------------------------------------------------------------------------------------------------------------------------
-- JFD_IsCivilisationActive
------------------------------------------------------------------------------------------------------------------------
function JFD_IsCivilisationActive(civilisationID)
for iSlot = 0, GameDefines.MAX_MAJOR_CIVS-1, 1 do
local slotStatus = PreGame.GetSlotStatus(iSlot)
if (slotStatus == SlotStatus["SS_TAKEN"] or slotStatus == SlotStatus["SS_COMPUTER"]) then
if PreGame.GetCivilization(iSlot) == civilisationID then
return true
end
end
end
return false
end
Culture equals Bombard is supposed to spawn buildings in all cities based on Culture rate
Artistic Swords is meant to spawn a building when units with a certain promotion is garrisoned
Codex Culture is supposed to spawn a building when a certain buildings great work slot is filled.
Also, I know nothing about Lua code so I apologize if the answer is simple. Thanks in advance!