Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
Залить бы полный, нормальный пакет файлов для моддинга... В принципе могу этим заняться)
Добавлено (30.11.2011, 09:21) --------------------------------------------- Объекты HUD.cpp, Player.cpp
Допустим хочу сделать так, чтобы пистолет использовал пули автомата. Для этого по примеру других оружий делаю так, что от выстреле боезапас пуль на автомат уменьшался на один, так же добавив условие, if Bullets<=0, next weapons.
Как в HUD отобразить запас ammo при использовании кольта? (В частности это еще казается ChainSaw, т.к. задумывалось использование напалма)
Думаю что нужный тебе код содержится в HUD.cpp и PlayerWeapons.es.
В первом, поищи строки:
Code
// draw complete weapon info if knife isn't current weapon if( ptoCurrentAmmo!=NULL && !GetSP()->sp_bInfiniteAmmo) {
Там идёт код вывода инфы из PlayerWeapons.es на дисплей.
Ниже можно найти что-то вроде:
Code
else if( ptoCurrentWeapon!=NULL) { // draw only knife or colt icons (ammo is irrelevant)
Эту часть, наверное, вообще можно заключить в */ /*.
А в PlayerWeapons.es можно найти строки:
Code
INDEX GetAmmo(void) { switch (m_iCurrentWeapon) { case WEAPON_KNIFE: return 0; case WEAPON_COLT: return m_iColtBullets; case WEAPON_DOUBLECOLT: return m_iColtBullets;
m_iColtBullets можно просто заменить на m_iBullets, но сразу появится куча проблем, вроде бесконечного барабана в кольтах.
Можно поискать где происходит перезарядка кольтов и написать что-то вроде:
if (m_iBullets=>6 || m_iColtBullets=>6) { jump ReloadColt(); } else if (m_iBullets<6) { SelectNewWeapon(); }
Вообще, лучше поглубже покопаться в функции FireColt() в PlayerWeapons.es (где-то 4191 строчка). Ниже есть FireDoubleColt().
Сообщение отредактировалSteadfast - Среда, 30.11.2011, 13:49
ReloadColt устанавливает параметр m_iColtBullets в 6, и в зависимости от m_iColtBullets производится перезарядка. То есть, если просто взять и заменить m_iColtBullets на пули, кольт будет перезаряжаться, только когда останется 6 пуль. Поэтому от m_iColtBullets нельзя избавиться. Лично я делал примерно вот так:
Code
if (m_iBullets<=0) { SelectNewWeapon(); } if (m_iColtBullets <= 0) { jump ReloadColt(); }
Стоит заметить, что в процедуре огня мы уменьшаем m_iColtBullets И m_iBullets одновременно. В процедуре огня двумя кольтами мы уменьшаем m_iBullets два раза, а m_iColtBullets - один раз. Далее, в ReloadColt следует вот такой код:
Здесь я добавил опцию, позволяющую делать патроны в кольте бесконечными во время игры путём чтения test_bColtInfinite, зарегистрированного в _pShell при запуске игры через GameMP.DLL, то есть, патроны можно сделать бесконечными с помощью любой энтити, способной писать в _pShell. Это полезно, т.к. в начале игры, когда у игрока совсем мало оружия, патроны можно сделать заканчивающимися, ну а потом, когда кольт переходит в разряд оружия, которым игрок нечасто пользуется, было бы неприятно везде находить ненужные патроны к нему (да, у меня отдельный тип боеприпасов - патроны для кольта, это здесь я их заменил на m_iBullets для наглядности), поэтому есть смысл сделать его бесконечным. Ну а что касается HUD.cpp, тут всё предельно просто. Ищи структуры _awiWeapons и _aaiAmmo, вноси нужные изменения и далее ищи места, где из них считываются данные.
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
Было бы неплохо иметь кольт, требующий патронов. Интереснее играть станет, только нужно кольту урон поднять
До сих пор в топе загрузок и просмотров... Неужели я тоже оставил свой след на этом сайте? А ведь я здесь уже целых двенадцать лет... Удалил свои старые карты из профиля, на кой они мне. Маппер из меня никудышный.
Steadfast, кстати, компилирую согласно мануалу DR_ZLO. Все равно пишет одну ошибку: error executing cmd.exe
До сих пор в топе загрузок и просмотров... Неужели я тоже оставил свой след на этом сайте? А ведь я здесь уже целых двенадцать лет... Удалил свои старые карты из профиля, на кой они мне. Маппер из меня никудышный.
Собери новый движок на основе 2D. В Сэме никогда небыло "2D экрана". Даже модов.
То, что ты называешь "2D экраном" ничто иное как вид "сбоку". Вообще так называют "Платформером" (наверное потому что в таком обзоре игрок прыгает по платформам)
А как сделать 2Д: - Надо задать, как игрок будет перемещаться ровно влево-вправо, не отскакивая в перед-назад - Установить камеру, чтобы ровно смотрела на игрока (и прибижение её к игроку в случае необходимости (Ну подумаешь, вдруг браши "за камерой возникнут)) - Чтоб курсор мыши был не как прицел, а что-то вроде указателя. Чтобы Сэм целился вверх-вниз, используя координаты курсора.
и т.д. В общем осилить могут проф-ы
Сообщение отредактировалart-serious - Пятница, 02.12.2011, 17:18
Добавлено (02.12.2011, 17:28) --------------------------------------------- Molodec, Поставь XP SP3 чистую, потом при установке семерки выбери пункт "воостановление Windows" (он должен восстановить путь загрузки Win7).
Перед загрузкой системы он потом должен дать "на выбор" загрузку ОС: Windows 7 Windows XP
Ну а как я у себя это сделал: Побил логический том, выделив для XP всего 8 Гб, установил туда WinXP X86. Как правило, путь загрузки на Win7 затирается. Вставляешь инсталлятор с Win7, делаешь "Восстановление Запуска" (или как там его) и типа все норм. Имеешь две стабильные винды.
В общем дома на днях попробую это проделать и отпишусь об успешности этой операции