Нужен ваш взгляд изнутри или "С чего начать и как продолжить?"
#2

Доброй ночи.
Попробую ответить:
Код:
1. GM - игровой мод, в то время как FS - дополнительные скрипты.
    С точки зрения работы, отличия между ними:
    -  При инициализации и выгрузке используются разные Callback'и 
       (OnFilterScriptInit -> OnGameModeInit, OnGameModeExitOnFilterScriptExit
    - SA-MP позволяет поочередно и по кругу запускать до 16 GM
    - FS может быть запущено несколько, одновременно, в то время как GM может быть запущен 
      только один
    - Некоторые нюансы, связанные с OnRcon... в GM

    По сути, все, что необходимо знать - FS может использоваться вместе с любыми GM, в то время 
    как GM - сам по себе. 
    GM отвечает за основное назначение сервера, в то время как FS - за какие-то доп. возможности. 
    Было задумано так, чтобы администратор мог подключить / отключить FS в любой момент, во 
    время выполнения GM.

2. Оптимизация бывает разной. Это и экономия памяти (расчет размеров массивов, удаление 
    ненужных переменных внутри функций), и экономия процессорного времени (количество 
    итераций циклов / разработка алгоритмов для уменьшения количества действий)
    Еще мало кто берет во внимание оптимизацию в плане расширяемости мода. Это лично только 
    мое мнение, но чем проще программисту работать с исходным кодом и чем понятнее структура 
    мода, тем больше оптимизирована как раз работа самого программиста.

3. На счет orm - тут только мое мнение.
    Я не использовал никакие сценарии, потому как PAWN совсем к этому не располагает. Подробнее, 
   может, кто-то другой расскажет.

4. Командный процессор обычно нужен для бОльшей чистоты кода, нежели для оптимизации программы.
    Лично я использовал ZCMP и SSCANF2 - удобно, и никак не связывает руки.
    Пользователь не так часто вводит команды, чтобы серьезно задумываться микро-оптимизацией 
    их обработки. Мой совет - выберите то, что вам удобнее.

5. Имхо:
    - Стример, как неотъемлемая часть серьезного мода (у меня стоит плагин от Incognito)
    - Тот же SSCANF (я использовал его при обработке команд, отличный парсер)
    - Для отладки я просто скачал и подключил два плагина - nativechecker и crashdetect - полезны 
    в том случае, когда возникают какие-то ошибки, или когда сервер по непонятным причинам падает.
    
6. Так как в PAWN нет ничего, кроме CELL, даже используя самую маленькую переменную под bool, 
    вы займете 4 байта памяти. 
    Я перенес такие boolean-значения в массив игроков, воспользовавшись конструкцией enum. 
    Не могу сказать точно, что быстрее и лучше - здесь уж каждый при своем мнении, но я не 
    рискнул использовать PVar, потому как подозреваю, что при каждом обращении к переменной 
    через такие функции, идет поиск по массиву текстовых значений - названий переменных (другое 
    дело фиксированный массив, где просто рассчитывается смещение и считывается число, без 
    каких-либо строк).
Хорошие вопросы, кстати.
Не сочтите меня человеком знающим, а то люди посмотрят на мое количество сообщений и опять начнут негодовать.
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)