-
AI_Function wird nicht ausgeführt
Hallöle,
ich hab mich für das alte Problem des Gruppenangriffs der AI_Function aus LeGo bedienen wollen - mit dem Problem, dass die Funktion nicht aufgerufen wird. Anscheinend reiht man hier in die AI-Queue des NPC ein, sollte AI_StopProcessInfos den nicht vorher "leerräumen", sodass die Funktion aufgerufen wird?
Code:
func void DIA_Konrad_Schluss_Kampf(){
AI_Output (other, self, "DIA_Konrad_Schluss_Kampf_14_00"); //
AI_Output (self, other, "DIA_Konrad_Schluss_Kampf_14_01"); //
AI_StopProcessInfos (self);
AI_Function (self, Gruppe_Angriff);
};
func void Gruppe_Angriff()
{
AI_PrintScreen ("Funktion wird aufgerufen...", -1, 41, FONT_ScreenSmall, 2);
B_Attack (MIL_028_Konrad, hero, AR_KILL,0);
B_Attack (MIL_029_Nikolai, hero, AR_KILL,0);
B_Attack (MIL_030_Andrea, hero, AR_KILL,0);
};
Den Print-Befehl hab ich zur Kontrolle reingemacht, ob auch überhaupt was passiert; aber nichtmal der wird ausgeführt...
-
Ich kann dir nicht sagen woran genau das liegt, aber folgendes würde ich probieren:
- PrintScreen anstatt AI_PrintScreen zum Überprüfen.
- AI_Function vor AI_StopProcessInfos aufrufen. Das ist zwar nicht genau was du willst, wäre aber sicherlich zur Fehlerfindung hilfreich.
-
Erstmal danke für die schnelle Antwort.
Habe das mit dem AI_StopProcessInfos vor der AI_Function auch schon gedacht, es ändert sich aber leider nichts. Auch der Print-Befehl erscheint nach wie vor nicht...
Ich habe die Stelle inmitten von anderen Choices eines Dialoges, könnte es daran liegen dass noch andere Dialogteile ausgeführt werden können?
-
Zeig mal bitte mehr code Kontext. Also den ganzen Dialog mit allen choices.
-
Werden die AI_Functions denn überhaupt initialisiert, d.h. rufst du LeGo_Init() in der INIT_Global auf?
Alternativ kannst du auch nochmal versuchen, die bei 'other' anzumelden, aber grundsätzlich sollte das schon auch so funktionieren.
-
Zitat von Lehona
Werden die AI_Functions denn überhaupt initialisiert, d.h. rufst du LeGo_Init() in der INIT_Global auf?
Alternativ kannst du auch nochmal versuchen, die bei 'other' anzumelden, aber grundsätzlich sollte das schon auch so funktionieren.
Ich hab das über MEM_InitAll(); für Ikarus gemacht, geht das bei LeGo nicht? Wenn ich LeGo_Init(); angebe, spuckt der compiler ne Fehlermeldung aus (Klammerfehler).
-
Zitat von Buzz Killington
Ich hab das über MEM_InitAll(); für Ikarus gemacht, geht das bei LeGo nicht? Wenn ich LeGo_Init(); angebe, spuckt der compiler ne Fehlermeldung aus (Klammerfehler).
Code zeigen hilft (wie immer). Du musst auch die Pakete angeben, die du initialisieren (=benutzen) möchtest, wie es in der ReadMe auch steht. Wie genau die Konstanten für die individuellen Pakete heißen steht auf der jeweiligen Seite im Wiki, z.B. LeGo_AI_Function (oben rechts).
-
Hab's.
Code:
// *********
// GLOBAL
// *********
func void STARTUP_GLOBAL()
{
Game_InitGerman();
};
func void INIT_GLOBAL()
{
Game_InitGerman();
MEM_InitAll();
LeGo_Init(Lego_All);
};
Hab' das rot markierte hinzugefügt und alle Probleme bezüglich LeGo (Trialogproblem welches ich noch hatte und das hier) haben sich in Luft aufgelöst. Jetzt funktioniert's. Ich hatte zuerst nichts in den Klammern bezüglich des Initalisierungsbefehls von LeGo stehen...
Vielleicht aufmerksamer ReadMe lesen... Ich dachte, die MEM_InitAll(); - Zeile initialisiert auch LeGo, da hab ich wohl falsch gedacht.
Danke für die Hilfe nochmal.
-
Du wirst dann neuerdings Blutflecke(oder die Standardtextur, Steinquader) auf dem Bildschirm sehen wenn der hero Schaden nimmt.
Falls du dieses LeGo feature nicht möchtest kannst du LeGo so initialisieren:
Code:
LeGo_Init(Lego_All & ~LeGo_Bloodsplats);
-
Try it like this.
Code:
func void DIA_Konrad_Schluss_Kampf(){
AI_Output(other, self, "DIA_Konrad_Schluss_Kampf_14_00"); //
AI_Output(self, other, "DIA_Konrad_Schluss_Kampf_14_01"); //
Info_ClearChoices(DIA_Konrad_Schluss_Kampf);
Info_AddChoice(DIA_Konrad_Schluss_Kampf,"Go here!",Gruppe_Angriff);
};
func void Gruppe_Angriff()
{
AI_StopProcessInfos(self);
B_Attack(MIL_028_Konrad, hero, AR_KILL,1);
B_Attack(MIL_029_Nikolai, hero, AR_KILL,1);
B_Attack(MIL_030_Andrea, hero, AR_KILL,1);
};
-
Zitat von N1kX
Try it like this.
Code:
func void DIA_Konrad_Schluss_Kampf(){
AI_Output(other, self, "DIA_Konrad_Schluss_Kampf_14_00"); //
AI_Output(self, other, "DIA_Konrad_Schluss_Kampf_14_01"); //
Info_ClearChoices(DIA_Konrad_Schluss_Kampf);
Info_AddChoice(DIA_Konrad_Schluss_Kampf,"Go here!",Gruppe_Angriff);
};
func void Gruppe_Angriff()
{
AI_StopProcessInfos(self);
B_Attack(MIL_028_Konrad, hero, AR_KILL,1);
B_Attack(MIL_029_Nikolai, hero, AR_KILL,1);
B_Attack(MIL_030_Andrea, hero, AR_KILL,1);
};
I guess that's the fake-choice possibility? Already used it and have not been very fond of it to be honest. That's why I wanted to use LeGo, to avoid this alternative. But thank you anyway.
-
Zitat von Buzz Killington
I guess that's the fake-choice possibility? Already used it and have not been very fond of it to be honest. That's why I wanted to use LeGo, to avoid this alternative. But thank you anyway.
With Lego
Code:
func void DIA_Konrad_Schluss_Kampf(){
AI_Output(other, self, "DIA_Konrad_Schluss_Kampf_14_00"); //
AI_Output(self, other, "DIA_Konrad_Schluss_Kampf_14_01"); //
AI_Function(self, Gruppe_Angriff);
};
func void Gruppe_Angriff()
{
AI_StopProcessInfos(self);
B_Attack(MIL_028_Konrad, hero, AR_KILL,1);
B_Attack(MIL_029_Nikolai, hero, AR_KILL,1);
B_Attack(MIL_030_Andrea, hero, AR_KILL,1);
};
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
|