Имитация получения демага

T

Tolyan

Здравствуйте, скажите пожалуйста как сделать имитацию получения демага.

Чтоб игроку был как-бы звук получения демага и на экране красные стрелочки.. - как будто по нему попали.

Спасибо.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #2
Пробовал player_hurt?
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #4
@Tolyan, кто сказал, что эвенты можно только отлавливать?
Вы можете сымитировать происхождение события, и отправить его игроку.
Чисто в теории, у игрока должен произойти звук, отобразиться стрелка, и всё прочее, что происходит при получении им уроном.
Но сам урон не нанесётся.
 
T

Tolyan

@Tolyan, кто сказал, что эвенты можно только отлавливать?
Вы можете сымитировать происхождение события, и отправить его игроку.
Чисто в теории, у игрока должен произойти звук, отобразиться стрелка, и всё прочее, что происходит при получении им уроном.
Но сам урон не нанесётся.

--- Добавлено позже ---
DealDamage(victim,damage,attacker=0,dmg_type=DMG_GENERIC,String:weapon[]="")
{
if(victim>0 && IsValidEdict(victim) && IsClientInGame(victim) && IsPlayerAlive(victim) && damage>0)
{
new String:dmg_str[16];
IntToString(damage,dmg_str,16);
new String:dmg_type_str[32];
IntToString(dmg_type,dmg_type_str,32);
new pointHurt=CreateEntityByName("point_hurt");
if(pointHurt)
{
DispatchKeyValue(victim,"targetname","war3_hurtme");
DispatchKeyValue(pointHurt,"DamageTarget","war3_hurtme");
DispatchKeyValue(pointHurt,"Damage",dmg_str);
DispatchKeyValue(pointHurt,"DamageType",dmg_type_str);
if(!StrEqual(weapon,""))
{
DispatchKeyValue(pointHurt,"classname",weapon);
}
DispatchSpawn(pointHurt);
AcceptEntityInput(pointHurt,"Hurt",(attacker>0)?attacker:-1);
DispatchKeyValue(pointHurt,"classname","point_hurt");
DispatchKeyValue(victim,"targetname","war3_donthurtme");
RemoveEdict(pointHurt);
}
}
}

А как вызвать стрелки со всех сторон на экране у жертвы? Спасибо)
--- Добавлено позже ---
А как вызвать стрелки со всех сторон на экране у жертвы? Спасибо)
--- Добавлено позже ---
Да ладно че серьезно не знает как вызвать эффект попадания на экране игрока? (красный стрелочки) ??
 
Последнее редактирование модератором:

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #6
@Tolyan, тип урона кажется должен быть что-то вроде урона от мира или огня
 

Danyas

Участник
Сообщения
2,173
Реакции
1,072
--- Добавлено позже ---
DealDamage(victim,damage,attacker=0,dmg_type=DMG_GENERIC,String:weapon[]="")
{
if(victim>0 && IsValidEdict(victim) && IsClientInGame(victim) && IsPlayerAlive(victim) && damage>0)
{
new String:dmg_str[16];
IntToString(damage,dmg_str,16);
new String:dmg_type_str[32];
IntToString(dmg_type,dmg_type_str,32);
new pointHurt=CreateEntityByName("point_hurt");
if(pointHurt)
{
DispatchKeyValue(victim,"targetname","war3_hurtme");
DispatchKeyValue(pointHurt,"DamageTarget","war3_hurtme");
DispatchKeyValue(pointHurt,"Damage",dmg_str);
DispatchKeyValue(pointHurt,"DamageType",dmg_type_str);
if(!StrEqual(weapon,""))
{
DispatchKeyValue(pointHurt,"classname",weapon);
}
DispatchSpawn(pointHurt);
AcceptEntityInput(pointHurt,"Hurt",(attacker>0)?attacker:-1);
DispatchKeyValue(pointHurt,"classname","point_hurt");
DispatchKeyValue(victim,"targetname","war3_donthurtme");
RemoveEdict(pointHurt);
}
}
}

А как вызвать стрелки со всех сторон на экране у жертвы? Спасибо)
--- Добавлено позже ---
А как вызвать стрелки со всех сторон на экране у жертвы? Спасибо)
--- Добавлено позже ---
Да ладно че серьезно не знает как вызвать эффект попадания на экране игрока? (красный стрелочки) ??
SDKHooks_TakeDamage, параметр damagePosition
 
T

Tolyan

SDKHooks_TakeDamage, параметр damagePosition
public OnClientPostAdminCheck(client) SDKHook(client, SDKHook_OnTakeDamage, TakeDamage); - если игрок отключается то обязательно делать SDKUnHook или оно автоматически перестает ловить игрока с этим индексом? и нужно ли делать SDKUnHook всем игрокам после смены карты в OnMapEnd или OnMapStart ?
 

Allen

love society
Сообщения
352
Реакции
274
  • Команда форума
  • #9
public OnClientPostAdminCheck(client) SDKHook(client, SDKHook_OnTakeDamage, TakeDamage); - если игрок отключается то обязательно делать SDKUnHook или оно автоматически перестает ловить игрока с этим индексом? и нужно ли делать SDKUnHook всем игрокам после смены карты в OnMapEnd или OnMapStart ?

SDKHooks сам обрабатывает момент отключения игрока.
 
T

Tolyan

SDKHooks сам обрабатывает момент отключения игрока.
значит если мне нужен SDKHook(client, SDKHook_OnTakeDamage, TakeDamage); всегда то мне нужно его дать игроку в момент подключения и нигде SKDUnHook делать не надо?
Утечки там никакой не будет?
 

White Wolf

🍉
Сообщения
2,382
Реакции
2,187
  • Команда форума
  • #11
значит если мне нужен SDKHook(client, SDKHook_OnTakeDamage, TakeDamage); всегда то мне нужно его дать игроку в момент подключения и нигде SKDUnHook делать не надо?
Утечки там никакой не будет?
утечки не будет
Попробуйте документацию всё-таки почитать.
SourceMod Scripting API Reference
 
Сверху Снизу