Согласен, посещала мысль. Спасибо.
Вид для печати
Короткий вопрос: есть меню, есть подменю, в подменю есть пункты. Уместнее ли для подменю создавать дополнительную команду или сток (а что лучше?), чтобы не дублировать везде if(!response) return SPD()?
Они нигде не наплодятся. Локальные переменные существуют ровно в том блоке кода, в котором они объявлены. Если у тебя внутри функции есть 10 блоков и в каждом из блоков по массиву на 100 ячеек, то в момент обработки каждого блока у тебя будет существовать только один массив, а не все 10. Создавать один общий массив для диалогов - сомнительное решение. Это только увеличит риск сделать опечатку, вставив этот самый массив не там, где нужно (например, в SendClientMessage ты хотел передать "string", а вставишь "dialog_string", являющийся общим массивом, и компилятор тебя не предупредит о твоей ошибке, так как для него ошибки нет: оба массива существуют. В итоге придётся тратить время на отлов проблемы, вместо разработки чего-то полезного).
И да: с такими объяснениями лучше давать пример кода, связанного с твоим вопросом. Тебя могут не так понять и дать совсем не тот совет, который более применим в твоей ситуации.
Приведу пример:
{ if(playerid == 0) { new num = 1; } else { new str[24+1]; } return true; }
В данном случае локальная переменная или локальный массив будут существовать только в проверке if, а после выполнения всего кода в проверке они попросту удаляются
Я правильно понял, что вся проблема использования глобальных массивов лишь в возможной опечатке?