Thank You Posts

Show post that are related to the Thank-O-Matic. It will show the messages where you give a Thank You to an other users.


Messages - thedongato

on: July 10, 2023, 05:32:23 PM 1 Mu Online / Sources Generales / Source Registro By OBBY Season 6

Source  Registro en Main, JoinServer, Gameserver By OBBY Season 6





les compartos la guia completa para agregar el sistema de Registro en Main... Recuerden que las todas las beses no son iguales...

Espero que les funciones a todos  rebote


Protocol.h

Code: [Select]
typedef struct
{
  #pragma pack(1)
  PSBMSG_HEAD Header;
  char lpszID[10];
  char lpszPass[20];
  char lpszPCode[20];
  char lpszEmail[50];
  DWORD TickCount;
  BYTE Versión[5];
  Serie BYTE[16];
  #pragma pack()
} PBMSG_REGISTER_ACCOUNT, * LPPBMSG_REGISTER_ACCOUNT;


Protocol.cpp

Code: [Select]
#include "LoginMainWin.h"
Code: [Select]
// Dentro de:

case 0xF1:
        switch(((lpMsg[0 ]==0xC1)?lpMsg[3]:lpMsg[4]))
        {
                                .
            .
            .
                  .
            caso 0x12:
            g_pLoginMainWin.ReciveCreateAccount(((lpMsg[0]==0xC1)?lpMsg[4]:lpMsg[5]));
            romper;
        }
        break;


Interface.cpp


Code: [Select]
// Agregar Seccion IMAGEN

// AutoLogin / Register
  LoadBitmapA("Custom\\Desig\\login_auto.tga", 531141, GL_NEAREST, GL_CLAMP, 1, 0);
  LoadBitmapA("Personalizado\\Diseño\\login_auto.tga", 531141, GL_NEAREST, GL_CLAMP, 1, 0);
  LoadBitmapA("Personalizado\\Diseño\\Login.tga", 71621, GL_LINEAR, GL_CLAMP, 1, 0);
  LoadBitmapA("Personalizado\\Diseño\\1.tga", 71622, GL_LINEAR, GL_CLAMP, 1, 0);
  LoadBitmapA("Personalizado\\Diseño\\2.tga", 71623, GL_LINEAR, GL_CLAMP, 1, 0);
  LoadBitmapA("Personalizado\\Diseño\\3.tga", 71624, GL_LINEAR, GL_CLAMP, 1, 0);
  LoadBitmapA("Personalizado\\Diseño\\4.tga", 71625, GL_LINEAR, GL_CLAMP, 1, 0);
  LoadBitmapA("Personalizado\\Diseño\\5.tga", 71626, GL_LINEAR, GL_CLAMP, 1, 0);
  LoadBitmapA("Personalizado\\Diseño\\6.tga", 71627, GL_LINEAR, GL_CLAMP, 1, 0);
  LoadBitmapA("Personalizado\\Diseño\\8.tga", 71629, GL_LINEAR, GL_CLAMP, 1, 0);
  LoadBitmapA("Personalizado\\Diseño\\9.tga", 71630, GL_LINEAR, GL_CLAMP, 1, 0);
  LoadBitmapA("Personalizado\\Diseño\\10.tga", 71630, GL_LINEAR, GL_CLAMP, 1, 0);
  LoadBitmapA("Personalizado\\Diseño\\login_back.tga", 71631, GL_LINEAR, GL_CLAMP, 1, 0);
  LoadBitmapA("Personalizado\\Diseño\\reloadcap.jpg", 71632, GL_LINEAR, GL_CLAMP, 1, 0);


Main.cpp

Code: [Select]
#include "LoginMainWin.h"
#include "AutoLoginWin.h"

Code: [Select]
// Agregar dentro de:

extern "C" _declspec(dllexport) void EntryProc() / / Aceptar
{     
//
//
//
//
   
      g_pLoginMainWin.Init(); // Inicio de sesión automático / Registro
      AutoLogin.Load(); // Auto Login / Register
   
}


Seguimos con SRC JOINSERVE

stdafx.h

Code: [Select]
// Abajo de

#define JOINSERVER_VERSION

// Agregar:

#define OBBY 1

JoinServerProtocol.cpp
Code: [Select]
// Abajo de :

      caso 0x30:
        GJExternalDisconnectAccountRecv((SDHP_EXTERNAL_DISCONNECT_ACCOUNT_RECV*)lpMsg,index);
        romper;

// Agregar:

#if(OBBY)
      case 0x40:
        GJRegisterAccountRecv((SDHP_REGISTER_ACCOUNT_SEND*)lpMsg,index);
        romper;
#endif

Code: [Select]
// Abajo de:

  gLog.Output(LOG_ACCOUNT,"[AccountInfo] Cuenta conectada (Cuenta: %s, IpAddress: %s, GameServerCode: %d)",AccountInfo.Account,AccountInfo. Dirección IP, Información de la cuenta. Código del servidor del juego);
}

// Agregar:

#if(OBBY)
void GJRegisterAccountRecv(SDHP_REGISTER_ACCOUNT_SEND* lpMsg,int index)
{
  SDHP_CONNECT_ACCOUNT_SEND pMsg;

  pMsg.header.set(0x40,sizeof(pMsg));

  pMsj.index = lpMsg->index;
 
  memcpy(pMsg.cuenta,lpMsg->cuenta,tamaño(pMsg.cuenta));

  pMsg.result = CREATE_ACCOUNT_FAIL_ID;

  if(CheckTextSyntax(lpMsg->cuenta,tamaño(lpMsg->cuenta)) == 0)
  {
      pMsg.result = CREATE_ACCOUNT_FAIL_RESIDENT;
      gSocketManager.DataSend(índice,(BYTE*)&pMsg,pMsg.header.size);
      LogAdd(LOG_RED,"Cuenta %s Registrar falla en la sintaxis!");
      devolver;
  }

    if(gAccountManager.GetAccountCount() >=
#if PROTECT_STATE
        gJoinServerMaxAccount[gProtect.m_AuthInfo.PackageType][gProtect.m_AuthInfo.PlanType]
#else
        MAX_ACCOUNT
#endif
        )
  if(gAccountManager.GetAccountCount() >= gJoinServerMaxAccount[gProtect.m_AuthInfo.PackageType][gProtect.m_AuthInfo.PlanType])
  {
      pMsg.result = CREATE_ACCOUNT_FAIL_RESIDENT;
      gSocketManager.DataSend(índice,(BYTE*)&pMsg,pMsg.header.size);
      LogAdd(LOG_RED,"Error en el registro de la cuenta %s, ¡¡¡CONEXIÓN!!!");
      devolver;
  }
  if(MD5Encryption == 0)
  {
      if(gQueryManager.ExecQuery("SELECT memb__pwd FROM MEMB_INFO WHERE memb___id='%s' COLLATE Latin1_General_BIN",lpMsg->account) == 0 || gQueryManager.Fetch() == SQL_NO_DATA)
      {
        gQueryManager.Cerrar();
        if (gQueryManager.ExecQuery("INSERT INTO dbo.MEMB_INFO(memb___id, memb__pwd, memb_name, sno__numb, mail_addr, mail_chek, block_code, ctl1_code) VALORES ('%s', '%s', '%s', '%s' , '%s', 1, 0, 1)",
            lpMsg->cuenta,
            lpMsg->contraseña,
            "JoinServer",
            lpMsg->código personal,
            lpMsg->Email) == TRUE)
        {
            gQueryManager.Close();
            pMsg.result = CREAR_CUENTA_ÉXITO;
            gLog.Output(LOG_ACCOUNT, "[AccountInfo] Cuenta creada (Cuenta: %s, Contraseña: %s )", lpMsg->cuenta, lpMsg->contraseña);
        }
      }
      else
      {
        pMsg.result = CREATE_ACCOUNT_FAIL_ID;
        gQueryManager.Cerrar();
      }
  }
  else
  {
      if(gQueryManager.ExecQuery("SELECT memb__pwd FROM MEMB_INFO WHERE memb___id='%s'",lpMsg->account) == 0 || gQueryManager.Fetch() == SQL_NO_DATA) { gQueryManager.Close(
      )
        ;
        if (gQueryManager.ExecQuery("INSERT INTO dbo.MEMB_INFO(memb___id, memb__pwd, memb_name, sno__numb, mail_addr, mail_chek, block_code, ctl1_code) VALORES ('%s', '%s', '%s', '%s' , '%s', 1, 0, 1)",
            lpMsg->cuenta,
            lpMsg->contraseña,
            "JoinServer",
            lpMsg->códigopersonal,



            pMsg.result = CREAR_CUENTA_ÉXITO;
            gLog.Output(LOG_ACCOUNT, "[AccountInfo] Cuenta creada (Cuenta: %s, Contraseña: %s )", lpMsg->cuenta, lpMsg->contraseña);
        }
      }
      else
      {
        pMsg.result = CREATE_ACCOUNT_FAIL_ID;
        gQueryManager.Cerrar();
      }
   
  }
  gSocketManager.DataSend(índice,(BYTE*)&pMsg,pMsg.header.size);
}
#endif


JoinServerProtocol.h

Code: [Select]
//Abajo de
#pragma once

//Agregar Esto

#define CREATE_ACCOUNT_FAIL_ID 0
#define CREATE_ACCOUNT_SUCCESS 1
#define CREATE_ACCOUNT_FAIL_RESIDENT 2

Code: [Select]
// Abajo de:
char IpAddress[16];
};

// Agregar:

#if(OBBY)
struct SDHP_REGISTER_ACCOUNT_SEND
{
  PBMSG_HEAD header; // C1:01
  índice de PALABRA;
  cuenta char[11];
  contraseña de char[11];
  char código personal[11];
  char Correo electrónico[50];
};
#endif [code]

[code] // Abajo de:

void GJAccountLockSaveRecv(SDHP_LOCK_SAVE_RECV* lpMsg,int index);

// Agregar:

#if(OBBY)
void GJRegisterAccountRecv(SDHP_REGISTER_ACCOUNT_SEND* lpMsg,int index);
#endif



Seguimos con SRC GAMERSERVE

stdafx.h
Code: [Select]
// Agregar:

#define OBBY 1

JSProtocol.cpp

Code: [Select]
// Abajo de:

      case 0x30:
        JGAccountAlreadyConnectedRecv((SDHP_ACCOUNT_ALREADY_CONNECTED_RECV*)lpMsg);
        romper;
       
// Agregar:

#if(OBBY)
      case 0x40:
        JGRegisterAccountRecv((SDHP_CONNECT_ACCOUNT_RECV*)lpMsg);
        romper;
#endif


Code: [Select]
// Abajo de:

void JGServerInfoRecv(SDHP_JOIN_SERVER_INFO_RECV* lpMsg) // OK
{

}

// Agregar:

#if(OBBY)
void JGRegisterAccountRecv(SDHP_CONNECT_ACCOUNT_RECV* lpMsg) // OK
{
  if(OBJECT_RANGE( lpMsg->index) == 0)
  {
      volver;
  }

  if((gObj[lpMsg->index].LoginMessageSend--) == 0)
  {
      CloseClient(lpMsg->index);
      devolver;
  }

  if(gObj[lpMsg->index].Connected != OBJECT_CONNECTED)
  {
      GJDisconnectAccountSend(lpMsg->index,lpMsg->account,gObj[lpMsg->index].IpAddr);
      devolver;
  }

  GCRegisterAccountSend(lpMsg->índice, lpMsg->resultado);
  devolver;
}
#endif [code]


[code]// Abajo de:

gJoinServerConnection.DataSend((BYTE*)&pMsg,pMsg.header.size);
}

// Agregar:

#if(OBBY)
void GJRegisterAccountSend(int aIndex,char* cuenta,char* contraseña,char* código personal,char* Email)
{
  SDHP_REGISTER_ACCOUNT_SEND pMsj;

  pMsg.header.set(0x40,sizeof(pMsg));

  pMsg.index = aIndex;

  memcpy(pMsg.cuenta,cuenta,tamaño(pMsg.cuenta));

  memcpy(pMsg.contraseña,contraseña,tamaño(pMsg.contraseña));

  memcpy(pMsg.personalcode,personalcode,sizeof(pMsg.personalcode));

  memcpy(pMsg.Email,Email,sizeof(pMsg.Email));

  gJoinServerConnection.DataSend((BYTE*)&pMsg,pMsg.header.size);
}
#endif [code]


JSProtocol.h

[code]// Abajo de:

char IpAddress[16];
};

// Agregar:

#if(OBBY)
struct SDHP_REGISTER_ACCOUNT_SEND
{
  PBMSG_HEAD header; // C1:01
  índice de PALABRA;
  cuenta char[11];
  contraseña de char[11];
  char código personal[11];
  char Correo electrónico[50];
};
#endif


Code: [Select]
// Abajo de:

void GJAccountLockSaveSend(int aIndex,int Lock);

// Agregar:

#if(OBBY)
void JGRegisterAccountRecv(SDHP_CONNECT_ACCOUNT_RECV* lpMsg);
void GJRegisterAccountSend(int aIndex,char* cuenta,char* contraseña,char* código personal,char* IpAddress);
#endif

Protocol.cpp
Code: [Select]
// Abajo de:

            case 0x02:
              CGCloseClientRecv((PMSG_CLOSE_CLIENT_RECV*)lpMsg,aIndex);
              romper;

// Agregar:
#if(OBBY)
            caso 0x12:
              CGRegisterAccountRecv((PMSG_REGISTER_ACCOUNT_RECV*)lpMsg,aIndex);
              devolver;
#endif

Code: [Select]
// Abajo de:

GJConnectAccountSend(aIndex, cuenta, contraseña, lpObj->IpAddr);
  }

#endif
}

// Agregar:

#if(OBBY)
void CGRegisterAccountRecv(PMSG_REGISTER_ACCOUNT_RECV* lpMsg,int aIndex)
{
  LPOBJ lpObj = &gObj[aIndex];

  if(lpObj->Connected != OBJECT_CONNECTED)
  {
      CloseClient(aIndex);
      devolver;
  }

  if(memcmp(gServerInfo.m_ServerVersion,lpMsg->ClientVersion,sizeof(lpMsg->ClientVersion)) != 0)
  {
      GCConnectAccountSend(aIndex,6);
      devolver;
  }

  if(memcmp(gServerInfo.m_ServerSerial,lpMsg->ClientSerial,sizeof(lpMsg->ClientSerial)) != 0)
  {
      GCConnectAccountSend(aIndex,6);
      devolver;
  }

  if(lpObj->LoginMessageSend == 0)
  {
      lpObj->LoginMessageSend++;
      lpObj->LoginMessageCount++;
      lpObj->ConnectTickCount = GetTickCount();
      lpObj->ClientTickCount = lpMsg->TickCount;
      lpObj->ServerTickCount = GetTickCount();

      cuenta char[11] = {0};

      PacketArgumentDecrypt(cuenta,lpMsg->cuenta,(tamañode(cuenta)-1));

      char contraseña[11] = {0};

      PacketArgumentDecrypt(contraseña,lpMsg->contraseña,(tamañode(contraseña)-1));

      char CódigoPersonal[11] = {0};

      PacketArgumentDecrypt(PersonalCode,lpMsg->PersonalCode,(sizeof(PersonalCode)-1));

      char Correo electrónico personal[50] = {0};

      PacketArgumentDecrypt(Correo electrónico personal, lpMsg->szEmail, (tamaño de (Correo electrónico personal)-1));

      lpObj->MapServerMoveRequest = 0;
      lpObj->ÚltimoCódigoServidor = -1;
      lpObj->DestMap = -1;
      lpObj->DestX = 0;
      lpObj->DestY = 0;

      GJRegisterAccountSend(aIndex,cuenta,contraseña,PersonalCode, PersonalEmail);
  }
}
#endif [code]


[code]// Abajo de:

DataSend(aIndex,(BYTE*)&pMsg,pMsg.header.size);
}

// Agregar:

#if(OBBY)
void GCRegisterAccountSend(int aIndex,BYTE result) // OK
{
  PMSG_CONNECT_ACCOUNT_SEND pMsg;

  pMsg.header.set(0xF1,0x12,sizeof(pMsg));

  pMsj.resultado = resultado;

  DataSend(aIndex,(BYTE*)&pMsg,pMsg.header.size);
}
#endif

Protocol.h

Code: [Select]
// Abajo de:

BYTE ClientSerial[16];
  #pragma pack()
  #endif
};

// Agregar:

#if(OBBY)
struct PMSG_REGISTER_ACCOUNT_RECV
{
  #pragma pack(1)
  PSBMSG_HEAD header; // C3:F1:01
  cuenta char[10];
  contraseña char[20];
  char CódigoPersonal[20];
  char szEmail[50];
  DWORD TickCount;
  BYTE ClientVersion[5];
  BYTE ClientSerial[16];
  #paquete pragmático()
};
#endif
Code: [Select]
// Abajo de:

  void CGReqCastleHuntZoneEntrance(PMSG_REQ_MOVE_TO_CASTLE_HUNTZONE * aRecv, int iIndex);

// Agregar:

#if(OBBY)
  void GCRegisterAccountSend(int aIndex,BYTE result);
  void CGRegisterAccountRecv(PMSG_REGISTER_ACCOUNT_RECV* lpMsg,int aIndex);
#endif



Creditos
OBBY

on: July 10, 2023, 05:20:50 PM 2 Mu Online / Season6 / Files S6 Upgrade pyke 2023 V0.6 By OBBY

Files S6 Upgrade pyke 2023 V 0.6
7 de Junio del 2023

ChangeLog

Quote
=======================
V 1 Dakosmu / OBBY
=======================
ADD: REGISTRO EN MAIN
FIX: MASTER SKIL LVL
ADD: DATA/CHARACTER/DefaultClassInfo  //Balance De pj: Vida & Energia
ADD: GAMESERVER/GameServerInfo - Character  & GameServerInfo - Skill //En proceso : Balances de skill, pvp
ADD: DATA/COMMAND // Ordenado y modificado
ADD: Sulepan Lo e modificado su drop
ADD: FIX CONSUMO MAIN
ADD: INFORMACION MAIN
FIX: TAMAÑO ITEMS
FIX: TESTE LETRA C
ADD: Enable y Disable MAIN INFO: Fenrir, Horse y Dinorant // SafeZone


Imagenes








Descargas

Update del V.0.1 hasta el V.0.6


VirusTotal
https://www.virustotal.com/gui/file/dfaf9afc5bb82d3b9da3454e20217435481676c2fe760fe4357f84ceb6c14b74?nocache=1

Creditos
Dakosmu / OBBY
Pages: [1]