Beiträge von Cryptogene

    Hey Zusammen und Willkommen in der 2. Lektion zu C# 8)

    :s_rechts: Diese Lektion setzt die 1. Lektion zu C# voraus.


    Was sind Variablen?

    Im Grunde können Variablen als Behälter oder Schubladen für entsprechende Inhalte gesehen werden.

    Dabei unterschiedet man zwischen verschiedene Datentypen, also z.B. können manche Variablen Zahlen beinhalten für mathematische Operationen, andere Zeichen (Buchstaben) zur Textausgabe.

    Dieses Grundgerüst findet sich in jeder Programmiersprache - ebenso wie Schleifen, Kontrollstrukturen, ...


    Variablen müssen deklariert werden. Also ihr Datentyp sowie ihre Bezeichnung muss festgelegt werden.

    Es kann ebenso eine Wertzuweisung erfolgen, muss an dieser Stelle jedoch nicht.

    Variablen, die miteinander verknüpft werden, müssen in ihrem Typ verträglich zueinander sein. (Später mehr dazu.)


    Bsp einer Variable:

    double zelle1, zelle2;

    <Datentyp> <Liste oder einzelner Name der Variable>


    Der Name einer Variable ist frei wählbar, solange kein Schlüsselwort (siehe Lektion 1).


    Deklaration von lokalen Variablen

    • Jede lokale Variable muss vor ihrer Verwendung deklariert werden.
      Bsp.: double a, b, c;
    • Bei der Deklaration kann eine Variable mit einem Anfangswert des gleichen Typs initialisiert werden.
      Bsp.: double a = 1.51, b, c;
    • Der Geltungsbereich von lokalen Variablen ist der Block, in dem sie deklariert sind. Im selben Geltungsbereich kann keine andere Variable gleichen Namens vereinbart werden.

    Definition lokaler Konstanten

    • Lokale Variable kann auch als konstant vereinbart werden. Dann ist die Variable nachträglich nicht mehr veränderbar.
    • Eine lokale Konstante muss bei der Vereinbarung initialisiert werden.
      Bsp.: const double pi = 3.1415927;

    Eine Übersicht der in C# vertretenen Datentypen ist hier einzusehen.

    Wir beschäftigen uns am Anfang jedoch erstmal nur mit den folgenden Datentypen:

    bool, char, int, long, uint, ulong, float, double, decimal, string


    Die erwähnten Datentypen haben unterschiedliche Wertebereiche und zählen zu den sog. "einfachen Typen".


    Schlüsselwort Wertebereich
    int -2 147 483 648 … 2 147 483 647
    long -263 … 263-1
    uint 0… 4 294 967 295
    ulong 0 … 264-1
    float +-1.4E-45…+-3.4E38 (32 Bit)
    double +-5E-324…+-1.7E308 (64 Bit)
    decimal +-1E-28…+-7.9E28 (128 Bit)
    bool true, false (wahr, falsch)
    char Unicode-Zeichen
    string Unicode-Zeichen / mögliche Verkettung von char's


    Die einzelnen Wertbereiche sollten hier nicht auswendig gelernt werden, auch wenn ein gewisses Verständnis generell nicht schadet.


    Kurze Zusammenfassung:

    Ganze Zahl

    • Dezimal
    • Hexadezimal: muss mit 0x oder 0X beginnen
    • Suffix u oder U: Konstante wird im Datentyp uint oder ulong gespeichert
    • Suffix L: Konstante wird im Datentyp long gespeichert
    • Typ der Zahl ist der kleinste Typ aus int, uint, long oder ulong, zu dem der Zahlenwert passt.

    Gleitpunktzahl

    • Gebrochener Anteil wird durch Punkt (.) abgetrennt
    • Typ ist double
    • Suffix f oder F: Konstante wird im Datentyp float gespeichert
    • Suffix m oder M: Konstante wird im Datentyp decimal gespeichert

    Beispiele

    12345 => int, dezimal

    1.2345 => double (kein float !)

    1.2345f => float

    0x1A , 0X1A => int, hexadezimal (Wert: 26)

    7926U => uint

    7926L => long

    'B' => char, Zeichenkonstante

    "Maru" => Zeichenkettenkonstante (string)


    Wichtig: uint oder ulong werden nur als Datentypen für positive Zahlen verwendet.

    Es sind hiermit keine negativen Zahlen darstellbar.


    Die für uns wichtigsten Datentypen:

    int, double, string, bool, char


    Zeichen

    • Zeichenkonstanten werden in ‘ ‘ (Hochkomma) eingeschlossen.
      Es dürfen nahezu beliebige Zeichen vorkommen, außer Hochkomma, Zeilenende oder \
      Bsp.: ‘b‘

    Sonderzeichen

    • Escape-Sequenzen zur Darstellung von Sonderzeichen
      Bsp.:
      \n => Neue Zeile
      \t => horizontaler Tabulator
      \‘ => Hochkomma
      \“ => “
      \\ => \

    Zeichenketten (Strings)

    • Zeichenkettenkonstanten werden in “ “ eingeschlossen
      Es dürfen beliebige Zeichen vorkommen, außer Hochkomma, Zeilenende oder \
      Bsp.: “Hallo Welt“
    • Steht vor einer Zeichenkette das Zeichen @, dürfen darin Zeilenumbrüche vorkommen,
      \ wird nicht als Escape-Zeichen interpretiert und “ muss verdoppelt werden.


    Boolescher Datentyp

    • Für die beiden möglichen Werte eines booleschen Ausdrucks sind die Schlüsselworte true („wahr“) und false („falsch“) definiert.
    • Datentyp: bool
    • Benutzung z.B. Schalter (switches, wie beim Maker)
      Bsp.:
    Csharp
    1. bool schalter1 = true;
    2. if (schalter1)
    3. {
    4. // Code der ausgeführt wird, wenn 'schalter1' gleich true ist.
    5. }


    Zuweisung von Werten:

    <linke Seite> = <rechte Seite>

    veränderlicher Wert = wertliefernder Ausdruck


    = als Zuweisungsoperator, ";" als Anweisungsende.

    Bsp.:

    Csharp
    1. int x,y,a,b;
    2. x = 2*y +3; // Anweisung: x wird zu 2*y+3
    3. a = b = 4; // Mehrfachzuweisung: a und b beinhalten nun beide den Wert 4



    Wert-Verträglichkeit / Konvertierbarkeit der Werte


    Frage: Wie lautet bei Ausgabe an die Konsole der Wert von "ergebnis" und "ergebnis2"?



    Eine kleine, aber wichtige Randbemerkung, die auch für zukünftige Lektionen gelten wird!

    => Ihr könnt den Code kopieren. Solltet ihr einen Fehler bekommen, löscht ggf leere Zeilen und setzt diese neu.

    Aufgrund des Lerneffektes wäre es jedoch ohnehin besser, wenn es abgetippt werden würde. So stellt ihr auch sicher, dass keine Symbole falsch in die IDE kopiert werden und euer Programm ohne Fehlermeldung laufen kann.


    Typenumwandlung

    wie im obigen Bsp. gesehen, kennen wir nun die implizite Typenkonvertierung.

    Als grobe Faustregel lässt sich hier sagen: Kleine Datentypen wie lassen sich in größere überführen, große jedoch nicht in kleine zurück.

    Bsp.: byte =>short => int => long => float => double

    Aber double geht nicht in byte oder short, bzw. int, etc.



    Eine weitere Methode zur korrekten Typenumwandlung ist die:


    Explizite Typenumwandlung

    Explizite Typumwandlungen erfolgen:

    • Durch die Verwendung eines Typumwandlungsausdrucks in einer Zuweisung:
      (<neuer Datentyp>) <Ausdruck>;
      Bsp.: int int_var;
      double_var = (double) int_var;
    • Mit der Convert-Klasse:
      Bsp.: string s = Console.Readline();
      double k1 = Convert.ToDouble(s);

    Bei ersteren wird eine int Variable in eine double Variable gewandelt mittels der expliziten Konvertierung "(double)".

    Bei der Convert-Klasse wird sich einer Klasse mit Funktion bedient, die C# zur Verfügung stellt.

    Beides würde zum selben Resultat führen und den int (Integer) als double abspeichern.



    Hinweis zu weiteren Lektionen:

    Bisher haben wir nur Basics und Grundgerüste kennengelernt.

    In den weiteren Lektionen werden teils auch Übungsaufgaben einfließen um das Verständnis zu festigen.

    Es wird angeraten diese möglichst mit der Entwicklungsumgebung nach Wahl durchzuführen und sich daran zu probieren.


    In Lektion 3 behandeln wir die Ein- und Ausgabe auf der Konsole.

    Hey Zusammen und Willkommen in der 1. Lektion zu C# 8)

    :s_rechts: Diese Lektion setzt die Vorabinformationen zu C# voraus.


    Zum folgenden Ausführen und testen des Codes kann Visual Studio oder MonoDevelop von Unity verwendet werden, wie jede IDE, die C# unterstützt. Siehe hierzu die genannten Infos im Link (oben).

    Da ich persönlich Visual Studio vorziehe werde ich entsprechend hier beschreiben wie ein neues Projekt zu starten ist.

    Dieses Vorgehen zieht sich auch durch die weiteren Lektionen und wird daher nur einmalig hier erwähnt.


    Öffnet "Visual Studio" => Erstellt ein neues Projekt => "Console App" bzw. "Konsolen Anwendung" im Deutschen.

    Es sollte so aussehen:


    Benennt diese sinnvoll z.B. als "Uebung1" oder ähnliches.


    Wenn ihr alles richtig gemacht habt, sollte es in etwa so aussehen:

    (Je nach Sprache mit unterschiedlichen Benennungen der Oberflächen Elemente. Ich bevorzuge Englisch, da mehr Support im Englischen Raum vorhanden ist, sollten Fragen vorhanden sein.)

    => Der Code in "Programm.cs" ist bzw. sollte jedoch gleich aussehen bzw. kann dies auch teils bei den "using ..." Zeilen abweichen. Dies tut an dieser Stelle jedoch nichts zur Sache.


    In Zukunft wird vorausgesetzt, wie ein Projekt zu erstellen ist.


    Für was die jeweiligen Bezeichner, Namensräume, etc. nun stehen, mag uns an dieser Stelle nicht interessieren. Wichtig ist für den Anfang nur zu wissen, dass euer "Code" in den geschweiften Klammern nach:

    "static void Main(string[] args)" kommt.


    Kopiert den folgenden Quellcode und ersetzt ihr in eurem Programm, sodass es so aussieht:

    Csharp
    1. static void Main(string[] args)
    2. {
    3. // Euer Code sollte hier rein.
    4. Console.WriteLine("Hello World");
    5. }


    Wichtig! Es gilt nur

    "static void Main(string[] args)

    {

    }"

    zu ersetzen.


    Wenn ihr nun "STRG + F5" zur selben Zeit drückt, führt ihr den Code aus.

    Es sollte sich eine Konsole öffnen mit "Hello World" als Ausgabe.


    Herzlichen Glückwunsch! Ihr habt euer erstes Programm geschrieben. ninja_yeah



    Nun etwas mehr Theorie:


    Was waren die Elemente unseres Programms?

    Wir hatten:

    • Kommentar ( // Hier ein Kommentar)
    • Namensraum (using System; , ...)
    • Funktionsaufruf
    • Bildschirmausgabe

    Das wichtigste überhaupt - so meine ich zumindest: Der Kommentar.

    Angenommen es existiert ein Programm mit über 2 Millionen Zeilen an Code ohne Kommentar, so würde keiner der Entwickler (nicht einmal man selber) das Programm nach einiger Zeit nachvollziehen können.


    Kommentare werden folgendermaßen erzeugt:

    /* Hier der Text oder die Beschreibung */ Dieser Kommentar geht über mehrere Zeilen. Z.B.

    Csharp
    1. /* Dies ist ein
    2. Kommentar
    3. über mehrere Zeilen */
    4. // Ich bin ein Kommentar, der nur in einer einzelnen Zeile stehen darf.
    5. /// Dokumentationskommentar (mehr dazu später)

    Kommentieren von Code ist sehr wichtig! Bitte verwendet sinnvolle Kommentare z.B.

    "Das Programm / Die Funktion XY berechnet den Sachverhalt Z".

    Kommentare wie "Dies ist eine Funktion" werden (außer zu Lehrzwecken) eher nicht sinnvoll in einem Programm für euch sein.


    weiterhin hatten wir "class Program"

    Der Name "Program" wäre beim Erstellen einer Klasse frei wählbar - mehr hierzu später.


    "static void Main(string[] args)"

    Dies ist die Funktion, die beim Starten des Programmes aufgerufen wird. Hier wird der PC das Programm starten.

    Mehr dazu in einem späteren Kapitel.


    { ... }

    Block Klammern, die mit einem "Beginn" und "Ende" eines Abschnittes gleichgesetzt werden können.

    Sie finden unterschiedliche Verwendung.


    "Console.WriteLine("Hello World");"

    Dies ist eine 'Operation' zur formatierten Ausgabe auf der Konsole.


    Beachtet: Jede 'Anweisung' endet in C# mit einem Semikolon ";"

    Vergesst ihr diese, erhaltet ihr einen entsprechenden Fehler oder Hinweis der IDE.


    => Was hinter der Ausführung eines Programmes sich befindet / steckt (Compilieren, Interpretieren, etc. wird hier nicht behandelt.)



    Hier ein Beispiel zur Berechnung von dem Pythagoras:
    (Dieses Beispiel muss und kann an dieser Stelle noch nicht verstanden werden, zeigt jedoch eine Struktur, wie sie in einem Programm üblich ist.)


    Grundlegende Begriffe:


    Deklaration (Vereinbarung) z.B.:

    int i;

    int l, g, h;

    double f, a;


    Initialisierung (Wertzuweisung) z.B.:

    i = 6;

    f = 4.6;

    g = 7*i + h*h*(l-1);


    Bei einer Variable, wie "i" oder "g" in unserem Beispiel, kann der Name frei gewählt werden.

    Es gibt hier jedoch ein paar Ausnahmen, die sogenannten Schlüsselwörter.

    Eine Auflistung dieser findet ihr hier.

    Diese können als Variable nicht gewählt werden, da diese eine andere Bedeutung innerhalb C# besitzen.



    Mehr über Variablen in Lektion 2.

    Hallo Zusammen,


    nachdem viele RPG-Maker Nutzer mittlerweile auch Unity nutzen, war es an der Zeit für uns euch entsprechend mit Informationen zu versorgen.

    Unity als Engine bedient sich u.a. JavaScript als Programmiersprache, wie auch C#.

    Ich persönlich bevorzuge C#, wie wohl ein sehr großer Teil der Unity Gemeinde.


    Um in die Sprache entsprechend sich einfinden zu können werden in diesem Forum nach und nach Lektionen meinerseits erstellt.

    Natürlich dürfen auch von anderen Nutzern Lektionen beigesteuert werden, dann jedoch als separate Reihe oder als Vertiefung in einem bestimmten Teilgebiet.


    Je nach Zeit werden die neuen Lektionen hinzugefügt, daher bitte ich um Geduld, sollte es nicht regelmäßig sein.

    Ich persönliche studiere Informatik und versuche euch nach besten Wissen und Methoden C# etwas näher zu bringen.

    Sollten sich dennoch Fehler in meinen Lektionen schleichen, bin ich dankbar um die entsprechende Erwähnung entweder im Thread oder per PN.


    Der Kurs wird in erster Linie C# behandeln, nicht die Unity Scripting API .

    Unity selber wird in dem entsprechenden anderem Forum behandelt und ich wäre dankbar diese Fragen auch dort zu stellen, da es sonst gerade für Neulinge verwirrend sein kann.


    Dennoch empfehle ich jeden, der nicht mit C# vertraut oder allgemein mit Programiersprachen vertraut ist diesen "Kurs" / Lektionen von mir zu lesen.

    Dies wird zum späteren Verständnis enorm beitragen.


    Für meine C# Programme werde ich Visual Studio von Microsoft verwenden.

    Hier könnt auch ihr euch die kostenlose "Community" Edition herunterladen und auf Windows installieren.

    Für Mac und Linux gibt es entsprechende Alternativen, die ebenso in Ordnung sind.


    => Wer nicht am Erstellen von C# Programmen interessiert ist, sondern rein an Unity, dem sei gesagt, dass Unity eine eigene Entwicklungsumgebung (MonoDevelop) mitbringt.

    Mit welcher IDE ihr letztlich arbeitet bleibt euch überlassen. Solltet ihr dennoch Visual Studio verwenden, so installiert auch die Unity Komponente.

    Ich setze in den entsprechenden Lektionen eine korrekte Installation voraus und werde diese hier nicht separat behandeln.


    Nun noch ein Hinweis zu Fragen:

    Bitte nutzt hierfür im Besten Fall unsere Code-Funktion.

    Ihr könnt entsprechend auch C# als Programmiersprache auswählen, sodass der Code gut formatiert und uns präsentiert wird. Dies erleichtert beim Suchen von Fehlern die Arbeit enorm.

    Bitte beachtet auch, dass ich nicht als Support hier 'offiziell' tätig bin, sodass es ggf. auch dauern kann, bis eine Antwort kommt oder je nach Zeit auch erstmal keine.

    Im Besten Fall können nach und nach euch auch andere User aushelfen.


    Beispiel der Formatierung:

    Csharp
    1. using System; // Namensraum
    2. class hello
    3. {
    4.     /* jetzt die Definition des Hauptprogramms */
    5.     static void Main()
    6.     {
    7.         Console.WriteLine(“Hello World.“);
    8.     }
    9. }



    Nun viel Spaß mit den Lektionen!




    FAQ:


    - derzeit keine Fragen -

    Hatte ich ja geschrieben, andernfalls verstehe ich nicht, was du meinst.
    Er war auch gestern (Do.) bis heute morgen nochmals down, da ein erweiterter Hardwaretest stattfand.

    Es wurden in diesem Zuge jedoch alle Defekte unseres Anbieters behoben und der Server läuft nun wieder stabil, wie zuvor.

    Eine jeweilige Update-Meldung gab es in unserem Discord, da ja per Forum / Webseite nicht möglich.

    Hallo Community,


    gestern gegen Mittag bis heute gegen 22 Uhr war unser Forum down.

    Dieser Ausfall lag an einem technischen Defekt einer Hardware Komponente unseres Anbieter, bei der wir kein Verschulden hatten.


    Die Hardware wurde in der Zentrale vor Ort ausgetauscht und unser Forum ist seit dem wieder online.

    Ich bitte (ebenso im Namen unseres Anbieters) um Entschuldigung.


    Vielen Dank für eure Geduld sowie Verständnis.


    Eure rpgmaker-mv.de Administration.

    Huch okay gut zu wissen.

    Ich nutze einen anderen Stil, daher ist es bei mir immer schon verfügbar gewesen...


    Ich werde es heute Abend / Nacht aktualisieren.



    Edit: gefixt

    Da nun schon ein paar gefragt hatten, nehme ich einfach den Auszug einer der Fragen und beantworte diese hier. :)

    User (Anonymisiert) schrieb:

    Eine Frage: beinhaltet das Pack "Monster Battler Pack Creatures 1-5" ALLE Creature Packs von 1-5 in Comic und SR?

    weil von den Kosten her ist es ja nur minimal mehr als z.B. Creature Pack 1 Comic, ist aber nur ein Zehntel davon


    Das Battler Pack beinhaltet alle Single Battler Grafiken aller Monster :)

    Also keine Animationen (sollte glaube ich in der Produktbeschreibung auch noch stehen).


    Es sind nur die statischen Bilder (200 einzigartige insgesamt) 25 Monster * 2 Stile (Comic + SR) * 4 Richtungen für jedes Monster = 200 Bilder, die einzigartig sind. * 5 File Formate = 1000 Dateien.

    Also es beinhaltet nicht die Creature Packs (!) - Diese sind alle einzeln animiert. Das Battler Pack ist extra erstellt worden für den RPG Maker für alle, die die Animationen nicht benötigen.


    Ich hoffe das beantwortet die Frage. :)

    Hey Leute ninja_shades


    Ich freue mich euch mitteilen zu können, dass wir ab sofort im Shop weitere Produkte für euch anbieten können.

    Unser Shop wurde von meinen Creatures Battler Pack 1-5 sowie den einzelnen Versionen mit Animationen erweitert.


    Die Grafiken sind mit dem RPG Maker gut kompatibel, wenn auch nicht nur für diesen ausgelegt. ninja_thumbsup

    Zur Feier des Tages gibt es auch ein kostenloses Paket für euch, welches weiter unten im Beitrag heruntergeladen werden kann. ninja_yeah


    Die Produkte sind für ca. 2,50€ - knapp 3€ / Paket erhältlich. Bzw mit unserem Maker Coins (Moins - Kurs) für knapp 2500 - 3000 Maker Coins.

    Derzeit sind die neuen Packs auch bis Ende des Monats nochmal leicht rabattiert, sodass ihr zusätzlich ein wenig sparen könnt. ninja_heart


    Wir hoffen euer Ressourcen Sortiment somit erweitern zu können und weitere tolle Produkte hier bei uns anbieten zu können.

    Besucht unseren Shop hier. Maker Coins sind nach wie vor mit Aktivität zu ergattern oder hier zu kaufen.

    Ich wäre dankbar würde man mir per PN Bilder von Spielen schicken, mit denen diese erstellt wurden, insofern derjenige selber der Ersteller war. ninja_pointleft


    Im kostenlosen Monster Pack sind 2 Monster mit jeweils 4 Richtungen und insgesamt 60 Animationen enthalten.
    Diese können kommerziell oder nicht kommerziell Royalty Free ohne Namensnennung verwendet werden.


    Monster Pack (Free).zip



    Nun denn, Bilder sagen ja bekanntlich mehr als tausend Worte.

    Viel Spaß mit den neuen Ressourcen. ninja_heart


    P.S. Über Lob, Kritik oder zukünftige Verbesserungsvorschläge würde ich mich natürlich auch hier im Thread freuen und zeigt mir, ob weiterhin derartige Angebote / Packs hier erwünscht sind. ninja_wink





    Hey


    Tut mir Leid, aber PaySafeCard wird nur via Schenkung akzeptiert.

    Im Shop können Maker Coins per PayPal bezahlt werden. Im Allgemeinen Shop kannst du dir aber auch Maker Coins mit einer Überweisung kaufen. Dies dauert dann lediglich ein paar Tage wegen der Transaktion.

    Derzeit sind noch nicht alle Beträge im Allgemeinen Shop verfügbar.

    Aber wenn du so bezahlen würdest, kann ich dies gerne ändern. :)

    Hey Leute! 8)


    Hier das Update 1.3 zu meinen Isometrischen 2D Asset Packs.


    Standard Pack:




    Style+ Pack:




    Viel Spaß beim Anschauen der Neuerungen!

    Es wäre super, würdet ihr mir ein Like da lassen. <3


    Die Packs sind bei uns im Shop erhältlich (günstiger als andernorts).

    Das Update von 1.2 auf 1.3 wird bei uns im Shop gegen heute Abend online sein.

    Alle zukünftigen Updates sind natürlich weiterhin kostenfrei für jene, die die jeweilige Version schon zuvor gekauft haben. ;)


    Bis einschließlich diesen Sonntag ist das Angebot in unserem Shop auch von 17000 Moins auf 15500 Moins reduziert. :s_coins:

    http://spon.de/afgG1


    Die Abstimmung im Parlament ist zugunsten der Petition ausgefallen (also für alle, die gegen die Uploadfilter waren). ??

    Das ist zumindest ein vorerst kleiner Sieg.


    "Der Ausgang der Abstimmung hat zur Folge, dass sich das Plenum nach der Sommerpause im September erneut mit dem Thema beschäftigt: Die Reform wurde von den Abgeordneten ausgebremst, aber nicht gestoppt.


    Im September sind dann, anders als im Vorfeld der heutigen Abstimmung, auch Änderungsanträge möglich. So besteht zumindest die Möglichkeit, dass Aspekte wie das Leistungsschutzrecht oder die Regelungen rund um Upload-Filter noch aus dem Entwurf verschwinden oder dass sie entschärft werden. Grundsätzlich sind aber genauso Anpassungen des Entwurfs in die gegenteilige Richtung denkbar."

    http://spon.de/afgEX


    Kleiner reminder - morgen ist es soweit. Am 05.07. wird über unser Internet und die Filter abgestimmt.
    Mal schauen ob die Petition der Größenordnung komplett ignoriert wird und wie es mit dem Internet innerhalb der EU nun weiter geht. ...
    Ggf. erhalten wir ja das Ergebnis schnell und können es hier auch posten um euch auf dem Laufenden zu halten.

    Da ich mir nicht sicher bin, ob dies bei jeden richtig angekommen ist - die Upload-Grenze ist für jeden Upload separat zu sehen.

    Also angenommen User X gibt die 2000 Moins aus, dann hat er zukünftig für jeden einzelnen Uploads ein Upload-Limit von 250 MB, etc. ...

    (Unbegrenzter Anzahl an Uploads)


    Sollte dies zuvor schon klar gewesen sein, umso besser :)

    Lucy Fox Mehrfachnennungen sind leider nicht möglich ninja_scared

    Ich enthalte mich bei dem Spiel mal, da es vermutlich dezent unfair wäre. ninja_rolleyes


    Das Fest ist in jedem Fall super cool! ninja_yeah

    Ich bin sehr gespannt auf alle weiteren Aktionen, die wir die Tage noch so haben werden. (Ich habe es selber nicht richtig mitbekommen, was unser Team hier alles noch plant xD)

    Hoffentlich gefällt euch das Sommerfest - ist schwer aus denbloßen einzelnen Benennungen der Felder herauszulesen. ninja_sweat

    Feedback ist natürlich immer gerne gesehen und zeigt uns ob solche Aktionen wie das Sommerfest auch weiterhin gewünscht sind. ninja_heart

    Also haltet euch nicht zurück mit Lob, Kritik und allgemeinen Feedback für die Organisation / Organisatoren (in der ich diesmal nicht einmal dabei war xD).