Das NEP - Netsurfer Expansion Pack - ist eine Skripterweiterung von OldMacDonald und Netsurfer, die tief ins Spiel eingreift und dem Mapper ermöglich große Veränderungen am Spielablauf vorzunehmen. Wichtigstes Feature des NEP sind die änderbaren Aufstiegsbedingungen. Aber es bietet noch mehr schöne Sachen. Entlassen-Schalter für Battalione und Kriegsmaschinen, Rückbau von Gebäuden und Abrissverbot sind einige der vielen Möglichkeiten.
Installation
Das NEP ist sowohl im lokalen als auch im globalen Skript präsent. Zur Anzeige der Skriptdateien bitte nicht MS Internet Explorer Verwenden!
NEP für das globale Skript: Nep global
NEP für das lokale Skript: Nep lokal
Die Luas beinhalten den Briefingcode für die QSB 3.9 und älter. Es handelt sich um einen vollständigen Skriptrohling für die jeweilige Skriptumgebung. Du musst deinen eigenen Scriptcode nur noch hinzufügen.
Aufstiegsbedingungen
Die Aufstiegsbedingungen werden in der Funktion NEP_KnightTitles geändert. Diese Funktion ist sowohl im globalen Skript als auch im lokalen Skript vorhanden. Es ist darauf zu achten, dass der Inhalt der Funktionen identisch ist!
Die Aufstiegsbedingungen beginnen mit Mayor (Landvogt) und enden mit Archduke (Erzherzog).
Beispiele
KnightTitleRequirements[KnightTitles.Baron] = {}
KnightTitleRequirements[KnightTitles.Baron].Settlers = 30
KnightTitleRequirements[KnightTitles.Baron].Storehouse = 1
KnightTitleRequirements[KnightTitles.Baron].Headquarters = 1
KnightTitleRequirements[KnightTitles.Baron].Cathedrals = 1
KnightTitleRequirements[KnightTitles.Baron].Goods = {{"AmountOfProductsOfEntitiesInCategory", EntityCategories.GC_Hygiene_Supplier, 12}}
Um Baron zu werden muss der Spieler 30 Siedler unterhalten. Burg, Kirche und Lagerhaus müssen mindestens das 1 Upgrade erhalten haben und zusätzlich muss der Spieler 12 Hygieneartikel herstellen.
KnightTitleRequirements[KnightTitles.Duke] = {}
KnightTitleRequirements[KnightTitles.Duke].Settlers = 150
KnightTitleRequirements[KnightTitles.Duke].Headquarters = 3
KnightTitleRequirements[KnightTitles.Duke].DecoratedBuildings = {Goods.G_Candle, 8}
KnightTitleRequirements[KnightTitles.Duke].Goods = { {"AmountOfProductsOfEntitiesInCategory", EntityCategories.GC_Entertainment_Supplier, 30},
{"AmountOfEntitiesInCategory", EntityCategories.Spouse, 40},
{"AmountOfEntity", Entities.B_Baths, 2}}
Hier muss der Spieler für den Titel Herzog 150 Siedler unterhalten, die Burg maximal ausgebaut, 8 Gebäude mit Kerzen ausgestattet, 30 Unterhaltungsartikel produziert, 40 Ehen geschlossen und 2 Badehäuser gebaut haben.
function NEP_KnightTitles()
KnightTitles = {}
KnightTitles.Knight = 0
KnightTitles.Mayor = 1
KnightTitles.Baron = 2
KnightTitles.Earl = 3
KnightTitles.Marquees = 4
KnightTitles.Duke = 5
KnightTitles.Archduke = 6
NeedsAndRightsByKnightTitle = {}
NeedsAndRightsByKnightTitle[KnightTitles.Knight] = {
ActivateNeedForPlayer, {Needs.Nutrition,Needs.Medicine},
ActivateRightForPlayer, {
Technologies.R_Gathering,
Technologies.R_Woodcutter,
Technologies.R_StoneQuarry,
Technologies.R_HuntersHut,
Technologies.R_FishingHut,
Technologies.R_CattleFarm,
Technologies.R_GrainFarm,
Technologies.R_SheepFarm,
Technologies.R_Nutrition,
Technologies.R_Bakery,
Technologies.R_Dairy,
Technologies.R_Butcher,
Technologies.R_SmokeHouse,
Technologies.R_Clothes,
Technologies.R_Tanner,
Technologies.R_Construction,
Technologies.R_Trail,
Technologies.R_KnockDown,
Technologies.R_Sermon,
Technologies.R_HerbGatherer,
Technologies.R_Beekeeper,
Technologies.R_IronMine,
}
}
NeedsAndRightsByKnightTitle[KnightTitles.Mayor] = {
ActivateNeedForPlayer, {Needs.Clothes,},
ActivateRightForPlayer, {
Technologies.R_Hygiene,
Technologies.R_Soapmaker,
Technologies.R_BroomMaker,
Technologies.R_Taxes,
Technologies.R_Military,
Technologies.R_SwordSmith,
Technologies.R_Barracks,
},
StartKnightsPromotionCelebration
}
NeedsAndRightsByKnightTitle[KnightTitles.Baron] = {
ActivateNeedForPlayer, {Needs.Hygiene,Needs.Wealth},
ActivateRightForPlayer, {
Technologies.R_Entertainment,
Technologies.R_Tavern,
Technologies.R_Pallisade,
Technologies.R_Festival,
Technologies.R_BatteringRam,
Technologies.R_SiegeEngineWorkshop,
Technologies.R_Weaver,
Technologies.R_Carpenter,
Technologies.R_Wealth,
},
StartKnightsPromotionCelebration
}
NeedsAndRightsByKnightTitle[KnightTitles.Earl] = {
ActivateNeedForPlayer, {Needs.Entertainment,Needs.Prosperity},
ActivateRightForPlayer, {
Technologies.R_Thieves,
Technologies.R_BarracksArchers,
Technologies.R_BowMaker,
Technologies.R_Street,
Technologies.R_Medicine,
Technologies.R_BannerMaker,
Technologies.R_Prosperity,
},
StartKnightsPromotionCelebration
}
NeedsAndRightsByKnightTitle[KnightTitles.Marquees] = {
ActivateNeedForPlayer, nil,
ActivateRightForPlayer, {
Technologies.R_Baths,
Technologies.R_Wall,
Technologies.R_Ballista,
Technologies.R_SiegeTower,
Technologies.R_AmmunitionCart,
Technologies.R_CandleMaker,
},
StartKnightsPromotionCelebration
}
NeedsAndRightsByKnightTitle[KnightTitles.Duke] = {
ActivateNeedForPlayer, nil,
ActivateRightForPlayer, {
Technologies.R_SpecialEdition,
Technologies.R_SpecialEdition_Pavilion,
Technologies.R_Blacksmith,
Technologies.R_Catapult,
Technologies.R_SpecialEdition_StatueFamily,
Technologies.R_SpecialEdition_Column,
Technologies.R_SpecialEdition_StatueSettler,
Technologies.R_SpecialEdition_StatueProduction,
},
StartKnightsPromotionCelebration
}
NeedsAndRightsByKnightTitle[KnightTitles.Archduke] = {
ActivateNeedForPlayer, nil,
ActivateRightForPlayer, {
Technologies.R_Victory,
Technologies.R_Theater,
Technologies.R_SpecialEdition_StatueDario
},
--VictroryBecauseOfTitle,
StartKnightsPromotionCelebration
}
if g_PatchIdentifierExtra1 then
local TechnologiesTableIndex = 4
table.insert(NeedsAndRightsByKnightTitle[KnightTitles.Mayor][TechnologiesTableIndex],Technologies.R_Cistern)
table.insert(NeedsAndRightsByKnightTitle[KnightTitles.Marquees][TechnologiesTableIndex],Technologies.R_Beautification_Brazier)
table.insert(NeedsAndRightsByKnightTitle[KnightTitles.Marquees][TechnologiesTableIndex],Technologies.R_Beautification_Pillar)
table.insert(NeedsAndRightsByKnightTitle[KnightTitles.Marquees][TechnologiesTableIndex],Technologies.R_Beautification_Shrine)
table.insert(NeedsAndRightsByKnightTitle[KnightTitles.Duke][TechnologiesTableIndex],Technologies.R_Beautification_StoneBench)
table.insert(NeedsAndRightsByKnightTitle[KnightTitles.Duke][TechnologiesTableIndex],Technologies.R_Beautification_Sundial)
table.insert(NeedsAndRightsByKnightTitle[KnightTitles.Duke][TechnologiesTableIndex],Technologies.R_Beautification_Vase)
table.insert(NeedsAndRightsByKnightTitle[KnightTitles.Archduke][TechnologiesTableIndex],Technologies.R_Beautification_TriumphalArch)
table.insert(NeedsAndRightsByKnightTitle[KnightTitles.Archduke][TechnologiesTableIndex],Technologies.R_Beautification_VictoryColumn)
end
KnightTitleRequirements = {}
KnightTitleRequirements[KnightTitles.Mayor] = {}
KnightTitleRequirements[KnightTitles.Mayor].Settlers = 30
KnightTitleRequirements[KnightTitles.Mayor].Headquarters = 1
KnightTitleRequirements[KnightTitles.Mayor].Goods = { {"AmountOfProductsOfEntitiesInCategory", EntityCategories.GC_Clothes_Supplier, 12},
{"AmountOfProductsOfEntitiesInCategory", EntityCategories.GC_Food_Supplier, 20},}
KnightTitleRequirements[KnightTitles.Baron] = {}
KnightTitleRequirements[KnightTitles.Baron].Storehouse = 1
KnightTitleRequirements[KnightTitles.Baron].Headquarters = 1
KnightTitleRequirements[KnightTitles.Baron].Cathedrals = 1
KnightTitleRequirements[KnightTitles.Baron].Settlers = 60
KnightTitleRequirements[KnightTitles.Baron].Goods = { {"AmountOfProductsOfEntitiesInCategory", EntityCategories.GC_Hygiene_Supplier, 18},
{"AmountOfEntity", Entities.B_Barracks, 1},}
KnightTitleRequirements[KnightTitles.Earl] = {}
KnightTitleRequirements[KnightTitles.Earl].Settlers = 80
KnightTitleRequirements[KnightTitles.Earl].Headquarters = 2
KnightTitleRequirements[KnightTitles.Earl].DecoratedBuildings = {Goods.G_Sign, 8}
KnightTitleRequirements[KnightTitles.Earl].Goods = { {"AmountOfProductsOfEntitiesInCategory", EntityCategories.GC_Entertainment_Supplier, 18},
{"AmountOfEntitiesInCategory", EntityCategories.Spouse, 20},}
KnightTitleRequirements[KnightTitles.Marquees] = {}
KnightTitleRequirements[KnightTitles.Marquees].Storehouse = 2
KnightTitleRequirements[KnightTitles.Marquees].Cathedrals = 2
KnightTitleRequirements[KnightTitles.Marquees].RichBuildings = 15
KnightTitleRequirements[KnightTitles.Marquees].DecoratedBuildings = {Goods.G_Banner, 8}
KnightTitleRequirements[KnightTitles.Marquees].Goods = {{"AmountOfProductsOfEntitiesInCategory", EntityCategories.GC_Weapon_Supplier, 20},
{"AmountOfProductsOfEntitiesInCategory", EntityCategories.GC_Medicine_Supplier, 20},}
KnightTitleRequirements[KnightTitles.Duke] = {}
KnightTitleRequirements[KnightTitles.Duke].Settlers = 150
KnightTitleRequirements[KnightTitles.Duke].Headquarters = 3
KnightTitleRequirements[KnightTitles.Duke].DecoratedBuildings = {Goods.G_Candle, 8}
KnightTitleRequirements[KnightTitles.Duke].Goods = { {"AmountOfProductsOfEntitiesInCategory", EntityCategories.GC_Entertainment_Supplier, 30},
{"AmountOfEntitiesInCategory", EntityCategories.Spouse, 40},
{"AmountOfEntity", Entities.B_Baths, 2}}
KnightTitleRequirements[KnightTitles.Archduke] = {}
KnightTitleRequirements[KnightTitles.Duke].Settlers = 200
KnightTitleRequirements[KnightTitles.Archduke].Storehouse = 3
KnightTitleRequirements[KnightTitles.Archduke].Cathedrals = 3
KnightTitleRequirements[KnightTitles.Archduke].RichBuildings = 30
KnightTitleRequirements[KnightTitles.Archduke].DecoratedBuildings = {-1, 30}
KnightTitleRequirements[KnightTitles.Archduke].Goods = {{"AmountOfEntitiesInCategory", EntityCategories.Soldier, 90},}
if not GUI then
TechnologiesToProhibit = {
}
for i=1, #TechnologiesToProhibit do
Logic.TechnologySetState(1, TechnologiesToProhibit[i], TechnologyStates.Prohibited)
end
end
end
Die Funktion im ganzen. Diese Aufstiegsbedingungen habe ich (totalwarANGEL) entworfen. Vielleicht hast du dadurch eine Inspiration für deine eigenen, ganz speziellen Aufstiegsbedingungen. Immerhin kannst du die ganze Map darauf auslegen, das Erreichen er vorgegeben Ziele zu erschweren. Dadurch bleibt das Spiel spannend.
Rückbau erlauben
Rückbau bedeutet ein Stadt- oder Rohstoffgebäude Gebäude auf Stufe 3 für eine Gebühr um eine Stufe downzugraden. Je nachdem wie die Gebühr festgesetzt wird kann es lohnender sein als ein kompletter Abriss. Mach es nicht zu teuer.
Lokales Skript:
- Suche den Eintrag g_UseDowngradeBuildings und trage hinter dem Gleichheitszeichen true ein.
- Setze im Table g_DowngradeCosts den Preis fest (2. Eintrag im Table)
Globales Skript:
- Rufe UserSetIsBuildingDowngrade() in der Mission_FirstMapAction auf
Militär entlassen
Um Militär zu entlassen muss eine Anpassung im lokalen Skript vorgenommen werden.
Batalione entlassen: g_UseMilitaryRelease auf true setzen
Kriegsmaschinen entlassen: g_UseSiegeEngineRelease auf true setzen
Abriss verbieten
Das Nep bietet eine umfangreiche Sammlung an Funktionen, um den Abriss von Gebäuden einzuschrenken.
AddNoKnockDownNamedEntities("sheepFarm1")
Die angegebene Entity kann nicht mehr abgerissen werden.
Logic.ExecuteInLuaLocalState('NoKnockDownAddEntities("B_Butcher")')
Alle Metzger können nicht mehr abgerissen werden.
Logic.ExecuteInLuaLocalState('NoKnockDownAddEntityCategories("OuterRimBuilding")')
Alle Rohstoffsammler können nicht mehr abgerissen werden.
Abriss erlauben
Und so wird das Abreißen wieder erlaubt:
RemoveNoKnockDownNamedEntities("sheepFarm1")
Das Gebäude "sheepFarm1" kann nun wieder abgerissen werden.
RemoveNoKnockDownEntities("B_Butcher")
Metzger können nun wieder abgerissen werden.
RemoveNoKnockDownEntityCategories("OuterRimBuilding")
Alle Rohstoffgebäude können nun wieder abgerissen werden.
|