// где-то в энумераторе игрока, привязанного к PlayerInfo, допустим
pDamageInformerTarget,
pDamageInformerTime,
pDamageInformerObject
// OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
if (issuerid != INVALID_PLAYER_ID && IsPlayerConnected(issuerid))
{
// Не создаем новый, если уже есть старый
if ((PlayerInfo[issuerid][pDamageInformerObject] != 0)
&& (PlayerInfo[issuerid][pDamageInformerTarget] == playerid))
return 1;
PlayerInfo[issuerid][pDamageInformerTarget] = playerid;
PlayerInfo[issuerid][pDamageInformerTime] = 2; // 2 секунды на отображение
AttachDynamicObjectToPlayer(
(PlayerInfo[issuerid][pDamageInformerObject] = CreateDynamicObject(
/* model id */, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
GetPlayerVirtualWorld(playerid), .playerid = playerid
)),
playerid, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0
);
Streamer_Update(playerid);
}
// ежесекундный таймер
if ((PlayerInfo[playerid][pDamageInformerTime]-- >= 0)
&& (PlayerInfo[playerid][pDamageInformerTime] == 0))
{
DestroyDynamicObject(objectid);
PlayerInfo[issuerid][pDamageInformerObject] = 0;
PlayerInfo[issuerid][pDamageInformerTarget] = INVALID_PLAYER_ID;
}