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

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


Svoboда

Рекомендуемые сообщения

Вот грохнул я пару-тройку нейтралов и теперь некоторые НПС жаждят моей смерти. Подумал, а почему бы не "подружиться" с этими конкретными НПС. Не оформить нейтралитет со всей группировкой, как можно встретить во многих модах, а остудить "покрасневших" ко мне нейтралов. Пробовал такую проверку, но безрезультатно:

Скрытый текст

for a=0,65534 do
        local obj=level.object_by_id(a)
        if obj then
            if IsStalker(obj) and amk.get_npc_relation(obj,db.actor)=="enemy" then
                local comm  = get_npc_community(obj)
                if comm == "stalker" then
                    ...
                end
            end
        end
    end

 

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение

Всем доброго. Вопрос по мародёрству. Есть ли какой скриптовый способ запретить НПСам НЕ брать конкретный предмет с земли и/или трупа/ящика? Или на крайний случай с ящика, не вписывая ID того ящика в исключения amk_offline_alife.script.

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение

Добрые люди, есть у кого какие соображения, отчего происходит вылет "...gamedata\scripts\amk.script:1403: attempt to perform arithmetic on local 'st' (a string value)". Я уже мозг сломал, не могу выявить причину. Недавно перешёл на таймеры из солянки (в смысле, заменил базовый АМКшный код), вылет происходит при загрузке любого сейва после сдачи вновь добавленного квеста у вновь добавленного СИДового НПС. Грешу на кривую адаптацию кода, ведь раньше вылета не было. Но не вижу взаимосвязи, потому и в тупике. При сдаче квеста ничего особенного - забираем вещь, даём ревард (в виде денег, хабара и тайника), ну и инфопорцию, конечно. Может кто сталкивался, уже не пойму, куда копать...

Изменено пользователем mole venomous

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение
2 часа назад, abramcumner сказал:

каждом сохранении-загрузке

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

  • Согласен 1

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение
В 12.12.2019 в 23:47, mole venomous сказал:

вылет "...gamedata\scripts\amk.script:1403: attempt to perform arithmetic on local 'st' (a string value)"

Цитирую сам себя. Методом исключения нашёл объект проблемы. В реварде за квест был ремкит. Одно только наличие его у ГГ приводит к вылету при загрузке любого сейва. Тут понятно, почему жучинная ссылка на amk.script - кривая адаптация соляночных таймеров. Если попробовать загрузить сейв после вылета, он загрузится, но при очередном лоаде с игры - снова вылет. Мне теперь уже просто интересно, а почему вылетает при загрузке даже более раннего сохранения, где ремкомплект ещё не заспаунен у актёра?

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение
1 час назад, naxac сказал:

а что у тебя находится

Я думал не потребуется весь код, ибо я мог криво адаптировать (или не до конца) таймеры. А вообще это ф-ия get_num(str,idx), она одинакова и в оригинальном АМК, и в Солянке. А менял там коды работы с таймерами, начиная с ф-ии start_timer. Если уж вылет получаем, имея лишь ремкит в инвентаре, видимо, проверка начинается уже с кондиции самого repbox (они вроде рассчитаны на 5-кратное использование, из IMM). Ну чёрт с ним, это наверное, ещё возможно отследить и исправить. Я вот не пойму, почему вылетает при лоаде сейва, на котором никакой речи о присутствии ремкита нет.

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение
3 часа назад, naxac сказал:

где-то ошибка

С синтаксисом точно порядок, я за этим слежу (чекером всё равно проверил, на всякий).

https://yadi.sk/d/Y1lcpjRHV9kt8w  

Старый код далеко не всегда удаляю, а тот код, что не меняю, привожу с приятному глазу виду. Там вероятно, "цепная" реакция и ф-ии вызываются одна за другой. Буду по тихому "подменять". Я подумал, может кто сталкивался с подобными вылетами при правке служебных АМК-шных ф-ий, а то заниматься тупой копи-пастой неохота, лучше понять, где ошибся и не менять лишнего.

Изменено пользователем mole venomous

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение
11 часов назад, _Sk8_AsTeR_ сказал:

симптоматика

Частенько вылет со ссылкой на ф-ию actor_binder:load(reader) при загрузке уровня сложности из bind_stalker

А если игра загрузилась, многое, что висело на таймерах, не работает.

Изменено пользователем mole venomous
  • Спасибо 1

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение


У меня такие дилетантские вопросы. Как сохраняются объекты в ОП-2.1 при перемещении в самопальный тайник? Сохраняются ли они вообще как объекты (т.к. по описанию эти тайники почти не "нагружают" систему)? Насколько сложно воссоздать подобную схему (или что-то вроде пересоздания объекта с переносом нет-пакета) или проще обратиться в другую тему с поиском нужных исходных файлов? 

Изменено пользователем mole venomous

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение
5 часов назад, Norman Eisenherz сказал:

последовательным заполнением делений

А если привязать обновление текстуры на таймеры, и при каждой отсечке обновлять шкалу?

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение

Подскажите, существует ли скриптовый метод запретить автоматическую перезарядку оружия? Или на крайний случай, отловить момент начала перезарядки?

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение
В 10.03.2020 в 15:38, Space.Marine сказал:

 закоментить строку

её и ту что ниже

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение
В 10.03.2020 в 15:38, Space.Marine сказал:

self.loaded = true

Не-не, я не так прочитал. Ту что ниже не надо.

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение
1 час назад, Shennondoah сказал:

оно падало в одно, определенное место

В смысле, что за место? Может методом рекрита?

  • Спасибо 1

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение

Кто знает, что с Шустрым не так? Он, зараза, спаунится с НИ, несмотря на то, что в all.spawn ему указал

Скрытый текст

[spawner]
cond = {+tutorial_wounded_start}

С бандитами на АТП это работает.

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение

Ребята, за этот апрель моск совсем выпрямился... Как определить у ГГ наличие подходящих к активному стволу патронов? С помощью lua_helper ведь можно? 

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение

Подскажите, существует ли прямая скриптовая проверка, в зуме ли оружие (ТЧ 1.0006)? Или только через net_packet?

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение
26.04.2020 в 23:39, ted.80 сказал:

кривые костыли

Т.е. и без "костылей" никак, если готового когда нет? По сути, нужно то для парочки ночных прицелов... Ковырять готовый аддон nigth scopes 1.21 не стал, решил использовать такое:

Скрытый текст

local np
function update()
    if not np then np = net_packet() end
    local actor = db.actor
    if actor then
        local active_item = actor:active_item()
        if active_item then
            local active_item_id = alife():object(active_item:id())
            if active_item_id then
                np:w_begin(0)
                active_item_id:UPDATE_Write(np)
                local size = np:w_tell()
                np:r_seek(size > 13 and 10 or size-2)    
                zoom = np:r_u8()
                -- Включить ПНВ 
                if active_item:section()== "wpn_ak108_1pn93" and zoom == 1 then
                    level.add_pp_effector("nightvision.ppe", 2011, false)
                else
                    level.remove_pp_effector(2011)    
                end    
            end
        end
    end
end    

 

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение
4 часа назад, Zander_driver сказал:

не устраивает

Отчего же не устраивает? Его костыль прямее моего.

  • Смешно 3

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение
4 часа назад, UriZzz сказал:

эту строчку

Вылет вызывается намеренно, что бы произошедшая ошибка, которая не привела к вылету, не погубила игру в итоге.

Здесь могла быть ваша реклама.

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...