Спасибо за снимок и точное описание — «замкнутый круг» здесь оказался буквальным, и по журналу сервера он виден: один и тот же спасённый солдат за две минуты «засчитался» несколько сотен раз подряд.
Что происходило. Солдат, добежав до пушки, благодарит, становится неприкосновенным и через несколько секунд должен исчезнуть. Но вурдалаки, которые гнались за ним, успевали позвать на помощь соседей, а те приходили драться уже с неприкосновенным солдатом: ударить его нельзя, поэтому каждый пришедший тут же бросал бой и уходил, а по дороге звал следующих. Каждый такой приход на мгновение втягивал солдата в бой, и его сценарий начинался заново: снова благодарность, снова отсчёт до исчезновения. Отсюда всё, что вы увидели: бесконечные реплики, солдат, который не может уйти, вурдалаки, которые «бьют и не попадают», и ваши выстрелы мимо — вурдалак, бросивший бой и идущий на место, для выстрелов недосягаем, пока не дойдёт.
Что исправлено. Благодарность, зачёт и отсчёт до исчезновения у спасённого солдата теперь срабатывают строго один раз, что бы ни происходило вокруг, — он исчезнет через несколько секунд после спасения независимо от боя. Спасённого больше нельзя выбрать целью, поэтому зов вурдалаков на него обрывается сразу, а не ходит по кругу. Те, кто гнался за солдатом, после спасения один раз уходят на место; пока они бегут назад, выстрел по ним не засчитается, это обычное поведение существа, вышедшего из боя. Тех, кто нападает на ружейников или ещё гонится за неспасённым солдатом, пушка и ружейники убивают как обычно. Сам зачёт спасения не менялся.
В игре мы это проверить не могли — только по коду и журналу, поэтому тема остаётся в работе. Сервер перезапущен, эти изменения уже действуют. Посмотрите, пожалуйста, ещё раз: спасённый должен сказать одну реплику и пропасть, а вурдалаки у пушки не должны застревать. Если что-то из этого повторится — напишите.
Что происходило. Солдат, добежав до пушки, благодарит, становится неприкосновенным и через несколько секунд должен исчезнуть. Но вурдалаки, которые гнались за ним, успевали позвать на помощь соседей, а те приходили драться уже с неприкосновенным солдатом: ударить его нельзя, поэтому каждый пришедший тут же бросал бой и уходил, а по дороге звал следующих. Каждый такой приход на мгновение втягивал солдата в бой, и его сценарий начинался заново: снова благодарность, снова отсчёт до исчезновения. Отсюда всё, что вы увидели: бесконечные реплики, солдат, который не может уйти, вурдалаки, которые «бьют и не попадают», и ваши выстрелы мимо — вурдалак, бросивший бой и идущий на место, для выстрелов недосягаем, пока не дойдёт.
Что исправлено. Благодарность, зачёт и отсчёт до исчезновения у спасённого солдата теперь срабатывают строго один раз, что бы ни происходило вокруг, — он исчезнет через несколько секунд после спасения независимо от боя. Спасённого больше нельзя выбрать целью, поэтому зов вурдалаков на него обрывается сразу, а не ходит по кругу. Те, кто гнался за солдатом, после спасения один раз уходят на место; пока они бегут назад, выстрел по ним не засчитается, это обычное поведение существа, вышедшего из боя. Тех, кто нападает на ружейников или ещё гонится за неспасённым солдатом, пушка и ружейники убивают как обычно. Сам зачёт спасения не менялся.
В игре мы это проверить не могли — только по коду и журналу, поэтому тема остаётся в работе. Сервер перезапущен, эти изменения уже действуют. Посмотрите, пожалуйста, ещё раз: спасённый должен сказать одну реплику и пропасть, а вурдалаки у пушки не должны застревать. Если что-то из этого повторится — напишите.