|
-
Schlafend im Bett spawnen
Hey!
Ich scheitere derzeit daran, den Held quasi nach dem Intro schlafend im Bett spawnen zu lassen.
Hierzu habe ich den Spawnpunkt neben das entsprechende Bett gesetzt und folgendes in der Startup unter INIT_SUB eingefügt.
Das ganze funktioniert allerdings nicht und der Held spawnt einfach ohne ins Bett zu wandern.
Hat vielleicht jemand hierzu eine Idee?
Danke im Voraus und LG.
-
Ich nehme mal an du rufst diesen code zu früh auf. Evt. existiert der hero da noch nicht Richtig.
Bei mir landet der hero im Bett wenn ich eine Triggerschleife benutze welche 1 mal die Sekunde aufgerufen wird.
Code:
var int sentToBedOnce;
func void CALLEDEVERYSECOND()
{
if(PLAYER_MOBSI_PRODUCTION == MOBSI_SLEEPABIT){
sentToBedOnce = true;
};
if(!sentToBedOnce){
if (!C_BodyStateContains(hero, BS_LIE))
{
if (Wld_IsMobAvailable(hero,"BEDHIGH"))
{
AI_UseMob (hero, "BEDHIGH", 1);
};
};
};
};
Falls du LeGo benutzt wäre es wohl am bequemsten eine FrameFunction zu starten. Dort prüfst du ob der hero im Bett liegt. Falls ja: FrameFunction entfernen, falls nein: hero ins Bett schicken.
Geändert von Cryp18Struct (12.10.2017 um 03:59 Uhr)
-
Ja vielen Dank, so funktioniert das schon ganz gut.
Einziges Problem ist nur, dass man den Prozess des Hinlegens sieht. Ich hab' das zwar versucht mit einem Blackscreen zu umgehen, der mit dem Aufrufen des Triggers startet und mit dem Hinlegen endet, nur ist der leider zu kurz da um die gesamte Aktion bis der Hero wirklich liegt zu "verstecken".
-
Zitat von Fleischwanzentopf
Ich hab' das zwar versucht mit einem Blackscreen zu umgehen, der mit dem Aufrufen des Triggers startet und mit dem Hinlegen endet, nur ist der leider zu kurz da um die gesamte Aktion bis der Hero wirklich liegt zu "verstecken".
Falls du LeGo verwendest, schau dir mal das an.
-
Zitat von mud-freak
Falls du LeGo verwendest, schau dir mal das an.
Danke für den Tipp, mit Lego und Ikarus habe ich mich bisher aber noch gar nicht auseinandergesetzt.
-
Ikarus und LeGo lohnt sich, erlaubt einem einiges an Zeug zu machen (und vieles wird auch einfach bequemer).
Alternativvorschlag: Du bastelst dir ein Animations overlay (.mds) in welcher die ins-Bett-Legen Animation auf 2 frames gekürzt ist. Dadurch würde der hero quasi sofort ins Bett ploppen. Danach kann man das Overlay ja wieder entfernen. Da müsstest du dann aber wahrscheinlich dir erst mal die entsprechende .asc mit den GothicSourcer holen und bearbeiten.
edit:
habe mal solch ein overlay gebastelt: Human_InstantHighBed_Martin.zip
kann wie andere overlays aktiviert werden
Code:
instance PC_Hero (NPC_DEFAULT){
[hier ein haufen anderes zeugs]
Mdl_ApplyOverlayMds (self, "Human_InstantHighBed.mds");
};
dann einfach wieder mit Mdl_RemoveOverlayMDS entfernen.
Geändert von Cryp18Struct (13.10.2017 um 03:38 Uhr)
-
Super vielen Dank funktioniert genauso, wie es sollte.
-
Schonmal gespeichert und wieder geladen? Der Spieler dürfte die OverlayMDS dann wieder aktiviert haben - du musst das also irgendwie regelmäßig entfernen. Eventuell reicht es schon, wenn du die Zeile in der PC_Hero mit einer If-Abfrage übergibst und checkst, ob eine Variable 0 ist - wenn du die OverlayMDS das erste Mal entfernst musst du sie dann auf 1 setzen.
-
Zitat von Lehona
Schonmal gespeichert und wieder geladen? Der Spieler dürfte die OverlayMDS dann wieder aktiviert haben - du musst das also irgendwie regelmäßig entfernen. Eventuell reicht es schon, wenn du die Zeile in der PC_Hero mit einer If-Abfrage übergibst und checkst, ob eine Variable 0 ist - wenn du die OverlayMDS das erste Mal entfernst musst du sie dann auf 1 setzen.
Du hast recht, sobald das Spiel geladen wird ploppt der Held automatisch wieder ins Bett, solange er daneben steht und die OverlayMDS setzt sich auch wieder zurück.
Das mit der If-Abfrage hat leider auch nichts gebracht.
-
Ich habe den Blackscreen jetzt einfach in der VisualFxInst.d länger laufen lassen, ist zwar nicht die allerschönste Lösung aber so wird auch das langsame Hinlegen gut verdeckt.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
|
|