s2ext

Bitte logg dich ein oder registriere dich.

Einloggen mit Benutzername, Passwort und Sitzungslänge
Erweiterte Suche  

Neuigkeiten:

Fehler und Spammer oder Probleme beim Login hier melden.

Seiten: 1 ... 19 20 [21] 22 23 ... 47

Autor Thema: Fragen zum Scripting  (Gelesen 204232 mal)

Anonymous

  • Newbie
  • *
  • Beiträge: 1.610
Re: Fragen zum Scripting
« Antwort #300 am: Oktober 11, 2008, 13:32:08 Nachmittag »

Dann unterscheide ich mal ein oder zwei scripts hab ich schon verstanden aber das mit Steinen Pfeilen will selbst nachdem ich nachgesehen hab http://stranded.unrealsoftware.de/s2_co ... st=objects
natürlich hab ich auch schon versucht zu scripten
¬¬ aber funkts nicht also
das ist ein NOTFALL
ich geb jetzt wegen den "ungenauigkeiten" und "unbestimtheiten" Alles zum fall an
Ich möchte nur ein Piratenschiff damit scripten indem ich XYZ bei projectile die position angebe (was ich nicht weiß wie)
dann stein verschießen per Id 23 dann ein bischen mit den parametern geschw., angriff und Drag rumspielen dann  mit 4 angeben das ich abgeschoßen werden soll und zu guter letzt beim abfeuern eine Msg Boom am rand erscheint und Explosionsgeräusche zu hören sind(das kreig ich glaube ich noch hin aberdann versage ich damit es in das schussscript richtig einzubinden.
Oh und bitte bis zum 12.10 antwoeten ab dann ist wieder schicht und mein Pc ist weg.
Dies soll weder drohung noch unterdrucksetzen sein nur muß ich nur um eure antwort zu lesen elendig lange warten. :cry_fox:
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert

Anonymous

  • Newbie
  • *
  • Beiträge: 1.610
Re: Fragen zum Scripting
« Antwort #301 am: Oktober 12, 2008, 15:51:29 Nachmittag »

Bei welcher 4.?
oh und danke fürs verständnis hast recht ist kurz aber ich kann daran nichts ändern :cry_fox:
zurück zum thema von dem eigentlichen Abenteur oder was?
ich bin im Adventure noch nicht bei der vierten map.
also weiß ich nicht wo zu kupfern ist.
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert

Mc Leaf

  • Administrator
  • Newbie
  • *****
  • Beiträge: 332
Re: Fragen zum Scripting
« Antwort #302 am: Oktober 14, 2008, 07:00:13 Vormittag »

Zitat von: "alexander_der_dritte"
Ich möchte nur ein Piratenschiff damit scripten indem ich XYZ bei projectile die position angebe (was ich nicht weiß wie)
Die Position des Piratenschiffes...? Kriegst du per
Code: (text) [Auswählen]
  1. $x=getx("self");
  2. $y=gety("self");
  3. $z=getz("self");
im Skript des Schiffes (beim entsprechenden Event... je nachdem).

Zitat von: "alexander_der_dritte"
dann stein verschießen per Id 23 dann ein bischen mit den parametern geschw., angriff und Drag rumspielen dann  mit 4 angeben das ich abgeschoßen werden soll und zu guter letzt beim abfeuern eine Msg Boom am rand erscheint und Explosionsgeräusche zu hören sind(das kreig ich glaube ich noch hin aberdann versage ich damit es in das schussscript richtig einzubinden.
Ich würde das zwar hinkriegen... aber beim entsprechenden Skript würde ich auch erst noch einmal mit den ganzen Parametern erstma herumexperimentieren müssen. :(
Wie Quester schon sagte... einfach die vierte (oder fünfte?) Karte des Abenteuers mal in den Editor laden. Bei den Bambustürmen müssten so ein paar Fähnchen (Infoobjekte) in der Nähe sein wo so ein beispielhaftes Skript drinsteht. Da mal gucken und ein bisschen experimentieren.

Zitat von: "alexander_der_dritte"
Oh und bitte bis zum 12.10 antwoeten ab dann ist wieder schicht und mein Pc ist weg.
Dies soll weder drohung noch unterdrucksetzen sein nur muß ich nur um eure antwort zu lesen elendig lange warten. :cry_fox:
Uff... bin relativ selten im Netz... *sry*

Zitat von: "MrMatthew"
Äääh Division? Wie geht Division in Stranded scripts eigentlich? Im Tutorial von Unrealsoftware steht da nix davon  ^^u
per "/", also bspw.
Code: (text) [Auswählen]
  1. $tmp=10/5; 

Zitat von: "thehintsch"
ja das mit dem durch 100.0 teilen statt durch 100 kam mir dann auch... da hat man mal in seiner jugend angefangen mit delphi und kriegt das einfach nicht in seinen schädel, dass es in C dann eine integerdivision ist, statt gleitkomma...^^ mit gleitkommadivision siehts dann auch schon n stück besser aus...
Unabhängig von der Notation ("100 oder 100.0") sollte eigentlich stets in float (fließkommazahl...) gerechnet werden. Normalerweise wird sowas ja bei der Deklaration von Variablen entschieden, bei Stranded (allgemein Skriptsprachen?) gibt es das nicht.

Zitat von: "thehintsch"
wenn mans genau nimmt, wäre ne gauss funktion besser geeignet als ne umgekehrte parabel :P ^^. wegen tangentialem abschluss zum ebenem boden statt schnittpunkte... aber das sind wohl details... ;)
Stimmt! Daran hatte ich gar nicht gedacht... :roll:

Zitat von: "thehintsch"
was anderes: hab mir n script gebastelt das einen jahreszeitenwechseln einfügt. eigentlich macht es auch genau das was es soll: jahreszeiten wechseln, im winter gehen früchte und getreide kaputt. und palmen erleiden aufgrund des klimas schaden (wobei ich bei dem feature nicht sicher bin ob ichs drin lassen soll). das ganze passiert beim on:changeday
Na... ich schaue es mir mal an (falls ich Zeit dafür finde :( ).

Zitat von: "thehintsch"
nach einigen jahreszeitenwechseln wird das script beim on:changeday plötzlich zwei mal aufgerufen! (in der konsole sichtbar) das hat zur folge dass natürlich auf einmal winter is und einem die ganzen früchte usw kaputt gehen. ausserdem gehen dann natürlich auch die palmen eher kaputt, weil sie ja jetzt 2 mal am tag schaden bekommen und der sommer (zur regeneration) ja auch viel kürzer ausfällt. wie kann das sein? vor allem dass es zu beginn eines spiels ja funktioniert und nur einmal aufgerufen wird...
Hm... Muss ich schauen.

Zitat von: "thehintsch"
die zerstörung der früchte bzw. palmen ist für jeden objekt typ extra gelooped. ich hatte zuerst einen loop über alle objekte und dann den typ ermittelt, aber dadurch ging der tageswechseln doch etwas lange. deshalb aus performancegründen alles extra.
Ja, solche Skripte können sich unter Umständen extrem auf die Performance ausüben... damit hatte ich auch schon recht oft Probleme (aktuell beim Terrainzeugs erst wieder, s.u.)

Ja, genau... Terrainzeugs... Cool, dass ich den Beitrag schon zu Hause geschrieben hatte und jetzt nur noch einfügen brauche... *zack* (nur noch kurz die Vorschaufunktion... ok)

So... ich habe mal das Problem mit dem Terrain etwas genauer unter die Lupe genommen. Dein Skript ist nebenbei eher ein 'Berggenerator für Arme'... Abgesehen von den falschen Kommentarzeichen ('\' statt '//'). Nix für ungut. ;)

Alles in allem ist es etwas schwieriger als hier anfangs dargestellt und man kommt um ein paar mathematische und numerische Grundlagen nicht drumherum. Mit etwas Gespür für Mathematik sollten aber die Grundkenntnisse aus der Schule zum Verständnis genügen.

Im Prinzip geht es darum, jeder x,z-Koordinate in der Terrainmatrix eine neue Höhe zuzuordnen. Nebenbei betragen die Abstände innerhalb der Terrainmatrix 64 und nicht 50. Etwas mathematischer und abstrakter formuliert ist also eine Funktion in zwei Variablen gesucht, welche eine zweidimensionale Fläche im dreidimensionalen Raum beschreibt und zwei Punkten eine Höhe zuordnet.

Zur Vereinfachung kann man erst einmal den eindimensionalen Fall betrachten. Bspw. beschreibt die Funktion f(x)=100-x^2 (eine an der x-Achse gespiegelte und um 100 Einheiten in y-Richtung verschobene Parabel) einen "Berg" im kartesischen Koordinatensystem.

Im zweidimensionalen Fall ist so eine Funktion ebenfalls leicht gefunden. Diese sollte außerdem noch zwei Anforderungen erfüllen: An den Randpunkten soll y=0 sein - der Rand unseres Berges. Und für x=z=0 nimmt sie gerade ihr Maximum an - die Spitze des Berges.
Offensichtlich wird das bspw. durch die Funktion f(x,z)=[r^2-(x^2+z^2)]*(y_max/r^2) realisiert, wie man leicht nachrechnet. Die Bedingung x^2+z^2=r^2 beschreibt anschaulich einen Kreis in der x-z-Ebene mit dem Radius r und für diesen Fall ist f(x,z)=0. Sind x=z=0 so nimmt f(x,z) gerade ihr Maximum bei y_max an.

Soweit zur Theorie. Auf mögliche Transformationen wie Strecken, Dehnen, Stauchen o.ä. will ich jetzt nicht weiter eingehen. Außerdem fehlt noch eine Zufallskomponente für die Variation, da so ein Berg ja nicht perfekt symmetrisch ist. Solche Spielereien kann man ggf. auch nachträglich noch einbauen.

Nun zu Implementierung. Wir kennen die Abstände in der Terrainmatrix, geben Höhe und Radius des Berges vor, und beschreiben ihn durch obige Funktion. Außerdem setzen wir zur Vereinfachung eine Ebene voraus, d.h. die Höhe der Karte sei überall gleich. Ebenso soll unser Berg erst einmal genau in der Mitte der Karte sitzen - die Translation kann man ebenfalls nachträglich noch einbauen.

Im Prinzip geht man nun alle Punkte in der Terrainmatrix durch und ändert entsprechend unserer Funktion dort die Höhe. Zwischen diesen Punkten wird bereits intern interpoliert, so dass wir uns darum nicht kümmern brauchen. Das Problem geschachtelter Schleifen wird einfach per Timer/Event umgangen und sollte auch kein Problem sein (ich habe mich erstmal für den Timer entschieden womit sich das "wachsen" des Berges beobachten lässt).

Außerdem wird hier teilweise mit recht hohen Zahlen operiert, weshalb man wegen evtl. auftretender Überlauf- oder Auslöschungsphänomenen wieder auf die Kondition der Funktion achten muss.

Folgendes Skript wäre ein guter Ansatz für eine Implementierung welcher allerdings hinsichtlich der obigen Probleme und Parameter auf jeden Fall noch optimiert werden müsste. Alles in allem ist die Laufzeit auch recht hoch, weshalb so ein Skript eher Spielerei und weniger für die Anwendung gedacht sein dürfte...

-> Editor -> leere Karte (64x64 oder so) -> komplett abflachen -> Info-Objekt mit folgendem Skript

Code: (text) [Auswählen]
  1. on:start {
  2.     event "init";
  3. }
  4.  
  5. on:init {
  6.     //Höhe des Berges (Vielfaches von 64...!)
  7.     $y_max=256.0;
  8.  
  9.     //Radius des Berges (Vielfaches von 64...!)
  10.     $radius=256.0;
  11.  
  12.     //Starte bei Koordinate... x,z -> -256
  13.     $x=-$radius;
  14.     $z=-$radius;
  15.  
  16.     //Schrittweite... cnt -> 8
  17.     $cnt=($radius/32);
  18.  
  19.     timer "self",500,$cnt,"loop_z";
  20.  
  21.     timer "self",(500*$cnt),1,"blubber";
  22. }
  23.  
  24. on:blubber {
  25.     terraintexture "generate";
  26. }
  27.  
  28. on:loop_z {
  29. //  $y_max=($radius*$radius);
  30.     $x=-$radius;
  31.     loop("count",$cnt) {
  32.         //unsere Funktion...
  33. //      $y=((($radius*$radius)-(($x*$x)+($z*$z)))*($y_max/($radius*$radius)));
  34.         //...besser konditioniert...!
  35.         $y=($y_max-(((($x*$x)+($z*$z))/$radius)*($y_max/$radius)));
  36.         //an terrain-fkt. anpassen...
  37.         $y=($y/32.0);
  38.         //Senkpunkte werden ignoriert...
  39.         if ((terrain($x,$z,0)-50)<=$y) { terrain $x,$z,2,$y; }
  40.         //paar Infos für die Konsolenausgabe...
  41.         $coord_x=terrain($x,$z,3);
  42.         $coord_z=terrain($x,$z,4);
  43.         echo "$x, $y, $z ($coord_x,$coord_z)";
  44.         //nächste x-Koordinate in der Terrainmatrix
  45.         $x+=64;
  46.     }
  47.     //nächste z-Koordinate in der Terrainmatrix
  48.     $z+=64;
  49. }
  50.  

Noch ein kleines Beispiel zum Problem der Kondition (F10->Execute Script->Copy'n'Paste->Ausführen)...

Code: (text) [Auswählen]
  1. $radius=1024.0;
  2. $x=0;
  3. $z=448;
  4. $y_max=512.0;
  5. $tmp1=((($radius*$radius)-(($x*$x)+($z*$z)))*($y_max/($radius*$radius)));
  6. $tmp2=($y_max-(((($x*$x)+($z*$z))*$y_max)/($radius*$radius)));
  7. $tmp3=($y_max-(((($x*$x)+($z*$z))/$radius)*($y_max/$radius)));
  8. msg "$tmp1 $tmp2 $tmp3";
  9.  

Die Funktionsgleichungen für $tmp1,$tmp2,$tmp3 sind alle die gleichen, nur etwas umgestellt. Intern unterscheidet sich lediglich die Reihenfolge der Rechenoperation was zu den angesprochenen Problemen (Überlauf, Auslöschung...) und im Endeffekt zu falschen Ergebnissen (und somit Fehler bei der Terraingenerierung) führen kann.

Außerdem hat da DC intern irgendwie noch etwas Unsinn verzapft (vermutlich um Fehler wie 'Division durch 0' etc. zu vermeiden). Siehe
Code: (text) [Auswählen]
  1. $tmp1=(500.0/1000000.0);
  2. $tmp2=(500.0/100000.0);
  3. msg "$tmp1 $tmp2";
  4.  
mit der Ausgabe "1.0 0.005"...

Nachtrag: Schaffe ich es noch meine Testkarte hochzuladen? Ja, das schaffe ich noch, moment... *swoosh*
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert

MrMatthew

  • Newbie
  • *
  • Beiträge: 217
Re: Fragen zum Scripting
« Antwort #303 am: Oktober 15, 2008, 08:13:14 Vormittag »

Zitat von: "Mc Leaf"
Zitat von: "MrMatthew"
Äääh Division? Wie geht Division in Stranded scripts eigentlich? Im Tutorial von Unrealsoftware steht da nix davon ^^u
per "/", also bspw.
Code: (text) [Auswählen]
  1. $tmp=10/5;
Ah, danke! Genau was mir gefehlt hat. Sehr nützlich der Thread. Verwendbar zu Klärung aller Fragen, für die DC keine Lust hat  :wink:
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert

Anonymous

  • Newbie
  • *
  • Beiträge: 1.610
Re: Fragen zum Scripting
« Antwort #304 am: Oktober 31, 2008, 20:50:35 Nachmittag »

ihr könnt mich gern beschümfen für die dümste frage der welt aber ich hab vergesen wie das mit den tagebucheinträgen geht und würde das gerne wissen wenn sich jemand auf das nivo runterlässt und mir antwortet ^^u
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert

thehintsch

  • Newbie
  • *
  • Beiträge: 6
Re: Fragen zum Scripting
« Antwort #305 am: November 07, 2008, 16:33:01 Nachmittag »

so, endlich mal wieder bissle zeit um im forum zu schauen...

jaja das mein script ein berg für arme war war mir klar  ;)
das mit den 50 einheiten abstand pro terrainpunkt hab ich halt getestet und geschätzt ^^. 64 is auch logischer, jetzt wo ich weiss das karten die größe von zweierpotenzen haben. hab nämlich mein berg script schon ähnlich verbessert wie deines, mich aber gewundert warum der berg trotzdem noch etwas komisch aussieht obwohl die funktionswerte, die ich in der konsole ausgegeben habe passen. wahrscheinlich lags an den 50 statt 64er schrittweite.
EDIT:
bei näherer betrachtung ist mein script sogar beinahe identisch. statt eines timers lasse ich stattdessen die loop schleife öfter durchlaufen. wenn mein berg
z.b. 7*64 punkte in der länge umfassen soll, lass ich die schleife 7*7 mal durchlaufen x wird z.b. fest gehalten und z 7 mal durchlaufen, dann z wieder auf den
anfangswert gesetzt und x um 64 erhöht usw. also:
x startet bei -3 , z läuft dann von -3 bis +3 (vielfache von 64)
 bei erreichen von z =  +3 wird nach durchlaufen z auf -3 zurückgesetzt und x um eins erhöht usw.

ja, die grundfläche müsste n kreis sein, aber ich denk so isses leichter in stranded zu programmieren und letztendlich sieht man den unterschied eh nicht sooo dolle.

damit brauch ich eben keinen timer und läuft eig. recht flott... werd mal am we meine-berg version mit 64er schrittweite statt 50 testen ^^
/EDIT

das mit den jahreszeiten hat sich inzwischen auch aufgeklärt. ich hatte den script aus versehen bei on:preload eingebunden, was dann natürlich dazu geführt hat
dass bei jedem laden des spielstandes der jahreszeitenscript ein weiteres mal zum on:changeday hinzugefügt wurde. im on:start isses dann doch besser aufgehoben

und die mathematischen u. numerischen  sachen muss man (zumindest mir) nicht so ausführlich erklären. ich bin da durchaus vorgeschädigt ;)
meine probleme sind eher dass ich meine geliebten while, for usw. schleifen in stranded vermisse und natürlich wie gewisse dinge im spiel zusammenarbeiten, was das tutorial von unrealsoftware nicht hergibt
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert

Anonymous

  • Newbie
  • *
  • Beiträge: 1.610
Re: Fragen zum Scripting
« Antwort #306 am: November 09, 2008, 21:54:02 Nachmittag »

Ich wollte einen kleinen Wetterwechsler in das Amulett (id 817) einbauen, doch es funktioniert nicht.
Was mache ich falsch?
Hier der script:
Code: (text) [Auswählen]
  1. on:use {
  2. if (getweather==0) {
  3. weather rain;
  4. } elseif (getweather==1) {
  5. weather sun;
  6. }

Grüsse,
Firedroide
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert

spammer70

  • Newbie
  • *
  • Beiträge: 25
Re: Fragen zum Scripting
« Antwort #307 am: November 10, 2008, 09:17:52 Vormittag »

Zitat von: "Firedroide"
Ich wollte einen kleinen Wetterwechsler in das Amulett (id 817) einbauen, doch es funktioniert nicht.
Was mache ich falsch?
Code: (text) [Auswählen]
  1. script=start # sollte nicht vergessen werden (weiß nicht ob du's im Item drin hast)
  2. on:use {
  3.   if (getweather()==0){ # so blöd es auch klingt - auch ohne Parameter müssen die Klammern bei Funktionen angegeben werden
  4.     weather rain;
  5.   }
  6.   elseif (getweather()==1){ # hier das Gleiche
  7.     weather sun;
  8.   }
  9. } # abschließende Klammern sollten auch nicht vergessen werden

Ich hoffe ich hab nichts übersehen ^^
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert

Anonymous

  • Newbie
  • *
  • Beiträge: 1.610
Re: Fragen zum Scripting
« Antwort #308 am: November 10, 2008, 17:00:05 Nachmittag »

Es funktioniert jetzt!

Und nach einigen Änderungen sind sogar Schnee und Gewitter integriert.

Ich sage nur:
Vielen Dank für die Hilfe.

Grüsse,
Firedroide
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert

Firedroide

  • Newbie
  • *
  • Beiträge: 23
Re: Fragen zum Scripting
« Antwort #309 am: November 29, 2008, 20:25:46 Nachmittag »

Ich brauche mal wieder Hilfe...

Wie kann ich das machen, dass wenn ich per Spawn-Control ein Objekt spawne (einen Bambusstrauch), dieses nur auf einer bestimmten Höhe gespawnt wird }:?

Grüsse,
Firedroide
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert
Forenjob: Bugreporter!

S2ExtZocker147

  • Newbie
  • *
  • Beiträge: 27
Re: Fragen zum Scripting
« Antwort #310 am: November 29, 2008, 20:41:47 Nachmittag »

Wofür brauchst du das }:?
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert
Was ist verkehrt am nichtstun?
Garnichts,überhaupt garnichts

Regel Nr.1=Ich habe immer Recht.
Regel Nr.2=Sollte dies mal nicht der Fall sein,tritt Regel Nr.3 in Kraft.
Regel Nr.3=Siehe Regel Nr.1.

Firedroide

  • Newbie
  • *
  • Beiträge: 23
Re: Fragen zum Scripting
« Antwort #311 am: November 29, 2008, 20:46:19 Nachmittag »

Nun ja...

Es soll an einem Strand jeden 3. Tag einen solchen Strauch erscheinen, da ich es aber nur am Strand will, und ich nicht hunderte Spawn-Controller für diesen Abschnitt setzten will (weil ja sonst bei einem grossen auch im Wasser gespawnt wird),
geht es nur durch irgend so ein Scriptbefehl...
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert
Forenjob: Bugreporter!

freshd94

  • Newbie
  • *
  • Beiträge: 157
Re: Fragen zum Scripting
« Antwort #312 am: November 30, 2008, 10:55:54 Vormittag »

brauchst nicht scripten, du kannst auch ganz einfach den radius ein wenig größer einstellen
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert
nietzsche sagte: "gott ist tot"
gott sagte: "nietzsche ist tot"
der tod sagte: "nietzsche und gott sind tot" \":D\"

Firedroide

  • Newbie
  • *
  • Beiträge: 23
Re: Fragen zum Scripting
« Antwort #313 am: Dezember 03, 2008, 17:56:37 Nachmittag »

Also ist es nicht möglich, diese Objekte nur an einem Ort und auf einer bestimmten Höhe zu wachsen lassen?

....
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert
Forenjob: Bugreporter!

Anonymous

  • Newbie
  • *
  • Beiträge: 1.610
Re: Fragen zum Scripting
« Antwort #314 am: Dezember 13, 2008, 10:55:46 Vormittag »

Kann mir einer helfen? Ich brauch ein globales script das beim anzünden von fackeln einer vorbestimmten anzahl und position eine variable verändert.bitte ohne lange if zeilen wenns geht. Eigendlich brauch ich nur nen befehl zum erfragen eines states kann mir da einer weiterhelfen? }:?  ansonsten ich arbeite fleißig an einer magier map rum und brauch das damit der meister mir erst dann die obercoole kunst des feuerballs zeigt,wenn ihm das fackelicht in stimmung bringt. :hooray: Dabei muss ich denn nochmal alle combis rausschmeißen bis dahin. :()
ansonsten, danke fü ne schnelle antwort jetzt schon. :yes:
« Letzte Änderung: Januar 01, 1970, 01:00:00 Vormittag von Guest »
Gespeichert
Seiten: 1 ... 19 20 [21] 22 23 ... 47