Waffenhändler Tony

Kein Durchblick im Quellcode von Ja2? Hier werden sie geholfen.

Moderator: Flashy

Waffenhändler Tony

Beitragvon Wulfy301 » 18. Feb 2005 21:48

Hallo Leute,

für alle, die es wie mich stört das Tony ständig Inventur macht!:summer:
Diese Stelle im Source gibt an ob Tony im Laden ist oder nicht.

C:\ja2\Build\Strategic\Strategic Event Handler.c

if( gMercProfiles[ TONY ].ubLastDateSpokenTo > 0 && !( gWorldSectorX == 5 && gWorldSectorY == MAP_ROW_C && gbWorldSectorZ == 0 ) )
{
// San Mona C5 is not loaded so make Tony possibly not available
if (Random( 4 ))
{
// Tony IS available
SetFactFalse( FACT_TONY_NOT_AVAILABLE );
gMercProfiles[ TONY ].sSectorX = 5;
gMercProfiles[ TONY ].sSectorY = MAP_ROW_C;
}
else
{
// Tony is NOT available
SetFactTrue( FACT_TONY_NOT_AVAILABLE );
gMercProfiles[ TONY ].sSectorX = 0;
gMercProfiles[ TONY ].sSectorY = 0;
}
}

Wenn man den Random-Wert auf Null setzt ist Tony immer im Laden!
Ich habe es ein paar mal versucht und er war jedes Mal da, scheint also hinzuhauen.

Mfg...
Du hast Probleme mit dem "grünen Rand" (Item-Dateien)? Sinclair hat die Lösung -> Guckst Du hier!:hit:
Wulfy301
Bravo-Squad
 
Beiträge: 640
Registriert: 18. Jun 2004 22:58

Beitragvon Tobeas » 20. Feb 2005 01:13

wärs möglich das gleiche auch bei anderen NPCs zu machen, also einzufügen?
Ich hab mich am 11.02.2002 um 11:28 hier im Forum angemeldet und habe am 17.10.2002 um 20:22 meinen 1000.Post geschrieben!!!
Tobeas
Alpha-Squad
 
Beiträge: 1873
Registriert: 11. Feb 2002 11:10

Beitragvon Wulfy301 » 20. Feb 2005 01:39

Moin Tobeas,

ja, sollte mit jedem NPC gehen.

Mfg...
Du hast Probleme mit dem "grünen Rand" (Item-Dateien)? Sinclair hat die Lösung -> Guckst Du hier!:hit:
Wulfy301
Bravo-Squad
 
Beiträge: 640
Registriert: 18. Jun 2004 22:58

Beitragvon Nitrat » 20. Feb 2005 01:42

ehh, welchen Sinn ergibt es, das mit den NPC's zu machen ?

MFG....
Nitrat
Schrecken der Tyrannen
 
Beiträge: 19154
Registriert: 24. Jul 2000 11:00

Beitragvon Wulfy301 » 20. Feb 2005 02:27

@Nitrat

NPC oder RPC, ich bring das immer durcheinander, dann müsste Tony also ein RPC sein.
In dem Fall muss es richtig heißen: "Ja, sollte mit jedem RPC gehen"!:D

Mfg...
Du hast Probleme mit dem "grünen Rand" (Item-Dateien)? Sinclair hat die Lösung -> Guckst Du hier!:hit:
Wulfy301
Bravo-Squad
 
Beiträge: 640
Registriert: 18. Jun 2004 22:58

Beitragvon Nitrat » 20. Feb 2005 03:23

RPC = Recrutable Playble Character
NPC = Non Playble Character
EPC = Escortable Person Character

(schreibweise ist so ähnlich, aber hoff das der sinngehalt richtig ist :D )
MFG.....
Nitrat
Schrecken der Tyrannen
 
Beiträge: 19154
Registriert: 24. Jul 2000 11:00

Beitragvon -=[MAD]=- » 20. Feb 2005 19:26

Nitrat hat geschrieben:ehh, welchen Sinn ergibt es, das mit den NPC's zu machen ?

MFG....
hmm, vielleicht damit zB ein paar gewisse Terroristen ( ;) )immer im gleichen sektor sind (und überhaupt da) :)

gruss, -=[MAD]=-
neuestes Projekt: Ja2 - Fight For Freedom <-- Neuigkeiten!

