Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите кто нибудь, Вопрос по Visual C++ 
:(
    Опции темы
Гость_Igor
Дата 21.11.2003, 15:38 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


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
Дата 21.11.2003, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 28.10.2003

Репутация: нет
Всего: нет



где исходники достал !? кинь плз... линк... в лом шарится... то же хочу глянуть smile.gif
PM MAIL WWW ICQ   Вверх
Unregistered
Дата 21.11.2003, 21:07 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Исходник есть у меня, ну ты можешь чем то помочь ?
  Вверх
wertyman
Дата 21.11.2003, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 28.10.2003

Репутация: нет
Всего: нет



врядли.. нужно нудно и потно изучать полностью сырцы... тада хоть что то понять смогу... по этой функц. мало что понять!
PM MAIL WWW ICQ   Вверх
Unregistered
Дата 21.11.2003, 23:22 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Сырцы у меня ещё и с функцией аимбота..давай мейл
  Вверх
wertyman
Дата 22.11.2003, 04:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 28.10.2003

Репутация: нет
Всего: нет



[email protected]

Это сообщение отредактировал(а) wertyman - 22.11.2003, 04:42
PM MAIL WWW ICQ   Вверх
RAN
Дата 22.11.2003, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 709
Регистрация: 14.3.2003
Где: Щёлково Моск.обл.

Репутация: 5
Всего: 6



Модератор: Прекращайте переписку, а то закроем тему.
PM MAIL ICQ   Вверх
FrAcTaL_life
Дата 22.11.2003, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 9.11.2003

Репутация: нет
Всего: нет



g_weapon.c на строке 152

Код


//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 - указывает, какую анимацию использовать, если игрок получил смертельные повреждения.

PM MAIL   Вверх
Гость_igor
Дата 23.11.2003, 11:45 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Fractal, спасибо что откликнулся, но g_weapon.c, такого нет файла в сырцах Quake 3, есть cg_weapons.c, и такого кода нет в этом файле. Может ты не правильно меня понял, я понимаю что можно сделать чтоб пуля была с повреждением 100, НО, МНЕ ТРЕБУЕТСЯ чтобы при исполнении команды /kill, которая просто убивате игрока (самоубийство), игрок не просто падал как бревно, а его разносило как от попадания например снаряда с повреждением 100. Суть понимаешь ? Можно ли как нибудь сэмулировать с помощью команды /kill попадание допустим в себя снаряда с дамаджём 120 или 150 чтоб тебя в клочки разносило ??
Вот код прописи команды /kill
Код
/*
=================
CG_InitConsoleCommands

Let the client system know about all of our commands
so it can perform tab completion
=================
*/
void CG_InitConsoleCommands( void ) {
   int        i;

   for ( i = 0; i < sizeof( commands ) / sizeof( commands[0] ); i++ ) {
       trap_AddCommand( commands[i].cmd );
   }

   //
   // the game server will interpret these commands, which will be automatically
   // forwarded to the server after they are not recognized locally
   //
   trap_AddCommand ("kill");
   trap_AddCommand ("say");
   trap_AddCommand ("say_team");
   trap_AddCommand ("give");
   trap_AddCommand ("god");
   trap_AddCommand ("notarget");
   trap_AddCommand ("noclip");
   trap_AddCommand ("team");
   trap_AddCommand ("follow");
   trap_AddCommand ("levelshot");
   trap_AddCommand ("addbot");
   trap_AddCommand ("setviewpos");
   trap_AddCommand ("vote");
   trap_AddCommand ("callvote");
   trap_AddCommand ("loaddefered");    // spelled wrong, but not changing for demo
}


Куда она добавляется?
  Вверх
FrAcTaL_life
Дата 23.11.2003, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 9.11.2003

Репутация: нет
Всего: нет



Если знаешь английский, то думаю что ответ найдешь на сайте http://www.planetquake.com/

user posted image


PM MAIL   Вверх
[ss]3L33T@
Дата 23.11.2003, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 14.10.2003
Где: Казармы

Репутация: -1
Всего: 1



Глупости вы туту несёте.
Команда kill работает так:
1)Смотрит кто её ввёл
2)Наносит ему опред. кол-во damge'ов.

Посмотри описание самой команды.
Я её недавно разгребал.
Кстати, ты когда исходники компилишь у тебя *.dll'ка появляется? куда ты её кидаешь?
Я что-то парился, парился, но ничего не вышло.
2 wartyman:
Исходники можно скачать с оффицального ftp-сервера(ftp.idsoftware.com).
2 Fractal:
указывать строку - тухлое дело. Ты ведб не знаешь исходники какой версии он разгребает
--------------------
Понастоящему добрый человек всегда простит и забудет вам ваше зло, но он никогда не простит и не забудет вашего добра[ss]3L33T@
PM MAIL WWW ICQ   Вверх
Гость_Igor
Дата 23.11.2003, 15:36 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо всем кто ответил. Разгребаю исходники под 1.11, подскажт где описание этой команды kill, не могу найти, в каком модуле? Когда компилю у меня выходит qvm, если ты помниш в 1.11 не было ещё dll. Это кстати к лучшему, меньше гимора. Код аимбота могу выложить, кому требуется, но сначала хотелось бы разобраться с kill. Самый интересный факт, где определенно кокой именно урон наносит kill ??
  Вверх
Unregistered
Дата 24.11.2003, 19:06 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











подскажите где описание этой команды kill, не могу найти, в каком модуле?
  Вверх
[ss]3L33T@
Дата 26.11.2003, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 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@
PM MAIL WWW ICQ   Вверх
Гость_Igor
Дата 26.11.2003, 21:53 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Привет! Основные функции выполняет 1 файл (на стороне клиента) который и загружает все основные функции - cgame.qvm или cgame.dll, ui это юзер интерфейс, в зависимости от версии игры q3. Скомпилить .exe архи сложно, практически не возможно, потому что доступны исходники только модуля cgame, исходник же .exe ID Software продаёт за 300000$ помойму smile.gif, там и кроется основной код движка q3, это самая основная разработка, которая нам впринципе не нужна, нам требуется только cgame который отвечает за весь процесс игры, непосредственно на стороне клиента, я например для прикола делал скин без башки и это видел только я, другие же опопненты видели меня в нормальной форме (с башкой), то есть есть только некоторые функции которые отвечают за общую наглядность, такие как выстрел и тд, а вот что творится на стороне клиента, никто другой уже не видит, чем это хорошо? а тем что некоторые читерят, и это даёт им плюсы, что в спектаторе ты не увидишь есть у него wallhack или ещё чего, ты будешь видеть только свою выборку. Ща посмотрю ещё раз где этот kill, остовайся на связи, и если хочешь давай по емайл общатся, мой майл [email protected]
  Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0879 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.