Jump to content

Как лучше всего выложить код?


Kenix

Recommended Posts

Перед тем, как выложить код, лучше всего пройтись по этим пунктам:

  • Стандарт оформления кода
    Наличие общего стиля программирования облегчает понимание исходного кода. Внутри любых управляющих конструкций операторы следует располагать с отступом. Бинарные операторы следует обрамлять пробелами.
  • Комментарии
    Старайтесь комментировать нужные строчки кода.( по вашему мнению ) Это намного упростит его чтение.
  • Объявление переменных, событий, обработчиков

Порядок:

Это также улучшит чтение кода.

  • Логи

Если у вас не работает скрипт, то используйте /debugscript 3 в чате или debugscript 3 в консоли.

Также все ошибки будут в логах.

Серверный лог:

Папка сервера\server\mods\deathmatch\logs\server.log

Клиентский лог:

Папка клиента\MTA\clientscript.log

Не забывайте чистить логи.

  • Логически нерабочий код

Если ваш код отказывается работать, ни дебаг сообщений, ни логов нет, то следует проверить каждую строку кода.

А именно:

  • Полностью нерабочий код

Если ваш код отказывается работать, то возможно ваш код имеет синтаксические ошибки.

Лучше всего вшить в вашу текстовую программу дебаггер.

Если вы не знаете, как вшить в текстовую программу дебаггер, то лучше всего скачать уже готовую программу с дебаггером:

  • Полностью нерабочий ресурс

Если ваш ресурс отказывается работать, то следует проверить meta.xml.

Возможно, meta.xml имеет синтаксические ошибки и поэтому ваш ресурс не будет работать в любом случае.

Подробнее о meta.xml

https://wiki.multitheftauto.com/index.ph ... U/Meta.xml

Edited by Kenix
Link to comment

Винс, лучше бы пример добавил (:

Вот мой пример правильно оформленного кода

-- настройки 
local tSAMPSettings = { 
    bAllowGlithes =         true, -- разрешить баги игры 
    bLimitFPS =             true, -- лимит ФПС 
    bLimitPlayersCount =    true  -- лимит игроков 
} 
  
-- функция-шутка 
local function fWelcomeBackToSAMP ( ) 
    -- выход, если настройки не найдены 
    if not tSAMPSettings or type(tSAMPSettings) ~= 'table' then 
        return false 
    end 
  
    if tSAMPSettings.bAllowGlithes then 
        setGlitchEnabled( "quickreload", true ) 
        setGlitchEnabled( "fastmove",    true ) 
        setGlitchEnabled( "fastfire",    true ) 
        setGlitchEnabled( "crouchbug",   true ) 
    end 
  
    if tSAMPSettings.bLimitFPS then 
        setFPSLimit(25) 
    end 
  
    if tSAMPSettings.bLimitPlayersCount then 
        setMaxPlayers(500) 
    end 
  
    return true 
end 

  • Like 1
Link to comment

1. Фигурные скобки следует переносить на новую строку, ты ведь сам говорил что юзаешь стиль BSD.

2. Отступы в таблицах следует делать вместе с бинарными операторами, т.е.

local tSAMPSettings =  
{ 
    bAllowGlithes       = true; -- разрешить баги игры 
    bLimitFPS           = true; -- лимит ФПС 
    bLimitPlayersCount  = true;  -- лимит игроков 
} 

Ну и не знаю как вы, а я как сишник привык ставить точку с запятой и для меня это правильно работает в Lua (вообще даже в школах на математике учат ставить точку с запятой).

3. Бинарные операторы следует обрамлять пробелами.

4. Лучше пользоваться венгерской нотацией, раз ты взялся ставить префиксы как тип в названиях переменных.

ИМХО, пример не очень.

-- настройки 
local aSAMPSettings         = 
{ 
    m_bAllowGlithes         = true; -- разрешить баги игры 
    m_bLimitFPS             = true; -- лимит ФПС 
    m_bLimitPlayersCount    = true; -- лимит игроков 
} 
  
-- функция-шутка 
local function WelcomeBackToSAMP() 
    -- выход, если настройки не найдены 
    if type( aSAMPSettings ) ~= 'table' then -- nil тоже тип 
        return false; 
    end 
  
    if aSAMPSettings.m_bAllowGlithes then 
        for _, value in ipairs( { "quickreload", "fastmove", "fastfire", "crouchbug" } ) do 
            setGlitchEnabled( value, true ); 
        end 
    end 
  
    if aSAMPSettings.m_bLimitFPS then 
        setFPSLimit( 25 ); 
    end 
  
    if aSAMPSettings.m_bLimitPlayersCount then 
        setMaxPlayers( 500 ); 
    end 
  
    return true; 
end 

По мне так, этот код более читабелен (вообще в коде MTA можно увидеть этот стиль).

P.S. Вообще надо вот так код оформлять xDhttp://cs6002.vk.com/u38799199/118091232/z_e640b3de.jpg

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...