PDA

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



[ForD]
28.05.2014, 13:56
Как-то раньше не задавался особо этим вопросом,но меня вот все-же интересует будет ли разница между

lol{playerid} = 1;

lol[playerid] = 1;

различие между фигурной и квадратной скобкой,это на что-то влияет или-же дело вкуса?:read:

L0ndl3m
28.05.2014, 13:59
Фигурные скобки используются только если массив символьный то есть char. Перепутаете скобки массив не будет выполняться, если есть плагин crashdetect, то он напечатает в консоле об ошибке. Сервер будет думать, что мы с ним обращаемся как с обычным массивом, на самом деле он с ограничениями (от 0 до 255).

[ForD]
28.05.2014, 14:25
Фигурные скобки используются только если массив символьный то есть char. Перепутаете скобки массив не будет выполняться, если есть плагин crashdetect, то он напечатает в консоле об ошибке. Сервер будет думать, что мы с ним обращаемся как с обычным массивом, на самом деле он с ограничениями (от 0 до 255).

Спасибо,не знал...

- - - Добавлено - - -

Еще вопрос :с

Пробовал сделать сохранение максимального значения,но додумать не могу
в общем суть дела в том,что если игрок набрал 10 очков они сохранились в переменную,но если игрок набирает большее число,это число сохраняется и так с каждым разом,но главное что бы сохранялось только значение больше предыдущего,а не каждое набранное.

- - - Добавлено - - -

Хотя нет,вродед одумался,


new Max_Score;
if(набранные очки > Max_Score)
{
Max_Score = набранные очки;
}

будет работать?

[ForD]
28.05.2014, 14:46
Всем спасибо,все работает,тему del..

DeimoS
28.05.2014, 14:47
{} - обращение к байтам
[] - обращение к ячейке массива
И в обычном массиве можно работать с байтами, но не стоит забывать о том, что байт не может хранить значения меньше нуля или больше 255.
Так же не получится сначала работать с ячейкой массива, присвоив ей определённое значение, а потом пытаться вызвать значение с помощью вызова байтов. То есть:

new deimos[50];

main()
{
deimos[5] = 50;
printf("[5] = %d\n{5} = %d",deimos[5], deimos{5});
}
Отобразит в консоль

[5] = 50
{5} = 0



а такой код

new deimos[50];

main()
{
deimos{5} = 50;
printf("[5] = %d\n{5} = %d",deimos[5], deimos{5});
}
Отобразит

[5] = 0
{5} = 50


и вот такой

new deimos[50];

main()
{
deimos{5} = 50;
deimos[5] = 180;
printf("[5] = %d\n{5} = %d",deimos[5], deimos{5});
}
Отобразит

[5] = 180
{5} = 50


В общем, работать с обычным массивом можно как с массивом байтов, но вот вызвать значение ячейки как байта уже не получится


По поводу второго вопроса. Да, будет.

[ForD]
28.05.2014, 14:55
{} - обращение к байтам
[] - обращение к ячейке массива
И в обычном массиве можно работать с байтами, но не стоит забывать о том, что байт не может хранить значения меньше нуля или больше 255.
Так же не получится сначала работать с ячейкой массива, присвоив ей определённое значение, а потом пытаться вызвать значение с помощью вызова байтов. То есть:

new deimos[50];

main()
{
deimos[5] = 50;
printf("[5] = %d\n{5} = %d",deimos[5], deimos{5});
}
Отобразит в консоль

[5] = 50
{5} = 0



а такой код

new deimos[50];

main()
{
deimos{5} = 50;
printf("[5] = %d\n{5} = %d",deimos[5], deimos{5});
}
Отобразит

[5] = 0
{5} = 50


и вот такой

new deimos[50];

main()
{
deimos{5} = 50;
deimos[5] = 180;
printf("[5] = %d\n{5} = %d",deimos[5], deimos{5});
}
Отобразит

[5] = 180
{5} = 50


В общем, работать с обычным массивом можно как с массивом байтов, но вот вызвать значение ячейки как байта уже не получится


По поводу второго вопроса. Да, будет.

Спасибо,очень познавательно на счет ячеек и байтов,ранее не где не встречал,и пару раз были ошибки в значениях в которых я не мог разобраться,теперь буду знать,на счет 2 вопроса то уже сам все проверить успел =)