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

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

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

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

Vampire - проблема.

Статус пользователя xopoIIIuu
сообщение 31.7.2015, 14:00
Сообщение #1


Стаж: 12 лет

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

Добрый день, остановился на одном баге в вампирике, так как я не особо силён в pawn, прошу вашей помощи.
Суть бага в следующем: Почему-то не работает квар на максимально возможное хп/ар (g_pcvar_max_ap). Хп/ар всегда равно 100 - даже если менять значение в данном кваре - бестолку, пробовал разные комбинации, даже оптимизировал этот участок - смотрел по коду неугомона, всё та же беда, решил вернуть то, что было в начале, возможно я что-то не так делаю. Даже выдача хп/ap при респауне не работает, если указывать квар g_pcvar_max_ap: Пример с бронёй.
cs_set_user_armor(id, get_pcvar_num(g_pcvar_max_ap), CS_ARMOR_VESTHELM);
А вот так будет работать:
cs_set_user_armor(id, 250, CS_ARMOR_VESTHELM); - становиться 250 брони при респауне. Но при убийстве игроков (Срабатывает вампирик - оно обнуляет данное значение до 100). Пробовал разные комбинации - бестолку, может быть здесь есть знающие люди. Если что могу предоставить исходник от мода где эта функция используется.

Код
public client_death(killer, victim, wpnindex, hitplace, TK) {
    if(    victim == killer
    ||    !( 1 <= killer <= gMaxClients)
    ||    !is_user_alive(killer)
    ||    cs_get_user_team(victim) == cs_get_user_team(killer))
    {
        return;
    }
    if (hitplace == HIT_HEAD)
    {
        if (wpnindex == CSW_KNIFE)
        {
            g_hp_add = get_pcvar_num(g_pcvar_knife_hs_hp_add);
            g_ap_add = get_pcvar_num(g_pcvar_knife_hs_ap_add);
        }
        else
        {
            g_hp_add = get_pcvar_num(g_pcvar_hs_hp_add);
            g_ap_add = get_pcvar_num(g_pcvar_hs_ap_add);
        }
    }
    else
    {
        if (wpnindex == CSW_KNIFE)
        {
            g_hp_add = get_pcvar_num(g_pcvar_knife_hp_add);
            g_ap_add = get_pcvar_num(g_pcvar_knife_ap_add);
        }
        else if (wpnindex == CSW_HEGRENADE)
        {
            g_hp_add = get_pcvar_num(g_pcvar_grenade_hp_add);
            g_ap_add = get_pcvar_num(g_pcvar_grenade_ap_add);
        }
        else
        {
            g_hp_add = get_pcvar_num(g_pcvar_hp_add);
            g_ap_add = get_pcvar_num(g_pcvar_ap_add);
        }
    }
  
    g_max_hp = get_pcvar_num(g_pcvar_max_hp);
    g_killer_hp = get_user_health(killer);
    g_killer_hp += g_hp_add;
  
    g_max_ap = get_pcvar_num(g_pcvar_max_ap);
    g_killer_ap = get_user_armor(killer);
    g_killer_ap += g_ap_add;
  
    if (g_killer_hp > g_max_hp)
    {
        g_killer_hp = g_max_hp;
    }
  
    if (g_killer_ap > g_max_ap)
    {
        g_killer_ap = g_max_ap;
    }
  
    set_user_health(killer, g_killer_hp);
    set_user_armor(killer, g_killer_ap);
      
    set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1);
    ShowSyncHudMsg(killer, g_MsgSync,"Регенерация +%d Жизней, +%dБрони", g_hp_add, g_ap_add);
  
    new iColor[3], Float:flTime = get_pcvar_float(g_pCvarFadeTime);
    iColor = get_color(hitplace == HIT_HEAD ? g_pCvarColorHs : g_pCvarColor);
    UTIL_ScreenFade(killer, iColor, flTime, flTime, 75);
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: