
Ubi.com Foren
Die Siedler
DIE SIEDLER - Aufstieg eines Königreichs / Editor & Maps
Patch 1.5 - Questverbesserungen|
Start
![]() |
Neu
![]() |
Suche
![]() |
Benachrichtigen
![]() |
Werkzeuge
![]() |
Antwort
![]() |
|
|
|
In diesem Posting werden die Neuerungen und Verbesserungen vorgestellt, die Patch 1.5 für Mapper und Scripter bereithält.
Hier noch kurz die Punke bevor es losgeht:
Neue Trigger, Goals, Rewards und Reprisals
Verbesserte Goals und Rewards Diese Goals funktionieren jetzt auch mit Gebäuden oder NPCs die nicht im Editor gesetzt worden sind und erst während des Spiels erstellt werden:
Also wäre es nun möglich per CreateSettler einen Castellan zu erstellen, und dem Spieler mit Goal_Protect den Auftrag zu geben den Castellan zu beschützen. Falls man die betreffende Einheit unbedingt per Script erstellen möchte hat man ein Problem: Der Name den man irgendwann per Script vergibt ist nicht im Wizard auswählbar. Hier kann man sich mit einem kleinen Trick behelfen: 1) Eine ScriptEntity mit dem entsprechenden Namen auf der Karte platzieren. 2) Im entsprechenden Goal den Namen einstellen. 3) In der Scriptfunktion die ScriptEntity löschen und den Namen für die eigene Einheit weiterverwenden. Mit Goal_UnitsOnTerritory kann nun auch die Anzahl von Tieren abgefragt werden, sofern ein Territorium angegeben wird. Hierbei ist zu beachten, dass Raubtiere gelegentlich in angrenzenden Territorien nach Nahrung suchen. Das Goal_DestroyScriptEntity kann nun mit gesetzten Raubtieren umgehen. Wird per MapEditor ein S_WolfPack gesetzt und diesem der Scriptname "Predators" gegeben, dann wird das hierfür gesetzte Goal_DestroyScriptEntity erfolgreich sein sobald der Spieler alle vier Wölfe getötet hat. Als Reward sollte man dann per DestroySettler "Predators" zerstören, damit auch keine neuen Wölfe nachkommen können. Goal_Deliver wurde erweitert. Es ist nun einstellbar, dass nicht automatisch ein neuer Karren geschickt werden muss sobald beispielsweise Banditen den Karren übernommen haben. Der Spieler erhält also die Möglichkeit einen Karren zurückzuerobern und so die Lieferung erfolgreich abzuschließen. Weiterhin gibt es nun die Möglichkeit, dass ein Dorf den Spieler bitten kann, Waren zu einem anderen Dorf zu senden. Alle MapScriptFunction Goals/Rewards/Reprisals übergeben den Questnamen als Parameter an die aufgerufene Funktion. Hierdurch kann eine einzelne Funktion für verschiedene ähnliche Quests verwendet werden, wenn diese nur ein minimal unterschiedliches Verhalten benötigen. Hierbei ist zu beachten, dass nicht völlig unterschiedliche Dinge basierend auf dem Questnamen gemacht werden sollten. Alle Rewards die mit "AI_SpawnAnd" beginnen wurden deutlich verbessert. Es kann nun der zu verwendende Soldatentyp angegeben werden. Weiterhin kann die KI untätige Soldaten für neue Angriffe verwenden, so dass nicht bei jedem Aufruf Soldaten erzeugt werden müssen. Dadurch werden wiederholte Angriffe ermöglicht, die nicht zu einer Anhäufung von Soldaten beim Gegner führen. Werden vorhandene Soldaten erneut für einen Angriff verwendet, kann allerdings nicht garantiert werden, dass alle Soldaten vom gleichen Typ sind (aber Soldatentypen sollte man sowieso nicht vermischen). Bei Reward_AI_SpawnAndProtectArea kann zusätzlich eingestellt werden, dass Soldaten gegnerische Handelskarren im Gebiet übernehmen. Reward_CreateSettler kann die erstellten Einheiten vor der eigenen KI verstecken. Bisher gab es ein Problem wenn man einen Castellan für eine Stadt mit KI erstellt hat. Dieser rannte sofort zum Marktplatz und war nicht mehr zu steuern. Gibt man bei der Erstellung nun an, dass die Einheit vor der KI versteckt werden soll, kann man sie anschließend problemlos mit Reward_MoveSettler auf die Reise schicken. Scriptfehler finden Es gibt einen neuen Kommandozeilenparameter für das Spiel: -DisplayScriptErrors Wird das Spiel mit diesem Parameter gestartet, werden fortan ausführliche Fehlermeldungen bei Scriptfehlern angezeigt. Somit können Scriptfehler in eigenen Karten schneller und einfacher gefunden und behoben werden. Dies wird ausdrücklich jedem ans Herz gelegt, der selber Scripte schreibt. Auch Mapper die keine eigenen Scripte schreiben, sondern Quests schnell und einfach mit dem Wizard erstellen, können hiervon profitieren. Bei Verwendung des Quest Wizards ist das Risiko von Scriptfehlern zwar sehr gering, aber sollte dennoch einer auftreten, wird man ihn so bemerken. Questfehler finden Auch mit dem Questwizard kann man Fehler machen. Vielleicht wird einem NPC ein Bewegungskommando gegeben, obwohl dieser noch nicht erstellt worden ist - somit steht dieser später einfach rum. Oder eine neue Mitteilung erscheint einfach nicht, obwohl der Spieler endlich 150 Siedler hat. Vielleicht ist auch irgendwann kein Quest mehr offen, obwohl die Karte noch nicht gewonnen ist. Bei solchen Fehlern fragt man sich dann: Wo hakt es? Auf diese Frage liefern die neuen Hilfsmittel (hoffentlich) die entsprechende Antwort Zunächst muss diese Funktion aus der Mission_FirstMapAction() heraus aufgerufen werden: DEBUG_EnableQuestDebugKeys() Ist dies geschehen, stehen dem fehlersuchenden Mapper zwei neue Tastenkombinationen zur Verfügung:
Die Logdatei befindet sich unter "Eigene Dateien" im Unterverzeichnis "DIE SIEDLER - Aufstieg eines Königreichs\Temp\Logs" Generell ist es eine gute Idee die Debugtasten während der gesamten Testphase der eigenen Karte aktiv zu lassen, damit Fehler sofort näher eingegrenzt werden können. Alternativ können die Funktionen auch automatisch per Script aufgerufen werden: DEBUG_DumpQuestStatus() DEBUG_QuestTrace( true ) Angenommen es wird ein Fehler in einem der letzten Quests gefunden und behoben, dann müssen vielleicht 10 oder 20 Quests erfüllt werden, damit man wieder an diese Stelle gelangt und sie erneut prüfen kann. Das kostet viel Zeit, es sei denn man ändert schnell ein paar Trigger damit man eher zu dem entsprechenden Quest kommt. Vielleicht vergisst man aber nach dem Test (insbesondere bei komplexeren "Verdrahtungen") einige Trigger wieder zurückzustellen und handelt sich damit neue Probleme ein. Daher gibt es eine neue Methode zu einem Quest zu springen: DEBUG_SucceedQuest( _Name, _Exact ) DEBUG_FailQuest( _Name, _Exact ) Mit diesen beiden Funktionen kann man beliebige Quests erfolgreich beenden oder fehlschlagen lassen - selbst wenn diese noch gar nicht aktiv waren. Angenommen man möchte Q_32_HelpTheLocalVillages erfolgreich abschließen um an den folgenden Quest heranzukommen, dann genügt folgender Aufruf (in der FirstMapAction): DEBUG_SucceedQuest( "Q_32" ) Hierdurch sind alle mit "Q_32" beginnenden Quests sofort erfolgreich. Für den Fall, dass viele Quest mit ähnlichem Namen existieren (sollte vermieden werden), kann auch der exakte Name im Aufruf verwendet werden: DEBUG_SucceedQuest( "Q_32_HelpTheLocalVillages", true ) Falls zuvor durchlaufene Quests die Diplomatie verändern oder NPCs erstellen, ist deren Erfolg möglicherweise eine zwingende Voraussetzung für die Folgequests. Daher müssen ggf. mehrere Quests per Funktionsaufruf erfolgreich abgeschlossen werden, damit sich der zu testende Quest so verhält, als hätte man regulär bis zu dieser Stelle gespielt. GraphViz Ausgabe Die GraphViz Ausgabe ist nicht neu - sie existiert schon seit Patch 1.3. Mit diesem Punkt soll diese - bei komplexeren Questzusammenhängen geradezu unverzichtbare - Funktion erläutert werden. Hier eine Beispielausgabe von Quests durch GraphViz: Dazu gibt es noch eine Legende, damit bekannt ist was die verschiedenen Symbole und Pfeile bedeuten. Hierdurch erhält man einen schnellen Überblick, den man so nicht bekommt wenn man ein Script ansieht. Daher gibt es an dieser Stelle den Ratschlag: Wer bisher alles per Script gemacht hat, sollte den Quest Wizard mal ausprobieren. Mit diesem lässt sich ein solider Rahmen schaffen, in dem alle Bestandteile (meistens) zuverlässig und vorhersagbar funktionieren. Dieser kann dann hier und da mit MapScriptFunctions verfeinert werden. Macht man es richtig, hat man später deutlich weniger Probleme mit Fehlern und unerklärlichem Verhalten - die Kartenerstellung und der Test gehen einfach schneller. Sobald die Zusammenhänge etwas komplexer werden kann es sehr lohnend sein, einen (auf mehrere A4 Blätter verteilten) Ausdruck auf dem Tisch liegen zu haben um Fehler zu suchen - oder um einfach nur abzuhaken welche Quests getestet worden sind. Nur: Wie erstellt man so eine Ausgabe überhaupt?
Durch die GraphViz Version der Quests bietet kann man das Spielgeschehen deutlich besser überblicken. Wenn man bei der Erstellung der Quests einige Dinge beachtet, wird die graphische Darstellung sogar noch übersichtlicher.
Ein paar Quest Hilfskonstrukte Diese Hilfskonstrukte sollen ein kleines Beispiel für die Funktionalität sein, die man durch die Kombination von einfachen Komponenten erreichen kann. Eine Aktion wiederholt ausführen während (und solange) ein Quest läuft: Q_01: Trigger_AlwaysActive Goal_Deliver Q_02: (hidden, Timelimit 60) Trigger_OnQuestActive Q_01 Goal_NoChange Reward_RestartQuest Q_02 Reward_AI_SpawnAndAttackArea Eine Entscheidung - entweder A oder B (auch wenn beides "zeitgleich" passiert): Q_01: Trigger_AlwaysActive Goal_Deliver Reward_QuestSuccess Q_03 Reward_QuestInterrupt Q_02 Q_02: Trigger_AlwaysActive Goal_Destroy Reward_QuestFailure Q_03 Reward_QuestInterrupt Q_01 Q_03_Decision: Trigger_AlwaysActive Goal_NoChange Q_04_GoodSideQuests: Trigger_OnQuestSuccess Q_03_Decision Q_20_EvilSideQuests: Trigger_OnQuestFailure Q_03_Decision Prüfen ob der Spieler mehr als 10 Soldaten besitzt: Q_01 (hidden, Timelimit 2) Trigger_OnQuestSuccess ... Goal_SoldierCount > 10 Q_01_Helper_SendMoreResources Trigger_OnQuestFailure Q_01 Goal_InstantSuccess Reward_SendCart Q_01_Helper_AttackPlayer Trigger_OnQuestSuccess Q_01 Goal_InstantSuccess Reward_SpawnAndAttackArea Automatische Sprachausgabe Zu vielen Quests wird automatisch ein passender Starttext mit Sprachausgabe erzeugt, wenn das Startnachricht-Feld im Quest-Wizard leergelassen wird. Dies funktioniert zunächst nur auf neu erstellten Karten (mit dem Patch 1.5 MapEditor neu erstellt). Für bestehende Karte gibt es aber auch noch Hoffnung. Wird die neue QuestSystemBehavior.lua in eine bestehende Karte importiert, so funktioniert die automatische Sprachausgabe auch dort. Mit Patch 1.5 bleiben übrigens alle Quests beim Import einer neuen Questbibliothek erhalten Hinweis: Falls zuvor eine modifizierte Questbibliothek in eine Karte importiert worden ist, kann die neue offizielle Questbiblothek wahrscheinlich nicht problemlos importiert und verwendet werden. Erste Gehversuche der NPCs Aufgrund der großen Nachfrage wurde nun allen NPCs nachträglich das Laufen beigebracht. Sie können nun über Reward_MoveSettler (oder entsprechende Skripte) von A nach B geschickt werden. Um das neue Gewusel zu demonstrieren gibt es ein entsprechendes Testscript:
function CreateAndMoveNPCs( _Spawn )
assert(_Spawn)
local X, Y = Logic.GetEntityPosition( assert(GetID(_Spawn)) )
local NPCs = { SpawnX = X, SpawnY = Y }
for Key, Value in pairs( Entities ) do
if string.match( Key, "^U_NPC_" ) and not string.find( Key, "Castellan", 1, true ) then
table.insert( NPCs, Logic.CreateEntity( Value, X + 2500 - Logic.GetRandom(5000), Y + 2500 - Logic.GetRandom(5000), 0, 2 ) )
end
end
StartSimpleJobEx( MoveNPCs, NPCs )
end
function MoveNPCs( _NPCs )
local X, Y = _NPCs.SpawnX, _NPCs.SpawnY
for _, ID in ipairs( _NPCs ) do
if not Logic.IsEntityMoving( ID ) then
Logic.MoveSettler( ID, X + 2500 - Logic.GetRandom(5000), Y + 2500 - Logic.GetRandom(5000) )
end
end
end
Wurden diese Zeilen in das Kartenscript eingefügt, müssen nur noch zwei Dinge erledigt werden damit die NPCs loswuseln. 1) Eine ScriptEntity mit dem Namen "Spawn" auf der Karte erstellen 2) Die neue Funktion aus der Mission_FirstMapAction() heraus aufrufen: CreateAndMoveNPCs( "Spawn" ) KI Debugging Hinweis: Dieser Punkt wird noch weniger unterstützt als der Mapeditor oder das Scripting und sollte nur von frustrationsresistenten Personen angewendet werden ;-) Manchmal fragt man sich, warum die KI etwas macht - oder auch nicht macht. Um ein wenig Licht ins Dunkel zu bringen gibt es eine Funktion, die hier und da einige Nachrichten über die aktuellen Handlungen der KI ausgibt: DEBUG_SetAIVerbose( true ) Um dies zu Testen eignet sich eine kleine Karte mit eigenen Outer-Rim Gebäuden sowie einer gegnerischen Stadt in der Nähe. Nun noch per Quest alle ein oder zwei Minuten ein Reward_AI_SpawnAndAttackArea oder Reward_AI_SpawnAndProtectArea ausgelöst, und der Schirm wird voller (informativer) Meldungen stehen. Vermischtes
Dieser Beitrag wurde editiert. Zuletzt editiert von: BB_ScriptError, |
||
|
schön und nur noch den Link zum Download
Warum habt ihr nicht auch noch weitere Trigger mit eingebaut ? Script Entity funktioniert also auch wieder so das man sie auch als Spawnpunkt setzen kann für die AI Rewardfunktionen ? Die Einzelspielermap Kagunda hat also am Anfang auch wieder das kleine Gemetzel ?.. Dieser Beitrag wurde editiert. Zuletzt editiert von: BW_SpiderFive, |
||||
|
|
|
Einige zusätzliche Arten von Triggern (insbesondere Trigger_MapScriptFunction) würden verhindern, dass die GraphViz Ausgabe "intuitiv lesbar" bleibt.
Ich kann dir aber versichern, dass man auch mit den vorhandenen Triggern sehr viel machen kann Und der Download Link? Hmmm... moment... wo habe ich den nur hingelegt... |
|||
|
liegt es an dem neuen Patch das Online derzeit nicht gespielt werden kann?
|
||||
|
*ggg nun ja TriggerOnQuestSuccessWait also das man da eine Zeitverzögerung eingeben kann ist schon sehr praktisch *gggg
Also die Map Kagunda siehe Änderung im ersten Post oben funktioniert wieder richtig ? zu neuen rewards Als hardcoregamer fehlt einem bei einer map ohne entsprechende regelmäßigen Ki Besuche mit der Möglichkeit zu verlieren einfach die Herausforderung .... Daher wäre ein reward praktisch bei dem man bestimmen kann wie oft und in welchem Abstand die Ki einen angreift, man bestimmen kann was sie angreift, wo sie spawnt , auch die Spawnpunkte abwechseln kann, und natürlich auch bestimmen kann mit was sie angreift. Man also auch hier bei den unterschiedlichen Angriffswellen varieren kann. Gut kann man ja per script lösen |
||||
|
Grand Poobah of the Ubi Forums![]() |
Patch gibt es ab 18:00.
![]() Mighty Grand Poobah of the Ubi Forums |
|||
|
Neue QuestLibrary:
http://www.ubi.com/DE/Downloads/DownloadFile.aspx?dfId=5163 Patch: http://patches.ubi.com/settlers_6/settlers_6_v1.5.exe Wow, viel Arbeit in der questLibrary. Wird aufgearbeitet, ASAP Dieser Beitrag wurde editiert. Zuletzt editiert von: zweispeer, -- Es wäre sinnvoll wenn Ihr Euch, auch nachdem Ihr erfolgreiche Tipps bekommen habt, noch mal für ein Feedback hier meldet. Das trägt viel zur Motivation der Antwortenden bei und verbessert vielleicht nochmal die Antwort für den Nächsten. Please note that according to the German law on data retention, information on every electronic information exchange with me is retained for a period of six months. |
||||
|
Und Kagunda funktioniert auch wieder .. nur schade für meine SP map....
|
||||
|
Soch, WikiBibliothek ist aktualisiert
Nette Sachen, vielen Dank, da habe ich lange dran zu knacken, glaube ich. Könntet Ihr bitte noch ein zwei Sätze zu :GetIcon und :GetMsgKey einwerfen? Wenn ich es richtig sehe, sind die nur bei den Goals hinzugekommen und bestimmen StandardNachrichten bzw. die angezeigten Icons. Lässt sich das für selbstgeschriebene Goals verwerten? Ansonsten: Mir gefällts, auf ganzer Linie Dieser Beitrag wurde editiert. Zuletzt editiert von: zweispeer, -- Es wäre sinnvoll wenn Ihr Euch, auch nachdem Ihr erfolgreiche Tipps bekommen habt, noch mal für ein Feedback hier meldet. Das trägt viel zur Motivation der Antwortenden bei und verbessert vielleicht nochmal die Antwort für den Nächsten. Please note that according to the German law on data retention, information on every electronic information exchange with me is retained for a period of six months. |
||||
|
|
|
Das mag sein, allerdings sah die Darstellung in GraphViz wie ein Quest mit Zeitlimit aus, und das ist extrem störend. Eventuell lässt sich da eine bessere Darstellung finden (z.B. Pfeil mit Zahl).
Davon gehe ich aus. Hol dir schnellstmöglich das Mission Pack
Das kann man sehr einfach per Quest Wizard mit den vorhandenen Mitteln erledigen. Eine Abfrage auf die Anzahl der Soldaten, eine ob eine Mauer gebaut wurde, und vielleicht noch eine auf den Goldstand in der Schatzkammer. Daran kann man dann zwei bis acht verschiedene Angriffe hängen. Das sieht für mich erst mal nach einer Menge Abwechslung aus. Aber natürlich: Wenn es "stufenlos" sein soll, muss ein entsprechendes Script dafür geschrieben werden. Und zu einem Reward der für wiederholte Angriffe sorgt: Bitte nicht! In der GraphViz Darstellung muss, damit es eindeutig ist, immer ersichtlich sein was gerade passiert und was nicht. Wenn man nun einen Reward einführt der sofort etwas ausführt, und dann automatisch (ohne entsprechenden Questaufruf) noch mal ein paar Minuten später, dann ist diese Eindeutigkeit nicht mehr gegeben. Wenn man sich auf diese Darstellung verlassen will (was wirklich sehr viel Zeit spart), dann muss man auch sicher sein, dass das was dort sichtbar ist auch das ist, was in dem aktuellen Spielzustand passiert.
Ja. Das kann regulär verwendet werden. Alle Objective.Custom(2) Quests haben das "Schriftrollen" Icon. Mit :GetIcon() kann man dieses durch ein passenderes Icon ersetzen. Wer damit ein wenig herumspielen möchte: Die es ist auch möglich die Icons als {1,1} bis {16,16} anzugeben, d.h. die Textform wie z.B. "QuestTypes.CreateMilitary" ist nicht notwendig (aber deutlich besser lesbar). Ruft man per Goal_MapFunction die Funktion "foo" auf, so kann man für diesen Quest das Icon mit dieser Funktion ändern:
function foo_Icon()
return {1,1}
end
Für den MsgKey ist es analog foo_MsgKey(). Hierbei ist zu beachten, dass zwar alle NPCs und Ritter die in der QuestSystemBehavior.lua verwendeten Textkeys sprechen können, aber dies nicht für alle Textkeys gilt die einige vielleicht noch "ausgraben" D.h. viele Textkeys sind NPC-spezifisch. |
|||
|
![]() |
ActivateBuff! ActivateBuff!!!? Schtonk!!
Dhatten tü de rraden hossssen doken Schtonk! Magarag Schtonk! It potten zetten dutten datten Schtonk! Wat teeden dadaden Schutten Schtonk !!! Bevor jetzt alle Spezialisten und Skriptschnitzer dem globalen Wahnsinn des Anton Hinkel verfallen und endgültig jeden Freizeit-Kartenbauer der Frustration überlassen eine abschließende Frage: Was in drei Gottesnamen sollen denn bitte Buff's sein? Selbst unser amerikanischer Kollege kann sich auf diesen blöden Begriff keinen Reim machen. creehawk |
|||
|
![]() |
Und noch was bevor ich lange rumsuche: Wenn ich im editor mit den Bestandteilen des AddOn eine Karte gemacht habe kann das vermutlich nur jemand spielen der ebenfalls das AddOn hat, richtig?
creehawk, heute mit kurzer Zündschnur |
|||
|
|
|
Da spielt wohl jemand keine MMORPGs ;-) Schau mal hier unter Buffs nach. Und bevor du fragst: Ja, mit Goal_ActivateBuff kann man auch Debuffs abfragen :P Im Spiel sind diese als kleine grüne (und rote) "Flecken" unter der Reputationsanzeige zu finden. Wenn du deinen Soldaten den Sold streichst bekommst du bald einen in rot zu sehen. Und ja, Karten die mit dem Mission Pack Editor erstellt worden sind können nur mit dem Mission Pack gespielt werden - ohne das Mission Pack hat man eben die neuen Spielbestandteile nicht. |
|||
|
This sounds very nice!
But there is still something on my wish list; reward_plague (or an update for the script tutorial with a plague function). |
||||
|
Es gibt ja ein paar gute Sachen , aber warum kann ich meine alten maps nicht in den mission cd Edi laden ?
Die einzige Unterscheidung dürfte doch nur die neue klimazone sein, damit ist doch eh sichergestellt das nur die Mission CD Besitzer damit arbeiten können. Was ist jetzt mit der Geologenfunktion ? Wo steht die zur Verfügung , nur bei den Mission CD Edi maps ? Nur für die Mission CD Besitzer oder ? |
||||
|
Was ja auch nochmal ganz interesant wäre:
Die Möglichkeit den Namen des Questnamens im Questedi ändern zu können. Daneben wäre es auch schön, wenn man eben die Quests einer map leicht in andere Maps einbinden könnte. Man hat ja so seine Standards. |
||||
|
| Vorheriges Thema | Nächstes Thema | powered by eve community |
| Bitte warten. Ihre Anfrage wird bearbeitet... |
|
Ubi.com Foren
Die Siedler
DIE SIEDLER - Aufstieg eines Königreichs / Editor & Maps
Patch 1.5 - Questverbesserungen