AMX MOD X
Четверг, 16.05.2024, 23:53:16



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

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

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » event'ы попадения в somatch, chest, head и какой dmg (Выложите пожалюйсто эти event'ы)
event'ы попадения в somatch, chest, head и какой dmg
He_npeTДата: Вторник, 22.05.2007, 21:11:50 | Сообщение # 1
Генерал-майор
Группа: Скриптеры
Сообщений: 292
Репутация: 7
Статус: Не в сети
Большая просьба выложить event dmg'a при попадение в stomach, chest, head и какой dmg нанесён. Ещё просьба с index'ом в кого попло.

P.S. Я начинающий скриптёр, так-что пойму код, а не слишком умные фразы которые чтото говорят токо професиональным скриптерам. Зарание сасибо. smile


My CS 1.6 Non-Steam AmXX Server! (HLSW) Play with steam - get autorslot
 
AlModДата: Среда, 23.05.2007, 09:50:50 | Сообщение # 2
Сонный кодер
Группа: Админы
Сообщений: 600
Репутация: 27
Статус: Не в сети
Если аимится

Quote
get_user_aiming

Description
get_user_aiming - Traces where a player is aiming for a maximum distance defaulted to 9999.  

Syntax
Float: get_user_aiming ( index, &id, &body, [ distance ] )  

Notes
If the player's aim doesn't hit anything, 0.0 is returned.  

If the player is aiming at another player, then the id and part of the body is set into the second and third parameters (passed by reference).  

Otherwise, the distance between the hit point and the player is returned.  

index,is a player index from 1 to 32.  

А это если попал
Quote

get_user_attacker

Description
get_user_attacker - Returns the index of an attacking player.  

Syntax
get_user_attacker ( index, [ &weapon, &hitzone ] )  

Notes
index is a player index from 1 to 32.  

If a second or third parameter is supplied, information about the weapon and hitzone is stored in the variables (passed byref).  

If no player is attacking the indexed player, get_user_attacker will return 0.  



 
slogicДата: Среда, 23.05.2007, 12:51:14 | Сообщение # 3
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Пример использования:

Quote

public plugin_init()
{
register_event("Damage", "onDamage", "b", "2!0") // dmg_take <> 0
}

public onDamage(id)
{
if(!id) return

new iWeapon
new iHitZone
new iAttacker

iAttacker = get_user_attacker(id, iWeapon, iHitZone)
}

iHitZone будет содержать одно из значений (см. amxconst.inc):

Quote

/* Parts of body for hits */
#define HIT_GENERIC 0 /* none */
#define HIT_HEAD 1
#define HIT_CHEST 2
#define HIT_STOMACH 3
#define HIT_LEFTARM 4
#define HIT_RIGHTARM 5
#define HIT_LEFTLEG 6
#define HIT_RIGHTLEG 7

 
He_npeTДата: Среда, 23.05.2007, 16:48:17 | Сообщение # 4
Генерал-майор
Группа: Скриптеры
Сообщений: 292
Репутация: 7
Статус: Не в сети
Можите ещё пожалуйсто сказать как вычеслить нанесёный урон и каой victum index? smile

и
Code
/* Parts of body for hits */  
#define HIT_GENERIC 0 /* none */  
#define HIT_HEAD 1  
#define HIT_CHEST 2  
#define HIT_STOMACH 3  
#define HIT_LEFTARM 4  
#define HIT_RIGHTARM 5  
#define HIT_LEFTLEG 6  
#define HIT_RIGHTLEG 7  

То-есть если в этом:
Code
public plugin_init() {  
     register_event("Damage", "onDamage", "b", "2!0") // dmg_take <> 0  
}

public onDamage(id) {  
     if(!id) return  

     new iWeapon  
     new iHitZone  
     new iAttacker  

     iAttacker = get_user_attacker(id, iWeapon, iHitZone)  
}

если игрок попал в голову какой вариант будет правелен:
Code

if (equali(iHitZone,HIT_HEAD))

или
Code

if (iHitZone == 1)

???


My CS 1.6 Non-Steam AmXX Server! (HLSW) Play with steam - get autorslot

Сообщение отредактировал He_npeT - Среда, 23.05.2007, 16:57:16
 
AlModДата: Среда, 23.05.2007, 17:08:59 | Сообщение # 5
Сонный кодер
Группа: Админы
Сообщений: 600
Репутация: 27
Статус: Не в сети
Code
if (iHitZone == 1)

Но это аналогично

Code
if (iHitZone == HIT_HEAD)


 
slogicДата: Среда, 23.05.2007, 17:40:34 | Сообщение # 6
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Quote (He_npeT)
Можите ещё пожалуйсто сказать как вычеслить нанесёный урон и каой victum index?

Не, ну ты вообще не представляешь что такое обработчик сообщения и что такое сообщение HL.

Жертва в onDamage это и есть id.

Вообще Damage событие имеет след. параметры (взято с http://wiki.amxmodx.org/index.php/Half-Life_1_Game_Events ):
Quote
byte DamageSave
byte DamageTake
long DamageType
coord CoordX
coord CoordY
coord CoordZ

Т.о. чтобы получить повреждение надо считать второй параметр события Damage (DamageTake) в обработчике onDamage. Для этого требуется в нем выполнить функцию read_data(2). Вообще все наглядно видно в скрипте, который выложен в этой теме: http://amxmodx.ucoz.ru/forum/17-103-1

Сообщение отредактировал slogic - Среда, 23.05.2007, 17:42:02
 
He_npeTДата: Среда, 23.05.2007, 17:47:43 | Сообщение # 7
Генерал-майор
Группа: Скриптеры
Сообщений: 292
Репутация: 7
Статус: Не в сети
Ясно, id = victum, a dmg = read_data(2). Thx. smile

My CS 1.6 Non-Steam AmXX Server! (HLSW) Play with steam - get autorslot

Сообщение отредактировал He_npeT - Среда, 23.05.2007, 17:59:10
 
RE_an1m@t0rrДата: Среда, 23.05.2007, 20:13:55 | Сообщение # 8
Лейтенант
Группа: Скриптеры
Сообщений: 77
Репутация: 0
Статус: Не в сети
а етот способ не хуже?

...
#include <engine>
...

public client_damage(attacker,victim,damage,weapon,hitplace,TA)
{
//code....
}

 
VENДата: Среда, 23.05.2007, 22:07:11 | Сообщение # 9
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Engine тут не при чем. А вот "бутерброд" точно не хуже.
 
slogicДата: Четверг, 24.05.2007, 15:59:47 | Сообщение # 10
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Еще есть в модуле csx обработчик:

forward client_death(killer,victim,wpnindex,hitplace,TK);

Вообще халява, но работать будет только под CS/CZ.

PS. Точнее не death, а damage, RE_an1m@t0rr об этом как раз говорил, только с модулем ошибся.

Сообщение отредактировал slogic - Четверг, 24.05.2007, 16:01:16
 
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » event'ы попадения в somatch, chest, head и какой dmg (Выложите пожалюйсто эти event'ы)
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024