Всадники Кальрадии

Модификации => Обмен опытом (в помощь мододелу) => OSP ресурсы: модели, текстуры, скрипты => Тема начата: Lontano от 22 Июня, 2026, 21:54

Название: [OSP][КОД] Система страхования в Warband
Отправлено: Lontano от 22 Июня, 2026, 21:54
Проработав 5 лет в страховой индустрии, я решил создать нечто вроде страховой системы в Warband. Вы можете застраховать своё снаряжение через страхового брокера в крупных городах. Страховка обойдётся вам в 5% от общей стоимости вашего снаряжения. Вы можете получить выплату в случае потери снаряжения после боя. Если вы попытаетесь обмануть систему (извлечь предмет из инвентаря и продать его в других городах), ваш обман будет преследоваться по закону.… :thumbup:
Как это работает:

1. Вы приходите к брокеру через меню города и платите взнос.

2. Ваши вещи страхуются. Если вы проиграете битву и ваши вещи заберут (потеряются), система это обнаружит и начислит вам компенсацию, равную их стоимости. Забрать ее можно будет у того же брокера.

3. Анти-абуз (защита от мошенничества): Если вы застраховали вещи, а затем сняли их, положили в сундук или продали, система распознает это как страховое мошенничество! Ваша страховка будет аннулирована, а вас занесут в черный список брокера на 20 игровых дней.

Установка

Установка предельно простая, понадобится изменить всего два файла вашей модульной системы: `module_game_menus.py` и `module_simple_triggers.py`.

Шаг 1: module_game_menus.py

Найдите меню
"total_defeat"
. В блоке операций этого меню, прямо перед
(play_track, "track_captured", 1),
добавьте следующую строку:

Код: (python) [Выделить]

 (store_current_hours, "$g_insurance_last_defeat_time"),


Шаг 2: module_game_menus.py

Найдите меню
"town"
. В список опций города (например, перед опцией
"town_enterprise"
или любой другой) добавьте визит к брокеру:

Код: (python) [Выделить]

 ("town_insurance",

 [

 (party_slot_eq,"$current_town",slot_party_type, spt_town),

 (this_or_next|eq,"$entry_to_town_forbidden",0),

 (eq, "$sneaked_into_town",1),

 ],

 "Visit the Insurance Broker.",

 [

 (jump_to_menu, "mnu_insurance_broker"),

 ]),


Шаг 3: module_game_menus.py

Прокрутите файл в самый конец. Прямо перед самой последней закрывающей скобкой
]
вставьте код самого меню брокера:


Шаг 4: module_simple_triggers.py

Откройте файл
module_simple_triggers.py
и прокрутите в самый низ. Перед последней закрывающей скобкой
]
вставьте триггер, который отслеживает инвентарь на наличие "страхового мошенничества" и начисляет выплату при потере:


Все готово! Скомпилируйте модуль и наслаждайтесь системой.

Если у вас есть идеи по улучшению — пишите!