Fundgrube für Ja2-Files: http://www.hoenir.de/ja2/
-=[MAD]=-
Ironman
 
Beiträge: 8619
Registriert: 9. Nov 2003 12:00

Beitragvon shadow the deat » 20. Feb 2005 19:33

ist unterschiedlich manches ist im Souce manches ist aber auch Sheduler :D
naja auf jeden Fall sind die Terroristen im Source *lol*
:lhdevil: :uriel: Führer der SoS :lhdevil: (soldiers of shadow)

:lhdevil: Enominis Satanis :lhdevil:

Die Your God is Dead
Behold Satans Rise :hail:


(Action)Gamer für Gewalt und Terror :k:
shadow the deat
Alpha-Squad
 
Beiträge: 1593
Registriert: 1. Feb 2002 19:22

Beitragvon Wulfy301 » 21. Feb 2005 17:27

Das die Terroristen immer im gleichen Sektor sind, ist etwas Langweilig, aber das alle Terroristen in einem Spiel zufinden sind, ist keine schlechte Idee, muss ich mal schauen ob das geht!

Mfg...
Du hast Probleme mit dem "grünen Rand" (Item-Dateien)? Sinclair hat die Lösung -> Guckst Du hier!:hit:
Wulfy301
Bravo-Squad
 
Beiträge: 640
Registriert: 18. Jun 2004 22:58

Beitragvon Nitrat » 21. Feb 2005 17:40

Wär daran intressiert das in dem Best Off Mod zu intergrieren lassen.


MFG....
Nitrat
Schrecken der Tyrannen
 
Beiträge: 19154
Registriert: 24. Jul 2000 11:00

Beitragvon Wulfy301 » 21. Feb 2005 17:45

@Nitrat

Wenn ich erfolgreich bin, werde ich es natürlich ins Forum stellen, sollen doch alle was davon haben!

Mfg...
Du hast Probleme mit dem "grünen Rand" (Item-Dateien)? Sinclair hat die Lösung -> Guckst Du hier!:hit:
Wulfy301
Bravo-Squad
 
Beiträge: 640
Registriert: 18. Jun 2004 22:58

Beitragvon shadow the deat » 21. Feb 2005 19:01

ich kann dir zwar grad nicht sagen wo das war aber es war in Strategic
und war ne Prozentzahl die für die Schwirigkeitsgrade unterschiedlich war
also auf 100 % und du hast die immer :D
:lhdevil: :uriel: Führer der SoS :lhdevil: (soldiers of shadow)

:lhdevil: Enominis Satanis :lhdevil:

Die Your God is Dead
Behold Satans Rise :hail:


(Action)Gamer für Gewalt und Terror :k:
shadow the deat
Alpha-Squad
 
Beiträge: 1593
Registriert: 1. Feb 2002 19:22

Beitragvon Wulfy301 » 21. Feb 2005 19:51

@shadow the deat

Im Anhang ist ein Auszug der Stelle im Source, der Terroristen betreffenden, das mit den 100 % habe ich ausprobiert, hat aber nicht geklappt, es scheint etwas komplizierter zu sein.

Mfg...
Dateianhänge
Terroristen.doc
(34 KiB) 281-mal heruntergeladen
Du hast Probleme mit dem "grünen Rand" (Item-Dateien)? Sinclair hat die Lösung -> Guckst Du hier!:hit:
Wulfy301
Bravo-Squad
 
Beiträge: 640
Registriert: 18. Jun 2004 22:58

Beitragvon Realist » 21. Feb 2005 20:29

moin

hatte ich mir schonmal angeguckt, sollte kein problem darstellen.
werds mir nochmals anschauen, und posten was man machen muss, falls mir niemand zuvorkommt ;).

@Nitrat
soll rein, ja? :)
Realist
Alpha-Squad
 
Beiträge: 1573
Registriert: 24. Apr 2003 11:00
Wohnort: Düsseldorf

Beitragvon Wulfy301 » 21. Feb 2005 20:46

@Realist

Ich hoffe das es für dich kein Problem ist, alles was ich bis jetzt probiert habe, ergab nicht die erwünschte Wirkung!:shakehead:
So wie es aussieht sollen nicht mehr als 4 Terroristen im Spiel vorkommen.

Mfg...
Du hast Probleme mit dem "grünen Rand" (Item-Dateien)? Sinclair hat die Lösung -> Guckst Du hier!:hit:
Wulfy301
Bravo-Squad
 
Beiträge: 640
Registriert: 18. Jun 2004 22:58

Beitragvon shadow the deat » 21. Feb 2005 20:58

[PHP]switch( gGameOptions.ubDifficultyLevel )
{
case DIF_LEVEL_EASY:
uiChance = 70;
break;
case DIF_LEVEL_HARD:
uiChance = 30;
break;
default:
uiChance = 50;
break;
}
// add at least 2 more
ubNumAdditionalTerrorists = 2;
for (ubLoop = 0; ubLoop < (MAX_ADDITIONAL_TERRORISTS - 2); ubLoop++)
{
if (Random( 100 ) < uiChance)
{
ubNumAdditionalTerrorists++;
}
}
[/PHP]

die Sachen definieren nur den Wert für uiChance den einfach auf 100
[PHP]#define MAX_ADDITIONAL_TERRORISTS 4[/PHP]
das muss auf 5 oder 6 muss man testen

[PHP]if ( ( gMercProfiles[ ubTerrorist ].sSectorX == 0 ) && ( Random( 100 ) < 40 ) )[/PHP]

Statt der 40 nimm uiChance müsste gehn wenn nicht 100
:lhdevil: :uriel: Führer der SoS :lhdevil: (soldiers of shadow)

:lhdevil: Enominis Satanis :lhdevil:

Die Your God is Dead
Behold Satans Rise :hail:


(Action)Gamer für Gewalt und Terror :k:
shadow the deat
Alpha-Squad
 
Beiträge: 1593
Registriert: 1. Feb 2002 19:22

Beitragvon Wulfy301 » 22. Feb 2005 19:32

@shadow the deat

Habe die neuen Einstellungen ein paar mal getestet aber es scheint nicht zu funktionieren.
Man kann nur max. 5 Terroristen einstellen, bei 6 stürzt der Computer ab. Im Source sind folgende Sektoren ( H14 / C6 / G1 / G2 / G8 / I14 / F9 / B2 / L11 / H2 ) angegeben, wo die Terroristen auftauchen sollen, mehr als 4 gleichzeitig konnte ich aber nie finden.

Mfg...
Du hast Probleme mit dem "grünen Rand" (Item-Dateien)? Sinclair hat die Lösung -> Guckst Du hier!:hit:
Wulfy301
Bravo-Squad
 
Beiträge: 640
Registriert: 18. Jun 2004 22:58

Beitragvon Realist » 23. Feb 2005 07:00

mmh,
ich hab mit source schon die 5 terris geschafft zu finden, prinzipiell ist shadows idee die richtige. :)
Realist
Alpha-Squad
 
Beiträge: 1573
Registriert: 24. Apr 2003 11:00
Wohnort: Düsseldorf

Beitragvon Wulfy301 » 23. Feb 2005 18:16

@Realist

Was meinst Du mit "prinzipiell ist shadows idee die richtige"?
Hast Du einen andere Lösung?

Mfg...
Du hast Probleme mit dem "grünen Rand" (Item-Dateien)? Sinclair hat die Lösung -> Guckst Du hier!:hit:
Wulfy301
Bravo-Squad
 
Beiträge: 640
Registriert: 18. Jun 2004 22:58

Beitragvon Tobeas » 23. Feb 2005 20:56

muss man nicht

[PHP]for (ubLoop = 0; ubLoop < (MAX_ADDITIONAL_TERRORISTS - 2); ubLoop++)[/PHP]
ändern zu

[PHP]for (ubLoop = 0; ubLoop < (MAX_ADDITIONAL_TERRORISTS); ubLoop++)[/PHP]
Ich hab mich am 11.02.2002 um 11:28 hier im Forum angemeldet und habe am 17.10.2002 um 20:22 meinen 1000.Post geschrieben!!!
Tobeas
Alpha-Squad
 
Beiträge: 1873
Registriert: 11. Feb 2002 11:10

Beitragvon Realist » 24. Feb 2005 08:07

@Wulfy
nein meine lösung ist "vom prinzip her" die gleiche, daher sage ich auch "prinzipiell richtig".
kann ja mal meins posten mit dem ich 5 terroristen kirege.

@Tobeas
kann man machen, ich hab allerdings
ubNumAdditionalTerrorists,
das in der schleife erhöht wird, einfach nach der schleife manuell hochgesetzt :)
natürlich nur zu testzwecken :D
Realist
Alpha-Squad
 
Beiträge: 1573
Registriert: 24. Apr 2003 11:00
Wohnort: Düsseldorf

Beitragvon Realist » 24. Feb 2005 09:18

doh, wie lange hat man eigentlich zeit seinen beitrag zu editen?

Code: Alles auswählen
// neu:
#define MAX_ADDITIONAL_TERRORISTS 5


void DecideActiveTerrorists( void )
{
   UINT8      ubLoop, ubLoop2;
   UINT8      ubTerrorist;
   UINT8      ubNumAdditionalTerrorists, ubNumTerroristsAdded = 0;
   UINT32   uiChance, uiLocationChoice;
   BOOLEAN   fFoundSpot;
// neu:
   INT16      sTerroristPlacement[MAX_ADDITIONAL_TERRORISTS][2] = { {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0} };


   #ifdef CRIPPLED_VERSION
      return;
   #endif

   // one terrorist will always be Elgin
   // determine how many more terrorists - 2 to 4 more

   // using this stochastic process(!), the chances for terrorists are:
   // EASY:      3, 9%         4, 42%      5, 49%
   // MEDIUM:   3, 25%      4, 50%      5, 25%
   // HARD:      3, 49%      4, 42%      5, 9%
   switch( gGameOptions.ubDifficultyLevel )
   {
      case DIF_LEVEL_EASY:
         uiChance = 70;
         break;
      case DIF_LEVEL_HARD:
         uiChance = 30;
         break;
      default:
         uiChance = 50;
         break;
   }

   // add at least 2 more
   ubNumAdditionalTerrorists = 2;
   for (ubLoop = 0; ubLoop < (MAX_ADDITIONAL_TERRORISTS - 2); ubLoop++)
   {
      if (Random( 100 ) < uiChance)
      {
         ubNumAdditionalTerrorists++;
      }
   }
// neu:
   ubNumAdditionalTerrorists = 5;

   // ifdefs added by CJC
   #ifdef JA2TESTVERSION
      ubNumAdditionalTerrorists = 4;
   #endif

   while ( ubNumTerroristsAdded < ubNumAdditionalTerrorists )
   {

      ubLoop = 1; // start at beginning of array (well, after Elgin)

      // NB terrorist ID of 0 indicates end of array
      while ( ubNumTerroristsAdded < ubNumAdditionalTerrorists && gubTerrorists[ ubLoop ] != 0 )
      {

         ubTerrorist = gubTerrorists[ ubLoop ];

         // random 40% chance of adding this terrorist if not yet placed
// neu:
         if ( ( gMercProfiles[ ubTerrorist ].sSectorX == 0 ) )
         {
            fFoundSpot = FALSE;
            // Since there are 5 spots per terrorist and a maximum of 5 terrorists, we
            // are guaranteed to be able to find a spot for each terrorist since there
            // aren't enough other terrorists to use up all the spots for any one
            // terrorist
            do
            {
               // pick a random spot, see if it's already been used by another terrorist
               uiLocationChoice = Random( NUM_TERRORIST_POSSIBLE_LOCATIONS );

               for (ubLoop2 = 0; ubLoop2 < ubNumTerroristsAdded; ubLoop2++)
               {
                  if (sTerroristPlacement[ubLoop2][0] == gsTerroristSector[ubLoop][uiLocationChoice][0] )
                  {
                     if (sTerroristPlacement[ubLoop2][1] == gsTerroristSector[ubLoop][uiLocationChoice][1] )
                     {
                        continue;
                     }
                  }
               }
               fFoundSpot = TRUE;

            } while( !fFoundSpot );

            // place terrorist!
            gMercProfiles[ ubTerrorist ].sSectorX = gsTerroristSector[ ubLoop ][ uiLocationChoice ][ 0 ];
            gMercProfiles[ ubTerrorist ].sSectorY = gsTerroristSector[ ubLoop ][ uiLocationChoice ][ 1 ];
            gMercProfiles[ ubTerrorist ].bSectorZ = 0;
            sTerroristPlacement[ ubNumTerroristsAdded ][ 0 ] = gMercProfiles[ ubTerrorist ].sSectorX;
            sTerroristPlacement[ ubNumTerroristsAdded ][ 1 ] = gMercProfiles[ ubTerrorist ].sSectorY;
            ubNumTerroristsAdded++;
         }
         ubLoop++;

      }

      // start over if necessary
   }

   // set total terrorists outstanding in Carmen's info byte
   gMercProfiles[ 78 ].bNPCData = 1 + ubNumAdditionalTerrorists;

   // store total terrorists
   gubNumTerrorists = 1 + ubNumAdditionalTerrorists;
}


