Płatny BTR z możliwością kupna

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"/\>
  1. 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
  1. 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.

  1. 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/