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

Zander_driver

Жители
  • Число публикаций

    5 952
  • Регистрация

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

  • Дней в топе

    230
  • AMKoin

    109,226 [Подарить AMKoin]

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

  1. Не знаю в эту ли тему такое писать... и не знаю подскажут ли мне что то дельное. Но может таки да, подскажут. Короче ситуация: на локации где-то с десяток гулагов. гулаги примерно по 15-20 неписей каждый, все нормально работало, проблем не вызывало. Что я сделал: для пары гулагов добавил еще по паре десятков работ, с разными допустимыми состояниями гулага. т.е. у этих гулагов 5 возможных состояний и в разных состояниях у них разные наборы доступных работ, но, во всех состояниях этих работ достаточно чтоб вместить население этих гулагов. Повторюсь, пока у всех гулагов были только состояния 0 и 1, и работы предназначенные только для них, все работало. А когда состояний 5, то получаем вылет
  2. а разве return без аргумента - не то же самое что return nil ?
  3. Применительно к скриптово-сгенерированным работам, я так понимаю я могу заспавнить просто объект space_restrictor, через нет-пакет указать ему шейп желаемых размеров, и его айди вписать сюда? к самому рестриктору каких либо требований не предъявляется? (ТЧ)
  4. Вопрос по функциям класса game_object
  5. Это, между прочим, цитата из шапки темы. Ожидающих мод, могу обрадовать. Скоро период затворнической работы в подполье, у нашей команды завершится. И мы выложим на ваше обозрение первые материалы. В основном это будут видео. Так же советую позаботиться о железе. Увы и ах, по этой части мод никак нельзя назвать скромным. Тех кто будет играть на слабых машинах, могут ожидать серьезные проблемы.
  6. При таком варианте, все нпс так же освобождаются со всех работ. Хотя некоторые из них допускают состояние 2. В каком направлении искать причину? Так же нубский вопрос в догонку. Есть некоторая деревня, довольно обширная, в ней 9 гулагов одного и того же комьюнити. расстояния примерно такие - если ГГ сидит у костра на одном конце деревни, то противоположный край только-только зашел в онлайн. Делал 9 гулагов специально для того чтоб они всей большой деревней не поднимали панику из-за какой то собачки. Но тем не менее так и происходит - стоит где то на окраине деревни появиться какому то раздражителю в виде зверья, так тут же все 9 гулагов дружно переходят в тревожное состояние, неписи ходят-выцеливают врага, по всей деревне. Как это исправить? мне нужно чтоб каждый гулаг сам по себе был, реагируя только на те опасности которые на его территории возникают.
  7. Zander_driver

    Справочник вылетов

    Очередной экзотический вылет
  8. Причина этих исключений. Где это задается/чем обусловлено
  9. Второй. Я просто думал что не обязательно писать всю простыню, если ее предваряет элементарное return 2, отсекающее все последующие действия.
  10. @Dennis_Chikin, Окей, вот функция полностью в оригинале, мои правки закомментированы.
  11. @NHOK, В таких случаях каких советов вы ждете? Перечитать еще раз, как-то по другому может быть. Вопрос к знающим людям, я вот оказался не знающий, и пытаться разобраться в происходящем, включив вывод в лог всего на свете, это немного тяжко. Так вот собственно вопрос. Разъясните кто знает, принципы функционирования смарттеррейнов и гулагов. В плане того, что в какой последовательности активируется и вызывается. класс smart_terrain, описанный в файле smart_terrain.script - это собственно объект смарта, тот объект который спавнится через алл.спавн к примеру. в файле bind_smart_terrain.script лежит его биндер, который отслеживает нет_спавн и нет_дестрой, а так же занимается апдейтом. А класс gulag из файла xr_gulag.script - это что? вообще хотелось бы понять разделение целей и задач gulag и smart_terrain, четко разграничить для чего один и для чего другой. Это все риторика, мотивированная тем что мне хочется наконец таки понять как это все работает. А в частности есть еще практический вопрос - как извне, принудительно переключить состояние гулага/смарта. И как этими состояниями правильно пользоваться. Неудачный пример:
  12. А почему посты о глобальной переделке игры считаются оффтопиком для данной темы? И кстати ткните носом, куда дели "замечательный текст" о котором идет речь. Любопытно стало. Здесь про потроха. И, кстати, "общие рассуждения", а тем более юморески про горнопроходческий комбайн и способы изведения тушканов здесь вряд-ли кто найдет. В литтворчестве и разговорах о модах шансов больше. Вообще тема про неприличное слово в разделе была бы уместна, но ее здесь не захотели. 8( И, пожалуй, какой-то общей готовности к конструктиву по ней нет. Увы, опять же. dc
  13. Нашел причину. Зависание произошло в actor_binder:load. причем по дурацкой причине - читались всякие данные из конфига, ltx:r_string(section, line). в качестве section оказался nil. И процесс завис. actor_binder:net_spawn после этого вообще не вызвался. когда устранил зависание, оказалось что actor_binder:net_spawn вызывается сразу после actor_binder:load.
  14. а мог он так зависнуть что другие колбеки актора работают? У меня actor_binder:on_item_take срабатывает, и там обнаруживается что актора нет.
  15. Да, о том что уже сделано. Если прочитать весь мой пост, становится ясно почему я назвал это "попыткой". @svarog2741, Все данные вам ответы, как мои так и Dennis_Chikin-a, относятся к Оригинальной игре. При достаточном желании и навыках работы с скриптами, реализовать чтобы именно так все выглядело для игрока - не сложно. Но метод непрост, и новичку маловероятно его осилить.
  16. Ну для этого надо 3 вещи. 1. отловить факт того, что предмет попытались использовать (use_collback, тут все просто) 2. проверить наличие другого предмета. тоже все просто. if db.actor:object("ваш_консервный_нож") ~= nil then и так далее. 3. если второго предмета нет, то спавнить первый обратно. а если есть, то выполнять то, что должно свершиться от применения первого. И выполнять скриптово, потому что первый объект на самом деле был безвозвратно съеден в первом пункте и на этот факт никак не повлиять.
  17. , У инвентарных предметов нет пстора, насколько я помню. для них удобнее пользоваться кастом-датой их нет-пакета. см. модуль Артоса для работы с нет-пакетами, хотя ему вроде есть и другие аналоги.
  18. Учитывая что в моем моде клсиды добавляются так же и через скрипты, и, разработка еще в процессе - могут и еще новые классы добавиться. А числовые значения при этом смещаются. И да, экспериментальным путем выяснилось, что то, что мы добавляем в class_registrator-e, добавляется вовсе не в конец списка clsid. Я так понимаю добавленные следуют за своими родителями. А все последующие в списке - смещаются. И потому даже числовые значения классов, прописанных в движке, уже не соответствуют "имеющимся табличкам".
  19. Ну в моем конкретном случае составлять соответствие числовых значений - уже лишнее. Мне собственно требовалось написать аналог функций IsStalker, IsWeapon, ... etc из _g.script. и для тех объектов, которые мне нужны, надо было найти как их звать по клсиду) В случае скриптово-добавленных клсидов их можно просто в class_registrator-e посмотреть.
  20. Есть ли способ получить актуальный список имен clsid ? Имеется в виду вот этот список из lua_help
  21. Раз уж пошла речь про скорость, и дабы мне не изобретать велосипед в очередной раз (а вдруг его кто-то изобрел уже?) Задам такой вопрос: А занимался ли кто оптимизацией массового входа неписей в онлайн? т.е. ситуация: подходит игрок/гг к некому гулагу, в котором живет толпа неписей. И в какой то момент они всей толпой вваливаются в онлайн... создавая то, что даже словом "тормоза" назвать как то неудобно. Взять да перекинуть выполняемые при нет-спавне неписей действия в динамический список вроде того что упомянут несколькими постами выше. Как мне представляется, это могло бы решить проблему, но возможно возникновение других проблем из-за "отложенного" (запоздалого) выполнения действий, которые, быть может, движок ожидает сразу же. Это все лишь мои теоретические размышления. Занимался ли кто-нибудь данным вопросом на практике?
  22. Zander_driver

    [SoC] Вылеты без лога

    Добавлю в копилку. при неаккуратном пользовании методами класса ini_file, например что то в таком духе:
  23. Мы именно это и делаем. В моде, если что, 41 локация.
×
×
  • Создать...