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

naxac

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

    1 337
  • Регистрация

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

  • Дней в топе

    17
  • AMKoin

    17,401 [Подарить AMKoin]

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

  1. @AKKK1, наверно как-то так: function has_hours_interval(actor, npc, p) local t1, t2 = unpack(p) if not (t1 and t2) then return false end local h = level.get_time_hours() return h>=t1 and h<t2 endНу, еще дописать обработку, если интервал из разных суток берется (например, между 20 и 3 часами).В логике будет так: {=has_hours_interval(4:7)}
  2. Пардон, писал в спешке. Выше функции надо добавить:local tmp = {} Это таблица для хранения индексов уже отправленных сообщений. И в самой функции исправить: for a=1, #news do if tmp[a] == nil then t[#t+1] = a end end
  3. @Rozben, чтобы генератор псевдослучайных чисел нормально заработал, надо где-нибудь на загрузке вызвать math.randomseed(device():time_global()) Либо os.time().. А чтобы не повторялось, можно сделать что-то вроде этого: function update_spam() local t = {} for a=1, #news do if tmp[i] == nil then t[#t+1] = a end end if #t == 0 then t = news tmp = {} end local i = t[math.random(#t)] tmp[i] = true actor:give_game_news(news_caption, news[i], news_icons[i], 0, 10000) xr_sound.set_sound_play(actor:id(), "pda_alarm") end
  4. @Max_Raf, классы артефактов и оружия.
  5. Поэтому, чтобы не ждать , можно просто трансферить предмет при выходе его в онлайн из ящика в него же - это и делает функция, которую написал @dsh. Но тут тоже есть одно "но" - она предназначена для спавна в клиентских InventoryOwner'ов, так что придется дождаться выхода в онлайн заспавненного тайника. А вообще можно - самое простое - добавить ящику custom_data в секцию, в файле которой прописать в секции spawn нужные предметы.
  6. naxac

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

    @ins33, а какая у тебя таблица? Непрерывная последовательность или ассоциативный массив? И вообще как-то странно все у тебя и непонятно. В первом случае можно сделать так: for i, v in ipairs(tbl) do if v:find("_delete") then table.remove(tbl, i) end endВо втором - так (если ключи - это строки) for k in pairs(tbl) do if k:find("_delete") then tbl[k] = nil end end Для table.remove первым аргументом передается таблица (последовательность), вторым - индекс, по которому надо удалить поле со смещением последующих индексов. Ты же передаёшь серверный объект и строку, для чего это вообще делается - не ясно.Почитай документацию по Луа.
  7. @St-Himik, в скрипте actor_menu находятся функции, которые срабатывают при открытии/закрытии различных окон интерфейса - по названию понятно, какая из них за что отвечает.
  8. naxac

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

    @Romann, game_object:get_ammo_in_magazine()
  9. @Kober(BRUC), не знаю, но я делаю каждый раз на загрузке, "на всякий случай"))
  10. @Kober(BRUC), вызови выше math.randomseed(os.time())
  11. naxac

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

    @PTB, name - имя таймера, delay - время в секундах, parametres - параметры, которые будут переданы в функцию срабатывания таймера.
  12. @Пруткоф, это аргумент timeout.
  13. naxac

    Ищу файлы / моды / аддоны

    Всем привет. Нужна папка scripts из OGSE 0.6.9.3 Final 2.11. Поделитесь пожалуйста.
  14. @AndrewMor, если при спавне предмета в инвентарь объекта объект находится в онлайне, то нужно либо поместить объект в оффлайн до выхода в онлайн заспавненного предмета, а через небольшое время вернуть обратно в онлайн. Либо после выхода в онлайн предмета сделать трансфер его из объекта в тот же объект - как-бы сымитировать, что он там не сам появился, а его туда положили. Такой глюк движка... @dsh, забыл написать функцию fix_spawn_item_in_inv - сам каллбэк, в котором происходит трансфер.
  15. naxac

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

    @Romann, в чистой игре нет такого.
  16. naxac

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

    А если без левых функций, то можно так:
  17. Продолжаю ковыряться в ОП-2, и чем дальше, тем страшнее)) В xrs_armor нашёл причину, по которой эксклюзивные неписи переодеваются, несмотря на то, что записаны в таблице как эксклюзивные. В ОП-2 сделали костыль от этого, а надо было всего лишь исправить функцию protected_items.get_obj_name: она для серверного объекта всегда возвращает его имя, в то время, как для всех заспавненных скриптом нужно возвращать секцию.
  18. Конечно нет. Одной переменной можно присвоить только одно значение.В твоём случае можно просто написать функцию для спауна предмета в инвентарь актера, и спаунить все через неё: function spawn_item_in_inv(section) return alife():create(section, vector():set(0, 0, 0), 0, 0, 0) endПотом, соответственно: function med() spawn_item_in_inv("bandage") spawn_item_in_inv("medkit") endP.S.: в функции везде нули, т.к. при спавне в инвентарь координаты значения не имеют. Последний ноль - id актера, он всегда равен 0.
  19. Похоже на криво установленное спавн-меню.
  20. naxac

    [SoC] Вопросы по SDK

    @ins33, тоже с таким сталкивался. Сначала пересобери графы для каждой локации, потом собирай общий граф.
  21. naxac

    AI additions

    @Space.Marine, нет, это просто дебаговые сообщения.
  22. Смотри, что в этой строке вызывается и исправляй.P.S.: при чем тут движок?
  23. naxac

    Lost Alpha - Правки и модификации

    @N.E.M.E.S.I.S., в секцию новых патронов добавь: belt = true
  24. naxac

    [SoC] Вопросы по SDK

    @Kober(BRUC), там вроде пара рестрикторов должна стоять: один - закрывает дверь в бункер, второй - выдаёт задание "Взять спецзадание у торговца", если после АТП во время диалога сразу не взял задание на документы с Агропрома.
×
×
  • Создать...