PDA

Просмотр полной версии : [Вопрос] Ячейки [new]



NooB.pwn
24.05.2015, 00:33
Всем привет,не знаю куда обратиться(в какой раздел).
Помогите мне объясните как подсчитывать масивы.

Daniel_Cortez
24.05.2015, 00:40
Помогите мне объясните как подсчитывать масивы.


new a[8]; //раз массив
new b[8]; //два массив

NooB.pwn
24.05.2015, 00:47
new a[8]; //раз массив
new b[8]; //два массив


ну не так выразился,к примеру
format(stringer,sizeof(stringer),"Вы авторизировались как модератор %d уровня", PlayerInfo[playerid][pAdmin]);
SendClientMessage(playerid,0xF4B800AA, stringer);
сколько сюда надоо сделать new stringer[23232];

gangzone.ini
24.05.2015, 10:41
Вы авторизировались как модератор уровня - кол-во символов 40;
%d - если максимальный уровень 1-9 то берём 1 символ ( если 10 - то 2 и т.д );
Всего получилось 41 символ, значит использовать надо 41 ячейку

new stringer[41];

NooB.pwn
24.05.2015, 12:27
Вы авторизировались как модератор уровня - кол-во символов 40;
%d - если максимальный уровень 1-9 то берём 1 символ ( если 10 - то 2 и т.д );
Всего получилось 41 символ, значит использовать надо 41 ячейку

new stringer[41];

а вот если ник к примеру?
"[Внимание] %s[%d] удалил аккаунт игрока %s" сколько за %s считать?

L0ndl3m
24.05.2015, 13:59
Минус два за обычный спецификатор ( %s, %i, %d, %f, т.п. ).

За число, которое будет принимать значение не более 4 символов, то +4 к размеру массива ( если ID игрока ) и +12 если какое-либо длинное число.

gangzone.ini
24.05.2015, 14:09
а вот если ник к примеру?
"[Внимание] %s[%d] удалил аккаунт игрока %s" сколько за %s считать?

1. [Внимание] + пробел - 11 символов;
2. %s - максимальное кол-во символов ника 24, значит 24;
3. [%d] - максимальное кол-во слотов 1000, значит 4 символа + скобки 2, значит 6;
4. удалил аккаунт игрока - 22 символа;
5. %s - пункт 2;
11+24+6+22+24=87.

Daniel_Cortez
24.05.2015, 14:41
В Учебнике (http://pro-pawn.ru/showthread.php?t=4082) есть метод ("Pawn-скриптинг в SA:MP" ==> "Форматирование и показ сообщений"), по которому можно заставить компилятор самостоятельно подсчитать нужный размер форматируемой строки. Удобно тем, что не придётся самостоятельно пересчитывать длину, если вдруг нужно внести какие-то изменения в форматируемый текст.