damit kriegt man 5 terroristen und das mit ziemlicher sicherheit.
also den wirt und 4 weitere.

immer wenn ich versuch den letzten noch einzufügen, schmiert das spiel ab.
bis jetzt kA worans liegt.
Realist
Alpha-Squad
 
Beiträge: 1573
Registriert: 24. Apr 2003 11:00
Wohnort: Düsseldorf

Beitragvon Wulfy301 » 24. Feb 2005 21:23

@Realist

Habe es getestet und auf anhieb 5 Terroristen gefunden!:k:
Die uiChange Werte habe ich alle auf 100 gesetzt, weiß allerdings nicht ob das überhaupt nötig ist?
case DIF_LEVEL_EASY:
uiChance = 100;
break;
case DIF_LEVEL_HARD:
uiChance = 100;
break;
default:
uiChance = 100;
break;

Mfg...
Du hast Probleme mit dem "grünen Rand" (Item-Dateien)? Sinclair hat die Lösung -> Guckst Du hier!:hit:
Wulfy301
Bravo-Squad
 
Beiträge: 640
Registriert: 18. Jun 2004 22:58

Beitragvon Realist » 25. Feb 2005 07:38

die uiChance werte bestimmen, wieviele zusätzliche terroristen man bekommen kann.
jedesmal wenn man mit dieser chance glück hat wird nämlich ubNumAdditionalTerrorists eins hochgesetzt.
erst danach wird wirklich bestimmt ob man auch die zahl von ubNumAdditionalTerrorists wirklich erreicht, und zwar erhält jeder terrorist eine 40% existenzchance.

noch was, schau doch mal in c6 san mona (wo angel seinen bikerladen hat) ganz im süden ungefähr in der mitte ob da ein paar zivilisten "außerhalb" der map stehen, sie also nicht erreichbar sind.
Realist
Alpha-Squad
 
Beiträge: 1573
Registriert: 24. Apr 2003 11:00
Wohnort: Düsseldorf

Beitragvon Wulfy301 » 25. Feb 2005 09:00

@Realist

Nö, ich kann keine Zivilisten in C6 am südlichen Rand finden. Warum?

Mfg...
Du hast Probleme mit dem "grünen Rand" (Item-Dateien)? Sinclair hat die Lösung -> Guckst Du hier!:hit:
Wulfy301
Bravo-Squad
 
Beiträge: 640
Registriert: 18. Jun 2004 22:58

Beitragvon Realist » 25. Feb 2005 09:20

es ist so, dass bei mir welche da sind - in einem "toten" bereich am rand.
wenn ich granaten auf sie werfe, werden sie verletzt, bewegen sich daher kurz (bleiben aber in ihrem feld), in der bewegung halten sie inne und man sieht nur noch eine weiße fläche in form des "schattens" den sie werfen würden. als ob man sie ausschneiden würde...
wollte wissen ob das irgendwie von den änderungen an den terroristen kommt, aber wenn nicht, dann ist ja gut :)
Realist
Alpha-Squad
 
Beiträge: 1573
Registriert: 24. Apr 2003 11:00
Wohnort: Düsseldorf

Beitragvon Wulfy301 » 3. Okt 2005 20:38

Problem:

Nach längerem Spielen ist Tony nicht mehr im Laden, er "vertritt sich mal kurz die Beine"!
Das aber nun schon sehr lange, ich befürchte er wird auch nicht mehr auftauchen.

Den Random-Wert auf Null zu setzen ist nicht die richtige Vorgehensweise, hat jemand eine Idee wie Tony immer im Laden ist?:confused:


Mfg...
Du hast Probleme mit dem "grünen Rand" (Item-Dateien)? Sinclair hat die Lösung -> Guckst Du hier!:hit:
Wulfy301
Bravo-Squad
 
Beiträge: 640
Registriert: 18. Jun 2004 22:58

Beitragvon Realist » 3. Okt 2005 20:51

Wulfy301 hat geschrieben:C:\ja2\Build\Strategic\Strategic Event Handler.c

if( gMercProfiles[ TONY ].ubLastDateSpokenTo > 0 && !( gWorldSectorX == 5 && gWorldSectorY == MAP_ROW_C && gbWorldSectorZ == 0 ) )
{
// San Mona C5 is not loaded so make Tony possibly not available
if (Random( 4 ))
{
// Tony IS available
SetFactFalse( FACT_TONY_NOT_AVAILABLE );
gMercProfiles[ TONY ].sSectorX = 5;
gMercProfiles[ TONY ].sSectorY = MAP_ROW_C;
}
else
{
// Tony is NOT available
SetFactTrue( FACT_TONY_NOT_AVAILABLE );
gMercProfiles[ TONY ].sSectorX = 0;
gMercProfiles[ TONY ].sSectorY = 0;
}
}

Wenn man den Random-Wert auf Null setzt ist Tony immer im Laden!
Ich habe es ein paar mal versucht und er war jedes Mal da, scheint also hinzuhauen.

Ich kann mich irren, aber gibt Random( 0 ) nicht immer 0 zurück?
Folglich ist if ( 0 ) niemals wahr und Tony ist überhaupt nie anzutreffen.
Mach mal lieber sowas hier:
Code: Alles auswählen
f( gMercProfiles[ TONY ].ubLastDateSpokenTo > 0 && !( gWorldSectorX == 5 && gWorldSectorY == MAP_ROW_C && gbWorldSectorZ == 0 ) )
{
// San Mona C5 is not loaded so make Tony possibly not available
if ([highlight]1[/highlight])
{
// Tony IS available
SetFactFalse( FACT_TONY_NOT_AVAILABLE );
gMercProfiles[ TONY ].sSectorX = 5;
gMercProfiles[ TONY ].sSectorY = MAP_ROW_C;
}
else // kommt niemals zum Tragen
{
// Tony is NOT available
SetFactTrue( FACT_TONY_NOT_AVAILABLE );
gMercProfiles[ TONY ].sSectorX = 0;
gMercProfiles[ TONY ].sSectorY = 0;
}
}

Oder nimm noch besser die ganze if-Abfrage raus und behalte nur den Code im if-Zweig.
Realist
Alpha-Squad
 
Beiträge: 1573
Registriert: 24. Apr 2003 11:00
Wohnort: Düsseldorf

Beitragvon Wulfy301 » 3. Okt 2005 21:01

@Realist

Danke für die schnelle Hilfe, muss das gleich mal Testen ! :erdbeerteechug:

Mfg...
Du hast Probleme mit dem "grünen Rand" (Item-Dateien)? Sinclair hat die Lösung -> Guckst Du hier!:hit:
Wulfy301
Bravo-Squad
 
Beiträge: 640
Registriert: 18. Jun 2004 22:58

Beitragvon Wulfy301 » 3. Okt 2005 21:23

Funktioniert!:k:

Dafür gibts nen :keks:

Mfg...
Du hast Probleme mit dem "grünen Rand" (Item-Dateien)? Sinclair hat die Lösung -> Guckst Du hier!:hit:
Wulfy301
Bravo-Squad
 
Beiträge: 640
Registriert: 18. Jun 2004 22:58

Beitragvon Realist » 3. Okt 2005 21:35

Wenn man Tony IMMER haben will, machts übrigens überhaupt keinen Sinn, die GANZE if Prüfung beizubehalten beginnend mit [highlight]if( gMercProfiles[ TONY ].ubLastDateSpokenTo > 0 && !( gWorldSectorX == 5 &&[/highlight](usw). Daher kann man den ganzen Code im letzten Codefenster oben löschen, sobald die Sektorkoordinaten von Tony erst einmal irgendwo initialisiert sind (was sie ja selbstverständlich standardmäßig irgendwo werden).
Realist
Alpha-Squad
 
Beiträge: 1573
Registriert: 24. Apr 2003 11:00
Wohnort: Düsseldorf


Zurück zu Source Forum

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste