Dennis_Chikin 3 658 Опубликовано 4 Января 2015 Поделиться Опубликовано 4 Января 2015 (изменено) С чего начинать и где взять. Установка Lua:http://www.amk-team.ru/forum/index.php?showtopic=11584&p=629106 Руководство «Программирование на языке Lua», третье издание:http://www.amk-team.ru/forum/index.php?showtopic=11584&p=905308 Изменено 2 Марта 2015 пользователем Kirgudu Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
dsh 3 824 Опубликовано 6 Декабря 2017 Поделиться Опубликовано 6 Декабря 2017 @Nazgool а это уже не простой способ. О чем я и написал. Это уже изменение всех скриптов, которые используют db.actor. Изменение большого кол-ва скриптов = новые ошибки. Так-то варианты и другие есть, разной степени сложности. Я же под простым способом подразумевал такой, который полностью совместим с существующими скриптами. А вообще, это проблема не стоит усилий, затраченных на ее решение. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Nazgool 250 Опубликовано 6 Декабря 2017 Поделиться Опубликовано 6 Декабря 2017 (изменено) Ну если так не подходит, то тогда (по степени сложности) нужно подумать над тем, чтобы переписать функцию '__index'. Как следующий в цепочке ивентов. Или тоже не вариант? Изменено 6 Декабря 2017 пользователем Nazgool Ссылка на комментарий
dsh 3 824 Опубликовано 6 Декабря 2017 Поделиться Опубликовано 6 Декабря 2017 @Nazgool это как раз нормальный вариант. Вот только сходу не нашел, на что заменить. Да брось, не стоит оно затраченных усилий. Я прекратил эксперименты на эту тему, т.к. есть более приоритетные задачи. Просто отписался для тех, кто будет искать информацию на эту тему. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Nazgool 250 Опубликовано 6 Декабря 2017 Поделиться Опубликовано 6 Декабря 2017 (изменено) dsh Да для меня написать подобный код - не проблема. Печально только что никому сейчас это не нужно Да что там... давно уже никому не нужно. Изменено 6 Декабря 2017 пользователем Nazgool Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 11 Февраля 2018 Поделиться Опубликовано 11 Февраля 2018 Ну и когда (и зачем) успели запретить операцию local s = "1"; local v = s + 0 ? И что теперь делать с 7 314 115 байт когда ? Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
dsh 3 824 Опубликовано 11 Февраля 2018 Поделиться Опубликовано 11 Февраля 2018 @Dennis_Chikin странный код. В чем его смысл? Это что бы tonumber() не делать? А чем tonumber() плох? dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 11 Февраля 2018 Поделиться Опубликовано 11 Февраля 2018 Тем, что существуют мегатонны кода с операциями string + number. И ладно, "+ 0" "+0" найти можно поиском. А если там не пробел, или не 0 ? Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
dsh 3 824 Опубликовано 11 Февраля 2018 Поделиться Опубликовано 11 Февраля 2018 @Dennis_Chikin овнокод, очевидно, нужно переписывать. У меня, кстати local s = "1" local v = s + 0 local v2 = v + 2 log3( "dsh: v = %d, v2 = %d", v, v2 ) выводит dsh: v = 1, v2 = 3 Т.ч. не могу сказать, что я понял проблему. Впрочем, у меня и --LUA version: [LuaJIT 2.0.5] 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 11 Февраля 2018 Поделиться Опубликовано 11 Февраля 2018 Некий soc_render 1.0006 (ОГСЕ) - не знаю, что это такое. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
dsh 3 824 Опубликовано 11 Февраля 2018 Поделиться Опубликовано 11 Февраля 2018 @Dennis_Chikin это вроде обыкновенный 1.0006 с мелкими двоичными врезками в рендер. Сомневаюсь, что там какие-то изменения в lua. Максимум, может быть RVP подключен или как оно там называется. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Graff46 598 Опубликовано 24 Марта 2018 Поделиться Опубликовано 24 Марта 2018 (изменено) Отладчик ругается на такого вида переменные: local myvar = game_graph():vertex local lastGvid = 3131 for i = 1, lastGvid do myvar(i) end Отладчик пишет: "В строке 1 ожидается список аргументов функции, а написано local", но такой код работает: function my(x) return x end local myvar = my print(myvar(12)) -- 12 С методами так нельзя? *Замечу game_graph():vertex() -- тип функция Изменено 24 Марта 2018 пользователем Graff46 Ссылка на комментарий
Charsi 440 Опубликовано 24 Марта 2018 Поделиться Опубликовано 24 Марта 2018 @Graff46 local gg = game_graph() local myvar = gg.vertex local lastGvid = 3131 for i = 1, lastGvid do myvar(gg, i) end 1 Lua и LuaJIT плагины для Notepad++ SciTE-RU 3.5.5 плагины для MilkShape3D Ссылка на комментарий
Graff46 598 Опубликовано 24 Марта 2018 Поделиться Опубликовано 24 Марта 2018 @Charsi 1 Ссылка на комментарий
Graff46 598 Опубликовано 24 Марта 2018 Поделиться Опубликовано 24 Марта 2018 (изменено) Методы нельзя так приравнивать, отладчик прав. Проверил на ×ZeroBrain Скрины: Скрытый текст Изменено 24 Марта 2018 пользователем Graff46 Ссылка на комментарий
_Призрак_ 11 Опубликовано 24 Марта 2018 Поделиться Опубликовано 24 Марта 2018 Используй не game_graph():vertex, а game_graph().vertex (через точку). В этом случае ты делаешь не вызов функции, а обращение к полю объекта 1 Freedom Ссылка на комментарий
Graff46 598 Опубликовано 24 Марта 2018 Поделиться Опубликовано 24 Марта 2018 36 минут назад, _Призрак_ сказал: Используй не game_graph():vertex, а game_graph().vertex (через точку) Так работает! Ссылка на комментарий
Winsor 177 Опубликовано 22 Мая 2018 Поделиться Опубликовано 22 Мая 2018 (изменено) Вопрос по метатаблицам local data=setmetatable({},{ __tostring = function() return "data_table_name" end, }) log("1 "..tostring(data)) data={["dsdsd"]=true} log("2 "..tostring(data)) Вывод 1 data_table_name 2 0A0EC4C8 т.е. при инициализации таблицы новыми данными ее метатаблица затирается. если делать setmetatable после инициализации - не вызываются _index,__newindex. каким образом можно избежать такого эффекта? очень не хочется писать отдельные циклы заполнения таблицы с метаданными... p.s. все это вызывается из под движка ТЧ 1.0007 p.s.s. само собой, можно написать и так: local data=setmetatable({["dsdsd"]=true},{ __tostring = function() return "data_table_name" end, }) но все равно не вызываются события _index,__newindex у таблицы data. Изменено 22 Мая 2018 пользователем Winsor Ссылка на комментарий
abramcumner 1 157 Опубликовано 22 Мая 2018 Поделиться Опубликовано 22 Мая 2018 (изменено) 16 минут назад, Winsor сказал: data={["dsdsd"]=true} т.е. при инициализации таблицы новыми данными ее метатаблица затирается. Это не инициализация таблицы новыми данными. Это присваивание новой таблицы, у которой нет метатаблицы. Инициализация данными вот: data["dsdsd"]=true Изменено 22 Мая 2018 пользователем abramcumner Ссылка на комментарий
Winsor 177 Опубликовано 22 Мая 2018 Поделиться Опубликовано 22 Мая 2018 (изменено) 17 минут назад, abramcumner сказал: Это присваивание новой таблицы, у которой нет метатаблицы. т.е. без какого то лишнего шага не обойтись? например, псевдокод: rawdata={["dsdsd"]=true} setmetatable(data,{__index,__newindex}) copy(data,rawdata) Изменено 22 Мая 2018 пользователем Winsor Ссылка на комментарий
abramcumner 1 157 Опубликовано 22 Мая 2018 Поделиться Опубликовано 22 Мая 2018 Ну я особо лишних шагов тут не вижу. Создаешь таблицу с метатаблицей, вставляешь в нее данные. Можно так написать: setmetatable(data,{__index,__newindex}) copy(data,{["dsdsd"]=true}) Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти