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

Ham_TakeDamage [отправить урон в голову]  [Решено]

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

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

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

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Ham_TakeDamage [отправить урон в голову]

Сообщение Freeman74 » 15 мар 2017, 13:14

Здравствуйте ув. пользователи amx-x.ru.
Подскажите как отправить урон в голову с помощью функции
Код: Выделить всё
ExecuteHamB(Ham_TakeDamage, ....); 
Контакты:
Вконтакте
Аватара пользователя
Freeman74
 
Сообщения: 126
Зарегистрирован: 02 окт 2014, 15:27
Благодарил (а): 43 раз.
Поблагодарили: 16 раз.
Языки программирования: Counter-Strike 1.6

Re: Ham_TakeDamage [отправить урон в голову]

Сообщение NEoMASTERR » 15 мар 2017, 13:19

Отправить урон в голову? У головы нет отдельных очков хп
Аватара пользователя
NEoMASTERR
 
Сообщения: 832
Зарегистрирован: 05 янв 2015, 16:38
Благодарил (а): 43 раз.
Поблагодарили: 188 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: Ham_TakeDamage [отправить урон в голову]

Сообщение Ronna Riva » 15 мар 2017, 14:05

Usually called whenever an entity gets attacked by a hitscan (such as a gun) weapon.
Use the get/set tr2 natives in fakemeta to handle the traceresult data.
Do not use a handle of 0 as a traceresult in execution, use create_tr2() from Fakemeta
to pass a custom handle instead. (Don't forget to free the handle when you're done.)

Мне кажется это делается с помощью Ham_TraceAttack
Аватара пользователя
Ronna Riva
 
Сообщения: 34
Зарегистрирован: 13 фев 2017, 11:36
Забанен
Благодарил (а): 9 раз.
Поблагодарили: 4 раз.
Опыт программирования: Больше трех лет
Языки программирования: Objective-C
C++

Re: Ham_TakeDamage [отправить урон в голову]

Сообщение Freeman74 » 15 мар 2017, 18:15

В общем делаю это впервые и хотелось бы уточнить все ли я сделал верно, и есть ли более простые варианты? Сам код рабочий.
Код: Выделить всё
//iTouched - летящий ентити объект в сторону игрока | iToucher - сам игрок в которого летит объект | iOwner - ид игрока запустивший данный объект
    new Float:vecStart[3], Float:vecEnd[3], Float:fDamage, iTraceHandle;
    pev(iTouched, pev_origin, vecStart);
    pev(iTouched, pev_velocity, vecEnd);
    xs_vec_add(vecStart, vecEnd, vecEnd);
    iTraceHandle = create_tr2();
    engfunc(EngFunc_TraceLine, vecStart, vecEnd, 0, iTouched, iTraceHandle);
    ExecuteHamB(Ham_TraceAttack, iToucher, iOwner, 30.0, vecEnd, iTraceHandle, DMG_ALWAYSGIB);
    if(get_tr2(iTraceHandle, TR_iHitgroup) != HIT_HEAD) fDamage = 30.0;
    else fDamage = 80.0;
    ExecuteHamB(Ham_TakeDamage, iToucher, 0, iOwner, fDamage, DMG_ALWAYSGIB);
    free_tr2(iTraceHandle);
Контакты:
Вконтакте
Аватара пользователя
Freeman74
 
Сообщения: 126
Зарегистрирован: 02 окт 2014, 15:27
Благодарил (а): 43 раз.
Поблагодарили: 16 раз.
Языки программирования: Counter-Strike 1.6

Re: Ham_TakeDamage [отправить урон в голову]  [Решено]

Сообщение Xelson » 15 мар 2017, 18:44

Код: Выделить всё
#define m_LastHitGroup 75
set_pdata_int(iVictim, m_LastHitGroup, HIT_HEAD)
ExecuteHamB(Ham_TakeDamage, iVictim, iWeapon, iAttacker, 100.0, (1<<1)) 
Аватара пользователя
Xelson
 
Сообщения: 365
Зарегистрирован: 06 мар 2016, 14:41
Откуда: Беларусь
Благодарил (а): 16 раз.
Поблагодарили: 46 раз.
Опыт программирования: Больше трех лет


Вернуться в Скриптинг

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

Сейчас этот форум просматривают: Google [Bot] и гости: 11