Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Ham_Killed или DeathMsg

, Ham_Killed запаздывает
Статус пользователя zippel
сообщение 19.12.2013, 14:34
Сообщение #1


Стаж: 17 лет

Сообщений: 918
Благодарностей: 105
Полезность: 1

В общем есть две всем известные функции Ham_Killed и DeathMsg. Если сразу после убийства игрока попробовать вывести данные о хедшотах (полученных в DeathMsg) через Ham_Killed то кол-во хедов всегда почему то опаздывает на 1 хедшот, а почему хз.. DeathMsg считает правильно.

Цитата
Пример #1: выводим isHeadShot[id][0] через ивент DeathMsg с помощью read_data(3), для удобстав можно увеличивать после каждого убийства используя ++, и тогда получи что то типа isHeadShot[id][0]++

Это значение будет всегда верным, при нужных условиях конечно.

Цитата
Пример #2: выводим isHeadShot[id][0] через ивент Ham_Killed с помощью isHeadShot[id][0], который мы получаем из ивента DeathMsg.

Убив первого игрока данные не появляются, а появляются тогда, когда игрок убивает второго, однако скрипт выводит данные за первый раз, и затем уже по нарастающей: после третего кила, данные убийств в голову за второй и т.д.

Отредактировал: zippel, - 19.12.2013, 16:08
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя zippel
сообщение 19.12.2013, 15:13
Сообщение #2


Стаж: 17 лет

Сообщений: 918
Благодарностей: 105
Полезность: 1

Частично найшел обход с костылем: set_task. Видимо функция не сразу обновляет данные.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 19.12.2013, 15:27
Сообщение #3


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

надо логи добавлять и смотреть. Не очень понятно как функция может не всегда обновлять данные или обновлять с запаздыванием. Или вы хотите сказать что она первый раз не вызывается?


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя zippel
сообщение 19.12.2013, 16:08
Сообщение #4


Стаж: 17 лет

Сообщений: 918
Благодарностей: 105
Полезность: 1

Цитата(mazdan @ 19.12.2013, 15:27) *
надо логи добавлять и смотреть. Не очень понятно как функция может не всегда обновлять данные или обновлять с запаздыванием. Или вы хотите сказать что она первый раз не вызывается?

Перефразировал пост. +Я о том что 'Ham_Killed' с познячком =)

Отредактировал: zippel, - 19.12.2013, 16:17
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
serfreeman1337
сообщение 19.12.2013, 16:27
Сообщение #5
Стаж: 13 лет

Сообщений: 912
Благодарности: выкл.

Почему бы просто не ловить хедшот в Ham_Killed ?
Код
new attacker,weaponId,hitPlace

attacker = get_user_attacker(victim,weaponId,hitPlace)

if(hitPlace == HIT_HEAD){
    client_print(victim,print_chat,"BOOOOOOM HEADSHOT YEAAAAAAaH!")
}


Или можно оффсетом m_iLastHitGroup узнать куда в последний раз нашему клиенту прилетело.

Код
hitPlace = get_pdata_int(victim, m_iLastHitGroup)


В HL он 90, в Op4 93, а вот в CS фз.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя zippel
сообщение 19.12.2013, 16:39
Сообщение #6


Стаж: 17 лет

Сообщений: 918
Благодарностей: 105
Полезность: 1

Код:
get_user_attacker
ненадежный способ.. зачем мне к нему дописывать проверки, если я могу сразу указать условия для event

Цитата(serfreeman1337 @ 19.12.2013, 16:27) *
Почему бы просто не ловить хедшот в Ham_Killed ?

Потому что мне надо знать умер ли он от подачи в каску, а не ловить их.

Отредактировал: zippel, - 19.12.2013, 16:41
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
serfreeman1337
сообщение 19.12.2013, 16:41
Сообщение #7
Стаж: 13 лет

Сообщений: 912
Благодарности: выкл.

Тогда почему не отлавливать смерть вместо Ham_Killed в DeathMsg ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя zippel
сообщение 19.12.2013, 16:43
Сообщение #8


Стаж: 17 лет

Сообщений: 918
Благодарностей: 105
Полезность: 1

Цитата(serfreeman1337 @ 19.12.2013, 16:41) *
смерть вместо Ham_Killed в DeathMsg

понял.. Я думал об этом как о запасном варианте. Хотелось все таки разобратся с Ham_Killed =)

Да это действительно удобно. Учитывая что изначально у меня:
Код:
register_event("DeathMsg", "some_fc", "a", "1>0")


Отредактировал: zippel, - 19.12.2013, 16:52
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
serfreeman1337
сообщение 19.12.2013, 16:47
Сообщение #9
Стаж: 13 лет

Сообщений: 912
Благодарности: выкл.

Цитата
Потому что мне надо знать умер ли он от подачи в каску, а не ловить их.

Я уже объяснил в сообщении #5.
if(hitPlace == HIT_HEAD) - условие "прилетело в каску".

Цитата
ты что несешь...

Ок.
Почему бы не перенести код из Ham_Killed в DeathMsg ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя zippel
сообщение 19.12.2013, 16:55
Сообщение #10


Стаж: 17 лет

Сообщений: 918
Благодарностей: 105
Полезность: 1

В общем вариантов уйма... спасибо.

Цитата(serfreeman1337 @ 19.12.2013, 16:47) *
Я уже объяснил в сообщении #5.if(hitPlace == HIT_HEAD) - условие "прилетело в каску".

Ham_Killed с тормозом.. врят ли это прокатит.

Цитата(serfreeman1337 @ 19.12.2013, 16:47) *
Почему бы не перенести код из Ham_Killed в DeathMsg ?

проще уже сразу все сделать через DeathMsg =)

Отредактировал: zippel, - 19.12.2013, 16:55
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
serfreeman1337
сообщение 19.12.2013, 16:59
Сообщение #11
Стаж: 13 лет

Сообщений: 912
Благодарности: выкл.

Цитата
Ham_Killed с тормозом.. врят ли это прокатит.

Это DeathMsg с тормозом.
Ham_Killed вызывается сразу как только что-то здохло. А твой DeathMsg вызывает уже после этого события.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: