Участник:SupposedToBeLegend
DFHack скриптер, чутка программист плагинов DFHack
Руководства по разработке скриптов и плагинов для DFHack пишу на отдельной странице
Некоторые наблюдения
При игре с активным использованием DFHack, замечены следующие особенности:
Разумные расы
При добавлении разумного существа в пул граждан (они дают возврат true
при проверке dfhack.units.isCitizen(код юнита)
), данный юнит получает потребности: сон, еда, питьё. Даже если добавить флаг CAN_LEARN
к юниту кота или собаки, они захотят есть и пить как обычные дварфы, но не смогут пить и есть, так как у них нет рук. Гарпии по умолчанию являются разумными, но не имеют рук, чтобы могли кушац или пить. Предполагается, что юнит в пуле граждан фактически геймплейно приравнивается к дварфу.
Игра за semi-megabeast
(Посредством создания и добавления юнитов в пул граждан)
Замечено следующее:
Если отправить отряд на захват (conquer) какого-либо места, то данный semi-megabeast может вернуться в крепость в виде атаки на крепость. Данный бывший гражданин не будет враждебен к гражданам крепости, но будет числиться в списке other
, будет хаотично бегать по крепости, у него не будет потребностей.
Возможности крафта одежды для semi-megabeast через details:
нет. Для создания одежды для Минотавров нужно приказать Минотавру крафтить одежду, тогда на выходе будет получаться одежда с подходящим размером для минотавров.
Игра за Гоблинов
- Если у гоблинов будут в пуле ресурсов добавлены животные
WAGON_PULLER
, то будут приходить караваны с повозками. - При покидании каравана, любые животные, которые увезены гоблинами-торговцами, будут объявлены похищенными
A kidnapper has made off with the . . .
- Количество товаров у караванщиков зависит от предыдущих торговель.
- При назначении звания
master
гражданину в крепости, будет выведено уведомление в розовом цвете (LMAGENTA) с сообщениемAfter a polite discussion with rivals . . .
, такое же сообщение выводится при успешном захвате врaжecких пocелений и назначением глaвы от aтaкyющих cил.
DFHack и манипулирование памятью
Увеличение размера отряда
В консоль DFHack набираем следующее:
lua "df.historical_entity.find(df.global.ui.group_id).positions.own[0].squad_size=100"
— MILITIA_COMMANDER
lua "df.historical_entity.find(df.global.ui.group_id).positions.own[1].squad_size=100"
— MILITIA_CAPTAIN
Вместо 100 можно поставить любое число до 32767.
Все дополнительные слоты полностью управляемы.
Изменение играемой цивилизации (расы)
С помощью DFHack
Данный способ обеспечивает чистую смену расы, получая все её атрибуты и особенности из RAW, получая вместо стартовых дварфов и мигрантов-дварфов другую расу.
Можно разблокировать все виды цивилизаций на этапе Embark
, получив возможность высадки за все виды разумных цивилизаций, существующих в мире.
Список доступных цивилизаций хранится в специальном viewscreen
высадки: df.viewscreen_choose_start_sitest
. Нужный атрибут — вектор available_civs
, по умолчанию содержащий все дварфовые цивилизации.
Порядок действий:
- Получите открытый экран высадки: экземпляр класса
df.viewscreen_choose_start_sitest
- Очистите в нём вектор
available_civs
- Добавьте в этот вектор нужные цивилизации
- В соответствующей вкладке через Tab вы увидите добавленные цивилизации. Цивилизации без названия (animal people и shrine) будут отображаться в списке и могут быть выбраны, но будут иметь пустые названия
Через сторонний редактор памяти
Данный способ не рекомендуется применять, так как способ, указанный выше, является корректной сменой игровой цивилизации. Он совершает все внутриигровые манипуляции, связанные со сменой цивилизации на этапе embark
Чтобы изменить код цивилизации, за которую будет создана игровая крепость, нужно изменить переменную по адресу Dwarf Fortress.exe+1C36B80
. Все коды игровых сущностей (цивилизaции, прaвитeльcтвa, peлигия и другие) доступны в векторе по адресу df.global.world.entities.all
Некоторые переменные
(приведено на состояние версии 0.47.05, без модификаций)
Коды разумных рас, для использования в скриптах | |
---|---|
Раса | Код |
TOAD_MAN | 1 |
WORM_MAN | 4 |
BLUEJAY_MAN | 6 |
CARDINAL_MAN | 9 |
GRACKLE_MAN | 12 |
ORIOLE_MAN | 15 |
RW_BLACKBIRD_MAN | 18 |
PENGUIN MAN | 23 |
PEREGRINE FALCON MAN | 26 |
KIWI MAN | 29 |
OSTRICH MAN | 32 |
CROW_MAN | 35 |
RAVEN_MAN | 38 |
CASSOWARY_MAN | 41 |
KEA_MAN | 44 |
SNOWY_OWL_MAN | 47 |
SPARROW_MAN | 50 |
WHITE_STORK_MAN | 53 |
LOON_MAN | 56 |
BARN_OWL_MAN | 59 |
PARAKEET_MAN | 62 |
KAKAPO_MAN | 65 |
GREY_PARROT_MAN | 68 |
PUFFIN_MAN | 71 |
SWAN_MAN | 74 |
LORIKEET_MAN | 77 |
WREN_MAN | 80 |
OSPREY_MAN | 83 |
EMU_MAN | 86 |
COCKATIEL_MAN | 89 |
PEACH-FACED_LOVEBIRD_MAN | 92 |
MAGPIE_MAN | 95 |
KESTREL_MAN | 98 |
ALBATROSS_MAN | 101 |
GREAT_HORNED_OWL_MAN | 104 |
EAGLE_MAN | 107 |
HORNBILL_MAN | 110 |
MASKED_LOVEBIRD_MAN | 113 |
BUSHTIT_MAN | 116 |
DAMSELFLY_MAN | 119 |
MOTH_MAN | 122 |
GRASSHOPPER_MAN | 125 |
BARK_SCORPION_MAN | 128 |
MANTIS_MAN | 131 |
TICK_MAN | 134 |
LOUSE_MAN | 137 |
THRIPS_MAN | 140 |
SLUG_MAN | 143 |
MOSQUITO_MAN | 146 |
JUMPING_SPIDER_MAN | 149 |
MOON_SNAIL_MAN | 153 |
BROWN_RECLUSE_SPIDER_MAN | 156 |
SNAIL_MAN | 159 |
LEOPARD_GECKO_MAN | 162 |
DESERT_TORTOISE_MAN | 165 |
GILA_MONSTER_MAN | 168 |
FLY_MAN | 197 |
ROACH_MAN | 200 |
BEETLE_MAN | 203 |
BUTTERFLY_MONARCH_MAN | 207 |
FIREFLY_MAN | 210 |
DRAGONFLY_MAN | 213 |
GOAT_MOUNTAIN_MAN | 218 |
MARMOT_HOARY_MAN | 221 |
GNOME_MOUNTAIN | 223 |
GNOME_DARK | 224 |
WALRUS_MAN | 226 |
NARWHAL MAN | 263 |
HIPPO_MAN | 266 |
PLATYPUS MAN | 273 |
BEAR_GRIZZLY_MAN | 276 |
BEAR_BLACK_MAN | 279 |
DEER_MAN | 282 |
FOX_MAN | 285 |
RACCOON_MAN | 288 |
MACAQUE_RHESUS_MAN | 291 |
COUGAR_MAN | 294 |
WOLF_MAN | 297 |
GROUNDHOG_MAN | 300 |
ALLIGATOR_MAN | 303 |
BUZZARD_MAN | 306 |
PANDA MAN | 310 |
CAPYBARA MAN | 313 |
BADGER MAN | 315 |
MOOSE MAN | 318 |
RED PANDA MAN | 321 |
ELEPHANT_MAN | 324 |
WARTHOG_MAN | 327 |
LION_MAN | 330 |
LEOPARD_MAN | 333 |
JAGUAR_MAN | 336 |
TIGER_MAN | 339 |
CHEETAH_MAN | 342 |
GAZELLE_MAN | 345 |
MANDRILL_MAN | 348 |
CAMEL_1_HUMP_MAN | 364 |
CAMEL_2_HUMP_MAN | 367 |
CROCODILE_SALTWATER_MAN | 370 |
VULTURE_MAN | 373 |
RHINOCEROS_MAN | 376 |
GIRAFFE_MAN | 379 |
HONEY BADGER MAN | 382 |
GIANT TORTOISE MAN | 385 |
ARMADILLO MAN | 388 |
MUSKOX_MAN | 391 |
ELK_MAN | 394 |
BEAR_POLAR_MAN | 397 |
WOLVERINE_MAN | 400 |
CHINCHILLA_MAN | 403 |
BLIND_CAVE_OGRE | 409 |
MANERA | 424 |
GORLAK | 432 |
PLUMP_HELMET_MAN | 434 |
OCTOPUS_MAN | 438 |
CRAB_MAN | 441 |
LEOPARD_SEAL_MAN | 444 |
CUTTLEFISH_MAN | 447 |
ORCA_MAN | 450 |
SPONGE_MAN | 453 |
HORSESHOE_CRAB_MAN | 456 |
SPERM_WHALE_MAN | 459 |
ELEPHANT_SEAL_MAN | 462 |
HARP_SEAL_MAN | 465 |
NAUTILUS_MAN | 468 |
LIZARD_MAN | 480 |
SKINK_MAN | 483 |
CHAMELEON_MAN | 486 |
ANOLE_MAN | 489 |
IGUANA_MAN | 492 |
OTTER_MAN | 496 |
SNAPPING_TURTLE_MAN | 500 |
BEAVER_MAN | 503 |
LEECH_MAN | 506 |
AXOLOTL_MAN | 509 |
MINK_MAN | 512 |
POND_TURTLE_MAN | 515 |
RAT_MAN | 518 |
SQUIRREL_GRAY_MAN | 520 |
SQUIRREL_RED_MAN | 523 |
CHIPMUNK_MAN | 526 |
HAMSTER_MAN | 529 |
HEDGEHOG_MAN | 532 |
FLYING_SQUIRREL_MAN | 535 |
SQUID MAN | 559 |
DWARF | 572 |
HUMAN | 573 |
ELF | 574 |
GOBLIN | 575 |
KOBOLD | 576 |
GREMLIN | 577 |
TROLL | 578 |
OGRE | 579 |
SATYR | 582 |
GIANT | 584 |
CYCLOPS | 585 |
ETTIN | 586 |
MINOTAUR | 587 |
BLIZZARD_MAN | 590 |
FAIRY | 592 |
PIXIE | 593 |
BLENDEC_FOUL | 596 |
NIGHTWING | 598 |
HARPY | 599 |
MERPERSON | 601 |
TROGLODYTE | 612 |
CAVE_FISH_MAN | 618 |
OLM_MAN | 622 |
BAT_MAN | 624 |
CAVE_SWALLOW_MAN | 631 |
AMPHIBIAN_MAN | 633 |
REPTILE_MAN | 634 |
SERPENT_MAN | 635 |
ANT_MAN | 636 |
RODENT MAN | 637 |
WILD_BOAR_MAN | 639 |
COYOTE_MAN | 642 |
KANGAROO_MAN | 645 |
KOALA_MAN | 648 |
ADDER_MAN | 651 |
ECHIDNA_MAN | 654 |
PORCUPINE_MAN | 657 |
KINGSNAKE_MAN | 660 |
GRAY_LANGUR_MAN | 663 |
BOBCAT_MAN | 666 |
SKUNK_MAN | 669 |
GREEN_TREE_FROG_MAN | 672 |
HARE_MAN | 675 |
RATTLESNAKE_MAN | 678 |
WEASEL_MAN | 681 |
COPPERHEAD_SNAKE_MAN | 684 |
IBEX_MAN | 687 |
WOMBAT_MAN | 690 |
DINGO_MAN | 693 |
COATI_MAN | 696 |
OPOSSUM_MAN | 699 |
MONGOOSE_MAN | 702 |
HYENA_MAN | 705 |
ANACONDA_MAN | 708 |
MONITOR_LIZARD_MAN | 711 |
KING_COBRA_MAN | 714 |
OCELOT_MAN | 717 |
JACKAL_MAN | 720 |
CAPUCHIN_MAN | 723 |
SLOTH_MAN | 726 |
SPIDER_MONKEY_MAN | 729 |
PANGOLIN_MAN | 732 |
BLACK_MAMBA_MAN | 735 |
SLOTH_BEAR_MAN | 738 |
AYE-AYE_MAN | 741 |
BUSHMASTER_MAN | 744 |
PYTHON_MAN | 747 |
TAPIR_MAN | 750 |
IMPALA_MAN | 753 |
AARDVARK_MAN | 756 |
LION_TAMARIN_MAN | 759 |
STOAT_MAN | 762 |
LYNX_MAN | 765 |