Acum este Lun Dec 17, 2018 2:20 am

[C++]Blocarea conectarii cu 2 conturi la OX!

Ghiduri oficiale, cât și neoficiale, create de membrii comunității pentru îmbunătățirea serverului dvs., clientului etc.
Avatar utilizator
 
Mesaje: 171
Membru din: Mar Sep 29, 2015 8:35 pm
Localitate: Caraş-Severin
Like-uri oferite: 0 time
Like-uri primite: 0 time

[C++]Blocarea conectarii cu 2 conturi la OX!

de #Chriss » Mie Dec 09, 2015 7:57 pm

Salut!
Banuiesc ca multi dintre voi doriti sa nu mai intre nimeni cu 2 conturi la OX asa ca am sa va postez aici solutia:

*char.cpp
Spoiler: show
Găseşte:
Code: Select All Code
#include "buff_on_attributes.h"

Adaugă sub:
Code: Select All Code
#include "OXEvent.h"

Găseşte:
Code: Select All Code
MessengerManager::instance().Logout(GetName());

Adaugă sub:
Code: Select All Code
   if (GetMapIndex() == OXEVENT_MAP_INDEX)
      COXEventManager::instance().RemoveFromIpList(GetDesc()->GetHostName());


*OXEvent.h
Spoiler: show
Găseşte:
Code: Select All Code
bool EnterAttender(LPCHARACTER pChar);

Adaugă sub:
Code: Select All Code
std::set<std::string> m_list_iplist;

Găseşte:
Code: Select All Code
bool LoadQuizScript(const char* szFileName);

Adaugă sub:
Code: Select All Code
void CheckIpAdr(DWORD pidm);
void RemoveFromIpList(const char* gelenip);


*OXEvent.cpp
Spoiler: show
Caută:
Code: Select All Code
COXEventManager::Initialize()

Găseşte:
Code: Select All Code
m_vec_quiz.clear();

Adaugă sub:
Code: Select All Code
m_list_iplist.clear();

Caută:
Code: Select All Code
COXEventManager::Destroy()

Găseşte:
Code: Select All Code
m_vec_quiz.clear();

Adaugă sub:
Code: Select All Code
m_list_iplist.clear();

Găseşte:
Code: Select All Code
bool COXEventManager::EnterAttender(LPCHARACTER pkChar)

Adaugă deasupra lui:
Code: Select All Code
void COXEventManager::RemoveFromIpList(const char* gelenip){
   std::string silinecekip = gelenip;
   m_list_iplist.erase(silinecekip);
}

void COXEventManager::CheckIpAdr(DWORD pidm){
   LPCHARACTER pkMyChar = CHARACTER_MANAGER::instance().FindByPID(pidm);

   char pkChrIP[250];
   snprintf(pkChrIP, sizeof(pkChrIP), "%s", pkMyChar->GetDesc()->GetHostName());

   for (itertype(m_list_iplist) it = m_list_iplist.begin(); it != m_list_iplist.end(); ++it)
   {
      const std::string& loopdaki_ip = *it;
      if (loopdaki_ip.empty()) return;

      char listdekiIp[250];
      snprintf(listdekiIp, sizeof(listdekiIp), "%s", loopdaki_ip.c_str());

      if (!strcmp(listdekiIp, pkChrIP)) {
         pkMyChar->GetDesc()->DelayedDisconnect(5);
         pkMyChar->ChatPacket(CHAT_TYPE_INFO, "Multi IP detected");
      }
   }
}

Găseşte:
Code: Select All Code
m_map_attender.insert(std::make_pair(pid, pid));

Adaugă sub:
Code: Select All Code
CheckIpAdr(pid);
m_list_iplist.insert(pkChar->GetDesc()->GetHostName());
Imagine

 
Mesaje: 23
Membru din: Mar Mar 01, 2016 10:12 pm
Like-uri oferite: 0 time
Like-uri primite: 1 time

Re: [C++]Blocarea conectarii cu 2 conturi la OX!

de danydanutzu45 » Mar Mar 01, 2016 10:17 pm

Folositor pentru incepatori !


Înapoi la Ghiduri și tutoriale

Cine este conectat

Utilizatorii ce navighează pe acest forum: Niciun utilizator înregistrat şi 33 vizitatori