Portal-Zone Gothic-Zone Gothic II-Zone Gothic 3-Zone Gothic 4-Zone Modifikationen-Zone Download-Zone Foren-Zone RPG-Zone Almanach-Zone Spirit of Gothic

 

Seite 18 von 21 « Erste ... 7111415161718192021 Letzte »
Ergebnis 341 bis 360 von 410
  1. Homepage besuchen Beiträge anzeigen #341
    Teutonic Team Avatar von Bonne6
    Registriert seit
    Jun 2004
    Ort
    Erlangen
    Beiträge
    10.844
     
    Bonne6 ist offline
    Zitat Zitat von Lehona Beitrag anzeigen
    Was meinst du mit "MouseOvers an die Auflösung anpassen"? Vielleicht kann ich dir da helfen.
    Man kann im Statusscreen über einige neue Einträge und irgendwann auch über Sachen wie Stärke usw. mit der Maus drüber und erhält dann Infos dazu, die an den Cursor oder so gepinnt werden (momentan werden die an den Cursor gehängt, ist aber noch nicht ganz optimal, aber das sind Kleinigkeiten). Aktuell ist das System allerdings auf eine Auflösung optimiert und skaliert nicht ordentlich mit. Ist ja ein bisschen tricky, weil der Statusscreen und die Positionen darin immer gleich groß sind und ich hab bisher noch keine Formel gefunden, um das ordentlich zu berechnen, hab allerdings auch noch nicht viel gesucht, weil ja jetzt die letzten zwei Monate die Maus eh nicht mehr funktioniert hat ^^

  2. Beiträge anzeigen #342
    now also in your universe  Avatar von Milky-Way
    Registriert seit
    Jun 2007
    Beiträge
    11.769
     
    Milky-Way ist offline
    Dann würde ich an deiner Stelle mit absoluten Werten rechnen. Also absolute Höhe des jeweiligen Spielers durch 2 um in die Mitte zu kommen minus halbe Höhe des Charakter-Fensters um an dessen oberen Rand zu kommen. Von dort wiederum absolute Abstände für die einzelnen Elemente. Das sollte dann ja eigentlich von der Auflösung unabhängig sein.

  3. Homepage besuchen Beiträge anzeigen #343
    Teutonic Team Avatar von Bonne6
    Registriert seit
    Jun 2004
    Ort
    Erlangen
    Beiträge
    10.844
     
    Bonne6 ist offline
    Ja, genau, irgendwas in die Richtung, hab mir das grob überlegt und vorhin auch gleich ein wenig mit Lehona drüber gesprochen und werde mir das morgen dann mal ansehen, wird dann schon hinhauen.

  4. Beiträge anzeigen #344
    Demigoddess
    Registriert seit
    Jul 2007
    Beiträge
    9.785
     
    Lehona ist offline
    Zitat Zitat von Milky-Way Beitrag anzeigen
    Dann würde ich an deiner Stelle mit absoluten Werten rechnen. Also absolute Höhe des jeweiligen Spielers durch 2 um in die Mitte zu kommen minus halbe Höhe des Charakter-Fensters um an dessen oberen Rand zu kommen. Von dort wiederum absolute Abstände für die einzelnen Elemente. Das sollte dann ja eigentlich von der Auflösung unabhängig sein.
    Die linke Seite des StatusScreens(in virtuellen Koordinaten) lässt sich sehr einfach durch 1<<13>>1 - Print_ToVirtual(X_StatusScreen, PS_X)/2 berechnen, wobei man da natürlich noch rausfinden muss, wie groß der Statusscreen in absoluten Pixeln ist. Und dann kann man, wie von dir ja auch erwähnt, einfach mit absoluten (bzw. reellen) Offsets rechnen.

    Das hatte ich Bonne6 so auch mitgeteilt, aber der scheint ein wenig an Müdigkeit zu leiden

  5. Homepage besuchen Beiträge anzeigen #345
    Teutonic Team Avatar von Bonne6
    Registriert seit
    Jun 2004
    Ort
    Erlangen
    Beiträge
    10.844
     
    Bonne6 ist offline
    Zitat Zitat von Lehona Beitrag anzeigen
    Die linke Seite des StatusScreens(in virtuellen Koordinaten) lässt sich sehr einfach durch 1<<13>>1 - Print_ToVirtual(X_StatusScreen, PS_X)/2 berechnen, wobei man da natürlich noch rausfinden muss, wie groß der Statusscreen in absoluten Pixeln ist. Und dann kann man, wie von dir ja auch erwähnt, einfach mit absoluten (bzw. reellen) Offsets rechnen.

    Das hatte ich Bonne6 so auch mitgeteilt, aber der scheint ein wenig an Müdigkeit zu leiden
    Jaja, deswegen mach ich die Umsetzung ja auch erst morgen, sonst pfusch ich sicher nur rum

  6. Homepage besuchen Beiträge anzeigen #346
    Teutonic Team Avatar von Bonne6
    Registriert seit
    Jun 2004
    Ort
    Erlangen
    Beiträge
    10.844
     
    Bonne6 ist offline
    Erstes größeres Problem mit der Zwischenversion: Spielstände damit lassen sich zumindest irgendwann offenbar nicht mehr laden:

    zSpy1:

    Code:
    [i] 00:50 Info:  3 B:     ---------- 98% ---------- .... <zViewProgressbar.cpp,#142>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 00:50 Info:  5 D:     ARC: .. Closing (1 objects) .... <zError.cpp,#465>
    [i] 00:50 Info:  5 C:     Shutting down MSS .... <zSndMss.cpp,#629>
    [i] 00:50 Info:  5 X:     EmergencyExit: Releasing all DirectX-Objects ... .... <zRndD3D_Render.cpp,#283>
    [i] 00:50 Info:  5 X:     EmergencyExit: D3DXUninitialize done .... <zRndD3D_Render.cpp,#301>
    [w] 00:50 Warn:  0 X:     [RND3D-Destructor]: Can't uninitialize D3DX Utility Library ! Error: D3DXERR_D3DXNOTSTARTEDYET .... <zRndD3D.h,#127>
    [i] 00:50 Info:  5 X:     [RND3D-Destructor]: D3DXUninitialize done .... <zRndD3D_Render.cpp,#309>
    [w] 00:51 Warn:  0 ==    ===================================== UNHANDLED EXCEPTION OCCURED ====================================================== .... <zError.cpp,#474>
    [w] 00:51 Warn:  0 ==    ============================================ CRASH INFOS: ============================================================== .... <zError.cpp,#474>
    [w] 00:51 Warn:  0 Go    thic II - 2.6 (fix), Parser Version: 50 .... <zError.cpp,#474>
    [w] 00:51 Warn:  0 Us    er:  Daniel,  CPUType: 586,  Mem: 0 MB total, 0 MB free .... <zError.cpp,#474>
    [w] 00:51 Warn:  0 St    artup Options: .... <zWin32.cpp,#2976>
    [w] 00:51 Warn:  0 -g    ame:gomon.ini -zreparse -zwindow -zlog:5,s
    
     .... <zWin32.cpp,#2977>
    [w] 00:51 Warn:  0 ==    ============================================= CALLSTACK : ============================================================== .... <zError.cpp,#474>
    [w] 00:51 Warn:  0 00    23:00791B55 (0x00002AB7 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+501 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 1369+19 byte(s) .... <zError.cpp,#474>
    [w] 00:51 Warn:  0 00    23:00792504 (0x0000B015 0x134512B8 0x00AB4118 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x00011A2F 0x00005D10 0x0082E6F0 0x0F8321D0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792CBF (0x00AB40C0 0x00005D10 0x008316D4 0x11BAC034) Gothic2.exe, zCParser::CallFunc()+719 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 15510023:00503270 (0x00400000 0x00000000 0x015333E7 0x00000001) Gothic2.exe, HandledWinMain()+928 byte(s), P:\dev\g2addon\release\ZenGin\_carsten\zWin32.cpp, line 1169 .... <zError.cpp,#474>
    [w] 00:51 Warn:  0 00    23:00792504 (0x00011A2F 0x00005D10 0x0082E6F0 0x0F8321D0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792CBF (0x00AB40C0 0x00005D10 0x008316D4 0x11BAC034) Gothic2.exe, zCParser::CallFunc()+719 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 15510023:00503270 (0x00400000 0x00000000 0x015333E7 0x00000001) Gothic2.exe, HandledWinMain()+928 byte(s), P:\dev\g2addon\release\ZenGin\_carsten\zWin32.cpp, line 1169 .... <zError.cpp,#474>
    [w] 00:51 Warn:  0 00    23:00792CBF (0x00AB40C0 0x00005D10 0x008316D4 0x11BAC034) Gothic2.exe, zCParser::CallFunc()+719 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 15510023:00503270 (0x00400000 0x00000000 0x015333E7 0x00000001) Gothic2.exe, HandledWinMain()+928 byte(s), P:\dev\g2addon\release\ZenGin\_carsten\zWin32.cpp, line 1169 .... <zError.cpp,#474>
    [w] 00:51 Warn:  0 00    23:006C20BF (0x0082E6F0 0x0135FCA8 0x02F80304 0x00000001) Gothic2.exe, oCGame::CallScriptInit()+351 byte(s), P:\dev\g2addon\release\Gothic\_ulf\oGame.cpp, line 886 .... <zError.cpp,#474>
    [w] 00:51 Warn:  0 00    23:006C6D9F (0xFFFFFFFF 0x00000001 0x0135FCA8 0x00000001) Gothic2.exe, oCGame::LoadSavegame()+1487 byte(s), P:\dev\g2addon\release\Gothic\_ulf\oGame.cpp, line 2274 .... <zError.cpp,#474>
    [w] 00:51 Warn:  0 00    23:0042A282 (0x00000001 0x0082E6F0 0x00000000 0x0135FCA8) Gothic2.exe, CGameManager::Read_Savegame()+578 byte(s), P:\dev\g2addon\release\Gothic\_bert\oGameManager.cpp, line 1557 .... <zError.cpp,#474>
    [w] 00:51 Warn:  0 00    23:00429D02 (0x00000000 0x00400000 0x015333E7 0x0135FECC) Gothic2.exe, CGameManager::Menu()+2610 byte(s), P:\dev\g2addon\release\Gothic\_bert\oGameManager.cpp, line 1492 .... <zError.cpp,#474>
    [w] 00:51 Warn:  0 00    23:00425C35 (0x0082F0EC 0x00000000 0x002C0772 0x0F8321D0) Gothic2.exe, CGameManager::Run()+1029 byte(s), P:\dev\g2addon\release\Gothic\_bert\oGameManager.cpp, line 713 .... <zError.cpp,#474>
    [w] 00:51 Warn:  0 00    23:0078188B (0x0000002C 0x0060C1ED 0x0000002D 0x00000000) Gothic2.exe, MainProg()+75 byte(s), P:\dev\g2addon\release\Gothic\_ulf\Phoenix.cpp, line 111 .... <zError.cpp,#474>
    [w] 00:51 Warn:  0 00    23:00503270 (0x00400000 0x00000000 0x015333E7 0x00000001) Gothic2.exe, HandledWinMain()+928 byte(s), P:\dev\g2addon\release\ZenGin\_carsten\zWin32.cpp, line 1169 .... <zError.cpp,#474>
    [w] 00:51 Warn:  0 00    23:00502DFD (0x0135FED0 0x00000000 0x015333E7 0x00000001) Gothic2.exe, WinMain()+141 byte(s), P:\dev\g2addon\release\ZenGin\_carsten\zWin32.cpp, line 1054+17 byte(s) .... <zError.cpp,#474>
    [w] 00:51 Warn:  0 00    23:007D43F8 (0x00000004 0x0000FFFF 0x000000B8 0x00000000) Gothic2.exe, WinMainCRTStartup()+224 byte(s) .... <zError.cpp,#474>
    [w] 00:51 Warn:  0 ==    ===================================== UNHANDLED EXCEPTION OCCURED ====================================================== .... <zError.cpp,#474>
    [w] 00:55 Warn:  0 B:     GMAN: gameSession is existing. Call CGameManager::Done() before! .... <oGameManager.cpp,#375>
    [i] 00:55 Info:  3 B:     VP: zBinkPlayer deinitialized .... <zBinkPlayer.cpp,#62>
    [i] 00:55 Info:  3 D:     MDL: Loading Model-Mesh: HUM_BODY_NAKED0.mdm .... <zModelProto.cpp,#5333>
    [i] 00:55 Info:  3 D:     MDL: Loading Model-Mesh: HUM_BODY_BABE0.mdm .... <zModelProto.cpp,#5333>
    [i] 00:55 Info:  3 D:     MDL: Loading Model-Mesh: ARMOR_VLK_H.mdm .... <zModelProto.cpp,#5333>
    [i] 00:55 Info:  5 D:     MDL: Applying mds-overlay: HUMANS_TIRED .... <zModel.cpp,#1417>
    [i] 00:55 Info:  2 N:     MSB: Loading Model-Script (binary) 'GIANT_RAT.MDS' .... <zModelProto.cpp,#4849>
    [i] 00:55 Info:  5 D:       MDL: Loading Model-Hierarchy: GIANT_RAT.MDH .... <zModelProto.cpp,#1665>
    [w] 00:59 Warn:  0 AS      SERTION failed: refCtr>=-1 in file P:\dev\g2addon\release\ZenGin\_dieter\zObject.cpp, Line: 132, Reason: D: OBJ: deleting an already deleted zCObject ?! .... <zError.cpp,#474>
    [w] 00:59 Warn:  0 Ca      ll stack:  .... <zError.cpp,#474>
    [w] 00:59 Warn:  0 Go      thic II - 2.6 (fix), Parser Version: 50 .... <zError.cpp,#474>
    [w] 00:59 Warn:  0 Us      er:  Daniel,  CPUType: 586,  Mem: 0 MB total, 0 MB free .... <zError.cpp,#474>
    [w] 00:59 Warn:  0 ST      ART .... <zError.cpp,#474>
    [w] 00:59 Warn:  0 00      23:0050908B (0x008A4B30 0x008A4B78 0x00000084 0x0135D84C) Gothic2.exe, ASSERT_FAIL()+251 byte(s), P:\dev\g2addon\release\ZenGin\_carsten\zWin32.cpp, line 3368+12 byte(s) .... <zError.cpp,#474>
    [w] 00:59 Warn:  0 00      23:005A8D7F (0x0F8321D0 0x005DE871 0x00000001 0x0F8321D0) Gothic2.exe, zCObject::~zCObject()+303 byte(s), P:\dev\g2addon\release\ZenGin\_dieter\zObject.cpp, line 132+102 byte(s) .... <zError.cpp,#474>
    [w] 00:59 Warn:  0 00      23:00401EF8 (0x00000001 0x0F8321D0 0x0135ECB8 0x005DE830) Gothic2.exe, zCObject::`vector deleting destructor'()+8 byte(s), ..\\ZenGin\_dieter\zObject.h, line 311+22 byte(s) .... <zError.cpp,#474>
    [w] 00:59 Warn:  0 00      23:005DE871 (0x00000000 0x007D6207 0x00876140 0x00000000) Gothic2.exe, zCSession::Done()+33 byte(s), P:\dev\g2addon\release\ZenGin\_dieter\zSession.cpp, line 82+29 byte(s) .... <zError.cpp,#474>
    [w] 00:59 Warn:  0 00      23:00807FE8 (0xFFFFFFFF 0x00819A63 0x00000002 0x00819A6B) Gothic2.exe, SetFileAttributesA()+148516 byte(s)0023:00819A5B (0x00000000 0x00000000 0x00000000 0x00000000) Gothic2.exe, SetFileAttributesA()+220823 byte(s) .... <zError.cpp,#474>
    [w] 00:59 Warn:  0 00      23:00819A5B (0x00000000 0x00000000 0x00000000 0x00000000) Gothic2.exe, SetFileAttributesA()+220823 byte(s) .... <zError.cpp,#474>
    zSpy2:

    Code:
    [i] 01:05 Info:  3 B:     ---------- 98% ---------- .... <zViewProgressbar.cpp,#142>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_NPC.NAME .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  2 U:    PAR: Adressing an empty Instance : C_INFO.DESCRIPTION .... <zParser_Symbol.cpp,#365>
    [i] 01:05 Info:  5 D:     ARC: .. Closing (1 objects) .... <zError.cpp,#465>
    [i] 01:05 Info: 10 B:     zDSK: Closed file SAVEDAT.SAV .... <zDisk.cpp,#616>
    [i] 01:05 Info:  5 U:    Skript: Warning: STR_SubStr: The end of the desired substring exceeds the end of the string. .... <zError.cpp,#465>
    [i] 01:05 Info:  5 C:     Shutting down MSS .... <zSndMss.cpp,#629>
    [i] 01:05 Info: 10 C:     done .... <zSndMss.cpp,#652>
    [i] 01:05 Info:  5 X:     EmergencyExit: Releasing all DirectX-Objects ... .... <zRndD3D_Render.cpp,#283>
    [i] 01:05 Info:  5 X:     EmergencyExit: D3DXUninitialize done .... <zRndD3D_Render.cpp,#301>
    [w] 01:05 Warn:  0 X:     [RND3D-Destructor]: Can't uninitialize D3DX Utility Library ! Error: D3DXERR_D3DXNOTSTARTEDYET .... <zRndD3D.h,#127>
    [i] 01:05 Info:  5 X:     [RND3D-Destructor]: D3DXUninitialize done .... <zRndD3D_Render.cpp,#309>
    [i] 01:06 Info:  8 C:     WM_ACTIVATE received .... <zWin32.cpp,#1720>
    [i] 01:06 Info:  8 C:     WM_ACTIVATEAPP received .... <zWin32.cpp,#1738>
    [i] 01:06 Info:  8 C:     WM_ACTIVATEAPP received .... <zWin32.cpp,#1738>
    [w] 01:06 Warn:  0 ==    ===================================== UNHANDLED EXCEPTION OCCURED ====================================================== .... <zError.cpp,#474>
    [w] 01:06 Warn:  0 ==    ============================================ CRASH INFOS: ============================================================== .... <zError.cpp,#474>
    [w] 01:06 Warn:  0 Go    thic II - 2.6 (fix), Parser Version: 50 .... <zError.cpp,#474>
    [w] 01:06 Warn:  0 Us    er:  Daniel,  CPUType: 586,  Mem: 0 MB total, 0 MB free .... <zError.cpp,#474>
    [w] 01:06 Warn:  0 St    artup Options: .... <zWin32.cpp,#2976>
    [w] 01:06 Warn:  0 -g    ame:gomon.ini -zreparse -zwindow -zlog:10,s
    
     .... <zWin32.cpp,#2977>
    [w] 01:06 Warn:  0 ==    ============================================= CALLSTACK : ============================================================== .... <zError.cpp,#474>
    [w] 01:06 Warn:  0 00    23:004A5743 (0x00AB4108 0x00000000 0x00AB40C0 0x00003EFE) Gothic2.exe, zCArray<zCVob *>::DeleteList()+3 byte(s), ..\\ZenGin\_dieter\zContainer.h, line 730 .... <zError.cpp,#474>
    [w] 01:06 Warn:  0 00    23:00792568 (0x157802DD 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+3080 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14330023:00792504 (0x00003C99 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x00003EA7 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x0000428E 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x0000434C 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x00004378 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x0000466B 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x0000810B 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x00011013 0x134112B8 0x00AB4118 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x00011A2F 0x00005D10 0x0082E6F0 0x04D1A1D0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792CBF (0x00AB40C0 0x00005D10 0x008316D4 0x0F8F4034) Gothic2.exe, zCParser::CallFunc()+719 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 15510023:00503270 (0x00400000 0x00000000 0x014833E7 0x00000001) Gothic2.exe, HandledWinMain()+928 byte(s), P:\dev\g2addon\release\ZenGin\_carsten\zWin32.cpp, line 1169 .... <zError.cpp,#474>
    [w] 01:06 Warn:  0 00    23:00792504 (0x00003C99 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x00003EA7 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x0000428E 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x0000434C 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x00004378 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x0000466B 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x0000810B 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x00011013 0x134112B8 0x00AB4118 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x00011A2F 0x00005D10 0x0082E6F0 0x04D1A1D0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792CBF (0x00AB40C0 0x00005D10 0x008316D4 0x0F8F4034) Gothic2.exe, zCParser::CallFunc()+719 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 15510023:00503270 (0x00400000 0x00000000 0x014833E7 0x00000001) Gothic2.exe, HandledWinMain()+928 byte(s), P:\dev\g2addon\release\ZenGin\_carsten\zWin32.cpp, line 1169 .... <zError.cpp,#474>
    [w] 01:06 Warn:  0 00    23:00792504 (0x00003EA7 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x0000428E 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x0000434C 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x00004378 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x0000466B 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x0000810B 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x00011013 0x134112B8 0x00AB4118 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x00011A2F 0x00005D10 0x0082E6F0 0x04D1A1D0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792CBF (0x00AB40C0 0x00005D10 0x008316D4 0x0F8F4034) Gothic2.exe, zCParser::CallFunc()+719 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 15510023:00503270 (0x00400000 0x00000000 0x014833E7 0x00000001) Gothic2.exe, HandledWinMain()+928 byte(s), P:\dev\g2addon\release\ZenGin\_carsten\zWin32.cpp, line 1169 .... <zError.cpp,#474>
    [w] 01:06 Warn:  0 00    23:00792504 (0x0000428E 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x0000434C 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x00004378 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x0000466B 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x0000810B 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x00011013 0x134112B8 0x00AB4118 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x00011A2F 0x00005D10 0x0082E6F0 0x04D1A1D0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792CBF (0x00AB40C0 0x00005D10 0x008316D4 0x0F8F4034) Gothic2.exe, zCParser::CallFunc()+719 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 15510023:00503270 (0x00400000 0x00000000 0x014833E7 0x00000001) Gothic2.exe, HandledWinMain()+928 byte(s), P:\dev\g2addon\release\ZenGin\_carsten\zWin32.cpp, line 1169 .... <zError.cpp,#474>
    [w] 01:06 Warn:  0 00    23:00792504 (0x0000434C 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x00004378 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x0000466B 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x0000810B 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x00011013 0x134112B8 0x00AB4118 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x00011A2F 0x00005D10 0x0082E6F0 0x04D1A1D0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792CBF (0x00AB40C0 0x00005D10 0x008316D4 0x0F8F4034) Gothic2.exe, zCParser::CallFunc()+719 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 15510023:00503270 (0x00400000 0x00000000 0x014833E7 0x00000001) Gothic2.exe, HandledWinMain()+928 byte(s), P:\dev\g2addon\release\ZenGin\_carsten\zWin32.cpp, line 1169 .... <zError.cpp,#474>
    [w] 01:06 Warn:  0 00    23:00792504 (0x00004378 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x0000466B 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x0000810B 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x00011013 0x134112B8 0x00AB4118 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x00011A2F 0x00005D10 0x0082E6F0 0x04D1A1D0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792CBF (0x00AB40C0 0x00005D10 0x008316D4 0x0F8F4034) Gothic2.exe, zCParser::CallFunc()+719 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 15510023:00503270 (0x00400000 0x00000000 0x014833E7 0x00000001) Gothic2.exe, HandledWinMain()+928 byte(s), P:\dev\g2addon\release\ZenGin\_carsten\zWin32.cpp, line 1169 .... <zError.cpp,#474>
    [w] 01:06 Warn:  0 00    23:00792504 (0x0000466B 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x0000810B 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x00011013 0x134112B8 0x00AB4118 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x00011A2F 0x00005D10 0x0082E6F0 0x04D1A1D0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792CBF (0x00AB40C0 0x00005D10 0x008316D4 0x0F8F4034) Gothic2.exe, zCParser::CallFunc()+719 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 15510023:00503270 (0x00400000 0x00000000 0x014833E7 0x00000001) Gothic2.exe, HandledWinMain()+928 byte(s), P:\dev\g2addon\release\ZenGin\_carsten\zWin32.cpp, line 1169 .... <zError.cpp,#474>
    [w] 01:06 Warn:  0 00    23:00792504 (0x0000810B 0x00AB4108 0x00000000 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x00011013 0x134112B8 0x00AB4118 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x00011A2F 0x00005D10 0x0082E6F0 0x04D1A1D0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792CBF (0x00AB40C0 0x00005D10 0x008316D4 0x0F8F4034) Gothic2.exe, zCParser::CallFunc()+719 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 15510023:00503270 (0x00400000 0x00000000 0x014833E7 0x00000001) Gothic2.exe, HandledWinMain()+928 byte(s), P:\dev\g2addon\release\ZenGin\_carsten\zWin32.cpp, line 1169 .... <zError.cpp,#474>
    [w] 01:06 Warn:  0 00    23:00792504 (0x00011013 0x134112B8 0x00AB4118 0x00AB40C0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792504 (0x00011A2F 0x00005D10 0x0082E6F0 0x04D1A1D0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792CBF (0x00AB40C0 0x00005D10 0x008316D4 0x0F8F4034) Gothic2.exe, zCParser::CallFunc()+719 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 15510023:00503270 (0x00400000 0x00000000 0x014833E7 0x00000001) Gothic2.exe, HandledWinMain()+928 byte(s), P:\dev\g2addon\release\ZenGin\_carsten\zWin32.cpp, line 1169 .... <zError.cpp,#474>
    [w] 01:06 Warn:  0 00    23:00792504 (0x00011A2F 0x00005D10 0x0082E6F0 0x04D1A1D0) Gothic2.exe, zCParser::DoStack()+2980 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 14150023:00792CBF (0x00AB40C0 0x00005D10 0x008316D4 0x0F8F4034) Gothic2.exe, zCParser::CallFunc()+719 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 15510023:00503270 (0x00400000 0x00000000 0x014833E7 0x00000001) Gothic2.exe, HandledWinMain()+928 byte(s), P:\dev\g2addon\release\ZenGin\_carsten\zWin32.cpp, line 1169 .... <zError.cpp,#474>
    [w] 01:06 Warn:  0 00    23:00792CBF (0x00AB40C0 0x00005D10 0x008316D4 0x0F8F4034) Gothic2.exe, zCParser::CallFunc()+719 byte(s), P:\dev\g2addon\release\ZenGin\_ulf\zParser.cpp, line 15510023:00503270 (0x00400000 0x00000000 0x014833E7 0x00000001) Gothic2.exe, HandledWinMain()+928 byte(s), P:\dev\g2addon\release\ZenGin\_carsten\zWin32.cpp, line 1169 .... <zError.cpp,#474>
    [w] 01:06 Warn:  0 00    23:006C20BF (0x0082E6F0 0x0135FCA8 0x03690304 0x00000001) Gothic2.exe, oCGame::CallScriptInit()+351 byte(s), P:\dev\g2addon\release\Gothic\_ulf\oGame.cpp, line 886 .... <zError.cpp,#474>
    [w] 01:06 Warn:  0 00    23:006C6D9F (0xFFFFFFFF 0x00000001 0x0135FCA8 0x00000001) Gothic2.exe, oCGame::LoadSavegame()+1487 byte(s), P:\dev\g2addon\release\Gothic\_ulf\oGame.cpp, line 2274 .... <zError.cpp,#474>
    [w] 01:06 Warn:  0 00    23:0042A282 (0x00000001 0x0082E6F0 0x00000000 0x0135FCA8) Gothic2.exe, CGameManager::Read_Savegame()+578 byte(s), P:\dev\g2addon\release\Gothic\_bert\oGameManager.cpp, line 1557 .... <zError.cpp,#474>
    [w] 01:06 Warn:  0 00    23:00429D02 (0x00000000 0x00400000 0x014833E7 0x0135FECC) Gothic2.exe, CGameManager::Menu()+2610 byte(s), P:\dev\g2addon\release\Gothic\_bert\oGameManager.cpp, line 1492 .... <zError.cpp,#474>
    [w] 01:06 Warn:  0 00    23:00425C35 (0x0082F0EC 0x00000000 0x00670496 0x04D1A1D0) Gothic2.exe, CGameManager::Run()+1029 byte(s), P:\dev\g2addon\release\Gothic\_bert\oGameManager.cpp, line 713 .... <zError.cpp,#474>
    [w] 01:06 Warn:  0 00    23:0078188B (0x0000002C 0x0061A5D5 0x0000002D 0x00000000) Gothic2.exe, MainProg()+75 byte(s), P:\dev\g2addon\release\Gothic\_ulf\Phoenix.cpp, line 111 .... <zError.cpp,#474>
    [w] 01:06 Warn:  0 00    23:00503270 (0x00400000 0x00000000 0x014833E7 0x00000001) Gothic2.exe, HandledWinMain()+928 byte(s), P:\dev\g2addon\release\ZenGin\_carsten\zWin32.cpp, line 1169 .... <zError.cpp,#474>
    [w] 01:06 Warn:  0 00    23:00502DFD (0x0135FED0 0x00000000 0x014833E7 0x00000001) Gothic2.exe, WinMain()+141 byte(s), P:\dev\g2addon\release\ZenGin\_carsten\zWin32.cpp, line 1054+17 byte(s) .... <zError.cpp,#474>
    [w] 01:06 Warn:  0 00    23:007D43F8 (0x00000004 0x0000FFFF 0x000000B8 0x00000000) Gothic2.exe, WinMainCRTStartup()+224 byte(s) .... <zError.cpp,#474>
    [w] 01:06 Warn:  0 ==    ===================================== UNHANDLED EXCEPTION OCCURED ====================================================== .... <zError.cpp,#474>
    [w] 01:16 Warn:  0 B:     GMAN: gameSession is existing. Call CGameManager::Done() before! .... <oGameManager.cpp,#375>
    [i] 01:16 Info:  3 B:     VP: zBinkPlayer deinitialized .... <zBinkPlayer.cpp,#62>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  3 D:     MDL: Loading Model-Mesh: HUM_BODY_NAKED0.mdm .... <zModelProto.cpp,#5333>
    [i] 01:16 Info: 10 B:       zDSK: Opened file HUM_BODY_NAKED0.MDM .... <zDisk.cpp,#556>
    [i] 01:16 Info: 10 B:       zDSK: Closed file HUM_BODY_NAKED0.MDM .... <zDisk.cpp,#616>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  3 D:     MDL: Loading Model-Mesh: HUM_BODY_BABE0.mdm .... <zModelProto.cpp,#5333>
    [i] 01:16 Info: 10 B:       zDSK: Opened file HUM_BODY_BABE0.MDM .... <zDisk.cpp,#556>
    [i] 01:16 Info: 10 B:       zDSK: Closed file HUM_BODY_BABE0.MDM .... <zDisk.cpp,#616>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  9 M:     Resizing SparseArray from 13 to 23 entries. .... <zSparseArray.cpp,#471>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  9 M:     Resizing SparseArray from 23 to 43 entries. .... <zSparseArray.cpp,#471>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  3 D:     MDL: Loading Model-Mesh: ARMOR_VLK_H.mdm .... <zModelProto.cpp,#5333>
    [i] 01:16 Info: 10 B:       zDSK: Opened file ARMOR_VLK_H.MDM .... <zDisk.cpp,#556>
    [i] 01:16 Info: 10 B:       zDSK: Closed file ARMOR_VLK_H.MDM .... <zDisk.cpp,#616>
    [i] 01:16 Info:  5 D:     MDL: Applying mds-overlay: HUMANS_TIRED .... <zModel.cpp,#1417>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  9 M:     Resizing SparseArray from 43 to 83 entries. .... <zSparseArray.cpp,#471>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:16 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:17 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:17 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:17 Info:  8 C:     MAG: destructed magbook .... <oMagic.cpp,#279>
    [i] 01:17 Info:  2 N:     MSB: Loading Model-Script (binary) 'GIANT_RAT.MDS' .... <zModelProto.cpp,#4849>
    [i] 01:17 Info: 10 B:       zDSK: Opened file GIANT_RAT.MSB .... <zDisk.cpp,#556>
    [i] 01:17 Info:  5 D:       MDL: Loading Model-Hierarchy: GIANT_RAT.MDH .... <zModelProto.cpp,#1665>
    [i] 01:17 Info: 10 B:       zDSK: Opened file GIANT_RAT.MDH .... <zDisk.cpp,#556>
    [i] 01:17 Info: 10 B:       zDSK: Closed file GIANT_RAT.MDH .... <zDisk.cpp,#616>
    [i] 01:17 Info: 10 B:       zDSK: Opened file GIANT_RAT-S_FISTRUN.MAN .... <zDisk.cpp,#556>
    [i] 01:17 Info: 10 B:       zDSK: Closed file GIANT_RAT-S_FISTRUN.MAN .... <zDisk.cpp,#616>
    [i] 01:17 Info: 10 B:       zDSK: Opened file GIANT_RAT-T_FISTRUN_2_FISTRUNL.MAN .... <zDisk.cpp,#556>
    [i] 01:17 Info: 10 B:       zDSK: Closed file GIANT_RAT-T_FISTRUN_2_FISTRUNL.MAN .... <zDisk.cpp,#616>
    [i] 01:17 Info: 10 B:       zDSK: Opened file GIANT_RAT-S_FISTRUNL.MAN .... <zDisk.cpp,#556>
    [i] 01:17 Info: 10 B:       zDSK: Closed file GIANT_RAT-S_FISTRUNL.MAN .... <zDisk.cpp,#616>
    [i] 01:20 Info: 10 B:       zDSK: Closed file GIANT_RAT.MSB .... <zDisk.cpp,#616>
    [i] 01:20 Info:  8 D:       WORLD: Disposing zCWorld.. .... <zWorld.cpp,#1674>
    [i] 01:20 Info:  8 B:         CS: Stopping all Cutscene  ...  .... <zCCsPlayer.cpp,#580>
    [i] 01:20 Info:  8 B:         CS: Stopping all Cutscene  ...  .... <zCCsPlayer.cpp,#580>
    [i] 01:20 Info: 10 C:         VIS: Spell kill: HEALTH_POTION ,ptr: 357938156 .... <oVisFx.cpp,#2614>
    [i] 01:20 Info: 10 C:         VIS: Spell delete: HEALTH_POTION ,ptr: 357938156 .... <oVisFx.cpp,#605>
    [i] 01:20 Info: 10 C:         VIS: Spell kill: ITEM_GLIMMER ,ptr: 357747956 .... <oVisFx.cpp,#2614>
    [i] 01:20 Info: 10 C:         VIS: Spell delete: ITEM_GLIMMER ,ptr: 357747956 .... <oVisFx.cpp,#605>
    [i] 01:20 Info: 10 C:         VIS: Spell kill: WEAK_GLIMMER ,ptr: 357751232 .... <oVisFx.cpp,#2614>
    [i] 01:20 Info: 10 C:         VIS: Spell delete: WEAK_GLIMMER ,ptr: 357751232 .... <oVisFx.cpp,#605>
    [i] 01:20 Info: 10 C:         VIS: Spell kill: HEALTH_POTION ,ptr: 357730124 .... <oVisFx.cpp,#2614>
    [i] 01:20 Info: 10 C:         VIS: Spell delete: HEALTH_POTION ,ptr: 357730124 .... <oVisFx.cpp,#605>
    [i] 01:20 Info: 10 C:         VIS: Spell kill: ITEM_GLIMMER ,ptr: 357734508 .... <oVisFx.cpp,#2614>
    [i] 01:20 Info: 10 C:         VIS: Spell delete: ITEM_GLIMMER ,ptr: 357734508 .... <oVisFx.cpp,#605>
    [i] 01:20 Info: 10 C:         VIS: Spell kill: HEALTH_POTION ,ptr: 357642688 .... <oVisFx.cpp,#2614>
    [i] 01:20 Info: 10 C:         VIS: Spell delete: HEALTH_POTION ,ptr: 357642688 .... <oVisFx.cpp,#605>
    [i] 01:20 Info: 10 C:         VIS: Spell kill: WEAK_GLIMMER ,ptr: 357644508 .... <oVisFx.cpp,#2614>
    [i] 01:20 Info: 10 C:         VIS: Spell delete: WEAK_GLIMMER ,ptr: 357644508 .... <oVisFx.cpp,#605>
    [i] 01:20 Info: 10 C:         VIS: Spell kill: WEAK_GLIMMER ,ptr: 356422812 .... <oVisFx.cpp,#2614>
    [i] 01:20 Info: 10 C:         VIS: Spell delete: WEAK_GLIMMER ,ptr: 356422812 .... <oVisFx.cpp,#605>
    [i] 01:20 Info: 10 C:         VIS: Spell kill: ITEM_GLIMMER ,ptr: 356583764 .... <oVisFx.cpp,#2614>
    [i] 01:20 Info: 10 C:         VIS: Spell delete: ITEM_GLIMMER ,ptr: 356583764 .... <oVisFx.cpp,#605>
    [i] 01:20 Info:  7 D:         MORPH: Deleting MorphMeshProto.. .... <zMorphMesh.cpp,#289>
    [i] 01:20 Info:  7 D:         MORPH: Deleting MorphMeshProto.. .... <zMorphMesh.cpp,#289>
    [i] 01:20 Info: 10 C:         VIS: Spell kill: HEALTH_POTION ,ptr: 327771308 .... <oVisFx.cpp,#2614>
    [i] 01:20 Info: 10 C:         VIS: Spell delete: HEALTH_POTION ,ptr: 327771308 .... <oVisFx.cpp,#605>
    [i] 01:20 Info: 10 C:         VIS: Spell kill: WEAK_GLIMMER ,ptr: 296944672 .... <oVisFx.cpp,#2614>
    [i] 01:20 Info: 10 C:         VIS: Spell delete: WEAK_GLIMMER ,ptr: 296944672 .... <oVisFx.cpp,#605>
    [i] 01:20 Info: 10 C:         VIS: Spell kill: WEAK_GLIMMER ,ptr: 296419460 .... <oVisFx.cpp,#2614>
    [i] 01:20 Info: 10 C:         VIS: Spell delete: WEAK_GLIMMER ,ptr: 296419460 .... <oVisFx.cpp,#605>
    [i] 01:20 Info: 10 C:         VIS: Spell kill: HEALTH_POTION ,ptr: 303678460 .... <oVisFx.cpp,#2614>
    [i] 01:20 Info: 10 C:         VIS: Spell delete: HEALTH_POTION ,ptr: 303678460 .... <oVisFx.cpp,#605>
    [i] 01:20 Info: 10 C:         VIS: Spell kill: ITEM_GLIMMER ,ptr: 303682000 .... <oVisFx.cpp,#2614>
    [i] 01:20 Info: 10 C:         VIS: Spell delete: ITEM_GLIMMER ,ptr: 303682000 .... <oVisFx.cpp,#605>
    [i] 01:20 Info: 10 C:         VIS: Spell kill: HEALTH_POTION ,ptr: 304371844 .... <oVisFx.cpp,#2614>
    [i] 01:20 Info: 10 C:         VIS: Spell delete: HEALTH_POTION ,ptr: 304371844 .... <oVisFx.cpp,#605>
    [i] 01:20 Info: 10 C:         VIS: Spell kill: ITEM_GLIMMER ,ptr: 304412504 .... <oVisFx.cpp,#2614>
    [i] 01:20 Info: 10 C:         VIS: Spell delete: ITEM_GLIMMER ,ptr: 304412504 .... <oVisFx.cpp,#605>
    [i] 01:20 Info: 10 C:         VIS: Spell kill: HEALTH_POTION ,ptr: 311566060 .... <oVisFx.cpp,#2614>
    [i] 01:20 Info: 10 C:         VIS: Spell delete: HEALTH_POTION ,ptr: 311566060 .... <oVisFx.cpp,#605>
    [i] 01:20 Info: 10 C:         VIS: Spell kill: WEAK_GLIMMER ,ptr: 326770624 .... <oVisFx.cpp,#2614>
    [i] 01:20 Info: 10 C:         VIS: Spell delete: WEAK_GLIMMER ,ptr: 326770624 .... <oVisFx.cpp,#605>
    [i] 01:20 Info: 10 C:         VIS: Spell kill: HEALTH_POTION ,ptr: 296311028 .... <oVisFx.cpp,#2614>
    [i] 01:20 Info: 10 C:         VIS: Spell delete: HEALTH_POTION ,ptr: 296311028 .... <oVisFx.cpp,#605>
    [i] 01:20 Info: 10 C:         VIS: Spell kill: WEAK_GLIMMER ,ptr: 324387108 .... <oVisFx.cpp,#2614>
    [i] 01:20 Info: 10 C:         VIS: Spell delete: WEAK_GLIMMER ,ptr: 324387108 .... <oVisFx.cpp,#605>
    [i] 01:20 Info: 10 C:         VIS: Spell kill: ITEM_GLIMMER ,ptr: 299098368 .... <oVisFx.cpp,#2614>
    [i] 01:20 Info: 10 C:         VIS: Spell delete: ITEM_GLIMMER ,ptr: 299098368 .... <oVisFx.cpp,#605>
    [i] 01:20 Info: 10 C:         VIS: Spell kill: ITEM_GLIMMER ,ptr: 329810416 .... <oVisFx.cpp,#2614>
    [i] 01:20 Info: 10 C:         VIS: Spell delete: ITEM_GLIMMER ,ptr: 329810416 .... <oVisFx.cpp,#605>
    [i] 01:20 Info: 10 C:         VIS: Spell kill: ITEM_GLIMMER ,ptr: 260358200 .... <oVisFx.cpp,#2614>
    [i] 01:20 Info: 10 C:         VIS: Spell delete: ITEM_GLIMMER ,ptr: 260358200 .... <oVisFx.cpp,#605>
    [i] 01:20 Info: 10 C:         VIS: Spell kill: ITEM_GLIMMER ,ptr: 325928520 .... <oVisFx.cpp,#2614>
    [i] 01:20 Info: 10 C:         VIS: Spell delete: ITEM_GLIMMER ,ptr: 325928520 .... <oVisFx.cpp,#605>
    [i] 01:20 Info:  7 D:         MORPH: Deleting MorphMeshProto.. .... <zMorphMesh.cpp,#289>
    [i] 01:20 Info:  8 D:         WORLD: ..zCWorld disposed. .... <zWorld.cpp,#1682>
    [w] 01:21 Warn:  0 AS      SERTION failed: refCtr>=-1 in file P:\dev\g2addon\release\ZenGin\_dieter\zObject.cpp, Line: 132, Reason: D: OBJ: deleting an already deleted zCObject ?! .... <zError.cpp,#474>
    [w] 01:21 Warn:  0 Ca      ll stack:  .... <zError.cpp,#474>
    [w] 01:21 Warn:  0 Go      thic II - 2.6 (fix), Parser Version: 50 .... <zError.cpp,#474>
    [w] 01:21 Warn:  0 Us      er:  Daniel,  CPUType: 586,  Mem: 0 MB total, 0 MB free .... <zError.cpp,#474>
    [w] 01:21 Warn:  0 ST      ART .... <zError.cpp,#474>
    [w] 01:21 Warn:  0 00      23:0050908B (0x008A4B30 0x008A4B78 0x00000084 0x0135D5D8) Gothic2.exe, ASSERT_FAIL()+251 byte(s), P:\dev\g2addon\release\ZenGin\_carsten\zWin32.cpp, line 3368+12 byte(s) .... <zError.cpp,#474>
    [w] 01:21 Warn:  0 00      23:005A8D7F (0x04D1A1D0 0x005DE871 0x00000001 0x04D1A1D0) Gothic2.exe, zCObject::~zCObject()+303 byte(s), P:\dev\g2addon\release\ZenGin\_dieter\zObject.cpp, line 132+102 byte(s) .... <zError.cpp,#474>
    [w] 01:21 Warn:  0 00      23:00401EF8 (0x00000001 0x04D1A1D0 0x0135EA44 0x005DE830) Gothic2.exe, zCObject::`vector deleting destructor'()+8 byte(s), ..\\ZenGin\_dieter\zObject.h, line 311+22 byte(s) .... <zError.cpp,#474>
    [w] 01:21 Warn:  0 00      23:005DE871 (0x00000000 0x007D6207 0x00876140 0x00000000) Gothic2.exe, zCSession::Done()+33 byte(s), P:\dev\g2addon\release\ZenGin\_dieter\zSession.cpp, line 82+29 byte(s) .... <zError.cpp,#474>
    [w] 01:21 Warn:  0 00      23:00807FE8 (0xFFFFFFFF 0x00819A63 0x00000002 0x00819A6B) Gothic2.exe, SetFileAttributesA()+148516 byte(s)0023:00819A5B (0x00000000 0x00000000 0x00000000 0x00000000) Gothic2.exe, SetFileAttributesA()+220823 byte(s) .... <zError.cpp,#474>
    [w] 01:21 Warn:  0 00      23:00819A5B (0x00000000 0x00000000 0x00000000 0x00000000) Gothic2.exe, SetFileAttributesA()+220823 byte(s) .... <zError.cpp,#474>
    [i] 01:21 Info:  8 C:       WM_ACTIVATEAPP received .... <zWin32.cpp,#1738>
    Wenn ich den LeGo-Aufruf in der Init_Global auskommentiere, kann ich den Spielstand laden, dann wird halt einiges anderes nicht mehr funktionieren, weil jetzt einige Features genutzt werden


    Aber noch was Positives: Die Buttons sind cool und funktionieren super leicht, tolle Sache

  7. Beiträge anzeigen #347
    Demigoddess
    Registriert seit
    Jul 2007
    Beiträge
    9.785
     
    Lehona ist offline
    Alle Veränderungen wurden bisher auch nur auf Funktionalität getestet und nicht auf solche Sachen. Aber da die Scripte dann ja doch so viel Anklang gefunden haben, werden wir wohl auch verstärkt daran arbeiten, das fertig zu machen, allerdings muss ich dafür warten, bis alles fertig ist (PermMem wird ja neugeschrieben, das ist noch nicht fertig)... Wie du damit am besten umgehst, ist dann deine Sache...

    Was genau bekommst du als Fehlermeldung? Nur die AV? Das wäre mir dann nämlich noch unbekannt.


    Danke für das Lob bzgl. der Buttons

  8. Homepage besuchen Beiträge anzeigen #348
    Teutonic Team Avatar von Bonne6
    Registriert seit
    Jun 2004
    Ort
    Erlangen
    Beiträge
    10.844
     
    Bonne6 ist offline
    Zitat Zitat von Lehona Beitrag anzeigen
    Was genau bekommst du als Fehlermeldung? Nur die AV? Das wäre mir dann nämlich noch unbekannt.
    Genau das, passiert ja direkt beim Laden.

    Zitat Zitat von Lehona
    Danke für das Lob bzgl. der Buttons
    Naja, kann ja nicht immer nur Fehler und Probleme posten

  9. Beiträge anzeigen #349
    Serima Avatar von Fisk2033
    Registriert seit
    Dec 2010
    Ort
    Dresden
    Beiträge
    4.924
     
    Fisk2033 ist offline
    Kann mir bitte wer sagen wie /was ich parsen muss? "Früher" gabs ja mal ne Readme ,die ist auch net mehr aufzufinden

  10. Beiträge anzeigen #350
    Demigoddess
    Registriert seit
    Jul 2007
    Beiträge
    9.785
     
    Lehona ist offline
    Dann hast du aber nicht gut geschaut, denn auch wenn die ReadMe sehr knapp ist steht doch drin, was du wissen wolltest: http://lego.origo.ethz.ch/wiki/readme

  11. Beiträge anzeigen #351
    Serima Avatar von Fisk2033
    Registriert seit
    Dec 2010
    Ort
    Dresden
    Beiträge
    4.924
     
    Fisk2033 ist offline
    Hm danke

    Bekomme jetzt immer die Fehlermeldung:Undefined function MFK (line 67)

    Floats und Ikarus sind eig. drinne, eine genaue Datei steht nicht dabei wo die Funktion nicht definiert ist Sry falls ich schon wieder faile


    €: Hier zSpy
    Code:
    00:03 Warn:  0 B:   GOTHIC: Start of gothic failed before. .... <zzBert.cpp,#146>
    00:05 Warn:  0 X:         XD3D_InitPerDX: Can't initialize with 32 bit depth buffer, trying 24 bit ...  .... <zRndD3D_Init.cpp,#384>
    00:06 Warn:  0 X:         XD3D_InitPerDX: Can't initialize with 24 bit depth buffer, trying default ...  .... <zRndD3D_Init.cpp,#389>
    00:08 Warn:  0 D:       expected entry not found: rangeMax .... <zArchiverGeneric.cpp,#1354>
    00:08 Warn:  0 D:       expected entry not found: fadeScale .... <zArchiverGeneric.cpp,#1354>
    00:08 Warn:  0 D:       expected entry not found: rangeMax .... <zArchiverGeneric.cpp,#1354>
    00:08 Warn:  0 D:       expected entry not found: fadeScale .... <zArchiverGeneric.cpp,#1354>
    00:08 Warn:  0 D:       expected entry not found: fadeScale .... <zArchiverGeneric.cpp,#1354>
    00:08 Warn:  0 D:         z3d(zCMesh::Load): Could not load Mesh: STARGATE_EDGES.3DS .... <zMesh.cpp,#436>
    00:08 Warn:  0 D:         z3d(zCMesh::Load): Could not load Mesh: STARGATE_EDGES.3DS .... <zMesh.cpp,#436>
    00:08 Warn:  0 D:         z3d(zCMesh::Load): Could not load Mesh: STARGATE_EDGES.3DS .... <zMesh.cpp,#436>
    00:11 Fatal:-1 U:    PAR: Undefined function : MKF ( line 67 ) .... <zParser.cpp,#599>
    00:12 Warn:  0 X:     XD3D_InitPerDX: Can't initialize with 32 bit depth buffer, trying 24 bit ...  .... <zRndD3D_Init.cpp,#384>
    00:12 Warn:  0 X:     XD3D_InitPerDX: Can't initialize with 24 bit depth buffer, trying default ...  .... <zRndD3D_Init.cpp,#389>
    00:21 Warn:  0 X:     [RND3D-Destructor]: Can't uninitialize D3DX Utility Library ! Error: D3DXERR_D3DXNOTSTARTEDYET .... <zRndD3D.h,#127>

  12. Beiträge anzeigen #352
    Demigoddess
    Registriert seit
    Jul 2007
    Beiträge
    9.785
     
    Lehona ist offline
    Ein höheres zSpy-Level würde helfen. Aber zeig doch mal deine Gothic.src

  13. Beiträge anzeigen #353
    Serima Avatar von Fisk2033
    Registriert seit
    Dec 2010
    Ort
    Dresden
    Beiträge
    4.924
     
    Fisk2033 ist offline
    Habs selber gefunden(mit den Floats hatte ich was net) danke für die schnelle hilfe!

  14. Homepage besuchen Beiträge anzeigen #354
    Apprentice Avatar von edeksumo
    Registriert seit
    Apr 2011
    Ort
    Poland
    Beiträge
    35
     
    edeksumo ist offline
    I found a bug after loading a save:
    [Bild: gothic22012021318503653.th.jpg]
    I used only this function: PrintS_Ext (text, COL_Yellow);

  15. Beiträge anzeigen #355
    Demigoddess
    Registriert seit
    Jul 2007
    Beiträge
    9.785
     
    Lehona ist offline
    Zitat Zitat von edeksumo Beitrag anzeigen
    I found a bug after loading a save:
    [Bild: gothic22012021318503653.th.jpg]
    I used only this function: PrintS_Ext (text, COL_Yellow);
    Thanks for reporting the bug, we will make sure to fix it in the next release, which will be soon.

  16. Beiträge anzeigen #356
    Demigoddess
    Registriert seit
    Jul 2007
    Beiträge
    9.785
     
    Lehona ist offline

    [Tutorial] PermMem

    Da vor kurzem jemand nach einer Möglichkeit zum Respawn gefragt hat und ich fanatisch LeGo angepriesen habe, dache ich mir, dass das ein geeignetes praktisches Beispiel sei, um den Umgeang mit PermMem ein wenig näher zu beleuchten. Aber Vorsicht, es folgt ein ziemlich langer Post. Wer also PermMem beherrscht oder einfach nicht so viel lesen will, sollte wohl gar nicht erst anfangen...

    Als erstes müssen wir uns ein klares Ziel definieren bzw. aufschreiben, in unserem Fall das Respawn System:
    "Unser System soll jedes Monster, das bestimmte Bedingungen erfüllt, nach einer bestimmten Zeit respawnen. Die Respawn-Zeit ist linear abhängig vom Level des Monsters und wird täglich (bzw. nächtlich in der SleepABit.d) geprüft."
    Das hätten wir also. Da wir verzögert respawnen (Alles andere wäre für den Spieler ja eh frustrierend) müssen wir uns die relevanten Informationen merken. Daher sollten wir uns genau ansehen, was wir brauchen:

    1. Monster Typ oder Instanz (Wir wollen ja keinen Ork an Stelle eines Wolfes spawnen)
    2. Waypoint um zu wissen, wo der Respawn vollzogen werden soll
    3. Zeitpunkt, an dem der Respawn erfolgen soll


    Der Übersicht halber nochmal in Daedalus formuliert:
    Code:
    class RespawnObject {
    	var int inst; //Die Monsterinstanz
    	var string wp; //Der Wegpunkt
    	var int respawnDay; // Der Tag des Respawns, wobei der erste Tag den Wert 0 hat... Genau wie Gothic.
    };
    Ich habe unserer Informationsstruktur (Im folgenden "Klasse"... Wer noch gar nichts über Klassen weiß, sollte sich mal in der Ikarus-Dokumentation umsehen) einfach mal den Namen RespawnObject gegeben, Englisch ist schließlich hip.

    In einem Objekt (einer Instanz) dieser Klasse können wir also alle nötigen Daten speichern.

    Wenn jetzt ein Monster stirbt (und es unsere Bedingungen, z.B. kein Mensch, erfüllt), wollen wir ein Objekt erzeugen und es mit den entsprechenden Informationen füllen.

    Wenn man sich jetzt fragt, warum es dazu PermMem braucht, ist die Frage völlig gerechtfertigt.
    Ikarus bietet die Möglichkeit, Speicher zu allozieren und auch, den Speicher (bzw. einen Zeiger auf den Speicher) einer Instanz zuzuweisen. Aber (Und das ist ein großes Aber) Ikarus garantiert keinen sicheren Speicher, er ist bloß einen Frame sicher gültig. Anders formuliert: Wenn der Spieler lädt oder ähnliche Aktionen durchführt, führt das sehr oft dazu, dass der Speicher nicht mehr da steht, wo er soll (oder sogar ganz weg ist).
    Genau das übernimmt aber PermMem: Es merkt sich den Speicherblock und "zwingt" den User im Gegenzug eine eindeutige Zahl ("Handle" genannt) zu benutzen, die PM immer einem Zeiger zuordnen kann. Wenn gespeichert wird, schreibt PM den Inhalt all dieser Speicherblöcke nach bestimmten Regeln (s. weiter unten oder in den Beispielen) in eine eigene Speicherdatei; beim Laden wird diese Datei ausgelesen, interpretiert und die Daten werden wieder in den Speicher geschrieben.
    Des Weiteren kann PM noch ein paar andere tolle Sachen, z.B. werden Objekte an Hand einer Instanz-Funktion initialisiert, Instanz-Funktionen meint sowas:
    Code:
    instance myNpc(C_NPC) {
    	Print("Ich bin eine Instanz-Funktion!");
    };
    Später erlaubt das, die Objekte nicht nur auf Grund ihrer Klasse zu unterscheiden sondern auch an Hand der Instanz, mit der sie erzeugt wurden, somit kann man sie unterschiedlich löschen oder speichern.

    WIe auch immer, zurück zu unserem Problem: Das Respawn-System.
    An geeigneter Stelle sollten wir so ein Objekt erzeugen und uns eine Referenz bzw. das Handle merken. Um nicht zu komplex zu werden, werde ich diese Handles in einem statischen Array sichern, also ein ganz normales Array wie Ikarus es anbietet. Ab jetzt geht das Scripten wirklich los:

    Wir haben gerade erwähnt, dass wir ein Array brauchen. Dazu sollten wir uns aber auch merken, wie voll das Array denn ist. Wir können theoretisch auch einfach schauen, wo ein Index den Wert 0 hat, aber das ist fehleranfälliger, komplizierter und rechenaufwändiger. Also:

    Code:
    const int MAX_RESPAWN = 256; //Wir definieren diese Konstante, um unser System leicher anpassen zu können, z.B. bei vielen Monstern. Außerdem ist das schöner.
    var int RespawnArray[MAX_RESPAWN];
    var int nextRespawnIndex;
    Gut, damit können wir jetzt noch nichts machen, aber immerhin schonmal ein wenig Code. Nun sollten wir schauen, wie wir Objekte in unser Array einfügen können. Dazu erzeugen wir ein Respawn-Objekt mit dem Befehl new(). Aber was erwartet new() für Parameter? Ein Blick ins Wiki hilft:
    Code:
    int new(instance inst)
    [/code]
    Gut, new() will also eine Instanz... Aber wir haben ja gar keine Instanz? Unser Code sieht ja bisher so aus:
    Code:
    class RespawnObject {
    	var int inst; //Die Monsterinstanz
    	var string wp; //Der Wegpunkt
    	var int respawnDay; // Der Tag des Respawns, wobei der erste Tag den Wert 0 hat... Genau wie Gothic.
    };
    
    const int MAX_RESPAWN = 256; //Wir definieren diese Konstante, um unser System leicher anpassen zu können, z.B. bei vielen Monstern. Außerdem ist das schöner.
    var int RespawnArray[MAX_RESPAWN];
    var int nextRespawnIndex;
    New() möchte eine Instanz als Parameter, da damit das Objekt initialisiert wird (werden kann). Eigentlich wird einfach die Instanz-Funktion (s.o.) ausgeführt. Da wir die Instanz-Funktion nicht allzu sinnvoll parametrisieren können, nehmen wir einfach eine leere:
    Code:
    instance RespawnObject@(RespawnObject);
    // oder
    instance RespawnObject@(RespawnObject){};
    Das wäre also geklärt. Angemerkt werden sollte noch, dass man normale Arrays nicht einfach so dynamisch (d.h. mit dynamischen Index) beschreiben kann, dafür braucht man die Ikarus-Funktion MEM_WriteStatArr(), aber das nur am Rande, ihr werdet das gleich im Code sehen, also, was wir wissen:

    Code:
    func void AddToRespawnArray(var c_npc slf) {
    	 var int hndl; hndl = new(RespawnObject@);
    	 MEM_WriteStatArr(RespawnArray, nextRespawnIndex, hndl); // RespawnArray[nextRespawnIndex] = hndl;
    	 nextRespawnIndex += 1; // Beim nächsten Mal in den nächsten Index schreiben
    };

    Nun, das ist noch nicht vollständig und das könnt ihr euch vermutlich denken. Wir müssen noch die Informationen in unser Objekt schreiben. Dafür brauchen wir die Funktionen get() oder getPtr(). Es ist einfacher, direkt ein Objekt zu nutzen anstatt erst den Zeiger in ein Objekt zu verwandeln, daher werden wir get() benutzen. Wir definieren also eine Variable des Typs RespawnObject, das geht wie mit Integern und Strings:
    Code:
    var RespawnObject myRespawnObject;
    Dieser Variable weisen wir dann einfach unser Handle zu (korrekt: get(hndl);) und können ohne Probleme die Informationen in das Objekt schreiben. Also:

    Code:
    func void AddToRespawnArray(var c_npc slf) {
    	 var int hndl; hndl = new(RespawnObject@);
    	 MEM_WriteStatArr(RespawnArray, nextRespawnIndex, hndl); // RespawnArray[nextRespawnIndex] = hndl;
    	 nextRespawnIndex += 1; // Beim nächsten Mal in den nächsten Index schreiben
    	 
    	 var RespawnObject myRespawnObject; myRespawnObject = get(hndl);
    	 myRespawnObject.inst = Hlp_GetInstanceID(slf);
    	 myRespawnObject.wp = slf.spawnPoint;
    	 myRespawnObject.respawnDay = Wld_GetDay() + (slf.level/10)+2; // Irgendeine Formel
    };
    Und das war es eigentlich auch schon, damit sind alle wichtigen Informationen verstaut. Jetzt müssen wir die Funktion nur noch an einem sinnvollen Ort aufrufen - und was eignet sich da besser als die ZS_Dead()? Richtig, nichts.

    Es ist eigentlich völlig egal, wo wir unsere Funktion in der ZS_Dead() aufrufen, aber der Übersicht halber machen wir es ganz am Anfang. Da wir nicht alle Monster wiederbeleben wollen, packen wir das Ganze auch noch in eine Abfrage:

    Code:
    func int MeetsRespawnCondition(var c_npc slf) { 
    	return (slf.guild > GIL_SEPERATOR_HUM); // Überprüft bisher bloß, ob 'slf' nicht menschlich ist 
    };
    
    
    func void ZS_Dead ()
    {	
    	if (MeetsRespawnCondition(self)) {
    		AddToRespawnArray(self);
    	};
    	[...]
    };
    Die Abfrage ist noch nicht so toll und euch fallen bestimmt noch andere wichtige Sachen rein, aber ich will ja bloß ein Konzept vorstellen.

    Okay... Ein kleiner Rückblick: Wir haben uns die wichtigen Informationen erfolgreich gemerkt... Und mehr nicht. 'Ne ganze Menge Arbeit für so eine kleine Aufgabe, nicht?
    Wenn wir zurück schauen, sehen wir aber: Das waren eigentlich bloß ein paar Zeilen, kaum eine zweistellige Anzahl. Sobald man PM verstanden habt (Und ich bin mir sicher das werdet ihr nach diesem Tutorial), kann man das sehr schnell tippen. Machen wir uns aber nun an den eigentlichen Teil unseres Systems: Das Respawnen. Um einen geeigneten Zeitpunkt zum Auslösen des Respawns kümmern wir uns später. Wir wollen jetzt also eine Funktion, die testet, ob der aktuelle Tag größer gleich dem "Respawn-Tag" ist und gegebenfalls das Monster in die Welt einfügen, das ist auch gar nicht so schwierig, der Code erklärt sich, mitsamt Kommentaren, eigentlich von selbst:

    Code:
    func void CheckRespawns() {
    	if (nextRespawnIndex == 0) { // Das Array ist leer.
    		return;
    	};
    	var int i; i = 0; // Das mag verwirren, aber ich baue bloß eine Schleife in Daedalus. Mit dem neuen Ikarus-Release geht das auch wesentlich schöner. 
    	var int pos; pos = MEM_StackPos.position; // Stellt euch einfach vor, das hier wäre eine While(1)-Schleife. Zur Übersicht habe ich eingerückt.
    	
    		var int hndl; hndl = MEM_ReadStatArr(RespawnArray, i); // hndl = RespawnArray[i];
    		var RespawnObject myRespawnObject; myRespawnObject = get(hndl);
    		
    		//Jetzt haben wir unser Objekt!
    		
    		if (myRespawnObject.respawnDay <= Wld_GetDay()) { // Der Tag des Respawns ist gekommen! \o/
    			Wld_InsertNpc(myRespawnObject.inst, myRespawnObject.wp); // Daher fügen wir einfach den NPC an seinem WP ein :)
    			// Allerdings müssen wir nun unser Objekt auch entfernen, sonst würde es ja beim nächsten Mal wieder eingefügt!
    			// Ich werde daher einfach mal die Funktion RemoveRespawnObject() aufrufen - wie die aussehen muss, schauen wir später.
    			RemoveRespawnObject(hndl);
    		} else {
    			i += 1; // Falls ich ein Objekt gelöscht habe, muss ich den selben Index nochmal lesen.
    		};	
    	if (i >= nextRespawnIndex) { // Wenn i größer oder gleich dem nextRespawnIndex ist, haben wir das Array komplett durchlaufen.
    	/* Anders formuliert: 
    		if (i >= nextRespawnIndex) {
    			break;
    		}; */
    		return;
    	};
    	MEM_StackPos.position = pos;
    	
    };

    So weit, so gut, das war nicht so kompliziert, jetzt müssen wir uns aber um die RemoveRespawnObject() kümmern. Der Einfachheit halber werde ich diese Funktion kurz skizzieren und dann umsetzen:

    Wir müssen definitiv unser Objekt zerstören (Speicher wieder releasen), das macht PM aber fast von alleine. Dann müssen wir noch die (jetzt ungültige) Referenz aus unserem Array entfernen, das werden wir machen, indem wir einfach schauen, ob im momentanen Index des Arrays unsere Referenz steht und im gegebenen Fall überschreiben wir diese Referenz mit der letzteren (hintersten) Referenz, setzen den hintersten Index gleich 0 und dekrementieren unseren Zähler (nextRespawnIndex). Soweit zur Theorie:

    Code:
    func void RemoveRespawnObject(var int hndl) {
    	if (nextRespawnIndex == 0) { // Das Array ist leer.
    		return;
    	};
    
    	delete(hndl); // Hier erledigen wir den PM-Teil unseres Destruktors, alles weitere macht PM dann selber. Unter anderem wird versucht, Respawn_Object_Delete() aufzurufen, allerdings gibt es diese Funktion nicht (sie ist optional)
    	
    	var int i; i = 0; // Das mag verwirren, aber ich baue bloß eine Schleife in Daedalus. Mit dem neuen Ikarus-Release geht das auch wesentlich schöner. 
    	var int pos; pos = MEM_StackPos.position; // Stellt euch einfach vor, das hier wäre eine While(1)-Schleife. Zur Übersicht habe ich eingerückt.
    
    		var int h; h = MEM_ReadStatArr(RespawnArray, i); [I]// h = RespawnArray;
    		if (h == hndl) { // Wir haben unsere Referenz gefunden
    			MEM_WriteStatArr(RespawnArray, i, MEM_ReadStatArr(RespawnArray, nextRespawnIndex-1); // Alte Referenz mit der letzten Referenz überschreiben
    			MEM_WriteStatArr(RespawnArray, nextRespawnIndex-1, 0); // Letzte Referenz gleich 0 setzen
    			nextRespawnIndex -= 1; // Unseren Zähler dekrementieren
    			return; // Mehr wollen wir nicht machen.
    		};
    
    	i += 1;	
    	if (i >= nextRespawnIndex) { // Wenn i größer oder gleich dem nextRespawnIndex ist, haben wir das Array komplett durchlaufen.
    	/* Anders formuliert: 
    		if (i >= nextRespawnIndex) {
    			break;
    		}; */
    		return;
    	};
    	MEM_StackPos.position = pos;
    	
    };
    Das rufen wir jetzt noch in der PC_Sleep() (Datei: Scripts\Content\Story\Dialog_Mobsis\SleepABit.d) auf, optimalerweise nachdem die Zeit geändert wurde:

    Code:
    func void PC_Sleep (var int t)
    {
    	AI_StopProcessInfos(self);		// [SK] ->muss hier stehen um das update zu gewährleisten
    
    	PLAYER_MOBSI_PRODUCTION	=	MOBSI_NONE;
    	self.aivar[AIV_INVINCIBLE]=FALSE;
    	if	(Wld_IsTime(00,00,t,00))
    	{
    		Wld_SetTime	(t,00);
    	}
    	else
    	{
    		t = t + 24;
    		Wld_SetTime	(t,00);
    	};
    
    	CheckRespawns();
    	
    	[...]
    };
    Der Kern unseres Systems ist damit geschaffen und wir näherns uns (rapide!) dem Ende, eigentlich möchte ich bloß noch eine (in diesem Fall unnötige) Sache aufzeigen:
    Klassen in Gothic haben leider nicht genug Informationen, um sie (immer) vernünftig speichern zu können, Zeiger unterscheiden sich z.B. nicht von normalen Ganzzahlwerten. Daher bietet LeGo sog. structs an. Das ist dem eigentlichen Begriff aus anderen Programmiersprachen ein wenig entfremdet, in unserem Fall ist das bloß ein String, der den Aufbau der Klasse beschreibt. Dabei wird einfach Stück für Stück der "Typ" einer Objekt-Eigenschaft angegeben, wobei einfache Werte (Func, float, int, string) einfach als 'auto' (für 'automatisch') referenziert werden. Man kann auch eine Anzahl angeben, wenn mehrere Eigenschaften des selben Typs aufeinander folgen. In unserem Fall sähe das so aus:
    Code:
    const string RespawnObject_Struct = "auto|3";
    // oder
    const string RespawnObject_Struct = "auto auto auto";
    Hätten wir in unserer RespawnObject-Klasse am Ende noch einen Zeiger auf ein weiteres Respawn-Object, sähe das so aus:
    Code:
    const string RespawnObject_Struct = "auto|3 RespawnObject*";
    Der Sternchen-Operator zeigt, wie aus anderen Programmiersprachen gewohnt, einen Zeiger an.

    Es ist auch möglich, die Speicherregeln komplett von Hand vorzugeben, aber das werde ich in diesem Tutorial nicht behandeln und sollte aus der Dokumentation im Wiki auch ersichtlich werden.


    Und damit sind wir endlich am Ende angekommen! Was dem ein oder anderen wie ein Haufen Arbeit erscheint haben mag, war letztendlich ganz wenig - ca. 75 Zeilen, wobei davon einige Leerzeilen oder Kommentare waren.

    Wer jetzt sein Wissen in PermMem testen möchte, kann das sehr simpel tun: Ich möchte, dass ihr dieses System mit einem globalen Objekt vom Typ zCArray (Siehe Ikarus\EngineClasses\Misc.d) umsetzt! Tipp: In LeGo\PermMem_Structs.d sind Archiver, UnArchiver und Destruktor schon definiert, ihr müsst euch also nicht darum kümmern Falls ihr nicht weiterkommt, helfe ich euch auch gerne in diesem Thread.




    Abschließende Worte: Ich habe nicht großartig gegengelesen, wenn also jemand noch Fehler findet (Syntaxfehler in Script oder auch Sprache), behebe ich das gerne. Semantisch sollte das im Groben und Ganzen eigentlich korrekt sein, ich gebe allerdings zu, es nichtmal durch den Parser gejagt zu haben. Wenn es nicht funktioniert, seht es einfach als zusätzliche Aufgabe, es zu beheben
    Geändert von Lehona (16.02.2012 um 15:31 Uhr)

  17. Homepage besuchen Beiträge anzeigen #357
    Exodus Avatar von Sektenspinner
    Registriert seit
    Jul 2004
    Ort
    Karlsruhe
    Beiträge
    7.827
     
    Sektenspinner ist offline
    Drei Dinge die mir auffallen:
    • Ist das Array leer liest du trotzdem den ersten Index (Index 0) und verarbeitest ihn (rufst zum Beispiel get(0) auf, was (hoffentlich) mindestens eine Warnung ausgibt). Und danach bricht die Hölle los, wenn ich das richtig sehe.
    • Wenn du ein RespawnObject abarbeitest und aus dem Array entfernst (durch Verschieben des letzten Objeks an diese Stelle) darfst du deinen Index nicht erhöhen, sonst überspringst du das Objekt, dass du gerade in die Lücke geschoben hast.
    • Der Code zum Schieben in die Lücke wird deutlich kompakter, wenn du das Handle nicht erst im Array suchst, sondern einfach den Index i verwendest, den du ja sowieso hast.


    Moral von der Geschichte: Schönes Tutorial, würde dir aber trotzdem empfehlen, dass selbst nochmal auszuprobieren, erfahrungsgemäß ist ungetesteter Code niemals fehlerfrei.
    Vielleicht gibts auch noch irgendwelche Dinge zu beachten, an die man nicht gedacht hat. Ist zum Beispiel gewährleistet, dass ZS_Dead nur einmal aufgerufen wird oder sollte man lieber !self.AIV_VictoryXPGiven verlangen?

    Wenn man sich mit neuen Konzepten vertraut machen will, von denen man wenig versteht, gibt es jedenfalls wenig Wertvolleres als ein gutes Tutorial und wenig Verwirrenderes als Fehler in diesem Tutorial.
    Für Spieler:
    Velaya # Velaya in English # Exodus Demo # Irrwichtel
    Tools für Modder:
    DiaDepp # DOPA-PARTER # zSlang
    Scripte für Modder:
    Ikarus Skriptpaket # Floats # Broadcasts

  18. Beiträge anzeigen #358
    Demigoddess
    Registriert seit
    Jul 2007
    Beiträge
    9.785
     
    Lehona ist offline
    Ob das Array leer ist wird jetzt geprüft, das habe ich noch schnell dazwischen geschoben. Gothic macht bei get(0) aber zum Glück relativ wenig Probleme

    Der Index wird jetzt auch nurnoch erhöht, wenn kein Objekt bearbeitet wurde.

    RemoveRespawnObject() soll auch außerhalb von CheckRespawns() funktionieren, auch wenn das System das nicht benötigt. Insofern wäre es vielleicht sinnvoll beim Programmieren eines richtigen Systems, hier lasse ich es zu Veranschaulichungszwecken allerdings weg.

    Der Inhalt der ZS_Dead() suggeriert, dass es bloß einmal aufgerufen wird, aber ich werde mit dem Code Morgen dann doch mal einen (oberflächlichen, zugegeben) Test durchführen. Schließlich ist dieses Tutorial weniger an ein Respawn-System gebunden denn an PM selber, daher habe ich z.B. auch den "kompletten Code" am Ende weggelassen.

    Edit: Eingefärbt habe ich es auch mal, ist angenehmer zu lesen.
    Geändert von Lehona (14.02.2012 um 13:36 Uhr)

  19. #359
    GornLester
    Gast
     
    Wann in etwa wird die nächste Version von LeGo kommen, ich freu mich schon voll darauf! Ich will ja auch ein paar Features davon in meine Mod einbauen! Bitte! Bitte! Sag, das es nicht mehr lange dauer!!!

  20. Beiträge anzeigen #360
    Demigoddess
    Registriert seit
    Jul 2007
    Beiträge
    9.785
     
    Lehona ist offline
    http://lego.origo.ethz.ch/wiki/todo

    Das ist unsere interne ToDo-Liste... Vermutlich nicht vollständig, aber man sieht, dass es nicht mehr so viel zu tun gibt. Ab Montag sind meine Ferien vorbei, dann werde ich wieder aktiver daran arbeiten, danach kann es sich also nurnoch um Wochen handeln Wir arbeiten momentan aber daran, es so schnell wie möglich fertig zu stellen, auch wenn Gothic uns das ein oder andere Mal ein Strich durch die Rechnung macht. Du kannst also nur hoffen und abwarten.

Seite 18 von 21 « Erste ... 7111415161718192021 Letzte »

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
Impressum | Link Us | intern
World of Gothic © by World of Gothic Team
Gothic, Gothic 2 & Gothic 3 are © by Piranha Bytes & Egmont Interactive & JoWooD Productions AG, all rights reserved worldwide