Register for your free account! | Forgot your password?

Go Back   elitepvpers > Other Online Games > Diablo 2 > Diablo 2 Programming
You last visited: Today at 18:10

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

Advertisement



D2NT Aura - Auto - Stack - Script (auradin)

Discussion on D2NT Aura - Auto - Stack - Script (auradin) within the Diablo 2 Programming forum part of the Diablo 2 category.

Reply
 
Old   #1
 
easy7going's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 19
Received Thanks: 8
D2NT Aura - Auto - Stack - Script (auradin)

Hallo zusammen,

da ich schon seit geraumer Zeit bei euch mitlese, möchte ich nun auch eine Kleinigkeit beisteuern.
Wie der Titel schon sagt handelt es sich um ein Aura-Auto-Stack Script für einen Auradin und kann wahlweise für den Helm oder die Rüstung angewendet werden.

Ich lasse derzeit das Script für einen BaalLeechFight follow bot auf HC laufen und bin mitlerweile bei Run 483, was ca. 32h Laufzeit entspricht.

Ich habe versucht das Script so sicher wie irgend möglich zu machen, soll heißen: der Bot soll tunlichst seine Dreams nich wegwerfen
Daher wird fast alles doppelt und dreifach geprüft und wiederholt da durch Lags, Interrups, fragmentiertem Speicher, etc. es doch mal passieren kann das kurzfristig ein falscher Zustand angenommen wird und eine Schleife fälschlicherweise verlassen wird.
Also nich wundern das im Script zum Teil die selbe Schleife zwei bis vier Mal hintereinander auftaucht bzw. geprüft wird.

Verbesserungsvorschläge und Co. sind immer gern gesehn.

Btw. kann mir bitte wer das Itemprefix für Dream zukommen lassen?
Dann könnte ich noch ein SwapWeapon() einbaun für den Fall das der Char grad nicht sein Dream Schilt auf Tasche hat.


So, dann noch viel Spass beim austesten.


Best regards
easy7going aka eukl1d


Code:
[COLOR=Green]//[/COLOR]
[COLOR=Green]//script: NTAuraAutoSTACK.ntj[/COLOR]
[COLOR=Green]//description: [/COLOR]
[COLOR=Green]//the script will auto-stack your aura for a Dream helm or a Dragon armor[/COLOR]
[COLOR=Green]//[/COLOR]
[COLOR=Green]//location:[/COLOR]
[COLOR=Green]//store the script in the folder: D2NT\scripts\NTBot\bots\[/COLOR]
[COLOR=Green]//and name it for example: NTAuraAutoSTACK.ntj[/COLOR]
[COLOR=Green]//[/COLOR]
[COLOR=Green]//how to start the script: [/COLOR]
[COLOR=Green]//make a push-call in your char config: NTConfig_Paladin_YOURcharNAMEhere.ntl at the start via:[/COLOR]
[COLOR=Green]//NTConfig_Script.push("NTAuraAutoSTACK.ntj");[/COLOR]
[COLOR=Green]//[/COLOR]
[COLOR=Green]//[/COLOR]
[COLOR=Green]//[/COLOR]
[COLOR=Green]//HOW SAFE IS IT[/COLOR]?????
[COLOR=Green]// ---> SHORT  version: its pretty safe, but its impossible to bring it up to a 100[/COLOR]%
[COLOR=Green]//[/COLOR]
[COLOR=Green]// ---> EXTENDED version:[/COLOR]
[COLOR=Green]//well, i use that script in HC for my BaalLeechFight-Bot (Follow-Bot) and the bot still wear his Dreams after 483 runs, even if i accidentally clicked around or pressed a button (like Esc/M/I/O/..) during the stack-task[/COLOR]
[COLOR=Green]//the script will double and tripple check everything but thats not a 100[/COLOR]% warranty!!!
[COLOR=Green]//so, the chance to lose your items should be incredibly small (as long as you don't click around during the stack-task)[/COLOR]
[COLOR=Green]// NEVER FORGET [/COLOR]=== >the chance to lose your items will rise if you click around!! even if the script intercepts most of it ---------------->TRY TO AVOID THAT<----------------------
[COLOR=Green]//if you aren't sure about the script ---> try it with a dummy[/COLOR]
[COLOR=Green]//[/COLOR]
[COLOR=Green]//ya, maybe its a bit overdone with all the security checks/delays etc... but hey, as long as it works that well [/COLOR]^_^
[COLOR=Green]//[/COLOR]
[COLOR=Green]//[/COLOR]
[COLOR=Green]//best regards[/COLOR]
[COLOR=Green]//eukl1d[/COLOR]
[COLOR=Green]//////////////[/COLOR]



[COLOR=Green]////////////////////////////////////////////////////////[/COLOR]
[COLOR=Green]//[/COLOR]|###########|
[COLOR=Green]//[/COLOR]|##OPTIONS##|
[COLOR=Green]//[/COLOR]|###########|
[COLOR=Green]//[/COLOR]
[COLOR=Green]//Stack Item -->[/COLOR] Helm = 1 , Armor = 3
[B][I][COLOR=Navy]var[/COLOR][/I][/B] BodyPart = [COLOR=Red]1[/COLOR];
[COLOR=Green]//[/COLOR]
[COLOR=Green]//********stack amount***********[/COLOR]
[B][I][COLOR=Navy]var[/COLOR][/I][/B] StackAmount = [COLOR=Red]100[/COLOR];  [COLOR=Green]//around 35sec for 100 stacks[/COLOR]
[COLOR=Green]//[/COLOR]
[COLOR=Green]//******delay between action******[/COLOR]
[B][I][COLOR=Navy]var[/COLOR][/I][/B] StackDelay = [COLOR=Red]60[/COLOR];     [COLOR=Green]// do not change! + don't change any other delay! if you still want to change it --> test it with a DUMMY![/COLOR]
[COLOR=Green]//[/COLOR]
[COLOR=Green]////////////////////////////////////////////////////////[/COLOR]





[B][I][COLOR=Navy]function[/COLOR][/I][/B] NTMain()
{
    Include([COLOR=Gray]"libs/common/NTCommon.ntl"[/COLOR]);
    NTC_IncludeLibs();
    NTC_IncludeConfig([COLOR=Gray]"NTBot/char_configs"[/COLOR]);
    NT_LoadConfig();
    NTSI_LoadNIPFiles([COLOR=Gray]"NTBot/item_configs"[/COLOR]);
    NTA_Initialize();

    [B][I][COLOR=Navy]if[/COLOR][/I][/B](!NTTM_CheckAct())
    {
        NTC_SendMsgToScript([COLOR=Gray]"NTBotGame.ntj"[/COLOR], [COLOR=Gray]"NTTM_CheckAct()"[/COLOR]);
        [B][I][COLOR=Navy]return[/COLOR][/I][/B];
    }

    NTC_PingDelay([COLOR=Red]500[/COLOR]);

    [B][I][COLOR=Navy]var[/COLOR][/I][/B] _merc = NTC_GetMerc();                      
    NTC_PingDelay([COLOR=Red]50[/COLOR]);
    [B][I][COLOR=Navy]if[/COLOR][/I][/B](_merc) [COLOR=Green]//merc alive [/COLOR]= true, else the script will stop
    {
        [B][I][COLOR=Navy]var[/COLOR][/I][/B] _items = _merc.GetItems();
    
        [B][I][COLOR=Navy]if[/COLOR][/I][/B]((BodyPart!=[COLOR=Red]1[/COLOR])&&(BodyPart!=[COLOR=Red]3[/COLOR]))
        {
            BodyPart=[COLOR=Red]1[/COLOR];
        }

        [COLOR=Green]//double check[/COLOR]
        NTC_PingDelay([COLOR=Red]150[/COLOR]);
        NT_SecurityCheck(); [COLOR=Green]//security check[/COLOR]
        NTC_PingDelay([COLOR=Red]150[/COLOR]);
        NT_SecurityCheck(); [COLOR=Green]//security check[/COLOR]

        [B][I][COLOR=Navy]if[/COLOR][/I][/B](_items)
        {
            NTC_PingDelay([COLOR=Red]StackDelay[/COLOR]);
            SetUIState([COLOR=Red]0x01[/COLOR], [B][I][COLOR=Navy]true[/COLOR][/I][/B]);
            SetUIState([COLOR=Red]0x24[/COLOR], [B][I][COLOR=Navy]true[/COLOR][/I][/B]);
            NTC_PingDelay([COLOR=Red]50[/COLOR]);

            [B][I][COLOR=Navy]if[/COLOR][/I][/B](me.ClickMercItem([COLOR=Red]BodyPart[/COLOR]))
            {
                NTC_PingDelay([COLOR=Red]100[/COLOR]);
                [B][I][COLOR=Navy]if[/COLOR][/I][/B](me.itemoncursor)
                {
                    [B][I][COLOR=Navy]for[/COLOR][/I][/B]([B][I][COLOR=Navy]var[/COLOR][/I][/B] count = [COLOR=Red]0[/COLOR]; count < StackAmount; count++)
                    {
                        NTC_PingDelay([COLOR=Red]StackDelay[/COLOR]);
                        SetUIState([COLOR=Red]0x01[/COLOR], [B][I][COLOR=Navy]true[/COLOR][/I][/B]);
                        SetUIState([COLOR=Red]0x24[/COLOR], [B][I][COLOR=Navy]true[/COLOR][/I][/B]);
                        me.ClickItem([COLOR=Red]BodyPart[/COLOR]);
                        NTC_PingDelay([COLOR=Red]StackDelay[/COLOR]);
                        SetUIState([COLOR=Red]0x01[/COLOR], [B][I][COLOR=Navy]true[/COLOR][/I][/B]);
                        SetUIState([COLOR=Red]0x24[/COLOR], [B][I][COLOR=Navy]true[/COLOR][/I][/B]);
                        me.ClickMercItem([COLOR=Red]BodyPart[/COLOR]);
                        NTC_PingDelay([COLOR=Red]StackDelay[/COLOR]);
                    }
                    SetUIState([COLOR=Red]0x01[/COLOR], [B][I][COLOR=Navy]false[/COLOR][/I][/B]); [COLOR=Green]// close inv[/COLOR]
                    SetUIState([COLOR=Red]0x24[/COLOR], [B][I][COLOR=Navy]false[/COLOR][/I][/B]); [COLOR=Green]// close inv merc[/COLOR]
                    NTC_PingDelay([COLOR=Red]StackDelay[/COLOR]);
                    NT_SecurityCheck(); [COLOR=Green]//security check[/COLOR]
                }
            }
        }
        
        NTC_PingDelay([COLOR=Red]1000[/COLOR]);
    }

    [B][I][COLOR=Navy]for[/COLOR][/I][/B]([B][I][COLOR=Navy]var[/COLOR][/I][/B] count = [COLOR=Red]0[/COLOR]; count < [COLOR=Red]4[/COLOR]; count++)
    {
        NT_SecurityCheck(); [COLOR=Green]//security check[/COLOR]
        NTC_PingDelay([COLOR=Red]500[/COLOR]);
    }

    NTC_SendMsgToScript([COLOR=Gray]"NTBotGame.ntj"[/COLOR], [COLOR=Gray]"SCRIPT_END"[/COLOR]);
}

[COLOR=Green]//security check, if item on cursor[/COLOR]
[B][I][COLOR=Navy]function[/COLOR][/I][/B] NT_SecurityCheck()
{
    [B][I][COLOR=Navy]while[/COLOR][/I][/B](me.itemoncursor)
    {
        NTC_PingDelay([COLOR=Red]150[/COLOR]);
        SetUIState([COLOR=Red]0x01[/COLOR], [B][I][COLOR=Navy]true[/COLOR][/I][/B]); [COLOR=Green]// open inv[/COLOR]
        SetUIState([COLOR=Red]0x24[/COLOR], [B][I][COLOR=Navy]true[/COLOR][/I][/B]); [COLOR=Green]// open inv merc[/COLOR]
        NTC_PingDelay([COLOR=Red]50[/COLOR]);
        me.ClickItem([COLOR=Red]BodyPart[/COLOR]);
        NTC_PingDelay([COLOR=Red]150[/COLOR]);

        [B][I][COLOR=Navy]if[/COLOR][/I][/B](me.itemoncursor)
        {
            SetUIState([COLOR=Red]0x01[/COLOR], [B][I][COLOR=Navy]true[/COLOR][/I][/B]); [COLOR=Green]// open inv[/COLOR]
            SetUIState([COLOR=Red]0x24[/COLOR], [B][I][COLOR=Navy]true[/COLOR][/I][/B]); [COLOR=Green]// open inv merc[/COLOR]
            NTC_PingDelay([COLOR=Red]50[/COLOR]);
            me.ClickMercItem([COLOR=Red]BodyPart[/COLOR]);
            NTC_PingDelay([COLOR=Red]150[/COLOR]);    
        }
        SetUIState([COLOR=Red]0x01[/COLOR], [B][I][COLOR=Navy]false[/COLOR][/I][/B]); [COLOR=Green]// close inv[/COLOR]
        SetUIState([COLOR=Red]0x24[/COLOR], [B][I][COLOR=Navy]false[/COLOR][/I][/B]); [COLOR=Green]// close inv merc[/COLOR]
        NTC_PingDelay([COLOR=Red]50[/COLOR]);
    }
}
easy7going is offline  
Thanks
6 Users
Old 03/19/2011, 22:21   #2

 
lanara's Avatar
 
elite*gold: 139
Join Date: Oct 2006
Posts: 12,058
Received Thanks: 24,256
Das nenn ich mal einen soliden ersten Post hier im Forum. Kanns leider nicht testen, da ich nicht das benötigte Equip habe, aber schaut gut aus.
lanara is offline  
Old 03/19/2011, 22:24   #3
 
elite*gold: 1
Join Date: May 2008
Posts: 729
Received Thanks: 58
Hmm,wie lange macht er das denn ca. immer?

Halt wann ist das ganze abgeschlossen?

Lg rené
xXx__xXx is offline  
Old 03/19/2011, 22:27   #4

 
lanara's Avatar
 
elite*gold: 139
Join Date: Oct 2006
Posts: 12,058
Received Thanks: 24,256
Quote:
Originally Posted by Phantomracer View Post
Hmm,wie lange macht er das denn ca. immer?

Halt wann ist das ganze abgeschlossen?

Lg rené
Kannst du einstellen:

Code:
//********stack amount***********
var stack_AMOUNT = 100;  //around 35sec for 100 stacks
lanara is offline  
Old 03/19/2011, 22:35   #5
 
easy7going's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 19
Received Thanks: 8
Quote:
Originally Posted by lanara View Post
Das nenn ich mal einen soliden ersten Post hier im Forum. Kanns leider nicht testen, da ich nicht das benötigte Equip habe, aber schaut gut aus.
Danke, soweit ich weiß hast du mir gestern ein Dream für eine Hand voll fg vermacht.

Testen kannst du es trotzdem, nimm einfach n Dummy

Best regards
easy7going is offline  
Old 03/19/2011, 22:44   #6

 
lanara's Avatar
 
elite*gold: 139
Join Date: Oct 2006
Posts: 12,058
Received Thanks: 24,256
Quote:
Originally Posted by easy7going View Post
Danke, soweit ich weiß hast du mir gestern ein Dream für eine Hand voll fg vermacht.
Da musst du mich verwechseln, das letzte mal, dass ich etwas für FG getradet habe war vor etwa 4-5 Monaten.
lanara is offline  
Old 03/19/2011, 23:07   #7
 
easy7going's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 19
Received Thanks: 8
Hmm.. wenn du das sagst, aber vllt verklobbst du deine Items ja auch im Schlaf, vorallem die Dreams *lach*...

^_^
easy7going is offline  
Old 03/19/2011, 23:08   #8
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41364
Join Date: Jan 2010
Posts: 22,727
Received Thanks: 12,653
Wirklich ein schöner erster Beitrag, freut uns doch immer wieder, wenn mal jemand was eigenes beisteuert.

// Werbung Start
Übrigens darfst du eigene Entwicklungen auch gerne in der Programming Sektion veröffentlichen, dort gehen sie vermutlich weniger schnell unter.
// Werbung Ende

Ohne es getestet zu haben, nur mal ein paar Anmerkungen zu dem was ich so sehe:
  • ein paar Einrückungen sind nicht ganz sauber
  • ich verstehe die Wahl deiner Bezeichner teilweise nicht, irgendwie ohne System und teilweise schwer zu lesen
  • deinen "quadro check" würde ich schon allein aus Gründen der Schreibfaulheit in einer for-Schleife unterbringen
  • das Präfix für Dream lautet 0x5037
Mit dem Präfix kannst du dann auch direkt prüfen, ob überhaupt die benötigten Dream Helme vorhanden sind, so habe ich das jedenfalls in meinem Script für diesen Zweck gemacht.

Lg
Muddy
Muddy Waters is offline  
Old 03/19/2011, 23:16   #9
 
easy7going's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 19
Received Thanks: 8
Ah besten Dank.

Einrückungen: kann mir leider auch nicht helfen warum es teilweise so arg verschoben war/ist, hab es teilweise schon mühselig von Hand im Post überarbeitet

Bezeichner: was genau fällt dir schwer daran? Sorry manchmal sieht man es selbst nicht da alles so sonnenklar erscheint

Programming Sektion: werd ich machen

Item Prefix: super, btw. wo finde ich denn die Liste dafür bzw. wo kann ich das auslesen? Hab mich durch alle text files gekämpft aber vermutlich dann doch übersehen..

quadro check: ja da hast du recht, hab ich vor lauter copy paste aus den Augen verloren (edited)

Best regards
easy7going is offline  
Old 03/19/2011, 23:57   #10
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41364
Join Date: Jan 2010
Posts: 22,727
Received Thanks: 12,653
Es ist so, dass D2NT schon von Haus aus einen gewissen Standard, bei der Wahl der Bezeichner vorgibt.

Ich richte mich nach Möglichkeit immer nach diesem Standard. Auch wenn ich gerne mal das Präfix NT durch meine Initialen ersetze, um etwas als mein eigen zu brandmarken.

Ist natürlich auch eine Frage woher man in Sachen Programmiersprachen kommt.
Du machst auf mich zumindest leicht den Eindruck, als wärst du in irgendeiner Form in dem Bereich vorgeschädigt.
Wenn nicht, nochmal Hut ab, in dem Fall ist das schon wirklich eine Leistung.

Zum Thema; Beispiel für einen sehr schlecht lesbaren Bezeichner:
Code:
NT_ITEMonCURSOR_securityCHECK()
Die Verwendung von Teilbegriffen aus Upper Case Buchstaben in Bezeichnern, die nicht zu Konstanten gehören, ist unüblich.

Besser ist deshalb einfaches camel casing, so sähe der Name dann so aus:
Code:
NT_ItemOnCursorSecurityCheck()
Aber auch so ist der Bezeichner noch nicht optimal, da man ihn im Bezug auf den Kontext auch kürzer fassen könnte und da er ausserdem als Bezeichner einer Funktion den Charakter eines Verbs haben sollte.

Also in etwa:
Code:
NT_CheckItemOnCursor()
Das könnte man noch sehr viel weiter ausführen und wir könnten das im Detail diskutieren, aber sofern das gewünscht ist, machen wir das in der Programming Sektion, denn dort sind solche Dinge thematisch deutlich besser platziert als hier.

Achja, und das Präfix kannst du durch eine Ausgabe der entsprechenden Eigenschaft einer Item Unit mit relativ wenig Aufwand herausfinden.
Setzt eben voraus, dass man das entsprechende Item in irgendeiner Form zur Verfügung stehen hat.

Und zur Einrückung:
Du solltest immer nach dem gehen was dir die Vorschau anzeigt, nicht nach dem was du im Editierfenster siehst.
Und du solltest Code immer in deinem Editor bearbeiten und dann komplett kopieren.

Obwohl dort tatsächlich einige seltsame Leerzeichen drin waren, vielleicht lag es auch an deiner Nachträglichen Anpassung.


Lg
Muddy
Muddy Waters is offline  
Thanks
1 User
Old 03/20/2011, 00:06   #11
 
kal_el's Avatar
 
elite*gold: 0
Join Date: Jan 2009
Posts: 7,310
Received Thanks: 2,205
moved
kal_el is offline  
Thanks
1 User
Old 03/20/2011, 00:12   #12
 
easy7going's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 19
Received Thanks: 8
Besten Dank kal_el,
wärst du so gut und würdest den zweiten thread löschen? ^_^
Gelöscht wird nur, wenn der Inhalt eines Themas extrem aus dem Ruder gerät, ansonsten wird nur geschlossen.
Ich habe aber mal einen Verweis auf dieses Thema eingefügt. - Muddy


@ Muddy, ein weiteres Danke, werd Morgen noch mal drüber gehn.

I'm off.

Best regards
easy7going is offline  
Old 03/20/2011, 04:55   #13
 
elite*gold: 0
Join Date: Aug 2009
Posts: 350
Received Thanks: 36
Schöne Arbeit...sieht gelungen aus, ohne jetzt in Details zu gehen...
Progamer6661 is offline  
Old 03/20/2011, 22:45   #14
 
easy7going's Avatar
 
elite*gold: 0
Join Date: Feb 2011
Posts: 19
Received Thanks: 8
Abend zusammen,

in Run 871 hat mein Pala leider das Zeitliche gesegnet (ja, bis dato hat er noch immer seine Dreams getragen ).
Zu schade, wollte eigentlich die 1000 und damit die ca. 66,6 Stunden voll machen bevor ich ein kleines Update bringe ^^

R.I.P. TheVoid_Ger

Best regards
easy7going is offline  
Old 05/13/2011, 16:42   #15
 
elite*gold: 0
Join Date: Mar 2011
Posts: 21
Received Thanks: 0
hey,
ich hab mich an die Anleitung gehalten, aber mein leech-bot bleibt nur noch in der Stadt stehen, keine Ahnung warum.
Wo genau muss ich den "push-Befehl" einfügen? Ich habs an mehreren Stellen innerhalb der jeweiligen Char-Config des Dream-users probiert. Kein Erfolg.

Ideen?
UncleChicken is offline  
Reply

Tags
auradin, autostack


Similar Threads Similar Threads
Auto stig your main with your noob in stack!
08/27/2011 - CO2 Exploits, Hacks & Tools - 29 Replies
This little thingy will automatically stig your plvl character when he comes close enough to the stack where your noob is. You have to have both windows open on the same computer. I.E this will not auto stig some random plvler that you just teamed up with. 1. Open your conquer windows. 2. Login with your high lvl archer and your noob 3. Put Stigma on F1 4. Put Meditation on F2 5. Put Healing Rain on F7 6. Put Sit on F8
Auradin Stacking 1.13 /AutoIt\ Script
11/07/2010 - Diablo 2 Programming - 2 Replies
Hat das wer oder hat wer Lösungen für meine Probleme? Habe das schon das Script aber das funzt nich und bekomme keine Hilfe, also dachte ich guckmer ma im Programming Forum.^^ Bei mir kommt immer nen Error mit Line 36. Wenn mir jemand Lösungen gibt dann gebe ich natürlich FG dafür!!! Danke schon im vorraus!!!
[suche] d2nt level rush script 1-25 / follow script
06/23/2010 - Diablo 2 Programming - 5 Replies
moin erstmal sry falls es da doch schon was passendes zu gab - hab schonmal gesucht aber nur alte sachen gefunden oder eben antworten in richtung "geht so schnell dafür braucht man keinen bot" ^^ mein problem besteht darin dass ich für lvl 1 bis 20 immer x stunden brauche - trist geht ja noch halberwegs aber mit tombruns such ich mich immer dusselig ^^ - bzw cows sind noch schlimmer (dafür geht das cow-script für d2nt ausm bluebird zumindest halberwegs) die frage ist jetz die - giebt...
[D2NT] Aura Tele
06/09/2010 - Diablo 2 Programming - 0 Replies
Das Script ermöglicht euch während des teleportierens eine Aura aktiv zu haben. (zb med aura) Der Stehenbleib Hotkey muss auf shift sein. NTMove.ntj öffnen und das die funktion NTM_TeleportTo(x,y) mit dem hier ersetzen. function NTM_TeleportTo(x, y)
Auto-Stig leader in stack
08/07/2009 - Conquer Online 2 - 9 Replies
i found a auto-stigger that stigs the leader wen ur afk in stack but the file doesnt work anymore. does anyone have or know where to find it?



All times are GMT +1. The time now is 18:11.


Powered by vBulletin®
Copyright ©2000 - 2025, 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 ©2025 elitepvpers All Rights Reserved.