Register for your free account! | Forgot your password?

Go Back   elitepvpers > Shooter > S4 League > S4 League Hacks, Bots, Cheats & Exploits
You last visited: Today at 07:38

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Tutorial] Mit AutoIt einen Trainer erstellen

Discussion on [Tutorial] Mit AutoIt einen Trainer erstellen within the S4 League Hacks, Bots, Cheats & Exploits forum part of the S4 League category.

Closed Thread
 
Old   #1
 
CyberShoxx's Avatar
 
elite*gold: 0
Join Date: Feb 2010
Posts: 1,449
Received Thanks: 3,835
Arrow [Tutorial] Mit AutoIt einen Trainer erstellen

Hallo, heute zeige ich euch wie ihr einen AutoIt Trainer macht bei dem ihr auch versteht was er tut! Als erstes solltet ihr AutoIt und Scite Script Editor installiert haben. Dann kann es auch schon direkt losgehen. Doch vorerst muss ich euch noch sagen das ich dieses Tutorial nur auf Deutsch schreibe. Englisch aus dem Grund nicht, da dieses Tutorial eher für Leute gedacht ist die der deutschen Sprache mächtig sind und außerdem kann ich nicht so gut Englisch.

Also, erstellt euch ein neues au3 Script. Nun kann es auch schon direkt losgehen. Als erstes wollen wir eine GUI (graphical user interface = grafische Benutzeroberfläche) machen bei der wir 2 Checkboxen machen (also 2 verschiedene Funktionen). Da ich nicht der Fan on solchen Start Buttons bin, machen wir es direkt so dass unser kleines Programm nach S4 prüft. Also hier nochmal die Aufgaben als Liste:

1. Erstellen einer GUI mit 2 verschiedenen Funktionen
2. Automatisches Wartn auf den S4Client
3. Ändern der Werte
4. Beenden des Programmes

Also, ich hoffe ihr versteht schon ein bisschen AutoIt und den Umgang mit dem Koda Form Designer. Also, geht in Scite klickt dort auf auf Tools. Nun klickt ihr auf Koda Form Designer. Dort könnt ihr alles mögliche an eurer GUI einstellen. Aber da wir nur 2 Checkboxen haben wollen fügen wir diese ein.



Die eine Checkbox nennen wir Shophack, die andere No Fog. Vergesst bitte nicht eure GUI umzubennen!



So nun fügen wir diese in Scite ein.





Doch dieser Code ist einfach nur Hässlich. Wieso? Nunja, erstes sind 1-2 Includes unnötig außerdem sind viele Sache Zeilenverschwendung und die Variablen müssen noch umbenannt werden. Also, welche Includes sind denn unnötig? Also auf jeden Fall die ButtonConstants.au3 und dann noch bedingt die GUIConstantsEx.au3. Was macht sie denn so unnütz? Diese Includes sind vollgepumpt mit Variablen. Doch die meisten bauchen wir hier nicht. Also entfern bitte folgendes:

Code:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
Dann seht ihr noch so ein

Code:
#Region ### START Koda GUI section ### Form=
und ein

Code:
#EndRegion ### END Koda GUI section ###
Diese dienen nur zur Übersicht. Aber da wir bei unseren kleinen Trainer nicht so viel Code haben sind diese unnütz. Also entfernen wir dies auch. Das nächste wäre dass

Code:
GUISetState(@SW_SHOW)
Was ist daran verkehrt? Eigentlich nichts, doch dass "@SW_SHOW" spielt für uns hier kein Rolle. Also macht das weg. Das sollte dann so aussehen:

Code:
GUISetState()
So, als nächstes sollten wir die Variablen umbenennen. Wieso? Infach desswegen weil es übersichtlicher ist und das $Form1 zB doof aussieht. Also nennen wir zB die $Form1 Variable zu $hGUI um. Die $Checkbox1 zu $Shophack. Letzendlich noch die $Checkbox2 zu $No_Fog. So, wenn wir nun unsere GUI anschauen wollen können wir einen kurzen Testlauf starten. Drück dazu einfach F5. Huch! Was passiert denn da? Ein Fehler? Wir haben doch eigentlich alles richtig gemacht oder? Im Prinzip ja, aber gehen wir doch mal durch was er uns mitteilen will. Er sagt "$GUI_EVENT_CLOSE: undeclared global variable.". Was sollen wir darunter verstehen? Er will uns mitteilen das die Variable $GUI_EVENT_CLOSE mit keinem Wert definiert ist, und er jetzt nicht weiß was er tun soll. Woran liegt dass? Wir haben ja die unnötigen Includes entfernt, und ich meinte dass wir die GUIConstantsEx.au3 nur bedingt brauchen. Bedingt definiere ich in diesen Fall mal mit "Wir brauchen nur eine Variable und zwar diese $GUI_EVENT_CLOSE". Doch was sollen wir nun tun? Ganz einfach, würden wir bei den Includes nachsehen würden wir rausfinden dass $GUI_EVENT_CLOSE mit dem Wert "-3" definiert ist. Also tauschen wir die Variable mit einer -3. Das sieht dann so aus

Code:
Case -3
So, nun können wir unser Programm mit F5 nochmal starten. Bei mir sieht die GUI ganz okay aus, ist jetzt aber nichts besonderes.



So, weiter gehts. Man sagt ja immer man soll die Trainer als Admin starten. Doch wir können das auch umgehen mit dem Befehl #RequireAdmin. Damit überprüft das Programm ob Adminrechte vorhanden sind, und teilt einen mit das dieses Programm welche erfordert. Also setzen wir den Befehl #RequireAdmin ganz oben am Anfang unseres Scriptes hin.

Achja, falls ihr eine Funktion nicht versteht, dann markiert sie und drückt F1. Dann öffnet sich das AutoIt Hilfefenster und dort ist die Funktion erklärt, meistens auch mit Beispielen.

Nun geht es weiter zum Überprüfen, ob der Prozess namens S4Client.exe vorhanden ist. Wenn ja soll er eine Funktion aufrufen. Doch wie stellen wir das am besten an? Schauen wir uns mal diesen Codeteil genauer an:

Code:
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case -3
			Exit

	EndSwitch
Wend
Dies ist in typisches Beispiel einer Schleife. Mit dem Befehl $nMsg = GUIGetMsg() wird sozusagen die GUI gefragt ob irgendwelche Aktionen zu tun sind. Mit Switch $nMsg tun wir in eine sozusagene Unterschleife wechseln bei der sich alles um die Variable $nMsg dreht. $nMsg ist die Variable für die Abruffunktion usnerer GUI. Mit Case -3 stellt er eine "Wenn Bedingung" her. Also, wenn -3 herrscht (also die GUI geschlossen wird) dann soll er den befehl Exit ausführen was das Beenden des Programmes bedeutet. Mit EndSwitch gehen wir aus dieser "GUI Schleife" wieder heraus und der Befehl Wend schließt die Schleife komplett ab. Phu, harter Tobak aber wir schaffen das schon. Also, wo sollten wir unsere Abfrage am besten hintun? Ich werde das direkt unter den

Code:
		Case -3
			Exit
machen. Eine "Wenn Bedingung" machen wir mit dem Befehl If. Das Abfragen eines Prozesses machen wir mit ProcessExists. Also wohl an, ich werde dass hier so machen:

Code:
If ProcessExists("S4Client.exe") <> 0 Then
	_Werte_Ändern()
	EndIf
Das bedeuted folgendes, Wenn der Prozess S4Client.exe orhanden ist dann soll die Funktion _Werte_Aendern() aufgerufen werden. Mit EndIf schliefen wir diese ganzen If, Then Sachen ab. So, doch nun ist das Problem dass wir _Werte_Aendern() noch nicht gemacht haben. Also machen wir uns diese Funktion. Dies machen wir mit dem befehl Func. Wir schreiben ganz unten folgendes hin:

Code:
Func _Werte_Aendern()
	
	EndFunc
So, nun ist unsere Funktion bereit, doch es steht nichts drin. Also füllen wir diese. Als erstes solltet ihr euch die NomadMemory.au3 UDF (UDF = User definied function = Benutzerdefinierte Funktion) downlaoden. Diese findet ihr eigentlich überall, am besten ihr sucht aber bei Google. Habt ihr sie gedownlaodet, so geht ihr in euren programm Ordner und dann zum AutoIt Ordner. Dort öffnet ihr den Include Ordner und fügt diese dort ein. So, weiter zum Script. Erstmal müssen wir sie includieren (einbeziehen) in unser Script damit wir sie benutzen können. Dies folgt wie bei den WindowsConstants.au3 über den Befehl #include ab. Nur bei dem Include Befehl gibt es 2 verschidene Arten, ich erkläre diese mal.

