AMX MOD X
Понедельник, 29.04.2024, 16:19:19



Приветствую Вас Гость | RSS
[ Главная ] [ env_explosion - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » env_explosion (можно ли заставить его отсылать DeathMsg?)
env_explosion
slogicДата: Среда, 28.03.2007, 11:21:23 | Сообщение # 1
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
С пом. HAM модуля переопределил owner на рельного игрока. Думал может в этом случае отправит DeathMsg если кого-то убьет при use. Нифига не получилось. Получается в CS (по сравнению с HLDM) намеренно отключили для этого объекта отправку DeathMsg? Может еще есть какие идеи?
 
VENДата: Среда, 28.03.2007, 13:38:43 | Сообщение # 2
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Quote
С пом. HAM модуля переопределил owner на рельного игрока
Т.е. attacker (потому как, чтобы переопределить owner, дополнительный модуль не требуется)?

Quote
Получается в CS (по сравнению с HLDM) намеренно отключили для этого объекта отправку DeathMsg?
Объект тут не причем. Все дело в dmg type. Если ты заметил, при сметри от C4 grenade, ситуация такая же. dmg type в этих случаях DMG_BLAST. Вот если изменить его, например на
Code
#define DMG_CSHEGREN (1<<24)
DeathMsg уже будет отправляться. Также будет присваиваться +1 death для каждой victim.

Причем, если изменить attacker, количество фрагов будет присваиваться также, как если бы это был взрыв от гранаты. Если victim == attacker || teammate: -1 frag (за каждую victim). Если victim != attacker || teammate: +1 frag (за каждую victim).

Кстати, для установленной C4 (classname grenade) attacker'a (attacker = owner) форсировать не нужно (как в случае с env_explosion) - это будет C4 owner. В остальном ситуация очень схожа с вышеописанной.

P.S.: Я считаю, что в свете вышеизложенного, твой deathmsg fix плагин может перейти на более "качественную ступень".

Сообщение отредактировал VEN - Среда, 28.03.2007, 13:47:50
 
slogicДата: Среда, 28.03.2007, 16:04:52 | Сообщение # 3
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Quote (VEN)
Т.е. attacker (потому как, чтобы переопределить owner, дополнительный модуль не требуется)?

Внутри вызова forward_use я выставил owner env_explosion на игрока, а также сделал вызов (оба ваиранта пробовал)
1) hs_use(ent, g_iClientUsingTank[i], i, use_type, use_value)
2) hs_use(ent, i, i, use_type, use_value)
заблокировав оригинальный use.

где g_iClientUsingTank[i] - содержит ID сущности, которую юзает игрок.

Оказывается, проблема была не во владельце. Спсибо за инфу. Я такой зависимости не уловил. Как-то не догадался dmg_type менять. Да и повода не было.

Сообщение отредактировал slogic - Среда, 28.03.2007, 16:06:00
 
slogicДата: Воскресенье, 01.04.2007, 00:51:21 | Сообщение # 4
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
VEN, а откуда у тебя появился DMG_CSHEGREN (1<<24)? Я доделал свой test_event_DeathMsg.sma (добавил с запасом флагов), убил себя гранатой. dmg_flags был равен 0, т.е. DMG_GENERIC.
 
VENДата: Воскресенье, 01.04.2007, 12:20:50 | Сообщение # 5
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
А ты все из Damage event dmg flag'и выдергиваешь? Я думал, уже ученый в этой области. Юзай "бутерброд", чтобы узнать реальный dmg type, а не тот, который передается клиенту для отображения иконок.
 
slogicДата: Понедельник, 02.04.2007, 13:25:47 | Сообщение # 6
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Quote (VEN)
P.S.: Я считаю, что в свете вышеизложенного, твой deathmsg fix плагин может перейти на более "качественную ступень".

Если не использовать ham модуль для перехвата takedamage, то мне как раз выгоднее испольовать текущий DeathMsg Fix, т.к. он нормализует порядок (в контексте естественной очереди событий, а не как это должно быть в игре) Damage и DeathMsg. Ведь некоторые признаки классфикации повреждения я могу почерпнуть только из Damage события. Т.о. когда DeathMsg уже вызвано, уже поздно что-то делать. Если его блокиорвать, и отсылать после того какая классифицировал тип повреждения, это очень рискованно и плагин должен быть надежен на 99,9% как минимум.

Хотя takedamage я еще не применял. Может все изменится когда пойму его "изюминку".

Quote (VEN)
Я думал, уже ученый в этой области.

Просто у меня нет такой любви как у тебя к исследованиям. Меня это утомляет. А потом начинает раздражать, когда результат выходит в незапланированные сроки.

 
slogicДата: Среда, 04.04.2007, 22:53:56 | Сообщение # 7
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Ну вот, плагинчик Blast Damage Patch - корректно исправляет отсутствие посылки DeathMsg у env_explosion. Буквально пара строк кода =) И работает идеально, последовательность событий, опять же - корректная. Функционал придется внедрить в Score Tank Kill, т.к. иначе очень неудобно получится заменять/исправлять атакующего в DeathMsg. Кстати, плагин DeathMsg Fix получается универсальным средством, но менее корректным, хотя и абсолютно бесконфликтным если, например, использовать параллельно с тем же Blast Damage Patch.
Прикрепления: 86202950.rar (0.4 Kb)


Сообщение отредактировал slogic - Среда, 04.04.2007, 22:55:58
 
VENДата: Четверг, 05.04.2007, 11:41:34 | Сообщение # 8
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
hs_takedamage(victim, inflictor, attacker, dmg, (dmg_type & ~DMG_BLAST) | DMG_HEGRENADE)
 
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » env_explosion (можно ли заставить его отсылать DeathMsg?)
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024