Dennis_Chikin 3 665 Опубликовано 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 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий https://www.amk-team.ru/forum/topic/11584-yazyk-lua-obschie-voprosy-programmirovaniya/page/59/#findComment-905371
KitkaT.Net 2 Опубликовано 24 Июля 2016 Поделиться Опубликовано 24 Июля 2016 @Malandrinus, я проверил, значение моей глобальной (ну получается в моем скрипте) переменной сбрасывается после перехода на другую локацию. Ничто не вечно под луной. Ссылка на комментарий https://www.amk-team.ru/forum/topic/11584-yazyk-lua-obschie-voprosy-programmirovaniya/page/59/#findComment-1028212
Карлан 1 050 Опубликовано 24 Июля 2016 Поделиться Опубликовано 24 Июля 2016 @KitkaT.Net, разумеется она сбрасывается. Модуль при загрузке игры переинициализируется, я уже не раз это говорил. И при загрузке игры без обращения к функции где идет рандомизация она у тебя будет равна nil. Делай рандомизацию непосредственно перед проверкой. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/11584-yazyk-lua-obschie-voprosy-programmirovaniya/page/59/#findComment-1028215
KitkaT.Net 2 Опубликовано 24 Июля 2016 Поделиться Опубликовано 24 Июля 2016 @Карлан, ну рандомизировать то мне по логике квеста надо один раз, поэтому обойдусь инфопоршнями на каждый из случаев. Ладно, хотя бы разобрался из-за чего у меня такая ерунда происходила Ничто не вечно под луной. Ссылка на комментарий https://www.amk-team.ru/forum/topic/11584-yazyk-lua-obschie-voprosy-programmirovaniya/page/59/#findComment-1028216
Serge! 127 Опубликовано 24 Июля 2016 Поделиться Опубликовано 24 Июля 2016 (изменено) хотя бы разобрался из-за чего у меня такая ерунда происходила Попробуйте инициировать вашу "глобальну переменню" при её объявлении сразу радомнным значением, а не nil. А в фунции souls_died_armors_give_quest() рандомизацию уберите вообще. Эту переменную в Вашем случае можно вовсе сделать локальной для скрипта (не функции!), чтобы не засорять глобальную таблицу. Конечно это справедливо, если код, который Вы привели, действительно реальный, а не какой-то тестовый пример. И будет Вам счастье. --глобальная переменная для того чтобы фильтры заспавнились только в одном вертолете local FILTERS_PLACE=math.random(3) function souls_died_armors_give_quest() task_manager.get_task_manager():give_task("souls_died_armors_task") task_manager.get_task_manager():give_task("souls_died_armors_task_jup") task_manager.get_task_manager():give_task("souls_died_armors_task_zat") --task_manager.get_task_manager():give_task("souls_died_armors_task_zat2") --так как нельзя залезть на плато task_manager.get_task_manager():give_task("souls_died_armors_task_zat3") --[[ math.randomseed(os.time()) FILTERS_PLACE=math.random(3) --]] printf("FILTERS_PLACE= %s",FILTERS_PLACE) --news_manager.send_tip(db.actor, FILTERS_PLACE, nil, "seeker", nil, nil) end function searchingHeliJupiter(actor, npc) if xr_conditions.actor_in_zone(actor, npc, {"jup_b8_heli_4"}) then printf("FILTERS_PLACE= %s", FILTERS_PLACE) if FILTERS_PLACE==1 then db.actor:give_info_portion("soulsDiedArmorsHeliJupiterDone") db.actor:give_info_portion("soulsDiedArmorsHeliFounded") alife():create("dust_filter", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) alife():create("dust_filter", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) else db.actor:give_info_portion("soulsDiedArmorsHeliJupiterDone") news_manager.send_tip(db.actor, "no_filters2", nil, "seeker", nil, nil) end end end Делай рандомизацию непосредственно перед проверкой. Мысль безусловно верная, только фразу я бы сформулировал так: : "Делай рандомизацию непосредственно перед её использованием". Проверять можно когда угодно и где угодно, а вот её значение важно только в момент использования этой переменной Изменено 24 Июля 2016 пользователем Serge! Ссылка на комментарий https://www.amk-team.ru/forum/topic/11584-yazyk-lua-obschie-voprosy-programmirovaniya/page/59/#findComment-1028220
Graff46 623 Опубликовано 3 Августа 2016 Поделиться Опубликовано 3 Августа 2016 Я призадумался. Когда я начал изучать в ВУЗ'е вэб-программирование, то конечно же столкнулся с фреймворком "jQuery" в теории по этой библиотеке описывалось почему есть jQuery.js и jQuery_min.js. Дело все в представлении листинга "в одну строку" (Для Нотпад++ есть плагин JStool --> JS_min). Такое представление кода хоть и некрасива, но повышает скорость исполнения. Что если использовать эту ф-цию для критичных по времени участков кода в скриптах Сталкера? Ссылка на комментарий https://www.amk-team.ru/forum/topic/11584-yazyk-lua-obschie-voprosy-programmirovaniya/page/59/#findComment-1029973
Kirgudu 1 338 Опубликовано 3 Августа 2016 Поделиться Опубликовано 3 Августа 2016 (изменено) Сомнительное утверждение. Минимизация javascript кода имеет своей целью не повышение скорости исполнения, а повышение скорости загрузки скрипта с сервера на клиент за счёт уменьшения его размера. В случае обфускации - ещё и усложнение реверс-инжиниринга. И то и другое имеет слабое отношение к ускорению выполнения скрипта. Если требуется ускорить выполнение, лучше потратить свои усилия на оптимизацию кода, а не его минимизацию. Изменено 3 Августа 2016 пользователем Kirgudu 1 1 1 Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий https://www.amk-team.ru/forum/topic/11584-yazyk-lua-obschie-voprosy-programmirovaniya/page/59/#findComment-1029976
Dennis_Chikin 3 665 Опубликовано 3 Августа 2016 Поделиться Опубликовано 3 Августа 2016 Вообще-то стоит еще понимать разницу между интерпретируемым и компилируемым кодом. И помнить, что такое инлайн, и где он есть, а где его нет. P.S. Идея копировать строки при передаче в функцию - явно не гуманности ради была реализована. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий https://www.amk-team.ru/forum/topic/11584-yazyk-lua-obschie-voprosy-programmirovaniya/page/59/#findComment-1029992
Dennis_Chikin 3 665 Опубликовано 27 Августа 2016 Поделиться Опубликовано 27 Августа 2016 p = t[k] or def[k] Если нет ни того, ни другого, у p сохраняется старое значение. 1.006 "Международный" с "макронопатчем". 1 1 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий https://www.amk-team.ru/forum/topic/11584-yazyk-lua-obschie-voprosy-programmirovaniya/page/59/#findComment-1034363
Nazgool 251 Опубликовано 7 Октября 2016 Поделиться Опубликовано 7 Октября 2016 (изменено) @Dennis_Chikin, Ещё с момента публикации хотел спросить, - "И зачем это нужно в принципе?"Я к чему. Все уже давно привыкли, что если нет ни того ни другого, то будет nil. И когда я так напишу, то и буду ожидать что 'p' станет 'nil'-ом. А оно не станет. Такое многим не понравиться. Lua stalker-а и без этого сильно не предсказуема. Хотя-я-я. В этом же стиле. Так что можно. А-а-а. Чего пишу-то. Пишу любителям SciTE. Замутил тут одну штуку. Давно хотел, да плевал, а тут вот ""з`явилася нагода". В общем добавил в меню 'Tools" выбор разных версий lua и быстрое переключение на эти версии с изменением подсветки синтаксиса и т.д. Дело в том, что все актуальные версии для платформ x86 и x64 у меня есть, а вот для luajit 1.1.5 есть только одна. На x86 у меня работает, значит нет для x64 (я имею в виду бинарники). Может у кого-то завалялась? Другие версии JIT (1,1,6-1,1,8) не интересуют. Да, если кому-то это нужно в SciTE, то милости прошу. Доделаем как это будет нужно и в конце концов правильно. А то леплю тут как придется Изменено 7 Октября 2016 пользователем Nazgool Ссылка на комментарий https://www.amk-team.ru/forum/topic/11584-yazyk-lua-obschie-voprosy-programmirovaniya/page/59/#findComment-1041077
abramcumner 1 229 Опубликовано 7 Октября 2016 Поделиться Опубликовано 7 Октября 2016 @Nazgool, luajit 1.x.x был же только под x86. Другие платформы появились только в luajit 2. Ссылка на комментарий https://www.amk-team.ru/forum/topic/11584-yazyk-lua-obschie-voprosy-programmirovaniya/page/59/#findComment-1041082
Nazgool 251 Опубликовано 7 Октября 2016 Поделиться Опубликовано 7 Октября 2016 @abramcumner, Вот я и думаю, почему у меня есть все, а этой нет. Спасибо. Буду знать и не искать Ссылка на комментарий https://www.amk-team.ru/forum/topic/11584-yazyk-lua-obschie-voprosy-programmirovaniya/page/59/#findComment-1041083
Dennis_Chikin 3 665 Опубликовано 8 Октября 2016 Поделиться Опубликовано 8 Октября 2016 И когда я так напишу, то и буду ожидать что 'p' станет 'nil'-ом. А оно не станет. Такое многим не понравиться. А уж как я удивился, когда 5 лет работавший скрипт начал то чудеса выдавать, то вообще вылеты от сравнения таблицы с намбером... Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий https://www.amk-team.ru/forum/topic/11584-yazyk-lua-obschie-voprosy-programmirovaniya/page/59/#findComment-1041442
Zander_driver 10 348 Опубликовано 17 Октября 2016 Поделиться Опубликовано 17 Октября 2016 И чем дальше будут продвигаться успехи двиглоправов, тем больше там будет таких подводных камней сюрпризов, надо полагать? Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий https://www.amk-team.ru/forum/topic/11584-yazyk-lua-obschie-voprosy-programmirovaniya/page/59/#findComment-1043214
Карлан 1 050 Опубликовано 18 Октября 2016 Поделиться Опубликовано 18 Октября 2016 А уж как я удивился, когда 5 лет работавший скрипт начал то чудеса выдавать, то вообще вылеты от сравнения таблицы с намбером... Я точно помню, что тебе про это говорил еще когда ты со скриптом динамической погоды возился, у меня тогда он летал как фанера вот как-раз поэтому . У меня такое всегда дает nil, поэтому такие твои конструкции я тогда переписал на горячо тобою любимые cfg_get_string. Впрочем да, @Nazgool совершенно верно подметил про сталкерский луа, конкретно у нас есть абсолютно такой, наверное, пример который можно в учебники писать. Патерн есть один не нормальный, приведя его к нормальному виду луа радуется, а обычный сталкерский луа ругается. Опытным путем, установкой нового luajit (2.1.0), получена эта народная забава, патерн не работающий на каноничном luajit прекрасно заработал на новом, да еще как! То есть я веду к тому, что не стоит пытаться кого-то чем-то зацепить, но вот так вот есть и с этим ничего не поделать, логика работы действительно разная, причем как в явных моментах (исходя из официальной документации), так и в неявных., такой вот да, шарм сталкерского луа. Ссылка на комментарий https://www.amk-team.ru/forum/topic/11584-yazyk-lua-obschie-voprosy-programmirovaniya/page/59/#findComment-1043221
Kober(BRUC) 99 Опубликовано 14 Ноября 2016 Поделиться Опубликовано 14 Ноября 2016 (изменено) Добрый день. Есть переменная и таблица заполненная значениями. Размер таблицы 26 элементов.Мне нужно проверить равно ли значение переменной значению элементов таблицы. Проверить с помощью конструкции if. Элементов аж 26, мне нужно все элементы перебирать или есть какой-то более простой способ?На ум приходит только это: for i=1, #tbl_name do if (tbl_name[i] == variable_name) then -- Наши действия... -- Остановили цикл: break end end Изменено 14 Ноября 2016 пользователем Kober(BRUC) Ссылка на комментарий https://www.amk-team.ru/forum/topic/11584-yazyk-lua-obschie-voprosy-programmirovaniya/page/59/#findComment-1048764
Zander_driver 10 348 Опубликовано 14 Ноября 2016 Поделиться Опубликовано 14 Ноября 2016 Ну в данном случае, так и делается.В некоторых случаях, если заранее известно что надо будет искать определенный элемент таблицы, проверять есть ли такой или нету, можно записывать данные не в значения, а в ключи таблицы. Например: local tbl = {} tbl["text_1"] = true tbl["text_2"] = true if tbl.text_1 then -- Наши действия... end Плюс такой конструкции в отсутствии цикла, но это не всегда применимо, требуется изначально затачивать таблицу под такие действия. 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий https://www.amk-team.ru/forum/topic/11584-yazyk-lua-obschie-voprosy-programmirovaniya/page/59/#findComment-1048771
User_X.A.R26 261 Опубликовано 22 Ноября 2016 Поделиться Опубликовано 22 Ноября 2016 Элементов аж 26, мне нужно все элементы перебирать или есть какой-то более простой способ?Вот статейка, в которой рассказано об аналоге оператора switch в ЯП по типу C\C++\C#\etc. Возможно найдёшь в ней что-то полезное для себя 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/11584-yazyk-lua-obschie-voprosy-programmirovaniya/page/59/#findComment-1050465
Dennis_Chikin 3 665 Опубликовано 24 Января 2017 Поделиться Опубликовано 24 Января 2017 Помнится, когда-то давно была рубка по поводу string.*( s, ... ) vs. s:*( ... )Сегодня внезапно обнаружил, что for ss in s:*() пытается скорее получить что-то из s, чем из s:*(){2.0}Удивился. 1 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий https://www.amk-team.ru/forum/topic/11584-yazyk-lua-obschie-voprosy-programmirovaniya/page/59/#findComment-1062069
Kirgudu 1 338 Опубликовано 24 Января 2017 Поделиться Опубликовано 24 Января 2017 @Dennis_Chikin, local s = "test" for ss in s:gmatch("s") do print(ss) end ожидаемо возвращает "s". В чём подвох? Или не это имелось в виду? Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий https://www.amk-team.ru/forum/topic/11584-yazyk-lua-obschie-voprosy-programmirovaniya/page/59/#findComment-1062085
Dennis_Chikin 3 665 Опубликовано 24 Января 2017 Поделиться Опубликовано 24 Января 2017 (изменено) LUA какой ? Сталкеровский ? Судя по работающему print(ss) - скорее нет. Изменено 24 Января 2017 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий https://www.amk-team.ru/forum/topic/11584-yazyk-lua-obschie-voprosy-programmirovaniya/page/59/#findComment-1062087
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти