Перейти к контенту

ColR_iT

Жители
  • Число публикаций

    678
  • Регистрация

  • Последнее посещение

  • Дней в топе

    9
  • AMKoin

    75 [Подарить AMKoin]

Весь контент пользователя ColR_iT

  1. Struck, конкретно в точку (т.е. три координаты на уровне) не получится. Указывать куда смотреть НПС при секции meet можно только посредством параметра victim который поддерживает только три значения (цитата с wiki): P.S. Мог бы и прочитать чуть более двадцати строк.
  2. С Днём Твоего Рождения!

  3. ColR_iT

    X-Ray extensions

    Viнt@rь, последние изменения можешь увидеть здесь: >>Click Me<<. Скачивать, а точнее обновлять ревизию нужно с помощью программы TortoiseSVN.
  4. volazar, не очень ясно с "ездит", но всё же... Анимация press состоит из двух частей, для адекватной её работы попробуй прописать её не в remark-e, а в точек пути, где НПС стоит и нажимает кнопку, вот так: wp00|a=press|t=0|sigtm=pressed А в самой схеме переход на другую сделай через on_signal, вот так: on_signal = pressed | другая_схема. Естественно это должно происходить уже не в remark, а в какой нибудь другой, walker например.
  5. ColR_iT

    gamemtl.xr shaders.xr lanims.xr и формат ppe

    Хемуль36рус, могу посоветовать только это: >>Click Me<<. Ну и то, что предложил amik.
  6. vasa007 Во-первых, то, что ты "запихнул" под спойлер, не то, чтобы сложно читается, а вообще сложно воспринимается. Поэтому в следующий раз изволь удосужится привести свой же вопрос в читабельный вид. Во-вторых, в чистом ЗП схема bodyguard отсутствует.
  7. Dennis_Chikin, извиняюсь, что не совсем в тему, но по первому вопросу есть и другой способ вернуть из строки - числа.
  8. Эх, будет мне наукою... Как оказалось метод start() класса profile_timer не обнуляет значение, а продолжает считать. Вот ПРАВИЛЬНЫЕ результаты эксперимента:
  9. Ложка дёгтя в бочку мёда... Попытался вычислить время работы обоих итераторов в игре (ТЧ 1.0006 + X-Ray extension), вот результаты работы:
  10. Shredder Дык, а table.foreach ничем не отличается от того же итератора pairs. Для foreach передается два параметра: первый таблица, второй - функция, в функцию же автоматом передаётся два значения: ключ и значение этого ключа. И так происходит для всей таблицы, т.е. в функцию передаётся поочерёдно все ключи указанной таблицы. Абсолютно тоже самое происходит и с конструкцией вида: for key, value pairs(table) do -- здесь по сути тело функции, которая передавалась вторым параметром для foreach. end Всё также пробегаемся по всем ключам таблицы и если ничего не вернули (отсутствует оператор break), то перебирать будем всю таблицу. P.S. А к стати table.foreach в игре осталась? Вроде как её и table.foreachi нет с какой-то версии lua. Сейчас глянул в 5.0 ещё были, в 5.1 уже исключили из стандартного набора. В игре какая версия используется? Ещё заглянул в _G в 1.0006. Там функция foreach ещё есть. Но в любом случае - не вижу смысла её использовать...
  11. Shredder, конкретного оператора нет, но это можно с имитировать. for i=1, 3 do if i ~= 2 then print (i) end end Результат понятен - пропускается цикл со значением счётчика равному двум. Конечно, это далеко не универсальный вариант, но он работает.
  12. Viнt@rь, возможно я не до конца понял твою мысль, но точно можно сделать так: tbl = {} for i=1, 3 do tbl["vName_"..i] = "vName_"..i end
  13. ColR_iT

    Скриптование

    Такой вопрос: как работает класс profile_timer? Считает ли он время выполнения посторонней функции при вызове её из измеряемого участка кода? Например: local timer = profile_timer() timer:start() -- здесь код... -- здесь вызов функции -- здесь опять код... timer:stop() Будет ли учтено время работы вызываемой функции?
  14. Кто подскажет, для чего используются функции в файле game_stats.script, а именно: update_task, update_take_item, update_drop_item, money_trade_update, money_quest_update?
  15. AndreySol, скажем так - это некоторая особенность языка. Если совсем поверхностно и ты знаком хотя бы с основами ООП, то обращение к элементам таблицы через квадратные скобки - это обращение как к элементам таблицы, а через точку - как к структуре. Если глубже - тогда тебе читать документацию по Lua. P.S. Вот такие две записи эквивалентны: tbl = {} tbl["index1"] = 1 tbl.index1 = 1 Обе эти записи обозначают, что в таблицу tbl записан новый элемент равный числу 1, под индексом "index1". Есть и другие особенности применения точки для таблиц. Например в игре, все функции что ты используешь - это по сути одна большая таблица, если быть точным, то это таблица _G. И когда ты в какой-нибудь функции пишешь что-то вроде такого: file_name.function_name() Это означает, что нужно из таблицы file_name найти элемент function_name, а поскольку это функция, то ты вызываешь функцию. P.P.S. Буду рад любой критике.
  16. С Днём Твоего Рождения!

  17. AndreySol, это значит, что таблица new_table будет иметь следующий вид: new_table = { [key1_name] = { ["param1"] = {} } }
  18. В целом разобрался, спасибо. Ещё вопрос: есть ли принципиальная разница между использованием tbl[index] и tbl.index, возможно в скорости работы или ещё какие-нибудь нюансы?
  19. irish_rebel, дело в том, что функция run_talk_dialog запускает только окно диалога, если не остановить НПС скриптом - он пойдёт дальше как и шёл, ну если он стоял, то так и будет стоять. Но даже и не в этом твоя проблема. Проблема в том, что в игре строго определено расстояние на котором возможен диалог, т.е. тогда когда будет видно это самое диалоговое окно, а это всего лишь около трёх метров. Поэтому тебе нужно дополнительно проверять расстояние от актора до собеседника, приблизительно так: if npc:position():distance_to_sqr(db.actor:position()) < 6 then
  20. L.I.O.N.L.I.N.E Если не секрет - покажи, каким образом ты через логику "заставил" бегать НПС за игроком? Вот здесь, если можно, поподробнее разъясни ситуацию, что конкретно тебе нужно сделать?
  21. RDS, по всей видимости ты не правильно понял Magnus1. Задания, которые отображаются в ПДА расписаны в файлах config\gameplay\tasks_xxx.xml и их структура не позволяет появление отдельного подзадания (словами Magnus1: "... часть квеста ...") при определённых условиях. Если быть точным условие на самом то деле есть - это выполнение предыдущего подзадания. "Приостановить" квест в ПДА, т.е. чтобы задание не завершилось, но и подзадание не появилось - не получится. Magnus1, как вариант, могу посоветовать разделить твоё задания на два.
  22. Боюсь, что последующие вопросы не особо связаны какой-либо идеей, разве что они относятся к Lua. А вопрос вроде бы достаточно адекватен: как выделяется память под таблицы? Например для строки - это равно количество символов в строке плюс один байт.
  23. Накопилось много вопросов по Lua в целом, буду задавать по порядку... Как выделяется память для таблиц? Подозреваю, что на каждый элемент таблицы, плюс если это хеш-таблица, то ещё и на ключи. Так ли это?
  24. ur3icf В пределах локации можешь посмотреть функции у проводников, между локациями - при первом переходе на болота у местного проводника, который тебя доводит, якобы до края болот, а там уже своим ходом.
  25. С вашего позволения продолжу вопрошать про кислотные дожди. Каким образом будут реализованы укрытия, как для ГГ так и для НПС? Если это не секрет конечно.
×
×
  • Создать...