[Modding] Failure("lexing: empty token")

Genwa

Betrachter
Registriert
08.01.2018
Beiträge
328
Verstehe im Moment nicht wo hier der Fehler sitzt:

WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,1,PROFICIENCYDART)~: Failure("lexing: empty token")

Es geht um eine Dialogdatei. Dort sieht das z.B. so aus:

IF ~~ THEN BEGIN 2B
SAY @404 // ~Sehr schön. Achtet auf den Mindestabstand. Der Einsatz von Magie führt zur Disqualifikation. Wir benutzen die gleichen Dartpfeile ohne Verzauberung.~
IF ~CheckStat(LastTalkedToBy,1,PROFICIENCYDART)~ THEN DO ~SetGlobal("NQ#DARTSKILL","LOCALS",2) SetGlobal("NQ#FRIENDLY","LOCALS",1)~ GOTO 2C
IF ~CheckStat(LastTalkedToBy,2,PROFICIENCYDART)~ THEN DO ~SetGlobal("NQ#DARTSKILL","LOCALS",4) SetGlobal("NQ#FRIENDLY","LOCALS",1)~ GOTO 2C
IF ~CheckStat(LastTalkedToBy,3,PROFICIENCYDART)~ THEN DO ~SetGlobal("NQ#DARTSKILL","LOCALS",6) SetGlobal("NQ#FRIENDLY","LOCALS",1)~ GOTO 2C
IF ~CheckStat(LastTalkedToBy,4,PROFICIENCYDART)~ THEN DO ~SetGlobal("NQ#DARTSKILL","LOCALS",8) SetGlobal("NQ#FRIENDLY","LOCALS",1)~ GOTO 2C
IF ~CheckStatGT(LastTalkedToBy,4,PROFICIENCYDART)~ THEN DO ~SetGlobal("NQ#DARTSKILL","LOCALS",10) SetGlobal("NQ#FRIENDLY","LOCALS",1)~ GOTO 2C
END

Erkennt jemand was falsch ist?


Komplette Fehlermeldung:
Code:
Compiling 1 dialogue file ...
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,1,PROFICIENCYDART)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,2,PROFICIENCYDART)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,3,PROFICIENCYDART)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,PROFICIENCYDART)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStatGT(LastTalkedToBy,4,PROFICIENCYDART)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStatLT(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,1,PROFICIENCYDART)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,2,PROFICIENCYDART)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,3,PROFICIENCYDART)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,PROFICIENCYDART)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStatGT(LastTalkedToBy,4,PROFICIENCYDART)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStatLT(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,1,PROFICIENCYDART)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,2,PROFICIENCYDART)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,3,PROFICIENCYDART)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,PROFICIENCYDART)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStatGT(LastTalkedToBy,4,PROFICIENCYDART)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStatLT(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
WARNING: cannot verify trigger ~CheckStat(LastTalkedToBy,4,DEX)~: Failure("lexing: empty token")
 

Maus

Senior Member
Registriert
07.08.2002
Beiträge
9.400
Bei Proficiency wäre ich mir nicht so sicher, ob das so geht, aber bei DEX schon. Von daher: Syntax sieht ok aus. Wie hast du die dlg kompiliert? Vergessen, irgendwas einzubinden? und wie sehen die DLG ingame aus? Sind ja "nur" Warnings, also was ist tatsächlich passiert?
 

Genwa

Betrachter
Registriert
08.01.2018
Beiträge
328
Gleicher Befehl wie bei allen .d-DAteien der Mod (bei denen es keine Fehlermeldung gibt:

COMPILE EVALUATE_BUFFER ~INGOT/DLG/NQ#INTT7.d~ USING ~INGOT/TRANSLATIONS/GERMAN/DLG.tra~

Der Dialog bricht ab und es kommt die folgende Fehlermeldung in blauer Schrift:

Reply Condition Errors:: Special Case:
Reply Condition Errors:: Special Case:
Reply Condition Errors:: Special Case:
Reply Condition Errors:: Special Case:
Reply Condition Errors:: Special Case:

(1x je Abfrage)
 

Taimon

Infinity Engineer
Registriert
25.11.2001
Beiträge
1.501
Kannst du die komplette Datei hier anhängen?
 

Genwa

Betrachter
Registriert
08.01.2018
Beiträge
328
@Taimon Du hast das Problem scheinbar schon gelöst :P Ich wollte die Datei hier mit "Code einfügen" hochladen und dort wurde in jeder betroffenen Zeile ein "roter Stern" sichtbar. In Notepad++ oder mit dem Editor ist davon nichts zu sehen und wenn ich bei "Code einfügen" auf "Weiter" klicke, wird es auch hier nicht mehr angezeigt (daher Screenshot). Keine Ahnung was das ist und wie ich es in Notepad++ angezeigt bekomme, aber ich konnte es hier entfernen...

Screen.png
 

Maus

Senior Member
Registriert
07.08.2002
Beiträge
9.400
ConText nutzen? Ist nicht die super-duper Lösung, aber vllt für solche Probleme möglicherweise schon?
 

Taimon

Infinity Engineer
Registriert
25.11.2001
Beiträge
1.501
Irgendetwas in der Richtung hatte ich mir schon gedacht. Der Lexer ist offenbar über ein (für den aktuelle Kontext) unbekanntes Zeichen gestolpert und konnte zu diesem kein Token generieren.

In Notepad++ kann man sicher auch einstellen, dass solche Zeichen angezeigt werden. (vielleicht mit: View → Show Symbol → Show All Characters)
 

Maus

Senior Member
Registriert
07.08.2002
Beiträge
9.400
Ähnliches Problem bei mir:
Fehlermeldung:
Code:
ERROR: parsing [tb#_compile_eval_buffer/morenco/kampfskripte/M8MEMxS.baf]: Not_found
ERROR: error compiling [tb#_compile_eval_buffer/morenco/kampfskripte/M8MEMxS.baf]: Not_found
tp2-Text:
Code:
 COMPILE EVALUATE_BUFFER ~morenco/kampfskripte/M8MEMxS.baf~
Und die Datei ist genau an der Stelle, auf die der Pfad verweist. Ich habe das auch schon mal installiert gehabt, bevor ich die Datei umbenannt habe.

Nur sehe ich hier keine Sonderzeichen.

edit: ich bin weiter gekommen. Not_found bezieht sich auf ein Element im Skript. Ich kommentiere gerade teilweise aus, um es eingrenzen zu können, wo er sich verschluckt.

und noch ein edit: es war Heard(); das hatte ich nur mit der Referenz (Heard(ALERT)) genommen und ohne die Info von wem (korrekt: Heard([ANYONE], ALERT)).

Dummerweise ist Heard() nicht in der IESDP drin... Also nicht als Trigger, nur halt in Beispielen erwähnt, wo ich dann den Syntax gefunden habe.
 
Zuletzt bearbeitet:

Taimon

Infinity Engineer
Registriert
25.11.2001
Beiträge
1.501
Wo hast du geschaut bzgl. IESDP?
Zumindest bei den BG2 Script Triggern ist es gelistet:
0x002F Heard(O:Object*,I:ID*SHOUTIDS)
Returns true only if the active CRE was within 30 feet of the specified object and the specified object shouted the specified number (which does not have to be in SHOUTIDS.ids) in the last script round.
NB. If the object is specified as a death variable, the trigger will only return true if the corresponding object shouting also has an Enemy-Ally flag of NEUTRAL.
 

Maus

Senior Member
Registriert
07.08.2002
Beiträge
9.400
Hm, eigentlich genau da. Ich hab halt mit dem Browser gesucht, aber eigentlich bisher auch alles gefunden... oder ich war zu blöd zum Tippen...

Aber die Beschreibung ist interessant: ich dachte, ich könnte nur das nutzen, was in der SHOUTIDS steht. Das müsste ja umgekehrt heißen, dass ich auch was mit SHOUT machen kann, das nicht in der SHOUTIDS ist, oder? Weil sonst würde es ja bei Heard keinen Sinn machen.
Das würde auch erklären, warum ich den Beispielen Shouts mit 4010 und anderen Nummern gesehen habe...

Oder anders: ich kann das Rufen+Hören über IDs aus der SHOUTIDS machen oder mit direkten selbst definierten Pärchen, die halt das Autoren-Tag beinhalten muss, damit es keine Probleme da gibt?
 

Taimon

Infinity Engineer
Registriert
25.11.2001
Beiträge
1.501
Die Verwendung von SHOUTIDS macht die Skripte lesbarer. Und es ist auch ein Weg zu verhindern, dass ein anderer Mod dieselbe ID nutzt.
(Wenn man bei der Installation prüft, ob die geplante SHOUTID schon einen Eintrag in SHOUTIDS hat und in diesem Fall entsprechende Anpassungen macht.)

Aber prinzipiell kann man hier sicher einen beliebigen Integerwert verwenden.
Als Parametertyp ist ein "I" angegeben, die Engine bekommt also sowieso nur einen Zahlenwert übergeben. Der Skriptcompiler macht die Übersetzung von SHOUTID zu Integer.
 

Maus

Senior Member
Registriert
07.08.2002
Beiträge
9.400
Hm, ok, es muss ein integer sein... das ist dann wahrscheinlich der Grund, warum bei der Ninde-Mod mal jemand eine ganze Menge Shouts gesammelt hat und in die SHOUTIDS übertragen hat. Und Integer könnte man natürlich ähnlich wie bei einem Autor-Tag auch mod-spezifisch machen. Allerdings mit sehr viel weniger Möglichkeiten.

Das Problem ist halt: wenn ich erkenne, dass ein I-wert schon eingetragen ist, was mache ich dann: ich nehme einen alternativen. Und wenn der dann... ist halt eine ziemliche Kette. In der Praxis vielleicht nicht so wild, weil das wohl selten verwendet wird (müsste man mal SCS anschauen, da vermute ich einiges). Ist aber ein mächtiges Tool, um Kämpfer zu koordinieren und Support zu verteilen.
 
Oben