Jump to content

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


Kenix

Recommended Posts

Posted (edited)

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

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

Порядок:

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

  • Логи

Если у вас не работает скрипт, то используйте /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

http://vk.com/the_kenix

Вопросы задавайте на форуме, не пишите мне в личку.

Please don't pm me.

Posted

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

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

-- настройки 
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 

Posted

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

Не оказываю поддержку посредством личных сообщений, ICQ, ВК и тому подобное. Все вопросы задавайте на форуме.

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...