для такой цели как хочет автор будет обязательно и в UT2004, так как требуетса поменять значение в коде HUD-а, которое не вынесено в переменную - следовательно и доступа из вне к этому значению нет никакого.
ЦитатаGadavre ()
реально ли сделать мутатор,в котором будет частично свой худ и будет работать по сети?
Реально все, но я за это братса даже не собираюсь, ибо это эквивалентно сбору автомобиля через выхлопную трубу. :yaoming:
Самый-самый примитив нового типа игры, с использование кастомного худа:
Код
class InstaDeathMatch extends DeathMatchPlus config;
Естественно в defaultproperties можно поменять название и прочие параметры, как называютса переменные подглядите в стандартном коде. Такой метод имеет гораздо большые возможности по скравнению с мутатором - например можно без проблем зафорсить использование существующего мутатора.
Сообщение отредактировал GP - Суббота, 26 Декабрь 15, 17:25
GP, Посмотрите, пожалуйста, предварительный набросок моего второго мутатора. Сделал как Вы написали, но движок его читать не хочет, хотя компилляция прошла без проблем. Может в int файле как-то по-другому писать нужно, я не знаю. Полностью скопировал класс ChallengeHUD с оригинала изменил только: if ( PawnOwner.Health < 80 ) Но здоровье не понижается, как было в мутаторе и худ здоровья увы не мигает с 79 единиц.
При чем сдесь мутатор вообще? Новый тип игры (SurvivalA) должен появитса в списке меню, где выбираетса дезматч, цтф и т.д. Его может не быть разве потому, что название не изменено (хотя должно бы появитса два дезматча) - посмотрите в оригинальном DeathMatchPlus в default properties где переменная с названием типа игры и поставте ее себе, с другим названием естественно.
Очень удобно и интересно , когда мутатор сделан так, что сам игрок может менять его параметры. Если я выведу ряд переменных в конфигурационный файл ini, то будет ли работать мой мутатор по сети?
Есть ли какие-либо правила кодинга для беспроблемной и правильной работы мутатора по сети?
Сообщение отредактировал Gadavre - Понедельник, 28 Декабрь 15, 10:51
Не знаю как в 99-м (знаю, просто лень проверть чтоб утверждать на 100%), но в 2004-м мутаторы полноценно по сети не роботают, ибо исполняютса только на сервере - остальное зависит от самостоятельности остальных класов. Поэтому кастомный режим игры в этом плане лучше (всеравно мутаторы "хендлит" он). Относительно настроек чего угодно - теоретически достаточно перед переменной указать config, например var() config float EasyAim;. Чтоб настройки сохранились надо еще вызвать спецыальную функцыю, но у мутаторов это все автоматически на сколько помню... А сеть в общем это большой геморой - если хочеш что-бы что-либо нестандартное роботало по сети, прийдетса хотя-бы на 4-ку (по пяти-бальной шкале) знать как устроено то, что уже есть в игре (сам знаю где-то на 3 с минусом ). Имхо вникать в поддержку сети не советую - потраченые силы того не стоят.
GP, По идее, если у двух клиентов будут разные значения в конфигах и настройках мутатора, то игра с мутатором не должна получиться. Так, например, все встроенные в игру мутаторы без настроек, типа instagib, sniper arena, relics и т. д. прекрасно играются по сети. Имхо , если хочешь, чтобы с твоим мутатором играли по сети, то делай его без конфигов и настроек, которые может менять сам игрок.
Есть желание пройти сингл компанию в UT2004. Но не люблю стрелять на огромных картах в мелких ботов. Можно ли как-то через конфиг игры увеличить модели ботов или на крайняк сделать их скины ярче?
Сообщение отредактировал Gadavre - Понедельник, 28 Декабрь 15, 21:57
По идее, если у двух клиентов будут разные значения в конфигах
нет, на всех влиять могут только конфиги на сервере, другие же имеют только локальное значение (напрмер те-же настройки графики). Советую для начала вооружитса терпением и преводчиком, и осилить вот эту статью. Перечисленые мутаторы роботают по сети как раз из-за самостоятельности класов в плане репликацыи - все что нужно для их роботы уже предвидено в других класах на стадии разработки игры, а вот нам что-либо изменить в стандартном контенте безболезненно уже не получитса.
Сообщение отредактировал GP - Понедельник, 28 Декабрь 15, 22:27
Пуля идет мимо прицела только в настройке weapon hand в позиции right
хм, а уменя при left идет наборот впрво-вниз...
ЦитатаGadavre ()
Выходит, отрисовка прицела прописывается конкретно под каждую позицию оружия
неа, там просчитываетса не только положение прицела, но и его размер, в зависимости от разрешения экрана - там погрешность и вылазит...
ЦитатаGadavre ()
хочется подправить прицел в самой оригинальной игре
для этого прийдетса ее (зависимые пакеджы) потом скомпилировать. А так как корень проблемы в базовом класе худ-а то... пийдетса компилировать весь пакедж engine, что я себе не представляю.
Помните Вы помогли мне заменить прицел в моем мутаторе и поставить его в правильное положение? Вот эти строчки: else { Canvas.DrawColor = 15 * ChallengeHUD(P.myHUD).CrosshairColor; Canvas.Style = ERenderStyle.STY_Translucent; Canvas.SetPos(0.5 * Canvas.ClipX - 32, 0.5 * Canvas.ClipY - 32); Canvas.DrawIcon(Texture'Cross', 1); }
Цвет прицела получилось взять с общего худа! А как записать , чтобы снайперка брала в качестве прицела ту текстуру прицела, которую игрок выбрал в настройках? Я вот записал вместо последней строки вот это по аналогии , но не компилирует Canvas.DrawIcon = 15 * ChallengeHUD(P.myHUD).CrosshairCount;
Сообщение отредактировал Gadavre - Вторник, 29 Декабрь 15, 20:26
Простите за наивность! Я пытался сделать по верхней строке Canvas.DrawColor = 15 * ChallengeHUD(P.myHUD).CrosshairColor; То есть я указал в строке Canvas.DrawIcon = 15 * ChallengeHUD(P.myHUD).CrosshairCount; путь к CrosshairCount, то есть к виду прицела, который выберет игрок в настройках. А пути к текстурам прицелов параметра CrosshairCount прописаны в классе ChallengeHud. Но раз вылетела ошибка, то че-то неправильно. Помогите, пожалуйста!
А зачем умножать на 15 "путь", деже если он верный?
Я понял Вас. Я написал так Canvas.DrawIcon = ChallengeHUD(P.myHUD).Crosshairs(); И так: Canvas.DrawIcon = ChallengeHUD(P.myHUD).CrosshairCount; Но все равно вылетает ошибка. Помогите, пожалуйста!!!
Сообщение отредактировал Gadavre - Вторник, 29 Декабрь 15, 20:56
Хоспади. DrawIcon это функция! НЕ переменная! DrawIcon невозможно что-либо присвоить. Можно использовать результат функции, но DrawIcon ничего не возвращает. Вы вообще разницу понимаете? хотя зачем я спрашиваю
Сообщение отредактировал GP - Вторник, 29 Декабрь 15, 21:29
Тогда у меня больше нет вариантов. И как же правильно записать эту функцию? Чтобы она брала не определенную текстуру, а ту , которую игрок выбрал в настройках? С выбором цвета прицела получилось ведь благодаря Вам!
Сообщение отредактировал Gadavre - Вторник, 29 Декабрь 15, 21:46
GP, Canvas.DrawIcon(Texture'BotPack.ChallengeHUD').CrossHairs(); Также не работает, но я кажись ближе к истине. Пишет не может найти путь к текстуре. Как то концовку надо дописать.... Не знаю... Может Вы все таки посмотрите
Сообщение отредактировал Gadavre - Среда, 30 Декабрь 15, 08:52
AI = Artificial Intelligence = искусственный интеллект Rating = оценка "оценка искуственного интелекта", или насколько блатным с этой пушкой бот чуствует себя (или считает другого игрока)