noascape

Ausrufezeichen aber nicht ansprechbar

May 29th, 2020
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 36.67 KB | None | 0 0
  1. --------------------------------------------------------------------------------
  2. -- MapName: XXX
  3. --
  4. -- Author: XXX
  5. --
  6. --------------------------------------------------------------------------------
  7.  
  8. -- Include main function
  9. Script.Load( Folders.MapTools.."Main.lua" )
  10. IncludeGlobals("MapEditorTools")
  11.  
  12. --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  13. -- This function is called from main script to initialize the diplomacy states
  14. function InitDiplomacy()
  15.  
  16. SetNeutral(1,2)
  17. SetNeutral(1,3)
  18. SetNeutral(1,4)
  19. SetNeutral(1,5)
  20. SetNeutral(1,6)
  21. SetNeutral(1,7)
  22. SetNeutral(1,8)
  23.  
  24. SetHostile(2,6)
  25. SetHostile(3,6)
  26. SetHostile(4,6)
  27.  
  28. SetPlayerName(2,"Sir Friedrich ")
  29. SetPlayerName(3,"Sir Leopold ")
  30. SetPlayerName(4,"Sir Ferdinant ")
  31. SetPlayerName(5,"Ulrichstein")
  32. SetPlayerName(6,"Celle")
  33. SetPlayerName(7,"Wismar")
  34. SetPlayerName(8,"Neutrale Bewohner")
  35.  
  36.  
  37.  
  38. end
  39.  
  40.  
  41.  
  42. --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  43. -- This function is called from main script to init all resources for player(s)
  44. function InitResources()
  45. -- set some resources
  46. AddGold (1000)
  47. AddSulfur(0)
  48. AddIron (1000)
  49. AddWood (1000)
  50. AddStone (1000)
  51. AddClay (1000)
  52. end
  53.  
  54. --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  55. -- This function is called to setup Technology states on mission start
  56. function InitTechnologies()
  57.  
  58. ForbidTechnology( Technologies.T_ThiefSabotage , 1 );
  59. ForbidTechnology( Technologies.UP1_Market , 1);
  60.  
  61. end
  62.  
  63. --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  64. -- This function is called on game start and after save game is loaded, setup your weather gfx
  65. -- sets here
  66. function InitWeatherGfxSets()
  67. SetupNormalWeatherGfxSet()
  68. end
  69.  
  70. --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  71. -- This function is called on game start you should setup your weather periods here
  72. function InitWeather()
  73. AddPeriodicSummer(10)
  74. end
  75.  
  76. --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  77. -- This function is called on game start and after save game to initialize player colors
  78. function InitPlayerColorMapping()
  79. end
  80.  
  81. --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  82. -- This function is called on game start after all initialization is done
  83.  
  84.  
  85. function FirstMapAction()
  86.  
  87. ActivateBriefingsExpansion()
  88. ColorNamen()
  89. CreateArmyOne()
  90. CreateArmyTwo()
  91. CreateArmyThree()
  92. CreateArmyFive()
  93. PreludeBriefing()
  94. AuftandQuest()
  95. RenameBruecke1()
  96. RenameBruecke2()
  97. RenameBruecke3()
  98. StartSimpleJob("Wehrpflicht")
  99. StartSimpleJob("Gewonnen")
  100. StartSimpleJob("Verloren")
  101.  
  102.  
  103.  
  104.  
  105.  
  106. -- Level 0 is deactivated...ignore
  107. MapEditor_SetupAI(2, 3, 768, 2, "platz", 3, 0)
  108. MapEditor_SetupAI(3, 3, 768, 3, "platz2", 3, 0)
  109. MapEditor_SetupAI(4, 3, 768, 3, "platz3", 3, 0)
  110. MapEditor_SetupAI(5, 0, 0, 0, "", 0, 0)
  111. MapEditor_SetupAI(6, 3, 768, 3, "platz5", 3, 0)
  112. MapEditor_SetupAI(7, 0, 0, 0, "", 0, 0)
  113. MapEditor_SetupAI(8, 0, 0, 0, "", 0, 0)
  114.  
  115.  
  116.  
  117.  
  118. SetNeutral(1,2)
  119. SetNeutral(1,3)
  120. SetNeutral(1,4)
  121. SetNeutral(1,5)
  122. SetNeutral(1,6)
  123. SetNeutral(1,7)
  124. SetNeutral(1,8)
  125.  
  126. SetHostile(2,6)
  127. SetHostile(3,6)
  128. SetHostile(4,6)
  129.  
  130.  
  131.  
  132.  
  133.  
  134. end
  135.  
  136. function RenameBruecke1()
  137. local pos = GetPosition("posofbridge1")
  138. Data = { Logic.GetEntitiesInArea( Entities.PB_Bridge2, pos.X, pos.Y, 44108.3, 23071.2)};
  139. if Data[1]>0 then
  140. SetEntityName(Data[2],"bridge1")
  141. end
  142. end
  143.  
  144.  
  145. function RenameBruecke2()
  146. local pos = GetPosition("posofbridge2")
  147. Data = { Logic.GetEntitiesInArea( Entities.PB_Bridge1, pos.X, pos.Y, 64391.8, 39874.0)};
  148. if Data[1]>0 then
  149. SetEntityName(Data[2],"bridge2")
  150. end
  151. end
  152.  
  153.  
  154. function RenameBruecke3()
  155. local pos = GetPosition("posofbridge1")
  156. Data = { Logic.GetEntitiesInArea( Entities.PB_Bridge2, pos.X, pos.Y, 70108.3, 46371.2)};
  157. if Data[1]>0 then
  158. SetEntityName(Data[2],"bridge3")
  159. end
  160. end
  161.  
  162.  
  163. function ColorNamen()
  164. weiss = "@color:255,255,255"
  165. orange = "@color:255,127,0"
  166. hGruen = "@color:173,255,47"
  167. hGelb = "@color:238,221,130"
  168.  
  169. nErz = ""..orange.." ERZÄHLER "..weiss..""
  170. nHin = ""..orange.." HINWEIS "..weiss..""
  171. nEin = ""..orange.." Einsiedler "..weiss..""
  172. nEre = ""..orange.." Erec "..weiss..""
  173. nDie = ""..orange.." Dieb "..weiss..""
  174. nTW = ""..orange.." Torwache "..weiss..""
  175.  
  176. nWan = ""..orange.." Wanderer "..weiss..""
  177. nLeo = ""..orange.." Leonardo "..weiss..""
  178. nBg = ""..orange.." Bürgermeister "..weiss..""
  179. nDor = ""..orange.." Dorfbewohner "..weiss..""
  180. nDra = ""..orange.." Drake "..weiss..""
  181. nAnf = ""..orange.." Anführer "..weiss..""
  182.  
  183.  
  184. end
  185.  
  186. function PreludeBriefing()
  187. local briefing = {}
  188. BRIEFING_TIMER_PER_CHAR = 1.0
  189. local AP, ASP = AddPages(briefing);
  190. 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)
  191. 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)
  192. 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)
  193. 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)
  194. ASP("Erec",nErz,"Ich wünsche euch viel Glück!", true)
  195.  
  196. briefing.finished = function()
  197.  
  198. EnableNpcMarker(GetEntityId("einsiedler"))
  199. EnableNpcMarker(GetEntityId("tw1"))
  200. EnableNpcMarker(GetEntityId("leonardo"))
  201. EnableNpcMarker(GetEntityId("bürgermeister2"))
  202. EnableNpcMarker(GetEntityId("dorfbewohner"))
  203. EnableNpcMarker(GetEntityId("drake"))
  204.  
  205. EinsiedlerBrief()
  206. TorwacheBrief()
  207. LeonardoBrief()
  208. Buergermeister2Brief()
  209. DorfbewohnerBrief()
  210. DrakeBrief()
  211.  
  212.  
  213.  
  214.  
  215.  
  216. end;
  217. StartBriefing(briefing);
  218. end
  219.  
  220.  
  221. -------------------------------------------------------Briefing----------------------------------
  222.  
  223. function DorfbewohnerBrief()
  224. local beidorfbewohner = {
  225. EntityName = "Erec",
  226. TargetName = "dorfbewohner",
  227. Distance = 500,
  228. Callback = function()
  229. LookAt("Erec","dorfbewohner"); LookAt("dorfbewohner","Erec")
  230. Camera.FollowEntity(GetEntityId("dorfbewohner"))
  231. DisableNpcMarker(GetEntityId("dorfbewohner"))
  232. local briefing = {}
  233. BRIEFING_TIMER_PER_CHAR = 1.0
  234. local AP, ASP = AddPages(briefing);
  235. 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)
  236. ASP("Erec",nEre,"Danke, ich werde ihn mal suchen.", true)
  237.  
  238.  
  239. briefing.finished = function()
  240. DrakeQuest()
  241. end;
  242. StartBriefing(briefing);
  243. end
  244. }
  245. SetupExpedition(beidorfbewohner)
  246. end
  247.  
  248.  
  249. function TorwacheBrief()
  250. local beitw1 = {
  251. EntityName = "Erec",
  252. TargetName = "tw1",
  253. Distance = 500,
  254. Callback = function()
  255. LookAt("Erec","tw1"); LookAt("tw1","Erec")
  256. Camera.FollowEntity(GetEntityId("tw1"))
  257. DisableNpcMarker(GetEntityId("tw1"))
  258. local briefing = {}
  259. BRIEFING_TIMER_PER_CHAR = 1.0
  260. local AP, ASP = AddPages(briefing);
  261. ASP("tw1",nTW,"Darf ich euch das Kampaner Tal und seine Prächtigen Herrscher vorstellen bevor ihr eintretet?", true)
  262. ASP("Erec",nEre,"Ich habe nicht sonderlich viel Zeit, also...", true)
  263. 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)
  264.  
  265.  
  266. briefing.finished = function()
  267.  
  268.  
  269.  
  270. end;
  271. StartBriefing(briefing);
  272. end
  273. }
  274. SetupExpedition(beitw1)
  275. end
  276.  
  277.  
  278.  
  279. function DrakeBrief()
  280. local beidrake = {
  281. EntityName = "Erec",
  282. TargetName = "drake",
  283. Distance = 500,
  284. Callback = function()
  285. LookAt("Erec","drake"); LookAt("drake","Erec")
  286. Camera.FollowEntity(GetEntityId("drake"))
  287. DisableNpcMarker(GetEntityId("drake"))
  288. local briefing = {}
  289. BRIEFING_TIMER_PER_CHAR = 1.0
  290. local AP, ASP = AddPages(briefing);
  291. 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)
  292. ASP("drake",nDra, "Erec! Es ist gut, dass du gekommen bist. Du bist meine Rettung!", true)
  293. ASP("Erec",nEre, "Gut, aber warum bin ich deine Rettung?", false)
  294. 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)
  295.  
  296. briefing.finished = function()
  297.  
  298.  
  299. EnableNpcMarker(GetEntityId("bürgermeister1"))
  300. Buergermeiseter1Brief()
  301.  
  302.  
  303. ChangePlayer("wechsel1", 1)
  304. ChangePlayer("wechsel2", 1)
  305. ChangePlayer("wechsel3", 1)
  306. ChangePlayer("wechsel4", 1)
  307. ChangePlayer("wechsel5", 1)
  308.  
  309.  
  310.  
  311.  
  312. end;
  313. StartBriefing(briefing);
  314. end
  315. }
  316. SetupExpedition(beidrake)
  317. end
  318.  
  319.  
  320.  
  321. function Buergermeister1Brief()
  322. local beimayor = {
  323. EntityName = "Erec",
  324. TargetName = "mayor",
  325. Distance = 500,
  326. Callback = function()
  327. LookAt("Erec","mayor"); LookAt("mayor","Erec")
  328. Camera.FollowEntity(GetEntityId("mayor"))
  329. DisableNpcMarker(GetEntityId("mayor"))
  330. local briefing = {}
  331. BRIEFING_TIMER_PER_CHAR = 1.0
  332. local AP, ASP = AddPages(briefing);
  333. 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)
  334. 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)
  335. 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)
  336. ASP("Erec",nEre, "Klingt gut, ich werde ihn direkt suchen!", false)
  337. 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)
  338.  
  339. briefing.finished = function()
  340.  
  341. SetFriendly(1,7)
  342. ActivateShareExploration(1,7, true)
  343.  
  344.  
  345. EnableNpcMarker(GetEntityId("dieb"))
  346. EnableNpcMarker(GetEntityId("wanderer"))
  347.  
  348. DiebBrief()
  349. WandererBrief()
  350.  
  351. BrueckenQuest()
  352.  
  353. StartSimpleJob("BridgeDead")
  354.  
  355. end;
  356. StartBriefing(briefing);
  357. end
  358. }
  359. SetupExpedition(beimayor)
  360.  
  361.  
  362. end
  363.  
  364.  
  365. function DiebBrief()
  366.  
  367. local beidieb = {
  368. EntityName = "Erec",
  369. TargetName = "dieb",
  370. Distance = 500,
  371. Callback = function()
  372. LookAt("Erec","dieb"); LookAt("dieb","Erec")
  373. Camera.FollowEntity(GetEntityId("dieb"))
  374. DisableNpcMarker(GetEntityId("dieb"))
  375. local briefing = {}
  376. BRIEFING_TIMER_PER_CHAR = 1.0
  377. local AP, ASP = AddPages(briefing);
  378. ASP("dieb",nDie, "Haha! Das hätte ich schon lange gemacht, aber die vermaledeiten Krieger haben mir den Sprengstoff weggenommen!", true)
  379. ASP("dieb",nDie, "Gebt mir 5000 Schwefel und es macht mal wieder kawumm!!! ", true)
  380.  
  381. briefing.finished = function()
  382.  
  383.  
  384. TW_1Tribute()
  385.  
  386.  
  387.  
  388.  
  389. end;
  390. StartBriefing(briefing);
  391. end
  392. }
  393. SetupExpedition(beidieb)
  394.  
  395. end
  396.  
  397.  
  398.  
  399. function Buergermeister2Brief()
  400. local beimayor = {
  401. EntityName = "Erec",
  402. TargetName = "mayor2",
  403. Distance = 500,
  404. Callback = function()
  405. LookAt("Erec","mayor2"); LookAt("mayor2","Erec")
  406. Camera.FollowEntity(GetEntityId("mayor2"))
  407. DisableNpcMarker(GetEntityId("mayor2"))
  408. local briefing = {}
  409. BRIEFING_TIMER_PER_CHAR = 1.0
  410. local AP, ASP = AddPages(briefing);
  411. ASP("mayor2",nBg, "Hmm lass mich überlegen...nein dich kennne ich tatsächlich nicht. Darf ich dich trotzdem nach einen Gefallen fragen?", true)
  412. ASP("Erec",nEre, "Natürlich, deswegen bin ich ja quasi gekommen.", true)
  413. 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)
  414. 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)
  415.  
  416. briefing.finished = function()
  417.  
  418. MinenQuest()
  419. StartSimpleJob("Minen")
  420.  
  421. end;
  422. StartBriefing(briefing);
  423. end
  424. }
  425. SetupExpedition(beimayor2)
  426.  
  427.  
  428. end
  429.  
  430.  
  431.  
  432. function LeonardoBrief()
  433.  
  434. local beileonardo = {
  435. EntityName = "Erec",
  436. TargetName = "leonardo",
  437. Distance = 500,
  438. Callback = function()
  439. LookAt("Erec","leonardo"); LookAt("leonardo","Erec")
  440. Camera.FollowEntity(GetEntityId("leonardo"))
  441. DisableNpcMarker(GetEntityId("leonardo"))
  442. local briefing = {}
  443. BRIEFING_TIMER_PER_CHAR = 1.0
  444. local AP, ASP = AddPages(briefing);
  445. 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)
  446. 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)
  447.  
  448. briefing.finished = function()
  449.  
  450.  
  451. TW_2Tribute()
  452.  
  453.  
  454.  
  455.  
  456. end;
  457. StartBriefing(briefing);
  458. end
  459. }
  460. SetupExpedition(beileonardo)
  461.  
  462. end
  463.  
  464.  
  465. function WandererBrief()
  466.  
  467.  
  468. local beiwanderer = {
  469. EntityName = "Erec",
  470. TargetName = "wanderer",
  471. Distance = 500,
  472. Callback = function()
  473. LookAt("Erec","wanderer"); LookAt("wanderer","Erec")
  474. Camera.FollowEntity(GetEntityId("wanderer"))
  475. DisableNpcMarker(GetEntityId("wanderer"))
  476. local briefing = {}
  477. BRIEFING_TIMER_PER_CHAR = 1.0
  478. local AP, ASP = AddPages(briefing);
  479. 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)
  480. ASP("wanderer",nWan, "Knöpft euch Sir Ferdinant Landgraf lieber später vor! Wenn er nichts davon mitbekommt, wird er auch nichts machen! ", true)
  481. ASP("wanderer",nWan, "Gegen eine gewisse Bezahlung könnte ich versuchen, die Boten von Sir Ferdinant mit meinen Neffen etwas aufzuhalten. ", false)
  482.  
  483. briefing.finished = function()
  484.  
  485.  
  486. TW_3Tribute()
  487.  
  488.  
  489.  
  490.  
  491. end;
  492. StartBriefing(briefing);
  493. end
  494. }
  495. SetupExpedition(beiwanderer)
  496.  
  497. end
  498.  
  499.  
  500.  
  501. function EinsiedlerBrief()
  502.  
  503.  
  504. local beieinsiedler = {
  505. EntityName = "Erec",
  506. TargetName = "einsiedler",
  507. Distance = 500,
  508. Callback = function()
  509. LookAt("Erec","einsiedler"); LookAt("einsiedler","Erec")
  510. Camera.FollowEntity(GetEntityId("einsiedler"))
  511. DisableNpcMarker(GetEntityId("einsiedler"))
  512. local briefing = {}
  513. BRIEFING_TIMER_PER_CHAR = 1.0
  514. local AP, ASP = AddPages(briefing);
  515. ASP("einsiedler",nEin, "Im Osten gibt es ein Dorfzentrum und eine Eisenmine, aber wer will schon Eisen, wenn man keine Armee ausbilden darf?", true)
  516. ASP("einsiedler",nEin, "Deshalb sind die Bergarbeiter hier komplett gegangen! Und das obwohl Ulrichstein unbedingt Bergarbeiter braucht ", true)
  517.  
  518.  
  519. briefing.finished = function()
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527. end;
  528. StartBriefing(briefing);
  529. end
  530. }
  531. SetupExpedition(beieinsiedler)
  532.  
  533. end
  534.  
  535.  
  536. function Buergermeister3Brief()
  537.  
  538.  
  539. local beimayor3 = {
  540. EntityName = "Erec",
  541. TargetName = "mayor3",
  542. Distance = 500,
  543. Callback = function()
  544. LookAt("Erec","mayor3"); LookAt("mayor3","Erec")
  545. Camera.FollowEntity(GetEntityId("mayor3"))
  546. DisableNpcMarker(GetEntityId("mayor3"))
  547. local briefing = {}
  548. BRIEFING_TIMER_PER_CHAR = 1.0
  549. local AP, ASP = AddPages(briefing);
  550. 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)
  551.  
  552.  
  553. briefing.finished = function()
  554.  
  555. SetFriendly(1,6)
  556. ActivateShareExploration(1,6, true)
  557.  
  558. EnableNpcMarker(GetEntityId("drake"))
  559. DrakeBrief_2()
  560.  
  561.  
  562.  
  563. end;
  564. StartBriefing(briefing);
  565. end
  566. }
  567. SetupExpedition(beimayor3)
  568.  
  569. end
  570.  
  571.  
  572.  
  573. function DrakeBrief_2()
  574.  
  575.  
  576. local beidrake = {
  577. EntityName = "Erec",
  578. TargetName = "drake",
  579. Distance = 500,
  580. Callback = function()
  581. LookAt("Erec","drake"); LookAt("drake","Erec")
  582. Camera.FollowEntity(GetEntityId("drake"))
  583. DisableNpcMarker(GetEntityId("drake"))
  584. local briefing = {}
  585. BRIEFING_TIMER_PER_CHAR = 1.0
  586. local AP, ASP = AddPages(briefing);
  587. ASP("drake",nDra, "Jetzt wissen sie sowieso von uns und werden uns bekämpfen, da kann ich ja jetzt endlich helfen. ", true)
  588.  
  589.  
  590. briefing.finished = function()
  591.  
  592. ChangePlayer("drake",1)
  593.  
  594. end;
  595. StartBriefing(briefing);
  596. end
  597. }
  598. SetupExpedition(beidrake)
  599.  
  600. end
  601.  
  602. ------------------------------------------Quests----------------------------------------------
  603. function AuftandQuest()
  604.  
  605. quest = {
  606. id = GetQuestId(),
  607. type = SUBQUEST_OPEN,
  608. title =""..hGelb.."Unterdr\195\188ung beenden",
  609. text ="Besiegt die drei Herrscher vom Kampaner Tal, um die Unterdr\195\188ckung zu beenden @cr "..
  610. "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 ",
  611.  
  612. }
  613. Logic.AddQuest(1, quest.id, quest.type, quest.title, quest.text,1)
  614. QuestAufstand = quest.id
  615. end
  616.  
  617. function BrueckenQuest()
  618.  
  619. quest = {
  620. id = GetQuestId(),
  621. type = SUBQUEST_OPEN,
  622. title =""..hGelb.."Br\195\188cken zerstören",
  623. text ="Zerst\195\182rt eure Br\195\188cke und die beiden Br\195\188cken von Celle, bevor Celle das Dorfzentrum verliert @cr "..
  624. "Ihr solltet es schaffen bevor die Zeit abläuft @cr ",
  625.  
  626. }
  627. Logic.AddQuest(1, quest.id, quest.type, quest.title, quest.text,1)
  628. QuestBruecken = quest.id
  629. end
  630.  
  631. function MinenQuest()
  632.  
  633. quest = {
  634. id = GetQuestId(),
  635. type = SUBQUEST_OPEN,
  636. title =""..hGelb.."Minen bauen",
  637. 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 "..
  638. "Der Bürgermeister wird sich revanchieren @cr ",
  639.  
  640. }
  641. Logic.AddQuest(1, quest.id, quest.type, quest.title, quest.text,1)
  642. QuestMinen = quest.id
  643. end
  644.  
  645.  
  646. -------------------------------------SimpleJobs------------------------------------------------
  647.  
  648.  
  649. function BridgeDead()
  650.  
  651. if IsDead("bridge1") and IsDead("bridge2") and IsDead("bridge3") then
  652. local briefing = {}
  653. BRIEFING_TIMER_PER_CHAR = 0.8
  654. local AP, ASP = AddPages(briefing);
  655. ASP("bridge1",nErz,
  656. "Sehr gut gemacht du hast die Brücken zerstört und Celle gerettet "..
  657. "Vielleicht will der Bürgermeister von Celle ja mit euch sprechen", false)
  658. briefing.finished = function()
  659.  
  660. EnableNpcMarker(GetEntityId("mayor3"))
  661. Buergermeister3Brief()
  662.  
  663. SetHostile(1,2)
  664. SetHostile(1,3)
  665. SetHostile(1,4)
  666.  
  667.  
  668.  
  669. Logic.RemoveQuest(1, QuestBruecken)
  670.  
  671. end;
  672. StartBriefing(briefing);
  673. return true
  674. end
  675. end
  676.  
  677. function Wandererbridge()
  678.  
  679.  
  680. if IsDead("bridge1") and IsDead("bridge2") and IsDead("bridge3") then
  681. local briefing = {}
  682. BRIEFING_TIMER_PER_CHAR = 0.8
  683. local AP, ASP = AddPages(briefing);
  684. ASP("bridge1",nErz,
  685. "Sehr gut gemacht du hast die Brücken zerstört und Celle gerettet "..
  686. "Vielleicht will der Bürgermeister von Celle ja mit euch sprechen", false)
  687. briefing.finished = function()
  688.  
  689. EnableNpcMarker(GetEntityId("mayor3"))
  690. Buergermeister3Brief()
  691.  
  692. SetHostile(1,2)
  693. SetHostile(1,3)
  694. SetHostile(1,4)
  695.  
  696. StartSimpleJob("WandererBridge1")
  697. StartSimpleJob("WandererBridge2")
  698. StartSimpleJob("WandererBridge3")
  699.  
  700.  
  701.  
  702. Logic.RemoveQuest(1, QuestBruecken)
  703.  
  704. end;
  705. StartBriefing(briefing);
  706. return true
  707. end
  708. end
  709.  
  710. function WandererBridge1()
  711.  
  712.  
  713.  
  714. end
  715.  
  716.  
  717.  
  718.  
  719. function Minenbridge()
  720. if IsDead("bridge1") and IsDead("bridge2") and IsDead("bridge3") then
  721. local briefing = {}
  722. BRIEFING_TIMER_PER_CHAR = 0.8
  723. local AP, ASP = AddPages(briefing);
  724. ASP("bridge1",nErz,
  725. "Sehr gut gemacht du hast die Brücken zerstört und Celle gerettet "..
  726. "Vielleicht will der Bürgermeister von Celle ja mit euch sprechen", false)
  727. briefing.finished = function()
  728.  
  729. EnableNpcMarker(GetEntityId("mayor3"))
  730. Buergermeister3Brief()
  731.  
  732. SetHostile(1,2)
  733. SetHostile(1,3)
  734. SetHostile(1,4)
  735.  
  736. StartSimpleJob("MinenBridge1")
  737. StartSimpleJob("MinenBridge2")
  738. StartSimpleJob("MinenBridge3")
  739.  
  740.  
  741.  
  742. Logic.RemoveQuest(1, QuestBruecken)
  743.  
  744. end;
  745. StartBriefing(briefing);
  746. return true
  747. end
  748. end
  749.  
  750.  
  751.  
  752. function Verloren()
  753. if IsDead("wechsel5") then
  754. local briefing = {}
  755. BRIEFING_TIMER_PER_CHAR = 0.8
  756. local AP, ASP = AddPages(briefing);
  757. ASP("wechsel5",nErz,
  758. "Warum hast du Dein Hauptquartier nicht beschützt ? Jetzt ist es verloren und Du hast damit auch "..
  759. "das Spiel verloren.", false)
  760. briefing.finished = function()
  761. Defeat()
  762. end;
  763. StartBriefing(briefing);
  764. return true
  765. end
  766. end
  767.  
  768.  
  769. function Minen()
  770. 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 )};
  771. if t[2] then
  772. ChangePlayer(t[2], 5);
  773.  
  774. Logic.RemoveQuest(1, QuestMinen);
  775. StartSimpleJob("Minenbridge")
  776. Logic.RemoveSimpeJob("BridgeDead")
  777.  
  778. return true;
  779. end
  780. end
  781.  
  782.  
  783.  
  784. function Gewonnen()
  785. if IsDead("P2_AI_HQ") and IsDead("P3_AI_HQ") and IsDead("P4_AI_HQ") then
  786. Victory();
  787. return true;
  788. end
  789. end
  790.  
  791.  
  792.  
  793. ----------------------------------Tribute-----------------------------------------------
  794.  
  795. function TW_1Tribute()
  796. local tributeTW_1 = {}
  797. tributeTW_1.playerId = 1;
  798. tributeTW_1.text = "Wenn ihr dem Dieb 5000 Schwefel zahlt, wird er sich euch anschließen. @cr ";
  799.  
  800. tributeTW_1.cost = {Sulfur = 5000};
  801. tributeTW_1.Callback = OnTributeTW_1;
  802. AddTribute( tributeTW_1 )
  803. end
  804. function OnTributeTW_1()
  805. local briefing = {}
  806. BRIEFING_TIMER_PER_CHAR = 1.0
  807. local AP, ASP = AddPages(briefing);
  808. ASP("dieb",nDie,"Danke für das Schwefel!", true)
  809.  
  810. briefing.finished = function()
  811.  
  812. ChangePlayer("dieb", 1)
  813.  
  814. end;
  815. StartBriefing(briefing);
  816. end
  817.  
  818.  
  819. function TW_2Tribute()
  820. local tributeTW_2 = {}
  821. tributeTW_2.playerId = 1;
  822. tributeTW_2.text = "Für 2500 Eisen gibt euch Leonardo 10000 Schwefel. @cr ";
  823.  
  824. tributeTW_2.cost = {Iron = 2500};
  825. tributeTW_2.Callback = OnTributeTW_2;
  826. AddTribute( tributeTW_2 )
  827. end
  828. function OnTributeTW_2()
  829. local briefing = {}
  830. BRIEFING_TIMER_PER_CHAR = 1.0
  831. local AP, ASP = AddPages(briefing);
  832. 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)
  833. briefing.finished = function()
  834.  
  835. AddSulfur(10000)
  836.  
  837.  
  838. end;
  839. StartBriefing(briefing);
  840. end
  841.  
  842.  
  843.  
  844. function TW_3Tribute()
  845. local tributeTW_3 = {}
  846. tributeTW_3.playerId = 1;
  847. 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 ";
  848.  
  849. tributeTW_3.cost = {Gold = 5000};
  850. tributeTW_3.Callback = OnTributeTW_3;
  851. AddTribute( tributeTW_3 )
  852. end
  853. function OnTributeTW_3()
  854. local briefing = {}
  855. BRIEFING_TIMER_PER_CHAR = 1.0
  856. local AP, ASP = AddPages(briefing);
  857. ASP("wanderer",nWan,"Danke für das Gold heh...ist ne gute Investition von euch! Ich werd machen, was ich kann.", true)
  858. briefing.finished = function()
  859.  
  860. StartSimpleJob("Wandererbridge")
  861. Logic.RemoveSimpleJob("BridgeDead")
  862.  
  863. end;
  864. StartBriefing(briefing);
  865. end
  866.  
  867.  
  868.  
  869.  
  870.  
  871.  
  872.  
  873.  
  874.  
  875.  
  876.  
  877.  
  878.  
  879. ----------------------------------------Armeen---------------------------------------------
  880.  
  881.  
  882.  
  883. function CreateArmyOne()
  884. armyOne = {
  885. player = 4,
  886. id = 1,
  887. strength = 8,
  888. position = GetPosition("armyOne"),
  889. rodeLength = 4000
  890. }
  891. SetupArmy(armyOne)
  892.  
  893. local troopDescription = {
  894. maxNumberOfSoldiers = 8,
  895. minNumberOfSoldiers = 0,
  896. experiencePoints = MEDIUM_EXPERIENCE,
  897. leaderType = Entities.PU_LeaderSword4
  898. }
  899.  
  900. for i = 1, 10 do
  901. EnlargeArmy(armyOne, troopDescription)
  902. end
  903.  
  904. local troopDescription = {
  905. maxNumberOfSoldiers = 8,
  906. minNumberOfSoldiers = 0,
  907. experiencePoints = LOW_EXPERIENCE,
  908. leaderType = Entities.PU_LeaderBow4
  909. }
  910.  
  911. for i = 1, 10 do
  912. EnlargeArmy(armyOne, troopDescription)
  913. end
  914.  
  915. local troopDescription = {
  916. maxNumberOfSoldiers = 8,
  917. minNumberOfSoldiers = 0,
  918. experiencePoints = LOW_EXPERIENCE,
  919. leaderType = Entities.PU_LeaderPoleArm4
  920. }
  921.  
  922. for i = 1, 10 do
  923. EnlargeArmy(armyOne, troopDescription)
  924. end
  925.  
  926.  
  927.  
  928. StartSimpleJob("ControlArmyOne")
  929. end
  930.  
  931.  
  932.  
  933. function CreateArmyTwo()
  934. armyTwo = {
  935. player = 2,
  936. id = 2,
  937. strength = 3,
  938. position = GetPosition("armyTwo"),
  939. rodeLength = 4000
  940. }
  941. SetupArmy(armyTwo)
  942.  
  943. local troopDescription = {
  944. maxNumberOfSoldiers = 8,
  945. minNumberOfSoldiers = 0,
  946. experiencePoints = MEDIUM_EXPERIENCE,
  947. leaderType = Entities.PU_LeaderSword3
  948. }
  949.  
  950. for i = 1, 3 do
  951. EnlargeArmy(armyTwo, troopDescription)
  952. end
  953.  
  954. local troopDescription = {
  955. maxNumberOfSoldiers = 8,
  956. minNumberOfSoldiers = 0,
  957. experiencePoints = LOW_EXPERIENCE,
  958. leaderType = Entities.PU_LeaderBow3
  959. }
  960.  
  961. for i = 1, 3 do
  962. EnlargeArmy(armyTwo, troopDescription)
  963. end
  964.  
  965. local troopDescription = {
  966. maxNumberOfSoldiers = 8,
  967. minNumberOfSoldiers = 0,
  968. experiencePoints = LOW_EXPERIENCE,
  969. leaderType = Entities.PU_LeaderPoleArm3
  970. }
  971.  
  972. for i = 1, 3 do
  973. EnlargeArmy(armyTwo, troopDescription)
  974. end
  975.  
  976.  
  977.  
  978. StartSimpleJob("ControlArmyTwo")
  979. end
  980.  
  981.  
  982.  
  983. function CreateArmyThree()
  984. armyThree = {
  985. player = 3,
  986. id = 3,
  987. strength = 5,
  988. position = GetPosition("armyThree"),
  989. rodeLength = 4000
  990. }
  991. SetupArmy(armyThree)
  992.  
  993. local troopDescription = {
  994. maxNumberOfSoldiers = 8,
  995. minNumberOfSoldiers = 0,
  996. experiencePoints = MEDIUM_EXPERIENCE,
  997. leaderType = Entities.PU_LeaderSword4
  998. }
  999.  
  1000. for i = 1, 5 do
  1001. EnlargeArmy(armyThree, troopDescription)
  1002. end
  1003.  
  1004. local troopDescription = {
  1005. maxNumberOfSoldiers = 8,
  1006. minNumberOfSoldiers = 0,
  1007. experiencePoints = LOW_EXPERIENCE,
  1008. leaderType = Entities.PU_LeaderBow4
  1009. }
  1010.  
  1011. for i = 1, 5 do
  1012. EnlargeArmy(armyThree, troopDescription)
  1013. end
  1014.  
  1015. local troopDescription = {
  1016. maxNumberOfSoldiers = 8,
  1017. minNumberOfSoldiers = 0,
  1018. experiencePoints = LOW_EXPERIENCE,
  1019. leaderType = Entities.PU_LeaderPoleArm4
  1020. }
  1021.  
  1022. for i = 1, 5 do
  1023. EnlargeArmy(armyThree, troopDescription)
  1024. end
  1025.  
  1026.  
  1027.  
  1028. StartSimpleJob("ControlArmyThree")
  1029. end
  1030.  
  1031.  
  1032.  
  1033. function CreateArmyFive()
  1034. armyFive = {
  1035. player = 6,
  1036. id = 5,
  1037. strength = 5,
  1038. position = GetPosition("armyFive"),
  1039. rodeLength = 4000
  1040. }
  1041. SetupArmy(armyFive)
  1042.  
  1043. local troopDescription = {
  1044. maxNumberOfSoldiers = 8,
  1045. minNumberOfSoldiers = 0,
  1046. experiencePoints = MEDIUM_EXPERIENCE,
  1047. leaderType = Entities.PU_LeaderSword4
  1048. }
  1049.  
  1050. for i = 1, 5 do
  1051. EnlargeArmy(armyFive, troopDescription)
  1052. end
  1053.  
  1054. local troopDescription = {
  1055. maxNumberOfSoldiers = 8,
  1056. minNumberOfSoldiers = 0,
  1057. experiencePoints = LOW_EXPERIENCE,
  1058. leaderType = Entities.PU_LeaderBow4
  1059. }
  1060.  
  1061. for i = 1, 5 do
  1062. EnlargeArmy(armyFive, troopDescription)
  1063. end
  1064.  
  1065. local troopDescription = {
  1066. maxNumberOfSoldiers = 8,
  1067. minNumberOfSoldiers = 0,
  1068. experiencePoints = LOW_EXPERIENCE,
  1069. leaderType = Entities.PU_LeaderPoleArm4
  1070. }
  1071.  
  1072. for i = 1, 5 do
  1073. EnlargeArmy(armyFive, troopDescription)
  1074. end
  1075.  
  1076. StartSimpleJob("ControlArmyFive")
  1077. end
  1078.  
  1079. -------------------------------------Countdown----------------------------------------------------------
  1080.  
  1081.  
  1082.  
  1083.  
  1084.  
  1085. ---------------------------------ComfortFunktionen-----------------------------------------------
  1086.  
  1087.  
  1088. function AddPages( _briefing )
  1089. local AP = function(_page) table.insert(_briefing, _page); return _page; end
  1090. local ASP = function(_entity, _title, _text, _dialog) return AP(CreateShortPage(_entity, _title, _text, _dialog)); end
  1091. return AP, ASP;
  1092. end
  1093. function CreateShortPage( _entity, _title, _text, _dialog)
  1094. local page = {
  1095. title = _title,
  1096. text = _text,
  1097. position = GetPosition( _entity ),
  1098. dialogCamera = _dialog
  1099. };
  1100. return page;
  1101. end
  1102.  
  1103.  
  1104.  
  1105. function ActivateBriefingsExpansion()
  1106. if not unpack{true} then
  1107. local unpack2;
  1108. unpack2 = function( _table, i )
  1109. i = i or 1;
  1110. assert(type(_table) == "table");
  1111. if i <= table.getn(_table) then
  1112. return _table[i], unpack2(_table, i);
  1113. end
  1114. end
  1115. unpack = unpack2;
  1116. end
  1117.  
  1118. Briefing_ExtraOrig = Briefing_Extra;
  1119.  
  1120. Briefing_Extra = function( _v1, _v2 )
  1121. for i = 1, 2 do
  1122. local theButton = "CinematicMC_Button" .. i;
  1123. XGUIEng.DisableButton(theButton, 1);
  1124. XGUIEng.DisableButton(theButton, 0);
  1125. end
  1126.  
  1127. if _v1.action then
  1128. assert( type(_v1.action) == "function" );
  1129. if type(_v1.parameters) == "table" then
  1130. _v1.action(unpack(_v1.parameters));
  1131. else
  1132. _v1.action(_v1.parameters);
  1133. end
  1134. end
  1135.  
  1136. Briefing_ExtraOrig( _v1, _v2 );
  1137. end;
  1138.  
  1139. GameCallback_EscapeOrig = GameCallback_Escape;
  1140. StartBriefingOrig = StartBriefing;
  1141. EndBriefingOrig = EndBriefing;
  1142. MessageOrig = Message;
  1143. CreateNPCOrig = CreateNPC;
  1144.  
  1145. StartBriefing = function(_briefing)
  1146. assert(type(_briefing) == "table");
  1147. if _briefing.noEscape then
  1148. GameCallback_Escape = function() end;
  1149. briefingState.noEscape = true;
  1150. end
  1151.  
  1152. StartBriefingOrig(Umlaute(_briefing));
  1153. end
  1154.  
  1155. EndBriefing = function()
  1156. if briefingState.noEscape then
  1157. GameCallback_Escape = GameCallback_EscapeOrig;
  1158. briefingState.noEscape = nil;
  1159. end
  1160.  
  1161. EndBriefingOrig();
  1162. end;
  1163.  
  1164. Message = function(_text)
  1165. MessageOrig(Umlaute(tostring(_text)));
  1166. end;
  1167.  
  1168. BugUmlaut = function(_text)
  1169. local texttype = type(_text);
  1170. if texttype == "string" then
  1171. _text = string.gsub( _text, "ä", "ae" );
  1172. _text = string.gsub( _text, "ö", "oe" );
  1173. _text = string.gsub( _text, "ü", "ue" );
  1174. _text = string.gsub( _text, "ß", "ss" );
  1175. _text = string.gsub( _text, "Ä", "Ae" );
  1176. _text = string.gsub( _text, "Ö", "Oe" );
  1177. _text = string.gsub( _text, "Ü", "Ue" );
  1178. return _text;
  1179. elseif texttype == "table" then
  1180. for k, v in _text do
  1181. _text[k] = Umlaute( v );
  1182. end
  1183. return _text;
  1184. else return _text;
  1185. end
  1186. end;
  1187.  
  1188. CreateNPC = function(_npc)
  1189. CreateNPCOrig(Umlaute(_npc));
  1190. end;
  1191.  
  1192. Umlaute = function(_text)
  1193. local texttype = type(_text);
  1194. if texttype == "string" then
  1195. _text = string.gsub( _text, "ä", "\195\164" );
  1196. _text = string.gsub( _text, "ö", "\195\182" );
  1197. _text = string.gsub( _text, "ü", "\195\188" );
  1198. _text = string.gsub( _text, "ß", "\195\159" );
  1199. _text = string.gsub( _text, "Ä", "\195\132" );
  1200. _text = string.gsub( _text, "Ö", "\195\150" );
  1201. _text = string.gsub( _text, "Ü", "\195\156" );
  1202. return _text;
  1203. elseif texttype == "table" then
  1204. for k, v in _text do
  1205. _text[k] = Umlaute( v );
  1206. end
  1207. return _text;
  1208. else return _text;
  1209. end
  1210. end;
  1211. end
  1212.  
  1213.  
  1214.  
  1215. function GetQuestId()
  1216. gvMission.QuestId = (gvMission.QuestId or 0) + 1
  1217. return gvMission.QuestId
  1218. end
  1219.  
  1220.  
  1221.  
  1222. function CreateShortPage( _entity, _title, _text, _dialog, _explore)
  1223. local page = {
  1224. title = _title,
  1225. text = _text,
  1226. position = GetPosition( _entity ),
  1227. action = function ()Display.SetRenderFogOfWar(0) end
  1228. };
  1229. if _dialog then
  1230. if type(_dialog) == "boolean" then
  1231. page.dialogCamera = true;
  1232. elseif type(_dialog) == "number" then
  1233. page.explore = _dialog;
  1234. end
  1235. end
  1236. if _explore then
  1237. if type(_explore) == "boolean" then
  1238. page.dialogCamera = true;
  1239. elseif type(_explore) == "number" then
  1240. page.explore = _explore;
  1241. end
  1242. end
  1243. return page;
  1244. end
  1245.  
  1246.  
  1247.  
  1248. function AddTribute( _tribute )
  1249. uniqueTributeCounter = uniqueTributeCounter or 1;
  1250. _tribute.Tribute = uniqueTributeCounter;
  1251. uniqueTributeCounter = uniqueTributeCounter + 1;
  1252. local tResCost = {};
  1253. for k, v in pairs( _tribute.cost ) do
  1254. assert( ResourceType[k] );
  1255. assert( type( v ) == "number" );
  1256. table.insert( tResCost, ResourceType[k] );
  1257. table.insert( tResCost, v );
  1258. end
  1259. Logic.AddTribute( _tribute.playerId, _tribute.Tribute, 0, 0, _tribute.text, unpack( tResCost ) );
  1260. SetupTributePaid( _tribute );
  1261. return _tribute.Tribute;
  1262. end
  1263.  
  1264.  
  1265.  
  1266.  
  1267.  
  1268.  
  1269. function ActivateShareExploration(_player1, _player2, _both)
  1270. assert(type(_player1) == "number" and type(_player2) == "number" and _player1 <= 8 and _player2 <= 8 and _player1 >= 1 and _player2 >= 1);
  1271. if _both == false then
  1272. Logic.SetShareExplorationWithPlayerFlag(_player1, _player2, 1);
  1273. else
  1274. Logic.SetShareExplorationWithPlayerFlag(_player1, _player2, 1);
  1275. Logic.SetShareExplorationWithPlayerFlag(_player2, _player1, 1);
  1276. end
  1277.  
  1278. end
Add Comment
Please, Sign In to add comment