Register for your free account! | Forgot your password?

You last visited: Today at 20:20

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

Advertisement



[Rls] [C++] PetPickup

Discussion on [Rls] [C++] PetPickup within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.

Reply
 
Old 05/13/2016, 13:43   #16
 
elite*gold: 47
Join Date: Feb 2012
Posts: 2,282
Received Thanks: 2,574
Quote:
Originally Posted by Remix v110 View Post
3. ist mir das aufgefallen (machen mehrere):

Code:
char szHint[32 + 1];
wieso??
könnte nun sagen ist ne unnötige rechenoperation aber da trifft man hier eh auf taube ohren
Grundsätzlich ein guter Beitrag, sieht man leider relativ selten von dir, daher eine noch größere Überraschung.

Habe nur bei dem zitierten etwas zu sagen:
Die Rechenoperationen wird von jedem gängigen Compiler direkt durchgeführt, damit entsteht zur Runtime kein Nachteil (wobei der so oder so verschwindend gering wäre).
Das man das oft so schreibt liegt einfach am zusätzlichen Null-Terminator. Es soll direkt ersichtlich sein, dass der gespeicherte "String" eine Länge von 32 Zeichen haben darf, aber ein Zeichen muss noch für den Null-Terminator verwendet werden, daher + 1. Ist übrigens eine relativ gängige Praxis und keine Eigenheit vom Metin2-Source oder Micha.

MfG
Yiv is offline  
Thanks
2 Users
Old 05/13/2016, 14:12   #17
 
elite*gold: 0
Join Date: May 2016
Posts: 2
Received Thanks: 0
Quote:
Originally Posted by Yiv View Post
Grundsätzlich ein guter Beitrag, sieht man leider relativ selten von dir, daher eine noch größere Überraschung.

Habe nur bei dem zitierten etwas zu sagen:
Die Rechenoperationen wird von jedem gängigen Compiler direkt durchgeführt, damit entsteht zur Runtime kein Nachteil (wobei der so oder so verschwindend gering wäre).
Das man das oft so schreibt liegt einfach am zusätzlichen Null-Terminator. Es soll direkt ersichtlich sein, dass der gespeicherte "String" eine Länge von 32 Zeichen haben darf, aber ein Zeichen muss noch für den Null-Terminator verwendet werden, daher + 1. Ist übrigens eine relativ gängige Praxis und keine Eigenheit vom Metin2-Source oder Micha.

MfG
brudi meine posts sind immer erste sahne

ist mir klar dass es wenn überhaupt nur in der compile time ne rolle spielt
deswegen wollte ich es auch nicht wirklich als argument nehmen
ist wohl ansichtssache ob man es macht oder nicht
wäre zu faul das + 1 zu schreiben
zumal man mittlerweile auch mal container klassen (std::string) nutzen kann da wir auch schon 2016 haben und das c++ ist

ist mir so wie so unklar wieso webzen da uralte c sachen benutzt wenn die standard libs alles was man braucht bereitstellen
man kann dann ruhig nen std::string nutzen und wenn man das als c string bzw char pointer braucht gibts ja noch die std::string::c_str methode

der einzige nachteil an der container klasse ist dass die standardmäßig eine mindestanzahl an ram belegt auch wenn der eigentliche "string" kleiner ist
aber das ist schon verschwindet gering


mit dem 1. punkt meinte ich dass zB die eine klasse grundsätzlich camel case nutzt deswegen ist die andere notation etwas unschön
Remix v111 is offline  
Old 05/13/2016, 15:24   #18
 
elite*gold: 47
Join Date: Feb 2012
Posts: 2,282
Received Thanks: 2,574
Quote:
Originally Posted by Remix v111 View Post
brudi meine posts sind immer erste sahne

ist mir klar dass es wenn überhaupt nur in der compile time ne rolle spielt
deswegen wollte ich es auch nicht wirklich als argument nehmen
ist wohl ansichtssache ob man es macht oder nicht
wäre zu faul das + 1 zu schreiben
zumal man mittlerweile auch mal container klassen (std::string) nutzen kann da wir auch schon 2016 haben und das c++ ist

ist mir so wie so unklar wieso webzen da uralte c sachen benutzt wenn die standard libs alles was man braucht bereitstellen
man kann dann ruhig nen std::string nutzen und wenn man das als c string bzw char pointer braucht gibts ja noch die std::string::c_str methode

der einzige nachteil an der container klasse ist dass die standardmäßig eine mindestanzahl an ram belegt auch wenn der eigentliche "string" kleiner ist
aber das ist schon verschwindet gering


mit dem 1. punkt meinte ich dass zB die eine klasse grundsätzlich camel case nutzt deswegen ist die andere notation etwas unschön
Es ist richtig, dass man std::string nutzen sollte, char-Arrays sind aus C-Zeiten, ja.
Wollte dir ja nur kurz sagen, warum da 32+1 statt 33 steht

MfG
Yiv is offline  
Old 05/13/2016, 15:41   #19
 
elite*gold: 20
Join Date: Jun 2011
Posts: 2,897
Received Thanks: 3,328
Euch is aber klar das ich die ItemPickUpByPet function nur 1:1 ausm source kopiert hab und ne abfrage entfernt hab oder?
Aber war mir klar, dass von Remix mal wieder ein absolut unqualifizierter Beitrag kommt.

Naja lesen war noch nie seine Stärke. Aber hey immerhin isses witzig wie er über Ymir Code lästert (;


Und zum Thema bugs:

das hier ist nur ne basic function, damit er items ohne Owner oder mit dem Spieler als Owner aufhebt.
Was genau er aufhebt, das dürft ihr selbst einbauen, da das eh jeder anders will.

Und klar hebt er items auf, die der Spieler dropt. Sind ja schlieslich welche ohne Owner?
xCPx is offline  
Old 05/13/2016, 16:58   #20
 
elite*gold: 0
Join Date: May 2016
Posts: 1
Received Thanks: 0
Quote:
Originally Posted by xCPx View Post
Euch is aber klar das ich die ItemPickUpByPet function nur 1:1 ausm source kopiert hab und ne abfrage entfernt hab oder?
Aber war mir klar, dass von Remix mal wieder ein absolut unqualifizierter Beitrag kommt.

Naja lesen war noch nie seine Stärke. Aber hey immerhin isses witzig wie er über Ymir Code lästert (;


Und zum Thema bugs:

das hier ist nur ne basic function, damit er items ohne Owner oder mit dem Spieler als Owner aufhebt.
Was genau er aufhebt, das dürft ihr selbst einbauen, da das eh jeder anders will.

Und klar hebt er items auf, die der Spieler dropt. Sind ja schlieslich welche ohne Owner?
lesen ist nicht meine stärke?

Quote:
vorab: ich beziehe mich nur auf den coding stil, da ich mich mit der game kein bisschen auskenne (nie mit befasst da der source nach meiner zeit kam)
nirgends steht dass es nur kopiert ist

mein fehler dass ich es nicht gerafft habe
streng dein gehirn an dann erkennst selbst du dass es kein lästern war
Remix v112 is offline  
Old 05/21/2016, 06:27   #21
 
elite*gold: 2
Join Date: Jan 2008
Posts: 531
Received Thanks: 234
Echt Klasse von dir xCPx danke dafür
°~Dennis~° is offline  
Old 05/21/2016, 17:22   #22
 
elite*gold: 0
Join Date: Feb 2016
Posts: 3
Received Thanks: 0
Source: turkmmo
Sheila© is offline  
Old 05/24/2016, 22:23   #23
 
elite*gold: 20
Join Date: Jun 2011
Posts: 2,897
Received Thanks: 3,328
Quote:
Originally Posted by Sheila© View Post
Source: turkmmo
maybe they have stolen it from me but i definitly wrote it for fun for a friend of me.

Quote:
[08.05.2016 19:06:10] Micha: So basically you want what?
[08.05.2016 19:06:32] ImBacK...♥~: pet can pickup owner item
[08.05.2016 19:06:44] ImBacK...♥~: when pet move near item
[08.05.2016 19:07:06] ImBacK...♥~: can pickup it but only item for his owner or item withoutname
[08.05.2016 19:07:18] Micha: basically possible
[08.05.2016 19:07:42] ImBacK...♥~: how
[08.05.2016 19:08:11] Micha: Scan for a predefined radius and pickup items
[08.05.2016 19:08:44] ImBacK...♥~: i dont understand
[08.05.2016 19:13:26] ImBacK...♥~: can explain ?
[08.05.2016 19:17:39] ImBacK...♥~: ؟
[08.05.2016 19:19:09] Micha: Actually i am searching for the function for this
[08.05.2016 19:20:29] ImBacK...♥~: i think
[08.05.2016 19:20:37] ImBacK...♥~: its in chat_item
[08.05.2016 19:20:42] ImBacK...♥~: in function
[08.05.2016 19:20:54] ImBacK...♥~: pickup
[08.05.2016 19:21:13] Micha: The pickup itself isnt my Problem
[08.05.2016 19:21:21] Micha: the getting the items in range
[08.05.2016 19:21:41] ImBacK...♥~: aha
[08.05.2016 19:21:57] ImBacK...♥~: i think range like pet move with owenr
[08.05.2016 19:22:05] ImBacK...♥~: or pet attack monster
[08.05.2016 19:22:07] Micha: nono you dont get my idea
[08.05.2016 19:22:11] ImBacK...♥~: there range also
[08.05.2016 19:22:26] Micha: i want to get the items around laying on the ground
[08.05.2016 19:22:34] Micha: so basically pet moves towards them, picks them up
[08.05.2016 19:22:36] Micha: and Comes back
[08.05.2016 19:23:22] ImBacK...♥~: ahaaa
[08.05.2016 19:23:39] ImBacK...♥~: its problem really
[08.05.2016 19:23:59] ImBacK...♥~: maybe make pet can take item in range x,y
[08.05.2016 19:23:59] Micha: actually i did this a few months ago
[08.05.2016 19:24:03] Micha: and searching them
[08.05.2016 19:24:12] ImBacK...♥~: dont have go to item
[08.05.2016 19:24:18] ImBacK...♥~: hhhh so can make it
[08.05.2016 19:25:10] Micha: The Thing for complete pickup i allready got
[08.05.2016 19:25:37] ImBacK...♥~: nice
[08.05.2016 19:25:45] ImBacK...♥~: ao proplem now in range
[08.05.2016 19:38:52] ImBacK...♥~: are found it ?
[08.05.2016 19:45:51] Micha: basically yes
[08.05.2016 19:45:56] Micha: actually writing it
[08.05.2016 19:46:03] Micha: you want changeable distance?
[08.05.2016 19:46:06] ImBacK...♥~: gooood
[08.05.2016 19:46:22] ImBacK...♥~: if you can make it yes
[08.05.2016 19:48:03] ImBacK...♥~: i make the quest flag
[08.05.2016 19:48:12] ImBacK...♥~: for pet attack and no
[08.05.2016 19:48:30] ImBacK...♥~: i will show for u what make
[08.05.2016 19:48:40] ImBacK...♥~: after you finish
[08.05.2016 19:48:57] Micha: i basically just add it to all pets now
[08.05.2016 19:49:01] Micha: you can Change if you want
[08.05.2016 19:49:07] ImBacK...♥~: ok np
[08.05.2016 19:52:49] Micha: if you want you can have the Basic functions but with walk towards it i wont create is too much work atm
[08.05.2016 19:53:00] Micha: but also with pickup radius
[08.05.2016 20:05:24] ImBacK...♥~: i think walk to item not nice
[08.05.2016 20:05:32] ImBacK...♥~: i think add the range
[08.05.2016 20:05:41] ImBacK...♥~: sobin this range
[08.05.2016 20:05:57] ImBacK...♥~: pet can pickup iten
[08.05.2016 20:05:59] ImBacK...♥~: item
[08.05.2016 20:06:14] ImBacK...♥~: but pet go to item is a wonderful idea
[08.05.2016 20:06:20] ImBacK...♥~: inthink its hard
[08.05.2016 20:06:34] ImBacK...♥~: can u come in tw for few min ?
[08.05.2016 20:07:09] *** ***
[08.05.2016 20:07:13] Micha: There is the tut for you
[08.05.2016 20:07:21] Micha: for without walk towards the items
[08.05.2016 20:07:44] ImBacK...♥~: in range ?
[08.05.2016 20:08:14] Micha: yes
[08.05.2016 20:08:18] Micha: i range of the pet
[08.05.2016 20:08:24] Micha: you can edit the range in the script
[08.05.2016 20:08:31] ImBacK...♥~: aha okk test now
[08.05.2016 20:09:53] Micha: you first have to accept the file maybe?
[08.05.2016 20:10:11] ImBacK...♥~: open skype in pc now 😂😂😂
[08.05.2016 20:14:34] ImBacK...♥~: accept now ^^
[08.05.2016 20:34:12] ImBacK...♥~:
[08.05.2016 20:34:14] ImBacK...♥~: right
[08.05.2016 20:34:15] ImBacK...♥~: ?
[08.05.2016 20:34:39] Micha: Should, yes
[08.05.2016 20:35:51] ImBacK...♥~: can come tw ?
[08.05.2016 20:35:56] ImBacK...♥~: I want show u some thing
[08.05.2016 20:37:15] ImBacK...♥~: ؟
[08.05.2016 20:51:09] ImBacK...♥~: micha
[08.05.2016 20:51:11] ImBacK...♥~:
[08.05.2016 20:51:18] ImBacK...♥~: i make to chose
[08.05.2016 20:51:22] ImBacK...♥~: if pet level 40
[08.05.2016 20:51:31] ImBacK...♥~: can pickup item
[08.05.2016 20:52:45] ImBacK...♥~: and level 100
[08.05.2016 20:52:52] ImBacK...♥~: pet can attack
[08.05.2016 20:53:10] ImBacK...♥~: i make quest flag for pet attack
[08.05.2016 20:53:18] ImBacK...♥~: but pick up no
[08.05.2016 20:57:18] ImBacK...♥~: must make
[08.05.2016 20:57:30] ImBacK...♥~: enable and disable pickup item
[08.05.2016 20:57:45] ImBacK...♥~: because now pet pick up any thing
[08.05.2016 20:57:53] ImBacK...♥~: and invtory will be full
[08.05.2016 20:58:50] Micha: LPITEM item = (LPITEM)pEnt;
[08.05.2016 20:58:53] Micha: there you got the item
[08.05.2016 20:59:01] Micha: where you could get the itemid
[08.05.2016 21:00:00] ImBacK...♥~: i knnow
[08.05.2016 21:00:06] ImBacK...♥~: but if make like my phote
[08.05.2016 21:00:15] ImBacK...♥~: will be nice enable and disable
[08.05.2016 21:00:26] Micha: you could use questflags ^^
[08.05.2016 21:00:36] Micha: for example:

pet_pickup_19
[08.05.2016 21:00:40] Micha: enables item 19
[08.05.2016 21:00:41] Micha: and so on
[08.05.2016 21:00:52] ImBacK...♥~: no for all item
[08.05.2016 21:01:03] ImBacK...♥~: not only one iitem
[08.05.2016 21:01:11] Micha: yes you can
[08.05.2016 21:01:31] Micha: pet_pickup_22

enables picking up 22
[08.05.2016 21:01:34] Micha: or disables it
[08.05.2016 21:01:38] Micha: like you want
[08.05.2016 21:05:31] ImBacK...♥~: show
[08.05.2016 21:05:35] ImBacK...♥~: when pet attack
[08.05.2016 21:05:37] ImBacK...♥~: i make this
[08.05.2016 21:05:50] ImBacK...♥~: int ataque = m_pkOwner->GetQuestFlag("pet_system.pet_ataque");
if (ataque == 0)
{
return false;
}
[08.05.2016 21:06:33] ImBacK...♥~: and this in questlua_pet
[08.05.2016 21:06:33] ImBacK...♥~: int pet_set_attack(lua_State* L)
{
LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr() ;
CPetSystem* petSystem = ch->GetPetSystem();

if (0 == petSystem)
return 0;

ch->SetQuestFlag("pet_system.pet_ataque", (int)lua_tonumber(L, 1));
return 1;
}

int pet_get_attack(lua_State* L)
{
LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr() ;
CPetSystem* petSystem = ch->GetPetSystem();

if (0 == petSystem)
return 0;

lua_pushboolean(L, ch->GetQuestFlag("pet_system.pet_ataque"));
return 1;
}
[08.05.2016 21:08:01] ImBacK...♥~: this for attack
[08.05.2016 21:08:11 | Bearbeitet 21:07:58] ImBacK...♥~: make same for pickup
[08.05.2016 21:11:37] ImBacK...♥~: so
[08.05.2016 21:11:39] ImBacK...♥~: it will be
[08.05.2016 21:11:41] ImBacK...♥~: like it
[08.05.2016 21:11:42] ImBacK...♥~: void CPetActor::PickUpItems(int range)
{
int pickup = m_pkOwner->GetQuestFlag("pet_system.pet_pickup");
if (pickup == 0)
{
return false;
}
long map = m_pkChar->GetMapIndex();
PIXEL_POSITION m = m_pkChar->GetXYZ();
LPSECTREE tree = SECTREE_MANAGER::instance().Get(map, m.x, m.y);
if (!tree)
{
sys_err("cannot find sectree by %dx%d", m.x, m.y);
return;
}
PetPickUpItemStruct f(m_pkOwner, range);
tree->ForEachAround(f);
}
[08.05.2016 21:11:49] ImBacK...♥~: int pet_set_pickup(lua_State* L)
{
LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr() ;
CPetSystem* petSystem = ch->GetPetSystem();

if (0 == petSystem)
return 0;

ch->SetQuestFlag("pet_system.pet_pickup", (int)lua_tonumber(L, 1));
return 1;
}

int pet_get_pickup(lua_State* L)
{
LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr() ;
CPetSystem* petSystem = ch->GetPetSystem();

if (0 == petSystem)
return 0;

lua_pushboolean(L, ch->GetQuestFlag("pet_system.pet_pickup"));
return 1;
}
[08.05.2016 21:22:55] ImBacK...♥~: shit
[08.05.2016 21:23:01] ImBacK...♥~: i have this problem
[08.05.2016 21:23:01] ImBacK...♥~:
PetSystem.cpp: In member function 'void CPetActor::PickUpItems(int)':
PetSystem.cpp:384: error: return-statement with a value, in function returning 'void'
[08.05.2016 21:24:46] ImBacK...♥~: so can make this function
[08.05.2016 21:24:48] ImBacK...♥~: bool ?
[08.05.2016 21:25:28] ImBacK...♥~: or just make it
[08.05.2016 21:25:32] ImBacK...♥~: if (pickup == 0)
{
return;
}
[08.05.2016 21:40:47] ImBacK...♥~: shit not work @@
[08.05.2016 21:50:55] ImBacK...♥~: work perfect now
[08.05.2016 21:50:57] ImBacK...♥~:
[08.05.2016 22:20:29] Micha: Got the one with Walking there i think
[08.05.2016 22:20:33] Micha: had a bit time
[08.05.2016 22:21:29] ImBacK...♥~: nice test it
[08.05.2016 22:21:38] Micha: i cannot
[08.05.2016 22:21:45] Micha: didnt implemented pets into my Server
[08.05.2016 22:21:47] Micha: i hate them
[08.05.2016 22:21:58] Micha: will finish the theoretical part and give you
[08.05.2016 22:22:08] Micha: would be nice if you can test and make Video
[08.05.2016 22:22:22] ImBacK...♥~: okk
[08.05.2016 22:22:29] ImBacK...♥~: nice hhhhh
[08.05.2016 22:22:41] ImBacK...♥~: i make
[08.05.2016 22:22:59] ImBacK...♥~: pet can attck enable and diasable
[08.05.2016 22:23:15] ImBacK...♥~: pet can pickup item enable and disable
[08.05.2016 22:23:20] Micha: but had to Change some parts of the stuff allready done
[08.05.2016 22:23:43] ImBacK...♥~: if pet got level 30 can pickup item
[08.05.2016 22:23:55] ImBacK...♥~: if pet got level 100 can attack
[08.05.2016 22:24:07] ImBacK...♥~: but now i have one problem
[08.05.2016 22:24:36] ImBacK...♥~: if pet under level 100 monster can kill pet
[08.05.2016 22:24:56] ImBacK...♥~: its in source pvp.cpp in function can attack
[08.05.2016 22:26:08 | Entfernt 22:25:57] ImBacK...♥~: Diese Nachricht wurde entfernt
[08.05.2016 22:26:30] ImBacK...♥~: but i make only set exp and get exp in source
[08.05.2016 22:26:42] ImBacK...♥~: get level and set level in quest
[08.05.2016 22:27:49] ImBacK...♥~: so its my problem now only
[08.05.2016 22:29:35] ImBacK...♥~: can help me ?
[08.05.2016 22:31:30] Micha: you can look for the questflag
[08.05.2016 22:31:40] Micha: you did set petlevel in quest or?
[08.05.2016 22:32:13] ImBacK...♥~: Setpet_level & Get_petlevel in quest
[08.05.2016 22:32:27] ImBacK...♥~: only ser exp and get exp in source
[08.05.2016 22:34:00] Micha: so whats your Problem i dont get your Problem at all
[08.05.2016 22:34:38] ImBacK...♥~: my probelm
[08.05.2016 22:34:44] ImBacK...♥~: in monster attack any pet
[08.05.2016 22:35:03] ImBacK...♥~: when pet kill she hide
[08.05.2016 22:35:28] ImBacK...♥~: i make pet can attack monster just in level 100 and up
[08.05.2016 22:35:48] ImBacK...♥~: but if pet under 100 monster kill him
[08.05.2016 22:35:55] ImBacK...♥~: i will check again
[08.05.2016 22:36:00] ImBacK...♥~: i think can fix it
[08.05.2016 22:38:30] ImBacK...♥~: how i can change on python combo box item position ?
[08.05.2016 22:47:18] *** ***
[08.05.2016 22:47:24] Micha: Should work
[08.05.2016 22:47:37] Micha: and also added a check if item can be picked up
[08.05.2016 22:48:10] ImBacK...♥~: ok i will accept now and tested tommrrow ok ?
[08.05.2016 22:48:19] Micha: like you want
[08.05.2016 22:48:24] Micha: i just finished it
[08.05.2016 22:48:48] Micha: wait there is an error
[08.05.2016 22:48:53] Micha: if (pet->IsPickup)
return;
[08.05.2016 22:48:55] Micha: there
[08.05.2016 22:48:57] Micha: has to be:
[08.05.2016 22:49:07] Micha: if (pet->IsPickup())
return;
[08.05.2016 22:50:07] ImBacK...♥~: okk
[08.05.2016 22:50:26] ImBacK...♥~: tommorw i will test it if work i will make video for u
xCPx is offline  
Old 05/26/2016, 01:01   #24
 
elite*gold: 150
Join Date: Feb 2009
Posts: 643
Received Thanks: 612
Ist der "Bug" eigentlich noch existent, dass Items die ich selber droppe auch aufgehoben werden?
Cyber36 is offline  
Old 05/29/2016, 23:18   #25
 
elite*gold: 20
Join Date: Jun 2011
Posts: 2,897
Received Thanks: 3,328
Ja ist er.

is für mich sogesehen ja kein Bug ^^
xCPx is offline  
Old 06/17/2016, 09:02   #26
 
elite*gold: 0
Join Date: Dec 2012
Posts: 819
Received Thanks: 220
Wenn ich das Release einbaue geht dann die Core down auf der ich das PET gerufen hab.
EisTee, is offline  
Old 06/19/2016, 20:41   #27
 
elite*gold: 233
Join Date: Aug 2014
Posts: 1,425
Received Thanks: 314
Geiles Feature
.0x404´Err0xR is offline  
Old 06/24/2016, 16:05   #28
 
elite*gold: 0
Join Date: Apr 2013
Posts: 2
Received Thanks: 0
I have tested but i found one error..
When i call the first pet, he can pick up items, follow me etc
just a normal pet, but when i call another pet ( random pet ), server crash's
And sysser doens't show anything

Kind Regards
AmoteCatarina is offline  
Reply




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


Powered by vBulletin®
Copyright ©2000 - 2021, 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.

BTC: 33E6kMtxYa7dApCFzrS3Jb7U3NrVvo8nsK
ETH: 0xc6ec801B7563A4376751F33b0573308aDa611E05

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