Neueste Beiträge

Seiten: 1 2 [3] 4 5 ... 10
21
Tipps und Tricks / Re: Hilfe zu Episode 101 - Mit anderen Augen
« Letzter Beitrag von Kiwa am 15. April 2025, 23:19:55 »
Hat sich erledigt
22
Tipps und Tricks / Re: Hilfe zu Episode 101 - Mit anderen Augen
« Letzter Beitrag von alphawolf300 am 15. April 2025, 23:14:53 »
@AmigaMaster
Spoiler (hover to show)
Richtig, hier gibt es 2 Wege zur Lösung :)
23
Tipps und Tricks / Re: Hilfe zu Episode 101 - Mit anderen Augen
« Letzter Beitrag von Kiwa am 15. April 2025, 22:52:40 »
Ich hänge mal wieder, echt Hammer Rätsel
Spoiler (hover to show)
24
Newbies / Re: Edisons sollen Charakter jagen/ins Verließ schicken.
« Letzter Beitrag von alphawolf300 am 15. April 2025, 16:39:48 »
Das, was Cone Arex sagt, ist mir auch in neueren Starterpacks über den Weg gelaufen, aber wenn es unvollständig ist, weiß man natürlich nicht, wo man ansetzen soll.

Die Funktion "FollowCharacter" ist noch aktuell, allerdings sie nicht unbedingt geeignet, weil das folgen verzögert ist. Müsste man ausprobieren.

Mit
cEdna.FollowCharacter(player, 0, 20);wird ein Charakter verfolgt.

Mit
cEdna.FollowCharacter(null);wird die Verfolgung aufgehoben.

Was man auch noch versuchen kann wäre
cEdna.Walk(player.x, player.y, eNoBlock, eWalkableAreas);, dann läuft der Charakter auch hinterher. Der Aufruf wäre dann über repeatly_execute , wie cmdr sagte. Eine weitere Funktion wäre dann das "fangen", die man bräuchte, sprich abfragen, ob Edna den Charakter eingeholt hat.

Zitat
wenn ein Charakter der gerade nicht gespielt wird von den Edisons im Flur erwischt wird.
Das ist nochmal eine andere Sache. Bedeutet das, dass, wenn der Spieler von einem Edison verfolgt wird, und bei der Verfolgung an einem anderen Charakter vorbeilaufen würde, von der Verfolgung ablässt und sich stattdessen diesen Charakter schnappt? Das klingt auf jeden Fall kompliziert :)
Wenn es z. B. an der Tür klingelt und Ed läuft zur Tür, kann man mit Timern den Weg von Ed scripten (d.h., er läuft aus seinem Zimmer und 10 Sekunden lang hält er sich im Flur auf) und wenn sich in einem der Räume ein Charakter aufhält, wird er "eingesammelt". Die Frage ist, was passieren soll, wenn sich mehrere in einem Raum aufhalten, bzw. mehrere Charaktere in Eds Laufweg befinden. Das ist ein ziemlicher Rattenschwanz ... nicht umsonst hat Maniac Mansion darauf verzichtet. ;)
25
Newbies / Re: Edisons sollen Charakter jagen/ins Verließ schicken.
« Letzter Beitrag von Cone Arex am 15. April 2025, 16:09:58 »
In den alten Starterpacks mit AGS 2.62-Codebasis gab es. soweit ich weiß unvollständige, Reste des entsprechenden Codes für das Jagen aus Maniac Mansion Deluxe:

GlobalScript:
// ============================= hunter ===========================================
// this section after cutscene functions
int hunter_char = NO_CHAR;
// two-dimeanional hunting
#define STEPS_UNTIL_DIR 10
int steps = STEPS_UNTIL_DIR;
int lastx = -1;
int lasty = -1;
// give player time to act
#define COUNTDOWN_OFF -1
#define COUNTDOWN_START 400
#define COUNTDOWN_STOPPED -2
int countdown = COUNTDOWN_OFF;
int hunter_area = -1;

function StartHunting (int hunter){
  hunter_char = hunter;
  lastx = -1;
  lasty = -1;
  countdown = COUNTDOWN_OFF;
  // switch player disabled
  // avo- SetGlobalInt (291, 1); // avo veraltet
}

function StartCountdown (){
  // give player some time to think and react
  // but player can't move
  SetGlobalInt (2, 0);
  hunter_area = GetWalkableAreaAt (character [GetPlayerCharacter ()].x - GetViewportX (), character [GetPlayerCharacter ()].y - GetViewportY ());
  RemoveWalkableArea (hunter_area);
  countdown = COUNTDOWN_START;
}

function StopHunting (){
  hunter_char = NO_CHAR;
  // player may move
  if (hunter_area >= 0)
  {
    RestoreWalkableArea (hunter_area);
    hunter_area = -1;
  }
  SetGlobalInt (2, 1);
  // switch player enabled
  // avo- SetGlobalInt (291, 0); // avo veraltet
}

function IsHunting (){
  int result = hunter_char != NO_CHAR;
  if (result)
  {
    // stop hunting when chars are in different rooms
    if (character [hunter_char].room != character [GetPlayerCharacter ()].room)
    {
      StopHunting ();
      result = hunter_char != NO_CHAR;
    }
  }
  return result;
}

function HunterSucceeded (){
  int hunter = hunter_char;
}

function TimeToActIsOver (){
  int hunter = hunter_char;
}

function DoHunting (){
  int caught = 0;
  int charid = GetPlayerCharacter ();
  int px = character [charid].x;
  int py = character [charid].y;
  // check distance
  int dx = px - character [hunter_char].x;
  int dy = py - character [hunter_char].y;
  if ((dx * dx + dy * dy) <= 500)
  {
    caught = 1;
    HunterSucceeded ();
  }
  else if (steps <= 0)
  {
    if ((px != lastx) || (py != lasty))
    {
      // correct HUNTER's direction
      MoveCharacter (hunter_char, px, py);
      lastx = px;
      lasty = py;
    }
    steps = STEPS_UNTIL_DIR;
  }
  else steps--;
  return caught;
}

function RepExec_Hunting (){
  int caught = 0;
  if (IsHunting ())
  {
    if (countdown == COUNTDOWN_OFF) caught = DoHunting ();
    else if (countdown == 0)
    {
      countdown = COUNTDOWN_OFF;
      TimeToActIsOver ();
    }
    else if (countdown > 0) countdown--;
  }
  return caught;
}

GlobalHeader:
#define NO_CHAR -1

// --- hunting ---
import function StartHunting (int hunter);
import function StopHunting ();

Du musst mal schauen, ob du das brauchen und eventuell auf die aktuelle Scriptsprache umbauen kannst.
26
Newbies / Re: Edisons sollen Charakter jagen/ins Verließ schicken.
« Letzter Beitrag von TheGuyWhoIsHere am 15. April 2025, 12:54:08 »
Der Thread konnte mir leider noch nicht helfen. Aber trotzdem Danke.

Das mit dem GlobalScript hatte mir geholfen, aber dann fiel mir ein das ich den Edison zuerst Script fürs Spiel geben sollte, als mir dies geschehen ist.
27
Newbies / Re: Edisons sollen Charakter jagen/ins Verließ schicken.
« Letzter Beitrag von Bòógieman am 15. April 2025, 09:26:27 »
Es ist zwar 100 Jahre her und AGS hat sich auch komplett verändert, aber es gab da einen Befehl, mit dem man einen NPC einem anderen Charakter folgen lassen konnte. Da gibt man nur den anderen Char an (in deinem Fall player) und die Distanz die der Verfolgende Abstand halten soll (da bleibt der Charakter dann einfach stehen).
Anhand der Koordinaten der Charaktäre kannst du zyklisch checken, ob die Koordinaten vom NPC und player nah genug beieinander sind, bevor du die Gefangen-Sequenz triggerst.

hier ein Thread vom AGS-Forum, der dich in die richtige Richtung bringen könnte
28
Newbies / Re: Edisons sollen Charakter jagen/ins Verließ schicken.
« Letzter Beitrag von Cmdr am 15. April 2025, 09:23:12 »
Du könntest im GlobalScript in der Funktion repeatly_execute eine Abfrage einbauen, ob sich ein Edison und ein Spielcharakter im selben Raum befinden. Falls ja, wird dann eine entsprechende Sequenz abgespielt.
29
Newbies / Edisons sollen Charakter jagen/ins Verließ schicken.
« Letzter Beitrag von TheGuyWhoIsHere am 15. April 2025, 00:17:08 »
Hallo zusammen.

Ich arbeite zurzeit an meinem Adventurer und wundere mich wie ich die Edisons dazu bringe die spielbaren  Charakteren zu jagen und ins Verließ zu schicken. Selbes gilt auch für wenn ein Charakter der gerade nicht gespielt wird von den Edisons im Flur erwischt wird.

Schonmal danke im voraus.  ;D
30
Tipps und Tricks / Re: Hilfe zu Episode 101 - Mit anderen Augen
« Letzter Beitrag von Kiwa am 15. April 2025, 00:13:44 »
@AmigaMaster
Spoiler (hover to show)
Seiten: 1 2 [3] 4 5 ... 10