Так это для фаталов, а не десинков. Десинк происходит не сразу на той же инструкции
Проверить легко - убери именно этот код из карты и она продолжит десинкаться
Достаточно мгновенно и стабильно, на этой инструкции плюс минус две функции. Плюс есть триггер, который включается при выходе игрока, и на второй машине, которая остаётся в игре, он включается сразу после этой функции.
Спасибо всем за ответы. Да, буду в том чмсле проверять и без этого кода. Ошибка редко ловится с нуля и невоспроизводима. Пока стабильно есть только те сохранения в той конкретной игре и версии, где происходит этот десинк.
Мне кажется, причину найти будет невозможно. Но у меня хорошее предчувствие уже по имеющимся советам оптимизации. Скорее больше хотелось узнать про альтернативы.
То что это может быть глюком записи реплея говорит следующее 1) В реплеях действительно похоже сохраняются все позиции CameraQuickPosition 2) Разный размер файлов сохранений у игроков 3) Отключение записи реплеев зрительно немного повысило производительность в мультиплеере
makkad, что за jassspy? И если можешь, то чего не кинул?
Пока нет доступа к компьютеру к файлу.
Для проверки кода подойдёт программа UnrealJassSpy www.hiveworkshop.com/threads/unreal-jass-spy-1-26a.244384
Кидаешь её файлы в папку с игрой, запускаещь игру, ждешь внедрения (жмешь ок), запускаешь карту. Потом в логах JassSpy.txt смотришь на каком месте у тебя прервалась игра.
Проблема похоже всё-же в том, что накопился какой-то рассинхрон из-за разности времени исполнения функций. Не знаю, как это возможно. Но думаю, если отключить запись реплеев и сделать функцию симметричной для всех игроков (т.е. сделать одинаковый порядок выполнения функций для разных машин), будет легче. Спасибо за наводки.
Просто сейчас порядок такой.
Игрок 1:
GetUnitX() -> GetUnitY() -> GetLocalPlayer() -> SetCameraQuickPosition(x,y) ... -> GetUnitX() -> GetUnitY() -> GetLocalPlayer()
Игрок 2:
GetUnitX() -> GetUnitY() -> GetLocalPlayer() -> GetUnitX() -> GetUnitY() -> GetLocalPlayer() -> SetCameraQuickPosition(x,y) ...
Vlod, Да. Спасибо за тест. У меня у самого на чистой карте только с этим кодом не воспроизводится, так бы прикрепил карту. Даже на грязной карте не каждый раз и не на всех системах. Но имеются сохранения, где происходит гарантированный вылет через секунд 30. Там играли уже 14 часов, но первый рассинхрон из за этой ошибки был через 2 часа. JassSpy указывает на это место.
Ещё странно, что размер файлов сохранений у игроков значительно отличаются.
Вообщем, спасибо за хорошие советы отключить запись реплеев и минимизировать число вызовов GetLocalPlayer().
Спасибо за наводку, поищу решение здесь. Такое встречалось где-нибудь? Если прописать DoNotSaveReplay() в карту то её стабильность может повыситься?
Но в итоге, мне кажется, причину тут не найти. Вероятно нужно искать альтернативное решение.
Возможно, как нибудь можно максимально сихронизировать выполняемые функции у игроков в рамках этой задачи? Т.е. чтобы порядок выполнения функций был одинаков у всех игроков. И раз он вылетал на выполнении функции GetLocalPlayer(), то уменьшить число вызовов этой функции. Значение локалок же может быть разным у разных игроков? Например, так:
function Trig_CameraSystem_Actions takes nothing returns nothing
local real x
local real y
local integer i=GetPlayerId(GetLocalPlayer())
if udg_Hero[i]!=null then
set x=GetUnitX(udg_Hero[i])
set y=GetUnitY(udg_Hero[i])
call SetCameraQuickPosition(x,y)
call SetCameraQuickPosition(x,y)
call SetCameraQuickPosition(x,y)
call SetCameraQuickPosition(x,y)
call SetCameraQuickPosition(x,y)
call SetCameraQuickPosition(x,y)
endif
endfunction
Этот код не вызывает десинх, покажите другой, с пробелом
Хотя если разве что баг в рефордже
А зачем столько раз вызывать одну функцию?
Это и есть весь код. SetCameraQuickPosition устанавливает позицию, куда переключится камера, если будет нажат пробел. У SetCameraQuickPosition есть в буфере несколько позиций. Если несколько подряд раз его исполнить, то весь буфер перепишется.
заметил что люди в своих прохождениях Пакта Паладина очень тупят и нубят
Я, вероятно, лезу не в своё дело, и вообще, я мимо проходил, но:
Отличное отношение к игрокам, которые проходят твою карту.
2.Делать игру/карту понятной для игрока - тоже важно. Так что скорее всего, проблема не в них, а в карте (ведь они не обязаны быть 3000 iQ гениями и они, в отличие от тебя, не разрабатывали твою карту, они не должны знать как всё устроено). Чтобы такого избежать, стоит либо добавить дополнительные подсказки, либо просто сделать всё предельно очевидным.
Зачем же всех под одну гребёнку и делать карты очевидными для всех? Некоторым нравятся решать головоломки и находить выходы из неочевидных ситуаций. Да, это отсекает большую часть возможной аудитории, зато остальной части будет интереснее.
Размещаю вновь, так потребовалось найти другого исполнителя с другими условиями.
В карте Northrend RPG есть герой гренадёр с моделью сделанной Кет'ом (см. картинку). Но я бы хотел видеть в карте более высокополигональную модель, с более человеческими пропорциями.
В исходной модели мне понравилась идея с пращой, с висящими на ремне гранатами и с усами. Это бы хотелось что бы было и в новой.
У героя есть краткая биография и список способностей. Нужно, чтобы модель им не противоречила. (Например, учесть его простонародное происхождение). Также нужно добавить анимацию Slam когда герой что-то устанавливает рядом с собой и анимацию Spell когда он что-то колдует поднимая руку (обе незацикленные). В карте это герой, разложения у него нет. Геройское свечение не нужно. Атакует только гранатами в дальнем бою. Хорошо также сделать более красивую анимацию для attack.
По поводу денежного вознаграждения пишите в ЛС. Ориентировочно оцениваю работу от 1500 руб. (зависит от времени и сложности).
У героя был Спеллбук, в спеллбуке была пассивная способность аура "Боевой марш". В процессе игры герой умирал и воскрешался. Если после воскрешения сохраниться и загрузиться вновь, то вылетает с ошибкой.
Исправил следующим образом. Отследил сохранения и в этом триггере отключал все пассивки в Спелбуке (SetPlayerAbilityAvaible() на false). Через малое время после сохранения вновь их активирую.
Просто бродилка в пустых локациях? Отлично, знаю, что The Painscreek Killings многим понравился. Даже сам бы сыграл, но уже всё заспойлерил себе. Хотелось бы ещё подобных игр. Может подскажите, какими подобными играми вдохновлялись?
Ну вот, как раз по мотивам ваших тестов вышла версия Northrend RPG v1.06 [changelog], где можно более тонко выбрать уровень сложности. На обычном уровне сейчас должно стать проще. У героев больше ХП и больше доход золота.
Ну я не вижу там исправления приоритета агрессивности на лучников и простого способа сражения с гаргульями и драконом для мили героев
Приоритет с лучника исправлен, теперь он менее вероятен, не записал в ченджлог как слишком мелкое исправление. Число гаргулий и драконов уменьшил.
Уж лучше бы исправлял баги, косяки и недочеты, чем тупо благодарить. Особенно баланс героев А так хочется, чтобы автор все сделал из моего отзыва, но это мечты...
Ну вот, как раз по мотивам ваших тестов вышла версия Northrend RPG v1.06 [changelog], где можно более тонко выбрать уровень сложности. На обычном уровне сейчас должно стать проще. У героев больше ХП и больше доход золота.
Касаемо баланса героев, обычно судят, что с балансом проблемы по достаточно большой статистике. На данный момент я получаю очень противоречивые отзывы, какой герой сильный, а какой слабый. У всех свои стили игры. Лично мне было примерно одинаково комфортно пройти за всех героев (всё теститоровал на Серьёзном уровне сложности). Так что, касаемо баланса силы, я не вижу первоочерёдных проблем. Может разве что есть проблемы баланса в интересности геймплея, сейчас как раз провожу опрос в своей группе о любимом герое vk.com/northrendrpg?w=poll-195721415_389563990 .
Кстати, отдельное замечание, режим следования реализован через заднее место, я так понимаю юниты пытаются следовать в ту точку, куда кликает игрок, а это создаёт проблемы с поиском пути, они мешают пройти герою, почему бы не следовать за героем?
Ближнебойные наёмники должны вступить в бой не сильно позже самого героя. Но можно там похимичить с расстояниями и целями.
Niken, Спасибо за подробный обзор и тест каждого из героев. Приметил из него интересные идеи.
Феникс, Огромное спасибо за детальный отзыв с дельными рекомендациями. По всем пунктам согласен, что нужно кардинально улучшаться, кроме разве что имб. Опрашивал игроков и тестеров, у всех очень разнятся мнения, какой герой слишком сильный или слабый, как правило одни и те же герои попадают в противоположные категории. Или вот опрос в группе VK о любимом герое. Не говорю что тут всё идеально, но они требуют разных подходов к игре. Где-то будет вознаграждаться более вдумчивый геймплей. А для некоторых достаточно "ололо", и вдумчивость не принесёт особого усиления. Но с требованием "напряга" для некоторых героев верно подмечено, но это специально сделано для тех кто любит превозмогать, типа меня самого. Короче, балансировалась максимальная сила героя, а не единицы мощи на затраченные усилия.
Секреты По секрету скажу, что есть один очень законспирированный квест с неплохой наградой. Ну это сделано для фанатов. Но то что почти (исключение, секрет со знаменем Плети) нет секретов, которые реально было бы открыть просто достаточно любопытному обычному игроку, это справедливое замечание. Надо будет обязательно добавить что-нибудь подобное в ближайших версиях.
Боссы Думаю, можно привязать количество сгенерированных летающих монстров к числу дальнобойных героев в пати.
Компаньоны Есть возможность в начале выбрать до 3 героев с помощью команды -addhero. Но идея со временным союзником-героем под вашим управлением достойная.
Выбор Буду развиваться в эту сторону, это действительно самая важная часть для любой RPG.
Насчёт Ландшафта не знаю что делать в практическом смысле. Рекомендуется разгладить шум и перепады?
Феникс:
Да без проблем. Мне главное было услышать мнение опытных мапмейкеров для полноты картины и для получения каких нибудь инсайдов о картостроительстве, и я его получил в какой-то мере. Спасибо KingMaximax, Bergi_Bear, N7 Molot, Niken, Феникс за предоставленную возможность.
В плане каких-то субъективных или спорных вещей, у которых есть две медали (Весёлая прогулка-Тяжёлое испытание; Всё кристально ясно-Не над чем подумать; Требует кооперацию-Поощряет независимость; Универсальность-Разнообразие; Скоротечность-Затянутость) я в своей карте уверен, так как сделал её под себя и конкретных людей. Всем угодить даже не пытался, имею представление, кому такое не зайдёт.
Жаль, что вам не понравилось, но спасибо что уделили время. Вы сделали хорошее дело, эти отзывы помогут улучшить проект, и возможно, помогут кому нибудь в будущем подарить несколько радостных часов в жизни.
Lord_Teo, Феникс, Спасибо за замечания. Подправлю моменты, которые я не приметил и согласен.
Феникс, Ну более менее все герои задумывались универсалами. Например, тот же командир (капитан) и гренадёр могут научиться лечить (доп способность "Благодать" и способность "Массовое исцеление" соответственно).
Bergi_Bear, Насчёт гренадёра, френдлифаер можно почти нивелировать если взять на 11 уровне талант "Направленный взрыв".
makkad, кстати, основная проблема ландшафта просто невероятно убогий (прости) левел дизайн. Зачем нужны кишкообразные локации с постоянной сменой высот? Во-первых видимость около нулевая, во-вторых элементарно зажимают в проёмах хилых героев. Если была идея сделать хардкор, то она провалилась)
В некоторых местах типа леса и ложбины пауков да, была идея сделать атмосферу неожиданных опасностей с помощью ландшафта.
Bergi_Bear, Да. Спасибо за отзыв. Может есть что нибудь, что ты посоветуешь исправить малой кровью, какие нибудь мелочи?
Понятно, что могу например Сделать поярче эффект от пассивки у гренадёра (там есть визуальный эффект, но, видать, он не заметен). Что нибудь в этом роде. Добавить какие нибудь фишки или недостающие элементы. Из опыта игры в другие карты и игры и мапмейкерства.
Конечно, менять глобально карту не планирую, это действительно субъективно, в плане идеи геймплея (большие растояния), способностей персонажей, того же френдлифаера, негативных эффектов предметов и прочее.
» XGM Team / XGM — Премия 2020 года
» WarCraft 3 / Рассинхрон от GetLocalPlayer() -> SetCameraQuickPosition()
Спасибо за инфу. Но нет, в данном случае юнитам во время игры порчу не давал.
» WarCraft 3 / Рассинхрон от GetLocalPlayer() -> SetCameraQuickPosition()
» WarCraft 3 / Рассинхрон от GetLocalPlayer() -> SetCameraQuickPosition()
» WarCraft 3 / Рассинхрон от GetLocalPlayer() -> SetCameraQuickPosition()
Ред. makkad
» WarCraft 3 / Рассинхрон от GetLocalPlayer() -> SetCameraQuickPosition()
Игрок 1:
GetUnitX() -> GetUnitY() -> GetLocalPlayer() -> SetCameraQuickPosition(x,y) ... -> GetUnitX() -> GetUnitY() -> GetLocalPlayer()
Игрок 2:
GetUnitX() -> GetUnitY() -> GetLocalPlayer() -> GetUnitX() -> GetUnitY() -> GetLocalPlayer() -> SetCameraQuickPosition(x,y) ...
GetLocalPlayer() -> GetUnitX() -> GetUnitY() -> SetCameraQuickPosition(x,y) ...
» WarCraft 3 / Рассинхрон от GetLocalPlayer() -> SetCameraQuickPosition()
Ред. makkad
» WarCraft 3 / Рассинхрон от GetLocalPlayer() -> SetCameraQuickPosition()
» WarCraft 3 / Рассинхрон от GetLocalPlayer() -> SetCameraQuickPosition()
» WarCraft 3 / Артас Менетил (Ледяная Скорбь) HQ
» Возмездие / Гайд на прохождение Возмездие: Пакт Паладина
» WarCraft 3 / Нужна модель? - Вам сюда!
Ред. makkad
» WarCraft 3 / После загрузки сохранённой игры вылетает с критической ошибкой
» SETI / SETI
Ред. makkad
» Northrend RPG / Northrend RPG. Благодарности
» Northrend RPG / Northrend RPG. Благодарности
» Альфа тест / Заявка на тест карты: Northrend RPG
Ред. makkad
» Альфа тест / Заявка на тест карты: Northrend RPG
» Гильдия «Черамор» / Список наград за активность
Ред. makkad
» Альфа тест / Заявка на тест карты: Northrend RPG
Да без проблем. Мне главное было услышать мнение опытных мапмейкеров для полноты картины и для получения каких нибудь инсайдов о картостроительстве, и я его получил в какой-то мере. Спасибо KingMaximax, Bergi_Bear, N7 Molot, Niken, Феникс за предоставленную возможность.
Ред. makkad
» Альфа тест / Заявка на тест карты: Northrend RPG
» Альфа тест / Заявка на тест карты: Northrend RPG
» Альфа тест / Заявка на тест карты: Northrend RPG
» Альфа тест / Заявка на тест карты: Northrend RPG