Модуль Hamsanwich ( ЧАСТЬ 1) :), отслеживание игровых событий |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
|
Модуль Hamsanwich ( ЧАСТЬ 1) :), отслеживание игровых событий |
Empower
|
18.2.2009, 15:47
Сообщение
|
|
|
Модуль Hamsandwich - очень легкий в использовании и часто без него просто не обойтись. Вот например: вы хотите чтоб при убийстве писалось в чат кто кого убил... ну и как же это сделать??? будете проверять каждую секунду все ли живы, не изменились ли фраги????
НЕТ НЕТ!! все намного проще... просто используете hamsandwich, он может отслеживать игровые события. Такие так: игрок понес урон, игрок бросил оружие, перезарядил оружие, игрок прикоснулся к предмету, игрок умер... можно писать десятки таких примеров. А теперь рассмотрим как это же записать в коде. Сделаем небольшой плагин, чтобы когда игрок одерживал урон, то в чат выводилось его здоровье... Каждое событие которое вы хотите использовать в своем плагине надо регистрировать в plugin_init процедурой RegisterHam(СОБЫТИЕ, с кем происходит , какую функцию вызвать). Для начала зарегистрируем событие урона.. Код #include <amxmodx> #include <hamsandwich> public plugin_init() { register_plugin("Hamsandwich Test","1.0","Empower"); RegisterHam(Ham_TakeDamage, "player", "vivesti_HP"); } Мы зарегистрировали событие - урон это Ham_TakeDamage(перевод как: принимать урон) какой объект принимает урон пишем player то есть игрок( когда дойдут руки напишу о других объектах )..и какая функция будет вызываться, если игрок понесет урон (можно любое название) в нашем случае назвал vivesti_HP... Теперь сделаем функцию vivesti_HP, которая будет вызываться когда игрок будет терять хп.. Код #include <amxmodx> #include <hamsandwich> public plugin_init() { register_plugin("Hamsandwich Test","1.0","Empower"); RegisterHam(Ham_TakeDamage, "player", "vivesti_HP"); } public vivesti_hp(jertva, orujie, killer, uron) { new hp hp = get_user_health(jertva) // записуем в переменную hp количество здоровья у урока new name[32] get_user_name(jertva,name,31) // записуем в переменную имя жертвы //чтоб потом эго вывести в чат client_print(0,print_chat,"У игрока %s осталось %d ХП ",name,hp) // выводим в чат сообщение... } В переменные которые после public vivesti_hp поместятся кто понесет урон(jertva), с какого оружия наносят(orujie), кто наносит эго (killer) и сколько урона сделал за этот удар(uron)... Вот и готово.... Вот самые полезные события с модуля <hamsandwich>, которые надо писать в RegisterHam(ЗДЕСЬ, "player", "ФУНКЦИЯ любая"); Код Ham_TakeDamage // ИГРОК РАНИТСА (одерживает урон) Ham_Spawn // РЕСПАВНИТСА (появляется в мире после смерти) Ham_Killed // УМЕРАЕТ Ham_Item_Drop // БРОСАЕТ ОРУЖИЕ на землю Ham_Player_Jump // ПРЫГНУЛ Ham_Player_Duck // ПРИСЕЛ События ниже нужны для работы с оружием, потому вместо player будем писать оружие: weapon_deagle, weapon_awp итд..(список названий оружий в самом низу поста).. RegisterHam(СОБИТИЕ, "weapon_ak47", "ФУНКЦИЯ любая"); Код Ham_Weapon_Reload // перезарядил оружие Ham_Weapon_PrimaryAttack // игрок стреляет Ham_Weapon_SecondaryAttack // использует второй огонь Для тех кто не знает наведу пример второго огня: в AWP это например будет включить прицел, в m4a1 это надеть глушитель, а в ak47 нету второго огня ВОТ список названий оружий: Код "weapon_mp5" "weapon_tmp" "weapon_p90" "weapon_mac10" "weapon_ak47" "weapon_sg552" "weapon_m4a1" "weapon_aug" "weapon_scout" "weapon_g3sg1" "weapon_awp" "weapon_m3" "weapon_xm1014" "weapon_m249" "weapon_flashbang" "weapon_hegrenade" "item_kevlar" "item_assaultsuit" "weapon_smokegrenade" Если надо больше событий тода тебе Список событий Hamsandwich Если я вам помог - кликните на спасибо!! Приятного использования!!!!!! P.S если желаешь прочти еще это: Блокирование игровых событий
Отредактировал: Empower, - 17.3.2009, 21:45
|
Поблагодарили 18 раз
|
|
Fedcomp
|
18.2.2009, 17:50
Сообщение
|
|
|
А как же тогда раньше писали плагин который показывал урон при попадании?
ведь в 1.76 такого модуля не присутствовало а плагин был ... |
|
|
|
vl25
|
22.2.2009, 14:50
Сообщение
|
|
|
У автора явно проблемы с русским языком
|
|
|
|
Fedcomp
|
22.2.2009, 17:23
Сообщение
|
|
|
|
|
|
|
Empower
|
22.2.2009, 18:47
Сообщение
|
|
|
скажите плиз где у меня ошибки? чтобы я исправил
Отредактировал: Empower, - 22.2.2009, 19:35
|
|
|
|
Fedcomp
|
22.2.2009, 19:16
Сообщение
|
|
|
Да вроде все правильно, только ненадо так ЭМОЦИОНАЛЬНО ПИСАТЬ не очень смотрится это
|
|
|
|
Empower
|
22.2.2009, 19:35
Сообщение
|
|
|
Цитата Да вроде все правильно, только ненадо так ЭМОЦИОНАЛЬНО ПИСАТЬ не очень смотрится это непонял... то эсть, емоциально? |
|
|
|
Empower
|
22.2.2009, 22:43
Сообщение
|
|
|
|
|
|
|
Fedcomp
|
23.2.2009, 9:18
Сообщение
|
|
|
Совсем не злой - уж скорее сумасшедший ученый :)
ладно шутка все в струю :) |
|
|
|
ckapa6eu
|
15.12.2010, 18:25
Сообщение
|
|
|
почему ты написал
new [32] а (jertva,name,31) ? я просто этого понять не могу) |
|
|
|
STR@TEG
|
15.12.2010, 19:44
Сообщение
|
|
|
ckapa6eu,
Нужно учитывать символ конца строки. Поэтому размер массива делают на 1 больше. |
Поблагодарили 1 раз
|
|
ckapa6eu
|
16.12.2010, 14:42
Сообщение
|
|
|
аа.. да,да.. читал про это.
все теперь понятно, спасибо. |
|
|
|
![]() ![]() |