J'ai un problème avec ça, justement... Voici mon source FunDelphi.
obstacle TPlayerHasSword
  name 'Personnage qui bloque le joueur s''il n''a pas d''épée';
  image 'Characters/ManWithBeard';
  on Pushing do
  var
    Selected: Integer;
  begin
    inherited;
    if not KeyPressed then
      Exit;
    Selected := Player.ShowSelectionMsg(
      'Eh toi, que fais-tu là ? Tu veux aller dans la forêt ? C''est '+
      'dangereux ! Je ne te laisserai passer que si tu as une épée. Est-ce le '+
      'cas ?',
      ['Oui', 'Non']
      );
    if Selected = 0 then
    begin
      Player.ShowMessage ('Prouve-le moi en tuant le monstre, juste à côté !');
      StillMovingMonster.ChangePosition(Point3D(11,23,1));
    end else
    begin
      Player.ShowMessage ('Va en trouver une alors, si tu veux entrer dans la forêt !');
    end;
  end;
end;
poscomponent TStillMovingMonster (TMovingMonster)
  name 'Petit monstre qui teste le joueur';
  on ChangePosition do
  begin
    inherited;
    if not Master.Editing and (Map = nil) then
    begin
      Master.Map['ForestMap'].Map[10,22,1].Obstacle:=nil;
      Master.Map['ForestMap'].Map[9,22,1].Obstacle:=ManAfterPlayerHasSword;
    end;
  end;
end;
Les deux composants sont bien déclarés, et StillMovingMonster est placé sur la carte.
Le problème est sur la ligne : " StillMovingMonster.ChangePosition(Point3D(11,23,1));".