Seite 1 von 1

Source Problem

Verfasst: 15 Jul 2004, 20:25
von Wulfy301
Hallo Leute!

Ich möchte die Original Kampane von JA2 Gold um einige Unterirdische - Maps erweitern.
Das geht aber nur wenn man die JA2.exe verändert damit die neuen Karten auch benutzt werden können, sonst gibts nämlich Abstürze wenn man die Karten betreten möchte.
Ich hab's schon mit dem hinzufügen von Unterirdischen Sektoren im Source-Code versucht, aber irgendwie mache ich was falsch, im Spiel werden die neuen Karten nicht erkannt und ich lande wieder auf dem Desktop.

Hat das schon jemand außer mir versucht und hat's hinbekommen?? Bitte helft mir!!:confused:

Verfasst: 15 Jul 2004, 20:53
von shadow the deat
also zur Definition wieviele und wo die Gegner sind das stand glaub ich bei den Strategic Mines.c aber kann sein das das nur die Minenmaps sind

und du musst der Map eine Screen zurordnen das war in einer Dat ka welche

die sind verschlüsselt hab sie selbst nicht ediert da ich nicht weiß wie das geht weiß blos es war +1

Verfasst: 16 Jul 2004, 12:33
von shadow the deat
hab jetzt das mit den Screen gefunden es ist unter
Mapscreen.c

wenn du ein neues hinzufügst dann musst du beachten das du in der .h datei die Zeile hinzufügst und in der .c unten die Sti zuordnenst wenn du ein Vorhandenes nimmst reicht in der .c die Oberste Zeile

Verfasst: 16 Jul 2004, 15:22
von Wulfy301
Hallo shadow the deat,

danke für Deine Hilfe, aber es geht immer noch nicht!

Ich habe folgendes gemacht:

