Sign in to follow this  
Kenix

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

Recommended Posts

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

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

Порядок:

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

  • Логи

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

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

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

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

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

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

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

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

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

А именно:

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

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

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

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

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

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

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

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

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

Edited by Kenix

Share this post


Link to post

Смысл хуже сделал :lol:

Подправил.

Share this post


Link to post

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

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

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

Share this post


Link to post

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

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.