¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.



Ir abajo
Programador
Programador
Zk-Moderador
Zk-Moderador
Argentina

Google Chrome

Mensajes100

Coin4864

Reputacion143

Sin Advertencia
https://www.facebook.com/patrick.rn.5

[SOURCE]Protección contra los nombres inapropriados Empty [SOURCE]Protección contra los nombres inapropriados

Jue Ago 30, 2012 1:11 pm
Reputación del mensaje :100% (3 votos)
Esta función no permite que los personajes que se creen con personajes inadecuados, haciendo imposible la prohibición de un sitio y los comandos, pero no permite la creación de los gremios con los personajes inapropiados, lo que lleva a la caída del servidor.

Create.h:
--------------------------------------------------------------------------------------------
#pragma once

namespace Programador
{
struct PMSG_CHARCREATE
{
PBMSG_HEAD h;
BYTE subcode;
char Name[10];
BYTE ClassSkin;
};

struct PMSG_GUILDINFOSAVE
{
PBMSG_HEAD h;
BYTE btGuildType;
char GuildName[8];
BYTE Mark[32];
};

class Create
{
public:
static bool checkString(std::string szString, std::string szPattern, bool szIgnoreSpace);
static void Character(PMSG_CHARCREATE* lpMsg, DWORD dwIndex);
static void Guild(DWORD dwIndex, PMSG_GUILDINFOSAVE* lpMsg);
};
}
--------------------------------------------------------------------------------------------

Create.cpp:
--------------------------------------------------------------------------------------------
#include "Create.h"

namespace Programador
{
bool Create::checkString(std::string szString, std::string szPattern, bool szIgnoreSpace)
{
DWORD dwCount = 0;
std::string szReg = "", szCharacter = "";

if(szPattern[0] != '[' || szPattern[(szPattern.length() - 1)] != ']')
{
return false;
}

for(int i = 1; i < (int)szPattern.length(); i++)
{
if(szPattern[i] == ']')
{
if(!szReg.empty())
{
szCharacter += szReg;
}

break;
}

if(!szPattern.compare(i, 3, "A-Z"))
{
szCharacter += "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
i += 2;
}
else if(!szPattern.compare(i, 3, "a-z"))
{
szCharacter += "abcdefghijklmnopqrstuvwxyz";
i += 2;
}
else if(!szPattern.compare(i, 3, "0-9"))
{
szCharacter += "0123456789";
i += 2;
}
else
{
szReg += szPattern[i];
}
}

for(int n = 0; n < (int)szString.length(); n++)
{
if(szString[n] == ' ' && szIgnoreSpace)
{
dwCount++;
continue;
}

for(int y = 0; y < (int)szCharacter.length(); y++)
{
if(szString[n] == szCharacter[y])
{
dwCount++;
break;
}
}
}

if(dwCount == (DWORD)szString.length())
{
return true;
}

return false;
}

void Create::Character(PMSG_CHARCREATE* lpMsg, DWORD dwIndex)
{
if(checkString(lpMsg->Name, "[A-Za-z0-9_-]", false))
{
ServerCharacterFailSend(dwIndex, lpMsg->Name);
return;
}

ServerCreateCharacter(lpMsg, dwIndex);
}

void Create::Guild(DWORD dwIndex, PMSG_GUILDINFOSAVE* lpMsg)
{
if(checkString(lpMsg->GuildName, "[A-Za-z0-9_-]", false))
{
return;
}

ServerCreateGuild(dwIndex, lpMsg);
}
}--------------------------------------------------------------------------------------------

Hook:
--------------------------------------------------------------------------------------------
Hook((DWORD)&Programador::Create::Character, 0x401B8B);
Hook((DWORD)&Programador::Create::Guild, 0x4017DF);
--------------------------------------------------------------------------------------------

Defines:
--------------------------------------------------------------------------------------------
#define ServerCreateCharacter ((void(*)(Programador:PMSG_CHARCREATE*, DWORD)) 0x417420)
#define ServerCharacterFailSend ((void(*)(DWORD, char*)) 0x410A50)
#define ServerCreateGuild
--------------------------------------------------------------------------------------------

Credito : Programador
Fenix.
Fenix.
Zk-Level 0
Zk-Level 0
Argentina

Google Chrome

Mensajes15

Coin4499

Reputacion2

Sin Advertencia

[SOURCE]Protección contra los nombres inapropriados Empty Re: [SOURCE]Protección contra los nombres inapropriados

Jue Ago 30, 2012 4:25 pm
jaja esto va para los pete que se crean name "!"!^$!" pedaso de petes gracias man sos un pro aporta cada cosas que no es necesario testearlo buen post
damiancito
damiancito
Zk-Level 1
Zk-Level 1
Argentina

Google Chrome

Mensajes52

Coin4933

Reputacion7

Sin Advertencia

[SOURCE]Protección contra los nombres inapropriados Empty Re: [SOURCE]Protección contra los nombres inapropriados

Jue Ago 30, 2012 4:37 pm
U.u no me voy a poner mas el name !"!"!$!"~ T.T buen post
FFaBByy
FFaBByy
Zk-Level 0
Zk-Level 0
Argentina

Google Chrome

Mensajes10

Coin4485

Reputacion0

Sin Advertencia

[SOURCE]Protección contra los nombres inapropriados Empty Re: [SOURCE]Protección contra los nombres inapropriados

Vie Ago 31, 2012 1:47 am
El funcionamiento de los source que hace es de 99% al 100% buen post
CGeas
CGeas
Zk-Level 0
Zk-Level 0
Argentina

Google Chrome

Mensajes18

Coin4503

Reputacion2

Sin Advertencia

[SOURCE]Protección contra los nombres inapropriados Empty Re: [SOURCE]Protección contra los nombres inapropriados

Dom Sep 02, 2012 4:02 pm
buen post
panico_23
panico_23
Zk-Nuevo
Zk-Nuevo
Argentina

Google Chrome

Mensajes6

Coin4637

Reputacion0

Sin Advertencia

[SOURCE]Protección contra los nombres inapropriados Empty Re: [SOURCE]Protección contra los nombres inapropriados

Mar Sep 25, 2012 4:12 pm
hola men donde lo tengo q poner a eso me podes decir xfavor? gracias
Contenido patrocinado

[SOURCE]Protección contra los nombres inapropriados Empty Re: [SOURCE]Protección contra los nombres inapropriados

Volver arriba
Permisos de este foro:
No puedes responder a temas en este foro.