Guest Diegtiariow Posted September 9, 2023 Report Share Posted September 9, 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/ Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.