HATAXA -----------
Сообщения : 2098 Возраст : 39 Откуда : Гагарин
| Тема: Значки перков Вс Мар 27, 2016 10:17 am | |
| Значки перков Автор и публикация: НАТАХА Редактор: Flame Итак, рассмотрим 3 случая:1) нужно установить определённый цвет стандартных значков на своих уровнях 2) нужно заменить полностью значок, установить свои собственные нестандартные текстуры 3) нужно заменить звёздочки на цифры 1) Как установить определённый цвет стандартных значков на своих уровнях перка.В SRVeterancyTypes есть функция PreDrawPerk, где заданы дополнительно синий и зеленый цвета. Цвет вы можете поменять по числовым значениям RGB. Вот как это выглядит в фотошопе - Спойлер:
Код - Спойлер:
- Код:
-
static function byte PreDrawPerk( Canvas C, byte Level, out Material PerkIcon, out Material StarIcon ) { if ( Level>15 ) { PerkIcon = Default.OnHUDGoldIcon; StarIcon = Class'HUDKillingFloor'.Default.VetStarGoldMaterial; Level-=15; //здесь звёзд не будет, т.к. ниже видим return Min(Level,15) C.SetDrawColor(64, 64, 255, C.DrawColor.A); //синий } else if ( Level>10 ) { PerkIcon = Default.OnHUDGoldIcon; StarIcon = Class'HUDKillingFloor'.Default.VetStarGoldMaterial; Level-=10; //сколько звёзд рисуем. например: на 12 уровне будет 12-10=2 C.SetDrawColor(0, 255, 0, C.DrawColor.A); //зеленый } else if ( Level>5 ) { PerkIcon = Default.OnHUDGoldIcon; StarIcon = Class'HUDKillingFloor'.Default.VetStarGoldMaterial; Level-=5; C.SetDrawColor(255, 255, 255, C.DrawColor.A); //белый } else { PerkIcon = Default.OnHUDIcon; StarIcon = Class'HUDKillingFloor'.Default.VetStarMaterial; C.SetDrawColor(255, 255, 255, C.DrawColor.A); } return Min(Level,15); }
Если вы хотите, чтобы цвет был по умолчанию, пишем белый цвет 255,255,255 2) Как заменить полностью значок, установить свои собственные нестандартные текстуры.Для начала нужно создать эти свои нестандартные значки. Я для себя отрисовывала каждый значок со своим цветом. После этого создаём пакет с этими текстурами (не забываем ставить галочку прозрачности фона alfa-канал). Звёздочка у меня одна на все цвета - серебристая. Но здесь я напишу, чтобы звёздочки тоже были того же цвета, что и значки. Рекомендация: создавайте удобные названия текстур, чтобы сразу было ясно, к чему она относится. Вот мои значки: - Спойлер:
Теперь код. Нам нужно будет отредактировать такие классы в ServerPerks: SRVeterancyTypes, SRHUDKillingFloor и все SRVet-классы перков (это для ServerPerks 7.50) SRVeterancyTypes- Спойлер:
Создаём переменные для всех цветов наших значков. Я создала у себя по аналогии с GoldIcon по цветам. - Код:
-
var() Texture OnHUDGreenIcon; var() Texture OnHUDBlueIcon; var() Texture OnHUDMetalIcon;
Для золотого и красного у меня оставлены переменные со стандартной версии. Только текстуру назначила свою. в функции PreDrawPerk прописываем, на каком уровне какой цвет применяется - Код:
-
static function byte PreDrawPerk( Canvas C, byte Level, out Material PerkIcon, out Material StarIcon ) { if ( Level>16 ) //у меня этот цвет только на одном уровне { PerkIcon = Default.OnHUDMetalIcon; StarIcon = Class'SRHUDKillingFloor'.Default.VetStarMetalMaterial; //это звёздочки Level-=17; C.SetDrawColor(255, 255, 255, C.DrawColor.A); } else if ( Level>15 ) //и этот тоже на одном { PerkIcon = Default.OnHUDBlueIcon; StarIcon = Class'SRHUDKillingFloor'.Default.VetStarBlueMaterial; Level-=16; C.SetDrawColor(255, 255, 255, C.DrawColor.A); } else if ( Level>10 ) { PerkIcon = Default.OnHUDGoldIcon; StarIcon = Class'SRHUDKillingFloor'.Default.VetStarGoldMaterial; Level-=10; C.SetDrawColor(255, 255, 255, C.DrawColor.A); } else if ( Level>5 ) { PerkIcon = Default.OnHUDIcon; //по стандарту это красный значок. Он же используется в магазине StarIcon = Class'SRHUDKillingFloor'.Default.VetStarRedMaterial; Level-=5; C.SetDrawColor(255, 255, 255, C.DrawColor.A); } else { PerkIcon = Default.OnHUDGreenIcon; StarIcon = Class'SRHUDKillingFloor'.Default.VetStarGreenMaterial; C.SetDrawColor(255, 255, 255, C.DrawColor.A); } return Min(Level,17); }
Во всех SRVet классах - Спойлер:
дописываем в defaultproperties пути к нашим текстурам Например у Berserker: - Код:
-
OnHUDGreenIcon=Texture'Server_HUD.Perk_Berserker1' OnHUDIcon=Texture'Server_HUD.Perk_Berserker2' OnHUDGoldIcon=Texture'Server_HUD.Perk_Berserker3' OnHUDBlueIcon=Texture'Server_HUD.Perk_Berserker4' OnHUDMetalIcon=Texture'Server_HUD.Perk_Berserker5'
Так же для всех перков назначаем свои значки. SRHUDKillingFloor нужен только для отрисовки звёздочек. - Спойлер:
Добавляем - Код:
-
#exec obj load file="Server_HUD.utx" var Material VetStarMetalMaterial; var Material VetStarBlueMaterial; var Material VetStarGoldMaterial; var Material VetStarRedMaterial; var Material VetStarGreenMaterial;
В defaultproperties назначаем текстуру звёздочки - Код:
-
VetStarMetalMaterial=Texture'Server_HUD.Perk_MetalStar'
и т.д. для всех звёзд 3) Как заменить звёздочки на цифры писал Flame в этой теме | |
|