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

IzYniq

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

RedHolms

Известный
Проверенный
617
360
Используй таблицы, например все 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
}
 

IzYniq

Новичок
Автор темы
20
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

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

RedHolms

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

IzYniq

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