![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Гость_Igor |
|
|||
Unregistered |
Требуется следущее, игра quake 3, при попадании оружием имеющим значение 100 (пуля например из пулемёта имеет урон 10, ракета из рокетницы 100, плазменная пушка 30) в игрока, и если у игрока уровень здоровья 99, его разносит в клочья, есть комманда /kill, которая просто убивает игрока, он просто падает, хотелось бы что бы при нажатии клавиши имеющей свойство /kill игрока так же разносило в клочки. Вот код отвечающий за разнос в клочья, что надо изменить ?
================== CG_LaunchGib ================== */ void CG_LaunchGib( vec3_t origin, vec3_t velocity, qhandle_t hModel ) { localEntity_t *le; refEntity_t *re; le = CG_AllocLocalEntity(); re = &le->refEntity; le->leType = LE_FRAGMENT; le->startTime = cg.time; le->endTime = le->startTime + 5000 + random() * 3000; VectorCopy( origin, re->origin ); AxisCopy( axisDefault, re->axis ); re->hModel = hModel; le->pos.trType = TR_GRAVITY; VectorCopy( origin, le->pos.trBase ); VectorCopy( velocity, le->pos.trDelta ); le->pos.trTime = cg.time; le->bounceFactor = 0.3; le->leBounceSoundType = LEBS_BLOOD; le->leMarkType = LEMT_BLOOD; } /* |
|||
|
||||
wertyman |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 28.10.2003 Репутация: нет Всего: нет |
где исходники достал !? кинь плз... линк... в лом шарится... то же хочу глянуть
![]() |
|||
|
||||
Unregistered |
|
|||
Unregistered |
Исходник есть у меня, ну ты можешь чем то помочь ?
|
|||
|
||||
wertyman |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 28.10.2003 Репутация: нет Всего: нет |
врядли.. нужно нудно и потно изучать полностью сырцы... тада хоть что то понять смогу... по этой функц. мало что понять!
|
|||
|
||||
Unregistered |
|
|||
Unregistered |
Сырцы у меня ещё и с функцией аимбота..давай мейл
|
|||
|
||||
wertyman |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 28.10.2003 Репутация: нет Всего: нет |
||||
|
||||
RAN |
|
|||
Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 709 Регистрация: 14.3.2003 Где: Щёлково Моск.обл. Репутация: 5 Всего: 6 |
Модератор: Прекращайте переписку, а то закроем тему.
|
|||
|
||||
FrAcTaL_life |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 9.11.2003 Репутация: нет Всего: нет |
g_weapon.c на строке 152
G_RadiusDamage, отвечает за нанесение поражения игроку. tr.endpos - точка попадания пули ent - указатель на "хозяина" пули (атакующего игрока) damage * 1.2 - усиливаем повреждающую способность пули в 1.2 раза damage * 3 - а радиус повреждения в 3 NULL - здесь указатель на того игрока, которому взрыв не причинит вреда. Например, если мы укажем здесь ent, то атакующий не получит повреждения от взрывов своих же пуль. MOD_MACHINEGUN - указывает, какую анимацию использовать, если игрок получил смертельные повреждения. |
|||
|
||||
Гость_igor |
|
|||
Unregistered |
Fractal, спасибо что откликнулся, но g_weapon.c, такого нет файла в сырцах Quake 3, есть cg_weapons.c, и такого кода нет в этом файле. Может ты не правильно меня понял, я понимаю что можно сделать чтоб пуля была с повреждением 100, НО, МНЕ ТРЕБУЕТСЯ чтобы при исполнении команды /kill, которая просто убивате игрока (самоубийство), игрок не просто падал как бревно, а его разносило как от попадания например снаряда с повреждением 100. Суть понимаешь ? Можно ли как нибудь сэмулировать с помощью команды /kill попадание допустим в себя снаряда с дамаджём 120 или 150 чтоб тебя в клочки разносило ??
Вот код прописи команды /kill
Куда она добавляется? |
|||
|
||||
FrAcTaL_life |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 9.11.2003 Репутация: нет Всего: нет |
||||
|
||||
[ss]3L33T@ |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 14.10.2003 Где: Казармы Репутация: -1 Всего: 1 |
Глупости вы туту несёте.
Команда kill работает так: 1)Смотрит кто её ввёл 2)Наносит ему опред. кол-во damge'ов. Посмотри описание самой команды. Я её недавно разгребал. Кстати, ты когда исходники компилишь у тебя *.dll'ка появляется? куда ты её кидаешь? Я что-то парился, парился, но ничего не вышло. 2 wartyman: Исходники можно скачать с оффицального ftp-сервера(ftp.idsoftware.com). 2 Fractal: указывать строку - тухлое дело. Ты ведб не знаешь исходники какой версии он разгребает --------------------
Понастоящему добрый человек всегда простит и забудет вам ваше зло, но он никогда не простит и не забудет вашего добра[ss]3L33T@ |
|||
|
||||
Гость_Igor |
|
|||
Unregistered |
Спасибо всем кто ответил. Разгребаю исходники под 1.11, подскажт где описание этой команды kill, не могу найти, в каком модуле? Когда компилю у меня выходит qvm, если ты помниш в 1.11 не было ещё dll. Это кстати к лучшему, меньше гимора. Код аимбота могу выложить, кому требуется, но сначала хотелось бы разобраться с kill. Самый интересный факт, где определенно кокой именно урон наносит kill ??
|
|||
|
||||
Unregistered |
|
|||
Unregistered |
подскажите где описание этой команды kill, не могу найти, в каком модуле?
|
|||
|
||||
[ss]3L33T@ |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 14.10.2003 Где: Казармы Репутация: -1 Всего: 1 |
Я не знаю, как у тебя, я исходников первых версий не видел, а у меня описание
команды "kill" находится в файле g_cmds.c. Вот что там написано: void Cmd_Kill_f( gentity_t *ent ) { if ( ent->client->sess.sessionTeam == TEAM_SPECTATOR ) { return; } if (ent->health <= 0) { return; } ent->flags &= ~FL_GODMODE; ent->client->ps.stats[STAT_HEALTH] = ent->health = -999; player_die (ent, ent, ent, 100000, MOD_SUICIDE); } Ну? Я тебе говорил. строка:ent->client->ps.stats[STAT_HEALTH] = ent->health = -999; Устанавливает жизни в -999. А в другой функции(какой не помню) идёт оброботка игрока и если жизни меньше -40(вроде бы - (-40)), то создать кучу гибов и крови. Возможно эта функция у тебя описана по другому. Если чё надо - мыль - [email protected]. И вообще давай общаться на тему разборки исходников. А тут некоторые только нос задрали и считают всех недостойными деревьями. P.S. Слухай, а у тебя quake3.exe создаётся? Я что-то VC++ 6.0 компилил - ни хрена, VC++ .NET - ни хрена. Создаются dll'лки(cgamex86.dll, qagamex86, uix86.dll). На досуге читал журнал Хакер - там написано, что надо их пихать в каталог baseq3. Пихаю - ни х[bepp]я. --------------------
Понастоящему добрый человек всегда простит и забудет вам ваше зло, но он никогда не простит и не забудет вашего добра[ss]3L33T@ |
|||
|
||||
Гость_Igor |
|
|||
Unregistered |
Привет! Основные функции выполняет 1 файл (на стороне клиента) который и загружает все основные функции - cgame.qvm или cgame.dll, ui это юзер интерфейс, в зависимости от версии игры q3. Скомпилить .exe архи сложно, практически не возможно, потому что доступны исходники только модуля cgame, исходник же .exe ID Software продаёт за 300000$ помойму
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |