Перейти к содержанию

Gowther

Сталкеры
  • Публикаций

    79
  • Зарегистрирован

  • Посещение

  • Победитель дней

    1

Сообщения, опубликованные Gowther


  1. Подскажите.. В Заброшеном детском доме, в лиманске есть записка "Не ищи меня Патрон, кажется я схожу с ума, ps Хмурый" и запертый на ключ ящик, где взять ключ от ящика?? 


    Дополнено 43 минуты спустя

    ну вот, оббегав пол зоны в поисках сошедшего с ума хмурого и в надежде начать интересную цепочку квестов, я таки нашёл ключ от ящика в соседней комнате на полке комода. Жаль, конечно.


  2. Stern-13 Я решил проблему) Просто "обошёл" место, в котором вылетало) Там после возвращения из этих лабиринтов посмертных сначало выкидывало на крышу, а затем на дорогу и если по ней прямо идти - то вылетало. Кстати, а вы находили вещателя радио?)))


  3. Enotik331 по идее да, при подходе к переходу там появляется предупреждение, мол закончи сначала все свои дела. Так что сначала выполни старую гвардию, а затем в новошепеличи иди


  4. братья-сталкеры, подскажите насчёт одной вещи:

     

    Спойлер

    Когда в шлюзе D, во время этой королевской битвы. Когда мы "договариваемся" с термитом о временном перемирии и идём косить наймов. Если в этот момент выстрелить в него он исчезнет и скажет мол, ты об этом пожалеешь. Он что-то сделает в дальнейшем, если пойти этим путём? или нет? Спасибо

     


  5. Камрады, как бороться с вылетом по последнему тп стихоплёта?


    Дополнено 14 минуты спустя

    upd: народ, по поводу вылета по последнему телепорту стихоплёта: 
    чтобы не вылетало, снимите с пояса любой детектор аномалий. 


    Дополнено 23 минуты спустя

    upd2: более подробно
    Перед тем, как прыгнуть телепорт возле экскаватора в яме - снимаете с пояса детектор аномалий. прыгаете, появляетесь в пещере, спустя время телепортируетесь в темноту. Не двигаясь открываете карту, смотрите в каком направлении эта самая яма с экскаватором, закрываете карту и идете в том направлении. При открытой карте тоже может выкинуть. После того, как вас телепортирует обратно в пещеру - можно снова надевать детектор на пояс. 


  6. не работает xrAI. В чем может быть дело? запускаю батник, ничего не происходит. Сам xrAI висит в процессе несколько секунд и всё. никаких логов/ошибок/вылетов, просто не запускается и всё. (хотя раньше работал). В чем может быть проблема?
    p/s папку lod убирал (даже object из rawdatы убирал), pause дописывал и ничего. 

    • Мастер! 1

  7.  

    1 час назад, WolfHeart сказал:

    Ошибаешся играет. Если у тебя по указанному в батнике пути нет нужного файла, вданном случае xrAI.exe, то что по твоему батник будет запускать.

    Ааа... Понятно... Тогда у тебя компиляторы просто падают при запуске.

    Перетащи на время компиляции в другое место папку lod из gamedata/textures и пробуй запускать.
    Если не поможет, тогда еще и папку objects из rawdata, тогда уж точно запустятся.

    Понятное дело, что если по пути не будет нужного файла, то не запустится, я другое имел ввиду. 
    Перетащил папки lod и objects - не запускается ни в какую(


    Дополнено 26 минуты спустя

    на некоторое время в процессах появляется xrAI, после появлется Windows problem Reporting, а затем оба пропадают

     

    image.png

     

    image.png


  8. WolfHeart Путь не играет разницы, к тому же раньше всё работало. да, по указанному пути @start bins\compilers\xrAI.exe есть xrAI. @start bin\designer\release\xrAI.exe -no_separator_check -s Имя локации  <- и так тоже не работает, пробовал. Вообще ничего не происходит, просто открывается и закрывается cmdшка. (если pause прописать, то не закроется, понятное дело) но не открывается сам сборщик спавна. 


    Дополнено 3 минуты спустя

    К тому же остальные тоже не запускаются, хотя раньше работало прекрасно. (я про -f, -g, -m, -draft)
    для их работы вообще нужно что-то? (как для работы acdc нужен пёрл, например)


  9. Запускаю батник: @start bins\compilers\xrAI.exe -s
    в итоге ничего не открывается, хотя раньше работало. (если дописать pause), просто cmd останется открытым. Если запускать от имени админа, скажет, что не удаётся найти bins\compilers\xrAI.exe. Куда копать, подскажите кто?


  10. 1 час назад, I am dead сказал:

    Gowther Я более чем уверен что есть у тебя в движке - на огср есть в 5 раз лучше, собирать не обязательно потому что есть собранные бины на гитхабе.

    я смотрел - нет.
    upd: послушай, друг. Тебе нравится использовать ОГСР? Я тебе запрещаю? Используй на здоровье. Я использую то, что мне нравится. Огср мне не нравится.

    • Лайк 1

  11. I am dead Проблема в несовместимости, или мне отказаться от всех моих движковых наработок и перейти на огср, лишь потому, что там есть нужный каллбек? И вообще я недолюбливаю огср. К тому же, движок на гитхубе нужно ещё уметь собирать, не каждый сможет его скомпилировать.  


  12. Всем привет, я, можно сказать, модмейкер-любитель, потихоньку делаю свою модификацию и иногда сталкиваюсь с проблемами. 
     

    Спойлер

    АМК - Labadal
    Ап-про - Gowther (Амон Нихродский)

    Совсем недавно я столкнулся с необходимостью отследить выстрел из оружия, решение я искал долго, но, всё же, нашёл - и спешу поделится с вами.  
    Рассмотрим ситуацию, в которой мы хотим выдавать аптечку каждый раз, когда стреляем из LR300

    Что понадобится? 
    1. bind_stalker.script 

    2. ваше_название.script -- этот файл вы должны создать сами.

    Спойлер

    1. функция gun() - основная функция, которая как раз таки и отслеживает "выстрел" (на самом деле срабатывает, если уменьшилось количество патронов в магазине)

    
    local check_ammo = false
    local old_wpn_id = 0
    function gun()
    local wpn = db.actor:active_item()
    if wpn then
        if wpn:id()~=old_wpn_id then
        old_wpn_id = wpn:id()
        if wpn:section() == "wpn_lr300" then --с каким оружием мы хотим работать, в нашем случае - это LR300
            check_ammo = true
            ammo_old = wpn:get_ammo_in_magazine()
        end
        end
    else
        if old_wpn_id~=0 then old_wpn_id=0 check_ammo=false end
    end
    if check_ammo then
        local curr_ammo = wpn:get_ammo_in_magazine()
        if curr_ammo < ammo_old then
        ammo_old = curr_ammo
        if not level.main_input_receiver() then gun_yes() end -- выполняем функцию gun_yes() 
        elseif curr_ammo > ammo_old then
                    old_ai_id = 0
        end
    end
    end

    2. Функция gun_yes() - выполняется только в том случае, если предыдущая "дала добро"

    
    function gun_yes()
    local curr_ammo_yes = db.actor:active_item():get_ammo_in_magazine() - считаем патроны, всегда вначале функции
    --=============================================--свой код писать только ниже этой полоски
    -- здесь мы выполняем то, что нужно. В нашем случае, это спавн аптечки
    alife():create("medkit", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) 
    --=============================================--свой код писать только выше этой полоски
    if curr_ammo_yes== 0 then
    start_timer()
    end
    end

    3. Таймер (таймер необходим для того, чтобы вернуть функцию gun() в рабочее состояние, когда в магазине закончились патроны. Он срабатывает через секунду, так что этого времени хватит на перезарядку. (если переменной old_wpn_id присвоить 0 до того, как перезарядимся, то вместо одной аптечки - получим много)

    
      function action_timer()
          old_wpn_id = 0
       end
    
       function start_timer()
          local iTimer = time_global() + 1000
    
          local function check_timer()
             return time_global() > iTimer
          end
    
          level.add_call(check_timer, action_timer)
       end

    4. Функция preload() - решает проблему, которая возникала в случае самовольной разрядки оружия в инвентаре - функция gun() переставала работать.

     

    
    function preload()
    local wpn = db.actor:active_item()
    if wpn and wpn:section() == "wpn_lr300" then
    local curr_ammo_preload = wpn:get_ammo_in_magazine()
        if curr_ammo_preload == 0 then
        check_ammo = false
        old_wpn_id = 0
        end
    end
    end

     

    Спойлер

    Ищем функцию:

    
    function actor_binder:update(delta)

    И в самом конце, перед последним END вставляем:

    
    function actor_binder:update(delta)
    ***
    ваше_название.gun()
    ваше_название.preload()
    end

     

    Нашёл эту функцию в частично рабочем варианте в файле мода "Золотой Шар: завершение" (функция, найденная мной в ЗШ, работала пока в оружии не кончатся патроны. При разрядке/перезарядке нужно было перемещать ружьё из инвентаря и обратно, я же доработал функцию до ума - теперь все работает как надо - стреляйте, перезаряжайте, разряжайте и так далее, но не отрицаю возможность наличия багов, так что если найдёте - пишите).
    Авторами, помимо меня, доработавшего функцию, можно считать товарищей Jek@n и Charsi. 

    • Мастер! 2
    • Жму руку 1