LVutner Opublikowano 2 Lutego 2016 Zgłoś Udostępnij Opublikowano 2 Lutego 2016 Siema. Ktoś się zastanawiał skąd w np. w Lost Alphie czy moim modzie jest gunbobbing lub więcej slotów na broń? Postanowiłem Wam wyjaśnić jak skompilować patch 1.0007 dla naszego stalkera. Wymagana podstawowa wiedza o silnikach gier, kompilatorach oraz językach C/C#/. A więc zaczynamy... Co będzie potrzebne?: Zainstalowane Visual Studio 2010 (NIE EXPRESS) oraz KONIECZNIE Service Pack 1 dla tegoż kompilatora. Paczka stąd: https://yadi.sk/d/6GDogIZbiVx8v Pobrane repozytorium stąd: https://xp-dev.com/svn/xray oraz skopiowane do osobnego folderu Sporo czasu, cierpliwości i nerwów ze stali Ściągamy repozytorium o rewizji numer 189 (najnowsze 193 jest zbugowane). Kopiujemy je w inny folder, potem kasujemy plik "mount.bat". Teraz musimy ściągnąć "Paczkę" z niezbędnymi SDK i dwoma plikami .bat. Gdy ściągniemy paczkę wypakowujemy ją na pulpit. Otrzymujemy dwa foldery z SDK DirectX oraz dwa niewielkie pliki potrzebne do zrobienia wirtualnego dysku dla Visual Studio. Powracamy do naszego skopiowanego repozytorium z silnikiem i wrzucamy dwa pliki bat z paczki. Później wchodzimy kolejno w foldery "trunk", "3rd party". Do folderu "3rd party" wrzucamy foldery z paczki. Konfiguracja ogólna oraz definiowanie funkcji w silniku: Mamy przygotowany kod źródłowy do kompilacji, teraz wchodzimy w folder z silnikiem (repozytorium). Mamy dwa pliki, "mountDisks.bat" oraz "unmountDisks.bat". Klikamy "mountDisks.bat" wnet powinien nam się pojawić w komputerze wirtualny dysk. Nosi on nazwę "x:". Wchodzimy w ten dysk teraz i widzimy nasze repozytorium z silnikiem: http://scr.hu/1ib2/p8of3 Będąc nadal na dysku "X:" wchodzimy w folder "trunk". Znajdujący się w nim plik "build_config_defines.h" otwieramy najlepiej Notepadem++. Widzimy sporo funkcji do zdefiniowania. Po krótce omówię za co one odpowiadają. #pragma once // ==================================== Правки от alpet ======================================= #define HLAMP_AFFECT_IMMUNITIES // rozmaite zmiany dla klasy lamp (CHangingLamp) // #define LUAICP_COMPAT // ? #define SCRIPT_ICONS_CONTROL // setup_game_icon w Lua #define SCRIPT_EZI_CONTROL // kontrola effectoru CEffectorZoomInertion \ #define SPAWN_ANTIFREEZE // antifreez podczas spawnowania obiektow #define ECO_RENDER // zmniejszenie FPS w menu // #define MT_OPT // wielowatkowosc #define AF_SHOW_DYNAMIC_PARAMS // ? #define SCRIPT_VARS_STORAGE // ? // ==================================== Правки от K.D. ======================================= #define KD_DETAIL_RADIUS // wieksze rysowanie trawy w polu widzenia // ==================================== Правки от Real Wolf ======================================= //#define INV_RUCK_UNLIMITED_FIX // teraz plecak nie jest nieskonczony #define INV_NEW_SLOTS_SYSTEM // nowy ekwipunek ze slotami #define SUN_DIR_NOT_DEBUG // slonce dziala poprawnie //#define ARTEFACTS_FROM_RUCK // artefakty uzywane z plecaka #define KNIFE_SPRINT_FIX // fix biegania dla noza #define KNIFE_SPRINT_MOTION // mozliwosc animacji sprintu dla noza #define MISSILE_THREAT_FIX // animacje sprintu dla pozostalych itemow //#define GRENADE_FROM_BELT // granaty z pasa //#define LOCK_RELOAD_IN_SPRINT // blokada przeladowywania broni w sprincie #define HIDE_WEAPON_IN_CAR // chowanie broni w aucie //#define BM16_ANIMS_FIX // fix animacji dla bm16 #define INV_OUTFIT_FULL_ICON_HIDE // ukrycie ikony gg w zbroi w ekwipunku #define UI_LOCK_PDA_WITHOUT_PDA_IN_SLOT // zakaz uzycia pda gdy nie ma go w slocie #define CAR_SAVE_FUEL // auta zapamietuja paliwo #define R1_EXCLUDE // wyciecie rendera statycznego // ==================================== Правки от Red Virus ======================================= #define INV_NO_ACTIVATE_APPARATUS_SLOT // brak mozliwosci aktywacji niektorych slotow #define INV_MOVE_ITM_INTO_QUICK_SLOTS // jedzenie moze byc przeniesione do szybkich slotow #define WPN_BOBBING // gunbobbing z lost alphy //#define INV_COLORIZE_AMMO // kolorowanie amunicji z lost alphy // ==================================== Правки от Karlan ======================================= //#define AMMO_FROM_BELT // amunicja uzywana z pasa Co to znaczy zakontować zmianę? To znaczy dodać dwa ukośniki przed #. Oznacza to wyłączenie funkcji w silniku. Dwie rady odemnie: Nigdy niezakomentowywuj dalszego rysowania trawy oraz ECO_RENDER'a. Nigdy, bo będą później kłopoty przy kompilacji Nie włączaj amunicji na pasie ponieważ NPC mogą powodować problemy (uciekanie gdyż nie mają amunicji) Zmieniamy wedle uznania i zapisujemy plik. Kompilacja bibliotek oraz silnika: Wchodzimy kolejno w: dysk x\trunk\xray\xr_3da i szukamy pliku .sln o nazwie "XR_3DA_2007". Klikamy na niego dwa razy i ukazuje nam się Visual Studio. Musimy odczekać pare minut aż na pasku w Visualu pokaże się napis "Ready" Wygląda to tak: http://scr.hu/1ib2/quk5n Klikamy prawym przyciskiem myszy na zakładkę "3rd party". Potem wybieramy "Build". Po tym powinno nam się sześć bibliotek pomyślnie skompilować. Poinformuje nas o tym log: http://scr.hu/1ib2/mizrm Oczywiście można by te dwa SDK dać do folderu na dysku C:\Program Files (x86) przez co niemusielibyśmy ustalać ścieżek dla nich tylko od razu kompilować ale tego nietestowałem. Można spróbować, a może ułatwi pracę? Mamy teraz biblioteki potrzebne do kompilacji silnika, więc zabierzymy się za silnik teraz... W każdym pliku ustawiamy ścieżki do SDK DirectX June 2010 w każdym pliku silnika analogicznie jak w pierwszej bibliotece. To są Include Directories i Library Directories, musimy tam ustawić odpowiednią ścieżkę dla SDK DirectX. I potem tylko klikamy prawym przyciskiem myszy na plik silnika, potem "Project only" i "Build only NAZWAPLIKU". Należy tylko pamiętać o kolejności kompilacji: Biblioteki xrD3D9-Null Luabind oraz LuaJIT xrCore xrGameSpy xrCDB xrXMLParser xrSound xrNetServer XR_3DA xrCPU_Pipe xrParticles xrRender_r1 xrRender_r2 To tyle na dzisiaj. Testować, dawać relacje. Pytania mile widziane 1 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.