Сильно ли повлияет на оптимизацию если перехватить паблик к примеру OnPlayerConnect перехватить 100 и более раз (не только этот понадобится перехватывать)
методом Daniel_Cortez
Вид для печати
Сильно ли повлияет на оптимизацию если перехватить паблик к примеру OnPlayerConnect перехватить 100 и более раз (не только этот понадобится перехватывать)
методом Daniel_Cortez
На оптимизацию влияет и код в этих пабликах.
Если у вас свой проект, то ИМХО, лучше вызывать функции из паблика, чем использовать перехваты (пример, Open-GTO).
Есть ли идеи по написанию мода на модулях
Это не мой метод -_-
В моей статье просто приведён пересказ статьи Y_Less'а (Hook Method 7) и добавлено несколько рекомендаций, которых не было в оригинале.
Касаемо самого вопроса, 100+ перехватов - не многовато ли? Зачем вам столько?
какая разница сколько перехватов,
они все если и будут влиять то только на скорость компиляции
(будет компилятор тужится слегка читать дерективы че по чем куда по сколько):dirol:
Не только. Каждый перехват - отдельная функция, которая возвращает оригинал или следующий перехват. Следовательно, уже, как минимум, два дополнительных действия (возврат + вызов другой функции).
Но это всё не существенно в сравнении с теми удобствами, что дают перехваты. Хотя строить модульный мод на перехватах - такая себе идея. В случае с перехватами довольно тяжело контролировать порядок вызова функций в ситуациях, когда это действительно важно. Особенно если код впоследствии будет разбирать кто-то другой. Лучше уж для каждого коллбэка в модуле создавать свою функцию и вызывать её в нативном моде, как это в Open-GTO сделано.
А если нужно убрать зависимость от подключаемых инклудов, то тут на помощь придут директивы препроцессора, а-ля:
И никаких проблем с компиляцией при отключении модуля, в котором находится "TestFunc", не будетPHP код:
public OnGameModeInIt()
{
#if defined TestFunc
TestFunc();
#endif
return 1;
}