Christmas Patriarch

Как добавить ID в меню Stats для ServerPerks

Так как SRStatList выполняется на клиенте, а нам нужно тащить значение ID с сервера, то поступим так

1. В классе ServerPerks.ClientPerkRepLink добавим переменную и её рекпликацию на клиент

var string PlayerHash;
...
replication
{
    reliable if( Role==ROLE_Authority && bNetOwner )
        ...
        ..., CustomLink, PlayerHash;
...

2. В классе ServerPerksMut.ServerStStats добавим инициализацию переменной PlayerHash на сервере

function RepCopyStats()
{
    ...
    Rep.LostsCount = MyStatsObject.LostsCount;
    MyStatsObject.GetCustomValues(Rep.CustomLink);
    Rep.PlayerHash = KFPlayerController(Owner).GetPlayerIdHash();
}

Соответственно так как мы её прописали в репликацию, то она продублируется на клиенте.
На самом деле RepCopyStats может и не самое лучшее место для инициализации, но пожалуй нормально.

3. Собственно в классе ServerPerks.SRStatList правим функцию InitList и массив в defaultproperties

function InitList( ClientPerkRepLink L )
{
    ...
    StatProgress[25] = string(L.WinsCount);
    StatProgress[26] = string(L.LostsCount);
    StatProgress[27] = L.PlayerHash;
    ...
}
defaultproperties
{
    ...
    ProgressName(25)="Won games"
    ProgressName(26)="Lost games"
    ProgressName(27)="ID"
    ...
}

Результат:

Автор: Flame