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

ins33

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

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

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

  • AMKoin

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

Баланс оценок

16

1 подписчик

Недавние посетители профиля

1 576 просмотров профиля
  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

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

    Выше писаи о баге, что через какое то время игры магазин заполняется одним патроном. Это не совсем так, такой баг происходит если остановить зарядку ЛКМ. Этот баг решён?
×
×
  • Создать...