Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

14 страниц V  « 11 12 13 »

Crux Ansata. Плагин добавляет талисман жизни.

Статус пользователя NeMirofff
сообщение 3.10.2015, 13:18
Сообщение #221
Стаж: 11 лет

Сообщений: 182
Благодарностей: 7
Полезность: < 0

а можно ли как то сделать что бы он сохранялся? ну если игрок его поднял или он ему впал,и он не умер то он бы оставался у него пока тот не умрёт
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 7entol
сообщение 3.10.2015, 13:26
Сообщение #222


Стаж: 9 лет

Сообщений: 143
Благодарностей: 66
Полезность: 214

Цитата(NeMirofff @ 3.10.2015, 17:13) *
а можно ли как то сделать что бы он сохранялся? ну если игрок его поднял или он ему впал,и он не умер то он бы оставался у него пока тот не умрёт

А поиском в теме пользоваться?
Crux Ansata. Плагин добавляет талисман жизни. (Пост #799690)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя NeMirofff
сообщение 3.10.2015, 15:32
Сообщение #223
Стаж: 11 лет

Сообщений: 182
Благодарностей: 7
Полезность: < 0

Цитата(7entol @ 3.10.2015, 15:22) *

тот код что в том посте ты мне дал,он кривой,талисман выпадает игрокам которых вообще нет на сервере,который зашел его кикнуло за пинг,и в следущем раунде ему выпадает талисман ЛОЛ))
бред....нужно что бы сделали с шапки там этот баг пофикшен
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя NeMirofff
сообщение 3.10.2015, 17:07
Сообщение #224
Стаж: 11 лет

Сообщений: 182
Благодарностей: 7
Полезность: < 0

может кто сделать сохранение?? или что на что заменить напишите хотя бы сам попробую
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя wer1K
сообщение 21.2.2016, 2:07
Сообщение #225
Стаж: 16 лет

Сообщений: 403
Благодарностей: 259
Полезность: 987

Меценат Меценат

Ребята, а как на счет того, чтоб screen fade при добавлении HP не снимал эффект ослепления? Каким образом можно реализовать?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя g0ldenman
сообщение 21.2.2016, 11:34
Сообщение #226


Стаж: 8 лет 7 месяцев

Сообщений: 379
Благодарностей: 20
Полезность: < 0

Если я не ошибаюсь, то в этой версии была исправлена неправильная выдача талисмана.
Код:

#include <amxmodx>
#include <engine>

#define MIN_PLAYERS 10
#define ROUND_ACCESS 2
#define GIVE_HEALTH 7
#define INTERVAL_REGENERATION 2.0

new const g_szModel[] = "models/crux_ansata.mdl";

new g_iPlayerId, g_iRoundCounter, szName[32];

public plugin_init()
{
register_plugin("Talisman", "1.2", "DUKKHAZ0R");

register_touch("crux_ansata", "player", "fw_TouchEntity");

register_logevent("eRoundStart", 2, "1=Round_Start");
register_event("DeathMsg", "eDeathMsg", "a", "1>0");
register_event("TextMsg", "eRoundRestart", "a", "2&#Game_C", "2&#Game_w");

set_task(INTERVAL_REGENERATION, "RegenerationHealth", .flags="b");
}

public plugin_precache()
{
precache_model(g_szModel);
}

public client_disconnect(id)
if(g_iPlayerId == id) g_iPlayerId = 0;

public eRoundRestart()
g_iRoundCounter = 0;

public eRoundStart()
{
if(++g_iRoundCounter < ROUND_ACCESS || get_playersnum() < MIN_PLAYERS)
return;

static iEnt;

while((iEnt = find_ent_by_class(iEnt, "crux_ansata")))
remove_entity(iEnt);

static apPlayers[32], iPlayers;
get_players(apPlayers, iPlayers, "ach");

g_iPlayerId = apPlayers[random(iPlayers-1)];
get_user_name(g_iPlayerId, szName, charsmax(szName));

ChatColor(0, "^4[TALISMAN] ^1Игроку ^3%s ^1выдан талисман жизни", szName);
}

public eDeathMsg()
{
static pVictim, Float:flOrigin[3]; pVictim = read_data(2);

if(pVictim == g_iPlayerId)
{
new iEnt = create_entity("info_target");

if(!is_valid_ent(iEnt))
return;

entity_get_vector(pVictim, EV_VEC_origin, flOrigin);
entity_set_vector(iEnt, EV_VEC_origin, flOrigin);
entity_set_string(iEnt, EV_SZ_classname, "crux_ansata");
entity_set_int(iEnt, EV_INT_solid, SOLID_TRIGGER);
entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_NONE);
entity_set_int(iEnt, EV_INT_effects, 8);
entity_set_model(iEnt, g_szModel);
entity_set_size(iEnt, Float:{-16.0,-16.0,-16.0}, Float:{16.0,16.0,16.0});
// ChatColor(g_iPlayerId = 0, "^4[TALISMAN] ^3%s ^1потерял талисман жизни", szName);
}
}

public fw_TouchEntity(iEnt, id)
{
if(!is_valid_ent(iEnt))
return;

get_user_name(g_iPlayerId = id, szName, charsmax(szName));
ChatColor(0,"^4[TALISMAN] ^1Игрок ^3%s ^1подобрал талисман жизни",szName);

entity_set_int(iEnt, EV_INT_flags, FL_KILLME);
}

public RegenerationHealth()
{
if(!g_iPlayerId || get_playersnum() < MIN_PLAYERS)
return;

static Float:fHealth, MsgId_Health; fHealth = entity_get_float(g_iPlayerId, EV_FL_health);

if(!MsgId_Health) MsgId_Health = get_user_msgid("Health");

if(fHealth < 100 && is_user_alive(g_iPlayerId))
{
static Float:giveHealth; giveHealth = (fHealth + GIVE_HEALTH) < 100 ? float(GIVE_HEALTH) : (100 - fHealth);

entity_set_float(g_iPlayerId, EV_FL_health, fHealth + giveHealth);

message_begin(MSG_ONE_UNRELIABLE, MsgId_Health, _, g_iPlayerId);
write_byte(floatround(fHealth + giveHealth));
message_end();

}
}

stock ChatColor(const id, const szMessage[], any:...)
{
static szBuffer[191], apPlayers[32], iPlayers; iPlayers = 1;
vformat(szBuffer, charsmax(szBuffer), szMessage, 3);
if(id)
{
if(!is_user_connected(id)) return;
apPlayers[0] = id;
iPlayers = 1;
}
else get_players(apPlayers, iPlayers, "ch");
for(new i;i < iPlayers; i++)
{
message_begin(MSG_ONE_UNRELIABLE, 76, .player = apPlayers[i]);
write_byte(apPlayers[i]);
write_string(szBuffer);
message_end();
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя wer1K
сообщение 22.2.2016, 0:03
Сообщение #227
Стаж: 16 лет

Сообщений: 403
Благодарностей: 259
Полезность: 987

Меценат Меценат

Цитата(xxf3mzue @ 21.2.2016, 2:07) *
Ребята, а как на счет того, чтоб screen fade при добавлении HP не снимал эффект ослепления? Каким образом можно реализовать?


Скрестить никто не поможет? Вот в этом плагине fade не снимает эффект, как добавить его в этот плагин?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя AnGeL01
сообщение 24.3.2016, 17:47
Сообщение #228


Стаж: 9 лет 3 месяца

Сообщений: 158
Благодарностей: 12
Полезность: 0

ssx,

Почему у меня не на русском а вот такая шняга - [TALISMAN] 3@>:C EXCLUSIVE 2K40= B0;8A<0= 687=8
что надо сделать все остальные плагины инфу на русском выдают
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Adlan
сообщение 8.5.2016, 17:29
Сообщение #229
Стаж: 8 лет 7 месяцев

Сообщений: 16
Благодарностей: 1
Полезность: 0

у кого нибудь есть другая модель?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя InventoR
сообщение 14.5.2016, 9:06
Сообщение #230
Стаж: 8 лет 5 месяцев

Сообщений: 43
Благодарностей: 2
Полезность: 37

Народ, подскажите, нашел в сети такую версию:
Cкрытый текст
Код
/*
    Плагин: Crux Ansata
    Автор: DUKKHAZ0R | Сайт: http://aimbat.ru/plugins/
    
    Описание:
    Плагин добавляет на сервер талисман жизни, у человека имеющего его будет восстанавливаться 5 хп каждые 2 секунды.
    В начале рануда рандомному игроку выпадает талисман жизни, если человек умирает, то любой другой сможет подобрать талисман.
    Минимальное количество игроков для работы плагина, количество восстанавливаемого здоровья и интервал восстанавления можно настроить в исходнике.
    
*/

#include <amxmodx>
#include <engine>

#define MIN_PLAYERS 5
#define ROUND_ACCESS 3
#define GIVE_HEALTH 5
#define INTERVAL_REGENERATION 2.0

new const g_szModel[] = "models/crux_ansata.mdl";

new g_iPlayerId, g_iRoundCounter, szName[32];

public plugin_init()
{
    register_plugin("Crux Ansata", "1.0", "DUKKHAZ0R");
    
    register_touch("crux_ansata", "player", "fw_TouchEntity");
    
    register_logevent("eRoundStart", 2, "1=Round_Start");
    register_event("DeathMsg", "eDeathMsg", "a", "1>0");
    register_event("TextMsg", "eRoundRestart", "a", "2&#Game_C", "2&#Game_w");
    
    set_task(INTERVAL_REGENERATION, "RegenerationHealth", .flags="b");
}

public plugin_precache()
{
    precache_model(g_szModel);
}

public client_disconnect(id)
    if(g_iPlayerId == id) g_iPlayerId = 0;
    
public eRoundRestart()
    g_iRoundCounter = 0;

public eRoundStart()
{
    if(++g_iRoundCounter < ROUND_ACCESS || get_playersnum() < MIN_PLAYERS)
        return;
        
    static iEnt;
    
    while((iEnt = find_ent_by_class(iEnt, "crux_ansata")))
        remove_entity(iEnt);
        
    static apPlayers[32], iPlayers;
    get_players(apPlayers, iPlayers, "ach");
    
    g_iPlayerId = apPlayers[random(iPlayers-1)];
    get_user_name(g_iPlayerId, szName, charsmax(szName));
    
    ChatColor(0, "^4[CA] ^3%s ^1выпал талисман жизни.", szName);
}

public eDeathMsg()
{
    static pVictim, Float:flOrigin[3]; pVictim = read_data(2);
    
    if(pVictim == g_iPlayerId)
    {
        new iEnt = create_entity("info_target");
        
        if(!is_valid_ent(iEnt))
            return;
        
        entity_get_vector(pVictim, EV_VEC_origin, flOrigin);
        entity_set_vector(iEnt, EV_VEC_origin, flOrigin);
        entity_set_string(iEnt, EV_SZ_classname, "crux_ansata");
        entity_set_int(iEnt, EV_INT_solid, SOLID_TRIGGER);
        entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_NONE);
        entity_set_int(iEnt, EV_INT_effects, 8);
        entity_set_model(iEnt, g_szModel);
        entity_set_size(iEnt, Float:{-16.0,-16.0,-16.0}, Float:{16.0,16.0,16.0});
        ChatColor(g_iPlayerId = 0, "^4[CA] ^3%s ^1потерял талисман жизни.", szName);
    }
}

public fw_TouchEntity(iEnt, id)
{
    if(!is_valid_ent(iEnt))
        return;
        
    get_user_name(g_iPlayerId = id, szName, charsmax(szName));
    ChatColor(0,"^4[CA] ^3%s ^1поднял талисман жизни.",szName);
    
    entity_set_int(iEnt, EV_INT_flags, FL_KILLME);
}

public RegenerationHealth()
{
    if(!g_iPlayerId || get_playersnum() < MIN_PLAYERS)
        return;
    
    static Float:fHealth, MsgId_Health; fHealth = entity_get_float(g_iPlayerId, EV_FL_health);
    
    if(!MsgId_Health) MsgId_Health = get_user_msgid("Health");
    
    if(fHealth < 100 && is_user_alive(g_iPlayerId))
    {
        static Float:giveHealth; giveHealth = (fHealth + GIVE_HEALTH) < 100 ? float(GIVE_HEALTH) : (100 - fHealth);
        
        entity_set_float(g_iPlayerId, EV_FL_health, fHealth + giveHealth);
        
        message_begin(MSG_ONE_UNRELIABLE, MsgId_Health, _, g_iPlayerId);
        write_byte(floatround(fHealth + giveHealth));
        message_end();
        
        message_begin(MSG_ONE_UNRELIABLE, 98, _, g_iPlayerId);
        write_short(1<<10);
        write_short(1<<10);
        write_short(0x0000);
        write_byte(0);
        write_byte(255);
        write_byte(0);
        write_byte(40);
        message_end();
    }
}

stock ChatColor(const id, const szMessage[], any:...)
{
    static szBuffer[191], apPlayers[32], iPlayers; iPlayers = 1;
    vformat(szBuffer, charsmax(szBuffer), szMessage, 3);
    if(id)
    {
        if(!is_user_connected(id)) return;
        apPlayers[0] = id;
        iPlayers = 1;
    }
    else get_players(apPlayers, iPlayers, "ch");
    for(new i;i < iPlayers; i++)
    {
        message_begin(MSG_ONE_UNRELIABLE, 76, .player = apPlayers[i]);
        write_byte(apPlayers[i]);
        write_string(szBuffer);
        message_end();
    }
}


Может кто подскажет, как отключить мигание экрана зеленым когда идет восстановление жиней?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Dukkhaz0r
сообщение 14.5.2016, 10:25
Сообщение #231


Стаж: 10 лет

Сообщений: 343
Благодарностей: 294
Полезность: 812

Код:

#include <amxmodx>
#include <engine>

#define MIN_PLAYERS 5
#define ROUND_ACCESS 3
#define GIVE_HEALTH 5
#define INTERVAL_REGENERATION 2.0

new const g_szModel[] = "models/crux_ansata.mdl";

new g_iPlayerId, g_iRoundCounter, szName[32];

public plugin_init()
{
register_plugin("Crux Ansata", "1.0", "DUKKHAZ0R");

register_touch("crux_ansata", "player", "fw_TouchEntity");

register_logevent("eRoundStart", 2, "1=Round_Start");
register_event("DeathMsg", "eDeathMsg", "a", "1>0");
register_event("TextMsg", "eRoundRestart", "a", "2&#Game_C", "2&#Game_w");

set_task(INTERVAL_REGENERATION, "RegenerationHealth", .flags="b");
}

public plugin_precache()
{
precache_model(g_szModel);
}

public client_disconnect(id)
if(g_iPlayerId == id) g_iPlayerId = 0;

public eRoundRestart()
g_iRoundCounter = 0;

public eRoundStart()
{
if(++g_iRoundCounter < ROUND_ACCESS || get_playersnum() < MIN_PLAYERS)
return;

static iEnt;

while((iEnt = find_ent_by_class(iEnt, "crux_ansata")))
remove_entity(iEnt);

static apPlayers[32], iPlayers;
get_players(apPlayers, iPlayers, "ach");

g_iPlayerId = apPlayers[random(iPlayers-1)];
get_user_name(g_iPlayerId, szName, charsmax(szName));

ChatColor(0, "^4[CA] ^3%s ^1выпал талисман жизни.", szName);
}

public eDeathMsg()
{
static pVictim, Float:flOrigin[3]; pVictim = read_data(2);

if(pVictim == g_iPlayerId)
{
new iEnt = create_entity("info_target");

if(!is_valid_ent(iEnt))
return;

entity_get_vector(pVictim, EV_VEC_origin, flOrigin);
entity_set_vector(iEnt, EV_VEC_origin, flOrigin);
entity_set_string(iEnt, EV_SZ_classname, "crux_ansata");
entity_set_int(iEnt, EV_INT_solid, SOLID_TRIGGER);
entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_NONE);
entity_set_int(iEnt, EV_INT_effects, 8);
entity_set_model(iEnt, g_szModel);
entity_set_size(iEnt, Float:{-16.0,-16.0,-16.0}, Float:{16.0,16.0,16.0});
ChatColor(g_iPlayerId = 0, "^4[CA] ^3%s ^1потерял талисман жизни.", szName);
}
}

public fw_TouchEntity(iEnt, id)
{
if(!is_valid_ent(iEnt))
return;

get_user_name(g_iPlayerId = id, szName, charsmax(szName));
ChatColor(0,"^4[CA] ^3%s ^1поднял талисман жизни.",szName);

entity_set_int(iEnt, EV_INT_flags, FL_KILLME);
}

public RegenerationHealth()
{
if(!g_iPlayerId || get_playersnum() < MIN_PLAYERS)
return;

static Float:fHealth, MsgId_Health; fHealth = entity_get_float(g_iPlayerId, EV_FL_health);

if(!MsgId_Health) MsgId_Health = get_user_msgid("Health");

if(fHealth < 100 && is_user_alive(g_iPlayerId))
{
static Float:giveHealth; giveHealth = (fHealth + GIVE_HEALTH) < 100 ? float(GIVE_HEALTH) : (100 - fHealth);

entity_set_float(g_iPlayerId, EV_FL_health, fHealth + giveHealth);

message_begin(MSG_ONE_UNRELIABLE, MsgId_Health, _, g_iPlayerId);
write_byte(floatround(fHealth + giveHealth));
message_end();
}
}

stock ChatColor(const id, const szMessage[], any:...)
{
static szBuffer[191], apPlayers[32], iPlayers; iPlayers = 1;
vformat(szBuffer, charsmax(szBuffer), szMessage, 3);
if(id)
{
if(!is_user_connected(id)) return;
apPlayers[0] = id;
iPlayers = 1;
}
else get_players(apPlayers, iPlayers, "ch");
for(new i;i < iPlayers; i++)
{
message_begin(MSG_ONE_UNRELIABLE, 76, .player = apPlayers[i]);
write_byte(apPlayers[i]);
write_string(szBuffer);
message_end();
}
}


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя InventoR
сообщение 14.5.2016, 19:38
Сообщение #232
Стаж: 8 лет 5 месяцев

Сообщений: 43
Благодарностей: 2
Полезность: 37

Dukkhaz0r, шикарно
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sibstrassi
сообщение 4.10.2016, 19:03
Сообщение #233
Стаж: 7 лет 5 месяцев

Сообщений: 151
Благодарностей: 5
Полезность: 37

Интересный плагин, очень хочу поставить, тестировал ваш, но не эффективно. Играли 3 на 3 и 1 на 1 и 2 на 2 - результат 1, кому-то вообще не выпадает, среди 6 человек может выпасть только 1му и редко еще 1му, остальные 4 впролете. Когда 1 на 1, рандом работает только, если перезайти на сервер, то есть, пока играешь на 1 карте 1 на 1, выпадает только одному, играли где-то раундов 30, если перезайти на сервак, есть маленькая вероятность, что выпадет другому, но в итоге ему и будет только выпадать.
Так же хотелось бы как у скальпеля, талисман сохранялся на следующем раунде.(играл на другом сервере, там все стабильно).
Так же чтоб была настройка максимальное количество жизней, в оригинале у плагина можно менять значение выше 100, то есть игрок может иметь более 100 жизней.

P.S. параметр -1 стоит проверял.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
csuser
сообщение 4.10.2016, 22:39
Сообщение #234
Стаж: 7 лет 8 месяцев

Сообщений: 1155
Благодарностей: 309
Полезность: 130

sibstrassi,
Когда-то переделал талисман и сделал его покупаемым.
Пишешь в чат /talisman и покупаешь регенерацию НР и АР.... но он очень быстро надоел.

Вообще НР можно иметь выше 100. Что тебя смущает? Ведь существует HP-Shop.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sibstrassi
сообщение 5.10.2016, 4:28
Сообщение #235
Стаж: 7 лет 5 месяцев

Сообщений: 151
Благодарностей: 5
Полезность: 37

В том-то и дело, нужен антураж и мотивация зайти на сервер, просто видел как люди на одном сервере наперегонки или на не взирая на врага бежали к талисману. Это же удобно поднял с кого-то и гоняешь с ним пока жив и на следующий раунд так же.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ruslankov
сообщение 5.10.2016, 13:40
Сообщение #236
Стаж: 7 лет 6 месяцев

Сообщений: 77
Благодарностей: 9
Полезность: < 0

вы в КС стрелять пришли или бегать за талисманом??
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sibstrassi
сообщение 5.10.2016, 14:12
Сообщение #237
Стаж: 7 лет 5 месяцев

Сообщений: 151
Благодарностей: 5
Полезность: 37

Цитата(ruslankov @ 5.10.2016, 18:40) *
вы в КС стрелять пришли или бегать за талисманом??

Это как дополнение к интересам, вкупе все удерживает человека на сервере, нежели на другом. Если ему на сервере интереснее, то с большей вероятностью будет заходить на этот, нежели другой.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DexteR
сообщение 6.10.2016, 19:37
Сообщение #238


Стаж: 8 лет 5 месяцев

Сообщений: 633
Благодарностей: 98
Полезность: 165

ребята такой вопрос как сделать чтоб место 100 хп было 120 в талисмане я так понял тут надо меня
Код
if(fHealth < 100 && is_user_alive(g_iPlayerId))
{
static Float:giveHealth; giveHealth = (fHealth + GIVE_HEALTH) < 100 ? float(GIVE_HEALTH) : (100 - fHealth);


Отредактировал: DexteR, - 6.10.2016, 19:38
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
supergamer
сообщение 6.10.2016, 19:42
Сообщение #239
Стаж: 7 лет 7 месяцев

Сообщений: 257
Благодарностей: 37
Полезность: < 0

DexteR,
if(fHealth < 120 && is_user_alive(g_iPlayerId))
{
static Float:giveHealth; giveHealth = (fHealth + GIVE_HEALTH) < 120 ? float(GIVE_HEALTH) : (120 - fHealth);

не??
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DexteR
сообщение 6.10.2016, 20:03
Сообщение #240


Стаж: 8 лет 5 месяцев

Сообщений: 633
Благодарностей: 98
Полезность: 165

supergamer, не пробывал попробую отпишу
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
14 страниц V  « 11 12 13 »
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: