Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function Run()
- local Level = CityGetLevel("")
- local DefaultID = GetID("")
- local City0ID = GetID("City0")
- local Hour = math.mod(GetGametime(), 24)
- if City0ID == -1 then
- local CityCount = ScenarioGetObjects("Settlement", 1, "City")
- City0ID = GetID("City0")
- end
- if Level==1 then
- -- kontor city - do nothing here
- return
- elseif Level==2 then
- citypinghour_CheckVillage()
- elseif Level==3 then
- citypinghour_CheckSmallTown()
- elseif Level==4 then
- citypinghour_CheckTown()
- elseif Level==5 then
- citypinghour_CheckCapital()
- elseif Level==6 then
- citypinghour_CheckCapital()
- end
- citypinghour_CheckMusicians()
- citypinghour_CheckCrimes()
- -- Alderman Chooser
- if GetData("#AldermanChooser")==nil then
- SetData("#AldermanChooser",GetID(""))
- elseif GetData("#AldermanChooser")==0 then
- SetData("#AldermanChooser",GetID(""))
- end
- if GetData("#AldermanChooser")==GetID("") then
- citypinghour_CheckAlderman()
- end
- -- Imperial Office Chooser
- if GetData("#ImperialChooser")==nil then
- SetData("#ImperialChooser",GetID(""))
- elseif GetData("#ImperialChooser")==0 then
- SetData("#ImperialChooser",GetID(""))
- end
- if GetData("#ImperialChooser")==GetID("") then
- citypinghour_CheckImperialOfficer()
- end
- if City0ID == GetID("") then
- MeasureRun("","","RandomEvents",true)
- end
- end
- function CheckMusicians()
- --ScenarioGetRandomObject("cl_Settlement","MusicianHomeCity")
- if not CityGetRandomBuilding("",3,23,-1,-1,FILTER_IGNORE,"MusicianHomeBuilding") then
- return
- end
- GetPosition("MusicianHomeBuilding","MusicianSpawnPos")
- if not AliasExists("#Musician1") then
- SimCreate(900,"MusicianHomeBuilding","MusicianSpawnPos","#Musician1")
- SimSetBehavior("#Musician1","Musician")
- end
- if not AliasExists("#Musician2") then
- SimCreate(901,"MusicianHomeBuilding","MusicianSpawnPos","#Musician2")
- SimSetBehavior("#Musician2","Musician")
- end
- if not AliasExists("#Musician3") then
- SimCreate(902,"MusicianHomeBuilding","MusicianSpawnPos","#Musician3")
- SimSetBehavior("#Musician3","Musician")
- end
- end
- function CheckCrimes()
- citypinghour_SetPlayerDynastyImmortal()
- ListCrimeReport("crime_report_list") -- liste mit (DynastyID, ActorID, CrimeTotal)
- -- modifizieren
- local TopBias = -1
- local TopReport = -1
- local TopDynastyID = -1
- local TopActorID = -1
- local TopCrimeTotal = -1
- local DepositionTopBias = -1
- local DepositionTopReport = -1
- local DepositionTopDynastyID = -1
- local DepositionTopActorID = -1
- local DepositionTopCrimeTotal = -1
- for iReport = 0,ListSize("crime_report_list")-1 do
- ListGetElement("crime_report_list",iReport,"crime_report")
- local DynastyID = GetProperty("crime_report", "DynastyID")
- local ActorID = GetProperty("crime_report", "ActorID")
- local CrimeTotal = GetProperty("crime_report", "CrimeTotal")
- if GetAliasByID(ActorID,"_actor") then
- if SimCanBeCharged("_actor")==0 then
- if GetAliasByID(DynastyID,"_dyn") then
- for iMember = 0, DynastyGetMemberCount("_dyn")-1 do
- if DynastyGetMember("_dyn",iMember,"_sim") then
- if GetSettlementID("_sim")==GetID("") then
- local Bias = CrimeTotal * 10 -- 0.. ~200
- local Hours = GetHoursToNextTrial("")
- if Hours>16 then
- Bias = Bias - Hours * 2 --
- end
- local DiplomaticState = DynastyGetDiplomacyState("_dyn", "_actor")
- if DiplomaticState> DIP_NEUTRAL then
- Bias = 0
- elseif DiplomaticState==DIP_FOE then
- Bias = Bias
- else
- Bias = Bias * ((100.0-GetFavorToDynasty("_dyn","_actor"))/100)
- end
- if GetImpactValue("_actor","HaveImmunity")==1 then
- if Bias>DepositionTopBias and Bias>0 then
- DepositionTopBias = Bias
- DepositionTopReport = iReport
- DepositionTopDynastyID = DynastyID
- DepositionTopActorID = GetID("_actor")
- DepositionTopCrimeTotal = CrimeTotal
- end
- else
- if Bias>TopBias and Bias>0 then
- TopBias = Bias
- TopReport = iReport
- TopDynastyID = DynastyID
- TopActorID = GetID("_actor")
- TopCrimeTotal = CrimeTotal
- end
- end
- end
- end
- end
- end
- end
- end
- end
- --OutputDebugString("Best Accuser in "..GetName("").." is "..TopDynastyID.." with "..TopBias.." pts (actor="..TopActorID..",crimetotal="..TopCrimeTotal..").\n")
- --OutputDebugString("Best Deposition in "..GetName("").." is "..DepositionTopDynastyID.." with "..DepositionTopBias.." pts (actor="..DepositionTopActorID..",crimetotal="..DepositionTopCrimeTotal..").\n")
- SetProperty("","Crimes_TopAccuserDynastyID",TopDynastyID)
- SetProperty("","Crimes_TopActorID",TopActorID)
- SetProperty("","Crimes_TopBias",TopBias)
- SetProperty("","Crimes_TopCrimeTotal",TopCrimeTotal)
- SetProperty("","Crimes_DepositionTopActorID",DepositionTopActorID)
- end
- function CheckVillage()
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_TOWNHALL, 1)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_PRISON, 1)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_WELL, 1, 1)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_LINGERPLACE, 1, 1)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_SCHOOL, 1)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_GRAVEYARD, -1)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_WEDDINGCHAPEL, 1)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_SOLDIERPLACE, 1)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_RANGERHUT, 1)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_FARM, 1)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_MINE, 1)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_TAVERN, 1)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_HOSPITAL, 1)
- citypinghour_CheckChurch(1)
- local Mines = CityGetBuildingCount("", -1, GL_BUILDING_TYPE_MINE, -1, -1, FILTER_HAS_DYNASTY)
- local Farms = CityGetBuildingCount("", -1, GL_BUILDING_TYPE_FARM, -1, -1, FILTER_HAS_DYNASTY)
- local Rangers = CityGetBuildingCount("", -1, GL_BUILDING_TYPE_RANGERHUT, -1, -1, FILTER_HAS_DYNASTY)
- if Mines>0 then
- AICheckWorkingPlace("", GL_BUILDING_TYPE_SMITHY, 1)
- end
- if Farms>0 then
- AICheckWorkingPlace("", GL_BUILDING_TYPE_BAKERY, 1)
- end
- if Rangers>0 then
- AICheckWorkingPlace("", GL_BUILDING_TYPE_JOINERY, 1)
- end
- end
- function CheckSmallTown()
- CitySetMaxWorkerhutLevel("", 2)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_TOWNHALL, 2)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_MARKET, GL_BUILDING_TYPE_HARBOR, 2)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_PRISON, 1)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_WELL, 1, 2)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_LINGERPLACE, 1, 2)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_SCHOOL, 1)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_GRAVEYARD, -1)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_EXECUTIONS_PLACE, 1)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_BANK, 1)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_WEDDINGCHAPEL, 1)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_SOLDIERPLACE, 1)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_RANGERHUT, 1)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_FARM, 1)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_MINE, 1)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_TAVERN, 1)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_ALCHEMIST, 1)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_HOSPITAL, 1)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_BANKHOUSE, 1)
- citypinghour_CheckChurch(1)
- local Mines = CityGetBuildingCount("", -1, GL_BUILDING_TYPE_MINE, -1, -1, FILTER_HAS_DYNASTY)
- local Farms = CityGetBuildingCount("", -1, GL_BUILDING_TYPE_FARM, -1, -1, FILTER_HAS_DYNASTY)
- local Rangers = CityGetBuildingCount("", -1, GL_BUILDING_TYPE_RANGERHUT, -1, -1, FILTER_HAS_DYNASTY)
- if Mines>0 then
- AICheckWorkingPlace("", GL_BUILDING_TYPE_SMITHY, 1)
- end
- if Farms>0 then
- AICheckWorkingPlace("", GL_BUILDING_TYPE_BAKERY, 1)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_TAILORING, 1)
- end
- if Rangers>0 then
- AICheckWorkingPlace("", GL_BUILDING_TYPE_JOINERY, 1)
- end
- if not HasProperty("", "AI_Robber_Checked") then
- if AICheckWorkingPlace("", GL_BUILDING_TYPE_ROBBER, 1) then
- SetProperty("", "AI_Robber_Checked")
- end
- end
- end
- function CheckTown()
- CitySetMaxWorkerhutLevel("", 3)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_TOWNHALL, 3)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_MARKET, GL_BUILDING_TYPE_HARBOR, 2)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_PRISON, 2)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_WELL, 1, 3)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_LINGERPLACE, 1, 4)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_SCHOOL, 2)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_GRAVEYARD, -1)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_EXECUTIONS_PLACE, 2)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_BANK, 2)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_WEDDINGCHAPEL, 1)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_SOLDIERPLACE, 1)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_RANGERHUT, 1)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_FARM, 2)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_MINE, 2)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_TAVERN, 1)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_ALCHEMIST, 1)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_HOSPITAL, 1)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_SMITHY, 1)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_BANKHOUSE, 1)
- citypinghour_CheckChurch(2)
- local Farms = CityGetBuildingCount("", -1, GL_BUILDING_TYPE_FARM, -1, -1, FILTER_HAS_DYNASTY)
- local Rangers = CityGetBuildingCount("", -1, GL_BUILDING_TYPE_RANGERHUT, -1, -1, FILTER_HAS_DYNASTY)
- if Farms>0 then
- AICheckWorkingPlace("", GL_BUILDING_TYPE_BAKERY, 1)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_TAILORING, 1)
- end
- if Rangers>0 then
- AICheckWorkingPlace("", GL_BUILDING_TYPE_JOINERY, 1)
- end
- if not HasProperty("", "AI_Robber_Checked") then
- if AICheckWorkingPlace("", GL_BUILDING_TYPE_ROBBER, 1) then
- SetProperty("", "AI_Robber_Checked")
- end
- end
- if not HasProperty("", "AI_Thief_Checked") then
- if AICheckWorkingPlace("", GL_BUILDING_TYPE_THIEF, 1) then
- SetProperty("", "AI_Thief_Checked")
- end
- end
- end
- function CheckCapital()
- CitySetMaxWorkerhutLevel("", 3)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_TOWNHALL, 4)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_MARKET, GL_BUILDING_TYPE_HARBOR, 3)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_PRISON, 2)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_WELL, 1, 3)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_LINGERPLACE, 1, 6)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_SCHOOL, 3)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_GRAVEYARD, -1)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_EXECUTIONS_PLACE, 2)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_BANK, 2)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_WEDDINGCHAPEL, 1)
- citypinghour_CheckBuilding( GL_BUILDING_CLASS_PUBLICBUILDING, GL_BUILDING_TYPE_SOLDIERPLACE, 1)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_RANGERHUT, 2)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_FARM, 2)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_MINE, 2)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_TAVERN, 2)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_ALCHEMIST, 1)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_HOSPITAL, 1)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_SMITHY, 1)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_BANKHOUSE, 1)
- citypinghour_CheckChurch(2)
- local Farms = CityGetBuildingCount("", -1, GL_BUILDING_TYPE_FARM, -1, -1, FILTER_HAS_DYNASTY) + CityGetBuildingCount("", -1, GL_BUILDING_TYPE_FISHINGHUT, -1, -1, FILTER_HAS_DYNASTY)
- local Rangers = CityGetBuildingCount("", -1, GL_BUILDING_TYPE_RANGERHUT, -1, -1, FILTER_HAS_DYNASTY)
- if Farms>0 then
- AICheckWorkingPlace("", GL_BUILDING_TYPE_BAKERY, 1)
- AICheckWorkingPlace("", GL_BUILDING_TYPE_TAILORING, 1)
- end
- if Rangers>0 then
- AICheckWorkingPlace("", GL_BUILDING_TYPE_JOINERY, 1)
- end
- if not HasProperty("", "AI_Robber_Checked") then
- if AICheckWorkingPlace("", GL_BUILDING_TYPE_ROBBER, 1) then
- SetProperty("", "AI_Robber_Checked")
- end
- end
- if not HasProperty("", "AI_Thief_Checked") then
- if AICheckWorkingPlace("", GL_BUILDING_TYPE_THIEF, 1) then
- SetProperty("", "AI_Thief_Checked")
- end
- end
- end
- function CheckBuilding(Class, Type, Level, Count)
- if not Count then
- Count = 1
- end
- local BuildTotal = CityGetBuildings("", Class, Type, -1, -1, FILTER_IGNORE, "Found")
- local Ist = 0
- for l=0,BuildTotal-1 do
- if BuildingGetLevel("Found"..l) >= Level then
- Ist = Ist + 1
- if Ist >= Count then
- return
- end
- end
- end
- for l=0,BuildTotal-1 do
- if BuildingGetLevel("Found"..l) < Level then
- BuildingLevelMeUp("Found"..l, -1)
- Ist = Ist + 1
- if Ist>=Count then
- return
- end
- end
- end
- while Ist < Count do
- local Proto = ScenarioFindBuildingProto(Class, Type, Level, -1)
- if not Proto or Proto==-1 then
- break
- end
- if not CityBuildNewBuilding("", Proto, nil, "Building") then
- break
- end
- Ist = Ist + 1
- end
- end
- function CheckChurch(MaxCount)
- local ChEv = CityGetBuildingCount("", -1, GL_BUILDING_TYPE_CHURCH_EV, -1, -1, FILTER_HAS_DYNASTY)
- local ChCa = CityGetBuildingCount("", -1, GL_BUILDING_TYPE_CHURCH_CATH, -1, -1, FILTER_HAS_DYNASTY)
- if ChEv + ChCa < MaxCount then
- -- no church, so create one
- local TotalChEv = CityGetBuildingCount("", -1, GL_BUILDING_TYPE_CHURCH_EV, -1, -1, FILTER_NO_DYNASTY)
- local TotalChCa = CityGetBuildingCount("", -1, GL_BUILDING_TYPE_CHURCH_CATH, -1, -1, FILTER_NO_DYNASTY)
- if TotalChEv>0 and TotalChCa==0 then
- AICheckWorkingPlace("", GL_BUILDING_TYPE_CHURCH_EV, ChEv+1)
- elseif TotalChCa>0 and TotalChEv==0 then
- AICheckWorkingPlace("", GL_BUILDING_TYPE_CHURCH_CATH, ChCa+1)
- else
- if Rand(100) < 50 then
- AICheckWorkingPlace("", GL_BUILDING_TYPE_CHURCH_EV, ChEv+1)
- else
- AICheckWorkingPlace("", GL_BUILDING_TYPE_CHURCH_CATH, ChCa+1)
- end
- end
- end
- end
- function CheckAlderman()
- local currentRound = GetRound()
- if currentRound > 1 then
- local currentGameTime = math.mod(GetGametime(),24)
- if (currentGameTime == 12) or ((currentGameTime > 12) and (currentGameTime < 13)) then
- local year = GetYear() - 2 + math.mod(GetGametime(),6)
- local DynCount = ScenarioGetObjects("cl_Dynasty", 99, "Dyn")
- local SimCount
- local Alias
- local SimArray = {}
- local SimFameArray = {}
- local SimArrayCount = 0
- for d=0,DynCount-1 do
- Alias = "Dyn"..d
- if GetID(Alias)>0 and DynastyIsPlayer(Alias) or DynastyIsAI(Alias) or DynastyIsShadow(Alias) then
- SimCount = DynastyGetMemberCount(Alias)
- for e=0,SimCount do
- DynastyGetMember(Alias, e, "Sim")
- if HasProperty("Sim", "PatronMaster") or HasProperty("Sim", "ArtisanMaster") or HasProperty("Sim", "ScholarMaster") or HasProperty("Sim", "ChiselerMaster") then
- local num = 0
- while num<100 do
- if chr_SimGetFameLevel("Sim")>1 and chr_DynastyGetFameLevel("Sim")>0 then
- if SimArray[num]==GetID("Sim") then
- break
- elseif SimArray[num]==nil then
- SimArray[num] = GetID("Sim")
- SimFameArray[num] = chr_SimGetFame("Sim") + math.floor(chr_DynastyGetFame("Sim")/10)
- SimArrayCount = SimArrayCount + 1
- break
- end
- end
- num = num + 1
- end
- end
- end
- end
- end
- local AldermanWinner
- local AldermanFame = -1
- if SimArrayCount>0 then
- for x=0,SimArrayCount do
- if SimFameArray[x]~=nil and SimFameArray[x]>AldermanFame then
- AldermanFame = SimFameArray[x]
- AldermanWinner = x
- end
- end
- local oldalderman = chr_GetAlderman()
- if oldalderman>0 then
- GetAliasByID(oldalderman,"Old")
- chr_SimAddImperialFame("Old",1)
- RemoveProperty("Old", "Alderman")
- end
- SetData("#Alderman",0)
- if GetAliasByID(SimArray[AldermanWinner],"New") then
- SetProperty("New","Alderman",1)
- SetData("#Alderman",SimArray[AldermanWinner])
- local label
- if SimGetClass("New")==1 then
- label = "@L_GUILDHOUSE_MASTERLIST_PATRON"
- elseif SimGetClass("New")==2 then
- label = "@L_GUILDHOUSE_MASTERLIST_ARTISAN"
- elseif SimGetClass("New")==3 then
- label = "@L_GUILDHOUSE_MASTERLIST_SCHOLAR"
- elseif SimGetClass("New")==4 then
- label = "@L_GUILDHOUSE_MASTERLIST_CHISELER"
- end
- if SimGetGender("New")==GL_GENDER_MALE then
- label = label.."_MALE_+0"
- else
- label = label.."_FEMALE_+0"
- end
- GetSettlement("New", "settlement")
- famelevelsim = "@L_GUILDHOUSE_FAME_SIM_+"..chr_SimGetFameLevel("New")
- fameleveldyn = "@L_GUILDHOUSE_FAME_DYNASTY_+"..chr_DynastyGetFameLevel("New")
- MsgNewsNoWait("All","New","","politics",-1,
- "@L_CHECKALDERMAN_HEAD_+0",
- "@L_CHECKALDERMAN_BODY_+0",
- GetYear(),GetID("New"), label, GetID("settlement"), famelevelsim, chr_SimGetFame("New"), fameleveldyn, chr_DynastyGetFame("New"))
- end
- else
- SetData("#Alderman",0)
- end
- end
- end
- end
- function CheckImperialOfficer()
- local currentRound = GetRound()
- if currentRound > -1 then
- local currentGameTime = math.mod(GetGametime(),24)
- if (currentGameTime == 13) or ((currentGameTime > 13) and (currentGameTime < 14)) then
- local year = GetYear() - 2 + math.mod(GetGametime(),6)
- local DynCount = ScenarioGetObjects("cl_Dynasty", 99, "Dyn")
- local SimCount
- local Alias
- local SimArray = {}
- local SimFameArray = {}
- local SimArrayCount = 0
- for d=0,DynCount-1 do
- Alias = "Dyn"..d
- if GetID(Alias)>0 and DynastyIsPlayer(Alias) or DynastyIsAI(Alias) or DynastyIsShadow(Alias) then
- SimCount = DynastyGetMemberCount(Alias)
- for e=0,SimCount do
- DynastyGetMember(Alias, e, "Sim")
- if not SimGetOfficeLevel("Sim")==7 then
- local num = 0
- while num<100 do
- if chr_SimGetImperialFameLevel("Sim")>1 and chr_DynastyGetImperialFameLevel("Sim")>0 then
- if SimArray[num]==GetID("Sim") then
- break
- elseif SimArray[num]==nil then
- SimArray[num] = GetID("Sim")
- SimFameArray[num] = chr_SimGetImperialFame("Sim") + math.floor(chr_DynastyGetImperialFame("Sim")/10)
- SimArrayCount = SimArrayCount + 1
- break
- end
- end
- num = num + 1
- end
- end
- end
- end
- end
- local ImperialWinner
- local ImperialFame = -1
- if SimArrayCount>0 then
- for x=0,SimArrayCount do
- if SimFameArray[x]~=nil and SimFameArray[x]>ImperialFame then
- ImperialFame = SimFameArray[x]
- ImperialWinner = x
- end
- end
- local oldimperialofficer = chr_GetImperialOfficer()
- if oldimperialofficer>0 then
- GetAliasByID(oldimperialofficer,"Old")
- RemoveProperty("Old", "ImperialOfficer")
- end
- SetData("#ImperialOfficer",0)
- if GetAliasByID(SimArray[ImperialWinner],"New") then
- SetProperty("New","ImperialOfficer",1)
- SetData("#ImperialOfficer",SimArray[ImperialWinner])
- local label = "@L_IMPERIAL_OFFICER"
- local gender = ""
- if SimGetGender("New")==GL_GENDER_MALE then
- label = label.."_MALE_+1"
- gender = gender.."MALE"
- else
- label = label.."_FEMALE_+1"
- gender = gender.."MALE"
- end
- GetScenario("scenario")
- local mapid = GetProperty("scenario", "mapid")
- local lordlabel = "@L_SCENARIO_LORD_"..GetDatabaseValue("maps", mapid, "lordship").."_+0"
- GetSettlement("New", "settlement")
- famelevelsim = "@L_IMPERIAL_FAME_SIM_+"..chr_SimGetImperialFameLevel("New")
- fameleveldyn = "@L_IMPERIAL_FAME_DYNASTY_+"..chr_DynastyGetImperialFameLevel("New")
- MsgNewsNoWait("All","New","","politics",-1,
- "@L_IMPERIAL_OFFICER_"..gender.."_+0",
- "@L_CHECKIMPERIALOFFICER_BODY_+0",
- GetYear(), GetID("New"), GetID("settlement"), label, famelevelsim, chr_SimGetImperialFame("New"), fameleveldyn, chr_DynastyGetImperialFame("New"), lordlabel)
- end
- else
- SetData("#ImperialOfficer",0)
- end
- end
- end
- end
- function SetPlayerDynastyImmortal()
- GetLocalPlayerDynasty("dynasty")
- local iCount = DynastyGetFamilyMemberCount("dynasty")
- local CHEAT_ImmortalAge = 18
- local iIndex
- local iCIndex
- local DynAge
- local iChildCount
- local SimArray
- for iIndex = 0, iCount-1 do
- if DynastyGetFamilyMember("dynasty", iIndex, "member") then
- DynAge = SimGetAge( "member" )
- LogMessage("DynAge: "..DynAge..".")
- if DynAge > CHEAT_ImmortalAge then
- SimSetAge( "member" ,CHEAT_ImmortalAge)
- end
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement