Русское сообщество по скриптингу

DeathEffect (CSO)

Утвержденные плагины для AMX Mod X администратором/модератором форума.

Модератор: Leonidddd

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только работоспособных плагинов для AMX Mod X. Новые плагины нужно выкладывать в разделе "Новые плагины".

DeathEffect (CSO)

Сообщение Juli » 20 мар 2016, 22:35

Автор: Juli
Версия: 1.0
Используемые модули: hamsandwich

Описание: Плагин добавляет эффект после смерти, в виде спрайта из CSO и звукового сопровождения.



Download:
DeathEffect.rar
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Juli
 
Сообщения: 661
Зарегистрирован: 09 июн 2013, 00:13
Благодарил (а): 140 раз.
Поблагодарили: 250 раз.
Опыт программирования: Больше трех лет

Re: DeathEffect (CSO)

Сообщение D34by » 17 апр 2016, 11:06

А зачем чек валидности виктима? :-D
Если хам вызывается на валидную энтити регаемого класса
Work with Zombie Plague ver. 4|5, Biohazard, Zombie Engine, Public, Weapon System
Аватара пользователя
D34by
 
Сообщения: 537
Зарегистрирован: 13 фев 2014, 12:45
Благодарил (а): 15 раз.
Поблагодарили: 192 раз.
Опыт программирования: Больше трех лет
Языки программирования: пешка
сишка

Re: DeathEffect (CSO)

Сообщение KORD_12.7 » 17 апр 2016, 11:55

D34by, желательно всегда проверять энтиты на валидность, ведь пока цепочка хуков доберется до твоего зареганного форварда, то с энтитом за это время может случится что-то нехорошее. Например:

Код: Выделить всё

// Плугин №1
RegisterHam(Ham_Think, "weapon_9mmAR", "Think1");

// Плугин №2
RegisterHam(Ham_Think, "weapon_9mmAR", "Think2");

public Think1(const iGrenade)
{
   server_print("* Think №1 (time: %f, owner: %d)", get_gametime(), pev(iGrenade, pev_owner));
   
   remove_entity(iGrenade);
}

public Think2(const iGrenade)
{
   server_print("* Think №2 (time: %f, owner: %d)", get_gametime(), pev(iGrenade, pev_owner));
}

В итоге получается это:
* Think №1 (time: 1.100000, owner: 0)
L 04/17/2016 - 17:53:06: [FAKEMETA] Invalid entity
L 04/17/2016 - 17:53:06: [AMXX] Displaying debug trace (plugin "plugin2.amxx", version "1.0")
L 04/17/2016 - 17:53:06: [AMXX] Run time error 10: native error (native "pev")
L 04/17/2016 - 17:53:06: [AMXX] [0] Untitled.sma::Think2 (line 225)


Добавлено спустя 54 секунды:
Хотя с "энтитей-игроком" наврятли может что-то случиться в процессе :crazy:
Последний раз редактировалось KORD_12.7 21 апр 2016, 13:39, всего редактировалось 2 раз(а).

_http://aghl.ru/ - Half-Life и Adrenaline Gamer: за пределами возможного
Аватара пользователя
KORD_12.7
Скриптер
 
Сообщения: 298
Зарегистрирован: 28 сен 2009, 10:14
Откуда: Владивосток
Благодарил (а): 142 раз.
Поблагодарили: 257 раз.
Опыт программирования: Больше трех лет
Языки программирования: Half-Life
Opposing Force
Adrenaline Gamer
Counter-Strike

Re: DeathEffect (CSO)

Сообщение D34by » 17 апр 2016, 12:00

KORD_12.7 писал(а):Хотя с "энтитей-игроком" наврятли может что-то случится в процессе :crazy:

Конкретно для игрока такого косяка не может быть, вот я и задал вопрос, зачем там валид :boast: :crazy:
Разве что, какой то извращенец сунет HamB на невалид
Work with Zombie Plague ver. 4|5, Biohazard, Zombie Engine, Public, Weapon System
Аватара пользователя
D34by
 
Сообщения: 537
Зарегистрирован: 13 фев 2014, 12:45
Благодарил (а): 15 раз.
Поблагодарили: 192 раз.
Опыт программирования: Больше трех лет
Языки программирования: пешка
сишка

Re: DeathEffect (CSO)

Сообщение KORD_12.7 » 17 апр 2016, 12:35

Код: Выделить всё
RegisterHam(Ham_Killed, "player", "fwPlayerKilled_Post1", .Post = true);
RegisterHam(Ham_Killed, "player", "fwPlayerKilled_Post2", .Post = true);

public fwPlayerKilled_Post1(intPlayer)//EVENT OF DEATH
{
   server_print(" * fwPlayerKilled_Post1 (%f)", get_gametime());
   
   server_cmd("kick #%d", get_user_userid(intPlayer));
   server_exec();
}

public fwPlayerKilled_Post2(intPlayer)//EVENT OF DEATH
{
   if (is_user_connected(intPlayer))
   {
      message_begin(MSG_ONE, SVC_WEAPONANIM, {0, 0, 0}, intPlayer);
      write_byte(0);
      write_byte(0);
      message_end();
      
      server_print(" * fwPlayerKilled_Post2 (%f)", get_gametime());
   }
}

D34by, а если от игрока внезапно "избавились"? :-D

_http://aghl.ru/ - Half-Life и Adrenaline Gamer: за пределами возможного
Аватара пользователя
KORD_12.7
Скриптер
 
Сообщения: 298
Зарегистрирован: 28 сен 2009, 10:14
Откуда: Владивосток
Благодарил (а): 142 раз.
Поблагодарили: 257 раз.
Опыт программирования: Больше трех лет
Языки программирования: Half-Life
Opposing Force
Adrenaline Gamer
Counter-Strike

Re: DeathEffect (CSO)

Сообщение D34by » 17 апр 2016, 12:38

KORD_12.7 писал(а):
Код: Выделить всё
RegisterHam(Ham_Killed, "player", "fwPlayerKilled_Post1", .Post = true);
RegisterHam(Ham_Killed, "player", "fwPlayerKilled_Post2", .Post = true);

public fwPlayerKilled_Post1(intPlayer)//EVENT OF DEATH
{
   server_print(" * fwPlayerKilled_Post1 (%f)", get_gametime());
   
   server_cmd("kick #%d", get_user_userid(intPlayer));
   server_exec();
}

public fwPlayerKilled_Post2(intPlayer)//EVENT OF DEATH
{
   if (is_user_connected(intPlayer))
   {
      message_begin(MSG_ONE, SVC_WEAPONANIM, {0, 0, 0}, intPlayer);
      write_byte(0);
      write_byte(0);
      message_end();
      
      server_print(" * fwPlayerKilled_Post2 (%f)", get_gametime());
   }
}

D34by, а если от игрока внезапно "избавились"? :-D

Ну тогда косячек будет, но это уже шанс 1 на 1000000, за 4г работы серверов ни разу не наблюдал такой траблы

Добавлено спустя 33 секунды:
И то ты считерил 8-)
Work with Zombie Plague ver. 4|5, Biohazard, Zombie Engine, Public, Weapon System
Аватара пользователя
D34by
 
Сообщения: 537
Зарегистрирован: 13 фев 2014, 12:45
Благодарил (а): 15 раз.
Поблагодарили: 192 раз.
Опыт программирования: Больше трех лет
Языки программирования: пешка
сишка

Re: DeathEffect (CSO)

Сообщение Juli » 17 апр 2016, 13:08

D34by, всегда проверяю на валидность, перед тем, как делать те или иные действия. Уже вошло в привычку. Если с игроком что-то случится, а случится может все, что угодно, то в случае с get_user_origin и emit_sound без проверки на валидность ничего не будет, так как она там присутствует в обеих функциях, а вот в случае с message_begin и т.д., проверки на ingame нет. Поэтому, я предпочитаю учесть все нюансы сразу, чем гадать, нужно ли это или включать теорию вероятности, чтобы узнать какой шанс возникновения проблемы, без этой проверки. :-)
Аватара пользователя
Juli
 
Сообщения: 661
Зарегистрирован: 09 июн 2013, 00:13
Благодарил (а): 140 раз.
Поблагодарили: 250 раз.
Опыт программирования: Больше трех лет

Re: DeathEffect (CSO)

Сообщение Blud » 25 апр 2016, 21:49

Так то не плохо, но звук слышат все кто пробегает рядом, так что лучше переделать, что бы слышал только тот, кого убили!
Господа, очень хорошо, когда вас ненавидят, можно приходить и бесить людей просто так.
Аватара пользователя
Blud
 
Сообщения: 84
Зарегистрирован: 05 дек 2013, 12:23
Благодарил (а): 29 раз.
Поблагодарили: 13 раз.
Опыт программирования: Меньше недели
Языки программирования: Counter-Strike 1.6

Re: DeathEffect (CSO)

Сообщение Chuvi » 26 апр 2016, 04:46

Тут логичнее крик вильгельма повесить до смерти, а не песню.

Кстати, что за песенка-то? А то слышал много где отрывки из неё, а найти не могу.
Плагинами на заказ не занимаюсь.
Своих дел хватает.
Аватара пользователя
Chuvi
Модератор
 
Сообщения: 2253
Зарегистрирован: 24 ноя 2011, 08:03
Благодарил (а): 127 раз.
Поблагодарили: 562 раз.

Re: DeathEffect (CSO)

Сообщение Blud » 26 апр 2016, 16:05

Chuvi писал(а):Тут логичнее крик вильгельма повесить до смерти, а не песню.

Кстати, что за песенка-то? А то слышал много где отрывки из неё, а найти не могу.

Да не, песенка в цвет, но вот то что все её слышат это, ни есть хорошо.
P.s вот песенка, точнее название: AlterNaT <3 – REDSTAR
Господа, очень хорошо, когда вас ненавидят, можно приходить и бесить людей просто так.
Аватара пользователя
Blud
 
Сообщения: 84
Зарегистрирован: 05 дек 2013, 12:23
Благодарил (а): 29 раз.
Поблагодарили: 13 раз.
Опыт программирования: Меньше недели
Языки программирования: Counter-Strike 1.6

След.

Вернуться в Утвержденные плагины

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3