Selbstdumm
Der Selbstdumm ist ein Client, der eine Schizophrenie auslöst. Er ist ein zweites Ich und wird zu einem Server, der jeder beliebige Mensch sein kann, verbunden. Danach ist er einfach nur dumm und labert Unsinn. Dabei benutzt er hauptsächlich die vorhandenen Module, entwickelt aber auch neue oder hält sich an keine Regelung.
Protokolle zur Kommunikation
UDCP
Das Universal Dumm Control Protocol wird dazu benutzt, den Client ein und aus zu schalten, den Looplaberer zu breaken oder den Selbstdumm zu ermahnen. Es stellt eine dauerhafte Verbindung vom Server zum Client her und ist immer aktiv. Von außen kann die Verbindung abgehört werden, es kann auch von außen in Verbindung mit DRP ein Befehl an einen Remote-Selbstdumm gesendet werden.
DRP
Das Dumm Routing Protocol steuert Ein- und Ausgaben, die selbstverständlich nur vom Server durchgeführt werden können. Neben dem UDCP stellt auch das DRP eine dauerhaft aktive Client2Serververbindung her und leitet alle Ausgaben des Clients über den Mund weiter bzw. alle Eingaben über die Ohren zum Selbstdumm.
DTP
Das Dumm Transfer Protocol wird benutzt, wenn zwei Server mit laufendem Selbstdumm zusammen sind. Durch DTP ist eine Kommunikation zwischen einem Client zu einem Remoteserver möglich. Der Remoteserver kann die Daten ggf. zu seinem Client über DRP weiterleiten.
SDTP
Das Silent Dumm Transfer Protocol wird benutzt, wenn noch andere Server ohne Selbstdumm in der nähe sind, die nichts davon mitbekommen sollen. Kommuniziert wird hier entweder völlig leise durch Blicke und Gesichtsausdrücke, oder ggf. mit Hilfe der AESLaberers (siehe Module).
Module
Nochmalnachfrager
Wenn der Server etwas sagt, fragt der Selbstdumm das gleich nochmal.
Beispiel:
Server: "Ich geh jetzt nach Hause."
Selbstdumm: "Du gehst jetzt nach Hause?"
Pler
Jedes Wort fängt auf jeden Fall mit 'p' an. Bei längeren Wörtern können auch weitere Buchstaben im Wort ersetzt werden.
Beispiel:
Normal: Der Selbstdumm ist sehr dumm. Ich weiß es nicht.
Mit dem Pler geparsed: Per Pelbstpumm pist pehr pumm. Pich peiß pes picht.
ler/leuter
Macht jedes Wort zu einem Substantiv. Wenn jemand Scheiße labert wird er z.B. zum Scheißelaberer, jemand der dumm ist, ist der Dummseier.
Uler
Ähnlich wie der Pler, aber nicht immer der erste Buchstabe wird ersetzt.
Beispiel:
Original: Ein selbstdumm ist so ziemlich das dümmste was es gibt.
Uler: Un sulbstdumm ust su zumluch dus dummstu wus us gubt.
Eiler
Das Gleiche wie der Uler, nur statt durch u werden die Buchstaben durch ei ersetzt.
Beispiel:
Original: Ein selbstdumm ist so ziemlich das dümmste was es gibt.
Eiler: ein seilbstdeim eist sei zeimleich deis deimstei weis eis geibt.
Wiederholer
Wiederholt alles.
Beispiel:
Ich hab hunger. Ich wiederhole: Ich hab hunger.
Doppler
Wie der Wiederholer, nur ohne das 'Ich wiederhole'.
Beispiel:
Ich hab hunger. Ich hab hunger.
Troiser
Sagt alles drei mal.
Beispiel:
Ich hab hunger. Ich hab hunger. Ich hab hunger.
Looplaberer
Wie der Doppler oder der Troiser, aber der Selbstdumm hört nicht mehr auf. Er muss mit einem 'BREAK' über UDCP gestoppt werden.
Franzose
Alles wird mit einem Französischen Akzent gesagt.
Scheißelaberer
Labert irgendwelche Wörter, Sätze etc. die völlig sinnlos sind.
Beispiel:
Bist du auch jemand?
17:4 = links, sodass ich Arm raus ein Glas aber meine Auge ist 19.
Nochmalnachlamedumm
Nach jeder Frage kommt zwei oder drei mal 'ne?'.
Beispiel:
Ich bin dumm ne? NE? NNE????
Selbstfrager
Fragt immer, ob er gemeint ist (das 'ich?' hört sich aber eher an wie 'üüüüüüüüch?').
Beispiel:
Server: Selbstdumm halt die Fresse.
Selbstdumm: üüüüüüüüüüüüüch?
Sichnichtdummfinder
Der Selbstdumm versteht nicht mehr, dass er dumm ist und sagt dauerd etwas wie:
Hä was denn so dumm bin ich doch garnicht!
Plötzlichausraster
Rastet mittem im Satz plötzlich völlig aus.
Beispiel:
Sei aber bitte sehr leise, denn das ist ja alles sone sache VERDAMMTE SCHEISSE HIER ICH GLAUB ICH SPINNE DAS KANN DOCH SO NICHT WEITERGEHEN!!!
Sichzeichenausdenkenwoller
Der selbstdumm will sich ein Zeichen für irgendwas ausdenken, was oft gesagt wird.
Beispiel:
Server: Oa Selbstdumm sei einfach still.
Selbstdumm: Guck ma du sagst ja ziemlich oft dass ich still sein soll..wollen wir uns dafür nicht mal ein Zeichen ausdenken?
Implementierung
Um den Selbstdumm generell leicht auf mehreren Menschen zu verbreiten wurde die Selbstdumm-API programmiert. Diese macht es relativ leicht den Selbstdumm bei sich zu integrieren. Als erstes sollte man einfach einen Zeiger der "selbstdumm" Klasse in seine eigene Klasse integrieren:
class leut { //... selbstdumm *selbstdumm; }
Warum einen Zeiger? Ganz klar. Der Selbstdumm kann vielleicht vielen Leuten ziemlich aufn Sack gehen. Der Eine findet ihn vielleicht gut, der andere nicht. Da die Selbstdumm Klasse aber so lame gecodet is, kann der Speicher den sie benötigt nicht über die Klasse, außer über den Destruktor, freigegeben werden. Das heißt die einzige Möglichkeit wäre darauf zu warten dass der Destruktor der leut Klasse aufgerufen wird der dann halt auch das selbstdumm objekt zerstört (über den Destruktor des Selbstdumms). Und wer will schon bis zu seinem Tod warten um den Selbstdumm los zu werden wenn man ihn vielleicht seit 50 Jahren hat ohne ihn zu wollen. Am besten ist es also wenn wir diesem Mangel gleich aus dem Weg gehen in dem wir einen Zeiger benutzen. Der Zeiger sollte natürlich private sein. Um den Selbstdumm nun zu initialisieren allozieren wir Speicher für die Klasse. Dies geschieht natürlich einfach über die leut::initModule(module m) Methode mit der sie alles was sie lernen initialisieren.
leutErrorCode leut::initModule(moduleId id) //leutErrorCode sollte Ihnen geläufig sein, es ist eine enum, die alle Fehler die der Mensch machen kann enthält { switch(id) { //... case LEUT_MODULE_IDS_SELBSTDUMM: //wird in der selbstdumm.h definiert... wert: 0xFFFFFFFFFFFFFFFF... also der letzte wert des long longs... ist auf jeden fall noch frei this->selbstdumm = new selbstdumm; //der dumm ist jetzt initialisiert, leicht oder? //c user benutzen this->selbstdumm = (selbstdumm *)malloc(sizeof(*this->selbstdumm)); //in c gibts zwar keine klassen aber egal if(!this->selbstdumm) return LEUTERROR_NOMEM; //oh oh... euer hirn is voll... das sollte nicht passieren... ohne Speicher keinen dumm! break; //... } }
Wenn !this->selbstdumm false ergibt, wird irgendwo unten LEUTERROR_SUCCESS zurückgegeben. Wenn dies der Fall ist hat alles geklappt. Aber da Sie alle Instanzen der leut Klasse sind, wissen Sie das ja. Bevor ihr jetzt weitermacht solltet ihr eure Funktion leut::forget(moduleId id) erweitern. Die dümmste Funktion der leut Klasse die eigentlich ziemlich gut ist. Denn sie gibt immer zufällig irgendwelchen Speicher frei... Aber egal auch sie muss um den selbstdumm erweitert werden. Denn auch der Dumm kann vergessen werden. Wenn ihr das nicht mit eincodet wird euch der Server "Universum" bestimmt dafür kicken. Und darauf habt ihr sicherlich keinen bock. Also immer fair bleiben.
void leut::forget(moduleId id) //achja falls sie es nicht wissen moduleId ist einfach eine typendefinition mit einem __int64.. also sie haben viel zu lernen^^ { switch(id) { //... case LEUT_MODULE_IDS_SELBSTDUMM: delete this->selbstdumm; //c user halt wieder free((void*)this->selbstdumm); aber das geht ja eh nich break; } }
Wenn man halt gezielt kein bock mehr auf den dumm hat kann man auch die leut::unregisterModule(moduleId id) benutzen. Die kennen Sie ja sicherlich. Da tut man auch genau das selbe wie in der leut::forget Funktion...