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

 
MENU
 
ZASOBY
 
 
LEGENDA
 
REKLAMA
nietypowe fotografia ślubna Gorzów Wlkp.

hotel Gorzów Wlkp.

Suknie ślubne gorzów wlkp


studniówka Bydgoszcz

tania wypożyczalnia pojazdów

Encyklopedia wiedzy o grach Valve

pojazd do ślubu gorzów wielkopolski

pozycjonowanie w google

NASZ BUTTON
SMC
 
NA FORUM
 
 
TUTORIALE - CODING [ Dodaj ]
Od czego zacząć...
[ 2005-07-20 19:56:01  Dodał:  mefi   Wyświetleń: 5664   Komentarzy: 4  ]
    Aby zacząć zabawę w modyfikację kodu źródłowego Half-Life 2 należy zaopatrzyć się oczywiście w grę (najlepiej oryginał) oraz kompilator i edytor C++ (najlepiej użyć pakietu Microsoft Visual C++ 2003).
    Jeżeli macie już wszystkie wymienione rzeczy to czas zacząć zabawę.  W odróżnieniu od HL 1 gdzie, aby zacząć tworzyć moda było trzeba poświęcić dużo czasu na konfiguracje kodu źródłowego itp. w nowej odsłonie gry Half-Life programiści z firmy Valve uprościli to do minimum. Aby stworzyć szkielet w pełni działającego moda ze skonfigurowanym już kodem źródłowym (ścieżki itp.) wystarczy kilka kliknięć myszy i 2 minuty czasu. Teraz krok po kroku opiszę jak to zrobić.
    Włączamy steam'a, z menu wybieramy PLAY GAMES, a następnie szukamy kategorii Tools gdzie klikamy na SOURCE SDK. Teraz prawym klawiszem myszy otwieramy menu z którego wybieramy INSTALL GAME i naszym oczom ukaże się ramka w której wyczytamy co zawiera SDK, a następnie klikamy na DOWNLOAD AND INSTALL. Po chwili pokaże się okno informujące, że SDK został zainstalowany i jest teraz dostępny z menu Steam'a. Teraz czas uruchomić SDK. Robimy to tak jak poprzednio z menu Tools, zaznacamy SDK i z menu wybieramy LAUNCH GAME. A teraz najbardziej wnerwiająca rzecz czyli czekanie aż nastąpi update SDK, czasem trwa to nawet godzinę czasu! Gdy juź odczekamy swoje zobaczymy takie okno:

Source Modification Centre

Tak jak na obrazku w Current Game wybieramy Half-Life 2 i klikamy dwa razy na CREATE A MOD. Pojawi się kolejne okno w którym zaznaczamy MODIFY HALF-LIFE 2 SINGLE PLAYER i naciskamy guzik NEXT.

Source Modification Centre

W kolejnym oknie musimy podać dwie rzeczy. Po pierwsze, gdzie będzie trzymany na dysku kod źródłowy wraz katalogami dla źródeł, map itp. I druga rzecz jaką musimy podać to nazwa katalogu moda, który znajdzie się w folderze SOURCEMODS gry HL2. Do tego katalogu kopiuje się wszystkie nowe mody. Można skonfigurować to np. tak:

Source Modification Centre

Już teraz mam gotowego moda przygotowanego do modyfikacji. Aby go uruchomić wystarczy ze Steam'a z kategorii Third Party Games wybrać HALF-LIFE 2 MOD lub wejść do katalogu, który podawaliśmy przy konfiguracji, ten z kodem źródłowym (w naszym przypadku MOJ MOD) i kliknać na plik RUN_MOD.BAT. Jeżeli chcielibyśmy zmienić nazwę naszego moda wyświetlaną w Third Party Games należy zmodyfikowć plik GAMEINFO.TXT znajdującym się w katalogu moda. Otwieramy go np. notatnikiem i w sekcji Gameinfo usuwamy niepotrzebną linię z napisem game. A następnie zamiast niej wstawiamy linię jak w przykładzie poniżej:

