Construction Set [Frage] Travel wiederholen?

The Nici

Gebannter Benutzer
Hi.
Wie kann man Travel wiederholen lassen und kann man es so machen dass die Soldaten in einer Gruppe marschieren?
 
wiederholen des AiTravel-Packages ist nur möglich wenn der NPC/die Kreatur das letzte AiPackage in der Nähe der nächsten Station (< 1300) beendet.
Das heisst:
Du kannst z.B. einen NPC in Seyda Neen aufstellen und ihm unter Ai ein Travel-Package geben. Der Zielort des Packages darf wie gesagt nicht weiter als 1200 bis 1300 Einheiten weg sein. Du kannst dem NPC bis zu 32 aufeinander folgende Travel-Packages unter Ai eintragen. Ist der Endpunkt des letzen Packages in Reichweite des Endpunktes (also max 1300 entfernt oder näher) vom ersten Package dann wird der NPC/die Kreatur nach Beendigung des letzten Packages wieder mit dem ersten Package beginnen == im Kreis gehen. Wenn der NPC also in Seyda Neen aufgestellt wird schafft er erfahrungsgemäss mit den maximal 32 einstellbaren Stationen gerade so die Strecke nach Pelagiad oder Vivec, Hlaalu. Zurück ginge es dann nicht mehr (ohne Script). Würdest Du ihn aber nur von Seyda Neen bis zur Absturzstelle von Tarhiel (agronian guy) und zurück gehen lassen so das er seine Tour am Anfangspunkt beendet, dann würde er wieder von vorne losgehen.

Natürlich könntest Du ihn auch im Kreis gehen lassen. Die Bedingungen dazu sind klar: Endpunkt der Route ca. 1200 Einheiten von der ersten Station entfernt (also Maximum ist irgendwo zwischen 1200 und 1300 Einheiten, bei höheren Abständen gehen sie nicht los)

Gruppen kann man bilden indem man entweder mehreren NPC's die gleichen Ai-Packages gibt oder indem man einen vorrausgehen lässt und den anderen ein AiFollow-Package gibt welches sagt das sie dem ersten folgen sollen.
Das ist aber etwas tricky und führt im Exterior-Bereich zu Problemen wenn der Spieler etwa eine Zelle weiter ist und eine Zellgrenze überschreitet während die "Reisegruppe" auch gerade einen Zellwechsel macht: Dabei zerreißt die Gruppe- ein Teil bleibt in der alten Zelle stehen während ein Teil der Gruppe normal weitergeht. Es gibt die Möglichkeit das auch komplett per Script zu steuern, lohnt sich aber nur wenn es mehr als 32 Stationen sind und bringt einige kleine Einschränkungen (NPCs reisen nicht wenn Spieler rastet o.ä.)

Wenn Du was zum Abkucken brauchst- in HlaBitterUndZinnhöllen (bei www.newraven.net ) einem ollen Riesen-PlugIn von mir, findest Du im Exterior Zinnwald, Sturmfalter-Festung eine kleine Reisegruppe ( Händler + Packtier + Wachmann ) bei der Du auch erfährst wie man es machen kann das die Gruppe von wilden Tieren angegriffen wird und wie man eine getrennte Gruppe wieder zusammenkriegt.
 
Zuletzt bearbeitet:
ok danke fr das widerholen. Meine Wachen machen das auch aber...sie gehen nicht in Formation.
Noch ne Frage: Kann ich einem gleichen NPC verschiedene PAckages zuweisen kann? Also NPC Peter ein travel to x geben und dem 2. Peter travel zu xy zu geben.
 
Nein, das geht nur per Script aber nicht mit den im Editor einstellbaren Packages. Im Script könntest Du die Position der NPC-Referenz - also ob es Peter0000001 oder Peter0000002 ist- feststellen und ihm dann das passende Package (AiTravel oder AiEscort) geben.

Du kannst auch mehreren gleichen NPCs das gleiche Script geben und diese mithilfe einer Leiche "durchnummerieren" so das jeder Peter seine eigene lokale Nummer hat und kennt. Etwa so:
Platziere eine einmalige Leiche zusammen mit zwei gleichen Peter-NPCs in eine Zelle. An der Leiche ist z.B. das Sound_Flies-Script und persistent ist sie sowieso...
Tausche das Sound_Flies-Script gegen ein eigenes Script indem Du ein neues Script machst, kopiere den Scripttext vom Sound_Flies da mit rein.
Etwa so:

begin _myNici_Sound_Flies

short Peterzahl

;if ( Cellchanged == 0 )
;blabla , mach meinetwegen den sound hier hin...
;endif

end


Dieses Script an die Leiche. Ich nenn sie einfach mal "Leiche" - die positioniere mit beiden Peter-NPC's zusammen in eine Zelle. Dann mache an den Peter-NPC etwas in der Art:


begin _myNici_PeterScript

short meineNummer

if ( meineNummer == 0 )
set meineNummer to "Leiche".Peterzahl
set meineNummer to meineNummer + 1
set "Leiche".Peterzahl to meineNummer
endif


end

Auf diese Weise "holen" sich alle Peter-NPCs eine fortlaufende Nummer ab und zwar genau in der Reihenfolge wie sie im Editor aufgestellt wurden. Jeder Peter hat dann eine andere Nummer und könnte sich damit anders verhalten. Hast Du das jetzt nachvollziehen können? Wenn nicht dann kannst Du das Prinzip auch im Hl.Olms-Grabstätte, Hl.Delyn-Grabstätte oder Akimaes abkucken (alles kleine Mini-Abenteurer-findest Du http://forum.newraven.net/ein-Haufen-kleine-PlugIns-t-8.html )
Dort findest Du auch eine Methode wie man einen NPC (per Script) Vvardenfellweit traveln lassen kann (A Guide to Vvardenfell :) )
 
Naja sie müssen ja nur in einer Formation Patrullieren. Irgendwie mach ich da grosses Drama draus.
ALSO du hast gesagt es gäbe ein Script mit dem sie in der Formation laufen könnten. Kannst du das mal posten?^^
 
So wie ich Rene verstanden habe ist "Formation" etwas übertrieben ausgedrückt. Denn entweder marschieren die Soldaten alle auf einem Haufen oder sie laufen in einer langen Schlange hintereinander.

Diese beiden Formationen würden dann in AoE-Termen wohl am ehsten: ohne Formation und Reihe heißen ;)
 
die Methode wäre, einen SpezialNPC vorrausgehen zu lassen und die anderen auf AiFollow SpezialNPC zu setzen. Der SpezialNPC kann sogar unsichtbar sein (einfach neue Rasse erstellen). Dabei entsteht wiederum das Problem das die Kette reisst wenn der Spieler eine Zelle weiter einen Zellwechsel macht während die Gruppe grade auch über eine Zellgrenze geht.
Du müsstest also bei Cellchanged alle Gruppenmitgieder kurz auf

AiWander 1024 0 0 0 0 0 0 0 0 0 0 0 0
setzen, dann das Script mit Return verlassen
und im nächsten Frame abfragen:
if ( GetCurrentAiPackage != 3 ) ; 3 wäre AiFollow
if ( GetDistance "SpezialNPC" <= 1024 )
wieder auf
AiFollow "SpezialNPC" 0 0 0 0 0 0

und den SpezialNPC musst Du nach jedem Cellchanged eine kurze Zeit warten lassen. Wenn Du einen Unsichtbaren nimmst kannst Du das mit SkipAnim machen, das fällt nicht auf :)