7 Commits

Author SHA1 Message Date
e064a55d86 update description.txt 2025-04-10 23:27:36 +03:00
bf5e6e7b9c update description.txt 2024-04-28 20:57:28 +03:00
bb8225bc8f add CHN and CHT localizations
translator: cheungfatzong
https://steamcommunity.com/profiles/76561199126205919
2024-04-28 20:11:43 +03:00
e6ed3a4ebf Update description.txt 2024-03-24 22:07:28 +03:00
85e235316c Merge pull request #6 from GenZmeY/gri-advice
add advice in case of problems with GRI replication
2024-01-08 12:29:33 +03:00
10bd48e082 Merge pull request #5 from GenZmeY/short-name
add short alias for mutator
2024-01-08 12:26:49 +03:00
7e2351c1c1 add short alias for mutator 2023-12-31 23:32:55 +03:00
5 changed files with 124 additions and 101 deletions

View File

@ -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
View 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

Binary file not shown.

BIN
Localization/CHT/LTI.cht Normal file

Binary file not shown.

View File

@ -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]