На главную страницу
Для новичков:
О Quake3 вообще
О тактике
О модах
·Quake 3 Arena Mods
·Создание Мода. Урок 1
·Создание Мода. Урок 2
·Создание Мода. Урок 3
·Создание Мода. Урок 4
О скинах
О терминалогии
Статьи:
Changelog Quake 3 Arena v1.32
Игроки с приставкой "HARDCORE"
Пасхальные Яйца В Quake 3 Arena
Насколько умны игроки в Quake?
Консоль:
О консольных командах
О скриптах
Файлы:
О утилах
О патчах
О картах
О модельках
О демках
О конфигах
Арт:
О разделе Арт
Сайт:
О гостевой книге
О ссылках
О нашем баннере
О нас
|
Создание Мода. Урок 4
Этот небольшой урок посвящен модификации существующего оружия
Модификация
Откроем файл g_weapon.c на строке 152. Там находится следующий код:
if ( traceEnt->takedamage) {
G_Damage( traceEnt, ent, ent, forward, tr.endpos,
damage, 0, MOD_MACHINEGUN);
}
При помощи комментариев уберем этот код. Если скомпилировать сейчас, то в игре мы увидим и услышим выстрелы, но они не будут наносить цели поражения. Добавим новую строку кода, в результате все будет выглядеть так:
//if ( traceEnt->takedamage) {
// G_Damage( traceEnt, ent, ent, forward, tr.endpos,
// damage, 0, MOD_MACHINEGUN);
//}
G_RadiusDamage (tr.endpos, ent, damage * 1.2, damage * 3, NULL, MOD_MACHINEGUN);
Теперь можно компилировать и мы получим в игре пули с большой поражающей мощью.
Пояснения
Сейчас я поясню как это все работает.
¤ Вызываем функцию G_RadiusDamage, отвечающую за нанесение поражения игроку.
¤ tr.endpos - точка попадания пули
¤ ent - указатель на "хозяина" пули (атакующего игрока)
¤ damage * 1.2 - усиливаем повреждающую способность пули в 1.2 раза
¤ damage * 3 - а радиус повреждения в 3
¤ NULL - здесь указатель на того игрока, которому взрыв не причинит вреда. Например, если мы укажем здесь ent, то атакующий не получит повреждения от взрывов своих же пуль.
¤ MOD_MACHINEGUN - указывает, какую анимацию использовать, если игрок получил смертельные повреждения.
www.u3d.agava.ru
|