Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Cabal Online > Cabal Guides & Templates
You last visited: Today at 08:30

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

Advertisement



How to script a simple auto-bot [AutoIT]

Discussion on How to script a simple auto-bot [AutoIT] within the Cabal Guides & Templates forum part of the Cabal Online category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jun 2007
Posts: 112
Received Thanks: 236
I guess this will be my contribution to this forum.

NOTE: u can apply this to any game; i only give cabal as a practical example.

  • Go to and download AutoIt Full Installation
  • Go to and download SciTE4AutoIt3.exe
  • Install them ofc ...
  • The most important action u can take is to THINK. I know it's hard for some but try >.< . What do we wanna do ?
    - auto-login
    - auto-hunt
    - auto-pot
  • because doing all 3 in a single script will just make things complicated and the program to run slower we just gonna make 3 different scripts for each action. And because it could be a pain and most probably ruin everything to run myself all 3 programs the auto-login will just run as the main-brain that will coordinate all.
  • The auto-login requires:
    - screen shoot will the log-in menu
    - screen shoot with the server select menu
    - screen shot with the char menu
    - in game SS (ScreenShoot)

    IMPORTANT: The SS's will be made by pressing the PrintScreen Button on the keyboard. Entering paint, Edit - > Paste and save it as 24-Bit BMP. Another format will just lose from pixel color range and u will do ABSOLUTELY NOTHING since the pixels won't be the same. I'll just use a personally made program that help me to capture the screen and save it with just a button.

    PS: Here i'll post the JPG versions of the SS's since they are a lot smaller.





  • Now after some THINKING i realize that i don't want my program to start log in 1st. Because i will be in front of my PC when running the game and program so i can log it in myself for the 1st time. So i want the program to start when i'm actually in game. For this i need a particular color on an un-movable menu. First color that jumps in it's the GOLD from the Item Shop.
    So i go to Start -> All programs -> AutoIt v3 -> AutoIt Window Info ; i right click it and i choose Pin To Start Menu since I'll need it a lot. Now if u press Start on WinXp Desktop u will see it on the top list.
    I open it, i also open the ingame SS (i use AcdSee), i Press F to make the pic full screen and i see that the AutoIt Window Info stays on top and that is great since i need it. I do Option -> Magnify in AWI (AutoIt Window Info) and i also chose the Mouse Tab ... and voila i can chose EXACTLY the pixel i want to use.
    After i chose it i press Ctrl+Alt+F to freeze the AWI so i can copy the data collected.


  • Now i am actually ready too start my program. I right click the desktop -> New -> AutoIt v3 Script. I right click the file and press Edit. The SciTE will now open the script to be edited.

    NOTE: the ; marks a comment. It's just for the user, it's not being used by the program and it's not part of the code. It's just for u to understand it.

    Code:
    HotKeySet&#40;&#34;{F12}&#34;,&#34;startover&#34;&#41; &#59;i allocate to key F12 the function start over
    ;i do this because when i exit the game the auto-hunt might be too fast for me to stop 
    ; so i'll just press F12 and it will be stopped
    ; also u can add any key u want F1-12, NumPad0-9 ... and so on
    
    startover&#40;&#41; &#59; i call that same function to run so i just won't have to press F12 
    
    Func startover&#40;&#41;&#59;i declare it 
    
    Endfunc &#59;and i end it
    
    while 1&#59; it will just keep the program in stand by untill the function is called
    ; useless in our case since we called the function automatically but it's good for u to know it
    	sleep&#40;1000&#41;
    WEnd
    This is the structure of my program. Now i'll just write the function startover. Which is my main and only function.

  • U have to understand that you'll most probably won't achieve perfection from the 1st try. You'll have to work of your programs to eliminate the flaws. What i show u now it's the result of about 3 tries. Or about what i remember since my Hard-Disc broke :|
    Let's get on the function ...
    Code:
    Func startover&#40;&#41;
    while 1   &#59;because i want it to run over and over again
    ProcessClose&#40;&#34;hunt.exe&#34;&#41;   &#59;that's the auto-hunt i'll make later
    ProcessClose&#40;&#34;pot.exe&#34;&#41;    &#59;and the auto-pot i'll make later
    ;ProcessClose it basically just does what it says it closed a process
    ;what i do this ? because i don't want my auto-hunt and auto-pot to run more that once
    ;so each time the function initiate it will kill it?s *Sub-Functions*
    
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    while 1&#59;we start a loop that wait for u to enter the game 
    	PixelSearch&#40;964,743,964,743,0xF7E52B,15&#41; &#59; we look for the GOLD color we&#59;collected . The last number ?15? it?s the pixel color range it can search
    ;so basically it doesn?t have to be the EXACT pixel
    	If NOT @error Then&#59; PixelSearch color returns @error = 1 if the color ain?t found
    ;and 0 if the color is found
    ;NOT @error means @error = 0 
    ;so if it founds that GOLD pixel it continues
    	Run&#40;&#34;pot.exe&#34;&#41;&#59; run it
    	Run&#40;&#34;hunt.exe&#34;&#41;  &#59; run it
    	Mouseclick&#40;&#34;left&#34;,999,22,1&#41;&#59; this will close the mini-map in 1024x768
    	ExitLoop &#59; it exists the current while loop
    EndIf &#59; we close the IF
    sleep&#40;1000&#41; &#59; it waits 1000 ms &#40;1 second&#41; before it continnues
    Wend &#59; we close the while loop
    
    ;in less words this while loop will search for pixel over and over and over again
    ;until the pixel it?s found
    ;then it exit loop and it continues 
    
    EndFunc
    Ok so until now our program can see that we logged in and he starts the auto-hunt and auto-pot. The next step is to make it reconise a disconnect. And we search for particular elements.






    So i continue my function

    Code:
    while 1
    ;the best way is to use the same recognition system as before only the opposite way
    ;we don't want the GOLD pixel to be there
    	PixelSearch&#40;964,743,964,743,0xF7E52B,15&#41; &#59;same pixel search as before
    	&#036;n = @error
    while &#036;n &#59;while the pixel is not found
    Select 
        Case Hex&#40;PixelGetColor&#40;428,347&#41;,6&#41; = &#34;FEFEFE&#34; and Hex&#40;PixelGetColor&#40;581,444&#41;,6&#41; = &#34;EEEEEE&#34; 
    ; the 2 pixels in the main menu 
      Sleep&#40;200&#41; 
      ProcessClose&#40;&#34;hunt.exe&#34;&#41; &#59; we close both the Sub-Functions
      ProcessClose&#40;&#34;pot.exe&#34;&#41; &#59; we don't want keys to be pressed 
    ;while it writes the password
      Sleep&#40;6000&#41; 
      Send&#40;&#34;{Enter}&#34;&#41;&#59;just to be sure we try a log in before we right&#59;the password. This will clear the pass field and leave it blank
      Sleep&#40;2000&#41;
      MouseClick&#40;&#34;left&#34;,528,381,1,0&#41; &#59; left click in the pass field
      Sleep&#40;200&#41;
      Send&#40;&#34;PutYourPasswordHere&#34;&#41; &#59;it will write the pass
      Send&#40;&#34;{Enter}&#34;&#41;&#59;log in
      Sleep&#40;800&#41; 
      MouseMove&#40;950,650&#41; &#59;move the mouse to a non-related point
    ; u can notice some useless things that i add to the script just to be sure the program will never fail
    ;next server list 
    	Case Hex&#40;PixelGetColor&#40;457,572&#41;,6&#41; = &#34;EEEEEE&#34; 
             Sleep&#40;1000&#41;	
      Send&#40;&#34;{Right}&#34;&#41;&#59;it collapse the server list
      Send&#40;&#34;{Down 1}&#34;&#41;&#59; the number will be sub-server u want 1-20
      Sleep&#40;200&#41;
      EndIf
    ;next is char list
    Case Hex&#40;PixelGetColor&#40;755,575&#41;,6&#41; = &#34;55504A&#34;&#59; adaugi un Send&#40;&#34;{Down}&#34;&#41; 
    ;before the next Send&#40;&#34;{Enter}&#34;&#41; u have to add Send&#40;&#34;{Down x}&#34;&#41; where 
    ;x is 1 for the 2nd char, 2 for the 3rd char and so on
    ;u don't add anything if the char u wanna play with it's the 1st char
      Send&#40;&#34;{Enter}&#34;&#41;&#59;it selects the char
      ExitLoop 2&#59; it exits 2 loops&#58; the current one and the one that 
    ;started the search for disconnect
    EndSelect
    
    PixelSearch&#40;964,743,964,743,0xF7E52B,15&#41;
    	&#036;n = @error
    	Sleep&#40;1000&#41;
    ;this keeps the while loop running till success
    wend
    wend
    There u go ... u have a working auto-login in no time.


<hr>Append on Jul 26 2007, 16:58<hr> PS: plz don't post i have 2 more to write :P

<hr>Append on Jul 26 2007, 17:06<hr> [AUTO-POT]


We're just gonna take the in game SS and work with it.




Code:
while 1 
  
&#036;coord = PixelSearch&#40;186,26,187,26,0xA00C00,1&#41;&#59;looking for the HP pixel in a color&#59;range of 1 

If not @error Then&#59;if the color is not found
Send &#40;&#34;{F11}&#34;&#41; &#59;it presses F11
;in game Options -> Game -> unMark &#34;Use numeric Keys&#34;
;just trust me with this one

EndIf  	
  
Sleep&#40;100&#41; &#59; if we don't put this sleep the auto-pot will keep the CPU used 100%
WEnd
   

while 1&#59;just keep the script alive
	sleep&#40;1000&#41;
	wend
Dizzydbd is offline  
Thanks
40 Users
Old 07/26/2007, 17:21   #2
 
elite*gold: 0
Join Date: Jul 2007
Posts: 3
Received Thanks: 0
good documant thanks
wwwthexfilescom is offline  
Old 07/26/2007, 17:32   #3
 
elite*gold: 0
Join Date: Jun 2007
Posts: 112
Received Thanks: 236
[AUTO-HUNT]


Now this is more difficult
You need a bmp SS with every mob color u wanna hunt. I'll just make it for Green. Make the SS with the mob selected cuz u'll need that too.



  • First step is to take that pixel color
  • And the second one to take the HP LIMIT of the mob ... like this
  • U also have to take the 4 coordinates of the square for mob search
    I choose:
    &#036;xTop = 30
    &#036;yTop = 73
    &#036;xBot = 1002
    &#036;yBot = 692
    This should cover all screen that can be used for this.
    PS: bot from bottom
  • I'll show u the most simple way. U can make it more complex by adding more intelligent searching ways.

    Code:
    &#036;xTop = 30; i declare them 
    &#036;yTop = 73
    &#036;xBot = 1002
    &#036;yBot = 692
    &#036;mobGreen = &#34;0xC0BE40&#34;; i also declare the mob color
    
    Sleep&#40;6000&#41;
    while 1
    &#036;coord = PixelSearch&#40;&#036;xTop,&#036;yTop,&#036;xBot,&#036;yBot,&#036;mobGreen,5&#41;;i search for the green mobs
        &#036;n = @error
    	If NOT @error Then;if the mob is found
     while &#036;n = 0;while it is still in the screen
     &#036;x = Random&#40;&#036;coord&#91;0&#93;, &#036;coord&#91;0&#93;+40, 1&#41;;we randomize coordinates so we won't miss the mob
    ;since mobs have different shape and sizes
     &#036;y = Random&#40;&#036;coord&#91;1&#93;, &#036;coord&#91;1&#93;+40, 1&#41;
     MouseClick&#40;&#34;right&#34;, &#036;x, &#036;y, 2, 0&#41;; i click at the randomized coordinates
     &#036;mm = PixelGetColor &#40; 378 , 12 &#41;; i get the pixel color of that mob HP LIMIT
     &#036;mob = Hex&#40;&#036;mm, 6&#41;;since the pixel i got is hex and PixelGetcolor function returns a decimal value i convert it 
     If &#036;mob = &#34;7B0000&#34; Then; i compare the converted value i got from PixelGetColor in that point with the have i collected using AWI in the same point
     	ExitLoop; if it's a match &#40;that means that the mob was selected&#41;
    ;it will exit the loop and continue
     EndIf
     &#036;coord = PixelSearch&#40;&#036;xTop,&#036;yTop,&#036;xBot,&#036;yBot,&#036;mobGreen,5&#41;;we repeat the same pixel search
    ; the ideea is that the program will try to click the mob untill he is selected
        &#036;n = @error
     wend 
    
    ;in this moment we have the mob selected 
     If &#036;mob = &#34;7B0000&#34; Then  &#59; but we check it anyway
     	while &#036;mob = &#34;7B0000&#34; &#59; so as long as the mob is selected
      
      	Send&#40;&#34;{F4}&#34;&#41;; we just send the skills from F4 to F1
      	Send&#40;&#34;{F3}&#34;&#41;; chaotic i know but since we use speed hack
                Send&#40;&#34;{F2}&#34;&#41;;adding waiting times will just be a waste of time
          Send&#40;&#34;{F1}&#34;&#41;
    
       &#036;mm = PixelGetColor &#40; 378 , 12 &#41;;we once again look for the mob's HP so we can complete the while loop
       &#036;mob = Hex&#40;&#036;mm, 6&#41;;this means that the keys will be pressed untill the mob is dead
      	wend
      Send&#40;&#34;{Space}&#34;&#41;; after the mob is dead we collect the items 
      Sleep&#40;200&#41;
      Send&#40;&#34;{Space}&#34;&#41;
      Sleep&#40;200&#41;
      Send&#40;&#34;{Space}&#34;&#41;
      Sleep&#40;200&#41;
     	EndIf
    
    ;now remember the &#34;IF NOT @error Then&#34; from the start?
    ;what if there is no mob in the screen?
    ;what then?
    
    Else;if no mob is found
    Send&#40;&#34;{Right 7}&#34;&#41; &#59;rotate the camera to look in other directions 
    Endif
    Wend
  • And that's it we have a fully functional set of auto-bots.
Dizzydbd is offline  
Thanks
15 Users
Old 07/26/2007, 18:41   #4
 
elite*gold: 0
Join Date: Jul 2007
Posts: 12
Received Thanks: 2
+Karma
leet-pvp is offline  
Old 07/26/2007, 19:08   #5
 
elite*gold: 0
Join Date: Dec 2005
Posts: 98
Received Thanks: 21
Wow, 1 guy makes an AutoIT bot and everyone starts making "their contribution".

There are like 3 bots already, all made in autoit =.=
bafao is offline  
Old 07/26/2007, 19:40   #6
 
elite*gold: 0
Join Date: Jul 2007
Posts: 12
Received Thanks: 2
and what do you wanna tell us with that?

if you compare this to all the others, this is so much better.
leet-pvp is offline  
Thanks
1 User
Old 07/26/2007, 20:59   #7
 
elite*gold: 0
Join Date: Jun 2007
Posts: 112
Received Thanks: 236
@bafao

U don't get it. I didn't made an AutoIT bot ... i explained the mechanics to do one. I left some blanks so ppl actually think not just leech. I think this should be more in a general gaming section ... but w/e.

ADDITIONAL INFO

Code:
AdlibEnable &#40; &#34;function&#34; &#91;, time&#93; &#41;
AdlibDisable &#40; &#41;
Ex: AdlibEnable("unstuck",30000)

Every 30 000 ms (30 seconds) the function "unstuck()" is called. U can use this in the auto-hunt function to take some action if mob isn't killed in 30 sec ... or w/e time u wanna set. Also don't forget to call AdlibDisable ( ) after the mob died.

Also u might of notice that the other programs posted are delay based. U should avoid that because u can't expect the same speed reaction every time (your game might lag) and also u should do while loops for every action that might change unexpected: like writing the password and trying to log in until the next screens is detected, trying to click on the founded mob until he is selected and so on.
U should also avoid PixelGet as much as u can. Use PixelSearch since u can give him a shade-variation and the pixel might not be the exact one all the time and also in some games PixelGet and PixelSearch in 1 singur pixel will always return BLACK. With PixelSearch u can do a wider area search and everything will work.


From a resolution to another

U don't wanna read the pixels and the positions again. First because it takes time and second because it's stupid.
The solution is simple. Let's say u wanna change
&#036;x = 500 and &#036;y = 350 from 1024x768 to 1280x1024.
- u calculate how much % is &#036;x from 1024
500 * 100 / 1024 = 48.82 %
&#036;xnew = 1280 * 48.82 /100 = 624.89 and that's not a valid coordinate. That's why the calculation formula will be &#036;xnew = Round(1280*48.82/100,0)
- some with &#036;y
350 * 100 / 768 = 45.57%
&#036;ynew = Round(1024*45.57/100,0) = 467


From full screen to windowmode

Just use this function
Code:
Opt&#40;&#34;PixelCoordMode&#34;, 1&#41;    &#59;1=absolute, 0=relative, 2=client
Quote:
Sets the way coords are used in the pixel functions, either absolute coords or coords relative to the current active window:
0 = relative coords to the active window
1 = absolute screen coordinates (default)
2 = relative coords to the client area of the active window
Dizzydbd is offline  
Thanks
2 Users
Old 07/27/2007, 14:03   #8
 
elite*gold: 0
Join Date: Jul 2007
Posts: 20
Received Thanks: 2
&#036;xTop = 30; i declare them
&#036;yTop = 73
&#036;xBot = 1002
&#036;yBot = 692
&#036;mobGreen = "0xC0BE40"; i also declare the mob color HERE

Sleep(6000)
while 1
&#036;coord = PixelSearch(&#036;xTop,&#036;yTop,&#036;xBot,&#036 ;yBot,&#036;mobGreen,5);i search for the green mobs
&#036;n = @error
If NOT @error Then;if the mob is found
while &#036;n = 0;while it is still in the screen
&#036;x = Random(&#036;coord[0], &#036;coord[0]+40, 1);we randomize coordinates so we won't miss the mob
;since mobs have different shape and sizes
&#036;y = Random(&#036;coord[1], &#036;coord[1]+40, 1)
MouseClick("right", &#036;x, &#036;y, 2, 0); i click at the randomized coordinates
&#036;mm = PixelGetColor ( 378 , 12 ); i get the pixel color of that mob HP LIMIT
&#036;mob = Hex(&#036;mm, 6);since the pixel i got is hex and PixelGetcolor function returns a decimal value i convert it
If &#036;mob = "7B0000" Then; HERE i compare the converted value i got from PixelGetColor in that point with the have i collected using AWI in the same point
ExitLoop; if it's a match (that means that the mob was selected)
;it will exit the loop and continue
EndIf
&#036;coord = PixelSearch(&#036;xTop,&#036;yTop,&#036;xBot,&#036 ;yBot,&#036;mobGreen,5);we repeat the same pixel search
; the ideea is that the program will try to click the mob untill he is selected
&#036;n = @error
wend

;in this moment we have the mob selected
If &#036;mob = "7B0000" Then ; HERE but we check it anyway
while &#036;mob = "7B0000" ; HERE so as long as the mob is selected

Send("{F4}"); we just send the skills from F4 to F1
Send("{F3}"); chaotic i know but since we use speed hack
Send("{F2}");adding waiting times will just be a waste of time
Send("{F1}")

&#036;mm = PixelGetColor ( 378 , 12 );we once again look for the mob's HP so we can complete the while loop
&#036;mob = Hex(&#036;mm, 6);this means that the keys will be pressed untill the mob is dead
wend
Send("{Space}"); after the mob is dead we collect the items
Sleep(200)
Send("{Space}")
Sleep(200)
Send("{Space}")
Sleep(200)
EndIf

;now remember the "IF NOT @error Then" from the start?
;what if there is no mob in the screen?
;what then?

Else;if no mob is found
Send("{Right 7}") ;rotate the camera to look in other directions
Endif
Wend







So where i posted HERE there is to change the value with getpixel?
Or could i just copy this and it would work?
300 is offline  
Thanks
1 User
Old 07/27/2007, 15:12   #9
 
elite*gold: 0
Join Date: Jun 2007
Posts: 112
Received Thanks: 236
like i said I DIDN'T MADE A BOT i explained the process. But if u put them all together it should work. Why don't u wanna just think for a moment? :-w
Dizzydbd is offline  
Thanks
1 User
Old 07/27/2007, 22:31   #10
 
elite*gold: 0
Join Date: Jul 2007
Posts: 20
Received Thanks: 2
ok you helped me alot !!!
Doing my own bot atm
Working pretty well!
But i wanted a feature but there is a logical problem:
I Instantly relog if i see a player.
This is working pretty well at warchannel with the red and orange names. But not in the other channels!
And now the problem. In the other channels the Player name is white! (Like the own character name)
And its not possible to show the other players name without showing the own
So i would instantly relog if i join a channel.



Can you help me?
300 is offline  
Old 07/28/2007, 06:17   #11
 
elite*gold: 0
Join Date: Jul 2007
Posts: 129
Received Thanks: 34
try making like 2 or 4 seperate pixel search areas that exclude your own character name ^^
NetWolf is offline  
Old 07/28/2007, 07:51   #12
 
elite*gold: 0
Join Date: Jun 2007
Posts: 112
Received Thanks: 236
After the pixel search for the white names u can compare the coordinates u got with the coordinates of your name.

EX: IF &#036;xtop < &#036;x AND &#036;x < &#036;xbot AND &#036;ytop < &#036;y AND &#036;y < &#036;ybot Then
MsgBox(0,"Test","The pixel in is range")
Else
MsgBox(0,"Test","Out Of range")
EndIf

WHERE &#036;xtop &&#036;ytop are your char name top coordinates, &#036;xbot & &#036;ybot are your char name bottom coordiantes and &#036;x & &#036;y are the coordinates from white PixelSearch.
Dizzydbd is offline  
Old 07/28/2007, 15:48   #13
 
elite*gold: 0
Join Date: Jul 2007
Posts: 20
Received Thanks: 2
yeah there is the next problem:
If my character walking near a wall or something the camera changes and the names position changes dramatically!

So the Out Of Range would be half screen.



EDIT: Is there a command that instantly stops all actions?
300 is offline  
Old 07/28/2007, 16:05   #14
 
elite*gold: 0
Join Date: Jun 2007
Posts: 112
Received Thanks: 236
make a function

Func stop()
While 1
sleep(1000)
wend
endfunc

and call it
Dizzydbd is offline  
Old 07/29/2007, 17:08   #15
 
elite*gold: 0
Join Date: May 2007
Posts: 5
Received Thanks: 0
ok it works for me
but whats the color for gray?
and Yellow and Orange? pls tell me








+Karma

<hr>Append on Jul 29 2007, 17:23<hr> ok it works for me
but whats the color for gray?
and Yellow and Orange? pls tell me

or that the bot klick all mobs (gray,yellow,orage).







+Karma
jumpy11 is offline  
Reply


Similar Threads Similar Threads
Request Simple Auto Join War Script
06/24/2010 - 12Sky2 - 0 Replies
Hi im really not that well at coding in auto it , i was wondering if a more experienced player can make me a simple auto war join script , a continious one , thanks if this is possible , hope im not asking to much thanks guys
[Autologin] Simple autoit script
06/29/2009 - SRO Hacks, Bots, Cheats & Exploits - 44 Replies
Hey,the captcha system is out . So the ecsro minimised autologin script works on iSro too,now :) Source: Global $Paused $hWnd = WinGetHandle ("SRO_Client") HotKeySet ("{F10}","Start") HotKeySet ("{F9}","Pause")
NEED help making simple auto attack script
06/28/2008 - Lineage 2 - 0 Replies
I have walker 2.03 and i need help making a SIMPLE auto attack script. All i wanna do is target mod, attack, pick up items, target closest mod and repeat. I can add heals and all that stuff later just need help starting a basic combat script.
[Request] Simple AutoIt Script
06/26/2008 - Dekaron - 5 Replies
Hello, I'm looking for an autoit script that basically presses 1 2 3 4 5, one after the other every second continuously. Thanks in advance, EW.
need help making a simple autoit script
05/21/2006 - Silkroad Online - 2 Replies
hey guys, i wanna make a simple autoit script to press alt and tab every 2 mins...can anyone help me make a code for it? thnkz alot...my bot is wack, keep getting stuck in town and auto zerk dont work...so i wanna make a script tat does does 2 things to keep bot running and use zerk..



All times are GMT +1. The time now is 08:30.


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