Это кому как удобно, кому лень, тот не указывает, кому не лень может указать.
Когда ты создаешь массив и сразу ему даешь значение, то не стоит указывать.
Многие указывают когда не сразу дают им значение, а просто для форматирования или скрепление строки.
А-ля:
Так можно.PHP код:
new string[5];
format(string, sizeof string, "test");
А вот так нельзя, уже будут ошибки, ибо ты в параметрах функции format узнаешь размер массива куда помещаешь текст,и выведет ошибку.PHP код:
new string[];
format(string, sizeof string, "test");
Elrmrnt-Kritik (28.01.2018)
Всем доброе время суток) Хотел уточнить малый момент. Допустим, есть функция, в которой происходит показ диалога с информацией, например, о доме. Для каждого статуса игрока эта информация отображается по-разному. Соответственно, в стоке идет проверка: если игрок администратор, покажем одно, если владелец - другое и так еще порядка трех вариантов. Каждый такой код занимает немалое число строк. Вопрос: логично ли в данном случае использовать автоматоны, чтобы удобнее было находить тот или иной диалог? Сомнения пораждает то, что автоматоны медленные, по крайней мере когда условий выбора мало, а также тот факт, что придется писать эти проверки на принадлежность к разным статусам непосредственно перед вызовом функции. А этих вызовов много по всему моду. Может предложите какие-нибудь универсальные решения?
Спасибо)
Автоматоны не советую использовать, если ты не знаешь логику их работы. Так ты можешь "сломать" весь код. Например, игрок админ -> статус автоматонов меняется на "admin" (для примера), далее он ещё не закончил работать с функциями, которые разделены автоматонами и в этот момент этот же диалог вызывает другой обычный игрок и статус автоматонов меняется на "player" (это тоже чисто для примера), понял в чём прикол? То есть все остальные функции будут воспринимать администратора как обычного игрока, так как статус автоматонов изменился, пока он работал с этими функциями. Конечно можно этот момент обойти с кучами проверок, но стоит ли оно того? Автоматоны - глобальные, меняешь их в одном месте, изменятся везде, а не для каждого игрока по отдельности. Наверно суть мог обяснить. Используй автомтоны для глобальных функции, где изменение не зависят от игроков.
Последний раз редактировалось Geebrox; 30.01.2018 в 07:33.
Elrmrnt-Kritik (30.01.2018)
Ну, что нарыл на автоматоны, то и знаю про них. Нигде не видел информацию, что может быть нечто подобное. А можно пожалуйста парочку примеров, где их можно, и даже стоит, использовать. Только не типичных, где сток с большим оператором выбора (switch) преобразуют, чтобы была реализация через автоматоны. Хотелось бы яркий пример, который можно, так скажем, использовать в моде.
Elrmrnt-Kritik (31.01.2018)
Подскажите пожалуйста еще один момент. Не могу понять в чем смысл использовать такой код:
Если можно сделать это и так:Код:stock GetPlayerLogin(playerid) return Player[playerid][pLogin];
Зачем создавать новую функцию и тратить время на ее вызов, если можно создать макрос, который при компиляции "встанет" как нужно. Часто вижу первый вариант на данном форуме, но не пойму зачем это делают так...Код:#define GetPlayerLogin(%0) Player[%0][pLogin]
Чтобы можно было контролировать логику работы функции. Вдруг ты решишь добавить ещё несколько проверок или ещё что-то в GetPlayerLogin. Ты не знаешь, что может произойти в будуещем, так что надо стараться сделать код максимально удобным для поддержки и отладки. И ещё, отличие первого и второго варианта в том, что вызов функции GetPlayerLogin можно произвести перед его объявление, а со вторым такой трюк не прокатит. То есть если ты подключишь инклюды которые будут использовать GetPlayerLogin и если такой макрос объявлен после подключение этих инклюдов, то компилятор выдаст ошибку.
Последний раз редактировалось Geebrox; 01.02.2018 в 22:01.
Elrmrnt-Kritik (01.02.2018)
В общем у меня траблес, при удалении транспорта командой, обьекты которые рядом (созданные) пропадают, а потом появляются. В чем может быть проблема?
Эту тему просматривают: 10 (пользователей: 0 , гостей: 10)