HLFX.Ru Forum
Показать все 8 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Помогите с подсчетом фрагов за убийства монстров (https://hlfx.ru/forum/showthread.php?threadid=4774)


Отправлено Shadow762 30-05-2016 в 17:56:

Half-Life Помогите с подсчетом фрагов за убийства монстров

Всем доброго времени суток. В общем, сделал вот так:
В combat.cpp в начале функции void CBaseMonster :: Killed( entvars_t *pevAttacker, int iGib )
добавил:

C++ Source Code:
CBaseEntity *pPlayer = NULL;
pPlayer = UTIL_FindEntityByClassname( NULL, "player" );
 
if( pPlayer && pPlayer->IsPlayer() )
  pPlayer->AddPoints( 1, false );

В начале заинклюдил "player.h".

В принципе все работает, но, мягко говоря, не совсем, как надо:
1. Фраги зачисляются только одному игроку
2. Зачисляются даже за расчленение трупа монстра.

Пожалуйста, помогите довести эту фишку до ума, буду очень благодарен

__________________
Fight for Peace, Fight for Love


Отправлено PLut 30-05-2016 в 19:26:

1. Получай игрока так:

C++ Source Code:
CBasePlayer *pPlayer = GetClassPtr((CBasePlayer *)pevAttacker);


2. Вызывай добавление поинтов после этой строчки:
C++ Source Code:
Remember( bits_MEMORY_KILLED );


Остальное у тебя верно.

__________________
Base Defense on Steam, ModDB


Отправлено Shadow762 30-05-2016 в 19:55:

PLut Спасибо! Но насколько я понял, это правка только первого пункта данной проблемы, а за расчленение трупа все равно будет зачисляться...

__________________
Fight for Peace, Fight for Love


Отправлено PLut 30-05-2016 в 20:11:

Shadow762 Ну ты попробуй, а потом отпишись.

__________________
Base Defense on Steam, ModDB


Отправлено Ghoul [BB] 30-05-2016 в 21:29:

Цитата:
Shadow762 писал:
Но насколько я понял, это правка только первого пункта данной проблемы, а за расчленение трупа все равно будет зачисляться...


Конечно будет. У тебя труп как ставится на карту? MONSTER_GENERIC? MONSTER_HGRUNT_DEAD? Вот то то же...

Добавлено 31-05-2016 в 00:29:

З.ы. если непонятно, то эти штуки тоже монстры, только с определенной анимацией и единицей здоровья.

__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.

Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo


Отправлено Ku2zoff 31-05-2016 в 05:35:

Цитата:
Ghoul [BB] писал:
З.ы. если непонятно, то эти штуки тоже монстры, только с определенной анимацией и единицей здоровья.

Тогда нужно добавить проверку на IsAlive(). У этих штук pev->deadflag равен DEAD_DEAD. У обычных монстров такой флаг ставится только когда заканчивается анимация смерти.


Отправлено Shadow762 31-05-2016 в 11:52:

PLut Большое тебе человеческое спасибо! Все получилось, работает ровно так как надо!

__________________
Fight for Peace, Fight for Love


Отправлено PLut 31-05-2016 в 12:18:

Shadow762 Рад помочь

__________________
Base Defense on Steam, ModDB


Временная зона GMT. Текущее время 13:16.
Показать все 8 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024