Compare commits
7 Commits
gri-advice
...
master
Author | SHA1 | Date | |
---|---|---|---|
e064a55d86
|
|||
bf5e6e7b9c
|
|||
bb8225bc8f
|
|||
e6ed3a4ebf | |||
85e235316c | |||
10bd48e082 | |||
7e2351c1c1
|
@ -1,60 +1 @@
|
||||
class LTIMut extends KFMutator;
|
||||
|
||||
var private LTI LTI;
|
||||
|
||||
public simulated function bool SafeDestroy()
|
||||
{
|
||||
return (bPendingDelete || bDeleteMe || Destroy());
|
||||
}
|
||||
|
||||
public event PreBeginPlay()
|
||||
{
|
||||
Super.PreBeginPlay();
|
||||
|
||||
if (WorldInfo.NetMode == NM_Client) return;
|
||||
|
||||
foreach WorldInfo.DynamicActors(class'LTI', LTI)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
if (LTI == None)
|
||||
{
|
||||
LTI = WorldInfo.Spawn(class'LTI');
|
||||
}
|
||||
|
||||
if (LTI == None)
|
||||
{
|
||||
`Log_Base("FATAL: Can't Spawn 'LTI'");
|
||||
SafeDestroy();
|
||||
}
|
||||
}
|
||||
|
||||
public function AddMutator(Mutator Mut)
|
||||
{
|
||||
if (Mut == Self) return;
|
||||
|
||||
if (Mut.Class == Class)
|
||||
LTIMut(Mut).SafeDestroy();
|
||||
else
|
||||
Super.AddMutator(Mut);
|
||||
}
|
||||
|
||||
public function NotifyLogin(Controller C)
|
||||
{
|
||||
LTI.NotifyLogin(C);
|
||||
|
||||
Super.NotifyLogin(C);
|
||||
}
|
||||
|
||||
public function NotifyLogout(Controller C)
|
||||
{
|
||||
LTI.NotifyLogout(C);
|
||||
|
||||
Super.NotifyLogout(C);
|
||||
}
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
GroupNames.Add("TraderItems")
|
||||
}
|
||||
class LTIMut extends Mut; // backward compatibility
|
||||
|
60
LTI/Classes/Mut.uc
Normal file
60
LTI/Classes/Mut.uc
Normal file
@ -0,0 +1,60 @@
|
||||
class Mut extends KFMutator;
|
||||
|
||||
var private LTI LTI;
|
||||
|
||||
public simulated function bool SafeDestroy()
|
||||
{
|
||||
return (bPendingDelete || bDeleteMe || Destroy());
|
||||
}
|
||||
|
||||
public event PreBeginPlay()
|
||||
{
|
||||
Super.PreBeginPlay();
|
||||
|
||||
if (WorldInfo.NetMode == NM_Client) return;
|
||||
|
||||
foreach WorldInfo.DynamicActors(class'LTI', LTI)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
if (LTI == None)
|
||||
{
|
||||
LTI = WorldInfo.Spawn(class'LTI');
|
||||
}
|
||||
|
||||
if (LTI == None)
|
||||
{
|
||||
`Log_Base("FATAL: Can't Spawn 'LTI'");
|
||||
SafeDestroy();
|
||||
}
|
||||
}
|
||||
|
||||
public function AddMutator(Mutator M)
|
||||
{
|
||||
if (M == Self) return;
|
||||
|
||||
if (M.Class == Class)
|
||||
Mut(M).SafeDestroy();
|
||||
else
|
||||
Super.AddMutator(M);
|
||||
}
|
||||
|
||||
public function NotifyLogin(Controller C)
|
||||
{
|
||||
LTI.NotifyLogin(C);
|
||||
|
||||
Super.NotifyLogin(C);
|
||||
}
|
||||
|
||||
public function NotifyLogout(Controller C)
|
||||
{
|
||||
LTI.NotifyLogout(C);
|
||||
|
||||
Super.NotifyLogout(C);
|
||||
}
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
GroupNames.Add("TraderItems")
|
||||
}
|
BIN
Localization/CHN/LTI.chn
Normal file
BIN
Localization/CHN/LTI.chn
Normal file
Binary file not shown.
BIN
Localization/CHT/LTI.cht
Normal file
BIN
Localization/CHT/LTI.cht
Normal file
Binary file not shown.
@ -1,64 +1,86 @@
|
||||
[img]https://img.shields.io/static/v1?logo=GitHub&labelColor=gray&color=blue&logoColor=white&label=&message=Open Source[/img] [img]https://img.shields.io/github/license/GenZmeY/KF2-LootedTraderInventory[/img] [img]https://img.shields.io/steam/downloads/2864857909[/img] [img]https://img.shields.io/steam/favorites/2864857909[/img] [img]https://img.shields.io/steam/update-date/2864857909[/img] [url=https://steamcommunity.com/sharedfiles/filedetails/changelog/2864857909][img]https://img.shields.io/github/v/tag/GenZmeY/KF2-LootedTraderInventory[/img][/url]
|
||||
|
||||
[h1]Features[/h1]
|
||||
[list]
|
||||
[*]remove items from trader.
|
||||
[/list]
|
||||
|
||||
[h1]Description[/h1]
|
||||
[h1]📋 Description[/h1]
|
||||
This is a heavily stripped-down version of [url=https://steamcommunity.com/sharedfiles/filedetails/?id=2830826239]CTI[/url] that only allows you to remove weapons, not add them.
|
||||
[url=https://steamcommunity.com/sharedfiles/filedetails/?id=2830826239]CTI[/url] has no chance of being whitelisted, but this version has a chance because it can't add anything unbalanced to the game - and that's the only reason this version exists.
|
||||
If we're lucky with that then server operators will have more tools to fine-tune the server.
|
||||
|
||||
[h1]Whitelisted?[/h1]
|
||||
[b]No.[/b] But I really hope that it will be whitelisted.
|
||||
[h1]✨ Features[/h1]
|
||||
[list]
|
||||
[*]Remove items from trader
|
||||
[/list]
|
||||
|
||||
[b]⚠️ I submitted whitelist request here:[/b]
|
||||
[h1]❌ Whitelisted?[/h1]
|
||||
No. This mod is not whitelisted and will de-rank your server. Any XP earned will not be saved.
|
||||
|
||||
But I hope that it will be whitelisted - I submitted whitelist request here:
|
||||
https://forums.tripwireinteractive.com/index.php?threads/whitelisting-mods-and-mutators.120340/post-2353665
|
||||
|
||||
[h1]Usage (single player)[/h1]
|
||||
[h1]🎮 Usage (single player)[/h1]
|
||||
[olist]
|
||||
[*]Subscribe to this mutator;
|
||||
[*]Start KF2;
|
||||
[*]Open console (~) and input:
|
||||
[b]open KF-BioticsLab?Mutator=LTI.LTIMut[/b]
|
||||
(replace the map and add the parameters you need)
|
||||
[*]<Enter>.
|
||||
[*]Subscribe to this mutator.
|
||||
[*]Create a file [b](*)[/b]: [code]C:\Users\<username>\Documents\My Games\KillingFloor2\KFGame\Config\KFLTI.ini[/code]
|
||||
with content:
|
||||
[code][LTI.LTI]
|
||||
Version=0[/code]
|
||||
[*]Launch KF2.
|
||||
[*]Open console (~) and start any map with the mutator (this will generate the default KFLTI.ini content):
|
||||
[code]open KF-BioticsLab?Mutator=LTI.Mut[/code]
|
||||
[*]Close the game and configure the mutator (see [b]⚙️ Setup (KFLTI.ini)[/b] below).
|
||||
[*]Launch KF2 again, open the console, and start the game:
|
||||
[code]open KF-BioticsLab?Game=KFGameContent.KFGameInfo_Survival?Difficulty=3?GameLength=2?Mutator=LTI.Mut[/code]
|
||||
(replace the map and set/add parameters you need).
|
||||
[/olist]
|
||||
[h1]Usage (server)[/h1]
|
||||
[b]Note:[/b] [i]If you don't understand what is written here, read the article [url=https://wiki.killingfloor2.com/index.php?title=Dedicated_Server_(Killing_Floor_2)][u]Dedicated Server (KF2 wiki)[/u][/url] before following these instructions.[/i]
|
||||
|
||||
[h1]🖥️ Usage (server)[/h1]
|
||||
[b]Note:[/b] [i]If this is unclear, first read: [url=https://wiki.killingfloor2.com/index.php?title=Dedicated_Server_(Killing_Floor_2)][u]Dedicated Server Guide (KF2 wiki)[/u][/url][/i]
|
||||
[olist]
|
||||
[*]Open your [b]PCServer-KFEngine.ini[/b] / [b]LinuxServer-KFEngine.ini[/b];
|
||||
[*]Find the [b][IpDrv.TcpNetDriver][/b] section and make sure that there is a line (add if not):
|
||||
[b]DownloadManagers=OnlineSubsystemSteamworks.SteamWorkshopDownload[/b]
|
||||
❗️ If there are several [b]DownloadManagers=[/b] then the line above should be the first ❗️
|
||||
[*]Open [b]PCServer-KFEngine.ini[/b] / [b]LinuxServer-KFEngine.ini[/b].
|
||||
[*]Find [b][IpDrv.TcpNetDriver][/b] section and ensure line exists (add if missing):
|
||||
[code]DownloadManagers=OnlineSubsystemSteamworks.SteamWorkshopDownload[/code]
|
||||
(If there are several [b]DownloadManagers[/b] then the line above should be the first)
|
||||
[*]Add the following string to the [b][OnlineSubsystemSteamworks.KFWorkshopSteamworks][/b] section (create one if it doesn't exist):
|
||||
[b]ServerSubscribedWorkshopItems=2864857909[/b]
|
||||
[*]Start the server and wait until the mutator is downloading;
|
||||
[*]Add mutator to server start parameters: [b]?Mutator=LTI.LTIMut[/b] and restart the server.
|
||||
[code]ServerSubscribedWorkshopItems=2864857909[/code]
|
||||
[*]Start server and wait for mutator download.
|
||||
[*]When the download is complete, stop the server.
|
||||
[*]Create a file [b](*)[/b]: [code]<kf2-server>\KFGame\Config\KFLTI.ini[/code]
|
||||
with content:
|
||||
[code][LTI.LTI]
|
||||
Version=0[/code]
|
||||
[*]Add mutator to server start parameters: [code]?Mutator=LTI.Mut[/code] and start the server (this will generate the default KFLTI.ini content).
|
||||
[*]Stop the server and configure the mutator (see [b]⚙️ Setup (KFLTI.ini)[/b] below).
|
||||
[*]Start the server.
|
||||
[/olist]
|
||||
|
||||
[h1]Important setup information[/h1]
|
||||
The config should be created on first start, but now the game contains a bug that initializes the config values randomly if they are not explicitly set. Thus, the config may have incorrect values or not be created at all.
|
||||
So if you are using this mutator for the first time, I highly recommend doing the following:
|
||||
[olist]
|
||||
[*]Create (modify) [b]KFLTI.ini[/b] manually. Put the following content there:
|
||||
[b][LTI.LTI]
|
||||
Version=0[/b]
|
||||
[*]Start the game/server with LTI to generate the contents of the config
|
||||
[*]Close the game/server
|
||||
[/olist]
|
||||
[b]Right now this is the only way to correctly create the default config.[/b]
|
||||
Unfortunately I can't do anything about it because it's a game problem (not mutator). I hope TWI fixes this someday.
|
||||
[h1]🐞 (*) Buggy config initialization[/h1]
|
||||
This mutator (like many others) relies on UnrealScript's default values (0 for int type) to detect first-time use and generate a config.
|
||||
However, the game contains a bug that initializes unset values to random data, which can lead to incorrect settings or missing configs.
|
||||
|
||||
[h1]Setup (KFLTI.ini)[/h1]
|
||||
As a workaround, I recommend explicitly setting [b]Version=0[/b] in the config during the first initialization.
|
||||
|
||||
Unfortunately, I can't fix this issue because it's a game engine problem (not the mutator's fault).
|
||||
|
||||
[h1]⚙️ Setup (KFLTI.ini)[/h1]
|
||||
[list]
|
||||
[*]Set [b]bOfficialWeaponsList=True[/b] to have an auto-updated list of all official weapons in the config (for a convenient copy-paste).
|
||||
[*]Set [b]bOfficialWeaponsList=True[/b] to have an auto-updated list of all official weapons in the config (for a convenient copy-paste) or leave it [b]False[/b] if you want a clean config without unnecessary things.
|
||||
[*]Use [b][LTI.RemoveItems][/b] to remove items from the trader inventory.
|
||||
example: [b]Item=KFGame.KFWeapDef_Mac10[/b] will remove MAC10 from sale.
|
||||
[*]Set [b]bHRG=True[/b] to remove HRG items.
|
||||
[*]Set [b]bDLC=True[/b] to remove DLC items.
|
||||
[/list]
|
||||
|
||||
[h1]Sources[/h1]
|
||||
[url=https://github.com/GenZmeY/KF2-LootedTraderInventory]https://github.com/GenZmeY/KF2-LootedTraderInventory[/url] [b](GNU GPLv3)[/b]
|
||||
[h1]🌍 Credits[/h1]
|
||||
[list]
|
||||
[*]The cat on the cover is Meawbin (original character by [url=https://x.com/horrormove]Cotton Valent[/url]).
|
||||
[/list]
|
||||
[b]Translators:[/b]
|
||||
[list]
|
||||
[*][url=https://steamcommunity.com/profiles/76561199126205919]cheungfatzong[/url] - Traditional [CHT] and Simplified [CHN] Chinese.
|
||||
[/list]
|
||||
|
||||
[h1]☑️ Status: Completed[/h1]
|
||||
✔️ The mutator works with the current version of the game (v1150) and I have implemented everything I planned.
|
||||
⛔️ Development has stopped: I no longer have the time or motivation to maintain this mod. No further updates or bug fixes are planned.
|
||||
|
||||
[h1]📜 Sources[/h1]
|
||||
https://github.com/GenZmeY/KF2-LootedTraderInventory [b](GNU GPLv3)[/b]
|
Reference in New Issue
Block a user