Ausrufezeichen, aber nicht ansprechbar
» Siedler Map Source Forum » Siedler DEdK Script Forum » Ausrufezeichen, aber nicht ansprechbar
Seiten: 1
noacape
|
#1 28.05.2020 10:45 Beiträge: 10 |
Ausrufezeichen, aber nicht ansprechbar
Bei meiner Quest Map die ich momentan scripte, funktioniert das Einstiegsbriefing wie gewollt. Danach wiederholt sich die Musik jedoch nach ca. 3 Sekunden immer wieder und obwohl die Siedler ein Ausrufezeichen über dem Kopf haben, kann man sie nicht ansprechen. (Da ich Siedler vor einiger Zeit per lan auf meinen neuen Computer übertragen habe, funktioniert der lua.debugger nicht (vermute ich zumindest)
Hier noch mein Script (ist an einigen Stellen noch nicht komplett fertig) :
Ich freue mich auf Hilfe
--------------------------------------------------------------------------------
-- 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,
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,
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\188ckung 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\
____________________
In meinen kühnsten Träumen hätte ich nicht gedacht, dass ich eines Tages mit einer Maske am Bankschalter Bargeld hole...
noacape
|
#2 28.05.2020 10:50 Beiträge: 10 |
function AuftandQuest()
quest = {
id = GetQuestId(),
type = SUBQUEST_OPEN,
title =""..hGelb.."Unterdr\195\188ckung 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, 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
____________________
In meinen kühnsten Träumen hätte ich nicht gedacht, dass ich eines Tages mit einer Maske am Bankschalter Bargeld hole...
Zedeg
|
#3 28.05.2020 11:54 Beiträge: 428 |
Bitte setze dein Skript in eine [code](hier dein Skript)[/code]-Umgebung, damit er besser lesbar ist. Zur Not können wir ihn dann auch kopieren und somit selbst ausführen. Das sähe dann so aus:
(hier dein Skript)
Oder verwende eine Seite wie pastebin.com.
____________________
Journalisten erkundigen sich bei Wissenschaftlern meist nicht nach Grundlagen, sondern eher nach Ergebnissen und Folgerungen. Das erklärt womöglich auch, warum sich Forschungsberichte in den Medien so häufig als feststehende Erkenntnisse lesen, nicht aber als Ideen, Entdeckungen oder Indizien, um die es sich genau genommen in den meisten Fällen handelt. -Axel Bojowski
noacape
|
#4 29.05.2020 12:23 Beiträge: 10 |
Hier ist mein Script in pastebin:
https://pastebin.com/E1nSd8Vw
____________________
In meinen kühnsten Träumen hätte ich nicht gedacht, dass ich eines Tages mit einer Maske am Bankschalter Bargeld hole...
mcb
|
#5 29.05.2020 19:50 Beiträge: 1472 |
Du kannst den LuaDebugger manuell ans laufen bekommen: Einfach die dlls https://github.com/mcb5637/SettlersLuaDebugger/files/4466653/DebugS5.zip in die 3 bin Verzeichnisse kopieren (bin/ , extra1/bin/ , extra2/bin/)
noacape
|
#6 30.05.2020 00:18 Beiträge: 10 |
Danke für den Tipp mit dem debugger - hat funktioniert
____________________
In meinen kühnsten Träumen hätte ich nicht gedacht, dass ich eines Tages mit einer Maske am Bankschalter Bargeld hole...
noacape
|
#7 30.05.2020 10:56 Beiträge: 10 |
Ich konnte jetzt schon ein paar Fehler beheben. Da meine Kenntnisse im scripten jedoch eher gering sind, schreibe ich nochmal wenn ich was nicht hinbekomme
Danke an alle die bisher geholfen haben und an alle die (hoffentlich) noch helfen.
____________________
In meinen kühnsten Träumen hätte ich nicht gedacht, dass ich eines Tages mit einer Maske am Bankschalter Bargeld hole...
Dieser Beitrag wurde von noacape am 30.05.2020 um 15:23 editiert.
totalwarANGEL
|
#8 14.06.2020 16:12 Beiträge: 2123 |
Du könntest dich auch hier mal einlesen:
Anleitung
Anwendung
Ist ein Nachbau des Skriptassistenten von Siedler 6 für Siedler 5. Richtet sich an Leute, die nicht programmieren können.
Mit dem Assistenten wurde schon die Map Die sieben Todsünden erstellt.
____________________
Die Welt ist arschlochförmig und wir leben in der Mitte.
Seiten: 1