PDA

Просмотр полной версии : [Вопрос] MAX_PLAYER_NAME в string



gangzone.ini
24.05.2015, 14:17
Например имеем функцию

format(string, sizeof(string), "%s ударил %s", pName[playerid], pName[params[0]);
SendAdminMessage(-1, string);
Тут надо использовать 56 ячеек

new string[56];
Можно ли использовать так:

new string[MAX_PLAYER_NAME+8+MAX_PLAYER_NAME];

NewGreen
24.05.2015, 14:32
Например имеем функцию

format(string, sizeof(string), "%s ударил %s", pName[playerid], pName[params[0]);
SendAdminMessage(-1, string);
Тут надо использовать 56 ячеек

new string[56];
Можно ли использовать так:

new string[MAX_PLAYER_NAME+8+MAX_PLAYER_NAME];

Константа MAX_PLAYER_NAME имеет значение 24
Не пойму тех кто пишет так:

new string[24+8+24];
ведь лучше подсчитать в уме и сразу создать массив нужной длинны, а не заставлять сервер каждый раз делать лишние арифметические вычисления:

new string[56];

Daniel_Cortez
24.05.2015, 14:45
Тут надо использовать 56 ячеек
57. Ещё 1 ячейка нужна под символ конца строки.
В итоге должно получиться что-то вроде:


new string[MAX_PLAYER_NAME+8+MAX_PLAYER_NAME+1];

Либо можно так (подробнее способ описан в Учебнике (http://pro-pawn.ru/showthread.php?t=4082)):


static const fmt_str[] = "%s ударил %s";
new string[sizeof(fmt_str)+(-2+MAX_PLAYER_NAME)*2];

gangzone.ini
24.05.2015, 15:00
Спасибо!