"GameInfo"
{
      // This is what shows up in the 'Third Party Games' area of the Steam games list.   
       game "Half-Life 2 Mod"
   

"GameInfo"
{
      // This is what shows up in the 'Third Party Games' area of the Steam games list.   
       name "Nazwa mojego moda"

Aby mod działał bez problemów takich jak np. dziwne nazwy broni musimy zmienić nazwę pliku HL2_ENGLISH.TXT znajdującego się w katalogu RESOURCE naszego moda na MOD_ENGLISH.TXT. W pierwszym członie nazwy pliku musi być nazwa katalogu moda.
    Przyszedł czas aby uruchomić Viasual Studio, gdy już to zrobimy to z menu wybieramy
FILE->OPEN->PROJECT
i z katalogu C:\MOJ MOD\SRC otwieramy plik GAME_SDK.SLN.
W Half-Life 2 nie modyfikuje się exe'ka (HL2.EXE). Modyfikuje się natomiast dwa pliki DLL, CLIENT.DLL oraz SERVER.DLL. Pierwszy jak sama nazwa wskazuje to client, a drugi to serwer i to je będziemy zmieniali.
Po otwarciu wyżej wymienionego pliku w prawym oknie zobaczymy takie coś:

Source Modification Centre

Są to dwa projekty, pierwszy dotyczy kodu źródłowego pliku CLIENT.DLL, natomiast drugi pliku SERVER.DLL. Pogrubiona nazwa projektu clienta oznacza, że to on jest teraz projektem aktywnym.
Pod spodem okna są dwie zakładki:
- CLASSVIEW (dodawanie, przeglądanie klas)
- FILEVIEW (dodawanie, usuwanie i przeglądanie plików źródłowych)
Teraz ważna rzecz, domyślnie oba projekty ustawione są na tworzenie plików, które będzie można debugować, czyli z poziomu Visual'a krok po kroku śledzić ich wykonywanie. W tej konfiguracji pliki wynikowe są o wiele większe i aby mod się włączył trzeba zezwolić na obsługę takich plików. Aby to zrobić musimy włączyć moda z parametrem -allowdebug. Jeżeli włączacie mod'a poprzez plik RUN_MOD.BAT to nie musicie nic dopisywać, bo jest w nim już odpowiedni wpis. Jeżeli jednak chcecie generować pliki w trybie Release to musicie z menu BUILD wybrać CONFIGURATION MANAGER i Active Solution Configuration zmienić na RELEASE HL2.

Source Modification Centre

Aby wraz z plikami DLL nie kopiowane były do katalogu BIN niepotrzebne nam pliki PDB, naleźy kliknąć na wybrany projekt i z menu podręcznego wybrać PROPERTIES. Następnie znajdujemy kategorię CUSTOM BUILD STEP i w Command Line i Outputs usuwamy wszytskie wpisy dotyczące tych plików. Oczywiście to samo należy zrobić dla drugiego projektu.
    Teraz pomyślmy co chcemy na początek modyfikować serwer czy klienta, żeby wam skrócić  myślenie weźmy na tapetę serwer (SERVER.DLL). Klikając na plus obok napisu HL pokaże się nam struktura katalogów zawierających pliki źródłowe serwera:
- SOURCE FILES (pliki CPP z funkcjami i algorytmami)
- HEADER FILES (pliki nagłówkowe H, które zawierają deklaracje funkcji, stałych oraz zmiennych).
Teraz coś zmienimy w kodzie i w końcu go skompilujemy. Powiedzmy, że chcemy, aby broń SMG1 mogła strzelać także pod wodą. Aby to zrobić w projekcie HL otwieramy katalog SOURCE FILES, a w nim HL2 DLL. Następnie szukamy pliku WEAPON_SMG1.CPP i otwieramy go. Teraz musimy znaleźć miejsce w kodzie, które będziemy zmieniać, nie będę podawał do której linii w kodzie trzeba skoczyć gdyż jak coś zmodyfikujemy to numery linii się zmienią. Będę podawał więc nazwę funkcji w której będzie jakaś modyfikacja. Z menu EDIT->FIND AND REPLACE->FIND otwieramy okienko w którym wpisujemy nazwę funkcji, w naszym  wypadku CWeaponSMG1::CWeaponSMG1( ). Szukana funkcja wygląda tak:

CWeaponSMG1::CWeaponSMG1( )
{
   m_fMinRange1 = 0;// No minimum range.
   m_fMaxRange1 = 1400;
}

Teraz aby broń strzelała pod wodą należy dodać zmienną, która za to odpowiada. Zmienna ta nazywa się m_bFiresUnderwater i jest typu BOOL. To że zmienna ta jest tego typu można rozpoznać po przedrostku b lub można skorzystać z fajnej opcji jaka ma w Visual Studio. Opcja ta pokazuje, w którym pliku i miejscu nastąpiła deklaracja stałych, zmiennych oraz funkcji. Zobaczmy więc jak działa ta opcja w praktyce. Dopiszcie po m_fMaxRange1 = 1400 taką linię m_bFiresUnderwater = true, teraz kliknijcie na nazwie tej zmiennej i z menu podręcznego wybierzcie opcję GO TO DECLARATION. Po chwili otworzy się wam plik BASECOMBATWEAPON_SHARED.H z podświetloną linią kodu: bool m_bFiresUnderwater.
Zmodyfikowany kod dla broni SMG1 umożliwiający strzelanie pod wodą powinień wygladać tak:

CWeaponSMG1::CWeaponSMG1( )
{
   m_fMinRange1 = 0;// No minimum range.
   m_fMaxRange1 = 1400;
   m_bFiresUnderwater = true;
}

Teraz wystarczy zapisać plik i z menu BUILD wybrać BUILD SOLUTION, aby skompilować oba pliki DLL. Po kompilacji, która trwa od minuty do kilku minut w zależności od mocy komputera można włączyć naszego moda i sprawdzić jak działa nasza modyfikacja.

Autor: mefi
Komentarze ( 4 ) / Dodaj komentarz
 
KOMENTARZE  
[ 2010-01-04 14:57:14  Dodał:  Mr_R1  ]
 
Ja mam problem. Robiłem jak trzeba z source sdk. Wszystko ok, ale nie mam pliku hl2.english.txt w folderze resource (jest tylko pusty folder ui) i pliku game.sdk.sln w folderze src. Gdzie są te pliki??
 
[ 2010-01-18 23:47:24  Dodał:  Pawel(pl){BD}  ]
 
tez tego nie mam ):
 
[ 2010-01-22 16:12:29  Dodał:  Fighter  ]
 
Znajduje się zapewne w pliky .gcf plików Source. Poszukajcie w plikach Source SDK Base albo silnika Source na którym tworzycie moda.
 
[ 2010-02-20 00:37:07  Dodał:  VorteX  ]
 
Ja nie mam nigdzie lol
 
INFO
 
NAJNOWSZE
 
SHOUTBOX
MoonBlaze: ciasto is a lie
zwieracz: Przyłącz się do mnie, mam ciasto
Jodla: <kontemplujac stwierdza iz obecna rzeczywistosc jest do bani>
MoonBlaze: sm_ban @Dabu 1
Dabu: Ta strona umarła, zapraszam lepiej na heacrab.pl :D [/koniec reklamy]
Jodla: open beta nowego gmoda a tu 0 info na stronie ...może czas to zmienic zwłaszcza iż screeny z GM13 wygladaja apetycznie
Dabu: web 3.0
Elektryk: Link
Tracha: Ruski gracz!
zwieracz: Za moich czasów, to się bawilismy przy takiej gierce, gdzie zając łapaj kury za jaja. A moze to był wilk.
 
ANKIETA

[ Czas generowania strony: 0.062 secs. ]

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

Fotograf studniówka
Salon sukien ślubnych gorzów



38.107.179.22038.107.179.220

Polecamy:

mpblawcenter
Wróżby andrzejkowe
Wróżby andrzejkowe
Dobre Bajki Najlepsze bajki wszechczasów Dobra jakość - Megavideo i youtube.
Najlepsze opisy na gg dla Ciebiequazi sklep internetowyhttp://www.tx5.poruta.euiglakizdjęciaBramy zachodniopomorskie GotLink.pl yerba, yerba mate server hosting yerba mate oreg TWORZENIE STRON INTERNETOWYCH !!!!!