По очереди подключены 2 инклуда. Как в верхнем проверить существование нижнего, а в нижнем - верхнего, через директивы? Чтобы без посредника.
Не думаю, что директивами нормально получится сделать проверку существования нижнего инклуда в верхнем, так как препроцессор всего раз проходит по скрипту, как я знаю. Хотя вообще непонятно зачем это. Достаточно просто в нижнем проверять существование верхнего, а в верхнем всё объявлять через stock, чтоб если нижний инклуд исчез, то и код верхнего сам по себе "отключался".
Ну так же, как вариант - создать функцию в каждом инклуде и вызывать функцию одного инклуда в другом. Будет ошибка о том, что функции нет - инклуд не подключён :D Хотя можно просто ошибку выдавать не при компиляции, а при запуске сервера, например, объявляя в инклудах GVar, а потом проверяя их наличие
Последний раз редактировалось DeimoS; 29.11.2018 в 11:59.
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Во-первых, это никакой особой погоды не сделает (ты же не на калькуляторе собрался сервер запускать).
Во-вторых, в моих вариантах подразумевается, что ты вырубаешь сервер через SendRconCommand("exit"), если инклуд не найден.
Хотя всё ещё не вижу в этом большого смысла. Паблик-моды и с большими проблемами существуют, работая, при этом.
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Компилятор проходит по скрипту как минимум 2 раза. Первый проход нужен в основном для того, чтобы собрать информацию обо всех глобальных идентификаторах (переменных, функциях, константах). Кроме того, на 1-м проходе возникает много ошибок (например, когда функция где-то вызывается, но ещё не объявлена/реализована), но все они подавляются и не выводятся в консоль.
Сама же компиляция происходит на 2-м проходе, когда компилятор уже один раз "просмотрел" содержимое скрипта и знает о существовании всех констант/переменных/функций. Как пример, именно за счёт такого принципа работает оператор defined, которым можно проверить существование функции до её объявления (что часто можно увидеть при перехвате функций).
Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
Стол заказов:
Мои работы:
DeimoS (29.11.2018)
Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
Стол заказов:
Мои работы:
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)