Code:
#include "NomadMemory.au3"
und

Code:
#include <NomadMemory.au3>
Im großen und ganzn sehen sie sich sehr ähnlich. Nur statt bei den "" wird beim 2. Befehl ein <> genutzt. Wo befindet sich der Unterschied? Wenn ihr "" benutzen tut dann sagt ihr dem Programm dass sich eure Include Datei im selben Bereich/Ordner wie euer Script befindet. Schriebt ihr aber <> so teilt ihr dem Programm mit dass sich eure Include Datei im Include Ordner von AutoIt befindet. Im großen und ganzen simpel. Da wir nun aber die NomadMemory.au3 in den Include Ordner von AutoIt getan haben müssen wir demzufolge welchen Befehl nehmen?


Diesen setzen wir nun ganz oben bei den WindowsConstants.au3 hin, es ist egal ob drüber oder drunter.

So, nun geht es ans Memorychanging. Dies ist nicht sonderlich schwer wenn man die Funktionen versteht. Folgende Arbeitsabläufe müssen wir machen:

1. Den Memory von S4Client.exe öffnen
2. Auslesen ob ein Häckchen in der Checkbox gesetzt wurde
3. In den Speicher schreiben
4. Den Memory von S4 Client.exe schließen
5. Das Programm beenden

So fangen wir an. Als erstes müssen wir dem Programm sagen welchen Prozess er öffnen soll. Dafür nutzen wir ProcessExists. Dieser Befehl holt sich die PID (Process ID) von den angegebenen Prozess und gibt diese zurück. Da er diese zurückgibt müssen wir das ja irgendwo speichern. Dafür setzen wir diesen Befehl einfach in eine Variable. Das dürfte dann so aussehen:

Code:
$PID = ProcessExists("S4Client.exe")
Also setzen wir nun diesen Befehl in unsere Funktion rein. Diese sieht nun so aus:

Code:
Func _Werte_Aendern()
$PID = ProcessExists("S4Client.exe")
	EndFunc
Gut, nun sollten wir erstmal den Speicher von den S4Client öffnen. Dafür gibt es den Befehl _MemoryOpen. Und als Prozess geben wir unsere Variable $PID an die ja die Prozess ID (kurz PID) von S4Client.exe besitzt. Das sollte dann so aussehen:

Code:
$Open = _MemoryOpen($PID)
Um den geöffneten Speicher (aka. Memory) nutzen zu können speichern wir das in einer Variable. Um mich daran besser orientieren zu können nehme ich die Variable $Open. Merkt euch, jede Variable in AutoIt muss mit einem $ beginnen, da sonst das Programm nicht weiß das ihr eine Variable deklarieren wollt.

So, nun müssen wir abfragen ob Chophack oder No Fog ausgewählt worden ist. Dafür gibt es den Befehl GuiCtrlReat. Diese Aufgabe werden wir in einer If Abfrage lösen. Hier mal die Lösung:

Code:
If GUICtrlRead($Shophack) = 1 Then
EndIf
If GUICtrlRead($No_Fog) = 1 Then
EndIf
Zuerst fragen wir ob er aus der Variable Shophack den Wer 1 lesen tut. Der Wert 1 bedeuted beim Programmieren (oder in diesem Fall beim Scripten) True. Demzufolge würde welche Zahl für False stehen?


So, nachdem wir jetzt wissen wofü 1 und 0 steht können wir auch direkt mit dem Werteändern beginnen. Dafür haben wir den Befehl _MemoryWrite. Dieser ist etwas kompliziert. Schauen wir uns doch mal die Syntax an.

Code:
_MemoryWrite($iv_Address, $ah_Handle, $v_Data, $sv_Type = 'dword')
Also, hier mal die Erklärung:

$iv_Address -> Hier unsere Adresse. Vergesst nicht das 0x davor da die gesuchten Adressen mit Cheat Engine fast immer Hexdezimal sind.
$ah_Handle -> Das Prozesshandle. Also unsere $Open Variable
$v_Data -> unser Wert in den wir die Adresse ändern wollen. Merkt euch, den Wert in "" zu schreiben.
$sv_Type = 'dword' -> Den Typ des Wertes den wir nutzen. Es gibt viele unterschiedliche Typen, hier mal ein paar aufgelistet:

