1 - ModifyPlayer роботает один раз, так не пойдет. 2 - Не уверен что "IsA" есть в 99-м, скорее что нет. Это делать надо в самой пушке, мутатор может только ставить кастомный молоток. В пушке должно быть две функцыи которые отробатывают при виборе и убирании (в 2k4 это BringUp и PutDown). При выборе пушки проверяем бот ли владелец, и если да то увеличиваем скорость, при убирании тоже проверяем и ставим дефолтную. Скорость должна быть в свойствах Pawn-a. По памяти в 99-м вроде Botидет отдельным подкласом павна, поэтому колупать надо в том направлении. Алсо я не забросил кодинг, я забросил 2k4 и негодую по поводу безпредела в UT4
Пока только играть, мб хоть научусь нормально. Надо железо чтоб хотя б в FullHD можно было движок насиловать, два монитора для редактора и прочее... ноут не вариант, да и времени не очень много. Как минимум пока альфы-бэты я лезть точно не буду.
Да там играть то в нечего, только дизайн и графику посмотреть.
Мне не понравилась возможность онлайн игры с обязательным входом в аккаунт, который вместе с достижениями храниться на серверах разрабов. Раньше такого не было! Любой сбой на сервере и все достижения могут просто стереться. и онлайн игра будет невозможна пока не создашь новый аккаунт. Простой пример из жизни: мой отчим фанат world of tanks, прокачал почти все танки, заработал кучу победных очков, но в один прекрасный момент его аккаунт, его адрес электронки просто были стерты или похищены... матерился трехэтажном матом , но делать нечего, стал играть заново как новичок и с новичками.
Отсутствие сингл компании и игры в нее в офлайне также не красит игру. .. Это не соответствует нашей классической анриловской традиции
А попытка разрабов называть UT4 как первым турнаментом вообше кощунственна и оскарбляет чувства фанов..., если перенесли часть звуков, музыки и физики из ut99 в ut4, то это не повод называть современный и недоработанный вариант именем великой классики , именем игры, в которую свое время играло народу намного больше чем играет сейчас в ut4, именем игры ради которой покупали новые компьютеры и рубились часами в клубах, забывая о еде и сне...
аккаунт, который вместе с достижениями храниться на серверах разрабов.
Это плохо и вообще если игра катает только через инет это не ок. Я думаю со временем с этим все проще будет и по другому. Да и какие там достижения? Мои достижения в 99 это поиграть в него на своем компе.
Infinite War v5.0.2 construction UIP 2.0 - UIPP(UIP 2.1)
UberSoldier, Знаю, есть такая фича в модах, когда одним выстрелом можно заработать несколько фрагов. Ты не думал о том, чтобы добавить эту фичу в свой мод? То есть , если 2 вражеских танка находяться на одной линии и танк игрока буквально одним выстрелом прошивает эти 2 танка, то игрок получает 2 фрага! Круто, не правда?
Не прокатит, снарады танка не прошибают на сквозь. А вот Взорванный танк зацепит другие объекты находящиеся рядом с ним взрывной волной, будь это пехота которая бежит рядом с танком или другой полуживой танк. Если в танке сидят более одного человека, то вынесешь ты всех оттуда, особенно если это Бредли, который по мимо водилы, еще 4 тела везти может, этого да, с крупного калибра можно с ваншота вынести если под башню зарядить. С БТРом таже история, там 6 тел. Моя система пробития не такая как в BOT и даже не рядом, смысл почти такой же, но по исполнению совсем другой. Можно конечно сделать такой же, но это нудно и не к чему.
Infinite War v5.0.2 construction UIP 2.0 - UIPP(UIP 2.1)
GP, Посмотрите пожалуйста эту секцию оригинального кода для пушки ImpactHammerI function float RateSelf( out int bUseAltMode ) { local float EnemyDist; local bool bRetreating; local Pawn P;
if ( EnemyDist > 400 ) return 0.1; if ( (P.Weapon != self) && (EnemyDist < 120) ) return 0.25;
return ( FMin(0.8, 81/(EnemyDist + 1)) ); }
Я понимаю, что этот код указывает для бота наносить удар хамером в определенный момент в зависимости от расстояния между ним и противником. В оригинале бот порой топчется рядом с игроком полсекунды, секунду, прежде чем наносит удар и это его ослабляет. Хотелось бы улучшить этот код, чтобы бот наносил удар немного на большем расстоянии чем в оригинале. Но чтобы его улучшить нужно его понять, понять все эти цифры. Как прочитать этот небольшой отрезок?
Этот код не "указывает", а выдает оценку "собственных шансов" с этой пушкой и какой режым огня лучше (bUseAltMode). Бот использует это при выборе пушки в зависимости от собственного кода, скорость его реакцыи сдесь не поправить.
"==" это проверка равности, так-же как ">=" больше или равно и "<=" меньше или равно. "!=" это не равно, тоесть если "(Other == Owner)" равняетса "True" то "(Other != Owner)" будет равно "False". "||" это "или", "&&" это "и", ну и скобки по тем же правилам что и в математике.
Код
if ( (Other != self) && (Other != Owner) && (Other != None) ) "(Other != self) && (Other != Owner) && (Other != None)" это X "if ( X )" = "Если X равно истина" "(Other != self)" это А "(Other != Owner)" это B "(Other != None)" это C "if ( X )" = "if ( A && B && C )" = "X равно истина если (A равно истина и B равно истина и C равно истина)" А равно истина если Other не равно себе (актор в котором исполняетса код) В равно истина если Other не равно собственнику (актора в котором исполняетса код) С равно истина елси Other не равно пустоте
Добавлено (24 Октября 16, 15:38) ---------------------------------------------
тут "если ((Other равно пустоте) или (Other равно собственнику) или (Other равно себе) или (Собственник равен пустоте))", тоесть если что-либо из списка правда то делаетса return функцыя кончаетса.
Если поставить вместо 100,0 0,0 то можно наносить удары в пол и стены и не получать повреждений от своего оружия А вот (Other == self) - это, видимо другой игрок или бот, хотя все равно непонятно, ведь self с английского переводиться как "сам". Если считать (Other == self) тем игроком, кто делает выстрел, то кто же тогда (Other == Owner)?
а вот в этой строке повреждение получает бот или игрок, в которых стреляют
self это сам актор чей код исполняетса, в коде пушки это пушка, в коде игрока это игрок, в коде ракеты ракета и т.д. В ракете например можно писать damage а можно написать self.damage - это одна и та-же переменная. owner это владелец, по умолчанию то, в чьем коде создалса обьект (если не указан другой) тоесть владелец ракеты обычно пушка, владелей пушки - игрок и т.д. это абстракцыи для связи всего воедино функцыя должна чегото возвращать (y = sin(x)), по этому на return-е код заканчиваетса, даже если возвращать нечего (None, void и т.д.)