[CS:GO] Ускорение перезарядки

Черная вдова

Участник
Сообщения
2,795
Реакции
670
C-подобный:
public OnPluginStart()
{
   HookEvent("weapon_reload", weapon_reload);
}

public weapon_reload(Handle:event, const String:name[], bool:silent)
{
   new client = GetClientOfUserId(GetEventInt(event, "userid"));
   
   new weapon = GetEntPropEnt(client, Prop_Data, "m_hActiveWeapon");
   new Float:curtime = GetGameTime();
   new Float:nexttime = GetEntPropFloat(weapon, Prop_Send, "m_flNextPrimaryAttack");
   nexttime -= curtime;
   nexttime *= 1.0/4.0;
   nexttime += curtime;

   SetEntPropFloat(weapon, Prop_Send, "m_flNextPrimaryAttack", nexttime);
   SetEntPropFloat(client, Prop_Send, "m_flNextAttack", nexttime);
}
Это ускоряет перезарядку в 4 раза
но как остановить анимацию перезарядки когда ускоренная перезарядка закончится
или как ускорить анимацию перезарядки
 

Felton

Участник
Сообщения
799
Реакции
59
А для Counter-Strike Source(старущка) такое воэможно сделать ?
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #4
@Felton, возможно. Этот же код должен подойти.
 

Felton

Участник
Сообщения
799
Реакции
59
Скомелировал ошибок нет.Установил на домашний сервер.Ошибок нет да перезаредка происходит как и происходила.Разници так и не увидел.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #6
@Felton, Вы на анимацию небось смотрите.
Её скорость фактически не изменилась. А вот сама перезарядка должна ускориться.
 

inklesspen

Не пишу модули под LSD :с
Сообщения
1,775
Реакции
967
@Felton, Вы на анимацию небось смотрите.
Её скорость фактически не изменилась. А вот сама перезарядка должна ускориться.
Но мы меняем NextAttack, успеет ли оружие перезарядиться, чтобы начать стрелять
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #8
@inklesspen, в TF2 почему-то успевает спокойно.
Касательно других движков ничего не скажу.
 

Черная вдова

Участник
Сообщения
2,795
Реакции
670
C-подобный:
new weapon = GetEntPropEnt(client, Prop_Data, "m_hActiveWeapon");
        new Float:curtime = GetGameTime();
        new Float:nexttime = GetEntPropFloat(weapon, Prop_Send, "m_flNextPrimaryAttack");
        nexttime -= curtime;
        nexttime *= 1.0/reloadmodify[client];
        new Float:bbb = nexttime;
        nexttime += curtime;

        SetEntPropFloat(weapon, Prop_Send, "m_flNextPrimaryAttack", nexttime);
        SetEntPropFloat(client, Prop_Send, "m_flNextAttack", nexttime);
        SetEntPropFloat(weapon, Prop_Send, "m_flPlaybackRate", bbb);
        new iViewModel = GetEntPropEnt(client, Prop_Send, "m_hViewModel");
        if(iViewModel != INVALID_ENT_REFERENCE) SetEntPropFloat(iViewModel, Prop_Send, "m_flPlaybackRate", bbb);
        SetEntPropFloat(weapon, Prop_Send, "m_flTimeWeaponIdle", nexttime);
Вот так без world анимации

Вот так смена
C-подобный:
public OnWeaponSwitchPost(client, weapon2) 
{
    if(reloadmodify[client] != 0.0)
    {
        new weapon = GetEntPropEnt(client, Prop_Data, "m_hActiveWeapon");
        new Float:curtime = GetGameTime();
        new Float:nexttime = GetEntPropFloat(client, Prop_Send, "m_flNextAttack");
        nexttime -= curtime;
        nexttime *= 1.0/reloadmodify[client];
        new Float:bbb = 1.0/nexttime;
        nexttime += curtime;

        SetEntPropFloat(weapon, Prop_Send, "m_flNextPrimaryAttack", nexttime);
        SetEntPropFloat(client, Prop_Send, "m_flNextAttack", nexttime);
        SetEntPropFloat(weapon, Prop_Send, "m_flPlaybackRate", bbb);
        new iViewModel = GetEntPropEnt(client, Prop_Send, "m_hViewModel");
        if(iViewModel != INVALID_ENT_REFERENCE) SetEntPropFloat(iViewModel, Prop_Send, "m_flPlaybackRate", bbb);
        SetEntPropFloat(weapon, Prop_Send, "m_flTimeWeaponIdle", nexttime);
    }   
}
 

Felton

Участник
Сообщения
799
Реакции
59
Я уже писал что в твоей перовоначальной версии я разницу не заметил.Тестировл на домашнем .Игра Counter-Strike Source(старушка).Пробывал твой код вставлять в первоначальный.Я конечно не кодер и много не понимаю.[CS: Source] - Fast Weapon Reload v1.1
Вот тут вообще проблема.А можно запилить рабочий для Counter-Strike Source(старушка).А лучше сделать по флагу.Готов к тестированию.
 
Сверху Снизу