Archiv verlassen und diese Seite im Standarddesign anzeigen : Unexpected end of file
ich kriege beim parsen die Fehlermeldung "Unexpected end of file (line 522)". Was hat sie für eine Bedeutung? Und wie krieg ich die fehlerhafte Datei raus?
Sumpfkrautjunkie
01.09.2005, 20:24
Ich hatte die Meldung auch mal, kann mich ber nicht genau daran erinnern, poste mal einpaar Zeilen des Quellcodes(atwa ab Zeile 500) und sag welche datei du verändert hast.
Quellcode? Meinst du z-spy?
hast du vllt irgendwas weggelassen beim skripten?
vll ein strichpunkt (" ; ")?
nein, dann würde er ja expected ";" bringen
ich kriege beim parsen die Fehlermeldung "Unexpected end of file (line 522)". Was hat sie für eine Bedeutung? Und wie krieg ich die fehlerhafte Datei raus?
Ich denke eher dass du ein " zuzumachen oder ein ) vergessen hast- der Parser erwartet sich noch irgendwas...
May Dawn Rise Again, Onyxx
Vielleicht entfernt dein Editor leere Zeilen am Ende (das ist NICHT gut). In dem Falle solltest Du als letzte Zeile schreiben /* THE END */Quelle (http://forum.worldofplayers.de/forum/showthread.php?p=1204895&#post1204895)
Welche Datei betroffen ist, verrät dir der zSpy. Einfach auf hohem Level nebenher laufen lassen und schauen, welche Datei zuletzt geparst wurde.
so long, CeeX
Sektenspinner
01.09.2005, 21:18
Oft sind es Kommentare die da stören.
Wenn in deinem Script am Ende folgendes Steht:
"//Toller Kommentar"
oder:
"
/*auch
ein
toller
mehrzeiliger
Kommentar
"
In beiden Fällen will der Parser alles auslassen bis das Kommentar zu ende ist.
Das ist im ersten Fall beim Zeilenumbruch im zweiten Fall beim */
Wenn aber plötzlich die Datei zuende ist und er nichts gefunden hat, dann kann er das einfach nicht glauben. Er hat gar nicht damit gerechnet das da jetzt das Ende ist -> Unexpected End of File.
So hab ich das interpretiert :D
Also das letzte was er vor der Fehlermeldung geladen hat ist die Gothic.dat. Aber das nützt mir ja wenig, da ich die einzelne Datei brauche. Wie kriege ich die raus?
Ich denke dieser Thread (http://forum.worldofplayers.de/forum/showthread.php?t=73137) könnte hilfreich sein. Generell ist es aber ratsam, sich die letzten Änderungen zu merken.
freundliche Grüße, Rolus
Also was wir eigentlich damit sagen wollen ist:
Her mit den letzten 10 - 20 Zeilen des betreffenden Skripts! :D
may Dawn Rise Again, Onyxx
Ken Suyoko
01.09.2005, 23:54
hmmm.
schau einfach nach ob du in solchen skripten wie den Log_constants o.ä. welche KEINE funktion sind ( also mit einem }; enden) auch ein paar Zeilen mehr gemacht hast^^
d.h. schau im crimsom editor.. wenn am rand noch mehr Zeilen dranstehen als du selber benötigst dann ist gut.. wenn aber auf letzter Zeile ein
Var int XXXXX; ist dann meldet er dir den Error.
Ich habs oft genug gehabt und herauszufinden wo der fehler lag war tatsächlich die Suche nach der Heunadel.
Also was wir eigentlich damit sagen wollen ist:
Her mit den letzten 10 - 20 Zeilen des betreffenden Skripts! :D
may Dawn Rise Again, Onyxx
Das ist ja das Problem. Ich weiss nicht welcher Script fehlerhaft ist!. Alle möglichen die es sein könnten hab ich überprüft aber in der angegebenen Zeile wurde nie was von mir verändert!
Dann stell beim ZSpy das Anzeigeparameter auf "Alles" und schau dann nach welches script er zuletzt geöffnet hat, da hängt der Fehler.
Grüße,
Talvar
Sektenspinner
02.09.2005, 07:16
Zeigt er bei G2 nicht an ;)
Das gibt nur bei G1.
Das einzige was er angibt ist das er die Ouinfo öffnet. Da dadurch kann man erkennt ob gerade Dialoge geparsed werden.
Und er gibt an, wenn ein File schon geparsed wurde.
Und das ist genau das Prinzip was sich meine src, die Rolus gelinkt hat zu nutze macht.
Ich denke damit kannst du die Datei herausfinden, oder zumindest eingrenzen wo sie sein könnte.
Also da dann einfach deine Datei in Gothic.src umbenennen und die alte rausverschieben?
Und wie schalte ich die ganzen Info Meldungen ab?
[BSS]Mark
02.09.2005, 12:56
Ich hatte den Fehler auch schonmal und da war es so, dass bei mir im Script die letzten Zeilen gelöscht wurden (In denen nichts stand! Aber die müssen trotzdem existent sein!!!)
Das wurde zwar schon geschrieben, aber ich kenn das ja, dass man so Zitate ganz oft überliest;)
@HCI:
Oben "Options" dann "Logging". Dort kannste das feststellen.
So hab das hingekriegt, aber aus den Meldungen werd ich nicht schlau. Wenn ihr mir helft habt ihr meine ewige Dankbarkeit *gg*
[w] 00:02 Warn: 0 B: GOTHIC: Start of gothic failed before. .... <zzBert.cpp,#146>
[w] 00:02 Warn: 0 B: GOTHIC: Abnormal exit of gothic detected. .... <zzBert.cpp,#152>
[w] 00:02 Warn: 0 N: Force Initializing VDFS after Crash. .... <zzBert.cpp,#163>
[w] 02:03 Warn: 0 X: XD3D_InitPerDX: Can't initialize with 32 bit depth buffer, trying 24 bit ... .... <zRndD3D_Init.cpp,#384>
[w] 02:04 Warn: 0 X: XD3D_InitPerDX: Can't initialize with 24 bit depth buffer, trying default ... .... <zRndD3D_Init.cpp,#389>
[w] 02:06 Warn: 0 D: expected entry not found: rangeMax .... <zArchiverGeneric.cpp,#1354>
[w] 02:06 Warn: 0 D: expected entry not found: fadeScale .... <zArchiverGeneric.cpp,#1354>
[w] 02:06 Warn: 0 D: expected entry not found: rangeMax .... <zArchiverGeneric.cpp,#1354>
[w] 02:06 Warn: 0 D: expected entry not found: fadeScale .... <zArchiverGeneric.cpp,#1354>
[w] 02:06 Warn: 0 D: expected entry not found: fadeScale .... <zArchiverGeneric.cpp,#1354>
[w] 02:06 Warn: 0 D: z3d(zCMesh::Load): Could not load Mesh: STARGATE_EDGES.3DS .... <zMesh.cpp,#436>
[w] 02:06 Warn: 0 D: z3d(zCMesh::Load): Could not load Mesh: STARGATE_EDGES.3DS .... <zMesh.cpp,#436>
[w] 02:06 Warn: 0 D: z3d(zCMesh::Load): Could not load Mesh: STARGATE_EDGES.3DS .... <zMesh.cpp,#436>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\_INTERN\CONSTANTS.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\_INTERN\CLASSES.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\AI\AI_INTERN\AI_CONSTANTS.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\AI\AI_INTERN\BODYSTATES.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\AI\AI_INTERN\FOCUS.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\AI\AI_INTERN\NPC_SETTOMAD.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\AI\AI_INTERN\SPECIES.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\AI\AI_INTERN\PRINTDEBUG.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\AI\AI_INTERN\PRINTPLUS.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\EVENTS\B_AWAKE_STONEGUARDIAN.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\LOG_ENTRIES\LOG_CONSTANTS_HOSHI.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\LOG_ENTRIES\LOG_CONSTANTS_MATTES.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\LOG_ENTRIES\LOG_CONSTANTS_NOTES.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\LOG_ENTRIES\LOG_CONSTANTS_YOLY.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\XP_CONSTANTS.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\STORY_GLOBALS.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\NPC_GLOBALS.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\SVM.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\TEXT.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\B_STORY\C_NPCISINQUARTER.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\B_STORY\C_DIEGOTOOFAR.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\B_STORY\B_ADDFIGHTSKILL.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\B_STORY\B_RAISEFIGHTTALENT.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\NPC_SCRIPTS\B_SETFIGHTSKILLS.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\B_STORY\B_RAISEATTRIBUTE.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\B_STORY\B_LOGENTRY.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\B_STORY\B_GETDAYPLUS.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\B_STORY\B_BLESSATTRIBUTE.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\B_STORY\B_STARTOTHERROUTINE.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\B_CONTENT\B_RANGERMEETING.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\B_CONTENT\B_SCOBSESSION.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\B_CONTENT\B_EXTRO_AVI.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\B_CONTENT\B_LIESELMAEH.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\B_CONTENT\B_IRRLICHTBEEP.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\B_CONTENT\B_GREG_COMESTODEXTER.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\B_CONTENT\B_UPGRADE_HERO_HACKCHANCE.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\B_CONTENT\B_COUNTCANYONRAZOR.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\B_CONTENT\B_MALCOMEXIDENT.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\B_CONTENT\C_ARTEFAKTVALUES.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\DIALOG_MOBSIS\B_PLAYERMAP.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\AI\HUMAN\B_HUMAN\B_SAY.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\AI\HUMAN\B_HUMAN\B_SAY_OVERLAY.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\LOG_ENTRIES\B_CLOSETOPIC.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\LOG_ENTRIES\B_CLOSETOPICS_HOSHI.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\LOG_ENTRIES\B_CLOSETOPICS_MATTES.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\LOG_ENTRIES\B_CLOSETOPICS_YOLY.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\LOG_ENTRIES\B_CHECKLOG.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\B_STORY\B_GIVEPLAYERXP.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\B_CONTENT\B_SCUSESRAKE.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\B_STORY\B_KILLNPC.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\B_STORY\B_REMOVENPC.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\B_CONTENT\B_REMOVEQUARHODRON.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\STORY\B_CONTENT\B_PLAYERFINDITEM.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\ITEMS\TUNING_ADDON_BELIARSWEAPONS.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\ITEMS\TUNING_MELEE_WEAPONS.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\ITEMS\TUNING_RANGED_WEAPONS.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\ITEMS\EINHAND_EQUIPBONUS.D ( File already parsed ) .... <zParser.cpp,#784>
[w] 02:32 Warn: 0 U: PAR: Ignoring CONTENT\ITEMS\ZWEIHAND_EQUIPBONUS.D ( File already parsed ) .... <zParser.cpp,#784>
[F] 02:33 Fatal:-1 U: PAR: Unexpected End of File. ( line 522 ) .... <zParser.cpp,#599>
[w] 02:33 Warn: 0 X: XD3D_InitPerDX: Can't initialize with 32 bit depth buffer, trying 24 bit ... .... <zRndD3D_Init.cpp,#384>
[w] 02:33 Warn: 0 X: XD3D_InitPerDX: Can't initialize with 24 bit depth buffer, trying default ... .... <zRndD3D_Init.cpp,#389>
[w] 02:42 Warn: 0 X: [RND3D-Destructor]: Can't uninitialize D3DX Utility Library ! Error: D3DXERR_D3DXNOTSTARTEDYET .... <zRndD3D.h,#127>
Füge am Ende der [gdata]/Scripts/Content/Items/Zweihand_EquipBonus.d
/* THE END */ hinzu (nur um sicher zu gehen, dass die Datei nicht mit einem einzeiligen Kommentar oder einer Anweisung endet).
Hat leider nichts geholfen :(
Sektenspinner
02.09.2005, 13:29
Nope falsche Datei. Zweihand Equip Bonus wurde ja schon erfolgreich und ohne Probleme geparsed.
Nach
ITEMS\Zweihand_EquipBonus.d
steht folgendes in der src:
ITEMS\IT_*.d
Das heißt in einem der Item-Scripte liegt der Fehler. Du musst nur noch das raussuchen, was ungefähr 522 zeilen hat.
Du bist genau über die zwei Schwachstellen gestoßen die meine src hat :D
1.) Wenn durch einen Error abgebrochen wird (was selten vorkommt) dann kann die Datei danach natürlich nicht nochmal ingoriert werden (das sie ja nicht mal einmal vollständig geparsed wurde)
2.) Du kannst das nicht auf eine Datei eingrenzen, da mit einem Eintrag in der src mehrere Dateien angesteuert werden.
Aber ich denke die entsprechende Datei sollte dank Zeilenangabe trotzdem recht schnell ausfindig gemacht worden sein. ;)
OK, ...
(wird etwas länger...)
Installation:
- Lade Dir die GothicTools 2.1 herunter
( http://killer-xxx.nm.ru/Files/GothicToolsV2_1.rar )
- Entpacke den Inhalt irgendwo ( ab sofort [gtools] )
- Verschiebe die [gtools]/GothicSourcerV2_1.exe nach [gtools]/System/
- Schreibe Dir eine [gtools]/System/_compile_gothic.bat mit folgendem Inhalt
@echo off
start /wait GothicSourcerV2_1.exe -zlog:10,s -zfile:gothic -zcomp:1,0 -zgame:1
pause
Kompilieren:
- Kopiere die Skripte nach [gtools]/_work/Data/Scripts
- starte die [gtools]/System/zSpy.exe !
- Führe die [gtools]/System/_compile_gothic.bat aus
Fehlermeldungen erscheinen im zSpy...
ps: Übersetzung der russischen Dokumentation auf Anfrage :)
Ich danke euch :)
Der Fehler war ein vergessenes " in einer description -.-
Das hätte ich wohl nicht so schnell gefunden
noch ein Problem. Hab schon mit anderen nachgeschaut aber nichts gefunden.
// ************************************************************
// Erzbaron
// ************************************************************
INSTANCE DIA_Erzbaron (C_INFO)
{
npc = PC_Fighter_OW;
nr = 1;
condition = DIA_Erzbaron_Condition;
information = DIA_Erzbaron_Info;
permanent = FALSE;
important = TRUE;
};
FUNC INT DIA_Erzbaron_Condition()
{
if Npc_HasEquippedArmor (other, itar_orebaron_addon)
{
return TRUE;
};
};
FUNC VOID DIA_Erzbaron_Info()
{
AI_Output (self ,other,"DIA_Erzbaron_12_01");//Scar!!!
AI_Output (self ,other,"DIA_Erzbaron_12_02");//Du Drecksau lebst? Ich mach dich kalt!
AI_Output (other ,self,"DIA_Erzbaron_12_03");//Hey bleib ruhig Kumpel, ich bins nur!
AI_Output (self ,other,"DIA_Erzbaron_12_04");//Das war knapp. Hätte dich jetzt fast kalt gemacht. Wo hast du denn die Rüstung her?
AI_Output (other ,self,"DIA_Erzbaron_12_05");//Von Diego. Er hat sie gefunden und mir gegeben. Er sagte auch, dass ich dich mal damit besuchen soll (grinst).
AI_Output (self ,other,"DIA_Erzbaron_12_06");//Ach so ist das. Da werd ich wohl mal ein paar Takte mit unserem Freund reden.
};
In der Zeile mit dem if Befehl vermisst er eine ")". Versteh das nicht
Laut Skripten wie C_PlayerIsFakeBandit.d wird so abgefragt, ob jemand ne Rüstung trägt:
if (Hlp_IsItem (itm, itar_orebaron_addon) == TRUE))
sonst würde ich das ausprobieren:
if (Npc_HasEquippedArmor (other, itar_orebaron_addon))
das will einfach nicht hinhaun. Hab es jetzt doch nur über den Besitz des Items geregelt, was aber sehr suboptimal ist
Sektenspinner
02.09.2005, 19:36
func int Npc_HasEquippedArmor(var c_npc self)
fragt ab OB ein NPC eine Rüstung trägt. Nachdem du den NPC angegeben hast hast du aber munter weitergeschrieben ohne die Klammer zu schließen, deshalb der Fehler.
Die Funktion eignet sich nicht dafür festzustellen welche Rüstung ein NPC trägt.
func c_item Npc_GetEquippedArmor(var c_npc self)
ist dafür zuständig. mit ihr kannst du eine C_Item Variable befüllen. Also, erst Variable einführen, dann befüllen und dann schauen ob das drin ist was du suchst:
FUNC int C_HasPlayerGomezPhatArmor()
{
var C_Item armor; //Variable einführen
armor = Npc_GetEquippedArmor (hero);
if (Hlp_IsItem (armor, itar_orebaron_addon) == TRUE)
{
return TRUE;
};
return FALSE;
};
Powered by vBulletin® Version 4.2.2 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.