Willkommen im cgboard - classic games Forum! Deine gemütliche Retro Gaming Community. Besuche uns auch im Discord Chat.

Modding - Star Wars Behind the Magic [MULTI]
#1
2
Vorwort:
Ich möchte euch hier mal zeigen wie ihr das Game "Star Wars - Behind the Magic" so modden könnt, das
  1. Kein CD Wechsel mehr nötig ist
  2. Das Intro abgespielt wird, wenn beide Bundle Dateien vorhanden sind
  3. CD Beschriftungen, sowie Trennlinien im Hauptmenü entfernt werden
ACHTUNG!!!
Es wird hier kein NO-CD behandelt oder wie ihr die nötigen Files von der CD auf eure Festplatte bekommt zwecks CD-Schutz.
Die EXE Dateien werden dabei nicht angerührt oder geändert.

Es sind harmlose Mods die aus 2CD eine DVD Version machen.


Was brauchen wir?

Auf jedenfall einen Hexeditor wie HxD von mh-nexus

Dann brauchen wir die 2 großen Dateien "Bundle.000" und "Bundle.001". Jeweils immer die größere Datei von jeder CD.
Dann braucht ihr die EXE Datei "BTM.EXE" oder "EPIG.EXE" von der CD.

Packt alle 3 Dateien auf eurer Festplatte in den selben Ordner

Nun kann man zwars das Spiel starten, aber die Menüs von CD2 können nicht ohne Wechsel betätigt werden ohne das eine Meldung kommt.



1. CD Wechsel entfernen

Da beide Bundle Dateien vorhanden sind, muss die CD Wechsel Abfrage raus

Wir suchen also mit HxD in Bundle.000, sowie in der Bundle.001 nach folgenden Zeilen
[Bild: AP1GczPivSUpUzKbUZAl5j8NwgHZn1Tf9VnfstNJ...OgRk=w2400]

Und ändern diese wie folgt mit Leerzeichen. Aus dem return -1 wird dann ein return 0 gemacht:
[Bild: AP1GczOy-3quG8mzCdgOCsyiqF_ZsB4tN3fTa-5y...IkUw=w2400]

Damit ist die CD Wechsel Abfrage raus.
Nun könnt ihr im Spiel schon auf die Inhalte von CD1, sowie CD2 zugreifen.


2. Das Intro wieder aktivieren wenn beide Bundle Dateien vorhanden sind

Wenn ihr Schritt 1 gemacht habt, wird euch beim Starten aufgefallen sein, das das Intro nicht mehr abgespielt wird. Das liegt daran das sich das Intro nicht in der Bundle.001 (CD2) Datei befindet, sondern nur auf der Bundle.000 (CD1) Datei.
Also müssen wir dafür sorgen das quasi die Start CD eingelegt ist. Sprich das das Spiel denkt das CD1 zuerst da ist.

Wir suchen also folgende Zeilen in der Bundle.000, als auch in der Bundle.001 :
[Bild: AP1GczO-X98US9k2wvqDDb0xLu7FwBDkUvpZbnow...JV0U=w2400]

Die intrfull.znm ist das Intro. Wenn wir weiter höher schauen sehen wir was von wor_GetStartupDisk. Das ist quasi eine Abfrage auf die Start CD. Es ist eine Negative Abfrage, da davor ein Ausrufezeichen ! steht.

Wir ersetzen das Ausrufezeichen durch ein Leerzeichen und haben somit das Intro wieder drin:
[Bild: AP1GczNsh3wMv2TotN2cSWmXfgmQNBRhnkHIlLpg...cvDo=w2400]


3. CD Beschriftungen, sowie Trennlinien im Hauptmenü entfernten (Optional)

Jetzt können wir noch einen Schönheitsfehler beheben. Die Beschriftungen zwecks CD1, CD2 und Beide können ja nun raus, da wir das ja im Schritt 1 und 2 entsprechend gefixed haben.

Also ändern wir die Beschriftungen im Hauptmenü und entfernen diese als auch die Trennlinien.

Links (Original), Rechts (Geändert)
[Bild: AP1GczP2pWDK13A0EgV48MQnG1h82l_FlfnX4xpw...Zu24=w2400]  [Bild: AP1GczOnus1ts1LnJhT6kYIzmK8JvBbtU-RsGg6f...cJFE=w2400]

Entfernen wir erst mal die Beschriftungen "CD 1", "CD 2" und "Beide" und suchen daher auch nach diesen Begriffen in der Bundle.000, sowie Bundle.001 Datei:
[Bild: AP1GczPhSUF7o8qJXFbr-J7bRqLupG9IorfbQeI9...Ds2A=w2400]

Und ändern diese wie folgt mit Leerzeichen:
[Bild: AP1GczOp5iz99qt93T_RAJxRysgqV2Ds61NWlqLQ...yEkY=w2400]


Jetzt müssen die Trennlinien noch raus. Das ist aber kein Text diesmal, sondern es handelt sich um Grafiken. Glücklicherweise werden diese als line1 und line2 bezeichnet, sodass wir sie im Hexeditor auch schnell finden können.
[Bild: AP1GczNKLkreYKBuqNGOaESN9l-w7x5UAaYssEwQ...iXlQ=w2400]

line1 und line2 sind Objekte mit Grafikeigenschaften.
Object line1 oder Object line2 definieren die Bezeichnung was von Grafikeigenschaften für diese Objekte gefolgt wird.
Sprich ab GRPH werden Eigenschaften aufgelistet wie z.B. Position, Farbe, aber auch ob sie Sichtbar sein sollen oder nicht. Und das nutzen wir aus.

Wir ändern die im Bild grün gekennzeichnete Position von einer 1 zu einer 0.
[Bild: AP1GczOIY_nn-eMvYtx43suYxs4EI-LT8Lf0Z-NL...zsmQ=w2400]

Das ganze wiederholt ihr bis ihr alle line Einträge abgeändert habt.
Sprich:
  • Ihr sucht nach "line1" und "line2"
  • ändert die entsprechende Zahl wie im Bild gezeigt von einer 1 zu eine 0
Bei Behind the Magic sollte es pro Bundle Datei genau 3 Einträge dafür sein.


Wenn ihr alles habt, habt ihr somit eure persönliche DVD Version
Zitieren
#2
0
Krass das ist ja Klartext-Script :o Weißt du, welche Sprache das ist?
Zitieren
#3
0
Die Skripte innerhalb der Bundle Dateien ähneln stark an einer C Sprache oder JAVA:
Ist aber eine eigene Kreation von LucasArts.


Die Grafiken und Objekte sind SLB Dateien.
Die ähneln auch stark nach C, sind aber Anweisungen für Grafiken, Bilder, und vieles mehr.
Quasi wie das Tool funktioniert.

Hier mal ein Auszug aus einer SLB:

Code:
SWEETVIEW    1    0
 
    OBJLIST 31
        OBJECT Animation
            ANIM  8
            257 102 383 317
            257 102 357 102 357 202 257 202
            0 0 0 0 0
            0 0 ffffffff
            ffffffff 0
            0 0 0 0
            
            
            
   CODE 0
   ANIM
      1 12 0
      512000 512000 0 0 0
     
      S:\data\general\
      MAINANIM.SNM
        OBJECT Graphic Object
            GRPH  0
            0 0 640 480
            0 0 100 0 100 100 0 100
            0 1 0 0 0
            0 0 ffffffff
            ffffffff 0
            0 0 0 0
            
            
            
   CODE 0
            GRAPHIC
                0 0 640 480
                0 0 255 255
                0 -20
                0 1
                0 0 0 0


                S:\data\general\images\
                mainmenu.jpg
        OBJECT scenes2
            GRPH  0
            17 251 240 48
            17 251 117 251 117 351 17 351
            1 272 2 0 0
            0 0 ffffffff
            ffffffff 0
            0 0 0 0
            
            S:\data\scenes\
            scenmenu.slb
   CODE 4 Object Code
StopAnim();
if ( !GetDisk( 1 )) ViewGoto( "scenes\\", "scenmenu.slb", 0 );
else StartAnim();

            GRAPHIC
                0 0 240 48
                0 0 255 155
                0 0
                238 6401
                0 0 0 0


                S:\data\general\images\
                HOTDOG.BM
        OBJECT behind2
            GRPH  0
            17 296 240 48
            17 296 117 296 117 396 17 396
            1 272 2 0 0
            0 0 ffffffff
            ffffffff 0
            0 0 0 0
            
            S:\data\behind\
            BEHIMENU.SLB
   CODE 4 Object Code
StopAnim();
if (!GetDisk( 1 )) ViewGoto( "behind\\", "behimenu.slb", 0 );
else StartAnim();

            GRAPHIC
                0 0 240 48
                0 0 255 155
                0 0
                238 6401
                0 0 0 0


                S:\data\general\images\
                HOTDOG.BM
        OBJECT prequel2
            GRPH  0
            17 193 240 48
            17 193 117 193 117 293 17 293
            1 272 2 0 0
            0 0 ffffffff
            ffffffff 0
            0 0 0 0
            
            S:\data\prequel\
            preqmenu.slb
   CODE 4 Object Code
StopAnim();
if (!GetDisk( 0 )) ViewGoto( "intro\\", "preqintr.slb", 0 );
else StartAnim();

            GRAPHIC
                0 0 240 48
                0 0 255 155
                0 0
                238 6401
                0 0 0 0


                S:\data\general\images\
                HOTDOG.BM
        OBJECT chars2
            GRPH  0
            17 13 240 48
            17 13 117 13 117 113 17 113
            1 272 2 0 0
            0 0 ffffffff
            ffffffff 0
            0 0 0 0
            
            S:\data\chars\
            CHARMENU.SLB
   CODE 4 Object Code
StopAnim();
if (!GetDisk( 0 )) ViewGoto( "intro\\", "charintr.slb", 0 );
else StartAnim();

            GRAPHIC
                0 0 240 48
                0 0 255 155
                0 0
                238 6401
                0 0 0 0


                S:\data\general\images\
                HOTDOG.BM
        OBJECT tech2
            GRPH  0
            17 58 240 48
            17 58 117 58 117 158 17 158
            1 272 2 0 0
            0 0 ffffffff
            ffffffff 0
            0 0 0 0
            
            S:\data\tech\
            TECHMENU.SLB
   CODE 4 Object Code
StopAnim();
if (!GetDisk( 0 )) ViewGoto( "intro\\", "techintr.slb", 0 );
else StartAnim();

            GRAPHIC
                0 0 240 48
                0 0 255 155
                0 0
                238 6401
                0 0 0 0


                S:\data\general\images\
                HOTDOG.BM
        OBJECT locales2
            GRPH  0
            17 103 240 48
            17 103 117 103 117 203 17 203
            1 272 2 0 0
            0 0 ffffffff
            ffffffff 0
            0 0 0 0
            
            S:\data\locale\systems\
            systmenu.slb
   CODE 4 Object Code
StopAnim();
if (!GetDisk( 0 )) ViewGoto( "intro\\", "locaintr.slb", 0 );
else StartAnim();

            GRAPHIC
                0 0 240 48
                0 0 255 155
                0 0
                238 6401
                0 0 0 0


                S:\data\general\images\
                HOTDOG.BM
        OBJECT events2
            GRPH  0
            17 148 240 48
            17 148 117 148 117 248 17 248
            1 272 2 0 0
            0 0 ffffffff
            ffffffff 0
            0 0 0 0
            
            S:\data\Timeline\
            TIMEMENU.SLB
   CODE 4 Object Code
StopAnim();
if (!GetDisk( 0 )) ViewGoto( "intro\\", "timeintr.slb", 0 );
else StartAnim();

            GRAPHIC
                0 0 240 48
                0 0 255 155
                0 0
                238 6401
                0 0 0 0


                S:\data\general\images\
                HOTDOG.BM
        OBJECT expand2
            GRPH  0
            17 343 240 48
            17 343 117 343 117 443 17 443
            1 272 2 0 0
            0 0 ffffffff
            ffffffff 0
            0 0 0 0
            
            S:\data\expanded\
            EXPDMENU.SLB
   CODE 4 Object Code
StopAnim();
if (!GetDisk( 1 )) ViewGoto( "expanded\\", "expdmenu.slb", 0 );
else StartAnim();

            GRAPHIC
                0 0 240 48
                0 0 255 155
                0 0
                238 6401
                0 0 0 0


                S:\data\general\images\
                HOTDOG.BM
        OBJECT glossary2
            GRPH  0
            17 400 240 48
            17 400 117 400 117 500 17 500
            1 264 2 0 0
            0 0 ffffffff
            ffffffff 0
            0 0 0 0
            
            S:\data\glossary\
            GLOSSARY.SLB
   CODE 0
            GRAPHIC
                0 0 240 48
                0 0 255 155
                0 0
                238 6401
                0 0 0 0


                S:\data\general\images\
                HOTDOG.BM
        OBJECT glossary
            TEXT  1
            34 407 205 35
            -13 398 87 398 87 498 -13 498
            1 2313 0 0 0
            0 0 ffffffff
            ffffffff 32000000
            0 0 0 0
            glossary2
            S:\DATA\glossary\
            GLOSSARY.SLB
   CODE 0
            TEXT
                2 ffff8080 ffffff00 5 5 5 5
                0 0 255 255 6
                
                
                0 0
               TSTART
/0001S:\DATA\GENERAL\MAINMENU/Glossary
               TEND
        OBJECT expand
            TEXT  1
            34 349 205 35
            -13 340 87 340 87 440 -13 440
            1 2313 0 0 0
            0 0 ffffffff
            ffffffff 32000000
            0 0 0 0
            expand2
            S:\DATA\expanded\
            EXPDMENU.SLB
   CODE 0
            TEXT
                2 ffff8080 ffffff00 5 5 5 5
                0 0 255 255 6
                
                
                0 0
               TSTART
/0002S:\DATA\GENERAL\MAINMENU/Expanded Universe
               TEND
        OBJECT events
            TEXT  1
            34 155 205 35
            -13 146 87 146 87 246 -13 246
            1 2313 0 0 0
            0 0 ffffffff
            ffffffff 32000000
            0 0 0 0
            events2
            S:\DATA\Timeline\
            TIMEMENU.SLB
   CODE 0
            TEXT
                2 ffff8080 ffffff00 5 5 5 5
                0 0 255 255 6
                
                
                0 0
               TSTART
/0003S:\DATA\GENERAL\MAINMENU/Events
               TEND
        OBJECT locales
            TEXT  1
            34 110 205 35
            -13 101 87 101 87 201 -13 201
            1 2313 0 0 0
            0 0 ffffffff
            ffffffff 32000000
            0 0 0 0
            locales2
            S:\DATA\locale\systems\
            systmenu.slb
   CODE 0
            TEXT
                2 ffff8080 ffffff00 5 5 5 5
                0 0 255 255 6
                
                
                0 0
               TSTART
/0004S:\DATA\GENERAL\MAINMENU/Locations
               TEND
        OBJECT tech
            TEXT  1
            34 65 205 35
            -13 56 87 56 87 156 -13 156
            1 2313 0 0 0
            0 0 ffffffff
            ffffffff 32000000
            0 0 0 0
            tech2
            S:\DATA\tech\
            TECHMENU.SLB
   CODE 0
            TEXT
                2 ffff8080 ffffff00 5 5 5 5
                0 0 255 255 6
                
                
                0 0
               TSTART
/0005S:\DATA\GENERAL\MAINMENU/Technology
               TEND
        OBJECT chars
            TEXT  1
            33 20 205 35
            -14 11 86 11 86 111 -14 111
            1 2313 0 0 0
            0 0 ffffffff
            ffffffff 32000000
            0 0 0 0
            chars2
            S:\data\chars\
            CHARMENU.SLB
   CODE 0
            TEXT
                2 ffff8080 ffffff00 5 5 5 5
                0 0 255 255 6
                
                
                0 0
               TSTART
/0006S:\DATA\GENERAL\MAINMENU/Characters
               TEND
        OBJECT prequel
            TEXT  1
            34 200 205 35
            -13 191 87 191 87 291 -13 291
            1 2313 0 0 0
            0 0 ffffffff
            ffffffff 32000000
            0 0 0 0
            prequel2
            S:\DATA\prequel\
            preqmenu.slb
   CODE 0
            TEXT
                2 ffff8080 ffffff00 5 5 5 5
                0 0 255 255 6
                
                
                0 0
               TSTART
/0007S:\DATA\GENERAL\MAINMENU/Episode I Preview
               TEND
        OBJECT behind
            TEXT  1
            34 303 205 35
            -13 294 87 294 87 394 -13 394
            1 2313 0 0 0
            0 0 ffffffff
            ffffffff 32000000
            0 0 0 0
            behind2
            S:\DATA\behind\
            BEHIMENU.SLB
   CODE 0
            TEXT
                2 ffff8080 ffffff00 5 5 5 5
                0 0 255 255 6
                
                
                0 0
               TSTART
/0008S:\DATA\GENERAL\MAINMENU/Behind the Scenes
               TEND
        OBJECT scenes
            TEXT  1
            34 258 205 35
            -13 249 87 249 87 349 -13 349
            1 2313 0 0 0
            0 0 ffffffff
            ffffffff 32000000
            0 0 0 0
            scenes2
            S:\DATA\scenes\
            SCENMENU.SLB
   CODE 0
            TEXT
                2 ffff8080 ffffff00 5 5 5 5
                0 0 255 255 6
                
                
                0 0
               TSTART
/0009S:\DATA\GENERAL\MAINMENU/Scene by Scene
               TEND
        OBJECT vehicles2
            GRPH  0
            18 21 240 48
            18 21 118 21 118 121 18 121
            0 8 0 0 0
            0 0 ffffffff
            ffffffff 0
            0 0 0 0
            
            S:\data\intro\
            TECHINTR.slb
   CODE 0
            GRAPHIC
                0 0 240 48
                0 0 255 155
                0 0
                238 6401
                0 0 0 0


                S:\data\general\images\
                HOTDOG.BM
        OBJECT about2
            GRPH  0
            18 66 240 48
            18 66 118 66 118 166 18 166
            0 8 7 0 0
            0 0 ffffffff
            ffffffff 0
            0 0 0 0
            
            S:\data\general\
            ABOUT.SLB
   CODE 0
            GRAPHIC
                0 0 240 48
                0 0 255 155
                0 0
                238 6401
                0 0 0 0


                S:\data\general\images\
                HOTDOG.BM
        OBJECT about
            TEXT  1
            35 73 205 35
            -12 64 88 64 88 164 -12 164
            1 2057 0 0 0
            0 0 ffffffff
            ffffffff 32000000
            0 0 0 0
            about2
            S:\DATA\general\
            ABOUT.SLB
   CODE 0
            TEXT
                2 ffff8080 ffffff00 5 5 5 5
                0 0 255 255 6
                
                
                0 0
               TSTART
/0010S:\DATA\GENERAL\MAINMENU/About Behind the Magic
               TEND
        OBJECT vehicles
            TEXT  1
            35 28 205 35
            -12 19 88 19 88 119 -12 119
            1 2057 0 0 0
            0 0 ffffffff
            ffffffff 32000000
            0 0 0 0
            vehicles2
            S:\DATA\tech\vehicles\
            vehimenu.slb
   CODE 0
            TEXT
                2 ffff8080 ffffff00 5 5 5 5
                0 0 255 255 6
                
                
                0 0
               TSTART
/0011S:\DATA\GENERAL\MAINMENU/Vehicles
               TEND
        OBJECT line1
            GRPH  0
            28 243 219 0
            28 149 128 149 128 249 28 249
            0 257 0 0 0
            0 0 ffffffff
            ffffffff c4ffffff
            0 0 0 0
            
            
            
   CODE 0
            GRAPHIC
                0 0 0 0
                0 0 255 255
                0 0
                0 1
                0 0 0 0


                
                
        OBJECT CoverAll
            GRPH  0
            0 0 271 445
            0 0 100 0 100 100 0 100
            0 273 0 0 0
            0 0 ffffffff
            ffffffff ff000000
            0 0 0 0
            
            
            
   CODE 0
            GRAPHIC
                0 0 0 0
                0 0 255 255
                0 0
                0 1
                0 0 0 0


                
                
        OBJECT line2
            GRPH  0
            27 393 216 0
            27 299 127 299 127 399 27 399
            0 257 0 0 0
            0 0 ffffffff
            ffffffff c4ffffff
            0 0 0 0
            
            
            
   CODE 0
            GRAPHIC
                0 0 0 0
                0 0 255 255
                0 0
                0 1
                0 0 0 0


                
                
        OBJECT disc2
            TEXT  1
            112 241 56 27
            112 241 212 241 212 341 112 341
            0 257 0 0 0
            0 0 ffffffff
            ff9b9b9b 0
            0 0 0 0
            
            
            
   CODE 0
            TEXT
                2 ffff8080 ffffff00 5 5 5 5
                0 0 255 205 3
                
                
                0 0
               TSTART
/0012S:\DATA\GENERAL\MAINMENU/Disc 2

               TEND
        OBJECT disc1
            TEXT  1
            71 3 135 22
            71 3 171 3 171 103 71 103
            0 257 0 0 0
            0 0 ffffffff
            ff9b9b9b 0
            0 0 0 0
            
            
            
   CODE 0
            TEXT
                2 ffff8080 ffffff00 5 5 5 5
                0 0 255 205 3
                
                
                0 0
               TSTART
/0013S:\DATA\GENERAL\MAINMENU/Disc 1

               TEND
        OBJECT common
            TEXT  1
            109 391 56 27
            109 391 209 391 209 491 109 491
            0 257 0 0 0
            0 0 ffffffff
            ff9b9b9b 0
            0 0 0 0
            
            
            
   CODE 0
            TEXT
                2 ffff8080 ffffff00 5 5 5 5
                0 0 255 205 3
                
                
                0 0
               TSTART
/0014S:\DATA\GENERAL\MAINMENU/Common

               TEND
        OBJECT line2
            GRPH  0
            27 393 216 0
            27 299 127 299 127 399 27 399
            0 4 0 0 0
            0 0 ffffffff
            ffffffff c4ffffff
            0 0 0 0
            
            
            
   CODE 0
            GRAPHIC
                0 0 0 0
                0 0 255 255
                0 0
                0 1
                0 0 0 0


                
                
   FCODE View Enter
      FCSTART -----------------
#include "general\\scripts\\globals.s"
int GoUp(int foo)
{
}

int GoMap( int foo )
{
   ViewGoto("general\\", "mainmap.slb",0 );
}

int StopAnim()
{
   long object;

   if (object=obj_ObjectFind("Animation")) {
      obj_ObjectSetVal( object, ANIM_SETVAL_source_anim, "","",1,0 );
      Sleep();
      gra_RefreshRect(0,0,640,480);
      sou_SoundStopAll();
   }
}

int StartAnim()
{
   long object;

   if (object=obj_ObjectFind("Animation")) {
      obj_ObjectSetVal( object, ANIM_SETVAL_source_anim, "general\\","mainanim.snm",1,0 );
   }
}

// Play intro anim

   public int main_played = 0;

   if (!main_played) {
      main_played = 1;
      if ( wor_GetStartupDisk()) {
         anm_AnimPlay( "intro\\", "intrlogo.znm", 12, 0,0,640,480,1 );
         anm_AnimPlay( "intro\\", "intrfull.znm", 12, 0,0,640,480,1 );
      }
   }

// Turn off "up" button

{
   long object;

   if (object = obj_ObjectFind("Up")) {
      obj_ObjectSetVal( object, GRAPHIC_SETVAL_bricon, -60, -80, 0,0 );
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, 1,1,0,0 );
   }
   if (object = obj_ObjectFind("Home")) {
      obj_ObjectSetVal( object, GRAPHIC_SETVAL_bricon, -60, -80, 0,0 );
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, 1,1,0,0 );
   }
}

// Demo

{
   long object;

   if (object = obj_ObjectFind("about")) {
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, demo_version,1,0,0 );
   }
   if (object = obj_ObjectFind("vehicles")) {
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, demo_version,1,0,0 );
   }
   if (object = obj_ObjectFind("about2")) {
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, demo_version,0,0,0 );
   }
   if (object = obj_ObjectFind("vehicles2")) {
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, demo_version,0,0,0 );
   }

   if (object = obj_ObjectFind("disc1")) {
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, !demo_version,1,0,0 );
   }
   if (object = obj_ObjectFind("disc2")) {
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, !demo_version,1,0,0 );
   }
   if (object = obj_ObjectFind("line1")) {
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, !demo_version,1,0,0 );
   }
   if (object = obj_ObjectFind("line2")) {
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, !demo_version,1,0,0 );
   }
   if (object = obj_ObjectFind("common")) {
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, !demo_version,1,0,0 );
   }
   if (object = obj_ObjectFind("glossary")) {
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, !demo_version,1,0,0 );
   }
   if (object = obj_ObjectFind("chars")) {
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, !demo_version,1,0,0 );
   }
   if (object = obj_ObjectFind("tech")) {
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, !demo_version,1,0,0 );
   }
   if (object = obj_ObjectFind("scenes")) {
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, !demo_version,1,0,0 );
   }
   if (object = obj_ObjectFind("locales")) {
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, !demo_version,1,0,0 );
   }
   if (object = obj_ObjectFind("behind")) {
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, !demo_version,1,0,0 );
   }
   if (object = obj_ObjectFind("expand")) {
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, !demo_version,1,0,0 );
   }
   if (object = obj_ObjectFind("prequel")) {
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, !demo_version,1,0,0 );
   }
   if (object = obj_ObjectFind("events")) {
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, !demo_version,1,0,0 );
   }

   if (object = obj_ObjectFind("glossary2")) {
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, !demo_version,0,0,0 );
   }
   if (object = obj_ObjectFind("chars2")) {
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, !demo_version,0,0,0 );
   }
   if (object = obj_ObjectFind("tech2")) {
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, !demo_version,0,0,0 );
   }
   if (object = obj_ObjectFind("scenes2")) {
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, !demo_version,0,0,0 );
   }
   if (object = obj_ObjectFind("locales2")) {
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, !demo_version,0,0,0 );
   }
   if (object = obj_ObjectFind("behind2")) {
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, !demo_version,0,0,0 );
   }
   if (object = obj_ObjectFind("expand2")) {
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, !demo_version,0,0,0 );
   }
   if (object = obj_ObjectFind("prequel2")) {
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, !demo_version,0,0,0 );
   }
   if (object = obj_ObjectFind("events2")) {
      obj_ObjectSetVal( object, OBJECT_SETVAL_enable, !demo_version,0,0,0 );
   }
  
}
      FCEND -------------------
   CODE 0
   CODE 0
S:\DATA\GENERAL\ disk_ovr.slb

Das ist die "MAINMENU.SLB". Dort sieht man auch noch mal die die Zeile mit dem "intrfull.znm" und ein wenig darüber die Abfrage mit dem Eintrag: "wor_GetStartupDisk"
Zitieren
#4
0
Interessant. Weißt du ob alles über diese Art von Scripten gesteuert und die Exe nur ein Interpreter ist?
Des weiteren: Weißt du, ob das System noch in anderen Spielen oder Software verwendet wird?
Zitieren
#5
0
Das wird komplett so gesteuert das Game.
Das andere Game was genauso arbeitet ist die Star Wars - Episode 1 - Insider's Guide (Magie eines Mythos auf deutsch)

Oft hat LucasArts solche Systeme verwendet die in der gleichen Zeit liegen.
Keine Ahnung ob es da noch mehr zu gibt.
Zitieren
#6
0
Interessant. Wenn es ein Scripting-System gibt dann wäre sowas auch für ScummVM interessant.
Zitieren
#7
0
Die Skripte bei LucasArts Games unter ScummVM sind aber ganz andere:

Hier mal ein Skript Ausschnitt aus Monkey Island 2:

Raum - Kapitel 1 Logo - Das Largo Embargo:
Code:
00000008 cut-scene  {
00000010 override 82
00000015 room-fade 257
00000019 current-room the-void
00000021 room-fade -32383
00000025 current-room room1
00000027 break-here
00000028 start-sound sound169
00000030 sound-kludge -1
00000035 if (var597 == 1) 78
00000042 sound-kludge 13 169
00000050 sound-kludge -1
00000055 locvar0 = var56
00000060 if (locvar0 >= 0) 68
00000067 break-here
00000068 if (locvar0 < 0) 42
00000075 jump 82
00000078 sleep-for 300 jiffies
00000082 override off
00000084 stop-sound sound169
00000086 room-fade -32383
00000090 current-room the-void
00000092 room-fade 257
00000096 } ; end-cut-scene
00000097 bitvar360 = 1
00000102 come-out-door object43 in-room room7 at 696,49
00000110 room-fade -32383
00000114 ; end-script


Bei Monkey Island 3 sieht es ähnlich aus
Raum - Kapitel 1 erste Szene mit Wally
Code:
00000018 cut-scene 2 {
00000019 override 353
00000045 put-actor actor2 at 0,0 in-room room9
00000051 actor actor2
00000058 actor elevation 390
00000088 put-actor actor2 at actobj-x(object2),actobj-y(object2) + 390 in-room var31
00000100 if (var31 == 18) 166
00000134 if (proximity-2points(actobj-x(object1),actobj-y(object1),212,359) != 0) 166
00000154 walk actor1 to 212,359
00000160 wait-for-actor -11 actor1
00000171 actor actor1
00000178 actor costume costume31
00000185 actor actor1
00000192 actor face 180
00000199 actor actor1
00000201 actor ignore-boxes
00000208 actor actor1
00000215 actor elevation 12
00000245 put-actor actor1 at actobj-x(object1),actobj-y(object1) + 12 in-room var31
00000256 do-animation actor1 6
00000262 break-here 4
00000283 put-actor actor11 at 0,0 in-room the-void
00000289 break-here 5
00000305 im-start-music sound0
00000306 start-video "sinkshp.san"
00000324 stop-script script2014
00000350 room-rgb-intensity 0,0,0 in 0 to 255
00000352 break-here
00000358 if (var30) 375
00000363 override off
00000364 print-line baseop
00000366 print-line " "
00000370 jump 376
00000375 override off
00000376 } ; end-cut-scene
00000382 actor actor1
00000384 actor follow-boxes
00000391 actor actor1
00000393 actor default
00000400 actor costume costume2
00000412 actor text-offset 0,-95
00000424 actor step-dist 13,4
00000431 actor talk-color 15
00000443 actor text-offset 0,-300
00000450 actor always-zclip -1
00000457 if (bitvar44) 476
00000467 actor actor1
00000474 actor costume costume192
00000481 actor actor1
00000488 actor special-draw 3
00000495 actor actor1
00000502 actor frequency var611
00000541 if (!var31 in-set [39 40 41 42 43]) 628
00000586 build-palette-shadow 6 190,190,190 0 229
00000627 build-palette-shadow 7 220,220,220 0 229
00000638 do-animation actor1 3
00000644 var643 = 47
00000661 if (owner-of(object335) == 1) 836
00000686 start-object 2 object335 verb91
00000692 if (var266) 720
00000702 load-object var266
00000719 class-of var266 is 160
00000730 owner-of object335 is actor0
00000743 if (var315 > actor-inventory-count(var126)) 758
00000753 var315 = 1
00000769 if (var290 != 105) 826
00000779 var292 = var291
00000794 cursor from-object object105 image 1
00000801 var290 = 105
00000811 var291 = 105
00000821 bitvar19 = 0
00000831 bitvar20 = 0
00000848 if (owner-of(object281) == 1) 1023
00000873 start-object 2 object281 verb91
00000879 if (var266) 907
00000889 load-object var266
00000906 class-of var266 is 160
00000917 owner-of object281 is actor0
00000930 if (var315 > actor-inventory-count(var126)) 945
00000940 var315 = 1
00000956 if (var290 != 105) 1013
00000966 var292 = var291
00000981 cursor from-object object105 image 1
00000988 var290 = 105
00000998 var291 = 105
00001008 bitvar19 = 0
00001018 bitvar20 = 0
00001043 put-actor actor1 at 320,240 in-room room12
00001054 cut-scene 2 {
00001060 camera-follow actor1
00001066 actor actor1
00001073 actor costume costume3
00001080 actor face 180
00001092 do-animation actor1 6
00001098 break-here 17
00001104 actor actor1
00001106 actor follow-boxes
00001113 actor actor1
00001115 actor default
00001122 actor costume costume2
00001134 actor text-offset 0,-95
00001146 actor step-dist 13,4
00001153 actor talk-color 15
00001165 actor text-offset 0,-300
00001172 actor always-zclip -1
00001179 if (bitvar44) 1198
00001189 actor actor1
00001196 actor costume costume192
00001203 actor actor1
00001210 actor special-draw 3
00001217 actor actor1
00001224 actor frequency var611
00001263 if (!var31 in-set [39 40 41 42 43]) 1350
00001308 build-palette-shadow 6 190,190,190 0 229
00001349 build-palette-shadow 7 220,220,220 0 229
00001360 do-animation actor1 3
00001366 var643 = 47
00001376 actor actor1
00001383 actor face 225
00001395 do-animation actor1 3
00001396 } ; end-cut-scene
00001402 say-line actor1 "/CNGT006/Hey!  I lost my cutlass when the ship capsized."
00001460 ; end-script


Die ähneln sich halt und bauen auch ganz anders auf.
Zitieren
#8
0
Ja ich weiß Smile Was ich meine ist: Es ist einfacher einen Script-Interpreter zu schreiben als wenn die Scripte in den EXE-Dateien hardcoded sind.
Oder anders ausgedrückt: Die Wahrscheinlichkeit, dass sowas dann in ScummVM landet, ist höher.
Zitieren
#9
0
Achso. Ja, wäre möglich. Wenn die bei ScummVM das mit einbauen, wäre das auf jedenfall eine Bereicherung.
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Phantasy Star BB Server Gamer95 5 4.960 14.02.2011, 23:01
Letzter Beitrag: Gamer95
  [Frage] Might and Magic 4/5 editieren Wann4 1 3.019 06.06.2009, 17:53
Letzter Beitrag: memphis
  [Problem] entweder Tiberium Wars oder Alarmstufe Rot 3. Beides geht nicht ! :( CrazyJose 4 2.920 30.12.2008, 12:44
Letzter Beitrag: memphis
  Might & Magic VIII unter XP Vicman 7 4.017 10.07.2008, 22:10
Letzter Beitrag: ReservoirDog
  [Problem] LEGO Star Wars - Schwarzer Bildschirm KUBA2588 7 4.260 11.11.2007, 12:26
Letzter Beitrag: KUBA2588

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste