Cat cancels Store Item in Stockpile: Too injured

Материал из Dwarf Fortress Wiki
Перейти к: навигация, поиск
Эта статья описывает баг, существовавший в старых версиях игры. К настоящему моменту он исправлен.
D4Dwarf.png Этой статье присвоена категория «Д» — значит «Дварфы». Это значит, что в ней встречаются смешные шутки, не очень смешные шутки, совсем не смешные шутки, всякие внутриигровые приколы и ссылки на форум Bay12. Не верьте всему, что тут понаписали, и не расстраивайтесь, если чего-то не поняли.
Кошка, убившая мышь или другого вредителя, желает отнести её своему хозяину, дабы похвастаться, но тут то и подстерегает баг, переноску можно осуществлять только руками и кошка думает: «Где мои руки!? Мои прекрасные руки! Они оторвали их! Боже мой! Какой кошмар! Что мне делать! эээ… стоп… я же кошка, у меня нет рук» и идёт по своим делам, предварительно наспамив сообщение о том, что ей оторвало руки — "Сancels Store Item in Stockpile: Too injured".

Это старый баг и он появился вновь в версии 40d. Рот кошки не имеет специального тега [GRASP], поэтому игра считает, что кошке нечем поднять свою добычу и генерируется вышеуказанное сообщение об ошибке. Досадно, что на этом всё не заканчивается, кошка снова и снова пытается поднять убитого грызуна.

Исправление бага

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

Шаг первый

Откройте raw/objects/body_default.txt и добавьте новую запись:

[BODY:CAT_MOUTH]
[BP:CAT_MOUTH:mouth][CONTYPE:HEAD][MOUTH][SMALL][EMBEDDED][APERTURE][GRASP]

Это создаст новую часть тела в вашей дварфской вселенной. А конкретно рот, который сможет что-то поднять. Теперь мы должны приделать эту часть тела к кошке!

Шаг второй

Откройте файл raw/objects/creature_domestic.txt и отредактируйте кошку следующим образом:

[CREATURE:CAT]
       [NAME:cat:cats:cat]
       [TILE:'c'][COLOR:0:0:1]
       [VERMINHUNTER]
       [PETVALUE:20]
       [CARNIVORE][NATURAL][PET]
       [LARGE_ROAMING]
       [COMMON_DOMESTIC][BENIGN]
       [PREFSTRING:aloofness]
       [BODY:QUADRUPED:TAIL:2EYES:2EARS:NOSE:2LUNGS:HEART:GUTS:ORGANS:THROAT:NECK:SPINE:BRAIN:CAT_MOUTH]
       [BODYGLOSS:PAW]
       [SIZE:3]
       [MAXAGE:10:20]
       [ATTACK:MAIN:BYTYPE:MOUTH:bite:bites:1:6:GORE][ATTACKFLAG_CANLATCH]
       [CHILD:1][CHILDNAME:kitten:kittens]
       [FAT:1]
       [DIURNAL]
       [STANDARD_FLESH]
       [HOMEOTHERM:10070]
       [LAYERING:100]
       [SWIMS_INNATE][SWIM_SPEED:2500]
       [MUNDANE]

Готово.

Обращаем ваше внимание на то, что вам не нужно изменять строчку [ATTACK], хоть она и содержит MOUTH. Потому что в данном случае «mouth» относится совершенно к другому.