No, miał być, to jest. Wyrafinowany skrypt dodający do gry banki.
Wystarczy porozmawiać z mistrzem gildii w dowolnym mieście, on wszystko nam wytłumaczy po wybraniu opcji dialogowej "Chciałbym/Chciałabym porozmawiać o banku.".
Ponieważ uważam opcję pożyczki za zbyt łatwą drogę do bogactwa i nie potrafię wymyślić odpowiednich konsekwencji dla gracza po niespłaceniu jej, w obecnej wersji zabrakło tej opcji.
Jeśli jednak masz jakiś dobry pomysł i pragniesz się nim podzielić, to zapraszam. Jestem otwarty na sugestie.
No, to teraz niestety musimy przejść do instalacji owego skryptu.
Zaczynamy od module_dialogs. Kiedy tylko odpalisz plik, powinna ukazać ci się ta linijka:
# Garedyr bank begin
# Reforged Edition 2017-01-15
# CHANGELOG:
# - added option to make a deposit or hand out amount of 10000 denars
# - fixed money disappearing bug after reaching huge amount of money (your acc balance cannot be higher than 500000 now)
# - precentage income is now randomised every month (from 1 to 6)
[anyone|plyr,"mayor_talk", [],
"{Chciałbym/Chciałabym} porozmawiać o banku.", "bank_begin",[]],
[anyone,"bank_begin", [(eq, "$g_konto_bankowe", 0)],
"Oczywiście. Wygląda na to, że nie posiada {pan/pani} jeszcze konta bankowego. W czym mogę pomóc?", "bank_talk_1",[]],
[anyone,"bank_begin", [(eq, "$g_konto_bankowe", 1)],
"Oczywiście.", "bank_konto",[]],
# Create bank account
[anyone|plyr,"bank_talk_1", [],
"{Chciałbym/Chciałabym} utworzyć konto bankowe.", "bank_zakladanie_konta",[]],
[anyone|plyr,"bank_talk_1", [],
"{Chciałbym/Chciałabym} dowiedzieć się jak działa system bankowy.", "bank_talk_2",[]],
[anyone|plyr,"bank_talk_1", [],
"Porozmawiajmy o czymś innym.", "mayor_pretalk",[]],
[anyone,"bank_zakladanie_konta", [],
"Dobrze, {playername}. Aby to zrobić musisz wpłacić zaliczkę w wysokości 100 denarów. Każdy nowy klient musi uiścić opłatę na kapitał początkowy.", "bank_zakladanie_konta_2",[]],
[anyone|plyr,"bank_zakladanie_konta_2", [(store_troop_gold, ":money", "trp_player"), (ge, ":money", 100)],
"Oto 100 denarów.", "bank_konto",[(troop_remove_gold, "trp_player", 100), (assign, "$g_konto_bankowe", 1), (troop_set_slot, "trp_player", slot_troop_bank_money, 100)]],
[anyone|plyr,"bank_zakladanie_konta_2", [],
"{Zmieniłem/Zmieniłam} zdanie.", "bank_begin",[]],
[anyone,"bank_konto", [],
"Saldo twojego konta bankowego wynosi {reg1}. Obecne oprocentowanie jest równe {reg2}% tygodniowo. Co chcesz zrobić?", "bank_konto_2",
[(troop_get_slot, reg1, "trp_player", slot_troop_bank_money),
(assign, reg2, "$g_oprocentowanie"),
]],
# Hand out money
[anyone|plyr,"bank_konto_2", [],
"{Chciałbym/Chciałabym} wypłacić pieniądze z konta.", "bank_konto_wyplac",
[]],
[anyone,"bank_konto_wyplac", [],
"Oczywiście, {panie/pani}. Przypominam, że saldo twojego konta wynosi {reg1} denarów. Ile pieniędzy chce {pan/pani} wypłacić?", "bank_konto_wyplac_2",
[(troop_get_slot, reg1, "trp_player", slot_troop_bank_money)]],
# Hand out 10000
[anyone|plyr,"bank_konto_wyplac_2", [(troop_slot_ge, "trp_player", slot_troop_bank_money, 10000)],
"[Wypłać 10000 denarów]", "bank_konto_wyplac",
[(troop_add_gold, "trp_player", 10000),
(troop_get_slot, ":hajs", "trp_player", slot_troop_bank_money),
(val_add, ":hajs", -10000),
(troop_set_slot, "trp_player", slot_troop_bank_money, ":hajs"),
]],
# Hand out 1000
[anyone|plyr,"bank_konto_wyplac_2", [(troop_slot_ge, "trp_player", slot_troop_bank_money, 1000)],
"[Wypłać 1000 denarów]", "bank_konto_wyplac",
[(troop_add_gold, "trp_player", 1000),
(troop_get_slot, ":hajs", "trp_player", slot_troop_bank_money),
(val_add, ":hajs", -1000),
(troop_set_slot, "trp_player", slot_troop_bank_money, ":hajs"),
]],
# Hand out 100
[anyone|plyr,"bank_konto_wyplac_2", [(troop_slot_ge, "trp_player", slot_troop_bank_money, 100)],
"[Wypłać 100 denarów]", "bank_konto_wyplac",
[(troop_add_gold, "trp_player", 100),
(troop_get_slot, ":hajs", "trp_player", slot_troop_bank_money),
(val_add, ":hajs", -100),
(troop_set_slot, "trp_player", slot_troop_bank_money, ":hajs"),
]],
[anyone|plyr,"bank_konto_wyplac_2", [],
"Porozmawiajmy o czymś innym.", "bank_konto",[]],
# Make a deposit
[anyone|plyr,"bank_konto_2", [],
"{Chciałbym/Chciałabym} wpłacić pieniądze na konto.", "bank_konto_wplac",
[]],
[anyone,"bank_konto_wplac", [(troop_get_slot, ":hajs", "trp_player", slot_troop_bank_money), (lt, ":hajs", 500000)],
"Oczywiście, {panie/pani}. Prypominam, że saldo twojego konta wynosi {reg1} denarów. Ile pieniędzy chce {pan/pani} wpłacić?", "bank_konto_wplac_2",
[(troop_get_slot, reg1, "trp_player", slot_troop_bank_money)]],
[anyone,"bank_konto_wplac", [],
"Bardzo mi przykro, lecz saldo {pana/pani} konta nie może przekraczać 500000 denarów. Proszę wypłacić część pieniędzy.", "bank_konto",
[(troop_get_slot, reg1, "trp_player", slot_troop_bank_money)]],
# Make a deposit of 10000
[anyone|plyr,"bank_konto_wplac_2", [(store_troop_gold, ":money", "trp_player"), (ge, ":money", 10000), (troop_get_slot, ":hajs", "trp_player", slot_troop_bank_money), (lt, ":hajs", 500000)],
"[Wpłać 10000 denarów]", "bank_konto_wplac",
[(troop_remove_gold, "trp_player", 10000),
(troop_get_slot, ":hajs", "trp_player", slot_troop_bank_money),
(val_add, ":hajs", 10000),
(troop_set_slot, "trp_player", slot_troop_bank_money, ":hajs"),
]],
# Make a deposit of 1000
[anyone|plyr,"bank_konto_wplac_2", [(store_troop_gold, ":money", "trp_player"), (ge, ":money", 1000), (troop_get_slot, ":hajs", "trp_player", slot_troop_bank_money), (lt, ":hajs", 500000)],
"[Wpłać 1000 denarów]", "bank_konto_wplac",
[(troop_remove_gold, "trp_player", 1000),
(troop_get_slot, ":hajs", "trp_player", slot_troop_bank_money),
(val_add, ":hajs", 1000),
(troop_set_slot, "trp_player", slot_troop_bank_money, ":hajs"),
]],
# Make a deposit of 100
[anyone|plyr,"bank_konto_wplac_2", [(store_troop_gold, ":money", "trp_player"), (ge, ":money", 100), (troop_get_slot, ":hajs", "trp_player", slot_troop_bank_money), (lt, ":hajs", 500000)],
"[Wpłać 100 denarów]", "bank_konto_wplac",
[(troop_remove_gold, "trp_player", 100),
(troop_get_slot, ":hajs", "trp_player", slot_troop_bank_money),
(val_add, ":hajs", 100),
(troop_set_slot, "trp_player", slot_troop_bank_money, ":hajs"),
]],
[anyone|plyr,"bank_konto_wplac_2", [],
"Porozmawiajmy o czymś innym.", "bank_konto",[]],
[anyone|plyr,"bank_konto_2", [],
"Nieważne.", "mayor_pretalk",[]],
# Explantation
[anyone,"bank_talk_2", [],
"System jest bardzo prosty. Po utworzeniu konta może {pan/pani} wpłacać i wypłacać pieniądze. Kapitał na koncie rośnie w miarę upływu czasu, oprocentowanie zmienia się co miesiąc. Gildie w innych miastach są połączone siecią bankową, także możesz odebrać lub wpłacić pieniądze na konto w każdym mieście. Z powodu tego, że mamy wielu klientów w całej Calradii, skarbiec pomieści maksymalnie 500000 denarów na osobę. W przypadku zapełnienia skarbca pieniądze z odsetek zostaną {panu/pani} przekazane osobiście.", "bank_talk_1",[]],
# Garedyr bank end
Teraz kolej na module_scripts. W skrypcie game_start (pierwszy skrypt w pliku) odnajdź tę linijkę:
# Garedyr bank
# Zmiana oprocentowania co miesiac
(24, 0, 0,
[
(store_current_day, ":dzien"),
(ge, ":dzien", "$g_nowe_oprocentowanie"),
(try_begin),
(store_random_in_range, ":oprocentowanie", 1, 7),
(assign, "$g_oprocentowanie", ":oprocentowanie"),
(try_begin),
(this_or_next|eq, "$g_cur_month", 1),
(this_or_next|eq, "$g_cur_month", 3),
(this_or_next|eq, "$g_cur_month", 5),
(this_or_next|eq, "$g_cur_month", 7),
(this_or_next|eq, "$g_cur_month", 8),
(this_or_next|eq, "$g_cur_month", 10),
(eq, "$g_cur_month", 12),
(assign, "$g_nowe_oprocentowanie", 31),
(else_try),
(eq, "$g_cur_month", 2),
(try_begin),
(eq, "$g_rok_przestepny", 1),
(assign, "$g_nowe_oprocentowanie", 29),
(else_try),
(assign, "$g_nowe_oprocentowanie", 28),
(try_end),
(else_try),
(assign, "$g_nowe_oprocentowanie", 30),
(try_end),
(try_end),
],
[]
),
Ostatnim krokiem będzie dodanie tego kodu w module_simple_triggers, identycznie jak robiliśmy to w przypadku module_triggers: