Ещё чуток ГТАшно-скриптхучного.
Когда мне надоело бегать по городу одним Нико, я добавил в свой скриптик функцию, позволяющую «переодеваться» в прохожего. Ну, плюс ещё немного ГТАшной развлекухи =) Воспою, тк'сз'ть, оду моей любимой игрушке.
Разумеется, также есть несколько примеров скриптика на .NET
Очень много букв, и исключительно по теме ГТА (и по скриптхуку).
18+ (обсценная лексика).
Видео с моими некоторыми издевательствами над несчастными прохожими можно посмотреть вконтактике по прямой ссылке.
До кучи, нашёл крутой сайт по модописанию — GTAmodding.com. Сайт на инглише, но очень полезен в плане скриптов — файла справки по СкриптХуку отнюдь не всегда достаточно, а так просто нагуглить возможно далеко не всё. Иногда везёт, и можно скачать чей-нибудь мод в формате .CS — чистый код, только в нём ещё ковыря-ааться... Сайт, в основном, про GTA3, VC, SA и IV, но пятая часть выпущена на том же движке, что и четвёртая, следовательно, в будущем это дело может пригодиться =) Когда/если она выйдет для компа, и её в достаточной мере поломают, чтобы она была совместима со скриптхуком.
Я не потому такой злой, что пишу скрипты в Блокноте (у меня нет ВижуалСтудии). Я злой, потому что иные модопейсатели компилируют свои моды в DLL, и нет возможности посмотреть на примеры использования некоторых функций. Казалось бы, простая задумка «выреспавнить конкретного персонажа на карте, пометить его «блипом», заставить его охотиться на Нико, а за убийство персонажа дать 100500 денег» на практике оборачивается ужасным геморроем.
По команде spawn появляется прохожий со 100 единицами здоровья, с нулём брони, без оружия, с рандомным количеством денег и ведущий себя как простой прохожий CIVMALE/CIVFEMALE (кроме ментов) — что-то бубнит, может закурить сигаретку или достать мобилу, и боится выстрелов. Если далеко уйдёт или если его убить, через какое-то время он исчезнет.
Со скриптхуком всё сложнее, и кучу самих собой разумеющихся вещей (типа убили — труп пропал) нужно прописывать руками, иначе он так и останется в игре и будет жрать память.
Постепенно пытаюсь перейти на новый уровень «скриптхучения» — использование «родных» функций ГТА4 через процедуру GTA.Native.Function.Call("ИмяФункцииВКавычках", параметры); На сайте ГТАмоддинг есть полный список этих функций вместе с описанием многих из них; увы, по ходу, пишут любители, ковыряющиеся в коде, и описаны отнюдь не все функции. Я тоже изучаю скриптхук вместе с его функциями, качая ГТАшные моды (которые в формате .CS) и ковыряясь в их коде.
Скриптхучная мечта — каким-нибудь образом преобразовать модельки из катсцен в игровые. Помимо агента ZOG, там есть ещё шут, мужик в одних трусах, да и просто — куча персонажей, которые засветились только в катсценах.
Пример использования «родной» функции SAY_AMBIENT_SPEECH (персонаж в данном случае говорит «спасибо», говорит по-разному; увы, это пока что мой предел):
GTA.Native.Function.Call("SAY_AMBIENT_SPEECH", Player.Character, "thanks", 1, 1, 0);
Полный список ambient speeches есть здесь, какие-то «спичи» у разных персонажей могут отсутствовать вообще.
Скриптик переодевания «прост, как мычание» и прописывается внутрь моего, о котором я уже писал в одном из моих предыдущих постов. Прошу обратить внимание, перед нажатием F8 нужно прицелиться в нужного прохожего — метод World.GetClosestPed, увы, не всегда работает корректно. Лично я придрочился успевать это сделать за мгновение — пока прохожий жопой не почувствовал, что в него целятся («прицелиться» можно даже «молотовым», нельзя лишь кулаками, ножом и битой).
if (e.Key == Keys.F8) // любая незанятая кнопка
{ Mimicre(); }
private void Mimicre()
{
Ped Pedestrian = null;
Pedestrian = Player.GetTargetedPed();
if (!Exists(Pedestrian)) return;
Player.Model = Pedestrian.Model;
Helm = false; // ниже будет понятно, зачем
}
Один из самых простых способов «превратиться» — «выреспавнить» нужного прохожего через консольную команду spawn. Точной копии сразу может не получиться — почти все прохожие имеют несколько вариантов шмоток, и мимикрия будет довольно рандомной. Регистр неважен.
Список моделек есть в файле commonsdatapeds.ide. Игровые персонажи начинаются с «ig_», персонажи из катсцен — с «cs_», но они выглядят коряво (тело согнуто под углом 90 градусов), а жаль.
Я упомяну наиболее примечательные — редкие или просто уникальные =) Не все, но большинство =) Регистр неважен, но так красивше =)
F_Y_StripperC01 и F_Y_StripperC02 — стриптизёрша из ночного клуба, в минилифчике и танга, белая и шоколадная, соответственно. Я ею не играю, использовал лишь для скриншота выше, но, может, кому и приглянётся =)
M_M_Alcoholic — относительно прилично одетый алконавт, которого в одной из катсцен с Фрэнсисом вёл мент. Штаны и рожа одни и те же, и в одном ботинке, зато две разных рубашки =) Шлем есть, и весьма интересный =)
M_M_BusDriver — когда-то в ГТА4 задумывалось, что автобусы будут кататься по городу. Потом от этого отказались, а моделька осталась =)
M_M_Doc_Scrubs_01 — хирург из миссии «Flatline», во врачебных шмотках.
M_M_Doctor_01 — мужик-доктор из миссии «Flatline».
M_M_DodgyDoc — доктор-маньяк из одной из миссий Элизабеты, которому нужно доставить трупы.
M_M_HPorter_01 — отельный носильщик из миссии с отелем «МажестикЬ».
M_M_Pilot — лётчик =) Я не знаю, где они водятся «в диком виде» — по всей видимости, в глубинах аэропорта, где за нахождение лепят сразу 4 звезды розыска (уберёшь — появляются снова). Пусть будет, форма пиздатая =)
M_M_Telephone — по-видимому, телефонист. В игре ваще не видел нигде, но, судя по игровым файлам, он должен лазать по столбам.
M_M_Train01 — машинист поезда. Главная примечательность модельки в том, что она отсутствует в игре вообще и доступна лишь вот таким способом. Подробнее на ГТА.Вики.
M_Y_Cop, M_Y_SWAT и M_M_FBI — различные дяденьки милиционеры. Когда тянет запереться где-нибудь типа запертой квартиры Олега Минькова и поиздеваться над ментами (которые не смогут в неё проникнуть, ибо дверь заперта, а как их открывать — а хуй его знает), лучший способ приобрести три звезды розыска сразу — «выреспавнить» и пристрелить мента.
M_Y_Cowboy01 — тот самый «риал каубой!», которого можно увидеть в одном из шоу в «Перестройке».
M_Y_FF_RScafe и F_Y_FF_RScafe — персонал некогда задумывавшегося в игре «RockStar Cafe», в игру не вошло, но модельки есть.
M_Y_Multiplayer и F_Y_Multiplayer — совершенно рандомный прохожий в совершенно рандомной одежде, мужского и женского пола, соответственно =)
M_Y_SwordSwallow — судя по названию, шпагоглотатель, чувак в довольно кабарешном прикиде, возможно, даже из какого-то шоу (я не видел).
M_Y_Valet — тоже, видимо, чувак из миссии в отеле «МажестикЬ», но я его вообще не помню.
По IG-шкам я тоже пройдусь =) Тоже — только по уникальным, и то — не по всем.
IG_Anthony — некий Anthony Corrado, которого нужно убить в миссии «Flatline» — мужик в одежде пОциента.
IG_CharlieUC — мент под прикрытием из миссии «Blow your cover».
IG_Isaac — таки, да =) Каноничнейший евr'ей из миссии в музее (потом его ещё вальнули в отеле «МажестикЬ»).
IG_Jay — оператор Мэнни.
IG_Luis — мужик из баллады о гее Тони, фигурировал в нескольких миссиях в ГТА4.
IG_MaMC — мамаша МакРири, вне катсцен вообще нигде не встречается.
IG_Mickey — бармен из бара «Товарищ».
IG_Ricky — комик Ricky Gervais, то ли «пасхалка», то ли он изначально задумывался как игровой персонаж. Как бы то ни было, в обычной игре я его не видел, тока в «камеди-клабе» (там моделька «CS_»).
Раз уж я затронул тему перевоплощения в простых прохожих, затрону и такую тему, как их прикид.
if (e.Key == Keys.F6)
{ Player.Character.RandomizeOutfit(); }
У прохожих куча разных шмоток, и с помощью кнопки F6 можно выбрать более-менее подходящий =) И множество прохожих в качестве шлемов использует обычные головные уборы (у молодых евреев — шляпа с приделанными пейсами, можете проверить) =)
Как носить шлем/шляпу.
bool Helm = false; // я её прописал перед описанием процедур нажатия на клавиши, она ГЛОБАЛЬНА
if (e.Key == Keys.F5) // любая незанятая клавиша
{ WearHelm(); }
private void WearHelm()
{
if (Helm == true)
{
Player.Character.ForceHelmet(false);
Helm = false;
}
else
{
Player.Character.ForceHelmet(true);
Helm = true;
}
}
Кое-что из интересных машинок, что тоже можно спавнить.
Burrito2 — фирменный фургончик херачечной прачечной. Сама прачечная находится неподалёку от «Перестройки», но такой фургончик, по ходу, появляется только в миссии «Hang Out To Dry».
Feroci2 — фирменная аэропортовская Ферочи «Fly with us».
Perennial2 — их же фирменный Perennial.
Romero — катафалк. Классика же ж =)
Emperor2 — ушатанный напрочь Emperor с «пукающим» движком =)
Sabre2 — такая же ушатанная Sabre.
Vigero2 — соответствующая Vigero.
PStockade — ментовский (не ОМОНовский) броневичок, очень редкая машинка. По слухам, она иногда респавнится рядом с тюрьмой, а так она участвовала в двух миссиях —при ограблении банка и при перевозке заключённого.
NStockade — соответственно, ОМОНовский броневичок.
SultanRS — типа гоночного «султана», гташная вики утверждает, что она стоит на северо-западе Олдерни у заброшенного дома, и больше нигде, я поверю ей на слово =)
По остальным машинкам можно посмотреть инфу на ГТА.Вики. Увы, поезд и фуникулёр не спавнятся =(
Крутая штука — SparkIV. Для просмотра и (при желании) изменения графических ресурсов игры — самое то. Я не изменяю графику (ценю игру такой, какой её выпустили создатели), но текстур шмоток и ёбл оттуда нарипать можно, а потом вставить хоть во второго Макса Пейна, хоть в ГТА3, который я до сих пор по-своему люблю =)
Помнится, во времена староглиняные я сделал для своей Нокии тему «БургерШот», добросовестно взяв графику из игрушки =) Да, потрахался я знатно, но даже бургеры двигались, как и должно быть =)
Эх, меня никогда не перестанет удивлять и умилять, что прохожие не поднимают то, что уронили. Идёт человек с продуктами, его толкаешь (даже случайно), он это всё роняет и идёт дальше, как ни в чём не бывало. Несколько раз наблюдал, как менты, сказав что-то в рацию, её выбрасывали на хер. Подойдя к продавцу хот-догов, можно случайно задеть лоток и вырубить лампу или порушить кетчупы с соусами.
Вот жаль, что во времена GTA3/VC не было скриптхука. В ГТА3 побывать на крыше здания Дональда Лава или на верхнем этаже стройки можно было тока с внешним трейнером, также, как и в Вайс Сити «выреспавнить» катафалк, по-честному доступный только в одной миссии. Хотя, можно и чит-кодом выреспавнить, но это всё же не то.
Ну и леjендарный Ghost Town — та ещё тема.
Что, правда, удручает в ГТА4 — там нету таких кодов, как в III/VC, чтобы раздать прохожим оружие, и чтобы они дрались друг с другом. Как это сделать через скриптхук, я пока ещё думаю и ищу возможности.
Ещё немножко интересных мест =)
В местное представительство ZOG — «United Liberty Paper» — можно попасть только телепортом по координатам -74 55 15. Я тока щас заметил, что там есть ещё и второй этаж — -80 55 20 =) Если совсем приняться разгадывать загадки зоговского здания, по координатам -82 57 60 находится «заготовка» для кабинета из катсцены — тупо прямоугольная комната с источником света.
-300 280 20 — второй этаж в здании «Magic Curtain», прямо над входом. Вообще нигде не фигурирует, просто очень удачно расположено для извлечения лулзов. И да, оно недоступно для прохода «снизу».
В Бургер Шотах бывают сортиры, но, увы, в отличие от Клакин Беллов, они недоступны и «прозрачны», если в них телепортироваться. Кухня в Бургер Шотах также доступна только через телепорт, ShowPosition и арифметика вам в помощь =)
Ещё можно терлепортироваться внутрь «палаток» — просто just for lulz.
И как-то я совсем забыл про жилище некоего Лайла Риваса, которого просит убить Брюси в миссии «Search And Destroy». Жилище так себе и ничем особо не примечательно (разве что засранным санузлом). 882 -26 29 — координаты коридора, 878 -21 29 — координаты прихожей с открытой дверью в засранный санузел (по-другому прихожая недоступна). Можно пострелять в окно =)
Очень грустно и обидно, что интерьеры подгружаются только ради катсцены, а после — выгружаются. Бар «Товарищ» (930 -490 16), например, в котором происходят катсцены с Глебовым, загружен сразу, да что там — даже кабаре «Перестройка»! А домик Фаустина, например — нет (а где рендерится его подвал, я вообще без понятия). Мод для подгружения интерьеров для оригинального GTAIV, по слухам, где-то есть, но по единственной ссылке, что я нашёл, была 404-я ошибка =( Если у кого вдруг есть — поделитесь, пазязя.
У меня пока что всё =) Stay tuned =)
