M202

Тема в разделе "Оружие", создана пользователем CompJ, 5 янв 2013.

  1. Lexass

    Lexass Капо

    возьми и поменяй M202A2Fire в функции ModeDoFire

    Код:
    event ModeDoFire()
    {
    local float Rec;
    
    if (!AllowFire())
      return;
    
    Spread = Default.Spread;
    
    Rec = GetFireSpeed();
    FireRate = default.FireRate/Rec;
    FireAnimRate = default.FireAnimRate*Rec;
    if(KFWeapon(Weapon).bAimingRifle)
    {
      FireAnim = FireAnimIron;
    }
    else
    {
      FireAnim = FireAnimSimple;
    }
    Rec = 1;
    
    if ( KFPlayerReplicationInfo(Instigator.PlayerReplicationInfo) != none && KFPlayerReplicationInfo(Instigator.PlayerReplicationInfo).ClientVeteranSkill != none )
    {
      Spread *= KFPlayerReplicationInfo(Instigator.PlayerReplicationInfo).ClientVeteranSkill.Static.ModifyRecoilSpread(KFPlayerReplicationInfo(Instigator.PlayerReplicationInfo), self, Rec);
    }
    
    if( !bFiringDoesntAffectMovement )
    {
      if (FireRate > 0.25)
      {
       Instigator.Velocity.x *= 0.1;
       Instigator.Velocity.y *= 0.1;
      }
      else
      {
       Instigator.Velocity.x *= 0.5;
       Instigator.Velocity.y *= 0.5;
      }
    }
    if (!AllowFire())
    return;
    
    if (MaxHoldTime > 0.0)
    HoldTime = FMin(HoldTime, MaxHoldTime);
    
    // server
    if (Level.NetMode != NM_Client)
    {
    Load = KFWeapon(Weapon).MagAmmoRemaining;
    Weapon.ConsumeAmmo(ThisModeNum, AmmoPerFire);
    DoFireEffectN(Load);
      HoldTime = 0; // if bot decides to stop firing, HoldTime must be reset first
    if ( (Instigator == None) || (Instigator.Controller == None) )
       return;
    
    if ( AIController(Instigator.Controller) != None )
    	 AIController(Instigator.Controller).WeaponFireAgain(BotRefireRate, true);
    
    Instigator.DeactivateSpawnProtection();
    }
    
    // client
    if (Instigator.IsLocallyControlled())
    {
      // Need to consume ammo client side to make sure the right anims play
    		 if( Weapon.Role < ROLE_Authority )
       {
    		  //Weapon.ConsumeAmmo(ThisModeNum, AmmoPerFire);
    		 }
    ShakeView();
    PlayFiring();
    FlashMuzzleFlash();
    StartMuzzleSmoke();
    }
    else // server
    {
    ServerPlayFiring();
    }
    
    Weapon.IncrementFlashCount(ThisModeNum);
    
    // set the next firing time. must be careful here so client and server do not get out of sync
    if (bFireOnRelease)
    {
    if (bIsFiring)
    	 NextFireTime += MaxHoldTime + FireRate;
    else
    	 NextFireTime = Level.TimeSeconds + FireRate;
    }
    else
    {
    NextFireTime += FireRate;
    NextFireTime = FMax(NextFireTime, Level.TimeSeconds);
    }
    
    Load = AmmoPerFire;
    HoldTime = 0;
    
    if (Instigator.PendingWeapon != Weapon && Instigator.PendingWeapon != None)
    {
    bIsFiring = false;
    Weapon.PutDown();
    }
    // client
    if (Instigator.IsLocallyControlled())
    {
    HandleRecoil(Rec);
    }
    }
    
    может получится

    или могу исходников накидать если не выйдет
     
  2. CBAPLLLuK

    CBAPLLLuK Бандит

    Не понял.

    Да исходники-то как раз есть. Здесь крупное событие (event), в котором по моему мнению много лишнего. Сервер жалуется на функцию (function) GetFireSpeed.

    Rec = GetFireSpeed();
    FireRate = default.FireRate/Rec;
    FireAnimRate = default.FireAnimRate*Rec;
    if(KFWeapon(Weapon).bAimingRifle)

    И поехало... Ну и кто мне скажет, что здесь править?
     
  3. Lexass

    Lexass Капо

    пробовал её просто убрать? я помню как то в какой то пушке просто убрал эту строчку и всё нормально работало
     
  4. CompJ

    CompJ Бандит

    правильно жалуется, такой функции не было в ранних версиях (если не путаю).
    Добавь её ниже
    function float GetFireSpeed()
    {
    if ( KFPlayerReplicationInfo(Instigator.PlayerReplicationInfo) != none && KFPlayerReplicationInfo(Instigator.PlayerReplicationInfo).ClientVeteranSkill != none )
    {
    return KFPlayerReplicationInfo(Instigator.PlayerReplicationInfo).ClientVeteranSkill.Static.GetFireSpeedMod(KFPlayerReplicationInfo(Instigator.PlayerReplicationInfo), Weapon);
    }

    return 1;
    }

    В этом же классе, авось прокатит.
     
    CBAPLLLuK нравится это.
  5. CBAPLLLuK

    CBAPLLLuK Бандит

    [background=rgb(54, 54, 54)]CompJ[/background]
    Премного благодарен. Всё работает.
     
  6. Винни

    Винни Мододел "UM"

    Проще декомпилировать мутатор и посмотреть в чём суть проблемы.
     
  7. Qlod

    Qlod Соучастник

    У кого данный пушке работает на версии 1058? Сегодня поставил и началось... Клиентов выкидывает с сервера как только запахнет этим гранатометом, респавн, покупка, прицеливание, выстрел. Но иногда бывают исключения. Пока не понял с чем это связано. Логи чистые на сервере, со стороны клиента ругается на мешь.
    Warning: 'NULL':
    Warning: 'Material None.':
    ScriptLog: KFPlayerSound.Malebreath
    ScriptLog: KFPlayerSound.Malebreath
    ScriptLog: Attempting to close a non-existing menu page
    ScriptLog: KFPlayerSound.Malebreath
    ScriptLog: Attempting to close a non-existing menu page
    ScriptLog: Attempting to close a non-existing menu page
    Log: Allocating 275520 byte dynamic index buffer.
    ScriptLog: Attempting to close a non-existing menu page
    Critical: USkeletalMeshInstance::Render
    Critical: FDynamicActor::Render
    Critical: FDynamicActor::Render
    Critical: FActorSceneNode::Render
    Critical: UShadowBitmapMaterial::Get
    Critical: FD3D9RenderInterface::SetProjectorMaterial
    Critical: FD3D9RenderInterface::SetMaterial
    Critical: ATerrainInfo::Render::RenderProjectors
    Critical: ATerrainInfo::Render
    Critical: RenderLevel
    Critical: KF-DOLG_BASE.myLevel
    Critical: FLevelSceneNode::Render
    Critical: FPlayerSceneNode::Render
    Critical: UGameEngine::Draw
    Critical: UWindowsViewport::Repaint
    Critical: UWindowsClient::Tick
    Critical: ClientTick
    Critical: UGameEngine::Tick
    Critical: Level KF-DOLG_BASE
    Critical: UpdateWorld
    Critical: MainLoop
    Critical: FMallocWindows::Free
    Critical: FMallocWindows::Realloc
    Critical: 726F6F6C 0 FArray
    Critical: FArray::Realloc
    Critical: 0*2
    Critical: FMallocWindows::Free
    Exit: Executing UObject::StaticShutdownAfterError
    Exit: Executing UWindowsClient::ShutdownAfterError
    Log: Waiting for file streaming thread to finish...
    Exit: OpenAL Audio subsystem shut down.
    Exit: Exiting.
    Log: FileManager: Reading 0 GByte 704 MByte 507 KByte 746 Bytes from HD took 8.563951 seconds (8.399951 reading, 0.164000 seeking).
    Log: FileManager: 1.125002 seconds spent with misc. duties
    Uninitialized: Name subsystem shut down
    Uninitialized: Log file closed, 03/01/14 03:23:49


    Warning: 'NULL':
    Warning: 'Material None.':
    Warning: M202A2 KF-HeresyBeta3.M202A2 (Function M202Mut.M202A1.AdjustIngameScope:0011) Accessed None 'Instigator'
    Warning: M202A2 KF-HeresyBeta3.M202A2 (Function M202Mut.M202A1.AdjustIngameScope:0051) Accessed None 'PC'
    ScriptLog: Attempting to close a non-existing menu page
    Critical: USkeletalMeshInstance::Render
    Critical: FDynamicActor::Render
    Critical: FDynamicActor::Render
    Critical: RenderLevel
    Critical: KF-HeresyBeta3.myLevel
    Critical: FLevelSceneNode::Render
    Critical: FPlayerSceneNode::Render
    Critical: UGameEngine::Draw
    Critical: UWindowsViewport::Repaint
    Critical: UWindowsClient::Tick
    Critical: ClientTick
    Critical: UGameEngine::Tick
    Critical: Level HeresyBeta3
    Critical: UpdateWorld
    Critical: MainLoop
    Critical: FMallocWindows::Free
    Critical: FMallocWindows::Realloc
    Critical: 726F6F6C 0 FArray
    Critical: FArray::Realloc
    Critical: 0*2
    Critical: FMallocWindows::Free
    Exit: Executing UObject::StaticShutdownAfterError
    Exit: Executing UWindowsClient::ShutdownAfterError
    Log: Waiting for file streaming thread to finish...
    Exit: OpenAL Audio subsystem shut down.
    Exit: Exiting.
    Log: FileManager: Reading 0 GByte 964 MByte 1016 KByte 556 Bytes from HD took 0.967994 seconds (0.839994 reading, 0.128000 seeking).
    Log: FileManager: 3.059961 seconds spent with misc. duties
    Uninitialized: Name subsystem shut down
    Uninitialized: Log file closed, 03/01/14 20:04:04
     
  8. CompJ

    CompJ Бандит

    Проверю M202A2 завтра на работе. Но уже месяца два как 1058 перешёл, ничего не вылетало, хотя стреляли. Всё равно собирался, проверить и прилизать код этого оружия, вот и повод.
     
  9. Винни

    Винни Мододел "UM"

    Сделал фикс оружия.

    + Подправил все коды
    + Убрал лишний мусор

    Оружие теперь добавлять через ServerPerks или команду админа:
    M202.M202A1Pickup (Огненный)
    M202.M202A2Pickup (Обыкновенный)

    Yandex: Link

    P.S. Просьба администраторов/модераторов добавить ссылку в пост.
     
    Stein, ЛОХМАТЫЙ, drummer36 и 2 другим нравится это.
  10. assayaro

    assayaro Соучастник

    Strange~
    I'd used until v1058,
    By the way When v1060, does not add to to the store...
    In other words, When i add a store... not connect killingfloor ...
    What's the problem?
     
  11. Dronis

    Dronis Бандит

    Что насчет бага со скорострелом ? там как чит, патроны не кончаются и стреляет как с пистолета.
     
  12. CompJ

    CompJ Бандит

    А с этого места поподробнее :)
    В обеих вариантах оружия себя проявляет или в каком-то одном. Ну и сам баг, при каких случаях, т.е. его стабильно можно повторить или он от случая к случаю? Мне бы неплохо его самому понаблюдать, чтобы отловить.
     
  13. Dronis

    Dronis Бандит

    Если мог бы вспомнить где эта запись, мне показывали ролик, один с помощью макроса одним нажатием пускает сразу все заряды, скажем за пол секунды и большой взрыв раздается, как то так выглядит картинка. Пришлось убрать пока его.
    Пробовал даже сам например с мышью a4tech x7 можно настроить макрос скорострела без кликов, одним кликом все 4 заряда мгновенно вылетели, без задержек.
     
  14. CompJ

    CompJ Бандит

    Хм, для M202A1 сделано, на альтернативной огне 4 заряда разом (точнее, сколько осталось зарядов). Для M202A2 на альтернативном повешена очередь. Ещё есть глюки с ScrnBalance, я подумываю добавить проверок дополнительно.
     
  15. drummer36

    drummer36 Солдат

    Так и есть )) Баг очн злосный,действительно бы поправить его.И даже бы не "бы" а "нужно" ))
    Народ просек за той мулькой - покупают ствол,все патроны используют,потом бросают на пол и опять подбирают и вуаля,патронов без конца.А м202 для подрыва еще злее - стреляешь в небо ну так чтоб ракеты летели долгое время.Заклинивает и летят без конца,пока вообще вылета не будет с крит. ошибкой.Но это не важно,решится тогда,если бы вы сняли баг с бесконечностью патронов...вот такие дела :blink:
     
  16. Dronis

    Dronis Бандит

    вот! правильно подметил. Про что я и хотел сказать.
     
  17. CompJ

    CompJ Бандит

    Интересно, воспроизведу на днях, посмотрю, хех. И вопрос сразу, а какие-нибудь scrnBalancr не используется, случайно? И версия правленная Винни, может поможет?
     
  18. Dronis

    Dronis Бандит

    не пользуюсь срнблн, вручную только подбираю.
     
  19. drummer36

    drummer36 Солдат

    Я хз о чем вы,но точно знаю что без всяких там добавок - оружка баговая + неначто смотреть,разве что понять в чем дело и что вызывает баг...логи и все такое.Вобщем будем ждать поправку,ато не альо все это дело.Надеемся решите сие кхм.....молчим )))
     
  20. drummer36

    drummer36 Солдат

    CompJ загляни в м202,там мы все еще ждем патча или все же пробовал исправить и тебе пока что невыходит?Дальше ждем!