|
-
Alle NPCs attackieren sich zu einem variablen Zeitpunkt
Ich hab jetzt etwas ganz komischen bemerkt bei testen. Und zwar greifen sich alle NPCs auf einmal an. Ich hab wirklich keine Ahnung warum. Bis vor kurzem gab es keine Probleme und soviel hab ich jetzt auch nicht geändert nur Dialoge usw, also nichts was tiefer eingreift.
Hier mal kurz ein Auflistung solcher „Zeitpunkte“.
- Ich hab einen NPC X angesprochen, als ich ihn „anklickte“ im normal Gehmodus hat er mich sofort attackiert
- Ich hab mit einem NPC Y den Dialog normal geführt und beendet plötzlich attackieren sich alle NPCs
Also ich hoffe ich könnt mir da bei diesem eigenartigen Problem helfen, an der neuen LeGo Version wird es wohl nicht liegen, das sonst muss ich noch mal mit einer älteren Version testen.
-
Sorry für den DP, aber hat gar keiner einen Lösungsvorschlag.
Ich kann mir das Phänomen gar nicht erklären den an den B_Assess* Skripten hab ich nichts verändert, von der einen Sekunde auf die andere drehen die NPCs komplett durch und gehen auf alles und jeden los.
Anfangs dachte ich es passiert immer nach einem bestimmten Dialog, aber es passiert immer nach ca. 5 Minuten. Bin beispielsweise auch einfach nur mal im Dorf herumspaziert, und plötzlich drehten alle NPCs komplett durch.
Während eines sollen Kampfes bin ich auch mal im Marvin Mode mit 'o' in einen anderen NPC geschlüpft, darauf hat mich dann mein Spielercharakter angegriffen, normal steht der doch nur mehr blöd rum, wenn man den Charakter wechselt oder?
EDIT: Hab auch mal im zSpy Log nachgesehn, da wurde etwas als "Warnung" gekennzeichnet.
Code:
[w] 06:31 Warn: 0 C: SCRIPT: Npc_IsInState(): illegal param: "OTHER" is NULL. .... <oGameExternal.cpp,#252>
[w] 06:31 Warn: 0 C: SCRIPT: last parser func-name: _FF_HOOK .... <oGameExternal.cpp,#262>
[i] 06:31 Info: 2 U: PAR: Adressing an empty Instance : C_NPC.NPCTYPE .... <zParser_Symbol.cpp,#365>
[i] 06:31 Info: 2 U: PAR: Adressing an empty Instance : C_NPC.FIGHT_TACTIC .... <zParser_Symbol.cpp,#365>
[w] 06:31 Warn: 0 C: SCRIPT: Npc_ClearAIQueue(): illegal param: "OTHER" is NULL. .... <oGameExternal.cpp,#252>
[w] 06:31 Warn: 0 C: SCRIPT: last parser func-name: _FF_HOOK .... <oGameExternal.cpp,#262>
[w] 06:31 Warn: 0 C: SCRIPT: Npc_SetTarget(): illegal param: "OTHER" is NULL. .... <oGameExternal.cpp,#252>
[w] 06:31 Warn: 0 C: SCRIPT: last parser func-name: _FF_HOOK .... <oGameExternal.cpp,#262>
[w] 06:31 Warn: 0 C: SCRIPT: AI_StartState(): illegal param: "OTHER" is NULL. .... <oGameExternal.cpp,#252>
[w] 06:31 Warn: 0 C: SCRIPT: ... aiState: ZS_ATTACK, wp-name: .... <oGameExternal.cpp,#252>
[w] 06:31 Warn: 0 C: SCRIPT: last parser func-name: _FF_HOOK .... <oGameExternal.cpp,#262>
Und zwar bei den BinaryMachines aus LeGO bei der Funktion BW_Chars();
Da wird ja der ZS_Attack aufgerufen, vllt. ist das ein Grund, aber ich denke mal eher nicht.
Geändert von Umfi (03.04.2012 um 11:55 Uhr)
-
Du kannst ja mal eine Abfrage einbauen, die dir den Namen des ersten Angreifers anzeigt. Zum Beispiel in der ZS_Attack
Code:
var int angefangen;
if (angefangen == FALSE)
{
Print (self.name);
angefangen = TRUE;
};
(falls es so überhaupt klappt) am Besten mehrmals probieren, um zu sehen, ob es immer derselbe NPC ist.
-
Dein Verdacht klingt gar nicht so falsch, BW_Chars sieht ziemlich käsig aus:
Code:
func void BW_Chars() {
if(Npc_IsInState(hero, ZS_Talk)) {
return;
};
Npc_GetTarget(hero);
if(!Npc_IsInState(other, ZS_Attack)) {
other.npctype = 0;
other.fight_tactic = 4;
Npc_ClearAIQueue(other);
Npc_SetTarget(other, hero);
AI_StartState(other, ZS_Attack, 1, "");
};
hero.aivar[4] = 0;
};
Ich verstehe nicht was das tut und warum, aber wenn der Held gerade kein Target hat greift other (wer auch immer das grade ist) den Helden an.
-
Okay, ich hab jetzt mal in die BW_Chars mal Print Meldungen eingebaut, und die NPCs attackieren sich wirklich gleich nachdem der Print erscheint. Bis jetzt ist der Print immer nach ca. 5 Minuten aufgetaucht. Scheint also wirklich ein Problem damit zu geben. BW_Chars wird nur irgendwo in Perm_Mem als Parameter übergeben, allerdings verstehe ich den Sinn dahinter nicht. Wäre klasse wenn mir da jemand genauere Auskunft geben könnte, der sich in der Materie auskennt. Oder kann ich den Teil auskommentieren?
-
 Zitat von Umfi
[...] an der neuen LeGo Version wird es wohl nicht liegen [...]
Hm, vielleicht doch.
Lehona und ich haben es uns nicht nehmen lassen, einen bekloppten Aprilscherz mit in die Version 2.2 zu stecken. In dem Einleitungspost kannst du jetzt eine Scherzfreie 2.2, beziehungsweise direkt 2.2.1, finden. 
MfG Gottfried
-
 Zitat von Gottfried
Hm, vielleicht doch.
Lehona und ich haben es uns nicht nehmen lassen, einen bekloppten Aprilscherz mit in die Version 2.2 zu stecken. In dem Einleitungspost kannst du jetzt eine Scherzfreie 2.2, beziehungsweise direkt 2.2.1, finden.
MfG Gottfried
Okay, so obvious...
Bin jetzt auf die 2.2.1 umgestiegen dort gibt es aber ein anderes Problem.
Dort sind die Npcs zwar wieder normal aber es kommt zu einer Fehlermeldung, nach etwa 5 Minuten, gleich wie bei den aggressiven NPCs.
Hier mal ein Screen davon.
[Bild: 72Ubcserror.jpg]
-
Autsch. Da hab ich eine Datei versehentlich in der falschen Installation gefixt.. Jetzt sollte alles gehen. (Sowohl in 2.2, als auch in 2.2.1.)
MfG Gottfried
-
 Zitat von Gottfried
Autsch. Da hab ich eine Datei versehentlich in der falschen Installation gefixt.. Jetzt sollte alles gehen. (Sowohl in 2.2, als auch in 2.2.1.)
MfG Gottfried
Danke, jetzt funktioniert wieder alles. (finally )
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
|
|