Как добавить 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