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

ins33

Проверенные
  • Число публикаций

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

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

  • AMKoin

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

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

  1. ins33

    Магазинное питание оружия

    Подскажите, как НПС дать заряженный ствол скриптом, или полный магазин. А то бедолага бегает с АК и перезарежеатся после первого выстрела. Ствол даю так: local npc = alife():create("wpn_ak74_fake", npc:position(), npc:level_vertex_id(), npc:game_vertex_id(), npc:id())
  2. ins33

    Dream Reader Dangerous Area

    @mutabor_93, Все известные вылеты были вылечены уже давно. Конкретно в вашем случае могу посоветовать поставить родной ui_main_menu.script из ТЧ, или скачайте и установите все патчи.
  3. Подскажите, есть ли возможность скриптом проверить работоспособность графпоинтов на всех уровнях не заходя на них?
  4. @Kirgudu, Да, это таймеры. Вообще то, я сильно удивился, когда начались эти бардаки. Т.к. до сборки спавна в сдк, всё работало. Забив на: lua_helper:fGet_IniSection:ini=[<userdata>],NOT_found_Section=[levels],Type=[table]:<Error!> lua_helper:fGet_IniSection:ini=[<userdata>],NOT_found_Section=[levels_underground],Type=[true]:<Error!> lua_helper:Correct_Max_idLevelVertex:=[594270]=>[627038](+32768), Map(1)=[l01_escape] :<Info!> пошёл дальше, а это сек 5-10 в игре. Начались вылеты по attempt to index field 'actor' (a nil value) К примеру из магазинного питания: Потом на mob_home.script, затем mob_alife_mgr.script понимая, что это не совсем верно, сделал проверку во всех скриптах на которые были вылеты if actor then В итоге добрался до вылета, который ругался на _g.script, на строчку exit(). Что дальше делать я не знаю... Тут я решил проверить модули на старой версии all.spawn-а, как и предполагалось, всё работает. Соответственно дело в кривой сборке спавна. В соседнем форуме, человек столкнулся с подобной проблемой: Вроде всё просто, да и лечение есть, но мне так и не удалось найти ф-ию parse_ini_section_to_array, и соответственно я остался без нужного вылета с конкретной ошибкой. Помогите найти ошибку. П.С. На днях мне впервые удалось собрать спавн в сдк, и на сколько правильно он собран, мне сложно сказать. Проверить его без модулей сложновато, у меня многое на них уже повешено. П.П.С. А что именно говорит эта строчка, может тут есть подсказка? lua_helper:Correct_Max_idLevelVertex:=[594270]=>[627038](+32768), Map(1)=[l01_escape] :<Info!> Может кордон надо смотреть? Хотя и тут не понятно, что именно надо искать.
  5. ins33

    Строй-bat

    Подскажите, какой батник сможет сам найти в *\X-Ray_SDK\level_editor\gamedata\levels\ все файлы: level.ai, level.graph, level.gct.raw а затем скопировать их в *\gamedata\levels\ при этом самостоятельно создавая папки уровней с исходными именами.
  6. При подключении новых таймеров от Artos-a, вдруг сталкнулся с этим: Если в actor_binder:reinit()добавляю: --/#+# [lua_helper] ------------------------------------------------ if event then event("actor_stor"):once(true):trigger() --/#!#> событие: инициализация 'storage' актора elseif lua_helper.Init_ActorPStor then lua_helper.Init_ActorPStor() end --/< --------------------------------------------------------------- То при проверке подключения в логе пишется это: lua_helper:fGet_IniSection:ini=[<userdata>],NOT_found_Section=[levels],Type=[table]:<Error!> lua_helper:fGet_IniSection:ini=[<userdata>],NOT_found_Section=[levels_underground],Type=[true]:<Error!> lua_helper:Correct_Max_idLevelVertex:=[594270]=>[627038](+32768), Map(1)=[l01_escape] :<Info!> "levels_underground" в уровнях нет. Без этого: if event then event* в логе: TEST_MODULES::>[lua_helper]_FAILURE!_Result=[<NOT_arg!>]lua_helper module was not initialized. Please check 'actor_binder:__init' function in bind_stalker.script module. TEST_MODULES::>[lua_extension]_SUCCESS! TEST_MODULES::>[m_netpk]_SUCCESS! TEST_MODULES::>[se_stor]_SUCCESS! TEST_MODULES::>[m_timers]_SUCCESS! actor_binder:__init в ридми подключения не упоминается.
  7. Подскажите, у амк2 есть исправление поведения нпс во время боя или когда враг рядом. Заметил, что если один нпс в атаке ГГ, который спрятался за углом, то второй,третий и т.д. могут спокойно пойти обыскивать трупы. Если есть такое, дайте ссылку.
  8. ins33

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

    Склеил все уровни графпоитами и переходами, переместил\удалил спавн элементы находящиеся не на AI сетке. Короче, исправил всё что было в логах компилятора. Собираю game.graph @2588\xrai -m Затем all.spawn @2588\xrai -no_separator_check -noverbose -s Закинул game.graph, all.spawn (на выходе компилятора он был predbannik.spawn) в мод. И игра крешится без лога в момент создания новой игры. А точнее через мгновение после выбора сложности. Потом добавил все уровни из сдк в геймдату мода. Ситуация не изменилась. Подскажите, в чём может быть причина, и приблизительный алгоритм выявления\исправления данной проблемы. П.С. Могу предположить, где могут быть ошибки? Но предполагаю, что они не критичны: 1) При сборке AI сетки, на некоторых локах в логе выскакивало, что-то типа: * New phase started: Verifying level graph AI-map is NOT valid : Node 168035[387.099976][1.280500][33.600006] cannot be reached from the node 0[-72.099998][-0.002344][-244.299988] Verifying level gamedata\levels\l12_stancia\ completed Это не исправлял, т.к. сетку из мода менять не собираюсь. 2) Сброрку произвожу с правленным se_zones.script: function is_single_player_game() if not editor() then -- add if (_G.alife == nil) then return (true) end if (alife() ~= nil) then return (true) end if (_G.IsGameTypeSingle == nil) then return (true) end if (IsGameTypeSingle() == true) then return (true) end return (false) end -- add end Без неё в лог добавляются 4 строчки: ! [LUA] 0 : [C] [C](-1) : ! [LUA] 1 : [Lua] gamedata\scripts\se_zones.script(7) : is_single_player_game ! [LUA] 2 : [Lua] gamedata\scripts\se_zones.script(53) : * trying to access variable alife, which doesn't exist, or to load script alife.script, which doesn't exist too П.П.С. На 3 локах не было light, добавил по одному на каждую. Glow не ставил. Кстати, а, как до этого, кто-то смог сделать make game без light-a? Решил расспаковать all.spawn...
  9. Как вариант, можешь заспавнить невидимку с нужным диалогом.
  10. Может не совсем в тему, но на странице мода мне не ответили, по этому спрошу тут. В магазинном питание оружия писали о баге, что через какое то время игры магазин заполняется одним патроном. По моим наблюдениям это не совсем так. Такой баг происходит если остановить зарядку ЛКМ. пока магазин не заполнен, и потом остальные магазины заполняются до того же объёма, что и не дозаряженный. Лечится это дропом кривого магазина. Но это, как то не правильно. Поскажите, этот баг кто нибудь исправил? Или может подскажите в каком месте искать причину этого глюка.
  11. @Kober(BRUC), Почитай "функция разрешения колбеков" в xray-extensions - list_of_fixes.wiki Подскажите, как остановить цикл: for a, b in pairs(tbl) do for c, d in pairs( do if d == osect then -- если условие не выполнено, то идём дальше todo elseif d ~= osect then -- если условие выполнено, то todo выполняется 6 раз, а надо один! todo_2 log1("todo_2)") Скажите, я правильно написал второе условие
  12. @Kondr48, . Посмотрите первый и и второй вариант. в них и есть суть вопроса.
  13. Вызываю ф-ию "test" три раза, с интервалом 3 сек. В иоге в псторе записано "tt_1" "tt_2" "tt_3" И запускаются три таймера "tt_1" "tt_2" "tt_3" function test(tim) if tim==nil then tim = "" end local a=1 while db.storage[db.actor:id()].pstor["tt_"..a] do a=a+1 if a>10 then return false end end WritePstor("tt_"..a, tim) start_real_timer(15, "test.start"):set_name("tt_"..a) end В момент срабатывания первого таймера переменная а = 1 Вариант 1 function start() for a=1,10,1 do -- преребираем всё if timer_exits("tt_"..a) then -- в данном примере пустая проверка, т.к. она всегда вернёт true db.actor:give_info_portion("porticion"..a) -- выдаст все поршни от porticion1 до porticion10 ClearPstor("tt_"..a) -- сотрёт все записи в пстор tt_ get_timer("tt_"..a):remove() -- и удалит все таймеры tt_ end end end Вариант 2 function start() for m=1,10,1 do local a = math.min(1, m) -- если добавить эту строчку то а будет равна 1 и получится: if timer_exits("tt_"..a) then -- если "tt_1" тогда db.actor:give_info_portion("porticion"..a) -- выдадим поршень porticion1 ClearPstor("tt_"..a) -- сотрёт запись в пстор tt_1 get_timer("tt_"..a):remove() -- и удалит таймер tt_1 end end end По идеи, почти то что надо. Но, при повторном срабатывании таймера, где ..a уже будет равна 2 сработает затык, т.к. local a = math.min(1, m) -- всегда вернёт 1 Но нам то надо получить 2 чтобы прошла проверка if timer_exits("tt_"..a) then -- гдеа должна быть равна 2 и заодно выдать поршень porticion2 db.actor:give_info_portion("porticion"..a)-- где а тоже должна быть 2 Суть вопроса думаю ясна. Но на всякий уточню. Подскажите, как бы сделать, так, что бы при срабатывании таймера..1, продолжали работать остальные таймеры. Тут поршни приведенгы в качестве примера действия на срабатывание таймеров. Вопрос не в поршнях! По идеи, надо менять эту строчку local a = math.min(1, m) -- всегда вернёт 1 ,но я не могу сообразить как это сделать.
  14. ins33

    Магазинное питание оружия

    Выше писаи о баге, что через какое то время игры магазин заполняется одним патроном. Это не совсем так, такой баг происходит если остановить зарядку ЛКМ. Этот баг решён?
  15. Exit\Run.После изменения конфигов игра должна их прочитать. В случае с логикой и торговлей достаточно Save\Load-а, для остальных правок необходимо выйти из игры. П.С. Есть движковая правка которая читает все конфиги при save\loade, но из-за скорости загрузки это подходит только для разработки. time_factor устанавливает скорость течения времени в игре относительно реального.ф-ия set_time_factor = time_factor +\- number изменяет скорость течения времени в игре.
  16. on_info = {=dist_to_enemy_le(30)} next_section -- расстояние до текущего реального врага меньше или равно заданного значения on_info = {=dist_to_enemy_ge(30)} next_section -- расстояние до текущего реального врага больше или равно заданного значения
  17. ins33

    X-Ray extensions

    Подскажите, где в движке искать [spawner] cond = {*}
  18. @Dennis_Chikin, Спасибо. Только его. И это если знаешь, что должно быть в трупе после смерти, а учитывае ключевое слово ТРАНСФЕРИТЬ, звучит безнадёжно. В "аптечку" хабар не заспавнить.Повторюсь: возможно ли после out_object = db.actor in_object = nps db.actor:inventory_for_each(transfer_object_items) забрать весь свой хабар.
  19. При взрыве БТР игра вылетает с логом \gamedata\scripts\bind_physic_object.script:170: attempt to index local 'victim' (a nil value) Подскажите, как это исправить. bind_physic_object от чистого ТЧ. Почитал. Ответа не нашёл. Труп может содержать только то, что прописано в death_generic.ltx, в свою очередь, этот конфиг читается death_manager.script. В этом и происходит затык. Но я надеюсь мне помогут советом, как его обойти... Плюс не совсем точно выразился, не заспавнить а трансфернуть, Хотя по своей сути это наверно в этом случае роли не играет. П.С. Если вдруг просмотрел, и там было решение моего вопроса, ткните пальцем, на то, что я просмотрел.
  20. 1) Как исправить вылет при взрыве БТР \scripts\bind_physic_object.script:206: attempt to index local 'victim' (a nil value) 2) Спавню скриптом тайни с визуалом нпс [esc_klon_box]:inv_box visual = actors\hero\stalker_novice radius = 2 custom_data = scripts\ins\treasure_inventory_box.ltx В итоге он выглядит так Подскажите, как правильно его прописать, что б он выглядел, как нпс. Или как в труп заспавинь всё что угодно не правя конфиг.
  21. ins33

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

    С помощью string.find получаю таблицу в которой есть строки с индексом _delet. Затем table.remove(tbl, _delet) пытаюсь очистить таблицу от всех строк _delet и ловлю вылет bad argument #1 to 'foreach' (table expected, got table) -- вместо таблицы получена таблица table.remove(obj, "_flame") --> bad argument #1 to 'remove' (table expected, got userdata) for a=10,65635,1 do local obj =level.object _by_id ( a ) if obj and string.fi nd ( obj:nam e(),"search_") then table.remove ( obj, _delete) По сути надо из таблицы: a_*, а_*2, а_*_3, а_delet, а_*_delet, а_*_конец_таблицы удалить все вхождения в delet. Или произвести действие только с: a_*, а_*2, а_*_3, а_*_конец_таблицы исключая а_delet, а_*_delet Или может надо вообще по другому получать таблицу? @dsh, local sObj = alife():object("esc_wolf")
  22. Подскажите, есть возможность поссорить ГГ с гулагом который в офлайн? Сейчас использую рестриктор с радиусом 140, и координатами центра гулага, но, что то не нравится мне этот способ.
  23. ins33

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

    Подскажите, чего нехватает: @2588\xrai -m log
  24. Решил запретить торговлю по условию. Подскажите, как это реализовать, или подскажите в каком скрипте эта кнопка.

AMK-Team.ru

×
×
  • Создать...