Absender: Menzel, Frank IT-OO4
Datum: Mo, 22.10.2007 09:37:31
In-reply-to:
<221ACE18-F850-4D87-B7EC-1E16C5F07253@xxxxxxxxxxxxxxx>
Hallo Timo, bb früh am Morgen oder am Abend, Du bist immer so schnell mit Antworten. Wie machst Du das bloß :-? Wenn bot_cancel_behaviour mit NULL aufgerufen wird, so wird ja auf keinen Fall das Verhalten1 wieder aktiviert... Ja gut, man könnte abfragen ob das Cancelverhalten deaktiviert wurde und erst dann im Kontext des Verhaltens weitermachen. Aber gibt's nicht ein besseres Mittel deactivateCalledBehaviours aufzurufen ohne caller zu initialisieren ? Das passiert ja dann sowieso vom nachfolgenden Aufruf return_from_behaviour. Mit freundlichen Grüßen Frank Menzel -----Original Message----- From: ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx [mailto:ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx] On Behalf Of Timo Sandmann Sent: Monday, October 22, 2007 9:16 AM To: Entwicklung rund um den c't-bot Subject: Re: [ct-bot] neues Verhalten bot_cancel_behaviour Hallo Frank, Am 22.10.2007 um 07:40 schrieb Menzel, Frank IT-OO4: > Hallo Timo, > Du hast nun zusätzlich deactivateCalledBehaviours eingebaut. Dies hat > nun zur Folge, dass das Verhalten1, welches das Cancel- Verhalten als > auch das abzubrechende Verhalten2 aufruft, nicht wieder aktiviert wird > nach Zuschlagen der Abbruchbedingung. > > Zur Verdeutlichung: > Verhalten 1 ruft also auf: > -Verhalten2 mit data-Verhalten1 > -cancel-Verhalten ebenfalls mit data-Verhalten1, um Verhalten2 > abzubrechen > > > Nun trifft Abbruchbedingung des Cancel-Verhaltens zu und Verhalten2 > wird abgebrochen. Verhalten2 erreicht nicht die Endestelle mit > return_from_behaviour. > Das Cancelverhalten erreicht zwar return_from_behaviour, es wird aber > scheinbar der caller vorher durch deactivateCalledBehaviours > initialisiert und damit Verhalten 1 nach Rückkehr nicht mehr > aktiviert. und das so früh am Morgen... ich glaube, ich weiß aber, was du meinst. Sollte nicht ein Aufruf von bot_cancel_behaviour(NULL) (also kein Caller), das Problem umgehen? > Nach Auskommentieren von deactivateCalledBehaviours funktioniert es > wieder. Aber ohne deactivateCalledBehaviours(), lassen sich keine Verhalten deaktivieren, die andere Verhalten starten, wie z.B. solve_maze(). Da solve_maze() fast nie selbst aktiv ist, sondern nur die vom ihm gestarteten Hilfsverhalten, läuft deactivateBehaviour() dann ins Leere und nichts passiert. Gruß Timo _______________________________________________ ct-bot-entwickler Mailingliste ct-bot-entwickler@xxxxxxxxxxxxxxxxx http://www.heise.de/bin/newsletter/listinfo/ct-bot-entwickler Confidentiality note: The information in this email and any attachment may contain confidential and proprietary information of Heidelberger Druckmaschinen AG and/or its affiliates and may be privileged or otherwise protected from disclosure. If you are not the intended recipient, you are hereby notified that any review, reliance or distribution by others or forwarding without express permission is strictly prohibited and may cause liability. In case you have received this message due to an error in transmission, we kindly ask you to notify the sender immediately and to delete this email and any attachment from your system.