1. Возможно, вам придется добавить несколько мешей в список мешей в файле module_meshes если компилятор начнет жаловаться, что они отсутствуют. Их все можно найти в user_interface_b.brf. 
2. Вам нужен скрипт 
 из минимода/OSP Diplomacy/Дипломатия (у меня в презентации он назван просто script_get_item_value_with_imod).
3. Вам надо отредактировать опции начала торговли в файле module_game_menus. Лично я предлагаю сделать новый экран опциональным, типа такого:
...а где-нибудь в настройках, соответственно, добавить галочку для включения/отключения альтернативного экрана. 
4. Вам также нужно отредактировать скрипт game_get_item_extra_text script посредством добавления следующих строк сразу за операциями store_script_param:
	  (try_begin),
		(eq, reg58, -567), #special check to make sure we are in trade screen
		(assign, ":real_extra_text_id", ":extra_text_id"),
		(try_begin),
			(is_between, ":item_no", food_begin, food_end),
			(neq, reg59, reg60),
			(val_add, ":extra_text_id", -1),
			(eq, ":real_extra_text_id", 0),
			(set_result_string, "@Remaining amount: ({reg59}/{reg60})"),
			(set_trigger_result, 0xFF9933),
		(try_end),
		(try_begin),
			(item_slot_eq, ":item_no", slot_item_type, itp_type_bow),
			(val_add, ":extra_text_id", -1),
			(eq, ":real_extra_text_id", 0),
			(set_result_string, "@Requires Power Draw: {reg60}"),
			(try_begin),
				(store_skill_level, ":skill_level", skl_power_draw, "trp_player"),
				(ge, ":skill_level", reg60),
				(set_trigger_result, 0x00FF00),
			(else_try),
				(set_trigger_result, 0xFF0000),
			(try_end),
		(try_end),
		(try_begin),
			(item_slot_eq, ":item_no", slot_item_type, itp_type_thrown),
			(val_add, ":extra_text_id", -1),
			(eq, ":real_extra_text_id", 0),
			(set_result_string, "@Requires Power Throw: {reg60}"),
			(try_begin),
				(store_skill_level, ":skill_level", skl_power_throw, "trp_player"),
				(ge, ":skill_level", reg60),
				(set_trigger_result, 0x00FF00),
			(else_try),
				(set_trigger_result, 0xFF0000),
			(try_end),
		(try_end),
		(try_begin),
			(item_slot_eq, ":item_no", slot_item_type, itp_type_horse),
			(val_add, ":extra_text_id", -1),
			(eq, ":real_extra_text_id", 0),
			(set_result_string, "@Requires Riding: {reg60}"),
			(try_begin),
				(store_skill_level, ":skill_level", skl_riding, "trp_player"),
				(ge, ":skill_level", reg60),
				(set_trigger_result, 0x00FF00),
			(else_try),
				(set_trigger_result, 0xFF0000),
			(try_end),
		(try_end),
		(try_begin),
			(item_slot_eq, ":item_no", slot_item_type, itp_type_shield),
			(val_add, ":extra_text_id", -1),
			(eq, ":real_extra_text_id", 0),
			(set_result_string, "@Requires Shield: {reg60}"),
			(try_begin),
				(store_skill_level, ":skill_level", skl_shield, "trp_player"),
				(ge, ":skill_level", reg60),
				(set_trigger_result, 0x00FF00),
			(else_try),
				(set_trigger_result, 0xFF0000),
			(try_end),
		(try_end),
		(try_begin),
			(this_or_next|item_slot_eq, ":item_no", slot_item_type, itp_type_one_handed_wpn),
			(this_or_next|item_slot_eq, ":item_no", slot_item_type, itp_type_two_handed_wpn),
			(this_or_next|item_slot_eq, ":item_no", slot_item_type, itp_type_polearm),
			(this_or_next|item_slot_eq, ":item_no", slot_item_type, itp_type_crossbow),
			(this_or_next|item_slot_eq, ":item_no", slot_item_type, itp_type_head_armor),
			(this_or_next|item_slot_eq, ":item_no", slot_item_type, itp_type_body_armor),
			(this_or_next|item_slot_eq, ":item_no", slot_item_type, itp_type_foot_armor),
			(item_slot_eq, ":item_no", slot_item_type, itp_type_hand_armor),
			(val_add, ":extra_text_id", -1),
			(eq, ":real_extra_text_id", 0),
			(set_result_string, "@Requires Strength: {reg60}"),
			(try_begin),
				(store_attribute_level, ":skill_level", "trp_player", ca_strength),
				(ge, ":skill_level", reg60),
				(set_trigger_result, 0x00FF00),
			(else_try),
				(set_trigger_result, 0xFF0000),
			(try_end),
		(try_end),
	  (try_end),