Оружие Игрока.Разбираемся
Оружие Игрока.Разбираемся
By SeriousHeming.. Статья предусматривает то, что вы умеете
создавать директории для модов, а также что у вас имеется Visual C++ 6.0
он полностью настроен на работу с SDK. Также данная статья
предусматривает, что Вы разобрались с редактированием классов Serious
Sam: TSE. © Ну что-ж статья посвящена следующему:
PS:Калаш(работа -JD- http://Sam4ever.do.am/) Здесь калаш "играет" в роли Томмигана Полный размер : http://st-games.ucoz.net/Heming/SDK_Screen_3-weapon_ak-.jpg PS:MP5 mini(работа VITEK http://Sam4ever.do.am/) Здесь MP5 "играют" в роли пистолетов Полный размер : http://st-games.ucoz.net/Heming/Screen_4-SDK-MP5_Mini-.jpg Так же мы можем заменить обычный ножик... wpn_fP // меняет наклон оружия вверх - вниз.Или сделать по хитроманчески : D PS:[Dark Dagger Model](работа $оучаснеG http://www.serioussite.ru/load/dark_dagger_model/13-1-0-677) Полный размер : http://st-games.ucoz.net/Heming/SDK_Screen_5-SG_Knife-.jpg Что нам для этого потребуется?
Только и всего. Итак, приступим, как бэ. Начнем с простого - научимся изменять наклон оружия от первого лица : Сейчас мы заходим в вашу workspace - Sources и ищем там файл EntitiesMP/Header Files/Common Headers/weaponspositions.h Видим параметры: wpn_fH // меняет наклон оружия вправо-влево. wpn_fB // меняет наклоняет оружие против часовой стрелки. wpn_fX // Перемещает оружие влево - вправо. wpn_fY // Перемещает оружие вверх - вниз wpn_fZ // Перемещает оружие вперед-назад. Например, мы хотим сделать повернутый нож. Но как мы найдем его в списке? Данные по оружию вы можете взять либо отсюда, либо из файла HUD.cpp. Итак: Оружие: Значение: WEAPON_NONE, // [0] WEAPON_KNIFE, // [1] WEAPON_COLT, // [2] WEAPON_DOUBLECOLT, // [3] WEAPON_SINGLESHOTGUN, // [4] WEAPON_DOUBLESHOTGUN, // [5] WEAPON_TOMMYGUN, // [6] WEAPON_MINIGUN, // [7] WEAPON_ROCKETLAUNCHER, // [8] WEAPON_GRENADELAUNCHER, // [9] WEAPON_CHAINSAW, // [10] WEAPON_FLAMER, // [11] WEAPON_LASER, // [12] WEAPON_SNIPER // [13] WEAPON_IRONCANNON, // [14] И, далее вставляйте свои значения.Удачи! Далее мы хотим научится.. Научиться изменять урон оружия в игре. Для этого нам потребуется:
Регулируем урон ножа Где регулируется урон от ножа?Естесственно, в файле PlayerWeapons.es.Итак, находим строку // ***************** SWING KNIFE ***************** Далее, ищем там же строку: m_moWeapon.PlayAnim(m_iAnim, 0); if (CutWithKnife(0, 0, 3.0f, 2.0f, 0.5f, ((GetSP()->sp_bCooperative) ? 100.0f : 50.0f))) { // Урон от ножа autowait(m_fAnimWaitTime); } else if (TRUE) { autowait(m_fAnimWaitTime/2); CutWithKnife(0, 0, 3.0f, 2.0f, 0.5f, ((GetSP()->sp_bCooperative) ? 100.0f : 50.0f)); // Также урон от ножа autowait(m_fAnimWaitTime/2); } Изменяйте значения 100 и 50. И вы узнаете, насколько нож может быть серьёзен.Только не сделайте Parse error 3.0 :D Регулируем урон кольтов. Итак, находим строку: // ***************** FIRE COLT ***************** Далее, ищем строку: FireOneBullet(wpn_fFX[WEAPON_COLT], wpn_fFY[WEAPON_COLT], 500.0f, ((GetSP()->sp_bCooperative) ? 10.0f : 20.0f)); // Измените параметры 10 и 20 на ваше значение и радуйтесь Регулируем урон дробовика. Итак, находим строку:
// ***************** FIRE SINGLESHOTGUN ***************** Далее, ищем там же: 500.0f, 10.0f, 14, afSingleShotgunPellets, 0.2f, 0.03f); // значение 10 - искомое. Вот так все просто. Редактировать урон двустволки и снайперки будет вашим "домашним заданием", а сейчас мы зациклимся немного на других оружиях. Например, таких как, например, огнемет, или скажем, рокетница. Ранее мы регулировали мощность пули, теперь же мы регулируем мощность "видимых" частиц. Начнем с рокетницы. Регулируем урон рокетницы. Player Weapons уже нам не понадобится, так как там хранится код, чем и как будет стрелять рокетница. Сейчас мы будем изменять урон от рокетницы и поэтому мы обратимся к файлу Projectile.es. Ищем строки: /************************************************************ * PLAYER ROCKET / GRENADE * ************************************************************/ О, здесь можно изменить множество интересных параметров в рокете. Рассмотрим, чтож.. void PlayerRocket(void) { // set appearance InitAsModel(); SetPhysicsFlags(EPF_PROJECTILE_FLYING); SetCollisionFlags(ECF_PROJECTILE_SOLID); SetModel(MODEL_ROCKET); /* Выбирает используемую модель. В нашем случае она находится в папке с рокетницей */ SetModelMainTexture(TEXTURE_ROCKET); /* Выбирает используемую текстуру. В нашем случае она находится также в папке с рокетницей */ // start moving LaunchAsPropelledProjectile(FLOAT3D(0.0f, 0.0f, -30.0f), (CMovableEntity*)(CEntity*)m_penLauncher); SetDesiredRotation(ANGLE3D(0, 0, 0)); /* Cторона, в которую полетит рокета на игрока. Тут никаких отклонений от игрока */ // play the flying sound m_soEffect.Set3DParameters(20.0f, 2.0f, 1.0f, 1.0f); PlaySound(m_soEffect, SOUND_FLYING, SOF_3D|SOF_LOOP); m_fFlyTime = 30.0f; if( GetSP()->sp_bCooperative) { m_fDamageAmount = 600.0f; // Повреждение на цель (Ps:600.0f - я поменял параметр) m_fRangeDamageAmount = 100.0f; // Повреждение в округе ( Скажем, рокетджамп отнимает 50 хп) } else { m_fDamageAmount = 500.0f; m_fRangeDamageAmount = 100.0f; } m_fDamageHotSpotRange = 4.0f; // Насколько далеко будет взрыв( m_fRangeDamageAmount = 100.0f;) m_fDamageFallOffRange = 8.0f; m_fSoundRange = 50.0f; // Максимальное расстояние звука от чего-либо m_bExplode = TRUE; // Взрывается при прикосновении чего либо? m_bLightSource = TRUE; // Имеет свет вокруг себя? m_bCanHitHimself = TRUE; // Может подбить сам себя и взорваться? m_bCanBeDestroyed = TRUE; // Снаряд может быть уничтожен? m_fWaitAfterDeath = 1.125f; m_tmExpandBox = 0.1f; m_tmInvisibility = 0.05f; // Шкала невидимости SetHealth(50.0f); // Здоровье (m_bCanBeDestroyed) m_pmtMove = PMT_FLYING; /* Projectile move type - Может просто лететь, как рокета, может рикошетить, как граната (PMT_SLIDING), и так далее.. Виды бывают: PMT_GUIDED PMT_GUIDED_FAST PMT_FLYING PMT_SLIDING PMT_FLYING_REBOUNDING PMT_GUIDED_SLIDING */ По тем же параметрам вы сможете изменить и другие виды Projectile. Вот и все. Далее у нас идут 2 интересных вида, которые вы не сможете обнаружить в файле projectile.es. Это Cannonball и Flame. Кстати, я так и не пойму, почему их не включили туда. Намного проще было бы сделать стреляющего ядрами биомеханоида.. Регулируем урон пушки SBC. Мы хотим изменить урон ядра. Заходим в CannonBall.es и ищем строку: #define IRON_DAMAGE_MIN Видим рядом: #define IRON_DAMAGE_MIN 400.0f // здесь указано минимальное повреждение от ядра #define IRON_DAMAGE_MAX 750.0f // а здесь максимальное Ничего трудного нет. Регулируем урон огнемета, а точнее огня. Что-ж, изменяем урон огня. Итак, используя файл Flame.es ищем строки : #define DAMAGE_AMMOUNT 30.0f Ну, изменяем значение, и радуемся :D Источник: http://St-games.ucoz.net | |
Категория: SDK | Добавил: Heming (09.03.2011) | | |
Просмотров: 2924 | Комментарии: 2 | |
Всего комментариев: 2 | |
|