для такой цели как хочет автор будет обязательно и в UT2004, так как требуетса поменять значение в коде HUD-а, которое не вынесено в переменную - следовательно и доступа из вне к этому значению нет никакого.
ЦитатаGadavre ()
реально ли сделать мутатор,в котором будет частично свой худ и будет работать по сети?
Реально все, но я за это братса даже не собираюсь, ибо это эквивалентно сбору автомобиля через выхлопную трубу. :yaoming:
Самый-самый примитив нового типа игры, с использование кастомного худа:
Код
class InstaDeathMatch extends DeathMatchPlus config;
Естественно в defaultproperties можно поменять название и прочие параметры, как называютса переменные подглядите в стандартном коде. Такой метод имеет гораздо большые возможности по скравнению с мутатором - например можно без проблем зафорсить использование существующего мутатора.
GP, Посмотрите, пожалуйста, предварительный набросок моего второго мутатора. Сделал как Вы написали, но движок его читать не хочет, хотя компилляция прошла без проблем. Может в int файле как-то по-другому писать нужно, я не знаю. Полностью скопировал класс ChallengeHUD с оригинала изменил только: if ( PawnOwner.Health < 80 ) Но здоровье не понижается, как было в мутаторе и худ здоровья увы не мигает с 79 единиц.
При чем сдесь мутатор вообще? Новый тип игры (SurvivalA) должен появитса в списке меню, где выбираетса дезматч, цтф и т.д. Его может не быть разве потому, что название не изменено (хотя должно бы появитса два дезматча) - посмотрите в оригинальном DeathMatchPlus в default properties где переменная с названием типа игры и поставте ее себе, с другим названием естественно.
Очень удобно и интересно , когда мутатор сделан так, что сам игрок может менять его параметры. Если я выведу ряд переменных в конфигурационный файл ini, то будет ли работать мой мутатор по сети?
Есть ли какие-либо правила кодинга для беспроблемной и правильной работы мутатора по сети?
Не знаю как в 99-м (знаю, просто лень проверть чтоб утверждать на 100%), но в 2004-м мутаторы полноценно по сети не роботают, ибо исполняютса только на сервере - остальное зависит от самостоятельности остальных класов. Поэтому кастомный режим игры в этом плане лучше (всеравно мутаторы "хендлит" он). Относительно настроек чего угодно - теоретически достаточно перед переменной указать config, например var() config float EasyAim;. Чтоб настройки сохранились надо еще вызвать спецыальную функцыю, но у мутаторов это все автоматически на сколько помню... А сеть в общем это большой геморой - если хочеш что-бы что-либо нестандартное роботало по сети, прийдетса хотя-бы на 4-ку (по пяти-бальной шкале) знать как устроено то, что уже есть в игре (сам знаю где-то на 3 с минусом ). Имхо вникать в поддержку сети не советую - потраченые силы того не стоят.
GP, По идее, если у двух клиентов будут разные значения в конфигах и настройках мутатора, то игра с мутатором не должна получиться. Так, например, все встроенные в игру мутаторы без настроек, типа instagib, sniper arena, relics и т. д. прекрасно играются по сети. Имхо , если хочешь, чтобы с твоим мутатором играли по сети, то делай его без конфигов и настроек, которые может менять сам игрок.
Есть желание пройти сингл компанию в UT2004. Но не люблю стрелять на огромных картах в мелких ботов. Можно ли как-то через конфиг игры увеличить модели ботов или на крайняк сделать их скины ярче?
По идее, если у двух клиентов будут разные значения в конфигах
нет, на всех влиять могут только конфиги на сервере, другие же имеют только локальное значение (напрмер те-же настройки графики). Советую для начала вооружитса терпением и преводчиком, и осилить вот эту статью. Перечисленые мутаторы роботают по сети как раз из-за самостоятельности класов в плане репликацыи - все что нужно для их роботы уже предвидено в других класах на стадии разработки игры, а вот нам что-либо изменить в стандартном контенте безболезненно уже не получитса.
Пуля идет мимо прицела только в настройке 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;
Простите за наивность! Я пытался сделать по верхней строке 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; Но все равно вылетает ошибка. Помогите, пожалуйста!!!
Хоспади. DrawIcon это функция! НЕ переменная! DrawIcon невозможно что-либо присвоить. Можно использовать результат функции, но DrawIcon ничего не возвращает. Вы вообще разницу понимаете? хотя зачем я спрашиваю
Тогда у меня больше нет вариантов. И как же правильно записать эту функцию? Чтобы она брала не определенную текстуру, а ту , которую игрок выбрал в настройках? С выбором цвета прицела получилось ведь благодаря Вам!
GP, Canvas.DrawIcon(Texture'BotPack.ChallengeHUD').CrossHairs(); Также не работает, но я кажись ближе к истине. Пишет не может найти путь к текстуре. Как то концовку надо дописать.... Не знаю... Может Вы все таки посмотрите
AI = Artificial Intelligence = искусственный интеллект Rating = оценка "оценка искуственного интелекта", или насколько блатным с этой пушкой бот чуствует себя (или считает другого игрока)