Ir para conteúdo
  • 2 Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.

I want to make my character's nickname in Korean. can you help me?


dolduck
 Compartilhar

Posts Recomendados

Respected seniors, I live in Korea and am studying using the w2pp code project for content development purposes.
As the title says, you cannot create a character with a Korean nickname.
In basedef.cpp and Cfiledb.cpp among w2pp code

 

basedef.cpp

É necessário se cadastrar para acessar o conteúdo.

 

CFileDB.cpp

 

É necessário se cadastrar para acessar o conteúdo.

 

Am I missing something or do I need to take any additional steps to make my character's nickname in Korean?

  • Curtir 11
Link para o comentário
Compartilhar em outros sites

  • 2 semanas atrás...

#include <cwchar>        //std::mbtowc 함수 사용

 

#define ISALPHA(x) (((x) >= 'a' && (x) <= 'z') || ((x) >= 'A' && (x) <= 'Z')) // 영문 범위
#define ISDIGIT(x) ((x) >= '0' && (x) <= '9') // 숫자 범위
#define ISHANGUL(x)    (((x)>='ㄱ' && (x) <= 'ㅎ') || ((x) >= '가' && (x) <= '힣')) // 한글 범위
#define    ISHANJA(x)    ((x)>=0x4E00 &&(x)<=0x9FFF) // 한자 유니코드 범위

bool BASE_CheckValidString(char *name)
{
    int l = strlen(name);

    if (l < 4 || l >= NAME_LENGTH)    return FALSE;

    // 문자열의 각 문자를 확인합니다.
    for (int j = 0; j < l;)
    {
        wchar_t wc;
        int len = mbtowc(&wc, &name[j], MB_CUR_MAX);
        if (len < 1) return FALSE; //유요하지 않은 멀티바이트 문자
        /*
        char x = name[j];
        // 문자가 음수이면 다음 문자로 넘어갑니다.
        if (x < 0) { j++; continue; }
        */

        // 문자가 알파벳, 숫자, 한글, 한자, '-' 또는 '_'인지 확인합니다. 맞으면 계속 진행합니다.
        if (ISALPHA(wc) || ISDIGIT(wc) || ISHANGUL(wc) || ISHANJA(wc) || wc == '-' || wc == '_')  // continue; 
        {
            j += len;
            continue;
        }
        //위의 조건에 해당하지 않는 문자가 있으면 false를 반환합니다.
        return false;
    }
    // 모든 조건을 통과하면 true를 반환합니다.
    return true;
}

Editado por dolduck
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.