hi bascon,
da deine frage in der Siedler 5 DEdK Mapperecke steht, könnte es auch sein, dass sich Deine Frage darauf bezog, ob und wie man das Skripttechnisch lösen kann.
Ja kann man.
Das ermöglicht z.B. ein Auswahlbriefing, kurz mc-Briefing genannt.
Hier wäre mal ein Muster:
Code:
function AuswahlEndeJaNein()
Camera.FollowEntity(GetEntityId("lager"))
local briefing = {}
BRIEFING_ZOOMDISTANCE = 3000
BRIEFING_ZOOMANGLE = 35
local AP, ASP = AddPages(briefing)
ASP("lager","Mentor"," "..
"Ihr könnt nun entscheiden, ob Ihr noch weiterspielen wollt.")
local choiceEinsatzNeu = AP {
mc = {
title = "Das Ende entscheiden",
text = "Der Mentor erwartet eine Entscheidung",
firstText = "JA ICH WILL ALLES ERKUNDEN!",
secondText = "NEIN SCHLUSS JETZT",
firstSelected = 3,
secondSelected = 5
}
}
AP {text = "Mentor "..
"@cr Ihr könnt nun entscheiden, wie lange Ihr noch spielen wollt. "..
"@cr Wenn Ihr genug habt, führt Euren Held zum Lagerfeuer."}
AP (nil);
AP {text = "Mentor "..
"@cr Gut, dann führt Euren Held zum Lagerfeuer."}
briefing.finished
= function()
if GetSelectedBriefingMCButton( choiceEinsatzNeu ) == 1 then
Tools.ExploreArea( 1, -1, 900 ) --deckt als Dank die Map auf.
HeldAmLagerf()
return true
else
HeldAmLagerf()
end
end
StartBriefing(briefing);
end
function HeldAmLagerf()
local beiLf = {
EntityName = "held",
TargetName = "Lagerf",
Distance = 600,
Callback = function()
Victory()
end
}
SetupExpedition(beiLf)
end
kurze erklärung:
über das mc-briefing werden zwei auswahlfelder erzeugt. kurz: ja und nein.
in beiden fällen wird eine abfrage über ein callback gestartet:
hatt "held" das Lagerfeuer "Lagerf" auf eine distanz von 600 Scm erreicht ist Ende mit Siegmeldung.
Einziger Unterschied:
wählt der spieler "weiterspielen", wird als dank die karte aufgedeckt und er kann in aller ruhe alles erkunden. 
Benötigt werden folgende Comfort-Funktionen:
Code:
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
Lesezeichen