Скины

Тема в разделе "Linux", создана пользователем extN, 24 мар 2014.

  1. extN

    extN Новенький

    Привет всем, сразу скажу, что такую тему я не нашел, но либо я совсем слепой. Если такая темя уже есть скиньте ссылку.
    Я бы хотел дословное объяснение того, как на линукс сервер закинуть нового персонажа(скин).
     
  2. HATAXA

    HATAXA Солдат

    За давайте вопросы конкретнее. Куда закинуть? На сервер или клиент... если на сервер, то на какой сервер? Выделенный? Тогда для какого пользования (по id или для всех)...
     
  3. extN

    extN Новенький

    Закинуть на сервер, который запущен на Linux(VPS), чтобы скин могли выбрать все, кто играет на этом сервере.
     
  4. HATAXA

    HATAXA Солдат

  5. extN

    extN Новенький

    Всё сделал, при входе на сервер грузит скин, но дело в том, отображаются только стим скины, на сколько я понял.
    [​IMG]
     
  6. key

    key Солдат

    У меня так же на дедикат сервере. Наверное это из-за старого серверперкс 510...
     
  7. Человек

    Человек Солдат

    Да это старый SP.
    Есть мутатор скинов называеться ССчегототам. С 6 вроде версии он уже вшит в SP Если надо будет могу посмотреть название или даже ссылку дать.
     
  8. extN

    extN Новенький

    Я всё исправил, хотя тут нечего и исправлять было, я просто закинул скин DaericKnight, а тот скин надо активировать по мутатору через WebAdmin.
     
  9. key

    key Солдат

    Можешь подробнее рассказать как подключить скин на старый серверперкс 510 ?
     
  10. extN

    extN Новенький

    Да всё также, только запишите в строку мутаторов скин
     
  11. Flame

    Flame -Заслуженый кодер форума-

    Это если есть мутатор для скина
    Сейчас часто делают сразу mod, без mut

    Какой скин не добавляется то? Никакой?)
    А версия SP точно 5.10, а не 5.01 )
    Если взять, например, этот скин
    Скачать по моей ссылке и сделать то, что там написано:
    То скин не добавится в Custom секцию? (проверять стоит уже после начала игры (подождав чуток), чтобы уж наверняка)
    Если всё равно никак - кидай содержание класса ServerPerksMut - гляну вырезаны там CustomSkin'ы или нет
     
    key нравится это.
  12. key

    key Солдат

    Пробовал рыцаря - всё так же, подключается и грузится, но в выборе нет (прошёл волну).

    Вот код

    // Written by .:..: (2009)
    Class ServerPerksMutz extends Mutator
    Config(ServerPerksV5z);

    var() globalconfig array<string> Perks,TraderInventory,WeaponCategories,CustomCharacters;
    var() globalconfig int MinPerksLevel,MaxPerksLevel,RemotePort,MidGameSaveWaves;
    var() globalconfig bool bForceGivePerk,bNoSavingProgress,bUseRemoteDatabase,bUsePlayerNameAsID,bMessageAnyPlayerLevelUp
    ,bUseLowestRequirements,bBWZEDTime,bUseEnhancedScoreboard,bOverrideUnusedCustomStats;
    var() globalconfig float RequirementScaling;
    var() globalconfig string RemoteDatabaseURL,RemotePassword;

    var array<byte> LoadInvCategory;
    var array< class<SRVeterancyTypes> > LoadPerks;
    var array< class<Pickup> > LoadInventory;
    var const int VersionNumber;
    var array<PlayerController> PendingPlayers;
    var array<StatsObject> ActiveStats;
    var localized string ServerPerksGroup;
    var transient DatabaseUdpLink Link;
    var array<ServerStStats> PendingData;
    var KFGameType KFGT;
    var int LastSavedWave,WaveCounter;
    var SRGameRules RulesMod;


    /////////////////////////////////////////////////////////

    function PostNetBeginPlay()
    {
    if(SRGameType(level.game)==none)
    {
    level.servertravel("?game=ServerPerksV5z.SRGameType",true);
    }
    }

    ////////////////////////////////////////////////////////

    function PostBeginPlay()
    {
    local int i,j;
    local class<SRVeterancyTypes> V;
    local array<name> ServerPcks;
    local class<Pickup> P;
    local string S;
    local byte Cat;
    local class<PlayerRecordClass> PR;
    local Object O;

    if( RulesMod==None )
    RulesMod = Spawn(Class'SRGameRules');

    KFGT = KFGameType(Level.Game);
    if( Level.Game.HUDType~=Class'KFGameType'.Default.HUDType )
    Level.Game.HUDType = string(Class'SRHUDKillingFloor');

    if( bUseEnhancedScoreboard && Level.Game.ScoreBoardType~=Class'KFGameType'.Default.ScoreBoardType )
    Level.Game.ScoreBoardType = string(Class'SRScoreBoard');

    // Use own playercontroller class for security reasons.
    if( Level.Game.PlayerControllerClass==Class'KFPlayerController' )
    {
    Level.Game.PlayerControllerClass = Class'KFPCServ';
    Level.Game.PlayerControllerClassName = string(Class'KFPCServ');
    }
    DeathMatch(Level.Game).LoginMenuClass = string(Class'SRInvasionLoginMenu');

    // Load perks.
    for( i=0; i<Perks.Length; i++ )
    {
    V = class<SRVeterancyTypes>(DynamicLoadObject(Perks,Class'Class'));
    if( V!=None )
    {
    LoadPerks[LoadPerks.Length] = V;
    ServerPcks[ServerPcks.Length] = V.Outer.Name;
    }
    }
    if( WeaponCategories.Length==0 )
    {
    WeaponCategories.Length = 1;
    WeaponCategories[0] = "All";
    }

    // Load up trader inventory.
    for( i=0; i<TraderInventory.Length; i++ )
    {
    S = TraderInventory;
    j = InStr(S,":");
    if( j>0 )
    {
    Cat = Min(int(Left(S,j)),WeaponCategories.Length-1);
    S = Mid(S,j+1);
    }
    else Cat = 0;
    P = class<Pickup>(DynamicLoadObject(S,Class'Class'));
    if( P!=None )
    {
    LoadInventory[LoadInventory.Length] = P;
    LoadInvCategory[LoadInvCategory.Length] = Cat;
    if( P.Outer.Name!='KFMod' )
    ServerPcks[ServerPcks.Length] = P.Outer.Name;
    }
    }

    // Load custom chars.
    for( i=0; i<CustomCharacters.Length; ++i )
    {
    PR = class<PlayerRecordClass>(DynamicLoadObject(CustomCharacters$"Mod."$CustomCharacters,class'Class',true));
    if( PR!=None )
    {
    if( PR.Default.MeshName!="" ) // Add mesh package.
    {
    O = DynamicLoadObject(PR.Default.MeshName,class'Mesh',true);
    while( O!=None && O.Outer!=None )
    O = O.Outer;
    if( O!=None )
    ServerPcks[ServerPcks.Length] = O.Name;
    }
    if( PR.Default.BodySkinName!="" ) // Add skin package.
    {
    O = DynamicLoadObject(PR.Default.BodySkinName,class'Material',true);
    while( O!=None && O.Outer!=None )
    O = O.Outer;
    if( O!=None )
    ServerPcks[ServerPcks.Length] = O.Name;
    }
    ServerPcks[ServerPcks.Length] = PR.Outer.Name;
    }
    }

    // Eliminate same serverpackages
    for( i=0; i<(ServerPcks.Length-1); i++ )
    for( j=(i+1); j<ServerPcks.Length; j++ )
    if( ServerPcks==ServerPcks[j] )
    {
    ServerPcks.Remove(j,1);
    j--;
    }

    Log("Adding"@(ServerPcks.Length+1)@"additional serverpackages",Class.Outer.Name);
    for( i=0; i<ServerPcks.Length; i++ )
    AddToPackageMap(string(ServerPcks));

    if( bUseRemoteDatabase )
    {
    Log("Using remote database:"@RemoteDatabaseURL$":"$RemotePort,Class.Outer.Name);
    Link = Spawn(Class'DatabaseUdpLink');
    Link.Mut = Self;
    }
    ///////////////////////////////////////////////////////////////////////////////////////////////////////

    //1043
    class'kfmod.FlareRevolver'.default.AppID=0;
    class'kfmod.DualFlareRevolver'.default.AppID=0;
    class'kfmod.Scythe'.default.AppID=0;
    class'kfmod.Crossbuzzsaw'.default.AppID=0;
    class'kfmod.ThompsonSMG'.default.AppID=0;

    //1045
    class'kfmod.GoldenKatana'.default.AppID=0;
    class'kfmod.GoldenAK47AssaultRifle'.default.AppID=0;
    class'kfmod.GoldenM79GrenadeLauncher'.default.AppID=0;
    class'kfmod.GoldenBenelliShotgun'.default.AppID=0;
    class'kfmod.ZEDGun'.default.AppID=0;
    class'kfmod.ZEDGun'.default.UnlockedByAchievement=-1;
    class'kfmod.DwarfAxe'.default.AppID=0;
    class'kfmod.DwarfAxe'.default.UnlockedByAchievement=-1;

    //1049
    class'KFMod.SPAutoShotgun'.default.AppID=0;
    class'KFMod.SPGrenadeLauncher'.default.AppID=0;
    class'KFMod.SPSniperRifle'.default.AppID=0;
    class'KFMod.SPThompsonSMG'.default.AppID=0;
    class'KFMod.ThompsonDrumSMG'.default.AppID=0;
    class'KFMod.GoldenFlamethrower'.default.AppID=0;
    class'KFMod.GoldenDualDeagle'.default.AppID=0;
    class'KFMod.GoldenDeagle'.default.AppID=0;
    class'KFMod.GoldenChainsaw'.default.AppID=0;
    class'KFMod.GoldenAA12AutoShotgun'.default.AppID=0;

    //1058
    class'kfmod.CamoM4AssaultRifle'.default.AppID=0;
    class'kfmod.CamoM32GrenadeLauncher'.default.AppID=0;
    class'kfmod.CamoMP5MMedicGun'.default.AppID=0;
    class'kfmod.CamoShotgun'.default.AppID=0;
    class'kfmod.SeekerSixRocketLauncher'.default.AppID=0;
    class'kfmod.ZEDMKIIWeapon'.default.AppID=0;
    class'kfmod.BlowerThrower'.default.AppID=0;
    class'kfmod.SealSquealHarpoonBomber'.default.AppID=0;

    ///////////////////////////////////////////////////////////////////////////////////////////////////////
    }
    function bool CheckReplacement(Actor Other, out byte bSuperRelevant)
    {
    if( PlayerController(Other)!=None )
    {
    PendingPlayers[PendingPlayers.Length] = PlayerController(Other);
    SetTimer(0.1,false);
    }
    else if( ServerStStats(Other)!=None )
    SetServerPerks(ServerStStats(Other));
    else if( ClientPerkRepLink(Other)!=None )
    SetupRepLink(ClientPerkRepLink(Other));

    return true;
    }
    final function SetServerPerks( ServerStStats Stat )
    {
    local int i;

    Stat.MutatorOwner = Self;
    Stat.Rep.MinimumLevel = MinPerksLevel+1;
    Stat.Rep.MaximumLevel = MaxPerksLevel+1;
    Stat.Rep.RequirementScaling = RequirementScaling;
    Stat.Rep.CachePerks.Length = LoadPerks.Length;
    for( i=0; i<LoadPerks.Length; i++ )
    Stat.Rep.CachePerks.PerkClass = LoadPerks;
    }
    final function SetupRepLink( ClientPerkRepLink R )
    {
    local int i;

    R.bMinimalRequirements = bUseLowestRequirements;
    R.bBWZEDTime = bBWZEDTime;

    R.ShopInventory.Length = LoadInventory.Length;
    for( i=0; i<LoadInventory.Length; ++i )
    {
    R.ShopInventory.PC = LoadInventory;
    R.ShopInventory.CatNum = LoadInvCategory;
    }
    R.ShopCategories = WeaponCategories;
    R.CustomChars = CustomCharacters;
    }

    function GetServerDetails( out GameInfo.ServerResponseLine ServerState )
    {
    local int i,l;

    Super.GetServerDetails( ServerState );
    l = ServerState.ServerInfo.Length;
    ServerState.ServerInfo.Length = l+1;
    ServerState.ServerInfo[l].Key = "Veterancy Handler";
    ServerState.ServerInfo[l].Value = "Ver"@VersionNumber;
    l++;
    ServerState.ServerInfo.Length = l+1;
    ServerState.ServerInfo[l].Key = "Veterancy saving";
    ServerState.ServerInfo[l].Value = Eval(bNoSavingProgress,"Disabled","Enabled");
    l++;
    For( i=0; i<LoadPerks.Length; i++ )
    {
    ServerState.ServerInfo.Length = l+1;
    ServerState.ServerInfo[l].Key = "Veterancy";
    ServerState.ServerInfo[l].Value = LoadPerks.Default.VeterancyName;
    l++;
    }
    }
    function Timer()
    {
    while( PendingPlayers.Length>0 )
    {
    if( PendingPlayers[0]!=None && PendingPlayers[0].Player!=None && ServerTempStats(PendingPlayers[0].SteamStatsAndAchievements)==None )
    {
    if( PendingPlayers[0].SteamStatsAndAchievements!=None )
    PendingPlayers[0].SteamStatsAndAchievements.Destroy();
    PendingPlayers[0].SteamStatsAndAchievements = Spawn(Class'ServerTempStats',PendingPlayers[0]);
    }
    PendingPlayers.Remove(0,1);
    }
    }

    static final function string GetPlayerID( PlayerController PC )
    {
    if( Default.bUsePlayerNameAsID )
    return PC.PlayerReplicationInfo.PlayerName;
    return PC.GetPlayerIDHash();
    }
    final function StatsObject GetStatsForPlayer( PlayerController PC )
    {
    local StatsObject S;
    local string SId;
    local int i;

    if( bNoSavingProgress || Level.Game.bGameEnded )
    return None;
    SId = GetPlayerID(PC);
    for( i=0; i<ActiveStats.Length; ++i )
    if( string(ActiveStats.Name)~=SId )
    {
    S = ActiveStats;
    break;
    }
    if( S==None )
    {
    S = new(None,SId) Class'StatsObject';
    ActiveStats[ActiveStats.Length] = S;
    }
    S.PlayerName = PC.PlayerReplicationInfo.PlayerName;
    S.PlayerIP = PC.GetPlayerNetworkAddress();
    return S;
    }

    final function SaveStats()
    {
    local int i;
    local ClientPerkRepLink CP;

    Log("*** Saving"@ActiveStats.Length@"stats objects ***",Class.Outer.Name);
    foreach DynamicActors(Class'ClientPerkRepLink',CP)
    if( CP.StatObject!=None && ServerStStats(CP.StatObject).MyStatsObject!=None )
    ServerStStats(CP.StatObject).MyStatsObject.SetCustomValues(CP.CustomLink);

    if( bUseRemoteDatabase )
    {
    if( Link!=None )
    Link.SaveStats();
    return;
    }
    for( i=0; i<ActiveStats.Length; ++i )
    if( ActiveStats.bStatsChanged )
    {
    ActiveStats.bStatsChanged = false;
    ActiveStats.SaveConfig();
    }
    }
    final function CheckWinOrLose()
    {
    local bool bWin;
    local Controller P;
    local PlayerController Player;

    bWin = (KFGameReplicationInfo(Level.GRI)!=None && KFGameReplicationInfo(Level.GRI).EndGameType==2);
    for ( P = Level.ControllerList; P != none; P = P.nextController )
    {
    Player = PlayerController(P);

    if ( Player != none )
    {
    if ( ServerStStats(Player.SteamStatsAndAchievements)!=None )
    ServerStStats(Player.SteamStatsAndAchievements).WonLostGame(bWin);
    }
    }
    }
    final function InitNextWave()
    {
    if( ++WaveCounter>=MidGameSaveWaves )
    {
    WaveCounter = 0;
    SaveStats();
    }
    }

    Auto state EndGameTracker
    {
    Begin:
    while( !Level.Game.bGameEnded )
    {
    Sleep(1.f);
    if( MidGameSaveWaves>0 && KFGT!=None && KFGT.WaveNum!=LastSavedWave )
    {
    LastSavedWave = KFGT.WaveNum;
    InitNextWave();
    }
    }
    CheckWinOrLose();
    SaveStats();
    }

    final function ReceivedPlayerID( string S )
    {
    local int i,RID;

    i = InStr(S,"|");
    RID = int(Left(S,i));
    S = Mid(S,i+1);

    for( i=0; i<PendingData.Length; ++i )
    {
    if( PendingData==None )
    PendingData.Remove(i--,1);
    else if( S~=string(PendingData[i].MyStatsObject.Name) )
    {
    PendingData[i].SetID(RID);
    break;
    }
    }
    }
    final function ReceivedPlayerData( string S )
    {
    local int i,RID;

    i = InStr(S,"|");
    RID = int(Left(S,i));
    S = Mid(S,i+1);

    for( i=0; i<PendingData.Length; ++i )
    {
    if( PendingData[i]==None )
    PendingData.Remove(i--,1);
    else if( RID==PendingData[i].GetID() )
    {
    PendingData[i].GetData(S);
    PendingData.Remove(i,1);
    break;
    }
    }
    }
    final function string GetSafeName( string S )
    {
    ReplaceText(S,"=","-");
    ReplaceText(S,"\n","");
    ReplaceText(S,"\"","'");
    return S;
    }
    final function GetRemoteStatsForPlayer( ServerStStats Other )
    {
    local int i;

    if( Link==None || !Link.bConnectionReady )
    return;
    Link.SendText(Link.A,Chr(Link.ENetID.ID_NewPlayer)$Other.MyStatsObject.Name$"*"$GetSafeName(Other.PlayerOwner.PlayerReplicationInfo.PlayerName));
    for( i=0; i<PendingData.Length; ++i )
    if( PendingData[i]==Other )
    return;
    PendingData[PendingData.Length] = Other;
    }

    static function FillPlayInfo(PlayInfo PlayInfo)
    {
    Super.FillPlayInfo(PlayInfo);

    PlayInfo.AddSetting(default.ServerPerksGroup,"Perks","Perk Classes",1,1,"Text","42",,,True);
    PlayInfo.AddSetting(default.ServerPerksGroup,"CustomCharacters","Custom chars",1,1,"Text","42",,,True);
    PlayInfo.AddSetting(default.ServerPerksGroup,"TraderInventory","Trader Weapons",1,1,"Text","42",,,True);
    PlayInfo.AddSetting(default.ServerPerksGroup,"WeaponCategories","Weapon categories",1,1,"Text","42",,,True);
    PlayInfo.AddSetting(default.ServerPerksGroup,"MinPerksLevel","Min Perk Level",1,0, "Text", "4;-1:254",,,True);
    PlayInfo.AddSetting(default.ServerPerksGroup,"MaxPerksLevel","Max Perk Level",1,0, "Text", "4;0:254",,,True);
    PlayInfo.AddSetting(default.ServerPerksGroup,"RequirementScaling","Req Scaling",1,0, "Text", "6;0.01:4.00",,,True);
    PlayInfo.AddSetting(default.ServerPerksGroup,"bForceGivePerk","Force perks",1,0, "Check");
    PlayInfo.AddSetting(default.ServerPerksGroup,"bNoSavingProgress","No saving",1,0, "Check");
    PlayInfo.AddSetting(default.ServerPerksGroup,"bUseRemoteDatabase","Use remote database",1,0, "Check");
    PlayInfo.AddSetting(default.ServerPerksGroup,"RemoteDatabaseURL","Remote database URL",1,1,"Text","64",,,True);
    PlayInfo.AddSetting(default.ServerPerksGroup,"RemotePort","Remote database port",1,0, "Text", "5;0:65535",,,True);
    PlayInfo.AddSetting(default.ServerPerksGroup,"RemotePassword","Remote database password",1,0, "Text", "64",,,True);
    PlayInfo.AddSetting(default.ServerPerksGroup,"MidGameSaveWaves","MidGame Save Waves",1,0, "Text", "5;0:10",,,True);

    PlayInfo.AddSetting(default.ServerPerksGroup,"bUsePlayerNameAsID","Use PlayerName as ID",1,0, "Check");
    PlayInfo.AddSetting(default.ServerPerksGroup,"bMessageAnyPlayerLevelUp","Notify any levelup",1,0, "Check");
    PlayInfo.AddSetting(default.ServerPerksGroup,"bUseLowestRequirements","Use lowest req",1,0, "Check");
    PlayInfo.AddSetting(default.ServerPerksGroup,"bBWZEDTime","BW ZED-time",1,0, "Check");
    PlayInfo.AddSetting(default.ServerPerksGroup,"bUseEnhancedScoreboard","Enhanced scoreboard",1,0, "Check");
    }

    static event string GetDescriptionText(string PropName)
    {
    switch (PropName)
    {
    case "Perks": return "Perk classes.";
    case "CustomCharacters": return "Custom mod characters.";
    case "MinPerksLevel": return "Minimum perk level players can have.";
    case "MaxPerksLevel": return "Maximum perk level players can have.";
    case "RequirementScaling": return "Perk requirements scaling.";
    case "bForceGivePerk": return "Force all players to get at least a random perk if they have none selected.";
    case "bNoSavingProgress": return "Server shouldn't save perk progression.";
    case "bUseRemoteDatabase": return "Instead of storing perk data locally on server, use remote data storeage server.";
    case "RemoteDatabaseURL": return "URL of the remote database.";
    case "RemotePort": return "Port of the remote database.";
    case "RemotePassword": return "Password for server to access the remote database.";
    case "MidGameSaveWaves": return "Between how many waves should it mid-game save stats.";
    case "TraderInventory": return "Trader inventory classes list";
    case "bUsePlayerNameAsID": return "Use PlayerName's as ID instead of ID Hash.";
    case "bMessageAnyPlayerLevelUp": return "Broadcast a global message anytime someone gains a perk upgrade.";
    case "bUseLowestRequirements": return "Use lowest form of requirements for perks.";
    case "bBWZEDTime": return "Make screen go black and white during ZED-time.";
    case "WeaponCategories": return "Weapon category names.";
    case "bUseEnhancedScoreboard": return "Should use serverperk's own scoreboard.";
    }
    return Super.GetDescriptionText(PropName);
    }

    defaultproperties
    {
    Perks(0)="ServerPerksV5Pz.SRVetSupportSpec"
    Perks(1)="ServerPerksV5Pz.SRVetBerserker"
    Perks(2)="ServerPerksV5Pz.SRVetCommando"
    Perks(3)="ServerPerksV5Pz.SRVetFieldMedic"
    Perks(4)="ServerPerksV5Pz.SRVetFirebug"
    Perks(5)="ServerPerksV5Pz.SRVetSharpshooter"
    Perks(6)="ServerPerksV5Pz.SRVetDemolitions"
    TraderInventory(0)="4:KFMod.MP7MPickup"
    TraderInventory(1)="2:KFMod.ShotgunPickup"
    TraderInventory(2)="2:KFMod.BoomStickPickup"
    TraderInventory(3)="5:KFMod.LAWPickup"
    TraderInventory(4)="2:KFMod.AA12Pickup"
    TraderInventory(5)="1:KFMod.SinglePickup"
    TraderInventory(6)="1:KFMod.DualiesPickup"
    TraderInventory(7)="1:KFMod.DeaglePickup"
    TraderInventory(8)="1:KFMod.DualDeaglePickup"
    TraderInventory(9)="3:KFMod.WinchesterPickup"
    TraderInventory(10)="3:KFMod.CrossbowPickup"
    TraderInventory(11)="3:KFMod.M14EBRPickup"
    TraderInventory(12)="4:KFMod.BullpupPickup"
    TraderInventory(13)="4:KFMod.AK47Pickup"
    TraderInventory(14)="4:KFMod.SCARMK17Pickup"
    TraderInventory(15)="0:KFMod.KnifePickup"
    TraderInventory(16)="0:KFMod.MachetePickup"
    TraderInventory(17)="0:KFMod.AxePickup"
    TraderInventory(18)="0:KFMod.ChainsawPickup"
    TraderInventory(19)="0:KFMod.KatanaPickup"
    TraderInventory(20)="6:KFMod.FlameThrowerPickup"
    TraderInventory(21)="5:KFMod.PipeBombPickup"
    TraderInventory(22)="5:KFMod.M79Pickup"
    TraderInventory(23)="5:KFMod.M32Pickup"
    TraderInventory(24)="4:KFMod.MAC10Pickup"
    TraderInventory(25)="4:KFMod.MP5MPickup"
    TraderInventory(26)="2:KFMod.BenelliPickup"
    TraderInventory(27)="1:KFMod.Magnum44Pickup"
    TraderInventory(28)="1:KFMod.Dual44MagnumPickup"
    TraderInventory(29)="4:KFMod.M4Pickup"
    TraderInventory(30)="0:KFMod.ClaymoreSwordPickup"
    TraderInventory(31)="6:KFMod.HuskGunPickup"
    TraderInventory(32)="4:KFMod.M4203Pickup"
    WeaponCategories(0)="Холодное"
    WeaponCategories(1)="Пистолеты"
    WeaponCategories(2)="Дробовики"
    WeaponCategories(3)="Снайперское"
    WeaponCategories(4)="Автоматичесское"
    WeaponCategories(5)="Взрывчатое"
    WeaponCategories(6)="Зажигательное"
    MinPerksLevel=-1
    MaxPerksLevel=6
    RemotePort=5000
    bUseEnhancedScoreboard=True
    RequirementScaling=1.000000
    RemoteDatabaseURL="192.168.1.33"
    RemotePassword="Pass"
    VersionNumber=510
    ServerPerksGroup="Perks"
    GroupName="KF-Stats"
    FriendlyName="Server Veterancy Handler V5"
    Description="Use perks as privately on this server config instead of getting from global steam stats."
    }


    [/i][/i][/i][/i][/i][/i]
    [i][i][i][i][i]

    З.Ы. Серверперкс 510, дедикат сервер не крякнутый.[/i][/i][/i][/i][/i]
     
  13. Человек

    Человек Солдат

    Вот ссылка на мутатор про который я говорил Ссылка

    С какой то верси этот мутатор CCMutator вшили в Server Perks, и его разработка закончилась, Но название в SP осталось:
    CustomCharacters=* в настройках Server Perks.ini
     
    key нравится это.
  14. Flame

    Flame -Заслуженый кодер форума-

    Код вроде в норме. Должны быть скины
    Как ты их в ini прописываешь? (Например, рыцаря этого, как прописал?)
     
  15. key

    key Солдат

    killingfloor.ini
    ServerPackages=DaedricKnightMut

    serverstert.bat
    DaedricKnightMut.DaedricKnightMut
     
  16. Человек

    Человек Солдат

    Это скин а не просто мутатор, он должен прописываться в ServerPerks
     
  17. Flame

    Flame -Заслуженый кодер форума-

    а в ServerPerks.ini как пишешь и пишешь ли?
     
  18. key

    key Солдат

    Опа. А в серверперкс не прописываю...

    прописал в серверперк.ини

    CustomCharacters=DaedricKnight

    - работает

    Спасибо за помощь.