Gość Diegtiariow Opublikowano 9 Września 2023 Zgłoś Udostępnij Opublikowano 9 Września 2023 NAZWA: Płatny BTR z możliwością kupna AUTOR: dimak-stalker KROK 1: Spoiler Spawnujemy BTR: 1. Tworzymy skrypt my_car.script (w folderze gamedata/scripts/) i piszemy tam następującą treść: function btr_1 () alife():create("vehicle_btr",vector():set(-198.585,-20.227,-147.066),53596,57) end 1 krok został zakończony! KROK 2: Spoiler 1. Teraz musimy się upewnić, że uruchomimy silnik i będziemy mogli podziwiać nasz transporter opancerzony z widoku trzeciej osoby. W tym celu otwieramy plik ui_keybinding (znajdujący się w gamedata\config\ui) i wpisujemy do takiej sekcji: <group name="kb_grp_common"> to: <command id="kb_cam_1" exe="cam_1"/> <command id="kb_cam_2" exe="cam_2"/> <command id="kb_cam_3" exe="cam_3"/> <command id="kb_turn_engine" exe="turn_engine"/> 2. Teraz w grze, wchodząc w ustawienia sterowania, znajdziesz przyciski i przypiszesz klawisze do wykonywania poleceń. 2 krok został zakończony! KROK 3: Spoiler 1. Tworzymy skrypt o nazwie money.script i piszemy w nim: function has_money_2000() local money = math.floor(2000) xr_statistic_freeplay.get_freeplay_statistic():get_found_pda_discount()) return db.actor:money()>=money end function dat_dengi(first_speaker, second_speaker) dialogs.relocate_money(second_speaker, 2000, "out") end 2. Teraz pozostaje utworzyć dialog i wstawić funkcję. W tym celu tworzymy prosty dialog. Otwieramy np. plik dialogs_escape.xml (gamedata/config/gameplay) i piszemy na końcu: <dialog id="test_dialog"> <phrase_list> <phrase id="0"> <text>test_dialog_0</text> <next>1</next> </phrase> <phrase id="1"> <text>test_dialog_1</text> <next>2</next> <next>3</next> </phrase> <phrase id="2"> <text>test_dialog_2</text> <precondition>money.has_money_2000</precondition> <action>my_car.btr_1</action> <action>money.dat_dengi</action> </phrase> <phrase id="3"> <text>test_dialog_3</text> </phrase> </phrase_list> </dialog> To jest szkielet dialogu. Nasza funkcja zostanie w nim zapisana. <dialog id="test_dialog"> - nazwa dialogu, który trzeba będzie dopisać NPC. <phrase id="0"> - numer frazy. <text>test_dialog_0</text> - tekst frazy. <next>?</next> - przejście do frazy. <precondition>money.has_money_2000</precondition> - sprawdzenie pieniędzy u GG (2000 rubli) <action>my_car.btr_1</action> - nasza funkcja spawnu BTR <action>money.dat_dengi</action> - ta funkcja zabiera od GG 2000 rubli 3. Teraz musisz napisać teksty dialogów. Wchodzimy do pliku "stable_dialogs_escape.xml" (gamedata/config/text/pol) i piszemy na końcu: <string id="test_dialog_0"> <text>Chcę kupić BTR.</text> </string> <string id="test_dialog_1"> <text>Naprawdę? Jesteś pewien, że wystarczy ci pieniędzy? Za transport powinieneś zapłacić mi 2000 rubli. Masz tyle kasy?</text> </string> <string id="test_dialog_2"> <text>Tak, mam. Trzymaj.</text> </string> <string id="test_dialog_3"> <text>Sorry, nie mam.</text> </string> <string id="test_dialog_0"> - to, do czego odnosi się szkielet dialogu. <text>Chcę kupić BTR.</text> - oczywiście tekst. Uwaga: Wszystkie dialogi zaczynają się od słów Naznaczonego. 4. Teraz musisz dopisać ten dialog do NPC. Na przykład Sidorowiczowi. Otwórz plik "character_desc_bar.xml" i znajdź sekcję Sidorowicza. Jest ona pierwsza i po wszystkich: <actor_dialog>???</actor_dialog> dopisujemy swój dialog: <actor_dialog>test_dialog</actor_dialog> 3 krok został zakończony! JAK TO TERAZ WYGLĄDA?: Spoiler Sidor będzie miał nowy dialog typu: (Naznaczony): - Chcę kupić BTR. (Sidorowicz): - Naprawdę? Jesteś pewien, że wystarczy ci pieniędzy? Za transport powinieneś zapłacić mi 2000 rubli. Masz tyle kasy? Naznaczony - 1 wariant pojawi się, jeśli Naznaczony ma 2000 rubli: - Tak, mam. Trzymaj. Nasz BTR pojawi się, a Sidorowicz zabierze od nas 2000 rubli. Naznaczony - 2 wariant pojawi się, jeśli Naznaczony nie ma 2000 rubli: - Sorry, nie mam. BTR nie pojawi się. PS.: Spoiler 1. Sam BTR znajduje się w folderze gamedata\config\creatures\vehicles.ltx: [vehicle_btr] GroupControlSection = spawn_group $spawn = "vehicles\vehicle_btr" class = SCRPTCAR cform = skeleton visual = physics\vehicles\btr\veh_btr_u_01.ogf actor_visual = physics\vehicles\btr\veh_btr_u_01.ogf ef_equipment_type = 3 ph_mass = 100000 script_binding = bind_physic_object.init 2. Ci, którzy mają АМК mod 1.4.1, to w pliku ui_keybinding trzeba zrobić tylko: <command id="kb_turn_engine" exe="turn_engine"/> a ten kawałek nie jest wymagany: <command id="kb_cam_1" exe="cam_1"/> <command id="kb_cam_2" exe="cam_2"/> <command id="kb_cam_3" exe="cam_3"/> ŹRÓDŁO: https://ap-pro.ru/forums/topic/1282-platnyy-btr-s-vozmozhnostyu-pokupki/ 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.