Статья Создаем мобильный и удобный код в вашем скрипте

  • 445
  • 1
  • 90
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
:pepecowboy:Перед началом статьи хотелось бы поздравить всех с наступающим!:pepecowboy:

Теперь приступим к самой статье, состоять она будет из:
1) Создаем отдельные косметические функции для удобства
2) Коментарии к функциям
3) Упрощение кода и очистка от мусора

Самое первое думаю знакомо каждому:
For example trashcode:
client.notify("Hello "..globals.get_username().." ! Brokencore forum")
client.notify("Last version update: 2.0.0")
client.notify("Thanks for using my script!")

Сразу бросается в глаза использование синтаксисов и ненужных символов в принте.
Сутью косметических функций является упрощение получаемой\используемой информации.
Вариаций этого есть много, но я покажу распространённую

Первым делом мы создаем отдельные функции для вывода всей системной информации скрипта:

Create cosmetics function:
local system = {
    username = function()
        return Cheat.GetUsername()
    end

    version = function()
        return tostring("2.0.0")
    end
}
Массив system мы создаем для более удобного использования (относится кстати и ко 2 пункту)
Писать local function или function, или же как я brokencore = function() абсолютно не имеет никакого либо смысла.
Синтаксисы разные, а значение и выполнение одно.

На выходе мы получаем такой код:

Code with cosmetics function:
local system = {
    username = function()
        return Cheat.GetUsername()
    end

    version = function()
        return tostring("2.0.0")
    end
}
client.notify("Hello "..system.username().." ! Brokencore forum")
client.notify("Last version update: "..system.version())
client.notify("Thanks for using my script!")


Далее переходим к комментариям по пути вашего скрипта; всё довольно просто - функция, выполнение, комментарий.
Прямо как на коде ниже:
Commentaries for function:
local system = {
    username = function() // get username nickname
        return Cheat.GetUsername()
    end

    version = function() // current version of script
        return tostring("2.0.0")
    end
}

// print information
client.notify("Hello "..system.username().." ! Brokencore forum")
client.notify("Last version update: "..system.version())
client.notify("Thanks for using my script!")

Переходим сразу же к удалению мусора в коде.
Примеру тому станет рандомная луашка которая лежит у меня на компьютере:peperjomba::
Random trashcode script:
local function hasdasditlog()
    if asdasdasdasx:GetBool() == true then
        if not EngineClient.IsConnected() then return end
        CVar.FindVar("fov_cs_debug"):SetFloat(90)
    else
        CVar.FindVar("fov_cs_debug"):SetFloat(0)
     end
end
Выше код до удаления мусора, внизу код после:
Random script after cleaning:
hasdasditlog = function()
    if asdasdasdasx:GetBool() then
        if not EngineClient.IsConnected() then return end
        CVar.FindVar("fov_cs_debug"):SetFloat(90)
    else
        CVar.FindVar("fov_cs_debug"):SetFloat(0)
     end
end


Впрочем, думаю всё понятно, спасибо за прочтение статьи!

 
  • 445
  • 1
  • 90
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Это искусственное усложнение кода
1640623416354.png

Ожидаю твою работу, мне будет очень интересно как ты перенесёшь код с твоим способом без моего способа.
Не лезь в раздел если ты не понимаешь о чем идёт речь.
которое ещё и может сказаться на оптимизации
К слову - с таким синтаксисом код становиться оптимизированней для отладчика..
Ещё раз - не лезь в раздел в котором ты не понимаешь базы.
 
  • 81
  • 1
  • 6
Контакты для связи отсутствуют.
Посмотреть вложение 29736
Ожидаю твою работу, мне будет очень интересно как ты перенесёшь код с твоим способом без моего способа.
Не лезь в раздел если ты не понимаешь о чем идёт речь.

К слову - с таким синтаксисом код становиться оптимизированней для отладчика..
Ещё раз - не лезь в раздел в котором ты не понимаешь базы.
Каким образом 2 функции где просто ретурн строки более оптимизированы для отладчика?

Открой официальную документацию по оптимизации луа
И ты увидишь там 2 главных правила оптимизации
Rule #1: Don’t do it.
Rule #2: Don’t do it yet. (for experts only)

От того что ты добавишь больше строчек код более оптимизированным он не станет
Нужно искать более простые решения а не все усложнять
 
  • 445
  • 1
  • 90
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Каким образом 2 функции где просто ретурн строки более оптимизированы для отладчика?

Открой официальную документацию по оптимизации луа
И ты увидишь там 2 главных правила оптимизации
Rule #1: Don’t do it.
Rule #2: Don’t do it yet. (for experts only)

От того что ты добавишь больше строчек код более оптимизированным он не станет
Нужно искать более простые решения а не все усложнять
Луп-массив в априори оптимизированней..
Когда отладчик пытается произвести все действия в одной строке и параллельно пытается выполнить текущую функцию, но ему мешают действия которые уже в этой функции вызывается, тем самым нагружая его..
Пожалуйста, перестань мне тут отвечать, ты не понимаешь о чем идет речь.
 
  • 81
  • 1
  • 6
Контакты для связи отсутствуют.
Луп-массив в априори оптимизированней..
Когда отладчик пытается произвести все действия в одной строке и параллельно пытается выполнить текущую функцию, но ему мешают действия которые уже в этой функции вызывается, тем самым нагружая его..
Пожалуйста, перестань мне тут отвечать, ты не понимаешь о чем идет речь.
Да но не когда в нем блять 2 функции которые просто ретурнят строку

local system = { }
system.vars = {}

system.vars['version'] = '1.0.0'

print(system.vars['version'])

Если ты уже боишься переменную создать и делаешь 2 функции для ретурна строки то вот тебе пример с массивом который практичен и ширико используется а не супер пупер массив функтион ретурн строка
 
  • 445
  • 1
  • 90
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Да но не когда в нем блять 2 функции которые просто ретурнят строку
Да я не нашел на чём можно написать, можно хоть ффай-функцию туда пришпандорить.
local system = { }
system.vars = {}
Кстати так работать не будет
Если ты уже боишься переменную создать и делаешь 2 функции для ретурна строки то вот тебе пример с массивом который практичен и ширико используется а не супер пупер массив функтион ретурн строка
1:
ffi.cdef [[ struct c_color { unsigned char clr[4]; }; ]]
local function color_print(color, text)
    console_color = ffi.new("struct c_color")
    engine_cvar = ffi.cast("void***", utils.create_interface("vstdlib.dll", "VEngineCvar007"))
    console_print = ffi.cast("void(__cdecl*)(void*, const struct c_color&, const char*, ...)", engine_cvar[0][25])

    console_color.clr[0] = color:r()
    console_color.clr[1] = color:g()
    console_color.clr[2] = color:b()
    console_color.clr[3] = color:a()
    console_print(engine_cvar, console_color, text)
end
Переделай это под свой способ который ты яростно защищаешь у меня в посте.
Жду.
 
  • 445
  • 1
  • 90
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Активность
Пока что здесь никого нет
Сверху Снизу