Source Modification Centre - LOGO
Gość: ( Logowanie | Rejestracja )

 
MENU
 
ZASOBY
 
 
LEGENDA
 
REKLAMA
oryginalne zdjęcia ślub Gorzów Wlkp.

motel Gorzów Wlkp.

Suknie ślubne gorzów wlkp


zdjęcia ze studniówki Radom

wypożyczalnia samochodów osobowych gorzów

Encyklopedia wiedzy o grach Valve

kabriolet do ślubu gorzów wlkp

pozycjonowanie

NASZ BUTTON
SMC
 
NA FORUM
 
 
TUTORIALE - CODING [ Dodaj ]
Burst fire w MP5 Mefi'ego (potrójny strzał)
[ 2007-05-18 03:56:04  Dodał:  sobieh   Wyświetleń: 1960   Komentarzy: 1  ]
Witam.
Czytając dziś tutorial Mefi'ego zauważyłem że nie jest jeszcze opisane jak dodać SecondaryAttack jako BURST (potrójny strzał) do danej broni. Postanowiłem więc napisać swój pierwszy Tutorial.
Przechodząc do rzeczy ...

Co nam jest potrzebne :
a. Wszystko to co opisał Mefi w swoim Tutorialu o dodawaniu MP5
b. Pliki dołączone do tego Tutoriala (dodatkowy dźwięk i skrypt)
c. 15 minut czasu i chęci

Modyfikacja :
1. Pobieramy pliki dołączone do Tutoriala i wypakowujemy do folderu Moda
2. Odpalamy VisualC++ i ładujemy projekt SDK
3. Otwieramy wcześniej już stworzony plik server_hl2 \ Source Files \ HL2 DLL \ weapon_mp5.cpp
4. Szukamy w nim frazy

void CWeaponMP5::SecondaryAttack( void )
{
    //może kiedyś coś tu dodam
}


i zamieniamy całą znalezioną frazę na :

// Metoda: MP5 Secondary Attack (BURST FIRE)
void CWeaponMP5::SecondaryAttack( void )
{
   // Pobieramy gracza
   CBasePlayer *pPlayer = ToBasePlayer( GetOwner() );

   // Jesli nie ma gracza
   if ( !pPlayer )
   {
      // To nie robimy nic
      return;
   }

   // Sprawdzamy czy w magazyku sa przynajmniej 3 naboje
   if ( m_iClip1 < 3 )
   {
      if ( !m_bFireOnEmpty )
      {
         // Jesli nie ma to przeladowujemy
         Reload();
      }
      else
      {
         // Jesli nie ma juz zapasowych magazykow to
         // odtwarzamy dzwiek pustego strzalu
         WeaponSound( EMPTY );

    // Bron nie wystrzelila wiec ustawiamy czas
         // kolejnego wystrzalu na "0.1"
         m_flNextPrimaryAttack = 0.1;
      }

      return;
   }

   // Ustawiamy tryb ognia na BURST czyli 3 strzaly naraz
   WeaponSound( BURST );

   // Dodajemy blysk wystrzalu broni
   pPlayer->DoMuzzleFlash();
   
   // Ustawiamy animacje modelu broni na Primary Attack
   SendWeaponAnim( SendWeaponAnim( ACT_VM_PRIMARYATTACK ) );
   
   // Ustawiamy animacje modelu gracza na Attack 1
   pPlayer->SetAnimation( PLAYER_ATTACK1 );

   // Ustawiamy czas kolejnego strzalu 3 razy dluzszy niz zwyklego strzalu
   m_flNextPrimaryAttack = gpGlobals->curtime + 0.15;   
   
   // To samo robimy dla Secondary Attack czyli naszego "BURST"
   m_flNextSecondaryAttack = gpGlobals->curtime + 0.15;

   // Zabieramy 3 naboje z magazynka
   m_iClip1 -= 3;

   // Pobieramy wektor pozycji strzalu
   Vector vecSrc = pPlayer->Weapon_ShootPosition();

   // Ustawiamy celnosc broni
   Vector vecAiming = pPlayer->GetAutoaimVector( AUTOAIM_5DEGREES );   

   // Pierwszy parametr "3" oznacza ilosc wystrzeliwanych pociskow
   // w tym przypadku 3
   pPlayer->FireBullets( 3, vecSrc, vecAiming, vec3_origin, 8000, m_iPrimaryAmmoType, 0 );

   // Dodajemy odrzut przy wystrzale
   AddViewKick();
   
   // Dodajemy dzwiek strzalu
   CSoundEnt::InsertSound( SOUND_COMBAT, GetAbsOrigin(), 600, 0.2, GetOwner() );

   // Jesli skonczyla sie amunicja
   if ( !m_iClip1 && pPlayer->GetAmmoCount( m_iPrimaryAmmoType ) <= 0 )
   {     
      //  To informujemy o tym HEV Suit
      pPlayer->SetSuitUpdate( "!HEV_AMO0", FALSE, 0 );
   }
}


5. Otwieramy plik ...SteamApps\SourceMods\\scripts\game_sounds_weapons.txt
i ponownie dopisujemy w nim na samym końcu coś takiego :

"Weapon_MP5Navy.Burst"
{
   "channel"                           "CHAN_WEAPON"
   "volume"                            "1.0"   
   "CompatibilityAttenuation"   "0.64"
   "pitch"                               "PITCH_NORM"
   "wave"                              "weapons/mp5navy/mp5-2.wav"
}


To poinformuje silnik o dźwięku przypisanym do Weapon_MP5Navy.Burst

6. Uruchamiamy Moda
7. Jeśli nie działa ... to znaczy że coś skopałem i będę musiał poprawić Emot

Testowałem MP5 po tej modyfikacji i wydaje się działać prawidłowo.

Jeśli z tym Tutorialem jest nie tak to piszcie.
W kodzie c++ nie ma polskich znaków z wiadomych przyczyn.

DOŁĄCZONE PLIKI:
MP5_BURST_PATCH.ZIP ( 67 KB )


Autor: sobieh
Komentarze ( 1 ) / Dodaj komentarz
 
KOMENTARZE  
[ 2007-05-20 03:40:17  Dodał:  sobieh  ]
 
Gdyby ktoś to testował to byłbym wdzięczny za komentarz czy działa i czy wszystko było jasno opisane.
 
INFO
 
NAJNOWSZE
 
SHOUTBOX
Tracha: Royal Sperm <3
MoonBlaze: uwaga wirus
Elektryk: Link
MoonBlaze: btw to nie wiedziałem, że tusk i palikot są razem, po palicocie bym się spodziewał, ale po matole to nie :(
pulka103: Ja was też <3 moi mili ; ***
MoonBlaze: ty prowokancie ;*
Dabu: Tusk i Palikot <3
Tracha: Link Yep
MoonBlaze: &Palicot
Tracha: Fuck Tusk
 
ANKIETA

[ Czas generowania strony: 0.119 secs. ]

Copyright (c) 2002-2005 by Mefi & .raven
Wszelkie prawa zastrzeżone

Fotograf studniówka
Salon sukien ślubnych gorzów



38.107.179.22138.107.179.221

Polecamy:

rozrywkahttp://www.at4.klasowy.eugrypa leczeniekwant300CiążaRodzice GotLink.pl zaklady bukmacherskie Konie Klimatyzatory sharepoint drukarnia wielkoformatowa