MutKillMessage и Брут

Тема в разделе "Игровое редактирование", создана пользователем Mikizverb, 5 июн 2019.

  1. Mikizverb

    Mikizverb Новенький

    Доброго времени суток, подскажите пожалуйста как добавить Брута в список мобов которых ты убиваешь и у всех высвечивает кто убил.

    Я разобрал MutKillMessage в надежде что там будут прописаны мобы но увы.

    Если я правильно понимаю то за это отвечает строка
    return RelatedPRI_1.PlayerName@"+"$ ...
    Вопрос только в том как добавить в этот список Брута
    Код:
    Class NKillsMessage extends LocalMessage;
    
    var localized string KillString,KillsString;
    var localized float MessageShowTime;
    var bool bDamageMessage;
    
    static final function string GetNameOf( class<Monster> M )
    {
        if( Len(M.Default.MenuName)==0 )
            return string(M.Name);
        return M.Default.MenuName;
    }
    
    static function string GetString(
        optional int Switch,
        optional PlayerReplicationInfo RelatedPRI_1,
        optional PlayerReplicationInfo RelatedPRI_2,
        optional Object OptionalObject
        )
    {
        if( RelatedPRI_1==None )
            return "+"$(Switch+1)@GetNameOf(Class<Monster>(OptionalObject))@Eval(Switch==0,Default.KillString,Default.KillsString);
        return RelatedPRI_1.PlayerName@"+"$(Switch+1)@GetNameOf(Class<Monster>(OptionalObject))@Eval(Switch==0,Default.KillString,Default.KillsString);
    }
    
    static function ClientReceive(
        PlayerController P,
        optional int Sw,
        optional PlayerReplicationInfo RelatedPRI_1,
        optional PlayerReplicationInfo RelatedPRI_2,
        optional Object OptionalObject
        )
    {
        local HudBase H;
        local byte i;
    
        if( Class<Monster>(OptionalObject)==None || HudBase(P.myHud)==None || (!Default.bDamageMessage && RelatedPRI_1==None && Sw==1) )
            return;
        H = HudBase(P.myHud);
        if( HudKillingFloor(H)!=None )
            HudKillingFloor(H).bTallySpecimenKills = false;
        for( i=0; i<8; ++i )
        {
            if( H.LocalMessages[i].Message==Default.Class && H.LocalMessages[i].OptionalObject==OptionalObject && H.LocalMessages[i].RelatedPRI==RelatedPRI_1 )
            {
                if( Default.bDamageMessage )
                    H.LocalMessages[i].Switch+=Sw;
                else ++H.LocalMessages[i].Switch;
                H.LocalMessages[i].DrawColor = GetColor(H.LocalMessages[i].Switch);
                H.LocalMessages[i].LifeTime = Default.MessageShowTime;
                H.LocalMessages[i].EndOfLife = Default.MessageShowTime + P.Level.TimeSeconds;
                H.LocalMessages[i].StringMessage = GetString(H.LocalMessages[i].Switch,RelatedPRI_1,,OptionalObject);
                return;
            }
        }
        if( !Default.bDamageMessage )
            Sw = 0;
        if ( H!=None )
            H.LocalizedMessage(Default.Class,Sw,RelatedPRI_1,,OptionalObject);
    }
    
    static function float GetLifeTime(int Switch)
    {
        return default.MessageShowTime;
    }
    
    // Fade color: Green (0-3 frags) > Yellow (4-7 frags) > Red (8-12 frags) > Dark Red (13+ frags).
    static function color GetColor(
        optional int Switch,
        optional PlayerReplicationInfo RelatedPRI_1,
        optional PlayerReplicationInfo RelatedPRI_2
        )
    {
        local color C;
    
        C.A = 255;
        if( Switch<10 )
        {
            C.G = Clamp(500-Switch*50,0,255);
            C.R = Clamp(0+Switch*50,0,255);
        }
        else C.R = Max(505-Switch*25,150);
        return C;
    }
    
    defaultproperties
    {
         KillString="kill"
         KillsString="kills"
         MessageShowTime=5.000000
         bIsConsoleMessage=False
         bFadeMessage=True
         DrawColor=(B=0,G=0,R=150)
         DrawPivot=DP_UpperLeft
         StackMode=SM_Down
         PosX=0.020000
         PosY=0.200000
         FontSize=-1
    }
    
     
    Последнее редактирование модератором: 7 июн 2019
  2. w.a.l

    w.a.l Консильери

    Вопрос в другом, в том что нахрена ты создаёшь тему, вместо того, что бы написать свой вопрос в теме мутатора
    MutKillMessage ?
     
  3. Mikizverb

    Mikizverb Новенький

    По теме можно ? Без глупых сообщений
     
  4. Essence

    Essence Moderator Команда форума

    Замечание от w.a.l имеет место быть.
    Не нужно плодить темы на форуме, достаточно написать в теме, которая относится непосредственно к мутатору.
    И объёмный код здесь принято прятать под спойлер.

    Что касается вашего вопроса:
    Указание кастомных мобов не требуется, так как в KillRules.uc в функции ScoreKill класс моба передаётся в NKillsMessage.uc как OptionalObject. А в NKillsMessage.uc функция GetNameOf возвращает MenuName из defaultproperties класса моба.
    Здесь также был затронут подобный вопрос, можете ознакомиться.
     
  5. w.a.l

    w.a.l Консильери

    Я тебе написал по теме твоей глупой темы. Мусори у себя дома.
     
  6. Mikizverb

    Mikizverb Новенький