Достиг лимита в function main()

Coquette

Новичок
Автор темы
23
0
Версия MoonLoader
.026-beta
Делал скрипт, и вскоре в консоли стала вылазить ошибка "function at line 53 has more than 200 local variables", в строке 53 у меня находится "function main()", ввел в переводчик текст ошибки, пишет что достиг лимита в 200 локальных переменных в функции, но мне ещё нужно много локальных переменных, что делать?
 

RedHolms

Известный
Проверенный
620
367
Используй таблицы, например все mimgui/imgui переменные можно вывести в таблицу
Lua:
local ImGuiData = {
   iSbivType = ImNew.int(),
   iDrugsTimerType = ImNew.int(),
   iDoubleJumpType = ImNew.int(),
   iImguiStyle = ImNew.int(),
   iAutoLoginServerLoginDialogId = ImNew.int(),
   iAutoCapterLimit = ImNew.int(),

   fReconnectDefaultDelay = ImNew.float(),
   fAutoCapterDelay = ImNew.float(),
   fAutoFullMaterialsDelay = ImNew.float(),

   keyDrugsTimerHotKey = ImNew.int(),
   keySbivHotKey = ImNew.int(),
   keyDoubleJump = ImNew.int(),
   keyAutoFullMaterials = ImNew.int(),

   bDebug = ImNew.bool(),
   bInfinityRun = ImNew.bool(),
   bAutoGrabMaterials = ImNew.bool(),
   bAntiBunnyHop = ImNew.bool(),
   bCatchMhcars = ImNew.bool(),
   bPlayerRemover = ImNew.bool(),
   bPlayerRemoverIgnoreIncar = ImNew.bool(),
   bClearChatOnReconnect = ImNew.bool(),
   bFastConnectEnabled = ImNew.bool(),
   bRemoveBat = ImNew.bool(),
   bKillsInfoAutoClear = ImNew.bool(),

   szReconnectCommand = ImNew.char[90]'',
   szOnlineCheckCommand = ImNew.char[90]'',
   szAutoCapterCommand = ImNew.char[90]'',
   szKillsInfoCommand = ImNew.char[90]'',
   szMessagerCommand = ImNew.char[90]'',
   szAutoFullMaterialsCommand = ImNew.char[90]'',
   szAutoLoginServerName = ImNew.char[90]'',
   szAutoLoginServerAddress = ImNew.char[22]'', -- maximum available address: 999.999.999.999:65565
   szAutoLoginAccountNickname = ImNew.char[90]'',
   szAutoLoginAccountPassword = ImNew.char[90]'',
   szKillsInfoFind = ImNew.char[90]'',
   szMessagerFind = ImNew.char[90]'',
   szDoubleJumpText = ImNew.char[90]'',

   aszImguiStyles = nil,  -- ImNew["const char*"][n]({ "", ... })
   aszSbivTypes = ImNew["const char*"][#CFG_SBIV_TYPES](CFG_SBIV_TYPES),
   aszDrugsTimerTypes = ImNew["const char*"][#CFG_DRUGSTIMER_TYPES](CFG_DRUGSTIMER_TYPES),
   aszDoubleJumpTypes = ImNew["const char*"][#CFG_DOUBLEJUMP_TYPES](CFG_DOUBLEJUMP_TYPES),

   get_name = nil
}
 

Coquette

Новичок
Автор темы
23
0
Используй таблицы, например все mimgui/imgui переменные можно вывести в таблицу
Lua:
local ImGuiData = {
   iSbivType = ImNew.int(),
   iDrugsTimerType = ImNew.int(),
   iDoubleJumpType = ImNew.int(),
   iImguiStyle = ImNew.int(),
   iAutoLoginServerLoginDialogId = ImNew.int(),
   iAutoCapterLimit = ImNew.int(),

   fReconnectDefaultDelay = ImNew.float(),
   fAutoCapterDelay = ImNew.float(),
   fAutoFullMaterialsDelay = ImNew.float(),

   keyDrugsTimerHotKey = ImNew.int(),
   keySbivHotKey = ImNew.int(),
   keyDoubleJump = ImNew.int(),
   keyAutoFullMaterials = ImNew.int(),

   bDebug = ImNew.bool(),
   bInfinityRun = ImNew.bool(),
   bAutoGrabMaterials = ImNew.bool(),
   bAntiBunnyHop = ImNew.bool(),
   bCatchMhcars = ImNew.bool(),
   bPlayerRemover = ImNew.bool(),
   bPlayerRemoverIgnoreIncar = ImNew.bool(),
   bClearChatOnReconnect = ImNew.bool(),
   bFastConnectEnabled = ImNew.bool(),
   bRemoveBat = ImNew.bool(),
   bKillsInfoAutoClear = ImNew.bool(),

   szReconnectCommand = ImNew.char[90]'',
   szOnlineCheckCommand = ImNew.char[90]'',
   szAutoCapterCommand = ImNew.char[90]'',
   szKillsInfoCommand = ImNew.char[90]'',
   szMessagerCommand = ImNew.char[90]'',
   szAutoFullMaterialsCommand = ImNew.char[90]'',
   szAutoLoginServerName = ImNew.char[90]'',
   szAutoLoginServerAddress = ImNew.char[22]'', -- maximum available address: 999.999.999.999:65565
   szAutoLoginAccountNickname = ImNew.char[90]'',
   szAutoLoginAccountPassword = ImNew.char[90]'',
   szKillsInfoFind = ImNew.char[90]'',
   szMessagerFind = ImNew.char[90]'',
   szDoubleJumpText = ImNew.char[90]'',

   aszImguiStyles = nil,  -- ImNew["const char*"][n]({ "", ... })
   aszSbivTypes = ImNew["const char*"][#CFG_SBIV_TYPES](CFG_SBIV_TYPES),
   aszDrugsTimerTypes = ImNew["const char*"][#CFG_DRUGSTIMER_TYPES](CFG_DRUGSTIMER_TYPES),
   aszDoubleJumpTypes = ImNew["const char*"][#CFG_DOUBLEJUMP_TYPES](CFG_DOUBLEJUMP_TYPES),

   get_name = nil
}
скажи лучше как мне local result, button, list, input = sampHasDialogResponse() в больших количествах поместить в таблицу?
В своем скрипте я не юзаю imgui/mimgui
 

RedHolms

Известный
Проверенный
620
367
скажи лучше как мне local result, button, list, input = sampHasDialogResponse() в больших количествах поместить в таблицу?
В своем скрипте я не юзаю imgui/mimgui
это не так работает мейби, дай код
 

RedHolms

Известный
Проверенный
620
367
как хочешь
лишь подмечу, что под локальными переменами скорее всего подрузамеваются слоты виртуальной машины, они используются при вызывах функций, временных результатов и в целом всех данных, можешь попробовать так же разбить код на разные фукнции что бы избежать этого
 
  • Вау
Реакции: whyega52

Coquette

Новичок
Автор темы
23
0
как хочешь
лишь подмечу, что под локальными переменами скорее всего подрузамеваются слоты виртуальной машины, они используются при вызывах функций, временных результатов и в целом всех данных, можешь попробовать так же разбить код на разные фукнции что бы избежать этого
Лан, я подумаю что можно сделать, ну если не придумаю придется забить на скрипт