|
|
|
Lua |
|
|
DarkMaster |
25.2.2018, 22:25
|
Модератор UOPilot
Сообщений: 9.468
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 27737
Пользователь №: 11.279
|
Цитата 1)Почему все вкладки хостятся в одной машине ? Уже возможно нет, но в целом это интересный метод взаимодейсвия через глобальные переменные. do ... end никто не отменял, если нужно сделать локальное пространство имен, но в целом я не уверен, как правильно было бы все это реализовать. С одной стороны необходимо иметь связь между вкладками, с другой нужно иметь бОльшую изоляцию, чем просто отсутсвие local перед переменной имхо. 2) даже то, что внутри while, если не прописан local, будет глобальным.
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
Cockney |
25.2.2018, 23:35
|
Master
Сообщений: 1.395
Регистрация: 22.6.2013 Группа: Пользователи Наличность: 21065
Пользователь №: 16.156
|
Я не понял, что ты написал, поэтому напишу свое видение (IMG: style_emoticons/default/smile.gif) Если брать работу луа без оберток, то одна машина представлена одним объектом lua_State. Представим, что их 3 : a1, a2, a3. Создаем Код a1 = luaL_newstate(); a2 = luaL_newstate(); a3 = luaL_newstate(); Добавим по одной глобальной переменной. Код lua_pushinteger(a1, 100); lua_setglobal(a1, "a1"); lua_pushinteger(a2, 200); lua_setglobal(a2, "a2"); lua_pushinteger(a3, 300); lua_setglobal(a3, "a3"); Все переменные действительны только в своих машинах, т.е. переменной a1 нет в машине a2 и a3 и т.п. Можем делать что угодно, не боясь зацепить другую вкладку по сути. А если нам нужен доступ к переменной другой вкладки, то получаем его так : Код lua_getglobal(a1, "a1"); //вытолкали на верх стека значение a1 в машине а1 lua_pushinteger(a2, lua_tointeger(a1, lua_gettop(a1))); //скопировали из машины a1 на верх стека a2 lua_setglobal(a2, "a2"); //присвоили в машине a2 переменной a2 Все изолированно. Доступ к другим вкладкам имеется. Разумеется, допилить можно еще получше, но это, как я считаю, работает уже сносно (ну или хотя бы в теории).
|
|
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|