-
Число публикаций
1 337 -
Регистрация
-
Последнее посещение
-
Дней в топе
17 -
AMKoin
17,401 [Подарить AMKoin]
Весь контент пользователя naxac
-
Система ALife. Логика поведения игровых объектов
naxac ответил на тему форума автора Allender в Скрипты / конфиги / движок
@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)} -
Пардон, писал в спешке. Выше функции надо добавить:local tmp = {} Это таблица для хранения индексов уже отправленных сообщений. И в самой функции исправить: for a=1, #news do if tmp[a] == nil then t[#t+1] = a end end
-
@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
-
@Max_Raf, классы артефактов и оружия.
-
Поэтому, чтобы не ждать , можно просто трансферить предмет при выходе его в онлайн из ящика в него же - это и делает функция, которую написал @dsh. Но тут тоже есть одно "но" - она предназначена для спавна в клиентских InventoryOwner'ов, так что придется дождаться выхода в онлайн заспавненного тайника. А вообще можно - самое простое - добавить ящику custom_data в секцию, в файле которой прописать в секции spawn нужные предметы.
-
@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 первым аргументом передается таблица (последовательность), вторым - индекс, по которому надо удалить поле со смещением последующих индексов. Ты же передаёшь серверный объект и строку, для чего это вообще делается - не ясно.Почитай документацию по Луа.
-
@St-Himik, в скрипте actor_menu находятся функции, которые срабатывают при открытии/закрытии различных окон интерфейса - по названию понятно, какая из них за что отвечает.
-
@Romann, game_object:get_ammo_in_magazine()
-
Язык Lua. Общие вопросы программирования
naxac ответил на тему форума автора Malandrinus в Скрипты / конфиги / движок
@Kober(BRUC), не знаю, но я делаю каждый раз на загрузке, "на всякий случай")) -
Язык Lua. Общие вопросы программирования
naxac ответил на тему форума автора Malandrinus в Скрипты / конфиги / движок
@Kober(BRUC), вызови выше math.randomseed(os.time()) -
@PTB, name - имя таймера, delay - время в секундах, parametres - параметры, которые будут переданы в функцию срабатывания таймера.
-
@Пруткоф, это аргумент timeout.
-
@AndrewMor, будет.
-
Всем привет. Нужна папка scripts из OGSE 0.6.9.3 Final 2.11. Поделитесь пожалуйста.
-
@AndrewMor, если при спавне предмета в инвентарь объекта объект находится в онлайне, то нужно либо поместить объект в оффлайн до выхода в онлайн заспавненного предмета, а через небольшое время вернуть обратно в онлайн. Либо после выхода в онлайн предмета сделать трансфер его из объекта в тот же объект - как-бы сымитировать, что он там не сам появился, а его туда положили. Такой глюк движка... @dsh, забыл написать функцию fix_spawn_item_in_inv - сам каллбэк, в котором происходит трансфер.
-
@Romann, в чистой игре нет такого.
-
А если без левых функций, то можно так:
-
Продолжаю ковыряться в ОП-2, и чем дальше, тем страшнее)) В xrs_armor нашёл причину, по которой эксклюзивные неписи переодеваются, несмотря на то, что записаны в таблице как эксклюзивные. В ОП-2 сделали костыль от этого, а надо было всего лишь исправить функцию protected_items.get_obj_name: она для серверного объекта всегда возвращает его имя, в то время, как для всех заспавненных скриптом нужно возвращать секцию.
-
Язык Lua. Общие вопросы программирования
naxac ответил на тему форума автора Malandrinus в Скрипты / конфиги / движок
Конечно нет. Одной переменной можно присвоить только одно значение.В твоём случае можно просто написать функцию для спауна предмета в инвентарь актера, и спаунить все через неё: 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. -
Объединенный Пак 2 (ОП-2)
naxac ответил на тему форума автора Murarius в Объединенный Пак (ОП, ОП-2, ООП)
Похоже на криво установленное спавн-меню. -
@ins33, тоже с таким сталкивался. Сначала пересобери графы для каждой локации, потом собирай общий граф.
-
@Space.Marine, нет, это просто дебаговые сообщения.
- 815 ответов
-
- 1
-
- ai additions
- ai schemes
-
(и еще 1 )
Отмечено тегом:
-
Смотри, что в этой строке вызывается и исправляй.P.S.: при чем тут движок?
-
@N.E.M.E.S.I.S., в секцию новых патронов добавь: belt = true
-
@Kober(BRUC), там вроде пара рестрикторов должна стоять: один - закрывает дверь в бункер, второй - выдаёт задание "Взять спецзадание у торговца", если после АТП во время диалога сразу не взял задание на документы с Агропрома.
УЧИМСЯ МОДДИНГУ
ИГРАЕМ В МОДЫ НА ТЧ
ИГРАЕМ В МОДЫ НА ЧН И ЗП
- [ЧН] OGSM CS 1.8 CE Fixes
- [ЧН] HARDWARMOD 3.2
- [ЗП] The Long Road
- [ЧН] New vision of War
- [ЧН] Old Good Stalker Mod - Clear Sky
- [ЗП] Unofficial Patch
- [ЗП] Смерти вопреки
- [ЗП] Контракт на хорошую жизнь
- [ЗП] Shoker Weapon Mod 2.1
- [ЗП] Hardcore pack for SGM 2.2
- [ЗП] Контракт Синдиката
- [ЗП] Клондайк 2.0
- ...и другие моды
ПОЛЕЗНОЕ И РАЗНОЕ