1.13 PTR ΪûD2loaderʱֺֽ֧ɫ֣޷뺺֣

ʹD2ֵֺ֧Ľɫ֣

1ͻá
   aҪװļֿļϷʱʹ-direct -txtء
   bʹ޸İ汾d2hackmap֧µĺ롣
      ûµd2hackmap뽫d2hack.scriptļƵD2װĿ¼¡d2hack.scriptĿͻ˿ڴɫʱ뺺֣ϷУȷʾֵĽɫ֡
      Ѿӵµd2hackmapҪd2hack.scriptļ

2á
  a޸D2CSֺֽ֧ɫ֡Ҫ޸D2CSd2charfile.cеd2char_check_charnameʹúֿ˳ͨ顣ҲñĿ¼´ıõD2CSļ
  bʹbuild 35֮d2gsd2server.iniEnableUnicodeCharName=1




D2CS
d2charfile.c

int InvalidCharName(char thechar)
{
	// \/:*?"<>|
	if (thechar == '\\' || thechar == '/' || thechar == ':' || thechar == '*' || thechar == '?' || thechar == '"' || thechar == '<' || thechar == '>' || thechar == '|')
		return 1;
	return 0;
}

extern int d2char_check_charname(char const * name)
{
	unsigned int	i;
	unsigned char	ch;
	if (!name) return -1;
	if (InvalidCharName((int)name[0])) return -1;
	if (name[0] == '.') return -1;
	for (i=1; i<=MAX_CHARNAME_LEN; i++) {
		ch=name[i];
		if (ch=='\0') break;
		if (!InvalidCharName(ch)) continue;
		return -1;
	}
	if (i >= MIN_NAME_LEN || i<= MAX_CHARNAME_LEN) return 0;
	return -1;
}