WinCap 293 Опубликовано 12 Февраля 2023 Поделиться Опубликовано 12 Февраля 2023 @Jekyll, ну... тогда, наверное, только перебором через pairs или ipairs, в зависимости от индексов таблицы. 1 S.T.A.L.K.E.R. CoP Objects (upd 10.04.24) Ссылка на комментарий
Kirgudu 976 Опубликовано 12 Февраля 2023 Поделиться Опубликовано 12 Февраля 2023 1 час назад, Jekyll сказал: local table = {1,2,3,4,5} (условно) math.max(table) - не работает (вылет - number expected, got table) local t = {1,2,3,4,5} local m = math.max(unpack(t)) 4 Инструмент Ссылка на комментарий
dsh 3 820 Опубликовано 12 Февраля 2023 Поделиться Опубликовано 12 Февраля 2023 (изменено) @Jekyll unpack может помочь, если я не путаю: math.max(unpack(table)) Могу в имени напутать. О, да уже тут ответили. Изменено 12 Февраля 2023 пользователем dsh 1 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Colder 12 Опубликовано 14 Февраля 2023 Поделиться Опубликовано 14 Февраля 2023 Как проветрить предметы в слоте? Скрытый текст local list_dev = { ["detector_simple"] = true, ["detector_advances"] = true, ["detector_elite"] = true, ["detector_svarog"] = true } function init_slot() if db.actor:item_in_slot(DETECTOR_SLOT) and list_dev[db.actor:item_in_slot(DETECTOR_SLOT):section()] then return true else return false end end Не работает Ссылка на комментарий
Norman Eisenherz 227 Опубликовано 14 Февраля 2023 Поделиться Опубликовано 14 Февраля 2023 Лучше рюкзак постирать Код с виду правильный, хотя и несколько перемудреный. Номер слота указан верно? Значение секции детектора читается? 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Colder 12 Опубликовано 14 Февраля 2023 Поделиться Опубликовано 14 Февраля 2023 @Norman Eisenherz да, читаеться 1 Ссылка на комментарий
Norman Eisenherz 227 Опубликовано 14 Февраля 2023 Поделиться Опубликовано 14 Февраля 2023 Тогда предположу, что нет вызова самой функции init_slot(…) Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Colder 12 Опубликовано 15 Февраля 2023 Поделиться Опубликовано 15 Февраля 2023 (изменено) Подскажите в чем проблема? Имею такую функцию: Скрытый текст function spawn_meat(victim, who) local meat_position = victim:position() local meat_direction = victim:direction() meat_direction = vector_rotate_y(meat_direction, math.random(-180, 180)) meat_position.x = meat_position.x + meat_direction.x * random_float(0.5, 0.7) meat_position.y = meat_position.y + meat_direction.y + 1 meat_position.z = meat_position.z + meat_direction.z * random_float(0.5, 0.7) local monster_meat = monster_to_meat[victim:clsid()] for i = 1, math.random(1,3) do alife():create(monster_meat, meat_position, victim:level_vertex_id(), victim:game_vertex_id()) end end Спавн itema по кругу трупа мутантов. Но они спавняться в одно стопке. в чем проблема? https://disk.yandex.ru/i/-miHtOu9MKTVhA Изменено 15 Февраля 2023 пользователем Colder Ссылка на комментарий
ted.80 223 Опубликовано 15 Февраля 2023 Поделиться Опубликовано 15 Февраля 2023 4 часа назад, Colder сказал: for i = 1, math.random(1,3) do эту строчку перенеси в самое начало функции 1 Ссылка на комментарий
Colder 12 Опубликовано 2 Марта 2023 Поделиться Опубликовано 2 Марта 2023 Как правильно прочитат рандомно название оружия или где то можно подсмотреть? Пробовал так: Скрытый текст local weapon_classes = { [clsid.wpn_svu] = true, [clsid.wpn_svu_s] = true, [clsid.wpn_usp45] = true, [clsid.wpn_usp45_s] = true, [clsid.wpn_val] = true, [clsid.wpn_val_s] = true, [clsid.wpn_vintorez] = true, [clsid.wpn_vintorez_s] = true, [clsid.wpn_walther] = true, [clsid.wpn_walther_s] = true } function irWeapon(object, class_id) local id = class_id or get_clsid(object) return id and weapon_classes[id] end function show_news() if irWeapon(item) then local name = system_ini():r_string(item:section(), "inv_name") local n = name[math.random(#name)] local ww = gts(n) local news_text = "%c[ui_gray_1]".. ww db.actor:give_game_news(news_text, "ui\\cop\\ui_cop_iconstotal", Frect():set(415,0,83,47), 0, 5000) end end но ничего не приходит. Ссылка на комментарий
WinCap 293 Опубликовано 2 Марта 2023 Поделиться Опубликовано 2 Марта 2023 1 час назад, Colder сказал: ничего не приходит. Может так: function show_news(item) 1 S.T.A.L.K.E.R. CoP Objects (upd 10.04.24) Ссылка на комментарий
Colder 12 Опубликовано 2 Марта 2023 Поделиться Опубликовано 2 Марта 2023 @WinCap Нет. Не помогло. Ссылка на комментарий
WinCap 293 Опубликовано 2 Марта 2023 Поделиться Опубликовано 2 Марта 2023 50 минут назад, Colder сказал: Не помогло. Ладно... Пойдем длинным путём... В функции show_news переменная item откуда берётся? S.T.A.L.K.E.R. CoP Objects (upd 10.04.24) Ссылка на комментарий
Colder 12 Опубликовано 2 Марта 2023 Поделиться Опубликовано 2 Марта 2023 (изменено) @WinCap повесил на on_trade(item, sell_bye, money) Изменено 2 Марта 2023 пользователем Colder Ссылка на комментарий
mole venomous 3 006 Опубликовано 2 Марта 2023 Поделиться Опубликовано 2 Марта 2023 2 часа назад, Colder сказал: Как правильно прочитат рандомно название оружия Вообще не понял... Может, стоит для начала рандомно определить оружие? Здесь могла быть ваша реклама. Ссылка на комментарий
Zander_driver 10 166 Опубликовано 2 Марта 2023 Поделиться Опубликовано 2 Марта 2023 20 минут назад, mole venomous сказал: Может, стоит для начала Адекватно сформулировать вопрос Чтобы хотя бы было понятно, чего хочется достичь, и откуда что берется на данный момент. 3 часа назад, Colder сказал: local n = name[math.random(#name)] local ww = gts(n) Я что-то не припоминаю чтобы для строк в Lua применялся оператор #. Что тут должно получиться, одна рандомная буква из названия? Загадочная функция gts не приведена. Судя по тому что оно не вылетает на #строка, подозреваю что функция show_news с заключенным в ней блоком вообще не вызывается. 3 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Norman Eisenherz 227 Опубликовано 2 Марта 2023 Поделиться Опубликовано 2 Марта 2023 4 hours ago, Zander_driver said: чтобы для строк в Lua применялся оператор # Длина строки успешно читается… Есть какие-то особые случаи? Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Zander_driver 10 166 Опубликовано 3 Марта 2023 Поделиться Опубликовано 3 Марта 2023 7 часов назад, Norman Eisenherz сказал: особые случаи? string.len Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Norman Eisenherz 227 Опубликовано 3 Марта 2023 Поделиться Опубликовано 3 Марта 2023 В каких случаях #str даст результат, отличный от string.len(str)? Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Kirgudu 976 Опубликовано 3 Марта 2023 Поделиться Опубликовано 3 Марта 2023 Оператор #, кстати, вполне успешно вернёт длину строки, но это ничему не поможет. Предположим, что загадочная функция gts - это game.translate_string. Предположим даже, что функция show_news действительно вызывается, но тогда непонятно, как в неё передаётся переменная item, ведь show_news объявлена за пределами on_trade, а область видимости переменной item - внутри on_trade. Скорее всего, как писали выше, передавать item в функцию таки необходимо. Но и это ещё не всё. local name = system_ini():r_string(item:section(), "inv_name") - здесь переменной name присвоится строка. Одна строка. #name отработает и даст длину, math.random(#name) - случайный индекс в пределах длины строки. Однако name[math.random(#name)] вернёт nil, поскольку получить один символ из строки посредством обращения к индексу в Lua нельзя - у символов в строках просто нет индекса. Для этого необходимо использовать функцию string.sub. Но даже если бы удалось получить символ, то после применения загадочной local ww = gts(n) в переменную ww попадёт ровно тот же символ без всякого перевода. Ибо вряд ли в xml с текстами найдутся записи, идентификаторами которых служат одиночные символы латинского алфавита... 2 1 Инструмент Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти