Ещё один способ добавить книгу (на все навыки и параметры, а также имеющие двойной эффект: чтение и ношение на каждой) - идея из какого-то мода, уже не помню названия, реализация практической части - лично от меня (плюс, продажа книг и пленных у трактирщиков в качестве бонуса

Места в сообщении не хватало для полного раскрытия темы (50к символов), поэтому даю ссылку на гугл-документ, где подробно описаю что и как (правда лирических отступлений там меньше, ибо рабочее пространство -
https://docs.google.com/document/d/1Z1wqRLHSZpul-JfWUSb0Sx7EPswfY7b3m0XhWD4jobk/edit#Впрочем, благодаря помощи товарища HunterWolf вторую часть добавляю ниже

).
----
Книги: новые книги на каждый навык и параметр, объединение бонусов от чтения и ношения.
---
module_constants.pyУказываем границы где какие книги - что можно читать, что даёт бонус при ношении, а что вообще книгами не является.
reference_and_readable_books_begin _and_endДо
reference_books_begin = "itm_book_wound_treatment_reference"
reference_books_end = trade_goods_begin
readable_books_begin = "itm_book_tactics"
readable_books_end = reference_books_begin
После
reference_books_begin = "itm_book_trade"
reference_books_end = trade_goods_begin
readable_books_begin = "itm_book_strength"
readable_books_end = trade_goods_begin
module_dialogs.pyДобавляем трактирщикам пункты диалога по продаже книг (затем в инвентарь добавим и сами книги; до кучи ещё и продажу пленных, чтобы не бегать в поисках посредников =)
tavernkeeper_talk_-_books_and_prisonnerДо
[anyone,"tavernkeeper_job_result_2", [], "I'll keep my ears open for other opportunities. You may want to ask again from time to time.", "close_window",[]],
[anyone|plyr,"tavernkeeper_talk", [], "I guess I should leave now.", "close_window",[]],
После
[anyone,"tavernkeeper_job_result_2", [], "I'll keep my ears open for other opportunities. You may want to ask again from time to time.", "close_window",[]],
[anyone|plyr,"tavernkeeper_talk", [[store_num_regular_prisoners,reg(0)],[ge,reg(0),1]], "(Prisonner)", "tavernkeeper_pretalk",[[change_screen_trade_prisoners]]],
[anyone|plyr,"tavernkeeper_talk", [], "(Book)", "tavernkeeper_pretalk",[[change_screen_trade]]],
[anyone|plyr,"tavernkeeper_talk", [], "I guess I should leave now.", "close_window",[]],
module_game_menus.pyДобавляем в меню действий лагеря чтение новых книг.
camp_action_read_bookДо
("camp_action_read_book",0,
"Choose a book to read:",
"none",
[],
[
("action_read_book_1",[(player_has_item, "itm_book_tactics"),
(item_slot_eq, "itm_book_tactics", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_tactics"),
],"{s1}.",
[(assign, "$temp", "itm_book_tactics"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_2",[(player_has_item, "itm_book_persuasion"),
(item_slot_eq, "itm_book_persuasion", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_persuasion"),
],"{s1}.",
[(assign, "$temp", "itm_book_persuasion"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_3",[(player_has_item, "itm_book_leadership"),
(item_slot_eq, "itm_book_leadership", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_leadership"),
],"{s1}.",
[(assign, "$temp", "itm_book_leadership"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_4",[(player_has_item, "itm_book_intelligence"),
(item_slot_eq, "itm_book_intelligence", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_intelligence"),
],"{s1}.",
[(assign, "$temp", "itm_book_intelligence"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_5",[(player_has_item, "itm_book_trade"),
(item_slot_eq, "itm_book_trade", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_trade"),
],"{s1}.",
[(assign, "$temp", "itm_book_trade"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_6",[(player_has_item, "itm_book_weapon_mastery"),
(item_slot_eq, "itm_book_weapon_mastery", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_weapon_mastery"),
],"{s1}.",
[(assign, "$temp", "itm_book_weapon_mastery"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_7",[(player_has_item, "itm_book_engineering"),
(item_slot_eq, "itm_book_engineering", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_engineering"),
],"{s1}.",
[(assign, "$temp", "itm_book_engineering"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("camp_action_4",[],"Back to camp menu.",
[(jump_to_menu, "mnu_camp"),
]
),
]
),
После
("camp_action_read_book",0,
"Choose a book to read:",
"none",
[],
[
("action_read_book_101",[(player_has_item, "itm_book_strength"),
(item_slot_eq, "itm_book_strength", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_strength"),
],"{s1}.",
[(assign, "$temp", "itm_book_strength"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_102",[(player_has_item, "itm_book_agility"),
(item_slot_eq, "itm_book_agility", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_agility"),
],"{s1}.",
[(assign, "$temp", "itm_book_agility"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_103",[(player_has_item, "itm_book_intelligence"),
(item_slot_eq, "itm_book_intelligence", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_intelligence"),
],"{s1}.",
[(assign, "$temp", "itm_book_intelligence"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_104",[(player_has_item, "itm_book_charisma"),
(item_slot_eq, "itm_book_charisma", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_charisma"),
],"{s1}.",
[(assign, "$temp", "itm_book_charisma"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_1",[(player_has_item, "itm_book_trade"),
(item_slot_eq, "itm_book_trade", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_trade"),
],"{s1}.",
[(assign, "$temp", "itm_book_trade"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_2",[(player_has_item, "itm_book_leadership"),
(item_slot_eq, "itm_book_leadership", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_leadership"),
],"{s1}.",
[(assign, "$temp", "itm_book_leadership"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_3",[(player_has_item, "itm_book_prisoner_management"),
(item_slot_eq, "itm_book_prisoner_management", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_prisoner_management"),
],"{s1}.",
[(assign, "$temp", "itm_book_prisoner_management"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_8",[(player_has_item, "itm_book_persuasion"),
(item_slot_eq, "itm_book_persuasion", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_persuasion"),
],"{s1}.",
[(assign, "$temp", "itm_book_persuasion"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_9",[(player_has_item, "itm_book_engineer"),
(item_slot_eq, "itm_book_engineer", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_engineer"),
],"{s1}.",
[(assign, "$temp", "itm_book_engineer"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_10",[(player_has_item, "itm_book_first_aid"),
(item_slot_eq, "itm_book_first_aid", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_first_aid"),
],"{s1}.",
[(assign, "$temp", "itm_book_first_aid"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_11",[(player_has_item, "itm_book_surgery"),
(item_slot_eq, "itm_book_surgery", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_surgery"),
],"{s1}.",
[(assign, "$temp", "itm_book_surgery"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_12",[(player_has_item, "itm_book_wound_treatment"),
(item_slot_eq, "itm_book_wound_treatment", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_wound_treatment"),
],"{s1}.",
[(assign, "$temp", "itm_book_wound_treatment"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_13",[(player_has_item, "itm_book_inventory_management"),
(item_slot_eq, "itm_book_inventory_management", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_inventory_management"),
],"{s1}.",
[(assign, "$temp", "itm_book_inventory_management"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_14",[(player_has_item, "itm_book_spotting"),
(item_slot_eq, "itm_book_spotting", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_spotting"),
],"{s1}.",
[(assign, "$temp", "itm_book_spotting"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_15",[(player_has_item, "itm_book_pathfinding"),
(item_slot_eq, "itm_book_pathfinding", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_pathfinding"),
],"{s1}.",
[(assign, "$temp", "itm_book_pathfinding"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_16",[(player_has_item, "itm_book_tactics"),
(item_slot_eq, "itm_book_tactics", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_tactics"),
],"{s1}.",
[(assign, "$temp", "itm_book_tactics"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_17",[(player_has_item, "itm_book_tracking"),
(item_slot_eq, "itm_book_tracking", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_tracking"),
],"{s1}.",
[(assign, "$temp", "itm_book_tracking"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_18",[(player_has_item, "itm_book_trainer"),
(item_slot_eq, "itm_book_trainer", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_trainer"),
],"{s1}.",
[(assign, "$temp", "itm_book_trainer"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_23",[(player_has_item, "itm_book_looting"),
(item_slot_eq, "itm_book_looting", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_looting"),
],"{s1}.",
[(assign, "$temp", "itm_book_looting"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_24",[(player_has_item, "itm_book_horse_archery"),
(item_slot_eq, "itm_book_horse_archery", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_horse_archery"),
],"{s1}.",
[(assign, "$temp", "itm_book_horse_archery"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_25",[(player_has_item, "itm_book_riding"),
(item_slot_eq, "itm_book_riding", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_riding"),
],"{s1}.",
[(assign, "$temp", "itm_book_riding"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_26",[(player_has_item, "itm_book_athletics"),
(item_slot_eq, "itm_book_athletics", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_athletics"),
],"{s1}.",
[(assign, "$temp", "itm_book_athletics"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_27",[(player_has_item, "itm_book_shield"),
(item_slot_eq, "itm_book_shield", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_shield"),
],"{s1}.",
[(assign, "$temp", "itm_book_shield"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_28",[(player_has_item, "itm_book_weapon_master"),
(item_slot_eq, "itm_book_weapon_master", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_weapon_master"),
],"{s1}.",
[(assign, "$temp", "itm_book_weapon_master"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_34",[(player_has_item, "itm_book_power_draw"),
(item_slot_eq, "itm_book_power_draw", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_power_draw"),
],"{s1}.",
[(assign, "$temp", "itm_book_power_draw"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_35",[(player_has_item, "itm_book_power_throw"),
(item_slot_eq, "itm_book_power_throw", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_power_throw"),
],"{s1}.",
[(assign, "$temp", "itm_book_power_throw"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_36",[(player_has_item, "itm_book_power_strike"),
(item_slot_eq, "itm_book_power_strike", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_power_strike"),
],"{s1}.",
[(assign, "$temp", "itm_book_power_strike"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("action_read_book_37",[(player_has_item, "itm_book_ironflesh"),
(item_slot_eq, "itm_book_ironflesh", slot_item_book_read, 0),
(str_store_item_name, s1, "itm_book_ironflesh"),
],"{s1}.",
[(assign, "$temp", "itm_book_ironflesh"),
(jump_to_menu, "mnu_camp_action_read_book_start"),
]
),
("camp_action_4",[],"Back to camp menu.",
[(jump_to_menu, "mnu_camp"),
]
),
]
),
module_items.pyДобавляем новые книги в список вещей (а то какие-то нематериальные объекты получаются

До
# A treatise on The Method of Mechanical Theorems Archimedes
#This book must be at the beginning of readable books
["book_tactics","De Re Militari", [("book_a",0)], itp_type_book, 0, 4000,weight(2)|abundance(100),imodbits_none],
["book_persuasion","Rhetorica ad Herennium", [("book_b",0)], itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
["book_leadership","The Life of Alixenus the Great", [("book_d",0)], itp_type_book, 0, 4200,weight(2)|abundance(100),imodbits_none],
["book_intelligence","Essays on Logic", [("book_e",0)], itp_type_book, 0, 2900,weight(2)|abundance(100),imodbits_none],
["book_trade","A Treatise on the Value of Things", [("book_f",0)], itp_type_book, 0, 3100,weight(2)|abundance(100),imodbits_none],
["book_weapon_mastery", "On the Art of Fighting with Swords", [("book_d",0)], itp_type_book, 0, 4200,weight(2)|abundance(100),imodbits_none],
["book_engineering","Method of Mechanical Theorems", [("book_open",0)], itp_type_book, 0, 4000,weight(2)|abundance(100),imodbits_none],
#Reference books
#This book must be at the beginning of reference books
["book_wound_treatment_reference","The Book of Healing", [("book_c",0)], itp_type_book, 0, 3500,weight(2)|abundance(100),imodbits_none],
["book_training_reference","Manual of Arms", [("book_open",0)], itp_type_book, 0, 3500,weight(2)|abundance(100),imodbits_none],
["book_surgery_reference","The Great Book of Surgery", [("book_c",0)], itp_type_book, 0, 3500,weight(2)|abundance(100),imodbits_none],
После
# A treatise on The Method of Mechanical Theorems Archimedes
#This book must be at the beginning of readable books
["book_strength","Strength", [("book_e",0)], itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
["book_agility","Agility", [("book_e",0)], itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
["book_intelligence","Intelligence (Essays on Logic)", [("book_e",0)], itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
["book_charisma","Charisma", [("book_e",0)], itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
#Reference books
#This book must be at the beginning of reference books
["book_trade","Trade (A Treatise on the Value of Things)", [("book_f",0)], itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
["book_leadership","Leadership (The Life of Alixenus the Great)", [("book_d",0)], itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
["book_prisoner_management","Prisoner_management", [("book_a",0)], itp_merchandise|itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
["book_persuasion","Persuasion (Rhetorica ad Herennium)", [("book_b",0)], itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
["book_engineer","Engineer (Method of Mechanical Theorems)", [("book_open",0)], itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
["book_first_aid","First_aid", [("book_a",0)], itp_merchandise|itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
["book_surgery","Surgery (The Great Book of Surgery)", [("book_c",0)], itp_merchandise|itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
["book_wound_treatment","Wound_treatment (The Book of Healing)", [("book_c",0)], itp_merchandise|itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
["book_inventory_management","Inventory_management", [("book_a",0)], itp_merchandise|itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
["book_spotting","Spotting", [("book_a",0)], itp_merchandise|itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
["book_pathfinding","Pathfinding", [("book_a",0)], itp_merchandise|itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
["book_tactics","Tactics (De Re Militari)", [("book_a",0)], itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
["book_tracking","Tracking", [("book_a",0)], itp_merchandise|itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
["book_trainer","Trainer (Manual of Arms)", [("book_open",0)], itp_merchandise|itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
["book_looting","Looting", [("book_a",0)], itp_merchandise|itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
["book_horse_archery","Horse_archery", [("book_a",0)], itp_merchandise|itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
["book_riding","Riding", [("book_a",0)], itp_merchandise|itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
["book_athletics","Athletics", [("book_a",0)], itp_merchandise|itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
["book_shield","Shield", [("book_a",0)], itp_merchandise|itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
["book_weapon_master", "Weapon Master (On the Art of Fighting with Swords)", [("book_d",0)], itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
["book_power_draw","Power_draw", [("book_a",0)], itp_merchandise|itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
["book_power_throw","Power_throw", [("book_a",0)], itp_merchandise|itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
["book_power_strike","Power_strike", [("book_a",0)], itp_merchandise|itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
["book_ironflesh","Ironflesh", [("book_a",0)], itp_merchandise|itp_type_book, 0, 5000,weight(2)|abundance(100),imodbits_none],
module_scripts.pyСтавим требование интеллекта книгам на 9 - как раз среднее значение образования в те времена ("ученье - свет" =)
Setting book intelligence requirementsДо
# Setting book intelligence requirements
(item_set_slot, "itm_book_tactics", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_persuasion", slot_item_intelligence_requirement, 8),
(item_set_slot, "itm_book_leadership", slot_item_intelligence_requirement, 7),
(item_set_slot, "itm_book_intelligence", slot_item_intelligence_requirement, 10),
(item_set_slot, "itm_book_trade", slot_item_intelligence_requirement, 11),
(item_set_slot, "itm_book_weapon_mastery", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_engineering", slot_item_intelligence_requirement, 12),
(item_set_slot, "itm_book_wound_treatment_reference", slot_item_intelligence_requirement, 10),
(item_set_slot, "itm_book_training_reference", slot_item_intelligence_requirement, 10),
(item_set_slot, "itm_book_surgery_reference", slot_item_intelligence_requirement, 10),
]),
После
# Setting book intelligence requirements
(item_set_slot, "itm_book_strength", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_agility", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_intelligence", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_charisma", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_trade", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_leadership", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_prisoner_management", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_persuasion", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_engineer", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_first_aid", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_surgery", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_wound_treatment", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_inventory_management", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_spotting", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_pathfinding", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_tactics", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_tracking", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_trainer", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_looting", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_horse_archery", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_riding", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_athletics", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_shield", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_weapon_master", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_power_draw", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_power_throw", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_power_strike", slot_item_intelligence_requirement, 9),
(item_set_slot, "itm_book_ironflesh", slot_item_intelligence_requirement, 9),
]),
Добавляем текстовое пояснение к книгам (а то можно и не понять что это за чудо перед нами нарисовалось

)
game_get_item_extra_textДо
(try_begin),
(eq, ":item_no", "itm_book_wound_treatment_reference"),
(str_store_string, s1, "@wound treament"),
(else_try),
(eq, ":item_no", "itm_book_training_reference"),
(str_store_string, s1, "@training"),
(else_try),
(eq, ":item_no", "itm_book_surgery_reference"),
(str_store_string, s1, "@surgery"),
(try_end),
(set_result_string, "@+1 to {s1} while in inventory"),
(set_trigger_result, 0xFFEEDD),
(try_end),
(try_end),
]),
После
(try_begin),
(eq, ":item_no", "itm_book_trade"),
(str_store_string, s1, "@trade"),
(else_try),
(eq, ":item_no", "itm_book_leadership"),
(str_store_string, s1, "@leadership"),
(else_try),
(eq, ":item_no", "itm_book_prisoner_management"),
(str_store_string, s1, "@prisoner_management"),
(else_try),
(eq, ":item_no", "itm_book_persuasion"),
(str_store_string, s1, "@persuasion"),
(else_try),
(eq, ":item_no", "itm_book_engineer"),
(str_store_string, s1, "@engineer"),
(else_try),
(eq, ":item_no", "itm_book_first_aid"),
(str_store_string, s1, "@first_aid"),
(else_try),
(eq, ":item_no", "itm_book_surgery"),
(str_store_string, s1, "@surgery"),
(else_try),
(eq, ":item_no", "itm_book_wound_treatment"),
(str_store_string, s1, "@wound treament"),
(else_try),
(eq, ":item_no", "itm_book_inventory_management"),
(str_store_string, s1, "@inventory_management"),
(else_try),
(eq, ":item_no", "itm_book_spotting"),
(str_store_string, s1, "@spotting"),
(else_try),
(eq, ":item_no", "itm_book_pathfinding"),
(str_store_string, s1, "@pathfinding"),
(else_try),
(eq, ":item_no", "itm_book_tactics"),
(str_store_string, s1, "@tactics"),
(else_try),
(eq, ":item_no", "itm_book_tracking"),
(str_store_string, s1, "@tracking"),
(else_try),
(eq, ":item_no", "itm_book_trainer"),
(str_store_string, s1, "@trainer"),
(else_try),
(eq, ":item_no", "itm_book_looting"),
(str_store_string, s1, "@looting"),
(else_try),
(eq, ":item_no", "itm_book_horse_archery"),
(str_store_string, s1, "@horse_archery"),
(else_try),
(eq, ":item_no", "itm_book_riding"),
(str_store_string, s1, "@riding"),
(else_try),
(eq, ":item_no", "itm_book_athletics"),
(str_store_string, s1, "@athletics"),
(else_try),
(eq, ":item_no", "itm_book_shield"),
(str_store_string, s1, "@shield"),
(else_try),
(eq, ":item_no", "itm_book_weapon_master"),
(str_store_string, s1, "@weapon_master"),
(else_try),
(eq, ":item_no", "itm_book_power_draw"),
(str_store_string, s1, "@power_draw"),
(else_try),
(eq, ":item_no", "itm_book_power_throw"),
(str_store_string, s1, "@power_throw"),
(else_try),
(eq, ":item_no", "itm_book_power_strike"),
(str_store_string, s1, "@power_strike"),
(else_try),
(eq, ":item_no", "itm_book_ironflesh"),
(str_store_string, s1, "@ironflesh"),
(try_end),
(set_result_string, "@+1 to {s1} while in inventory"),
(set_trigger_result, 0xFFEEDD),
(try_end),
(try_end),
]),