PvPGN:Clantag

Материал из WikiServia
Перейти к: навигация, поиск

В БД короткое название клана (clantag) содержится в виде числа.

В коротком названии клана может быть не более 4 символов.

Примеры:

1129532928 = CSN
2018735360 = xSu

Для получения его в виде строки нужно перевести число в integer, затем каждый байт в ASCII символ.


C (код из PvPGN)

int str_to_clantag(const char *str) {
   int clantag = 0;
   if (!str)
       return 0;
   if (str[0]) {
       clantag = str[0] << 24;
       if (str[1]) {
           clantag += str[1] << 16;
           if (str[2]) {
               clantag += str[2] << 8;
               if (str[3])
                   clantag += str[3];
           }
       }
   }
   return clantag;
}

PHP

function str_to_clantag($int)
{
	$str = pack("N", $int);
	if ($find = strpos($str, "\0"))
		$str = substr($str, 0, $find);

	return $str;
}

Perl (командная строка)

perl -e "print pack('N',1129532928)"

Bat-файл

perl -e "$a=pack('N',%1);print substr($a,0,index($a,chr(0))"

Запуск: tag2str.bat число


Обратное преобразование

perl -e "print unpack('N','xSu'. chr(0)x4);"

Bat-файл

perl -e "print unpack('N','%1'. chr(0)x4);"

Запуск: str2tag.bat строка