1. \Strateg.c\Campaign Init.c(193) => Zeile eingefügt für neuen Hölensektor (curr = NewUndergroundNode (8, 1, 1):

2. \Mapscreen.c => Zeile eingefügt (case Sec_A8)

3. Karte A8 verändert (Gitterpunkt A8_b1 gesetzt)

4. Neue Karte A8_b1 erstellt (Gitterpunkt A8 gesetzt)

5. Beide Karten ins Spieleverzeichniss unter Maps kopiert.

6. Spiel gestartet; versucht Sektor A8_b1 zu betreten; auf dem Windows-Desktop gelandet!

Was mache ich falsch?:uhoh:

Verfasst: 16 Jul 2004, 22:25
von shadow the deat
am besten poste mal die fehler Meldung die müsste aufschluss geben :D

aber versuch mal curr = NewUndergroundNode ( 8, 1, 1 ): die Leerzeichen zu setzen


werds mal Morgen versuchen will selbst neue Untergrundkarten

Verfasst: 17 Jul 2004, 08:07
von Wulfy301
Guten Morgen shadow the deat,

:erdbeerteechug:

hier ist die fehler Meldung.

Verfasst: 17 Jul 2004, 11:30
von shadow the deat
die meinte ich eigendlich nicht denn mit den Offsets kann ich nichts anfangen :cry:


ich meinte wenn ja2 abstürtzt bei einen Fehler dann kommt doch erst noch nen Screen

zB Error dann irgendwas und dann die .h datei oder .c und das wollte ich haben aber egal ich denkt du findest das schon :D

Verfasst: 17 Jul 2004, 16:59
von Wulfy301
Sorry shadow the deat,

es gibt keine Fehlermeldung, nach dem Absturz komme ich sofort auf den Windows-Desktop zurück.

Verfasst: 17 Jul 2004, 20:50
von shadow the deat
mist

mal ne Frage hast du eigendlich die 1.12 Beta ? also mit Editor ?

zu dein Problem ich hab grad selber eins mit den Sourcfe ist zwar nicht die Welt dauert aber


entferne grad den XML Müll von Digicrab aus den Source muss aber noch den Autofiremod enthalten lassen

alles sehr verwirrend :uhoh:

Sha*Akte X ind Akte Ja2 benenn*dow

Verfasst: 18 Jul 2004, 07:37
von Wulfy301
Nochmal Guten Morgen shadow the deat!

:erdbeerteechug:

Jetzt hab ich's!
Die Änderungen im Source werden erst wirksam wenn man ein neues Spiel anfängt!!

Auf die einfachsten Dinge kommt man immer zuletzt, mist!

Also, um neue Unterirdische Sektoren ins Spiel einfügen zu können, im Source zu "\Strateg.c\Campaign Init.c" gehen dort ab "Basement Level 1" die neuen Sektoren einfügen z.B. "(curr = NewUndergroundNode (8, 1, 1):", die neuen Karten in den JA2-Ordner "Maps" kopieren, neues Spiel starten und fun haben.

Wenn der Loadescreen im Spiel die "Treppe" als Ladebild zeigen soll, im Source zu "Build\Loading Screen.c" gehen (Line 171), dort eine neue Zeile einfügen z.B. (case Sec_A8) und man sieht im Spiel die "Treppe" als Loadscreen.
Wenn man dort keine Änderung macht ist immer der "Hölen" Loadscreen zu sehen.

P.S. Was meinst Du mit Version 1.12 Beta? &
Was für einen XML Müll?:look:

Verfasst: 18 Jul 2004, 09:32
von shadow the deat
:confused: mal eine frage was ist der Unterschied zwischen den was du jetzt gemacht hast und davor ?


aber egal mit Beta 1.12 mein ich das die Beta version die man aus den Source bekommt also mit Editor definiert .....

und XML ist eine Programmiersprache die Digicrab im Write Hat Projekt verwendet um die Daten zu extrahieren aber da die C version davon unsauber ist und unübersichtlich arbeite ich an der Extrahierung des Kommasystem aber egal muss man nicht verstehn warten bis es fertig ist :D

Verfasst: 18 Jul 2004, 10:12
von Wulfy301
Hallo shadow the deat,

es ist dasselbe was ich von Anfang an gemacht habe, nur habe ich kein Ergebniss im Spiel gesehen, erst bei einem Neustart werden die neuen Karten geladen und das habe ich erst jetzt herausgefunden.:summer:

Verfasst: 18 Jul 2004, 15:16
von Bad Puma
@ Wulfi tust du mir einen gefallen und schreibst das als tut so das man das als noob versteht damit ich meine site um dein Wissen erweitern kann. Biiiiiiiiitteeeeeeeeeee!

mfg

Puichbettelnichtma

Verfasst: 18 Jul 2004, 15:51
von shadow the deat
hier haste eins ;-)

also man muss in Strategic\Campaign Init.c

ab Zeile 191 kann man sowas einfügen

curr = NewUndergroundNode( 10, 1, 1 );
// die 10 ist das Alphabetcoordinatensystem
// die 1 ist das Zahlencoordinatensystem
// die 1 ist die Untergrundebene

wenn man Gegner haben will

switch( gGameOptions.ubDifficultyLevel )
{
case DIF_LEVEL_EASY: // bei Leicht
curr->ubNumTroops = 8; // 8 Soldaten
break;
case DIF_LEVEL_MEDIUM: // bei Normal
curr->ubNumTroops = 11; // 11 Soldaten break;
case DIF_LEVEL_HARD:// bei Schwer
curr->ubNumTroops = 15; // 15 Soldaten
break;
}

ein Beispiel

curr = NewUndergroundNode( 9, 10, 1 );
switch( gGameOptions.ubDifficultyLevel )
{
case DIF_LEVEL_EASY:
curr->ubNumTroops = 8;
break;
case DIF_LEVEL_MEDIUM:
curr->ubNumTroops = 11;
break;
case DIF_LEVEL_HARD:
curr->ubNumTroops = 15;
break;
}
dies ist Tixa

es gibt auch verschiede Rechenarten zum Einstellen der Truppen

curr->ubNumTroops = (UINT8)(6 + gGameOptions.ubDifficultyLevel*2 + Random( 3 ));
// dieser Block hat normal 6 Soldaten + Schwierigkeitsgrad mal 2 +
// Zufallsgenerierung = 3
curr->ubNumElites = (UINT8)(4 + gGameOptions.ubDifficultyLevel + Random( 2 ));
// dieser Block hat normal 4 Elite + Schwierigkeitsgrad +
// Zufallsgenerierung = 2

oder diese hier {
case DIF_LEVEL_EASY:
curr->ubNumElites = (UINT8)(8 + Random( 3 ));
break;
case DIF_LEVEL_MEDIUM:
curr->ubNumElites = (UINT8)(10 + Random( 5 ));
break;
case DIF_LEVEL_HARD:
curr->ubNumElites = (UINT8)(14 + Random( 6 ));
break;
}
darauf geh ich nicht ein da es sich gleicht

eine Theory steht offen die einer Nachweisen muss die Random() bedeutet das immer wenn der Sektor besetzt werden X Soldaten da sind + den "Befreiern"

curr->ubAdjacentSectors |= SOUTH_ADJACENT_SECTOR;

dieses Option schaltet frei öb der Sektor neben Sektoren hat
Mögliche Flags NORTH_ADJACENT_SECTOR,WEST_ADJACENT_SECTOR,EAST_ADJACENT_SECTOR,SOUTH_ADJACENT_SECTOR

curr->ubNumCreatures = (UINT8)(2 + gGameOptions.ubDifficultyLevel*2 + Random( 2 ));

dieser Befehl aktiviert die Monster zB in Tixi


@Loading Screen.c
line 171 da in den Codeabschnitt
case SEC_A10 oder was auch immer eintragen dann hat man den normalen Basement Screen
oder ab line 31

case SEC_A10: // Sektor
if( fNight ) // das es nacht ist
return LOADINGSCREEN_NIGHTOMERTA;
return LOADINGSCREEN_DAYOMERTA;

mögliche Frags
LOADINGSCREEN_NOTHING,
LOADINGSCREEN_DAYGENERIC,
LOADINGSCREEN_DAYTOWN1,
LOADINGSCREEN_DAYTOWN2,
LOADINGSCREEN_DAYWILD,
LOADINGSCREEN_DAYTROPICAL,
LOADINGSCREEN_DAYFOREST,
LOADINGSCREEN_DAYDESERT,
LOADINGSCREEN_DAYPALACE,
LOADINGSCREEN_NIGHTGENERIC,
LOADINGSCREEN_NIGHTWILD,
LOADINGSCREEN_NIGHTTOWN1,
LOADINGSCREEN_NIGHTTOWN2,
LOADINGSCREEN_NIGHTFOREST,
LOADINGSCREEN_NIGHTTROPICAL,
LOADINGSCREEN_NIGHTDESERT,
LOADINGSCREEN_NIGHTPALACE,
LOADINGSCREEN_HELI,
LOADINGSCREEN_BASEMENT,
LOADINGSCREEN_MINE,
LOADINGSCREEN_CAVE,
LOADINGSCREEN_DAYPINE,
LOADINGSCREEN_NIGHTPINE,
LOADINGSCREEN_DAYMILITARY,
LOADINGSCREEN_NIGHTMILITARY,
LOADINGSCREEN_DAYSAM,
LOADINGSCREEN_NIGHTSAM,
LOADINGSCREEN_DAYPRISON,
LOADINGSCREEN_NIGHTPRISON,
LOADINGSCREEN_DAYHOSPITAL,
LOADINGSCREEN_NIGHTHOSPITAL,
LOADINGSCREEN_DAYAIRPORT,
LOADINGSCREEN_NIGHTAIRPORT,
LOADINGSCREEN_DAYLAB,
LOADINGSCREEN_NIGHTLAB,
LOADINGSCREEN_DAYOMERTA,
LOADINGSCREEN_NIGHTOMERTA,
LOADINGSCREEN_DAYCHITZENA,
LOADINGSCREEN_NIGHTCHITZENA,
LOADINGSCREEN_DAYMINE,
LOADINGSCREEN_NIGHTMINE,
LOADINGSCREEN_DAYBALIME,
LOADINGSCREEN_NIGHTBALIME,

wie man sich selbst welche mach schreib ich nicht das müsst ihr selbst rausfinden



*lol*