NAZWA: Płatny BTR z możliwością kupna
AUTOR: dimak-stalker
KROK 1:
Spoiler
Spawnujemy BTR:
- 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
- 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"/>
- Teraz w grze, wchodząc w ustawienia sterowania, znajdziesz przyciski i przypiszesz klawisze do wykonywania poleceń.
2 krok został zakończony!
KROK 3:
Spoiler
- 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
- 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.
- - nazwa dialogu, który trzeba będzie dopisać NPC.
- - numer frazy.
- test_dialog_0 - tekst frazy.
- ? - przejście do frazy.
- money.has_money_2000 - sprawdzenie pieniędzy u GG (2000 rubli)
- my_car.btr_1 - nasza funkcja spawnu BTR
- money.dat_dengi - ta funkcja zabiera od GG 2000 rubli
- 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>
- - to, do czego odnosi się szkielet dialogu.
- Chcę kupić BTR. - oczywiście tekst.
Uwaga: Wszystkie dialogi zaczynają się od słów Naznaczonego.
- 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
- 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
- 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/