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

[SoC] Ковыряемся в файлах


Halford

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

@Houdini_one взять движок, где это исправлено. Если что, насколько я помню, но это не точно, в OGSR не исправлено. Там какая-то движковая странность была, насколько я помню.

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


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

Собственно, для всех интересующихся, вот коммит, после которого у меня исчезла проблема с пропущенными СМС:

Quote

Костыль для лечения не показываемых СМС

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

https://github.com/dsh2dsh/OGSR-Engine/commit/11ac2a9febfc28ecbccb3a00784d72514dc73b3c

@Houdini_one просто имей ввиду, из-за твоих аватаров я тебя добавил в игнор давным давно. Сейчас случайно просто раскрыл сообщение и увидел. Т.ч. не удивляйся, если подумаешь, что тебя кто-то игнорирует. Так и есть.

 

  • Сочувствую 1
  • Жуть! 1

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


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

@Houdini_one у оружия сильное задирание ствола от отдачи настроено? Есть какой-то параметр для секции оружия, который отключает влияние отдачи на неписей. Только я забыл, как называется этот параметр. Поройся в справочнике, может там есть.

 

А, не, все перепутал, наоборот. Добавь для каждого оружия

cam_relax_speed_ai = 360

Это что бы у неписей оружие максимально быстро возвращалось в начальное положение после выстрела.

 

Изменено пользователем dsh
  • Спасибо 1
  • Согласен 1
  • Полезно 3

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


Ссылка на сообщение
4 hours ago, Houdini_one said:

Если в state {0, 1}, что в скриптах типа gulag_escape оставить лишь одно значение (0, день то бишь), то ночью мобы будут уходить в оффлайн?

Нет, у лагеря будет только одно состояние и все. Состояния лагерей никак не связаны с день-ночь или чем-то ещё. Это всего-навсего разные состояния лагеря. А уж что они означают для каждого лагеря - определяешь ты.

 

4 hours ago, Houdini_one said:

Если нет, то каким образом реализовывается дневные-ночные монстры? (ночью онлайн, днём оффлайн).

Раз фигурируют слова онлайн оффлайн, то скорее всего через функции can_switch_online can_switch_offline в se_monster.script

  • Спасибо 1

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


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

Только это будет не ночные дневные монстры, а ночные дневные лагеря. Т.е. разные состояния нужно будет делать всем лагерям, членами которых являются нужные мутанты. Хотя если цель сделать это для парочки конкретных мутантов, то да.

  • Нравится 1
  • Согласен 2
  • Полезно 1

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


Ссылка на сообщение
1 hour ago, Houdini_one said:

С чем может быть связано?

После строчки RUNTIME ERROR белым по чёрному написано, что не так и где не так.

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


Ссылка на сообщение
3 hours ago, Houdini_one said:

тогда вопрос чем вызвано?

На этот вопрос можешь ответить только ты, т.к. отлаживать нужно. Ваш Кэп.

  • Нравится 1
  • Согласен 2

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


Ссылка на сообщение
3 hours ago, Orсhello said:

Но weapon2 всё-равно не удаляется.

Ну а чего бы он удалялся, если объекта с таким именем не существует. После create выведи name() того, что ты создал.

  • Не нравится 1
  • Согласен 1
  • Полезно 1

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


Ссылка на сообщение
4 hours ago, Orсhello said:

Неужели трудно написать пример?

Неужели трудно прочитать местный справочник в соседних темах?

  • Не нравится 1
  • Согласен 1

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


Ссылка на сообщение
1 hour ago, Купер said:

Т.е, повторная компиляция _g.script.

Почему повторная? Не важно, сколько раз к скрипту обращаться, загружаться и компилироваться он будет один раз. А зачем в примере такое обращение, да кто же его знает. Может копипаста, может в этом скрипте, откуда строка, уже есть функция с таким же именем, поэтому понадобилось указать _g, а может что-нибудь другое.

  • Спасибо 1
  • Полезно 1

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


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

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

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


Ссылка на сообщение
1 hour ago, mole venomous said:

Коллбэк level_changer_action обрабатывается, когда ГГ в зоне ЛЧ, если правильно понимаю.

Да. И каждые пять секунд, когда он остается в внутри ЛЧ, насколько я вижу.

 

1 hour ago, mole venomous said:

Есть вариант "задержки" вывода окна с выбором перехода на другую локацию?

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

 

1 hour ago, mole venomous said:

Возможно ли организовать это скриптово, использовав, например:

В этом примере ты всего-лишь отложил вызов своих функций на три секунды. Коллбек и показ окна друг от друга никак не зависят. Теоретически, ты можешь попробовать что-то с ним сделать. Не знаю, скрыть например, на следующем апдейте после коллбека, т.к. сразу же после вызова коллбека вызывается показ этого окна. Т.е. на следующем апдейте это окно будет уже показано. Или не скрыть, а поменять его позицию из коллбека, что бы оно было показано за пределами экрана.

 

1 hour ago, mole venomous said:

Нужно для автосейвов.

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

  • Спасибо 1

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


Ссылка на сообщение
4 hours ago, mole venomous said:

не есть хорошо для сейва.

Почему?

@Купер ну-у-у.., мягко говоря, все не так однозначно. Начнем с того, что нет никакой проблемы, что кто-там ходит через Бар. У меня в моде почти все, кроме Свободовцев, ходят через Бар. И никому это не мешает, а даже наоборот, наполняет эту локацию жизнью и событиями.

 

Потом, есть же возможность вертексы помечать и указывать, кому по каким вертексам нельзя ходить. Это что бы кто-нибудь не материализовался в бункере у Сахарова.

 

А группы - это по большей части костыль. Вот вспомним X-18, к примеру. Там псевдогигант есть и гулаг для него, насколько я помню. Так вот, без выноса X-18 в отдельную группу, туда будут приходить новые псевдогиганты, по мере убывания предыдущих. Вот и сделали отдельную группу, что бы никто в X-18 прийти не мог. Но это костыль. А не костыль, это поместить там псевдогиганта с персональной логикой, без всякого смарта. Нет смарта - никто никуда не пойдет - нет проблем.

 

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

3 hours ago, Norman Eisenherz said:

Возможно ли такое повторить на чистом движке и как именно?

Рассказываю один раз. Можно даже в какой-нибудь FAQ добавить. Берешь исходники оригинального движка. Поверх копируешь исходники OGSR, соглашаясь на замену. Собираешь. Вуаля. Не благодари.

  • Полезно 3

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


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

@Купер вот расчет отношений между двумя сталкерами, в том числе между актором и сталкером и наоборот, из движка. Тут есть комментарии и которых, мне кажется, все понятно:

template <typename T>
CHARACTER_GOODWILL RELATION_REGISTRY::GetAttitude(T from, T to) const
{
    //личное отношение from к to
    CHARACTER_GOODWILL presonal_goodwill = GetGoodwill(from->object_id(), to->object_id());
    VERIFY(presonal_goodwill != NO_GOODWILL);
    //влияние репутации персонажей
    CHARACTER_GOODWILL reputation_goodwill = GetReputationRelation(from->Reputation(), to->Reputation());
    //влияние рангов персонажей
    CHARACTER_GOODWILL rank_goodwill = GetRankRelation(from->Rank(), to->Rank());

    //отношение группировки from персонально к to
    CHARACTER_GOODWILL community_goodwill = GetCommunityGoodwill(from->Community(), to->object_id());
    VERIFY(community_goodwill != NO_GOODWILL);
    //отношение группировки from к группировки to
    CHARACTER_GOODWILL community_to_community = GetCommunityRelation(from->Community(), to->Community());

    CHARACTER_GOODWILL attitude = presonal_goodwill + reputation_goodwill + rank_goodwill + community_goodwill + community_to_community;

    return attitude;
}

Подставь свои числа и ты поймешь, почему у тебя тот результат, что ты видишь.

  • Полезно 1

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


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

@Купер под тайниками ты имеешь ввиду те, которые в treasure_manager? Ну так он же их список ведёт, через него и проверяй, тайник это или нет. Вот например

https://github.com/dsh2dsh/op2ogse/blob/bda2232e900e9699b2118ca540a7ee2fbf27477b/gamedata/scripts/treasure_manager.script#L318

Думаю натолкнет на правильные мысли.

  • Спасибо 1
  • Нравится 2

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


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

@Купер как же он может не работать. Если бы это не работало, то задание Брома на автомат тоже не работало бы. Но на самом деле мысль правильная, я тоже в этой фигне смысла не вижу:

https://github.com/dsh2dsh/op2ogse/blob/32ffc19d9f86aea8cf3cee459143a7691cb8d023/gamedata/scripts/se/se_item.script#L122

 

https://github.com/dsh2dsh/op2ogse/commit/d33998594fd11f9f35b26bd4114b497373855b75

  • Полезно 2

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


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

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