Float -> Floats sind Gleitkommazahlen, also Zahlen wie 1.4 oder 1 oder 6.7846485 oder 23512873.23768123. Floats sind 4 Bytes groß.
Doule -> Double sind doppelte Floats. Dementsprechend sind sie 8 Bytes groß. Dadurch lassen sich deutlich präzisere Zahlen errechnen.
char -> chars sind strings. Also Werte wie "Hallo" oder "Deine Mudda123" oder "elite34_5"
long -> das sind Werte im 4 Bytes Bereich

So, das genug Datentypen, wenn ihr mehr braucht könnt ihr sie ja einfach mal googeln. Nur eins muss ich euch noch klar machen, nämlich der Umgang mit char. Angenommen ich habe das Wort "Hallo", dann müsste ich folgendes bei $sv_Type = 'dword' schreiben:

char[6]

Wieso char[6]? Char um unseren Programm zu sagen das wir ein Wort nehmen. Die 6 steht für die Buchstabenanzahl + 1. Unser Wort "Hallo" besteht aus 5 Buchstaben. Plus 1 gerechnet ergiebt dies die Zahl 6. Doch wieso +1? Das liegt daran dasman beim Schreiben des Speichers ein Byte mehr benutzen muss. Doch wieso? Weil ein String mit einem "\00" Byte abgeschlossen wird. Desswegen wird bei Cheat Engine auch gefragt "Terminate string with zero".

Aber weiter nun zum Memorychange Befehl. Angenommen wir haben die Adresse 0x00D3F00C (keine Angst, die Adresse ist uralt und gilt schon lange nichtmehr). Diese ist ein String namens "Off". Wir wollen diesen String in On changen um unseren Shophack zu erzielen. Also sieht unser Befehl so aus:


Super, da dies der Shophack ist müssen wir den aber auch in die Abfrage des Shophacks reintun. Welche war das nochmal?


Also müsste dass dann so aussehen:


Gut gemacht, nun aber noch No Fog. Angenommen wir haben die Adresse 0x00F87CD1 (Diese Adresse funktioniert ebenfalls nicht da sie erfunden ist). Diese Adresse ist ein Float und wir möchten sie in den Wert 6.2 ändern (ist kein Originalwert denn No Fog ist eigentlich ein String aber ich möchte euch noch zeigen wie das in Float geht). Also selbe Frage wieder. Wo packen wir das hinein?


Okay, und wie würde es mit dem MemoryWrite Befehl aussehen?


So, ich muss aber noch sagen dass ihr das "Float" nicht unbedingt großschreiben müsst. Ihr könnt zB auch FLOAT oder float schreiben dass ist egal. Hauptsache ist dass das Programm es versteht.

So, das war es ja auch schon fast. Es fehlen uns noch 2 Arbeitsvorgänge. Das schließen des Speichers (auf Englisch Memory) und das beenden des Programmes. Als erstes schließen wir mal den Memory. Wo? Unter unsere ganze If Abfragen. Zum schließen des Speichers gibt es den Befehl _MemoryClose. Dieser ähnelt stark den _MemoryOpen Befehl. Doch wie nutzen wir ihn? Ganz simpel, geöffnet haben wir den Memory mit _MemoryOpen und haben es in der Variable $Open gespeichert. Da wir nun den geöffneten Memory schließen wollen, nehmen wir einfach wieder die $Open Variable und überschreiben diese. Das sollte dann so aussehen:


Fein gemacht. Nun noch das Beenden des Programmes. Dafür gibt es den Befehl Exit. Also schreiben wir direkt unser unseren _MemoryClose Befehl ein Exit.

Respekt, ihr habt soeben euren Trainer fertig gemacht. Eure Funktion _Werte_Aendern dürfte nun so aussehen

Noch etwas, wenn ihr euren Source kommentieren wollt dann setzt vor euren Kommentaren ein ";". Also zB so

Code:
;Hallo das ist ein Kommentar
Kommentare werden in AutoIt Grün angezeigt und haben den zweck euch bei der Übersichtlichkeit eures Programmes zu helfen.

Da ihr mit eurem Programm nun fast fertig seid geht es um den Feinschliff. Drückt dafür einfach STRG + T. Schon wird eurer AutoIt Source in die richtige Form gebracht und ist gleich viel Überswichtlicher. Nun geht es ums Compilen. Dabei wird euer geschriebener Source kompressiert und in einer ausführbaren Datei auf euren Computer gespeichert. Wenn ihr Compilen wollt drückt ihr STRG + F7. Dann kommt ihr in das Compile Fenster von AutoIt. Jetzt bestehen trotzdem noch ein paar Fragen. Ich würde ruch empfehlen bei Output type A3X auszuwählen.


Aus den Grund weil dadurch euer Script in der Laufzeitumgebung von AutoIt gestartet wird und somit mehr Rechte hat. Der Nachteil ist, dass der Traineruser AutoIt installiert haben muss. Wenn ihr bei Output type EXE ausgewählt habt dann brauch der User zwar kein AutoIt aber es wird höchstwahrscheinlich nicht funktionieren da euer Programm nicht genug Rechte hat. Also empehle ich euch A3X auszuwählen.



Nun noch Output arch.

Dort müsst ihr auswählen für welche Bit Systeme euer Programm läuft. Ich empfehle euch "Compile X86 version. (default)" auszuwählen, da es dann bei 32 Bit und 64 bit funktioniert.



So, ob ihr UPX benutzen wollt müsst ihr wissen. Wenn ihr euer Programm im Anschluss noch mit Themida packen wollt (geht nur wenn ihr es als EXE compilen tut) dann dürft ihr UPX nicht auswählen.

Wenn ihr fertig seid drückt ihr auf Compile Script und euer Programm wird erstellt.



Das war es auch schon mit meinem kleinen Tutorial. Ich hoffe doch sehr ihr habt etwas gelernt und nicht nur C&P gemacht. Man sollte schließlich wissen was man tut

Bei Fragen jeglicher Art steh ich euch natürlich zur Verfügung. Es würde mir aber gefallen wenn ihr die Fragen in diesen Thread posten würdet da ich nicht so auf PM Spam stehe.

Ansonsten, schönen Tag noch!

Btw, wer nicht googlen kann findet diverse Dateien unten im Anhang Unter Anderem ist das die NomadMemory oder zB unser Trainerscript.

Downloads

Attached Files
File Type: rar Nomad Memory.rar (3.2 KB, 603 views)
File Type: rar Trainerscript.rar (588 Bytes, 767 views)
CyberShoxx is offline  
Thanks
51 Users
Old 10/02/2011, 12:36   #2
 
Sharqy's Avatar
 
elite*gold: 0
Join Date: Apr 2011
Posts: 918
Received Thanks: 522
English? D:
Sharqy is offline  
Thanks
1 User
Old 10/02/2011, 12:39   #3
 
DreyZlol's Avatar
 
elite*gold: 28
Join Date: Sep 2011
Posts: 145
Received Thanks: 52
English . But i think it's a nice tutorial.
DreyZlol is offline  
Old 10/02/2011, 12:42   #4
 
tuntien96's Avatar
 
elite*gold: 0
Join Date: Sep 2010
Posts: 640
Received Thanks: 830
looks very nice
tuntien96 is offline  
Old 10/02/2011, 12:43   #5

 
「Bad Apple」's Avatar
 
elite*gold: 81
Join Date: Sep 2010
Posts: 756
Received Thanks: 885
Das ist ein richtig nices tutorial xD
「Bad Apple」 is offline  
Old 10/02/2011, 12:43   #6
 
DreyZlol's Avatar
 
elite*gold: 28
Join Date: Sep 2011
Posts: 145
Received Thanks: 52
Yup.
DreyZlol is offline  
Old 10/02/2011, 12:51   #7
 
.Neo*'s Avatar
 
elite*gold: 120
Join Date: Sep 2011
Posts: 605
Received Thanks: 293
Ausführliches Tutorial. Ganz gut für mich und die ganzen Newbies in der Coding Sektion.
.Neo* is offline  
Old 10/02/2011, 13:07   #8
 
×Kiyan×'s Avatar
 
elite*gold: 0
Join Date: Jun 2010
Posts: 898
Received Thanks: 203
Gutes Tutorial. ausführlich & nicht nur c&p
×Kiyan× is offline  
Old 10/02/2011, 13:13   #9
 
Krasti's Avatar
 
elite*gold: 4
Join Date: Aug 2011
Posts: 2,169
Received Thanks: 7,917
Tut is nice for people know german ._.
Anyway nice but as i remember,this is your second tut right? xD
Krasti is offline  
Old 10/02/2011, 13:20   #10
 
CyberShoxx's Avatar
 
elite*gold: 0
Join Date: Feb 2010
Posts: 1,449
Received Thanks: 3,835
Noch Ideen für das oder ein anderes Tutorial?

Sry but i dont make it in english because its so many text and my english isnt very good D:
CyberShoxx is offline  
Thanks
2 Users
Old 10/02/2011, 13:25   #11
 
DreyZlol's Avatar
 
elite*gold: 28
Join Date: Sep 2011
Posts: 145
Received Thanks: 52
Maybe someone can translate in ?
DreyZlol is offline  
Old 10/02/2011, 13:28   #12
 
Shayvin's Avatar
 
elite*gold: 100
Join Date: Nov 2010
Posts: 526
Received Thanks: 510
Nice tut,gut für Anfänger die AutoIt lernen wollen

PS. Such nach einen Übersetzter,weil c. 60% von epvp können nur english
Shayvin is offline  
Old 10/02/2011, 13:34   #13
 
CyberShoxx's Avatar
 
elite*gold: 0
Join Date: Feb 2010
Posts: 1,449
Received Thanks: 3,835
Ja, wenn es einer übersetzen könnte wäre es sehr nett. Aber wenn es geht bitte nicht google translator denn der verdreht den kompletten Sinn. Der der das macht kriegt ordentlich thanks und vielleicht bekommt er von mir was schönes
CyberShoxx is offline  
Thanks
2 Users
Old 10/02/2011, 13:42   #14
 
Shayvin's Avatar
 
elite*gold: 100
Join Date: Nov 2010
Posts: 526
Received Thanks: 510
Quote:
Originally Posted by -CyberLinK- View Post
Ja, wenn es einer übersetzen könnte wäre es sehr nett. Aber wenn es geht bitte nicht google translator denn der verdreht den kompletten Sinn. Der der das macht kriegt ordentlich thanks und vielleicht bekommt er von mir was schönes
Mein English ist auch nicht grad gut

Google Translator übersetzt jedes Wort einzelnd deswegen ergibt es keinen Sinn
Shayvin is offline  
Old 10/03/2011, 11:22   #15
 
x3DK1LLER's Avatar
 
elite*gold: 0
Join Date: Sep 2011
Posts: 17
Received Thanks: 7
nice Tutorial
x3DK1LLER is offline  
Closed Thread


Similar Threads Similar Threads
[Tutorial]CE richtig in S4 verwenden, Trainer mit AutoIT erstellen
01/15/2012 - S4 League Hacks, Bots, Cheats & Exploits - 245 Replies
http://deathisland.kilu.de/TutorialLogo.png Hallo liebe E*PvP Community, ich habe es ja bereits in einem Thread genannt, nun werde ich hier ein richtiges Tutorial posten. Ich werde im Folgenden nochmals darauf eingehen, wie ihr ohne Bypass mit CheatEngine Adressen suchen könnt. Außerdem werde ich darauf eingehen, wie ihr mit AutoIT einen Trainer erstellt(NomadMemory.au3 wird nicht benötigt!) Ich habe bewusst nur die WinApi funktionen erklärt, ganz einfach aus dem Grund, dass jeder...
[HowTO]Tutorial: AutoIT-Trainer erstellen
12/12/2010 - S4 League Hacks, Bots, Cheats & Exploits - 7 Replies
Ich bin hier um Ihnen meine Anleitung für mich, nur von mir nur für Sie! Es wird Sie lehren, AutoIT erstellen Sie Ihre eigenen Trainer mit. Angst nicht zu verstehen? Mach dir keine Sorgen innerhalb dieses Tutorials Ich bin unten zu reden Null hat Nullen, unterlegen war, dann können Sie sehen, trotzdem nett ch'uis -------- --------------- -------- Zuerst müssen Sie ...



All times are GMT +1. The time now is 07:39.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.