LVutner Opublikowano 21 Sierpnia 2016 Zgłoś Udostępnij Opublikowano 21 Sierpnia 2016 Siema. Jako że jest ulewa u mnie to muszę się uspokoić i dać poradnik kolejny... tym razem tworzymy slota. Korzystałem z poradnika Kondra48 z amk-team za co jestem mu wdzięczny Przypominam o uprzednim przeczytaniu poradnika dotyczącego kompilacji patcha 1.0007 na którym będziemy pracować. UIInventoryWnd.cpp. Na wstępie musimy znaleźć plik o nazwie UIInventoryWnd.cpp. Ścieżka do niego: X:\trunk\xray\xr_3da\xrGame\ui Otwórzmy go zatem Notepadem++. Naszym zadaniem jest znaleźć owy fragment kodu: m_pUISlotQuickAccessList_3 = xr_new<CUIDragDropListEx>(); AttachChild(m_pUISlotQuickAccessList_3); m_pUISlotQuickAccessList_3->SetAutoDelete(true); xml_init.InitDragDropListEx (uiXml, "dragdrop_slot_quick_access_3", 0, m_pUISlotQuickAccessList_3); BindDragDropListEnents (m_pUISlotQuickAccessList_3); Jeśli już go znaleźliśmy to pod nim umieszczamy część kodową naszego nowego slotu. m_pUIDetAdvList = xr_new<CUIDragDropListEx>(); AttachChild(m_pUIDetAdvList); m_pUIDetAdvList->SetAutoDelete(true); xml_init.InitDragDropListEx (uiXml, "dragdrop_slot_det_adv", 0, m_pUIDetAdvList); BindDragDropListEnents (m_pUIDetAdvList); I znowu musimy użyć funkcji szukania w notepadzie. Tym razem chodzi o to: m_slots_array[SLOT_QUICK_ACCESS_3] = m_pUISlotQuickAccessList_3; I pod nim umieszczamy taki krótki kodzik: m_slots_array[DET_ADV_SLOT] = m_pUIDetAdvList; I zapisujemy nasz plik. UIInventoryWnd.h: Część kolejna, musimy otworzyć owy pliczek i znaleźć znowu jakiś kod... CUIDragDropListEx* m_pUISlotQuickAccessList_3; Pod nim dodajemy naszą formułkę: CUIDragDropListEx* m_pUIDetAdvList; Zapisujemy plik i przechodzimy do następnego, tym razem będzie to... UIInventoryWnd2.cpp: Tutaj tak samo musimy szukać kodów (niestety :)) Musimy znaleźć to: _itm = m_pInv->m_slots[SLOT_QUICK_ACCESS_3].m_pIItem; if(_itm) { CUICellItem* itm = create_cell_item(_itm); m_pUISlotQuickAccessList_3->SetItem (itm); } I pod nim to dodać: _itm = m_pInv->m_slots[DET_ADV_SLOT].m_pIItem; if(_itm) { CUICellItem* itm = create_cell_item(_itm); m_pUIDetAdvList->SetItem (itm); } Potem kolejne poszukiwania... m_pUISlotQuickAccessList_3->ClearAll (true); I pod tym dodajemy: m_pUIDetAdvList->ClearAll (true); Zapisujemy plik i przechodzimy do części kolejnej, najgorsze już za nami UIInventoryWnd3.cpp: Krótkie zadanie bo tutaj ogranicza się do dodania kodu w jednym miejscu. Mianowicie pod tym: case INVENTORY_TO_SLOT15_ACTION: CurrentIItem()->SetSlot(SLOT_QUICK_ACCESS_3); break; Dodamy to: case INVENTORY_TO_SLOT16_ACTION: CurrentIItem()->SetSlot(DET_ADV_SLOT); break; Zapisujemy i przechodzimy dalej. inventory_space.h: Szukamy teraz zdefiniowanego szybkiego slotu nr.3: #define SLOT_QUICK_ACCESS_3 15 Poniżej zdefiniujemy nasz slot: #define DET_ADV_SLOT 16 Trochę niżej mamy takie cuś: #define SLOTS_TOTAL 16 Zamiast szesnastki dajemy 17, bo doszedł nam nowy slot. Zapisujemy plik. Teraz będzie ostatnia część. UIMessages.h: Tutaj sprawa prosta jak drut. Dopisujemy tylko nasz kodzik pod: INVENTORY_TO_SLOT15_ACTION, A to nasz kodzik: INVENTORY_TO_SLOT16_ACTION, Zapisujemy i tym kończymy naszą pracę z silnikiem stalkera. Kompilujemy teraz xrGame.dll tak jak w poprzednim poradniku. Jeśli wszystko poprawnie się skompilowało można strzelić browara. UI, czyli dodajemy nasz slot do gry. Rzecz prosta jak 2+2, choć niektórzy tego działania nie umieją to żaden problem. W plikach UI tj. inventory_new.xml i inventory_new_16.xml Dodajemy nasz slot: <dragdrop_slot_det_adv x="581" y="673" width="100" height="50" cell_width = "48" cell_height="50" rows_num="1" cols_num="2" custom_placement="0" show_grid = "0"/> Zapisujemy plik i otwieramy system.ltx. Mamy nasze sloty slot_persistent_1 = false ;noże slot_persistent_2 = false ;pistolety slot_persistent_3 = false ;automaty slot_persistent_4 = true ;granaty ... Ta sekcja kończy się z numerem 16 (slot_persistent)... Zatem pod 16tką dodajemy nasz slot: slot_persistent_17 = false ;detektor nasz Testujemy czy wszystko działa i się radujemy 2 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Junx Opublikowano 15 Lutego 2017 Zgłoś Udostępnij Opublikowano 15 Lutego 2017 Czy taka sama zasada działania jest w ZP albo w ZCz? Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
LVutner Opublikowano 15 Lutego 2017 Autor Zgłoś Udostępnij Opublikowano 15 Lutego 2017 @Junx może pamiętasz jak wysłałem Ci archiwum na nowe sloty w CS? X-Rays of Hope to nazwa była. W Zewie Prypeci nie wiem jak to jest obecnie, nie bawiłem się kodem zatem mało pomogę. Jeśli się dowiem czegoś od bardziej doświadczonej osoby to zrobię nowy temat. Póki co spójrz jak to jest zrobione w X-Rays of Hope. W archiwum miałeś nawet dwa pliczki odpowiadające za sloty, prosto z kodu Czystego Nieba. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Junx Opublikowano 15 Lutego 2017 Zgłoś Udostępnij Opublikowano 15 Lutego 2017 @MonoLityczny Pamiętam, jeśli mam gdzieś tą wiadomość to sprawdzę. 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.