Мутаторы и UnrealScript

Новые карты для рулетки SlotMachine: свой монстр, сообщение и картинка

Мутатор-рулетка SlotMachine (MutSlotMachine с дополнением SlotsAddOn) выдаёт игрокам случайные «карты», в том числе карты с монстрами. Flame на форуме killingfloor.ru показал, как добавить в рулетку свою карту, на примере патриарха-шерифа из хэллоуинского ивента 2011 года. Нужно умение компилировать пакеты.

Отдельный пакет SlotsAddOn2

MutSlotMachine и SlotsAddOn хранят текстуры и другие ресурсы прямо в .u-пакетах, поэтому Flame вынес новые карты в отдельный пакет SlotsAddOn2: создайте папку SlotsAddOn2, внутри неё Classes, и кладите туда новые файлы.

Монстр

Код босса берётся из патча с прошлогодним ивентом или из мутатора Event Zeds (в нём Flame оставил только .u-пакеты и ресурсы хэллоуина 2011, остальное есть в базовых файлах игры). Понадобятся четыре файла — патриарх и его оторванные конечности:

ZombieBoss_HALLOWEEN.uc
SeveredArmPatriarch_HALLOWEEN.uc
SeveredHeadPatriarch_HALLOWEEN.uc
SeveredLegPatriarch_HALLOWEEN.uc

В ZombieBoss_HALLOWEEN поправьте ссылки на конечности так, чтобы они указывали на новый пакет, например:

DetachedArmClass=Class'SlotsAddOn2.SeveredArmPatriarch_HALLOWEEN'

и так же для SeveredHeadPatriarch_HALLOWEEN и SeveredLegPatriarch_HALLOWEEN.

Карта

По аналогии с картами других монстров:

Class HalloweenPatCard extends MonsterSpawnCard;
defaultproperties
{
 SpawnMessage=Class'SlotsAddOn2.HalloweenPatMessage'
 MonsterClass=Class'SlotsAddOn2.ZombieBoss_HALLOWEEN'
 NumMonsters=1
 Desireability=0.500000
 CardMaterial=Texture'SlotsAddOn2_T.I_HalloweenPat'
}
ПараметрЗначение
SpawnMessageкласс с сообщением, которое показывается при появлении монстра
MonsterClassкласс монстра
NumMonstersколичество монстров
Desireability«вес» карты: мутатор суммирует веса всех карт и делит вес карты на общий вес, это и есть вероятность выпадения
CardMaterialтекстура карты

Сообщение

Тоже по аналогии с другими монстрами:

class HalloweenPatMessage extends ToxicMessage;
defaultproperties
{
 Message="New sheriff in town! Hide!"
 DrawColor=(B=50,G=50,R=255)
}

Картинка карты

Flame открыл в KFEd меш патриарха, вырезал портрет, подправил его в графическом редакторе и уменьшил до 128x128. Затем в KFEd: вкладка текстур → импорт tga-файла в пакет SlotsAddOn2_T.utx, для прозрачности bAlphaTexture = true, сохранить. Картинку можно сконвертировать, например, в DXT3, чтобы она занимала меньше места.

Подключение

Скомпилируйте пакет и допишите в MutSlotMachine.ini:

CardClasses=SlotsAddOn2

Патриарх без лечения

Вопрос из той же темы: Сеня вписал патриарха из рулетки в мутатор PHW, и патриархов стало слишком много, потому что они лечатся, а при каждом лечении добавлялось ещё по 5. Flame посоветовал заменить в коде патриарха состояние KnockDown, тогда он не будет лечиться:

state KnockDown
{
 Begin:
 GotoState('');
}