Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --------------------------------------------------------------------------------
- -- MapName: XXX
- --
- -- Author: XXX
- --
- --------------------------------------------------------------------------------
- -- Include main function
- Script.Load( Folders.MapTools.."Main.lua" )
- IncludeGlobals("MapEditorTools")
- --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- -- This function is called from main script to initialize the diplomacy states
- function InitDiplomacy()
- SetNeutral(1,2)
- SetNeutral(1,3)
- SetNeutral(1,4)
- SetNeutral(1,5)
- SetNeutral(1,6)
- SetNeutral(1,7)
- SetNeutral(1,8)
- SetHostile(2,6)
- SetHostile(3,6)
- SetHostile(4,6)
- SetPlayerName(2,"Sir Friedrich ")
- SetPlayerName(3,"Sir Leopold ")
- SetPlayerName(4,"Sir Ferdinant ")
- SetPlayerName(5,"Ulrichstein")
- SetPlayerName(6,"Celle")
- SetPlayerName(7,"Wismar")
- SetPlayerName(8,"Neutrale Bewohner")
- end
- --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- -- This function is called from main script to init all resources for player(s)
- function InitResources()
- -- set some resources
- AddGold (1000)
- AddSulfur(0)
- AddIron (1000)
- AddWood (1000)
- AddStone (1000)
- AddClay (1000)
- end
- --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- -- This function is called to setup Technology states on mission start
- function InitTechnologies()
- ForbidTechnology( Technologies.T_ThiefSabotage , 1 );
- ForbidTechnology( Technologies.UP1_Market , 1);
- end
- --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- -- This function is called on game start and after save game is loaded, setup your weather gfx
- -- sets here
- function InitWeatherGfxSets()
- SetupNormalWeatherGfxSet()
- end
- --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- -- This function is called on game start you should setup your weather periods here
- function InitWeather()
- AddPeriodicSummer(10)
- end
- --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- -- This function is called on game start and after save game to initialize player colors
- function InitPlayerColorMapping()
- end
- --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- -- This function is called on game start after all initialization is done
- function FirstMapAction()
- ActivateBriefingsExpansion()
- ColorNamen()
- CreateArmyOne()
- CreateArmyTwo()
- CreateArmyThree()
- CreateArmyFive()
- PreludeBriefing()
- AuftandQuest()
- RenameBruecke1()
- RenameBruecke2()
- RenameBruecke3()
- StartSimpleJob("Wehrpflicht")
- StartSimpleJob("Gewonnen")
- StartSimpleJob("Verloren")
- -- Level 0 is deactivated...ignore
- MapEditor_SetupAI(2, 3, 768, 2, "platz", 3, 0)
- MapEditor_SetupAI(3, 3, 768, 3, "platz2", 3, 0)
- MapEditor_SetupAI(4, 3, 768, 3, "platz3", 3, 0)
- MapEditor_SetupAI(5, 0, 0, 0, "", 0, 0)
- MapEditor_SetupAI(6, 3, 768, 3, "platz5", 3, 0)
- MapEditor_SetupAI(7, 0, 0, 0, "", 0, 0)
- MapEditor_SetupAI(8, 0, 0, 0, "", 0, 0)
- SetNeutral(1,2)
- SetNeutral(1,3)
- SetNeutral(1,4)
- SetNeutral(1,5)
- SetNeutral(1,6)
- SetNeutral(1,7)
- SetNeutral(1,8)
- SetHostile(2,6)
- SetHostile(3,6)
- SetHostile(4,6)
- end
- function RenameBruecke1()
- local pos = GetPosition("posofbridge1")
- Data = { Logic.GetEntitiesInArea( Entities.PB_Bridge2, pos.X, pos.Y, 44108.3, 23071.2)};
- if Data[1]>0 then
- SetEntityName(Data[2],"bridge1")
- end
- end
- function RenameBruecke2()
- local pos = GetPosition("posofbridge2")
- Data = { Logic.GetEntitiesInArea( Entities.PB_Bridge1, pos.X, pos.Y, 64391.8, 39874.0)};
- if Data[1]>0 then
- SetEntityName(Data[2],"bridge2")
- end
- end
- function RenameBruecke3()
- local pos = GetPosition("posofbridge1")
- Data = { Logic.GetEntitiesInArea( Entities.PB_Bridge2, pos.X, pos.Y, 70108.3, 46371.2)};
- if Data[1]>0 then
- SetEntityName(Data[2],"bridge3")
- end
- end
- function ColorNamen()
- weiss = "@color:255,255,255"
- orange = "@color:255,127,0"
- hGruen = "@color:173,255,47"
- hGelb = "@color:238,221,130"
- nErz = ""..orange.." ERZÄHLER "..weiss..""
- nHin = ""..orange.." HINWEIS "..weiss..""
- nEin = ""..orange.." Einsiedler "..weiss..""
- nEre = ""..orange.." Erec "..weiss..""
- nDie = ""..orange.." Dieb "..weiss..""
- nTW = ""..orange.." Torwache "..weiss..""
- nWan = ""..orange.." Wanderer "..weiss..""
- nLeo = ""..orange.." Leonardo "..weiss..""
- nBg = ""..orange.." Bürgermeister "..weiss..""
- nDor = ""..orange.." Dorfbewohner "..weiss..""
- nDra = ""..orange.." Drake "..weiss..""
- nAnf = ""..orange.." Anführer "..weiss..""
- end
- function PreludeBriefing()
- local briefing = {}
- BRIEFING_TIMER_PER_CHAR = 1.0
- local AP, ASP = AddPages(briefing);
- ASP("pos1",nErz,"Die drei mächtigen Herrscher SirFriedrich von Falkenberg, SirLeopold von Degenfeld und SirFerdinant Landgraf unterdrücken schon lange die Bevölkerung.", false)
- ASP("pos2",nErz," Und wer sich wiedersetzt wird dem Erdboden gleich gemacht. Der Bürgermeister von Wismar hat aus diesem Grund Drake (den er kannte) um Hilfe gebeten.", false)
- ASP("posstart",nErz,"Da die Herrscher jedoch so ein großes Gebiet in ihrem Einfluss haben, hätten sie eine angreifende Armee schnell bemerkt. Und dann würden sie sich bei der Bevölkerung rächen und wären gut auf einen Kampf vorbereitet.", false)
- ASP("Erec",nErz,"Deshalb war Drake ohne Armee gekommen, doch von ihm war seither nichts mehr zu hören. Also hat sich Erec auf den Weg gemacht.", false)
- ASP("Erec",nErz,"Ich wünsche euch viel Glück!", true)
- briefing.finished = function()
- EnableNpcMarker(GetEntityId("einsiedler"))
- EnableNpcMarker(GetEntityId("tw1"))
- EnableNpcMarker(GetEntityId("leonardo"))
- EnableNpcMarker(GetEntityId("bürgermeister2"))
- EnableNpcMarker(GetEntityId("dorfbewohner"))
- EnableNpcMarker(GetEntityId("drake"))
- EinsiedlerBrief()
- TorwacheBrief()
- LeonardoBrief()
- Buergermeister2Brief()
- DorfbewohnerBrief()
- DrakeBrief()
- end;
- StartBriefing(briefing);
- end
- -------------------------------------------------------Briefing----------------------------------
- function DorfbewohnerBrief()
- local beidorfbewohner = {
- EntityName = "Erec",
- TargetName = "dorfbewohner",
- Distance = 500,
- Callback = function()
- LookAt("Erec","dorfbewohner"); LookAt("dorfbewohner","Erec")
- Camera.FollowEntity(GetEntityId("dorfbewohner"))
- DisableNpcMarker(GetEntityId("dorfbewohner"))
- local briefing = {}
- BRIEFING_TIMER_PER_CHAR = 1.0
- local AP, ASP = AddPages(briefing);
- ASP("dorfbewohner",nDor,"Fremder, ihr seht so aus als ob ihr das Abenteuer sucht. Genau so einer wie ihr kam vor einigen Tagen auch mal vorbei. Gestern hab ich ihn wieder gesehen: da ist er über die Brücke im Osten gelaufen", true)
- ASP("Erec",nEre,"Danke, ich werde ihn mal suchen.", true)
- briefing.finished = function()
- DrakeQuest()
- end;
- StartBriefing(briefing);
- end
- }
- SetupExpedition(beidorfbewohner)
- end
- function TorwacheBrief()
- local beitw1 = {
- EntityName = "Erec",
- TargetName = "tw1",
- Distance = 500,
- Callback = function()
- LookAt("Erec","tw1"); LookAt("tw1","Erec")
- Camera.FollowEntity(GetEntityId("tw1"))
- DisableNpcMarker(GetEntityId("tw1"))
- local briefing = {}
- BRIEFING_TIMER_PER_CHAR = 1.0
- local AP, ASP = AddPages(briefing);
- ASP("tw1",nTW,"Darf ich euch das Kampaner Tal und seine Prächtigen Herrscher vorstellen bevor ihr eintretet?", true)
- ASP("Erec",nEre,"Ich habe nicht sonderlich viel Zeit, also...", true)
- ASP("tw1",nTW,"Gut, dann sag ich euch eben nur die wichtigste Regel: Ihr seht zwar nicht so aus, aber Krieger sind hier verboten! Schon das Erforschen der Wehrpflicht wird mit dem Tod bestraft!Hahaha ", true)
- briefing.finished = function()
- end;
- StartBriefing(briefing);
- end
- }
- SetupExpedition(beitw1)
- end
- function DrakeBrief()
- local beidrake = {
- EntityName = "Erec",
- TargetName = "drake",
- Distance = 500,
- Callback = function()
- LookAt("Erec","drake"); LookAt("drake","Erec")
- Camera.FollowEntity(GetEntityId("drake"))
- DisableNpcMarker(GetEntityId("drake"))
- local briefing = {}
- BRIEFING_TIMER_PER_CHAR = 1.0
- local AP, ASP = AddPages(briefing);
- ASP("Erec",nEre, "Hey Drake mein Freund, da bist du ja! Ich habe schon länger nichts mehr von dir gehört. Was ist passiert?", true)
- ASP("drake",nDra, "Erec! Es ist gut, dass du gekommen bist. Du bist meine Rettung!", true)
- ASP("Erec",nEre, "Gut, aber warum bin ich deine Rettung?", false)
- ASP("drake",nDra, "Ich habe einen von den Wachen abgeknallt, da hat SirFerdinant seine halbe Armee auf mich gehetzt, aber ich konnte mich glücklicherweise auf dieser Insel verstecken und hier sollte ich auch sicherheitshalber erstmal bleiben. Du solltest jedoch unbedingt schonmal mit dem Aufbau der Stadt beginnen und mit dem Bürgermeister von Wismar sprechen.", false)
- briefing.finished = function()
- EnableNpcMarker(GetEntityId("bürgermeister1"))
- Buergermeiseter1Brief()
- ChangePlayer("wechsel1", 1)
- ChangePlayer("wechsel2", 1)
- ChangePlayer("wechsel3", 1)
- ChangePlayer("wechsel4", 1)
- ChangePlayer("wechsel5", 1)
- end;
- StartBriefing(briefing);
- end
- }
- SetupExpedition(beidrake)
- end
- function Buergermeister1Brief()
- local beimayor = {
- EntityName = "Erec",
- TargetName = "mayor",
- Distance = 500,
- Callback = function()
- LookAt("Erec","mayor"); LookAt("mayor","Erec")
- Camera.FollowEntity(GetEntityId("mayor"))
- DisableNpcMarker(GetEntityId("mayor"))
- local briefing = {}
- BRIEFING_TIMER_PER_CHAR = 1.0
- local AP, ASP = AddPages(briefing);
- ASP("mayor",nBg, "Hallo, du musst Erec, der Freund von Drake sein. Ich bin der Bürgermeister von Wismar. Wie du sehen kannst brauchen wir hier dringend Hilfe. Es ist, wie du sicherlich bereits weisst, strengstens verboten, eine Armee aufzustellen - Celle hat es trotzdem gemacht - Sie werden genau wie die kleine, jetzt zerstörte Stadt im Westen, angegriffen", true)
- ASP("pos3",nBg, "Wir müssen Celle helfen, aber wenn wir das tun, werden wir auch angegriffen! Und darauf habe ich keine Lust. Um ihnen aber irgendwie ungeschadet helfen zu können, haben Drake und ich diese kleine Insel auf der sich Drake momentan befindet, gefunden. Sie bietet zwar keine großen Eisen und Schwefelvorkommen, aber wenn man die Brücke hochsprengt, ist man geschützt und hätte genügend Zeit, um sich gut auf einen Kampf vorzubereiten. - und Celle wäre dann auch geschützt wenn man ihre beiden Brücken hochsprengt. Ihnen wäre damit sicherlich gut geholfen ", true)
- ASP("mayor",nBg, "Dazu habe ich mir auch schon überlegt, dass man ja mit unserem Sprengmeister reden könnte. Vielleicht kann er ja helfen.", false)
- ASP("Erec",nEre, "Klingt gut, ich werde ihn direkt suchen!", false)
- ASP("mayor",nBg, "Ach ehe ich es vergesse noch etwas. Du solltest dich beeilen, denn wie du (links oben) siehst, dauert es nicht mehr lange bis Celle zerstört wird und alles verloren ist. Außerdem solltest du dich immer gut umsehen. Möglicherweise gibt es einige Leute, die uns helfen können!", false)
- briefing.finished = function()
- SetFriendly(1,7)
- ActivateShareExploration(1,7, true)
- EnableNpcMarker(GetEntityId("dieb"))
- EnableNpcMarker(GetEntityId("wanderer"))
- DiebBrief()
- WandererBrief()
- BrueckenQuest()
- StartSimpleJob("BridgeDead")
- end;
- StartBriefing(briefing);
- end
- }
- SetupExpedition(beimayor)
- end
- function DiebBrief()
- local beidieb = {
- EntityName = "Erec",
- TargetName = "dieb",
- Distance = 500,
- Callback = function()
- LookAt("Erec","dieb"); LookAt("dieb","Erec")
- Camera.FollowEntity(GetEntityId("dieb"))
- DisableNpcMarker(GetEntityId("dieb"))
- local briefing = {}
- BRIEFING_TIMER_PER_CHAR = 1.0
- local AP, ASP = AddPages(briefing);
- ASP("dieb",nDie, "Haha! Das hätte ich schon lange gemacht, aber die vermaledeiten Krieger haben mir den Sprengstoff weggenommen!", true)
- ASP("dieb",nDie, "Gebt mir 5000 Schwefel und es macht mal wieder kawumm!!! ", true)
- briefing.finished = function()
- TW_1Tribute()
- end;
- StartBriefing(briefing);
- end
- }
- SetupExpedition(beidieb)
- end
- function Buergermeister2Brief()
- local beimayor = {
- EntityName = "Erec",
- TargetName = "mayor2",
- Distance = 500,
- Callback = function()
- LookAt("Erec","mayor2"); LookAt("mayor2","Erec")
- Camera.FollowEntity(GetEntityId("mayor2"))
- DisableNpcMarker(GetEntityId("mayor2"))
- local briefing = {}
- BRIEFING_TIMER_PER_CHAR = 1.0
- local AP, ASP = AddPages(briefing);
- ASP("mayor2",nBg, "Hmm lass mich überlegen...nein dich kennne ich tatsächlich nicht. Darf ich dich trotzdem nach einen Gefallen fragen?", true)
- ASP("Erec",nEre, "Natürlich, deswegen bin ich ja quasi gekommen.", true)
- ASP("mayor2",nBg, "Super! Könntest du mir die Lehmmine und die Steinmine wieder aufbauen und einmal verbessern? Das würde mir ennorm beim Aufbau der Stadt helfen und ich könnte endlich wieder handeln. ", false)
- ASP("mayor2",nBg, "Da uns die Unterdrückung nun schon so lange zermürbt, würde ich euch gerne helfen, wenn ihr einen großen Aufstand startet. Wie - muss ich mir noch überlegen, aber geht nun weiter mein Herr. Ich setzte große Hoffnungen auf euch.", false)
- briefing.finished = function()
- MinenQuest()
- StartSimpleJob("Minen")
- end;
- StartBriefing(briefing);
- end
- }
- SetupExpedition(beimayor2)
- end
- function LeonardoBrief()
- local beileonardo = {
- EntityName = "Erec",
- TargetName = "leonardo",
- Distance = 500,
- Callback = function()
- LookAt("Erec","leonardo"); LookAt("leonardo","Erec")
- Camera.FollowEntity(GetEntityId("leonardo"))
- DisableNpcMarker(GetEntityId("leonardo"))
- local briefing = {}
- BRIEFING_TIMER_PER_CHAR = 1.0
- local AP, ASP = AddPages(briefing);
- ASP("leonardo",nLeo, "Aaah Hallo Erec, lange ist es her seit wir uns gesehen haben. Jajaja... Ich forsche hier viel mit Schwefel, aber weil ich jetzt Eisen benötige komme ich einfach nicht weiter.", true)
- ASP("leonardo",nLeo, "Es ist wie verhext, man kommt nirgendwo an Eisenverkäufer. Und das obwohl ich für die kleine Menge an Eisen gleich 10000 Schwefel geben würde!", true)
- briefing.finished = function()
- TW_2Tribute()
- end;
- StartBriefing(briefing);
- end
- }
- SetupExpedition(beileonardo)
- end
- function WandererBrief()
- local beiwanderer = {
- EntityName = "Erec",
- TargetName = "wanderer",
- Distance = 500,
- Callback = function()
- LookAt("Erec","wanderer"); LookAt("wanderer","Erec")
- Camera.FollowEntity(GetEntityId("wanderer"))
- DisableNpcMarker(GetEntityId("wanderer"))
- local briefing = {}
- BRIEFING_TIMER_PER_CHAR = 1.0
- local AP, ASP = AddPages(briefing);
- ASP("wanderer",nWan, "Halt! Ich habe von eurem Plan mit den Brücken gehört! Doch was soll das bringen? Gegen drei starke Armeen könnt ihr doch niemals bestehen!", true)
- ASP("wanderer",nWan, "Knöpft euch Sir Ferdinant Landgraf lieber später vor! Wenn er nichts davon mitbekommt, wird er auch nichts machen! ", true)
- ASP("wanderer",nWan, "Gegen eine gewisse Bezahlung könnte ich versuchen, die Boten von Sir Ferdinant mit meinen Neffen etwas aufzuhalten. ", false)
- briefing.finished = function()
- TW_3Tribute()
- end;
- StartBriefing(briefing);
- end
- }
- SetupExpedition(beiwanderer)
- end
- function EinsiedlerBrief()
- local beieinsiedler = {
- EntityName = "Erec",
- TargetName = "einsiedler",
- Distance = 500,
- Callback = function()
- LookAt("Erec","einsiedler"); LookAt("einsiedler","Erec")
- Camera.FollowEntity(GetEntityId("einsiedler"))
- DisableNpcMarker(GetEntityId("einsiedler"))
- local briefing = {}
- BRIEFING_TIMER_PER_CHAR = 1.0
- local AP, ASP = AddPages(briefing);
- ASP("einsiedler",nEin, "Im Osten gibt es ein Dorfzentrum und eine Eisenmine, aber wer will schon Eisen, wenn man keine Armee ausbilden darf?", true)
- ASP("einsiedler",nEin, "Deshalb sind die Bergarbeiter hier komplett gegangen! Und das obwohl Ulrichstein unbedingt Bergarbeiter braucht ", true)
- briefing.finished = function()
- end;
- StartBriefing(briefing);
- end
- }
- SetupExpedition(beieinsiedler)
- end
- function Buergermeister3Brief()
- local beimayor3 = {
- EntityName = "Erec",
- TargetName = "mayor3",
- Distance = 500,
- Callback = function()
- LookAt("Erec","mayor3"); LookAt("mayor3","Erec")
- Camera.FollowEntity(GetEntityId("mayor3"))
- DisableNpcMarker(GetEntityId("mayor3"))
- local briefing = {}
- BRIEFING_TIMER_PER_CHAR = 1.0
- local AP, ASP = AddPages(briefing);
- ASP("mayor3",nBg, "Puh das war knapp, aber ihr habt uns gerettet. Also stehe ich in eurer Schuld. Ich werde euch beim Kampf militärisch unterstützen", true)
- briefing.finished = function()
- SetFriendly(1,6)
- ActivateShareExploration(1,6, true)
- EnableNpcMarker(GetEntityId("drake"))
- DrakeBrief_2()
- end;
- StartBriefing(briefing);
- end
- }
- SetupExpedition(beimayor3)
- end
- function DrakeBrief_2()
- local beidrake = {
- EntityName = "Erec",
- TargetName = "drake",
- Distance = 500,
- Callback = function()
- LookAt("Erec","drake"); LookAt("drake","Erec")
- Camera.FollowEntity(GetEntityId("drake"))
- DisableNpcMarker(GetEntityId("drake"))
- local briefing = {}
- BRIEFING_TIMER_PER_CHAR = 1.0
- local AP, ASP = AddPages(briefing);
- ASP("drake",nDra, "Jetzt wissen sie sowieso von uns und werden uns bekämpfen, da kann ich ja jetzt endlich helfen. ", true)
- briefing.finished = function()
- ChangePlayer("drake",1)
- end;
- StartBriefing(briefing);
- end
- }
- SetupExpedition(beidrake)
- end
- ------------------------------------------Quests----------------------------------------------
- function AuftandQuest()
- quest = {
- id = GetQuestId(),
- type = SUBQUEST_OPEN,
- title =""..hGelb.."Unterdr\195\188ung beenden",
- text ="Besiegt die drei Herrscher vom Kampaner Tal, um die Unterdr\195\188ckung zu beenden @cr "..
- "Doch bedenkt, dass sie euch ab dem Zeitpunkt ab dem ihr Wehrpflicht erforcht habt, als Feinde sehen werden und ihr euch deshalb gut vorbereiten solltet @cr ",
- }
- Logic.AddQuest(1, quest.id, quest.type, quest.title, quest.text,1)
- QuestAufstand = quest.id
- end
- function BrueckenQuest()
- quest = {
- id = GetQuestId(),
- type = SUBQUEST_OPEN,
- title =""..hGelb.."Br\195\188cken zerstören",
- text ="Zerst\195\182rt eure Br\195\188cke und die beiden Br\195\188cken von Celle, bevor Celle das Dorfzentrum verliert @cr "..
- "Ihr solltet es schaffen bevor die Zeit abläuft @cr ",
- }
- Logic.AddQuest(1, quest.id, quest.type, quest.title, quest.text,1)
- QuestBruecken = quest.id
- end
- function MinenQuest()
- quest = {
- id = GetQuestId(),
- type = SUBQUEST_OPEN,
- title =""..hGelb.."Minen bauen",
- text ="Baut die Stein- und die Lehmmine von Ulrichstein auf und verbessert sie auf Stufe 2, um ihnen beim Aufbau der Stadt zu helfen @cr "..
- "Der Bürgermeister wird sich revanchieren @cr ",
- }
- Logic.AddQuest(1, quest.id, quest.type, quest.title, quest.text,1)
- QuestMinen = quest.id
- end
- -------------------------------------SimpleJobs------------------------------------------------
- function BridgeDead()
- if IsDead("bridge1") and IsDead("bridge2") and IsDead("bridge3") then
- local briefing = {}
- BRIEFING_TIMER_PER_CHAR = 0.8
- local AP, ASP = AddPages(briefing);
- ASP("bridge1",nErz,
- "Sehr gut gemacht du hast die Brücken zerstört und Celle gerettet "..
- "Vielleicht will der Bürgermeister von Celle ja mit euch sprechen", false)
- briefing.finished = function()
- EnableNpcMarker(GetEntityId("mayor3"))
- Buergermeister3Brief()
- SetHostile(1,2)
- SetHostile(1,3)
- SetHostile(1,4)
- Logic.RemoveQuest(1, QuestBruecken)
- end;
- StartBriefing(briefing);
- return true
- end
- end
- function Wandererbridge()
- if IsDead("bridge1") and IsDead("bridge2") and IsDead("bridge3") then
- local briefing = {}
- BRIEFING_TIMER_PER_CHAR = 0.8
- local AP, ASP = AddPages(briefing);
- ASP("bridge1",nErz,
- "Sehr gut gemacht du hast die Brücken zerstört und Celle gerettet "..
- "Vielleicht will der Bürgermeister von Celle ja mit euch sprechen", false)
- briefing.finished = function()
- EnableNpcMarker(GetEntityId("mayor3"))
- Buergermeister3Brief()
- SetHostile(1,2)
- SetHostile(1,3)
- SetHostile(1,4)
- StartSimpleJob("WandererBridge1")
- StartSimpleJob("WandererBridge2")
- StartSimpleJob("WandererBridge3")
- Logic.RemoveQuest(1, QuestBruecken)
- end;
- StartBriefing(briefing);
- return true
- end
- end
- function WandererBridge1()
- end
- function Minenbridge()
- if IsDead("bridge1") and IsDead("bridge2") and IsDead("bridge3") then
- local briefing = {}
- BRIEFING_TIMER_PER_CHAR = 0.8
- local AP, ASP = AddPages(briefing);
- ASP("bridge1",nErz,
- "Sehr gut gemacht du hast die Brücken zerstört und Celle gerettet "..
- "Vielleicht will der Bürgermeister von Celle ja mit euch sprechen", false)
- briefing.finished = function()
- EnableNpcMarker(GetEntityId("mayor3"))
- Buergermeister3Brief()
- SetHostile(1,2)
- SetHostile(1,3)
- SetHostile(1,4)
- StartSimpleJob("MinenBridge1")
- StartSimpleJob("MinenBridge2")
- StartSimpleJob("MinenBridge3")
- Logic.RemoveQuest(1, QuestBruecken)
- end;
- StartBriefing(briefing);
- return true
- end
- end
- function Verloren()
- if IsDead("wechsel5") then
- local briefing = {}
- BRIEFING_TIMER_PER_CHAR = 0.8
- local AP, ASP = AddPages(briefing);
- ASP("wechsel5",nErz,
- "Warum hast du Dein Hauptquartier nicht beschützt ? Jetzt ist es verloren und Du hast damit auch "..
- "das Spiel verloren.", false)
- briefing.finished = function()
- Defeat()
- end;
- StartBriefing(briefing);
- return true
- end
- end
- function Minen()
- local t = {Logic.GetPlayerEntitiesInArea( GUI.GetPlayerID(), Entities.PB_ClayMine1, pos.X, pos.Y, 42725.0, 74550.0 );Logic.GetPlayerEntitiesInArea( GUI.GetPlayerID(), Entities.PB_StoneMine1, pos.X, pos.Y, 39800.0, 74900.0 )};
- if t[2] then
- ChangePlayer(t[2], 5);
- Logic.RemoveQuest(1, QuestMinen);
- StartSimpleJob("Minenbridge")
- Logic.RemoveSimpeJob("BridgeDead")
- return true;
- end
- end
- function Gewonnen()
- if IsDead("P2_AI_HQ") and IsDead("P3_AI_HQ") and IsDead("P4_AI_HQ") then
- Victory();
- return true;
- end
- end
- ----------------------------------Tribute-----------------------------------------------
- function TW_1Tribute()
- local tributeTW_1 = {}
- tributeTW_1.playerId = 1;
- tributeTW_1.text = "Wenn ihr dem Dieb 5000 Schwefel zahlt, wird er sich euch anschließen. @cr ";
- tributeTW_1.cost = {Sulfur = 5000};
- tributeTW_1.Callback = OnTributeTW_1;
- AddTribute( tributeTW_1 )
- end
- function OnTributeTW_1()
- local briefing = {}
- BRIEFING_TIMER_PER_CHAR = 1.0
- local AP, ASP = AddPages(briefing);
- ASP("dieb",nDie,"Danke für das Schwefel!", true)
- briefing.finished = function()
- ChangePlayer("dieb", 1)
- end;
- StartBriefing(briefing);
- end
- function TW_2Tribute()
- local tributeTW_2 = {}
- tributeTW_2.playerId = 1;
- tributeTW_2.text = "Für 2500 Eisen gibt euch Leonardo 10000 Schwefel. @cr ";
- tributeTW_2.cost = {Iron = 2500};
- tributeTW_2.Callback = OnTributeTW_2;
- AddTribute( tributeTW_2 )
- end
- function OnTributeTW_2()
- local briefing = {}
- BRIEFING_TIMER_PER_CHAR = 1.0
- local AP, ASP = AddPages(briefing);
- ASP("leonardo",nLeo,"Ahhh super! Ihr habt das Eisen für mich! Dann kann es ja endlich weiter gehen... ahhh stimmt...hier habt ihr noch das Schwefel. ", true)
- briefing.finished = function()
- AddSulfur(10000)
- end;
- StartBriefing(briefing);
- end
- function TW_3Tribute()
- local tributeTW_3 = {}
- tributeTW_3.playerId = 1;
- tributeTW_3.text = "Wenn ihr dem Wanderer 5000 Gold zahlt, wird er mit seinen vier Neffen versuchen, die Boten von Sir Ferdinant aufzuhalten, wenn ihr die Brücken wiederaufbaut, damit er erst später in das Kampfgeschehen mit eingreift. @cr ";
- tributeTW_3.cost = {Gold = 5000};
- tributeTW_3.Callback = OnTributeTW_3;
- AddTribute( tributeTW_3 )
- end
- function OnTributeTW_3()
- local briefing = {}
- BRIEFING_TIMER_PER_CHAR = 1.0
- local AP, ASP = AddPages(briefing);
- ASP("wanderer",nWan,"Danke für das Gold heh...ist ne gute Investition von euch! Ich werd machen, was ich kann.", true)
- briefing.finished = function()
- StartSimpleJob("Wandererbridge")
- Logic.RemoveSimpleJob("BridgeDead")
- end;
- StartBriefing(briefing);
- end
- ----------------------------------------Armeen---------------------------------------------
- function CreateArmyOne()
- armyOne = {
- player = 4,
- id = 1,
- strength = 8,
- position = GetPosition("armyOne"),
- rodeLength = 4000
- }
- SetupArmy(armyOne)
- local troopDescription = {
- maxNumberOfSoldiers = 8,
- minNumberOfSoldiers = 0,
- experiencePoints = MEDIUM_EXPERIENCE,
- leaderType = Entities.PU_LeaderSword4
- }
- for i = 1, 10 do
- EnlargeArmy(armyOne, troopDescription)
- end
- local troopDescription = {
- maxNumberOfSoldiers = 8,
- minNumberOfSoldiers = 0,
- experiencePoints = LOW_EXPERIENCE,
- leaderType = Entities.PU_LeaderBow4
- }
- for i = 1, 10 do
- EnlargeArmy(armyOne, troopDescription)
- end
- local troopDescription = {
- maxNumberOfSoldiers = 8,
- minNumberOfSoldiers = 0,
- experiencePoints = LOW_EXPERIENCE,
- leaderType = Entities.PU_LeaderPoleArm4
- }
- for i = 1, 10 do
- EnlargeArmy(armyOne, troopDescription)
- end
- StartSimpleJob("ControlArmyOne")
- end
- function CreateArmyTwo()
- armyTwo = {
- player = 2,
- id = 2,
- strength = 3,
- position = GetPosition("armyTwo"),
- rodeLength = 4000
- }
- SetupArmy(armyTwo)
- local troopDescription = {
- maxNumberOfSoldiers = 8,
- minNumberOfSoldiers = 0,
- experiencePoints = MEDIUM_EXPERIENCE,
- leaderType = Entities.PU_LeaderSword3
- }
- for i = 1, 3 do
- EnlargeArmy(armyTwo, troopDescription)
- end
- local troopDescription = {
- maxNumberOfSoldiers = 8,
- minNumberOfSoldiers = 0,
- experiencePoints = LOW_EXPERIENCE,
- leaderType = Entities.PU_LeaderBow3
- }
- for i = 1, 3 do
- EnlargeArmy(armyTwo, troopDescription)
- end
- local troopDescription = {
- maxNumberOfSoldiers = 8,
- minNumberOfSoldiers = 0,
- experiencePoints = LOW_EXPERIENCE,
- leaderType = Entities.PU_LeaderPoleArm3
- }
- for i = 1, 3 do
- EnlargeArmy(armyTwo, troopDescription)
- end
- StartSimpleJob("ControlArmyTwo")
- end
- function CreateArmyThree()
- armyThree = {
- player = 3,
- id = 3,
- strength = 5,
- position = GetPosition("armyThree"),
- rodeLength = 4000
- }
- SetupArmy(armyThree)
- local troopDescription = {
- maxNumberOfSoldiers = 8,
- minNumberOfSoldiers = 0,
- experiencePoints = MEDIUM_EXPERIENCE,
- leaderType = Entities.PU_LeaderSword4
- }
- for i = 1, 5 do
- EnlargeArmy(armyThree, troopDescription)
- end
- local troopDescription = {
- maxNumberOfSoldiers = 8,
- minNumberOfSoldiers = 0,
- experiencePoints = LOW_EXPERIENCE,
- leaderType = Entities.PU_LeaderBow4
- }
- for i = 1, 5 do
- EnlargeArmy(armyThree, troopDescription)
- end
- local troopDescription = {
- maxNumberOfSoldiers = 8,
- minNumberOfSoldiers = 0,
- experiencePoints = LOW_EXPERIENCE,
- leaderType = Entities.PU_LeaderPoleArm4
- }
- for i = 1, 5 do
- EnlargeArmy(armyThree, troopDescription)
- end
- StartSimpleJob("ControlArmyThree")
- end
- function CreateArmyFive()
- armyFive = {
- player = 6,
- id = 5,
- strength = 5,
- position = GetPosition("armyFive"),
- rodeLength = 4000
- }
- SetupArmy(armyFive)
- local troopDescription = {
- maxNumberOfSoldiers = 8,
- minNumberOfSoldiers = 0,
- experiencePoints = MEDIUM_EXPERIENCE,
- leaderType = Entities.PU_LeaderSword4
- }
- for i = 1, 5 do
- EnlargeArmy(armyFive, troopDescription)
- end
- local troopDescription = {
- maxNumberOfSoldiers = 8,
- minNumberOfSoldiers = 0,
- experiencePoints = LOW_EXPERIENCE,
- leaderType = Entities.PU_LeaderBow4
- }
- for i = 1, 5 do
- EnlargeArmy(armyFive, troopDescription)
- end
- local troopDescription = {
- maxNumberOfSoldiers = 8,
- minNumberOfSoldiers = 0,
- experiencePoints = LOW_EXPERIENCE,
- leaderType = Entities.PU_LeaderPoleArm4
- }
- for i = 1, 5 do
- EnlargeArmy(armyFive, troopDescription)
- end
- StartSimpleJob("ControlArmyFive")
- end
- -------------------------------------Countdown----------------------------------------------------------
- ---------------------------------ComfortFunktionen-----------------------------------------------
- function AddPages( _briefing )
- local AP = function(_page) table.insert(_briefing, _page); return _page; end
- local ASP = function(_entity, _title, _text, _dialog) return AP(CreateShortPage(_entity, _title, _text, _dialog)); end
- return AP, ASP;
- end
- function CreateShortPage( _entity, _title, _text, _dialog)
- local page = {
- title = _title,
- text = _text,
- position = GetPosition( _entity ),
- dialogCamera = _dialog
- };
- return page;
- end
- function ActivateBriefingsExpansion()
- if not unpack{true} then
- local unpack2;
- unpack2 = function( _table, i )
- i = i or 1;
- assert(type(_table) == "table");
- if i <= table.getn(_table) then
- return _table[i], unpack2(_table, i);
- end
- end
- unpack = unpack2;
- end
- Briefing_ExtraOrig = Briefing_Extra;
- Briefing_Extra = function( _v1, _v2 )
- for i = 1, 2 do
- local theButton = "CinematicMC_Button" .. i;
- XGUIEng.DisableButton(theButton, 1);
- XGUIEng.DisableButton(theButton, 0);
- end
- if _v1.action then
- assert( type(_v1.action) == "function" );
- if type(_v1.parameters) == "table" then
- _v1.action(unpack(_v1.parameters));
- else
- _v1.action(_v1.parameters);
- end
- end
- Briefing_ExtraOrig( _v1, _v2 );
- end;
- GameCallback_EscapeOrig = GameCallback_Escape;
- StartBriefingOrig = StartBriefing;
- EndBriefingOrig = EndBriefing;
- MessageOrig = Message;
- CreateNPCOrig = CreateNPC;
- StartBriefing = function(_briefing)
- assert(type(_briefing) == "table");
- if _briefing.noEscape then
- GameCallback_Escape = function() end;
- briefingState.noEscape = true;
- end
- StartBriefingOrig(Umlaute(_briefing));
- end
- EndBriefing = function()
- if briefingState.noEscape then
- GameCallback_Escape = GameCallback_EscapeOrig;
- briefingState.noEscape = nil;
- end
- EndBriefingOrig();
- end;
- Message = function(_text)
- MessageOrig(Umlaute(tostring(_text)));
- end;
- BugUmlaut = function(_text)
- local texttype = type(_text);
- if texttype == "string" then
- _text = string.gsub( _text, "ä", "ae" );
- _text = string.gsub( _text, "ö", "oe" );
- _text = string.gsub( _text, "ü", "ue" );
- _text = string.gsub( _text, "ß", "ss" );
- _text = string.gsub( _text, "Ä", "Ae" );
- _text = string.gsub( _text, "Ö", "Oe" );
- _text = string.gsub( _text, "Ü", "Ue" );
- return _text;
- elseif texttype == "table" then
- for k, v in _text do
- _text[k] = Umlaute( v );
- end
- return _text;
- else return _text;
- end
- end;
- CreateNPC = function(_npc)
- CreateNPCOrig(Umlaute(_npc));
- end;
- Umlaute = function(_text)
- local texttype = type(_text);
- if texttype == "string" then
- _text = string.gsub( _text, "ä", "\195\164" );
- _text = string.gsub( _text, "ö", "\195\182" );
- _text = string.gsub( _text, "ü", "\195\188" );
- _text = string.gsub( _text, "ß", "\195\159" );
- _text = string.gsub( _text, "Ä", "\195\132" );
- _text = string.gsub( _text, "Ö", "\195\150" );
- _text = string.gsub( _text, "Ü", "\195\156" );
- return _text;
- elseif texttype == "table" then
- for k, v in _text do
- _text[k] = Umlaute( v );
- end
- return _text;
- else return _text;
- end
- end;
- end
- function GetQuestId()
- gvMission.QuestId = (gvMission.QuestId or 0) + 1
- return gvMission.QuestId
- end
- function CreateShortPage( _entity, _title, _text, _dialog, _explore)
- local page = {
- title = _title,
- text = _text,
- position = GetPosition( _entity ),
- action = function ()Display.SetRenderFogOfWar(0) end
- };
- if _dialog then
- if type(_dialog) == "boolean" then
- page.dialogCamera = true;
- elseif type(_dialog) == "number" then
- page.explore = _dialog;
- end
- end
- if _explore then
- if type(_explore) == "boolean" then
- page.dialogCamera = true;
- elseif type(_explore) == "number" then
- page.explore = _explore;
- end
- end
- return page;
- end
- function AddTribute( _tribute )
- uniqueTributeCounter = uniqueTributeCounter or 1;
- _tribute.Tribute = uniqueTributeCounter;
- uniqueTributeCounter = uniqueTributeCounter + 1;
- local tResCost = {};
- for k, v in pairs( _tribute.cost ) do
- assert( ResourceType[k] );
- assert( type( v ) == "number" );
- table.insert( tResCost, ResourceType[k] );
- table.insert( tResCost, v );
- end
- Logic.AddTribute( _tribute.playerId, _tribute.Tribute, 0, 0, _tribute.text, unpack( tResCost ) );
- SetupTributePaid( _tribute );
- return _tribute.Tribute;
- end
- function ActivateShareExploration(_player1, _player2, _both)
- assert(type(_player1) == "number" and type(_player2) == "number" and _player1 <= 8 and _player2 <= 8 and _player1 >= 1 and _player2 >= 1);
- if _both == false then
- Logic.SetShareExplorationWithPlayerFlag(_player1, _player2, 1);
- else
- Logic.SetShareExplorationWithPlayerFlag(_player1, _player2, 1);
- Logic.SetShareExplorationWithPlayerFlag(_player2, _player1, 1);
- end
- end
Add Comment
Please, Sign In to add comment