В своё время мне CritterInvSizeLimitMode не понравился в русской версии на экране снаряжения игрока (который в рюкзаке игрока по клавише 'I') данные о "общий размер/максимальный размер" обрезались из-за "Общ. вес:", да и нельзя было нормально определить размер вещи. К тому же я считал что вес "заменяется" на размер.
На самом деле CritterInvSizeLimitMode шикарная вещь, и размер не заменяет вес, а является дополнительным ограничением (перегруженным можно быть не только из-за веса, но и из-за размера вещей). Оригинальная версия конечно бедненькая и нормально работающая только с игроком (остальным персонажам нужны подправленные pro'шники)...
Nordan
|
QUOTE |
|
В настройках сфалла можно менять максимальную вместимость инвентаря (не вес, а именно вместимость по размеру), можно ли этот параметр привязать к переменной?
|
В общем допилил значение переменной CritterInvSizeLimit применяется ко всем заданным персонажам и для его хранения используется STAT_unused этого персонажа, что позволяет изменять (не напрямую) значение с помощью set_critter_stat.
На экране снаряжения игрока, а также в окне настроек сопартийца в поле "Несёт" кроме "общий вес/максимальный вес" показывается (при соответствующем режиме) дополнительно "общий размер/максимальный размер".
Какой русский вариант для "It occupies 1 unit."/"It occupies %d units."?
"Занимает 1 ячейку."/"Занимает %d ячеек." ничего лучше в голову пока не пришло.
Есть задумка сделать CritterInvSizeLimit динамически расчитываемым в зависимости от статов, как навык. К примеру использовать выносливость или силу (причём базовое значение, но для ГГ с учётом трейтов) и интеллект (а тут уже учитывать химию, влияет на компактность складывания вещей).
Что-то вроде при CritterInvSizeLimit = 5:
|
CODE |
|
5 * ((2 * текущий интеллект) + базовая выносливость)
|
-----------------------------------------------------------------------
Доработал FreeWeight теперь поддерживается любой режим CritterInvSizeLimitMode, но чтобы не возникла путаница пришлось изменить формат отображения отказавшись от показа максимального значения. Сейчас формат "свободный вес" для персонажей и "свободный размер" для контейнеров, а при включённом режиме CritterInvSizeLimitMode для заданных персонажей "свободный вес/свободный размер".
PS. Вот простенький hs_invenwield добавляющий/отнимающий 10 "ячеек" при одевании/снятии любой брони сопартийцем:
|
CODE |
procedure start;
procedure start begin variable critter, armor, slot, hooktype, returned; begin critter := get_sfall_arg; armor := get_sfall_arg; slot := get_sfall_arg; hooktype := get_sfall_arg; returned := -1; if (slot == 0) then begin if (party_member_obj(obj_pid(critter)) != 0) then begin if (hooktype == 1) then begin set_critter_stat(critter, 10, 10); end else begin set_critter_stat(critter, 10, -10); end end end set_sfall_return(returned); end end
|