Compare commits
No commits in common. "master" and "v1.17.1" have entirely different histories.
@ -1,33 +0,0 @@
|
||||
root = true
|
||||
|
||||
# Global
|
||||
[*]
|
||||
indent_style = unset
|
||||
indent_size = 4
|
||||
tab_width = 4
|
||||
end_of_line = lf
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = unset
|
||||
|
||||
# Unreal Engine 3 / Source
|
||||
[*.uc]
|
||||
indent_style = tab
|
||||
|
||||
[*.{uci,upkg}]
|
||||
|
||||
# Unreal Engine 3 / i18n
|
||||
[*.{chn,cht,cze,dan,deu,dut,esl,esn,fra,frc,hun,int,ita,jpn,kor,pol,por,ptb,rus,tur,ukr}]
|
||||
charset = utf-16le
|
||||
|
||||
# Other
|
||||
[*.md]
|
||||
indent_style = space
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
[*.yml]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[*.{txt,cfg,conf}]
|
||||
indent_style = tab
|
8
.github/issue_template.md
vendored
Normal file
8
.github/issue_template.md
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
### Details
|
||||
Tell us exactly what happens, every single detail that you can think of
|
||||
|
||||
### Screenshots
|
||||
Provide a screenshot of the issue so we can debug it's not a user issue
|
||||
|
||||
### Steps to reproduce
|
||||
Tell us how to reproduce the problem, step by step
|
116
.github/workflows/mega-linter.yml
vendored
116
.github/workflows/mega-linter.yml
vendored
@ -1,116 +0,0 @@
|
||||
---
|
||||
name: MegaLinter
|
||||
|
||||
permissions: read-all
|
||||
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
env:
|
||||
APPLY_FIXES: none
|
||||
APPLY_FIXES_EVENT: pull_request
|
||||
APPLY_FIXES_MODE: commit
|
||||
FILTER_REGEX_EXCLUDE: (mega-linter.yml)
|
||||
DISABLE: SPELL
|
||||
DISABLE_ERRORS_LINTERS: MARKDOWN_MARKDOWN_LINK_CHECK
|
||||
EDITORCONFIG_EDITORCONFIG_CHECKER_FILTER_REGEX_EXCLUDE: 'xVoteAnnouncer.upk'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.ref }}-${{ github.workflow }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
megalinter:
|
||||
name: MegaLinter
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
issues: write
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
|
||||
with:
|
||||
token: ${{ secrets.PAT || secrets.GITHUB_TOKEN }}
|
||||
fetch-depth: 0
|
||||
|
||||
- name: MegaLinter
|
||||
uses: oxsecurity/megalinter@7e042c726c68415475b05a65a686c612120a1232
|
||||
id: ml
|
||||
env:
|
||||
VALIDATE_ALL_CODEBASE: true
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Archive production artifacts
|
||||
uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392
|
||||
if: success() || failure()
|
||||
with:
|
||||
name: MegaLinter reports
|
||||
path: |
|
||||
megalinter-reports
|
||||
mega-linter.log
|
||||
|
||||
- name: Set APPLY_FIXES_IF var
|
||||
run: |
|
||||
printf 'APPLY_FIXES_IF=%s\n' "${{
|
||||
steps.ml.outputs.has_updated_sources == 1 &&
|
||||
(
|
||||
env.APPLY_FIXES_EVENT == 'all' ||
|
||||
env.APPLY_FIXES_EVENT == github.event_name
|
||||
) &&
|
||||
(
|
||||
github.event_name == 'push' ||
|
||||
github.event.pull_request.head.repo.full_name == github.repository
|
||||
)
|
||||
}}" >> "${GITHUB_ENV}"
|
||||
|
||||
- name: Set APPLY_FIXES_IF_* vars
|
||||
run: |
|
||||
printf 'APPLY_FIXES_IF_PR=%s\n' "${{
|
||||
env.APPLY_FIXES_IF == 'true' &&
|
||||
env.APPLY_FIXES_MODE == 'pull_request'
|
||||
}}" >> "${GITHUB_ENV}"
|
||||
printf 'APPLY_FIXES_IF_COMMIT=%s\n' "${{
|
||||
env.APPLY_FIXES_IF == 'true' &&
|
||||
env.APPLY_FIXES_MODE == 'commit' &&
|
||||
(!contains(fromJSON('["refs/heads/main", "refs/heads/master"]'), github.ref))
|
||||
}}" >> "${GITHUB_ENV}"
|
||||
|
||||
- name: Create Pull Request with applied fixes
|
||||
uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38
|
||||
id: cpr
|
||||
if: env.APPLY_FIXES_IF_PR == 'true'
|
||||
with:
|
||||
token: ${{ secrets.PAT || secrets.GITHUB_TOKEN }}
|
||||
commit-message: "[MegaLinter] Apply linters automatic fixes"
|
||||
title: "[MegaLinter] Apply linters automatic fixes"
|
||||
labels: bot
|
||||
|
||||
- name: Create PR output
|
||||
if: env.APPLY_FIXES_IF_PR == 'true'
|
||||
run: |
|
||||
echo "PR Number - ${{ steps.cpr.outputs.pull-request-number }}"
|
||||
echo "PR URL - ${{ steps.cpr.outputs.pull-request-url }}"
|
||||
|
||||
- name: Prepare commit
|
||||
if: env.APPLY_FIXES_IF_COMMIT == 'true'
|
||||
run: sudo chown -Rc $UID .git/
|
||||
|
||||
- name: Commit and push applied linter fixes
|
||||
uses: stefanzweifel/git-auto-commit-action@8756aa072ef5b4a080af5dc8fef36c5d586e521d
|
||||
if: env.APPLY_FIXES_IF_COMMIT == 'true'
|
||||
with:
|
||||
branch: >-
|
||||
${{
|
||||
github.event.pull_request.head.ref ||
|
||||
github.head_ref ||
|
||||
github.ref
|
||||
}}
|
||||
commit_message: "[MegaLinter] Apply linters fixes"
|
||||
commit_user_name: "github-actions"
|
||||
commit_user_email: "github-actions[bot]@users.noreply.github.com"
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -24,7 +24,7 @@ The full changelog is available [url=https://steamcommunity.com/sharedfiles/file
|
||||
[h1]Usage (single player)[/h1]
|
||||
[olist]
|
||||
[*]Subscribe to this mutator;
|
||||
[*]Start KF2;
|
||||
[*]Start KF2;
|
||||
[*]Open console (`) and input:
|
||||
[code]open KF-BioticsLab?Mutator=ServerExtMut.ServerExtMut[/code]
|
||||
(You can add some options or replace KF-BioticsLab with the map you want)
|
||||
@ -44,7 +44,7 @@ The full changelog is available [url=https://steamcommunity.com/sharedfiles/file
|
||||
[/olist]
|
||||
|
||||
[h1]Mutator setup[/h1]
|
||||
[url=https://steamcommunity.com/workshop/filedetails/discussion/2085786712/4241773359646835902/][u]Look here[/u][/url]
|
||||
[url=https://steamcommunity.com/workshop/filedetails/discussion/2085786712/4241773359646835902/][u]Look here[/u][/url]
|
||||
|
||||
[h1]Is it possible to make the game harder?[/h1]
|
||||
It will be more efficient to use ServerExt together with other mutators (which add new zeds or game modes).
|
||||
@ -88,7 +88,7 @@ SettingsInit=0[/b]
|
||||
[b][ServerExtMut.xVotingHandler]
|
||||
ConfigVersion=0[/b]
|
||||
|
||||
[*]Put in [b]KFServerExt.ini[/b] this: [url=https://gist.githubusercontent.com/GenZmeY/616b6f845f9829c93976f42f6c48505a/raw/1a8c8409d61a2908d5c854ced0932b8ed43a7f51/KFServerExt-Default.ini]<github gist>[/url] [b](*)[/b]
|
||||
[*]Put in [b]KFServerExt.ini[/b] this: [url=https://pastebin.com/raw/Wx3HYjkj]<PasteBin>[/url] [b](*)[/b]
|
||||
|
||||
[*]Start the game/server along with the ServerExt, then check the configs - content should be generated.
|
||||
[/olist]
|
||||
@ -120,7 +120,6 @@ If you have a desire to help translate ServerExt into other languages, you can r
|
||||
[url=https://steamcommunity.com/profiles/76561197967822972]MilkTeaFox[/url] - Traditional Chinese [CHT];
|
||||
[url=https://steamcommunity.com/profiles/76561198930643117]あさぴっぴ1020[/url] - Japanese [JPN];
|
||||
[url=https://steamcommunity.com/profiles/76561198080866131]Jason Voorehes [/url] - Spanish [ESN];
|
||||
[url=https://steamcommunity.com/profiles/76561198200630473/]小曦曦[/url] - Simplified Chinese [CHN];
|
||||
|
||||
[h1]Sources[/h1]
|
||||
[url=https://github.com/GenZmeY/KF2-Server-Extension]https://github.com/GenZmeY/KF2-Server-Extension[/url] [b](GNU GPLv3)[/b]
|
||||
|
65
README.md
65
README.md
@ -1,22 +1,22 @@
|
||||
# Server Extension
|
||||
|
||||
[![Banner](PublicationContent/mutbanner.png)](https://steamcommunity.com/sharedfiles/filedetails/?id=2085786712)
|
||||
[![](PublicationContent/mutbanner.png)](https://steamcommunity.com/sharedfiles/filedetails/?id=2085786712)
|
||||
|
||||
[![Steam Workshop](https://img.shields.io/static/v1?message=workshop&logo=steam&labelColor=gray&color=blue&logoColor=white&label=steam%20)](https://steamcommunity.com/sharedfiles/filedetails/?id=2085786712)
|
||||
[![Steam Downloads](https://img.shields.io/steam/downloads/2085786712)](https://steamcommunity.com/sharedfiles/filedetails/?id=2085786712)
|
||||
[![Steam Subscriptions](https://img.shields.io/steam/subscriptions/2085786712)](https://steamcommunity.com/sharedfiles/filedetails/?id=2085786712)
|
||||
[![Steam Favorites](https://img.shields.io/steam/favorites/2085786712)](https://steamcommunity.com/sharedfiles/filedetails/?id=2085786712)
|
||||
[![MegaLinter](https://github.com/GenZmeY/KF2-Server-Extension/actions/workflows/mega-linter.yml/badge.svg?branch=master)](https://github.com/GenZmeY/KF2-Server-Extension/actions/workflows/mega-linter.yml)
|
||||
[![Steam Update Date](https://img.shields.io/steam/update-date/2085786712)](https://steamcommunity.com/sharedfiles/filedetails/?id=2085786712)
|
||||
[![GitHub tag (latest by date)](https://img.shields.io/github/v/tag/GenZmeY/KF2-Server-Extension)](https://github.com/GenZmeY/KF2-Server-Extension/tags)
|
||||
[![GitHub top language](https://img.shields.io/github/languages/top/GenZmeY/KF2-Server-Extension)](https://docs.unrealengine.com/udk/Three/WebHome.html)
|
||||
[![GitHub](https://img.shields.io/github/license/GenZmeY/KF2-Server-Extension)](LICENSE)
|
||||
|
||||
[![ServerExt Contributors](https://contrib.rocks/image?repo=GenZmeY/KF2-Server-Extension)](https://github.com/GenZmeY/KF2-Server-Extension/graphs/contributors)
|
||||
|
||||
***
|
||||
|
||||
*This mod replaces current perk system in [Killing Floor 2](https://en.wikipedia.org/wiki/Killing_Floor_2) with a serverside perk progression with RPG elements, which let you buy individual stats and traits.*
|
||||
|
||||
*This is a further development of the ServerExt mutator from [Marco](https://forums.tripwireinteractive.com/index.php?threads/mutator-server-extension-mod.109463) and [Forrest Mark X](https://github.com/ForrestMarkX/KF2-Server-Extension).*
|
||||
|
||||
## Features
|
||||
# Features
|
||||
- RPG elements (traits and stats);
|
||||
- New menu system;
|
||||
- Scoreboard that supports unlimited playercount on server;
|
||||
@ -33,7 +33,7 @@ The full changelog is available on [steam workshop](https://steamcommunity.com/s
|
||||
|
||||
**Note:** If you want to build/test/brew/publish a mutator without git-bash and/or scripts, follow [these instructions](https://tripwireinteractive.atlassian.net/wiki/spaces/KF2SW/pages/26247172/KF2+Code+Modding+How-to) instead of what is described here.
|
||||
|
||||
## Build
|
||||
# Build
|
||||
1. Install [Killing Floor 2](https://store.steampowered.com/app/232090/Killing_Floor_2/), Killing Floor 2 - SDK and [git for windows](https://git-scm.com/download/win);
|
||||
2. open git-bash and go to any folder where you want to store ServerExt sources:
|
||||
`cd <ANY_FOLDER_YOU_WANT>`
|
||||
@ -46,27 +46,43 @@ The full changelog is available on [steam workshop](https://steamcommunity.com/s
|
||||
5. The compiled files will be here:
|
||||
`C:\Users\<USERNAME>\Documents\My Games\KillingFloor2\KFGame\Unpublished\BrewedPC\Script\`
|
||||
|
||||
## Using and configuring ServerExt
|
||||
# Testing
|
||||
Open git-bash in the ServerExt source folder and run command:
|
||||
`./tools/builder -t`
|
||||
(or `./tools/builder -ct` if you haven't compiled the mutator yet)
|
||||
|
||||
A local single-user test will be launched with parameters from `builder.cfg` (edit this file if you want to test mutator with different parameters).
|
||||
|
||||
# Using and configuring ServerExt
|
||||
A detailed manual is available on the [mod page](https://steamcommunity.com/sharedfiles/filedetails/?id=2085786712) in the steam workshop.
|
||||
|
||||
## Contributing
|
||||
# Publication in steam workshop
|
||||
1. Modify the publish files if necessary, they are in the `PublicationContent`:
|
||||
> description.txt
|
||||
> preview.png
|
||||
> tags.txt
|
||||
> title.txt
|
||||
|
||||
2. Run this command in the source folder: `./tools/builder -cbu`
|
||||
|
||||
# Contributing
|
||||
**Participation is welcome!**
|
||||
|
||||
### Bug reports
|
||||
## Bug reports
|
||||
If you find a bug, go to the [issue page](https://github.com/GenZmeY/KF2-Server-Extension/issues) and check if there is a description of your bug. If not, create a new issue.
|
||||
Describe what the bug looks like and how we can reproduce it.
|
||||
Attach screenshots if you think it might help.
|
||||
|
||||
If it's a crash issue, be sure to include the `Launch.log` file. You can find them here:
|
||||
If it's a crash issue, be sure to include the `Launch.log` and `Launch_2.log` files. You can find them here:
|
||||
`C:\Users\<USERNAME>\Documents\My Games\KillingFloor2\KFGame\Logs\`
|
||||
Please note that these files are overwritten every time you start the game/server. Therefore, you must take these files immediately after the game crashes in order not to lose information.
|
||||
|
||||
### Localization
|
||||
## Localization
|
||||
The mutator supports localization and you can help translate it into other languages.
|
||||
It does not require any special knowledge or programming skills, so you just need to know the language into which you will translate.
|
||||
Here's a quick guide on how to do it: [localization guide](https://steamcommunity.com/workshop/filedetails/discussion/2085786712/2942494909176752884)
|
||||
|
||||
### Contribute code
|
||||
## Contribute code
|
||||
You can help improve ServerExt by fixing bugs and adding new features.
|
||||
Before making a pull request, make sure that:
|
||||
1. Your code is working correctly.
|
||||
@ -75,27 +91,10 @@ Before making a pull request, make sure that:
|
||||
In the description of the pull request, describe the changes you made.
|
||||
|
||||
|
||||
## Contributors
|
||||
[![ServerExt Contributors](https://contrib.rocks/image?repo=GenZmeY/KF2-Server-Extension)](https://github.com/GenZmeY/KF2-Server-Extension/graphs/contributors)
|
||||
|
||||
[Marco](https://steamcommunity.com/profiles/76561197975509070)
|
||||
[ForrestMarkX](https://steamcommunity.com/profiles/76561197997881512)
|
||||
[inklesspen](https://steamcommunity.com/profiles/76561198143883210)
|
||||
[GenZmeY](https://steamcommunity.com/profiles/76561198001617867)
|
||||
[secret](https://steamcommunity.com/profiles/76561198042219365)
|
||||
[Scaredkid93](https://steamcommunity.com/profiles/76561198004271210)
|
||||
|
||||
**Translators:**
|
||||
[GenZmeY](https://steamcommunity.com/profiles/76561198001617867) - Russian [RUS];
|
||||
[MilkTeaFox](https://steamcommunity.com/profiles/76561197967822972) - Traditional Chinese [CHT];
|
||||
[あさぴっぴ1020](https://steamcommunity.com/profiles/76561198930643117) - Japanese [JPN];
|
||||
[Jason Voorehes ](https://steamcommunity.com/profiles/76561198080866131) - Spanish [ESN];
|
||||
[小曦曦](https://steamcommunity.com/profiles/76561198200630473) - Simplified Chinese [CHN].
|
||||
|
||||
## License
|
||||
[![license](https://www.gnu.org/graphics/gplv3-with-text-136x68.png)](LICENSE)
|
||||
# License
|
||||
[GNU GPLv3](LICENSE)
|
||||
|
||||
***
|
||||
|
||||
**Note about the banner:**
|
||||
The cat in the picture is [meowbin](https://twitter.com/meawbinneko). And [Cotton Valent](https://twitter.com/horrormove) is the artist who designed and painted this magnificent cat.
|
||||
The cat in the picture is [meowbin](https://www.deviantart.com/cottonvalent/gallery/48815375/creepy-cat). And [Cotton Valent](https://www.deviantart.com/cottonvalent) is the artist who designed and painted this magnificent cat.
|
||||
|
@ -48,7 +48,7 @@ function DoAutoPurchase()
|
||||
PotentialDosh = GetPotentialDosh();
|
||||
bUpgradeSuccess = AttemptUpgrade(PotentialDosh+TotalDosh, OnPerkWeapons);
|
||||
}
|
||||
|
||||
|
||||
bAutoFillPurchasedItem = StartAutoFill();
|
||||
if (DoIOwnThisWeapon(TopTierWeapon))
|
||||
{
|
||||
@ -56,7 +56,7 @@ function DoAutoPurchase()
|
||||
{
|
||||
bSecondaryWeaponPurchased = true;
|
||||
AttemptToPurchaseNextLowerTier(TotalDosh, OnPerkWeapons);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MyKFIM.ServerCloseTraderMenu();
|
||||
@ -73,11 +73,11 @@ function DoAutoPurchase()
|
||||
{
|
||||
AutoFillMessageString = class'KFCommon_LocalizedStrings'.default.AutoFillCompleteString;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
AutoFillMessageString = class'KFCommon_LocalizedStrings'.default.NoItemsPurchasedString;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (MyGFxHUD != none)
|
||||
{
|
||||
@ -89,7 +89,7 @@ function SellOnPerkWeapons()
|
||||
{
|
||||
local int i;
|
||||
local class<KFPerk> Perk;
|
||||
|
||||
|
||||
Perk = GetBasePerk();
|
||||
if (Perk!=None)
|
||||
{
|
||||
@ -108,7 +108,7 @@ function SellOffPerkWeapons()
|
||||
{
|
||||
local int i;
|
||||
local Ext_PerkBase EP;
|
||||
|
||||
|
||||
EP = GetExtPerk();
|
||||
|
||||
for (i = 0; i < OwnedItemList.length; i++)
|
||||
@ -126,8 +126,8 @@ function SellOffPerkWeapons()
|
||||
|
||||
function InitializeOwnedItemList()
|
||||
{
|
||||
local Inventory Inv;
|
||||
local KFWeapon KFW;
|
||||
local Inventory Inv;
|
||||
local KFWeapon KFW;
|
||||
local KFPawn_Human KFP;
|
||||
local Ext_PerkBase EP;
|
||||
|
||||
@ -142,14 +142,14 @@ function InitializeOwnedItemList()
|
||||
// init armor purchase values
|
||||
ArmorItem.SpareAmmoCount = KFP.Armor;
|
||||
ArmorItem.MaxSpareAmmo = KFP.GetMaxArmor();
|
||||
ArmorItem.AmmoPricePerMagazine = TraderItems.ArmorPrice * ActivePerkManager.GetArmorDiscountMod();
|
||||
ArmorItem.DefaultItem.WeaponDef = TraderItems.ArmorDef;
|
||||
ArmorItem.AmmoPricePerMagazine = TraderItems.ArmorPrice * ActivePerkManager.GetArmorDiscountMod();
|
||||
ArmorItem.DefaultItem.WeaponDef = TraderItems.ArmorDef;
|
||||
|
||||
// init grenade purchase values
|
||||
GrenadeItem.SpareAmmoCount = MyKFIM.GrenadeCount;
|
||||
GrenadeItem.MaxSpareAmmo = ActivePerkManager.MaxGrenadeCount;
|
||||
GrenadeItem.AmmoPricePerMagazine = TraderItems.GrenadePrice;
|
||||
GrenadeItem.DefaultItem.WeaponDef = EP.GrenadeWeaponDef;
|
||||
GrenadeItem.AmmoPricePerMagazine = TraderItems.GrenadePrice;
|
||||
GrenadeItem.DefaultItem.WeaponDef = EP.GrenadeWeaponDef;
|
||||
|
||||
// @temp: fill in stuff that is normally serialized in the archetype
|
||||
GrenadeItem.DefaultItem.AssociatedPerkClasses[0] = CurrentPerk.Class;
|
||||
@ -161,12 +161,12 @@ function InitializeOwnedItemList()
|
||||
{
|
||||
// Set the weapon information and add it to the OwnedItemList
|
||||
SetWeaponInformation(KFW);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (MyGfxManager != none && MyGfxManager.TraderMenu != none)
|
||||
{
|
||||
MyGfxManager.TraderMenu.OwnedItemList = OwnedItemList;
|
||||
MyGfxManager.TraderMenu.OwnedItemList = OwnedItemList;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -177,7 +177,7 @@ function int AddItemByPriority(out SItemInformation WeaponInfo)
|
||||
local byte WeaponGroup, WeaponPriority;
|
||||
local byte BestIndex;
|
||||
local class<KFPerk> Perk;
|
||||
|
||||
|
||||
Perk = GetBasePerk();
|
||||
|
||||
BestIndex = 0;
|
||||
@ -217,24 +217,24 @@ function int AddItemByPriority(out SItemInformation WeaponInfo)
|
||||
|
||||
// Add secondary ammo immediately after the main weapon
|
||||
if (WeaponInfo.DefaultItem.WeaponDef.static.UsesSecondaryAmmo())
|
||||
{
|
||||
WeaponInfo.bIsSecondaryAmmo = true;
|
||||
{
|
||||
WeaponInfo.bIsSecondaryAmmo = true;
|
||||
WeaponInfo.SellPrice = 0;
|
||||
OwnedItemList.InsertItem(BestIndex + 1, WeaponInfo);
|
||||
}
|
||||
}
|
||||
|
||||
if (MyGfxManager != none && MyGfxManager.TraderMenu != none)
|
||||
{
|
||||
MyGfxManager.TraderMenu.OwnedItemList = OwnedItemList;
|
||||
MyGfxManager.TraderMenu.OwnedItemList = OwnedItemList;
|
||||
}
|
||||
|
||||
return BestIndex;
|
||||
return BestIndex;
|
||||
}
|
||||
|
||||
function bool CanCarry(const out STraderItem Item, optional int OverrideLevelValue = INDEX_NONE)
|
||||
{
|
||||
local int Result;
|
||||
|
||||
|
||||
Result = TotalBlocks + MyKFIM.GetDisplayedBlocksRequiredfor (Item);
|
||||
if (Result > MaxBlocks)
|
||||
{
|
||||
|
@ -8,7 +8,7 @@ var config int HeadMeshIndex,HeadSkinIndex,BodyMeshIndex,BodySkinIndex,Attachmen
|
||||
final function FMyCustomChar LoadData()
|
||||
{
|
||||
local FMyCustomChar R;
|
||||
|
||||
|
||||
if (HasInit==0)
|
||||
{
|
||||
AttachmentMesh0 = `CLEARED_ATTACHMENT_INDEX;
|
||||
@ -46,5 +46,4 @@ final function SaveData(FMyCustomChar R)
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
|
||||
}
|
@ -5,7 +5,7 @@ class ExtCharacterInfo extends Object
|
||||
static final function Object SafeLoadObject(string S, Class ObjClass)
|
||||
{
|
||||
local Object O;
|
||||
|
||||
|
||||
O = FindObject(S,ObjClass);
|
||||
return O!=None ? O : DynamicLoadObject(S,ObjClass);
|
||||
}
|
||||
@ -46,7 +46,7 @@ static function InitCharacterMICs(KFCharacterInfo_Human C, KFPawn P, optional bo
|
||||
{
|
||||
P.CharacterMICs.AddItem(P.ThirdPersonAttachments[i].CreateAndSetMaterialInstanceConstant(0));
|
||||
}
|
||||
|
||||
|
||||
if (P.FirstPersonAttachments[i] != none)
|
||||
{
|
||||
P.CharacterMICs.AddItem(P.FirstPersonAttachments[i].CreateAndSetMaterialInstanceConstant(0));
|
||||
@ -64,7 +64,7 @@ static final function SetCharacterMeshFromArch(KFCharacterInfo_Human C, KFPawn K
|
||||
if (KFPRI == none)
|
||||
{
|
||||
`Warn("Does not have a KFPRI" @ C);
|
||||
return;
|
||||
return;
|
||||
}
|
||||
EPRI = ExtPlayerReplicationInfo(KFPRI);
|
||||
bCustom = (EPRI!=None ? EPRI.UsesCustomChar() : false);
|
||||
@ -86,7 +86,7 @@ static final function SetCharacterMeshFromArch(KFCharacterInfo_Human C, KFPawn K
|
||||
// skip dedicated for purely cosmetic stuff
|
||||
if (KFP.WorldInfo.NetMode != NM_DedicatedServer)
|
||||
{
|
||||
// Must clear all attachments before trying to attach new ones,
|
||||
// Must clear all attachments before trying to attach new ones,
|
||||
// otherwise we might accidentally remove things we're not supposed to
|
||||
for (AttachmentIdx=0; AttachmentIdx < `MAX_COSMETIC_ATTACHMENTS; AttachmentIdx++)
|
||||
{
|
||||
@ -136,7 +136,7 @@ static final function SetBodyMeshAndSkin(KFCharacterInfo_Human C,
|
||||
{
|
||||
// Assign a skin to the body mesh as a material override
|
||||
CurrentBodyMeshIndex = (CurrentBodyMeshIndex < C.BodyVariants.length) ? CurrentBodyMeshIndex : 0;
|
||||
|
||||
|
||||
if (KFPRI.StartLoadCosmeticContent(C, ECOSMETICTYPE_Body, CurrentBodyMeshIndex))
|
||||
{
|
||||
return;
|
||||
@ -224,7 +224,7 @@ static final function SetHeadMeshAndSkin(KFCharacterInfo_Human C,
|
||||
if (C.HeadVariants.length > 0)
|
||||
{
|
||||
CurrentHeadMeshIndex = (CurrentHeadMeshIndex < C.HeadVariants.length) ? CurrentHeadMeshIndex : 0;
|
||||
|
||||
|
||||
if (KFPRI.StartLoadCosmeticContent(C, ECOSMETICTYPE_Head, CurrentHeadMeshIndex))
|
||||
{
|
||||
return;
|
||||
@ -332,7 +332,7 @@ static final function SetAttachmentMeshAndSkin(KFCharacterInfo_Human C,
|
||||
//DetachConflictingAttachments(CurrentAttachmentMeshIndex, KFP, KFPRI);
|
||||
// Get a slot where this attachment could fit
|
||||
AttachmentSlotIndex = GetAttachmentSlotIndex(C, CurrentAttachmentMeshIndex, KFP, KFPRI);
|
||||
|
||||
|
||||
if (AttachmentSlotIndex == INDEX_NONE)
|
||||
{
|
||||
return;
|
||||
@ -341,13 +341,13 @@ static final function SetAttachmentMeshAndSkin(KFCharacterInfo_Human C,
|
||||
// Since cosmetic attachments are optional, do not choose index 0 if none is
|
||||
// specified unlike the the head and body meshes
|
||||
if (C.CosmeticVariants.Length > 0 &&
|
||||
CurrentAttachmentMeshIndex < C.CosmeticVariants.Length)
|
||||
CurrentAttachmentMeshIndex < C.CosmeticVariants.Length)
|
||||
{
|
||||
if (KFPRI.StartLoadCosmeticContent(C, ECOSMETICTYPE_Attachment, CurrentAttachmentMeshIndex))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// Cache values from character info
|
||||
CharAttachmentMeshName = bIsFirstPerson ? C.Get1pMeshByIndex(CurrentAttachmentMeshIndex) : C.GetMeshByIndex(CurrentAttachmentMeshIndex);
|
||||
CharAttachmentSocketName = bIsFirstPerson ? C.CosmeticVariants[CurrentAttachmentMeshIndex].AttachmentItem.SocketName1p : C.CosmeticVariants[CurrentAttachmentMeshIndex].AttachmentItem.SocketName;
|
||||
@ -517,8 +517,8 @@ static final function SetAttachmentMesh(KFCharacterInfo_Human C, int CurrentAtta
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes any attachments that exist in the same socket or have overriding cases
|
||||
* Network: Local Player
|
||||
* Removes any attachments that exist in the same socket or have overriding cases
|
||||
* Network: Local Player
|
||||
*/
|
||||
static final function DetachConflictingAttachments(KFCharacterInfo_Human C, int NewAttachmentMeshIndex, KFPawn KFP, optional KFPlayerReplicationInfo KFPRI, optional out array<int> out_RemovedAttachments)
|
||||
{
|
||||
@ -531,7 +531,7 @@ static final function DetachConflictingAttachments(KFCharacterInfo_Human C, int
|
||||
return;
|
||||
|
||||
if (C.CosmeticVariants.length > 0 &&
|
||||
NewAttachmentMeshIndex < C.CosmeticVariants.length)
|
||||
NewAttachmentMeshIndex < C.CosmeticVariants.length)
|
||||
{
|
||||
// The socket that this attachment requires
|
||||
NewAttachmentSocketName = C.CosmeticVariants[NewAttachmentMeshIndex].AttachmentItem.SocketName;
|
||||
@ -546,7 +546,7 @@ static final function DetachConflictingAttachments(KFCharacterInfo_Human C, int
|
||||
if (KFP.ThirdPersonAttachmentSocketNames[i] != '' &&
|
||||
KFP.ThirdPersonAttachmentSocketNames[i] == NewAttachmentSocketName)
|
||||
{
|
||||
C.RemoveAttachmentMeshAndSkin(i, KFP, KFPRI);
|
||||
C.RemoveAttachmentMeshAndSkin(i, KFP, KFPRI);
|
||||
out_RemovedAttachments.AddItem(i);
|
||||
continue;
|
||||
}
|
||||
@ -580,19 +580,19 @@ static final function SetFirstPersonArmsFromArch(KFCharacterInfo_Human C, KFPawn
|
||||
if (KFPRI == none)
|
||||
{
|
||||
`Warn("Does not have a KFPRI" @ C);
|
||||
return;
|
||||
return;
|
||||
}
|
||||
EPRI = ExtPlayerReplicationInfo(KFPRI);
|
||||
bCustom = (EPRI!=None ? EPRI.UsesCustomChar() : false);
|
||||
|
||||
// First person arms mesh and skin are based on body mesh & skin.
|
||||
// First person arms mesh and skin are based on body mesh & skin.
|
||||
// Index of 255 implies use index 0 (default).
|
||||
C.SetArmsMeshAndSkin(
|
||||
bCustom ? EPRI.CustomCharacter.BodyMeshIndex : KFPRI.RepCustomizationInfo.BodyMeshIndex,
|
||||
bCustom ? EPRI.CustomCharacter.BodySkinIndex : KFPRI.RepCustomizationInfo.BodySkinIndex,
|
||||
KFP,
|
||||
KFPRI);
|
||||
|
||||
|
||||
for (AttachmentIdx = 0; AttachmentIdx < `MAX_COSMETIC_ATTACHMENTS; AttachmentIdx++)
|
||||
{
|
||||
CosmeticMeshIdx = bCustom ? EPRI.CustomCharacter.AttachmentMeshIndices[AttachmentIdx] : KFPRI.RepCustomizationInfo.AttachmentMeshIndices[AttachmentIdx];
|
||||
@ -623,10 +623,10 @@ static function int GetAttachmentSlotIndex(
|
||||
`warn("GetAttachmentSlotIndex - NO KFPRI");
|
||||
return INDEX_NONE;
|
||||
}
|
||||
|
||||
|
||||
EPRI = ExtPlayerReplicationInfo(KFPRI);
|
||||
bCustom = (EPRI!=None ? EPRI.UsesCustomChar() : false);
|
||||
|
||||
|
||||
// Return the next available attachment index or the index that matches this mesh
|
||||
for (AttachmentIdx = 0; AttachmentIdx < `MAX_COSMETIC_ATTACHMENTS; AttachmentIdx++)
|
||||
{
|
||||
@ -647,4 +647,4 @@ static function bool IsAttachmentAvailable(KFCharacterInfo_Human C, const out At
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
@ -8,16 +8,16 @@ static final function name GetUnlockedEmote(int ItemId, ExtPlayerController PC)
|
||||
local int i;
|
||||
local name Anim;
|
||||
local ExtPlayerReplicationInfo PRI;
|
||||
|
||||
|
||||
i = default.Emotes.Find('Id', ItemId);
|
||||
if (i > -1)
|
||||
{
|
||||
Anim = default.Emotes[i].AnimName;
|
||||
PRI = ExtPlayerReplicationInfo(PC.PlayerReplicationInfo);
|
||||
|
||||
|
||||
if (PRI == None)
|
||||
return Anim;
|
||||
|
||||
|
||||
else return Anim;
|
||||
}
|
||||
|
||||
@ -28,7 +28,7 @@ static final function SaveEquippedEmote(int ItemId, ExtPlayerController PC)
|
||||
{
|
||||
if (PC == None)
|
||||
return;
|
||||
|
||||
|
||||
PC.SelectedEmoteIndex = ItemId;
|
||||
PC.SaveConfig();
|
||||
}
|
||||
@ -52,7 +52,7 @@ static final function int GetEquippedEmoteId(ExtPlayerController PC)
|
||||
{
|
||||
if (PC == None)
|
||||
return -1;
|
||||
|
||||
|
||||
return PC.SelectedEmoteIndex;
|
||||
}
|
||||
|
||||
|
@ -7,5 +7,4 @@ protected function SpecialCringeEffectsfor (Actor Victim, float VictimDist)
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
|
||||
}
|
@ -4,10 +4,10 @@ function InitMenu()
|
||||
{
|
||||
local byte i;
|
||||
local KFGUI_Button B;
|
||||
|
||||
|
||||
PageSwitcher = KFGUI_SwitchMenuBar(FindComponentID('Pager'));
|
||||
Super(KFGUI_Page).InitMenu();
|
||||
|
||||
|
||||
for (i=0; i<Pages.Length; ++i)
|
||||
{
|
||||
PageSwitcher.AddPage(Pages[i],B).InitMenu();
|
||||
@ -23,9 +23,9 @@ function PreDraw()
|
||||
{
|
||||
local GameViewportClient Viewport;
|
||||
local ExtMoviePlayer_Manager MovieManager;
|
||||
|
||||
|
||||
Super.PreDraw();
|
||||
|
||||
|
||||
Viewport = LocalPlayer(GetPlayer().Player).ViewportClient;
|
||||
MovieManager = ExtMoviePlayer_Manager(KFPlayerController(GetPlayer()).MyGFxManager);
|
||||
if (CaptureMouse())
|
||||
@ -39,7 +39,7 @@ function PreDraw()
|
||||
{
|
||||
Viewport.bDisplayHardwareMouseCursor = false;
|
||||
Viewport.ForceUpdateMouseCursor(true);
|
||||
|
||||
|
||||
MovieManager.SetMovieCanReceiveInput(true);
|
||||
}
|
||||
}
|
||||
@ -52,7 +52,7 @@ defaultproperties
|
||||
XPosition=0.01
|
||||
XSize=0.73
|
||||
YSize=0.73
|
||||
|
||||
|
||||
Pages.Empty
|
||||
Pages.Add(Class'UIP_PerkSelectionLobby')
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
class ExtHUD_ObjectiveConatiner extends KFGFxHUD_ObjectiveConatiner;
|
||||
|
||||
simulated function SetActive(bool bActive)
|
||||
{
|
||||
if (bActive)
|
||||
{
|
||||
Super.SetActive(bActive);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetVisible(bActive);
|
||||
CurrentObjectiveInterface = none;
|
||||
|
||||
// Fix:
|
||||
// ScriptWarning: Accessed None
|
||||
// KFGFxHUD_ObjectiveConatiner Transient.ExtMoviePlayer_HUD_0:KFGFxHUD_ObjectiveConatiner_0
|
||||
// Function KFGame.KFGFxHUD_ObjectiveConatiner:SetActive:01D9
|
||||
if (GetObject("objectiveNumberMC") != None)
|
||||
{
|
||||
GetObject("objectiveNumberMC").SetVisible(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
|
||||
}
|
@ -14,7 +14,7 @@ function UpdateGrenades()
|
||||
if (ExtPlayerController(MyKFPC)!=None)
|
||||
{
|
||||
PM = ExtPlayerController(MyKFPC).ActivePerkManager;
|
||||
|
||||
|
||||
if (PM!=None && PM.CurrentPerk!=None && EPerkClass!=PM.CurrentPerk.Class)
|
||||
{
|
||||
SetString("backpackGrenadeType", "img://"$PM.CurrentPerk.GrenadeWeaponDef.Static.GetImagePath());
|
||||
@ -31,5 +31,4 @@ function UpdateGrenades()
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
|
||||
}
|
@ -22,16 +22,16 @@ function UpdatePerk()
|
||||
CurrentPerk = ExPC.ActivePerkManager.CurrentPerk;
|
||||
CurrentPerkLevel = CurrentPerk.CurrentLevel;
|
||||
CurrentPerkEXP = CurrentPerk.CurrentEXP;
|
||||
|
||||
|
||||
// Update the perk class.
|
||||
if ((ExLastPerkClass != CurrentPerk.Class) || (LastPerkLevel != CurrentPerkLevel))
|
||||
{
|
||||
CurPerkPath = CurrentPerk.GetPerkIconPath(CurrentPerkLevel);
|
||||
|
||||
|
||||
PerkIconObject = CreateObject("Object");
|
||||
PerkIconObject.SetString("perkIcon", CurPerkPath);
|
||||
SetObject("playerPerkIcon", PerkIconObject);
|
||||
|
||||
|
||||
SetInt("playerPerkXPPercent", CurrentPerk.GetProgressPercent() * 100.f);
|
||||
if (LastPerkLevel != CurrentPerkLevel && ExLastPerkClass==CurrentPerk.Class)
|
||||
{
|
||||
|
@ -19,10 +19,10 @@ function UpdatePlayerInfo(optional bool bForceUpdate)
|
||||
{
|
||||
local GFxObject TempObject;
|
||||
local ExtPlayerReplicationInfo E;
|
||||
|
||||
|
||||
if (SpectatedKFPRI == None)
|
||||
return;
|
||||
|
||||
|
||||
E = ExtPlayerReplicationInfo(SpectatedKFPRI);
|
||||
|
||||
if (LastPerkLevel != E.ECurrentPerkLevel || LastPerkLevel != E.ECurrentPerkLevel || bForceUpdate)
|
||||
@ -44,5 +44,4 @@ function UpdatePlayerInfo(optional bool bForceUpdate)
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
|
||||
}
|
||||
|
@ -57,7 +57,7 @@ simulated function SetWeaponGroupList(out array<KFWeapon> WeaponList, byte Group
|
||||
TempObj.SetString("weaponName", WeaponGroup[i].static.GetItemLocalization("ItemName"));
|
||||
TempObj.SetString("texturePath", "img://"$WeaponGroup[i].static.GetImagePath());
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
TempObj.SetString("weaponName", WeaponList[i].ItemName);
|
||||
TempObj.SetString("texturePath", "img://"$PathName(WeaponList[i].WeaponSelectTexture));
|
||||
@ -88,5 +88,4 @@ simulated function SetWeaponGroupList(out array<KFWeapon> WeaponList, byte Group
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
|
||||
}
|
@ -79,10 +79,10 @@ simulated function bool Died(Controller Killer, class<DamageType> damageType, ve
|
||||
if (Controller != None)
|
||||
WorldInfo.Game.Killed(Killer, Controller, self, damageType);
|
||||
else WorldInfo.Game.Killed(Killer, Controller(Owner), self, damageType);
|
||||
|
||||
|
||||
if (InvManager != None)
|
||||
InvManager.OwnerDied();
|
||||
|
||||
|
||||
Health = 1;
|
||||
if (!bFeigningDeath)
|
||||
PlayFeignDeath(true,,true);
|
||||
@ -124,10 +124,10 @@ event bool HealDamage(int Amount, Controller Healer, class<DamageType> DamageTyp
|
||||
|
||||
InstigatorPC = ExtPlayerController(Healer);
|
||||
InstigatorPerk = InstigatorPC.GetPerk();
|
||||
|
||||
|
||||
if (InstigatorPerk != None && bCanRepairArmor)
|
||||
bRepairedArmor = InstigatorPC.GetPerk().RepairArmor(self);
|
||||
|
||||
|
||||
EPRI = ExtPlayerReplicationInfo(InstigatorPC.PlayerReplicationInfo);
|
||||
if (EPRI != none)
|
||||
{
|
||||
@ -432,7 +432,7 @@ simulated function PlayFeignDeath(bool bEnable, optional bool bForce, optional b
|
||||
}
|
||||
WeaponAttachmentTemplate = None;
|
||||
WeaponAttachmentChanged();
|
||||
|
||||
|
||||
bPlayingFeignDeathRecovery = false;
|
||||
ClearTimer('OnWakeUpFinished');
|
||||
if (!bTransformMode)
|
||||
@ -452,21 +452,21 @@ simulated function PlayFeignDeath(bool bEnable, optional bool bForce, optional b
|
||||
|
||||
// Move into post so that we are hitting physics from last frame, rather than animated from this
|
||||
SetTickGroup(TG_PostAsyncWork);
|
||||
|
||||
|
||||
// Turn collision on for skelmeshcomp and off for cylinder
|
||||
CylinderComponent.SetActorCollision(false, false);
|
||||
Mesh.SetActorCollision(true, true);
|
||||
Mesh.SetTraceBlocking(true, true);
|
||||
|
||||
Mesh.SetHasPhysicsAssetInstance(false);
|
||||
|
||||
|
||||
if (!InitRagdoll()) // Ragdoll error!
|
||||
{
|
||||
if (PlayerController(Controller)!=None)
|
||||
PlayerController(Controller).ClientMessage("Error: InitRagdoll() failed!");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// Ensure we are always updating kinematic
|
||||
Mesh.MinDistFactorForKinematicUpdate = 0.0;
|
||||
|
||||
@ -516,7 +516,7 @@ simulated function PlayFeignDeath(bool bEnable, optional bool bForce, optional b
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
PreRagdollCollisionComponent = None;
|
||||
|
||||
// Calculate how far we just moved the actor up.
|
||||
@ -530,7 +530,7 @@ simulated function PlayFeignDeath(bool bEnable, optional bool bForce, optional b
|
||||
UnfeignFailedCount = 0;
|
||||
|
||||
bPlayingFeignDeathRecovery = true;
|
||||
|
||||
|
||||
// Reset collision.
|
||||
Mesh.SetActorCollision(true, false);
|
||||
Mesh.SetTraceBlocking(true, false);
|
||||
@ -545,7 +545,7 @@ simulated function PlayFeignDeath(bool bEnable, optional bool bForce, optional b
|
||||
|
||||
// physics weight interpolated to 0 in C++, then StartFeignDeathRecoveryAnim() is called
|
||||
Mesh.PhysicsWeight = 1.0;
|
||||
|
||||
|
||||
// force rotation to match the body's direction so the blend to the getup animation looks more natural
|
||||
NewRotation = Rotation;
|
||||
NewRotation.Yaw = rotator(Mesh.GetBoneAxis(HeadBoneName, AXIS_X)).Yaw;
|
||||
@ -558,13 +558,13 @@ simulated function PlayFeignDeath(bool bEnable, optional bool bForce, optional b
|
||||
FeignRecoverAnim = 'Getup_B_V1';
|
||||
}
|
||||
else FeignRecoverAnim = 'Getup_F_V1';
|
||||
|
||||
|
||||
// Init wakeup anim.
|
||||
if (Mesh.AnimSets.Find(WakeUpAnimSet)==-1)
|
||||
Mesh.AnimSets.AddItem(WakeUpAnimSet);
|
||||
BodyStanceNodes[EAS_FullBody].bNoNotifies = true;
|
||||
BodyStanceNodes[EAS_FullBody].PlayCustomAnim(FeignRecoverAnim,0.025f,,,,true);
|
||||
|
||||
|
||||
SetRotation(NewRotation);
|
||||
}
|
||||
}
|
||||
@ -573,7 +573,7 @@ final function vector PickNearestNode()
|
||||
{
|
||||
local NavigationPoint N,Best;
|
||||
local float Dist,BestDist;
|
||||
|
||||
|
||||
foreach WorldInfo.AllNavigationPoints(class'NavigationPoint',N)
|
||||
{
|
||||
Dist = VSizeSq(N.Location-Location);
|
||||
@ -674,7 +674,7 @@ simulated function PlayRagdollDeath(class<DamageType> DamageType, vector HitLoc)
|
||||
bFPLegsAttached = false;
|
||||
DetachComponent(FPBodyMesh);
|
||||
}
|
||||
|
||||
|
||||
// Ensure we are always updating kinematic
|
||||
Mesh.MinDistFactorForKinematicUpdate = 0.0;
|
||||
|
||||
@ -935,7 +935,7 @@ ignores FaceRotation, SetMovementPhysics;
|
||||
{
|
||||
bNoWeaponFiring = default.bNoWeaponFiring;
|
||||
bCanPickupInventory = default.bCanPickupInventory;
|
||||
|
||||
|
||||
UTWeap = KFWeapon(Weapon);
|
||||
if (UTWeap != None)
|
||||
{
|
||||
@ -952,7 +952,7 @@ ignores FaceRotation, SetMovementPhysics;
|
||||
else if (Controller!=None)
|
||||
Controller.ReplicatedEvent('EndRagdollMove');
|
||||
}
|
||||
|
||||
|
||||
Global.WeaponAttachmentChanged();
|
||||
}
|
||||
}
|
||||
@ -1027,11 +1027,11 @@ simulated final function InitFPLegs()
|
||||
local int i;
|
||||
|
||||
bFPLegsInit = true;
|
||||
|
||||
|
||||
FPBodyMesh.AnimSets = CharacterArch.AnimSets;
|
||||
FPBodyMesh.SetAnimTreeTemplate(CharacterArch.AnimTreeTemplate);
|
||||
FPBodyMesh.SetSkeletalMesh(Mesh.SkeletalMesh);
|
||||
|
||||
|
||||
FPBodyMesh.SetActorCollision(false, false);
|
||||
FPBodyMesh.SetNotifyRigidBodyCollision(false);
|
||||
FPBodyMesh.SetTraceBlocking(false, false);
|
||||
@ -1067,7 +1067,7 @@ simulated final function UpdateFPLegs()
|
||||
{
|
||||
bFPLegsAttached = true;
|
||||
AttachComponent(FPBodyMesh);
|
||||
|
||||
|
||||
if (!bFPLegsInit && CharacterArch!=None)
|
||||
InitFPLegs();
|
||||
}
|
||||
@ -1106,12 +1106,12 @@ simulated final function SetBackpackWeapon(class<KFWeapon> WC)
|
||||
{
|
||||
AttachedBackItem.SetMaterial(i, WC.Default.AttachmentArchetype.SkelMesh.Materials[i]);
|
||||
}
|
||||
|
||||
|
||||
Mesh.DetachComponent(AttachedBackItem);
|
||||
|
||||
|
||||
MyCharacter = KFPlayerReplicationInfo(PlayerReplicationInfo).CharacterArchetypes[KFPlayerReplicationInfo(PlayerReplicationInfo).RepCustomizationInfo.CharacterIndex];
|
||||
WM = WC.Default.AttachmentArchetype.SkelMesh.Name;
|
||||
|
||||
|
||||
if (ClassIsChildOf(WC, class'KFWeap_Edged_Knife'))
|
||||
{
|
||||
MyPos = vect(0,0,10);
|
||||
@ -1129,10 +1129,10 @@ simulated final function SetBackpackWeapon(class<KFWeapon> WC)
|
||||
{
|
||||
MyPos = vect(-5,15,0);
|
||||
MyRot = rot(0,0,0);
|
||||
|
||||
|
||||
if (class<KFWeap_Edged_Katana>(WC) != none || class<KFWeap_Edged_Zweihander>(WC) != none)
|
||||
MyPos.Z = -20;
|
||||
|
||||
|
||||
B = 'Spine';
|
||||
}
|
||||
else
|
||||
@ -1142,7 +1142,7 @@ simulated final function SetBackpackWeapon(class<KFWeapon> WC)
|
||||
|
||||
if (MyCharacter == KFCharacterInfo_Human'CHR_Playable_ARCH.chr_DJSkully_archetype')
|
||||
MyRot.Roll = 8192;
|
||||
|
||||
|
||||
switch (WM)
|
||||
{
|
||||
case 'Wep_3rdP_MB500_Rig':
|
||||
@ -1159,7 +1159,7 @@ simulated final function SetBackpackWeapon(class<KFWeapon> WC)
|
||||
MyPos.X = 10;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
B = 'Spine2';
|
||||
}
|
||||
|
||||
@ -1211,14 +1211,14 @@ simulated function PlayWeaponswitch (Weapon OldWeapon, Weapon NewWeapon)
|
||||
simulated function UpdateHealingSpeedBoostMod(ExtPlayerController Healer)
|
||||
{
|
||||
local Ext_PerkFieldMedic MedPerk;
|
||||
|
||||
|
||||
MedPerk = GetMedicPerk(Healer);
|
||||
if (MedPerk == None)
|
||||
return;
|
||||
|
||||
|
||||
HealingSpeedBoostMod = Min(HealingSpeedBoostMod + MedPerk.GetHealingSpeedBoost(), MedPerk.GetMaxHealingSpeedBoost());
|
||||
SetTimer(MedPerk.GetHealingSpeedBoostDuration(),, nameOf(ResetHealingSpeedBoost));
|
||||
|
||||
|
||||
UpdateGroundSpeed();
|
||||
}
|
||||
|
||||
@ -1239,11 +1239,11 @@ simulated function ResetHealingSpeedBoost()
|
||||
simulated function UpdateHealingDamageBoostMod(ExtPlayerController Healer)
|
||||
{
|
||||
local Ext_PerkFieldMedic MedPerk;
|
||||
|
||||
|
||||
MedPerk = GetMedicPerk(Healer);
|
||||
if (MedPerk == None)
|
||||
return;
|
||||
|
||||
|
||||
HealingDamageBoostMod = Min(HealingDamageBoostMod + MedPerk.GetHealingDamageBoost(), MedPerk.GetMaxHealingDamageBoost());
|
||||
SetTimer(MedPerk.GetHealingDamageBoostDuration(),, nameOf(ResetHealingDamageBoost));
|
||||
}
|
||||
@ -1263,11 +1263,11 @@ simulated function ResetHealingDamageBoost()
|
||||
simulated function UpdateHealingShieldMod(ExtPlayerController Healer)
|
||||
{
|
||||
local Ext_PerkFieldMedic MedPerk;
|
||||
|
||||
|
||||
MedPerk = GetMedicPerk(Healer);
|
||||
if (MedPerk == None)
|
||||
return;
|
||||
|
||||
|
||||
HealingShieldMod = Min(HealingShieldMod + MedPerk.GetHealingShield(), MedPerk.GetMaxHealingShield());
|
||||
SetTimer(MedPerk.GetHealingShieldDuration(),, nameOf(ResetHealingShield));
|
||||
}
|
||||
@ -1287,9 +1287,9 @@ simulated function ResetHealingShield()
|
||||
function SacrificeExplode()
|
||||
{
|
||||
local Ext_PerkDemolition DemoPerk;
|
||||
|
||||
|
||||
Super.SacrificeExplode();
|
||||
|
||||
|
||||
DemoPerk = Ext_PerkDemolition(ExtPlayerController(Controller).ActivePerkManager.CurrentPerk);
|
||||
if (DemoPerk != none)
|
||||
DemoPerk.bUsedSacrifice = true;
|
||||
@ -1298,23 +1298,23 @@ function SacrificeExplode()
|
||||
simulated function Ext_PerkFieldMedic GetMedicPerk(ExtPlayerController Healer)
|
||||
{
|
||||
local Ext_PerkFieldMedic MedPerk;
|
||||
|
||||
|
||||
MedPerk = Ext_PerkFieldMedic(ExtPlayerController(Controller).ActivePerkManager.CurrentPerk);
|
||||
if (MedPerk != None)
|
||||
if (MedPerk != None)
|
||||
return MedPerk;
|
||||
|
||||
|
||||
return None;
|
||||
}
|
||||
|
||||
function ThrowActiveWeapon(optional bool bDestroyWeap)
|
||||
{
|
||||
local KFWeapon TempWeapon;
|
||||
|
||||
|
||||
if( Role < ROLE_Authority )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (Health <= 0 && bThrowAllWeaponsOnDeath)
|
||||
{
|
||||
if (InvManager != none)
|
||||
@ -1337,11 +1337,11 @@ defaultproperties
|
||||
bCanBecomeRagdoll=true
|
||||
InventoryManagerClass=class'ExtInventoryManager'
|
||||
WakeUpAnimSet=AnimSet'ZED_Clot_Anim.Alpha_Clot_Master'
|
||||
|
||||
|
||||
Begin Object Name=SpecialMoveHandler_0
|
||||
SpecialMoveClasses(SM_Emote)=class'ServerExt.ExtSM_Player_Emote'
|
||||
End Object
|
||||
|
||||
|
||||
DefaultInventory.Empty()
|
||||
DefaultInventory.Add(class'ExtWeap_Pistol_9mm')
|
||||
// DefaultInventory.Add(class'KFWeap_Pistol_9mm')
|
||||
|
@ -25,10 +25,10 @@ simulated function Inventory CreateInventory(class<Inventory> NewInventoryItemCl
|
||||
{
|
||||
local KFWeapon Wep;
|
||||
local Inventory SupClass;
|
||||
|
||||
|
||||
SupClass = Super.CreateInventory(NewInventoryItemClass, bDoNotActivate);
|
||||
Wep = KFWeapon(SupClass);
|
||||
|
||||
|
||||
if (Wep != none)
|
||||
{
|
||||
if (KFWeap_Pistol_Dual9mm(Wep) != None && ExtWeap_Pistol_Dual9mm(Wep) == None)
|
||||
@ -36,17 +36,17 @@ simulated function Inventory CreateInventory(class<Inventory> NewInventoryItemCl
|
||||
Wep.Destroy();
|
||||
return Super.CreateInventory(class'ExtWeap_Pistol_Dual9mm', bDoNotActivate);
|
||||
}
|
||||
|
||||
|
||||
return Wep;
|
||||
}
|
||||
|
||||
|
||||
return SupClass;
|
||||
}
|
||||
|
||||
simulated function CheckForExcessRemoval(KFWeapon NewWeap)
|
||||
{
|
||||
local Inventory RemoveInv, Inv;
|
||||
|
||||
|
||||
if (KFWeap_Pistol_Dual9mm(NewWeap) != None)
|
||||
{
|
||||
for (Inv = InventoryChain; Inv != None; Inv = Inv.Inventory)
|
||||
@ -59,6 +59,6 @@ simulated function CheckForExcessRemoval(KFWeapon NewWeap)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Super.CheckForExcessRemoval(NewWeap);
|
||||
}
|
@ -23,7 +23,7 @@ function InitializeMenu(KFGFxMoviePlayer_Manager InManager)
|
||||
function InitCharacterMenu()
|
||||
{
|
||||
ExtPRI = ExtPlayerReplicationInfo(GetPC().PlayerReplicationInfo);
|
||||
|
||||
|
||||
if (ExtPRI!=None && ExtPRI.bClientInitChars)
|
||||
CharListRecieved();
|
||||
else if (ExtPRI==None)
|
||||
@ -43,7 +43,7 @@ function InitCharacterMenu()
|
||||
}
|
||||
|
||||
event bool WidgetInitialized(name WidgetName, name WidgetPath, GFxObject Widget)
|
||||
{
|
||||
{
|
||||
switch (WidgetName)
|
||||
{
|
||||
case 'perkSelectionContainer':
|
||||
@ -65,9 +65,9 @@ function OnOpen()
|
||||
PC = GetPC();
|
||||
if (PC == none)
|
||||
return;
|
||||
|
||||
|
||||
CheckForCustomizationPawn(PC);
|
||||
|
||||
|
||||
if (PC.PlayerReplicationInfo.bReadyToPlay && PC.WorldInfo.GRI.bMatchHasBegun)
|
||||
{
|
||||
// Players cannot change characters if they are in a game
|
||||
@ -87,7 +87,7 @@ function CheckForCustomizationPawn(PlayerController PC)
|
||||
{
|
||||
KFPC.SpawnMidGameCustomizationPawn();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function LocalizeText()
|
||||
@ -114,7 +114,7 @@ function LocalizeText()
|
||||
|
||||
simulated function CharListRecieved()
|
||||
{
|
||||
UpdateCharacterList();
|
||||
UpdateCharacterList();
|
||||
UpdateGear();
|
||||
}
|
||||
|
||||
@ -145,7 +145,7 @@ function UpdateEmoteList()
|
||||
//`log(MyKFPRI.EmoteList[i] @ "is not purchased.");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
SetObject("emoteArray", DataProvider);
|
||||
}
|
||||
|
||||
@ -183,7 +183,7 @@ function UpdateCharacterList()
|
||||
ItemIndex++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
SetObject("characterArray", DataProvider);
|
||||
}
|
||||
|
||||
@ -202,7 +202,7 @@ function UpdateGear()
|
||||
UpdateMeshList(class'KFGFxMenu_Gear'.Default.HeadMeshKey, class'KFGFxMenu_Gear'.Default.HeadSkinKey, CurrentCharInfo.HeadVariants, "headsArray");
|
||||
// Set the list of usable attachments for this character
|
||||
UpdateAttachmentsList(CurrentCharInfo.CosmeticVariants);
|
||||
|
||||
|
||||
UpdateEmoteList();
|
||||
|
||||
SetCurrentCharacterButtons();
|
||||
@ -216,7 +216,7 @@ final function string GetMenuName(Object Obj)
|
||||
final function string GetMenuNameStr(string ObjName)
|
||||
{
|
||||
local int i;
|
||||
|
||||
|
||||
i = InStr(ObjName,".",true);
|
||||
if (i!=-1)
|
||||
ObjName = Mid(ObjName,i+1);
|
||||
@ -230,20 +230,20 @@ function UpdateMeshList(string OutfitKey, string SkinKey, array<OutfitVariants>
|
||||
local string TexturePath, OutfitName;
|
||||
local OutfitVariants Outfit;
|
||||
local SkinVariant FirstSkin;
|
||||
|
||||
|
||||
ItemIndex = 0;
|
||||
DataProvider = CreateArray();
|
||||
for (i = 0; i < Outfits.Length; i++)
|
||||
{
|
||||
Outfit = Outfits[i];
|
||||
|
||||
|
||||
OutfitName = Localize(CharInfoPath, OutfitKey$i, class'KFGFxMenu_Gear'.Default.KFCharacterInfoString);
|
||||
if (bIsCustomChar)
|
||||
OutfitName = GetMenuNameStr(Outfit.MeshName);
|
||||
|
||||
|
||||
if (InStr(OutfitName, "?INT?") != -1)
|
||||
continue;
|
||||
|
||||
|
||||
SlotObject = CreateObject("Object");
|
||||
SlotObject.SetInt("ItemIndex", i);
|
||||
SlotObject.SetString("label", OutfitName);
|
||||
@ -251,14 +251,14 @@ function UpdateMeshList(string OutfitKey, string SkinKey, array<OutfitVariants>
|
||||
FirstSkin = UpdateOutfitVariants(OutfitKey, SkinKey, Outfit.SkinVariations, i, SlotObject);
|
||||
if (string(FirstSkin.UITexture) == "Bad")
|
||||
continue;
|
||||
|
||||
|
||||
TexturePath = "img://"$PathName(FirstSkin.UITexture);
|
||||
SlotObject.SetString("source", TexturePath);
|
||||
|
||||
DataProvider.SetElementObject(ItemIndex, SlotObject);
|
||||
ItemIndex++;
|
||||
}
|
||||
|
||||
|
||||
SetObject(DataArrayString, DataProvider);
|
||||
}
|
||||
|
||||
@ -274,7 +274,7 @@ function SkinVariant UpdateOutfitVariants(string OutfitKey, string KeyName, out
|
||||
|
||||
ItemIndex = 0;
|
||||
DataProvider = CreateArray();
|
||||
SectionPath = CharInfoPath$"."$OutfitKey$OutfitIndex;
|
||||
SectionPath = CharInfoPath$"."$OutfitKey$OutfitIndex;
|
||||
|
||||
for (i = 0; i < SkinVariations.length; i++)
|
||||
{
|
||||
@ -308,7 +308,7 @@ function UpdateAttachmentsList(array<AttachmentVariants> Attachments)
|
||||
local Pawn MyPawn;
|
||||
local SkinVariant FirstSkin;
|
||||
local string AttachmentName;
|
||||
|
||||
|
||||
ItemIndex = 0;
|
||||
DataProvider = CreateArray();
|
||||
MyPawn = GetPC().Pawn;
|
||||
@ -335,12 +335,12 @@ function UpdateAttachmentsList(array<AttachmentVariants> Attachments)
|
||||
SlotObject.SetBool("enabled", true);
|
||||
TexturePath = "img://"$PathName(FirstSkin.UITexture);
|
||||
SlotObject.SetString("source", TexturePath);
|
||||
|
||||
|
||||
DataProvider.SetElementObject(ItemIndex, SlotObject);
|
||||
ItemIndex++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
SetObject("attachmentsArray", DataProvider);
|
||||
}
|
||||
|
||||
@ -389,7 +389,7 @@ function SetCurrentCharacterButtons()
|
||||
|
||||
bCustom = ExtPRI.UsesCustomChar();
|
||||
DataObject = CreateObject("Object");
|
||||
|
||||
|
||||
CharacterIndex = ExtPRI.RepCustomizationInfo.CharacterIndex;
|
||||
HeadMeshIndex = ExtPRI.RepCustomizationInfo.HeadMeshIndex;
|
||||
HeadSkinIndex = ExtPRI.RepCustomizationInfo.HeadSkinIndex;
|
||||
@ -416,7 +416,7 @@ function SetCurrentCharacterButtons()
|
||||
SetGearButtons(BodyMeshIndex, BodySkinIndex, class'KFGFxMenu_Gear'.Default.BodyMeshKey, class'KFGFxMenu_Gear'.Default.BodySkinKey, class'KFGFxMenu_Gear'.Default.BodyFunctionKey);
|
||||
//set attachments
|
||||
SetAttachmentButtons(class'KFGFxMenu_Gear'.Default.AttachmentKey, class'KFGFxMenu_Gear'.Default.AttachmentFunctionKey);
|
||||
|
||||
|
||||
SetEmoteButton();
|
||||
}
|
||||
|
||||
@ -438,7 +438,7 @@ function SetEmoteButton()
|
||||
DataObject.SetString("selectedEmote", Localize(EmoteList[EmoteIndex].ItemName, "EmoteName", class'KFGFxMenu_Gear'.Default.KFCharacterInfoString));
|
||||
DataObject.SetInt("selectedEmoteIndex", 0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
SetObject("selectedEmote", DataObject);
|
||||
}
|
||||
@ -472,7 +472,7 @@ function SetGearButtons(int MeshIndex, int SkinIndex, string MeshKey, string Ski
|
||||
SkinName = GetMenuName(CurrentCharInfo.BodyVariants[MeshIndex].SkinVariations[SkinIndex].Skin);
|
||||
MeshName = GetMenuNameStr(CurrentCharInfo.BodyVariants[MeshIndex].MeshName);
|
||||
}
|
||||
|
||||
|
||||
DataObject.SetString(sectionFunctionName, MeshName @"\n" @SkinName);
|
||||
}
|
||||
else
|
||||
@ -497,16 +497,16 @@ function SetAttachmentButtons(string AttachmentMeshKey, string sectionFunctionNa
|
||||
local GFxObject DataObject;
|
||||
local int i, AttachmentIndex;
|
||||
local bool bCustom;
|
||||
|
||||
|
||||
if (bWaitingCharList)
|
||||
return;
|
||||
|
||||
|
||||
bCustom = ExtPRI.UsesCustomChar();
|
||||
DataObject = CreateObject("Object");
|
||||
|
||||
for (i = 0; i < `MAX_COSMETIC_ATTACHMENTS; i++)
|
||||
{
|
||||
AttachmentIndex = bCustom ? ExtPRI.CustomCharacter.AttachmentMeshIndices[i] : ExtPRI.RepCustomizationInfo.AttachmentMeshIndices[i];
|
||||
AttachmentIndex = bCustom ? ExtPRI.CustomCharacter.AttachmentMeshIndices[i] : ExtPRI.RepCustomizationInfo.AttachmentMeshIndices[i];
|
||||
if (AttachmentIndex == `CLEARED_ATTACHMENT_INDEX)
|
||||
{
|
||||
DataObject.SetString("selectedAttachment_"$i, "----");
|
||||
@ -515,7 +515,7 @@ function SetAttachmentButtons(string AttachmentMeshKey, string sectionFunctionNa
|
||||
{
|
||||
DataObject.SetString("selectedAttachment_"$i, bIsCustomChar ? GetMenuNameStr(CurrentCharInfo.CosmeticVariants[AttachmentIndex].MeshName) : Localize(string(CurrentCharInfo.CosmeticVariants[AttachmentIndex].AttachmentItem.Name), AttachmentMeshKey, class'KFGFxMenu_Gear'.default.KFCharacterInfoString));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SetObject(sectionFunctionName, DataObject);
|
||||
}
|
||||
@ -578,7 +578,7 @@ function Callback_Emote(int Index)
|
||||
function Callback_RotateCamera(int RotationDirection)
|
||||
{
|
||||
local KFPlayerCamera PlayerCamera;
|
||||
|
||||
|
||||
PlayerCamera = KFPlayerCamera(GetPC().PlayerCamera);
|
||||
if (PlayerCamera != none)
|
||||
PlayerCamera.CustomizationCam.RotatedCamera(RotationDirection);
|
||||
@ -632,9 +632,9 @@ function Callback_Body(int MeshIndex, int SkinIndex)
|
||||
{
|
||||
if (!ExtPRI.UsesCustomChar()) // Force client to setup custom character now for this server.
|
||||
ExtPRI.ChangeCharacter(ExtPRI.RepCustomizationInfo.CharacterIndex,true);
|
||||
|
||||
|
||||
ExtPRI.UpdateCustomization(CO_Body, MeshIndex, SkinIndex);
|
||||
|
||||
|
||||
// When assigning a new body mesh we may need to remove certain attachments
|
||||
// refresh filters, and update the equipped accessories list
|
||||
UpdateAttachmentsList(CurrentCharInfo.CosmeticVariants);
|
||||
@ -698,7 +698,7 @@ function Callback_Attachment(int MeshIndex, int SkinIndex)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
ExtPRI.UpdateCustomization(CO_Attachment, MeshIndex, SkinIndex, SlotIndex);
|
||||
}
|
||||
SetAttachmentButtons(class'KFGFxMenu_Gear'.Default.AttachmentKey, class'KFGFxMenu_Gear'.Default.AttachmentFunctionKey);
|
||||
|
@ -62,5 +62,4 @@ function Callback_Equip(int ItemDefinition)
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
|
||||
}
|
@ -19,7 +19,7 @@ function OnOpen()
|
||||
if (ExtPrevPerk==None)
|
||||
ExtPrevPerk = ExtKFPC.ActivePerkManager.CurrentPerk;
|
||||
|
||||
ExUpdateContainers(ExtPrevPerk);
|
||||
ExUpdateContainers(ExtPrevPerk);
|
||||
SetBool("locked", true);
|
||||
}
|
||||
|
||||
@ -65,7 +65,7 @@ function Callback_PerkSelected(byte NewPerkIndex, bool bClickedIndex)
|
||||
{
|
||||
ExtPrevPerk = ExtKFPC.ActivePerkManager.UserPerks[NewPerkIndex];
|
||||
ExUpdateContainers(ExtPrevPerk);
|
||||
|
||||
|
||||
ExtKFPC.PendingPerkClass = ExtPrevPerk.Class;
|
||||
ExtKFPC.SwitchToPerk(ExtPrevPerk.Class);
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ function Callback_PerkChanged(int PerkIndex)
|
||||
{
|
||||
ExtKFPC.PendingPerkClass = ExtKFPC.ActivePerkManager.UserPerks[PerkIndex].Class;
|
||||
ExtKFPC.SwitchToPerk(ExtKFPC.PendingPerkClass);
|
||||
|
||||
|
||||
if (PlayerInventoryContainer != none)
|
||||
{
|
||||
PlayerInventoryContainer.UpdateLock();
|
||||
|
@ -13,9 +13,9 @@ final function ShowKillMessageX(PlayerReplicationInfo PRI1, PlayerReplicationInf
|
||||
{
|
||||
local GFxObject DataObject;
|
||||
local bool bHumanDeath;
|
||||
local string KilledName, KillerName, KilledIconpath, KillerIconPath;
|
||||
local string KilledName, KillerName, KilledIconpath, KillerIconPath;
|
||||
local string KillerTextColor, KilledTextColor;
|
||||
|
||||
|
||||
if (KFPC == none)
|
||||
return;
|
||||
|
||||
@ -47,14 +47,14 @@ final function ShowKillMessageX(PlayerReplicationInfo PRI1, PlayerReplicationInf
|
||||
if (ExtPlayerReplicationInfo(PRI1)!=None && ExtPlayerReplicationInfo(PRI1).ECurrentPerk!=None)
|
||||
KillerIconpath = ExtPlayerReplicationInfo(PRI1).ECurrentPerk.static.GetPerkIconPath(0);
|
||||
}
|
||||
KillerName = PRI1.PlayerName;
|
||||
KillerName = PRI1.PlayerName;
|
||||
}
|
||||
|
||||
if (PRI2 != none)
|
||||
{
|
||||
if (PRI2.GetTeamNum() == class'KFTeamInfo_Human'.default.TeamIndex)
|
||||
{
|
||||
bHumanDeath = true;
|
||||
bHumanDeath = true;
|
||||
KilledTextColor = HumanTeamTextColor;
|
||||
}
|
||||
else
|
||||
@ -93,20 +93,6 @@ final function ShowKillMessageX(PlayerReplicationInfo PRI1, PlayerReplicationInf
|
||||
}
|
||||
}
|
||||
|
||||
function UpdateObjectiveActive()
|
||||
{
|
||||
// Fix:
|
||||
// ScriptWarning: Accessed None 'KFGRI'
|
||||
// ExtMoviePlayer_HUD Transient.ExtMoviePlayer_HUD_0
|
||||
// Function KFGame.KFGFxMoviePlayer_HUD:UpdateObjectiveActive:00B7
|
||||
if (GetPC() == None || KFGameReplicationInfo(GetPC().WorldInfo.GRI) == None)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Super.UpdateObjectiveActive();
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
WidgetBindings.Remove((WidgetName="SpectatorInfoWidget",WidgetClass=class'KFGFxHUD_SpectatorInfo'))
|
||||
@ -117,6 +103,4 @@ defaultproperties
|
||||
WidgetBindings.Add((WidgetName="PlayerBackpackWidget",WidgetClass=class'ExtHUD_PlayerBackpack'))
|
||||
WidgetBindings.Remove((WidgetName="WeaponSelectContainer",WidgetClass=class'KFGFxHUD_WeaponSelectWidget'))
|
||||
WidgetBindings.Add((WidgetName="WeaponSelectContainer",WidgetClass=class'ExtHUD_WeaponSelectWidget'))
|
||||
WidgetBindings.Remove((WidgetName="ObjectiveContainer",WidgetClass=class'KFGFxHUD_ObjectiveConatiner'))
|
||||
WidgetBindings.Add((WidgetName="ObjectiveContainer",WidgetClass=class'ExtHUD_ObjectiveConatiner'))
|
||||
}
|
@ -73,14 +73,14 @@ function LaunchMenus(optional bool bForceSkipLobby)
|
||||
function OpenMenu(byte NewMenuIndex, optional bool bShowWidgets = true)
|
||||
{
|
||||
local KF2GUIController GUIController;
|
||||
|
||||
|
||||
GUIController = class'KF2GUIController'.Static.GetGUIController(GetPC());
|
||||
|
||||
|
||||
Super.OpenMenu(NewMenuIndex, bShowWidgets);
|
||||
|
||||
|
||||
if (bAfterLobby)
|
||||
return;
|
||||
|
||||
|
||||
if (NewMenuIndex == UI_Perks)
|
||||
{
|
||||
PerksPage = GUIController.OpenMenu(class'ExtGUI_PerkSelectionPage');
|
||||
@ -93,47 +93,31 @@ function OpenMenu(byte NewMenuIndex, optional bool bShowWidgets = true)
|
||||
function CloseMenus(optional bool bForceClose=false)
|
||||
{
|
||||
local KF2GUIController GUIController;
|
||||
|
||||
|
||||
if (PerksPage != None)
|
||||
{
|
||||
GUIController = class'KF2GUIController'.Static.GetGUIController(GetPC());
|
||||
GUIController.CloseMenu(class'ExtGUI_PerkSelectionPage');
|
||||
}
|
||||
|
||||
|
||||
Super.CloseMenus(bForceClose);
|
||||
}
|
||||
|
||||
function OnMenuOpen(name WidgetPath, KFGFxObject_Menu Widget)
|
||||
{
|
||||
Super.OnMenuOpen(WidgetPath, Widget);
|
||||
|
||||
|
||||
if (!bAfterLobby && Widget == PerksMenu)
|
||||
PerksMenu.ActionScriptVoid("closeContainer");
|
||||
}
|
||||
|
||||
event OnClose()
|
||||
{
|
||||
// Fix:
|
||||
// ScriptWarning: Accessed None 'CurrentBackgroundMovie'
|
||||
// ExtMoviePlayer_Manager KF-BIOTICSLAB.TheWorld:PersistentLevel.ExtPlayerController_0.ExtMoviePlayer_Manager_0
|
||||
// Function KFGame.KFGFxMoviePlayer_Manager:OnClose:0039
|
||||
if (CurrentBackgroundMovie != None)
|
||||
{
|
||||
Super.OnClose();
|
||||
}
|
||||
else
|
||||
{
|
||||
CloseMenus();
|
||||
}
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
InGamePartyWidgetClass=class'ExtWidget_PartyInGame'
|
||||
|
||||
|
||||
WidgetPaths.Remove("../UI_Widgets/PartyWidget_SWF.swf")
|
||||
WidgetPaths.Add("../UI_Widgets/VersusLobbyWidget_SWF.swf")
|
||||
|
||||
|
||||
WidgetBindings.Remove((WidgetName="PerksMenu",WidgetClass=class'KFGFxMenu_Perks'))
|
||||
WidgetBindings.Add((WidgetName="PerksMenu",WidgetClass=class'ExtMenu_Perks'))
|
||||
WidgetBindings.Remove((WidgetName="gearMenu",WidgetClass=class'KFGFxMenu_Gear'))
|
||||
|
@ -54,7 +54,7 @@ simulated function PlayEmoteAnimation(optional bool bNewCharacter)
|
||||
local name AnimName;
|
||||
local float BlendInTime;
|
||||
|
||||
AnimName = class'ExtEmoteList'.static.GetUnlockedEmote(class'ExtEmoteList'.static.GetEquippedEmoteId(ExtPlayerController(Controller)), ExtPlayerController(Controller));
|
||||
AnimName = class'ExtEmoteList'.static.GetUnlockedEmote(class'ExtEmoteList'.static.GetEquippedEmoteId(ExtPlayerController(Controller)), ExtPlayerController(Controller));
|
||||
|
||||
BlendInTime = (bNewCharacter) ? 0.f : 0.4;
|
||||
|
||||
@ -88,16 +88,17 @@ function AttachWeaponByItemDefinition(int ItemDefinition)
|
||||
return;
|
||||
}
|
||||
|
||||
//load in and add object .
|
||||
//load in and add object .
|
||||
WeaponPreview = KFWeaponAttachment (DynamicLoadObject(WeaponDef.default.AttachmentArchtypePath, class'KFWeaponAttachment'));
|
||||
|
||||
//attatch it to player
|
||||
WeaponAttachmentTemplate = WeaponPreview;
|
||||
|
||||
WeaponAttachmentChanged();
|
||||
WeaponAttachmentChanged();
|
||||
|
||||
//setweapon skin
|
||||
WeaponAttachment.SetWeaponSkin(ItemDefinition);
|
||||
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
|
@ -7,5 +7,4 @@ static simulated event bool IsABoss()
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
|
||||
}
|
||||
|
@ -62,7 +62,7 @@ simulated reliable client function ClientSetGrenadeCap(byte NewCap)
|
||||
function bool ApplyPerkClass(class<Ext_PerkBase> P)
|
||||
{
|
||||
local int i;
|
||||
|
||||
|
||||
for (i=0; i<UserPerks.Length; ++i)
|
||||
if (UserPerks[i].Class==P)
|
||||
{
|
||||
@ -75,7 +75,7 @@ function bool ApplyPerkClass(class<Ext_PerkBase> P)
|
||||
function bool ApplyPerkName(string S)
|
||||
{
|
||||
local int i;
|
||||
|
||||
|
||||
for (i=0; i<UserPerks.Length; ++i)
|
||||
if (string(UserPerks[i].Class.Name)~=S)
|
||||
{
|
||||
@ -91,39 +91,39 @@ function ApplyPerk(Ext_PerkBase P)
|
||||
local KFInventoryManager InvMan;
|
||||
local Ext_T_ZEDHelper H;
|
||||
local int i;
|
||||
|
||||
|
||||
if (P==None)
|
||||
return;
|
||||
|
||||
|
||||
if (PlayerOwner.Pawn != None)
|
||||
{
|
||||
InvMan = KFInventoryManager(PlayerOwner.Pawn.InvManager);
|
||||
if (InvMan != None)
|
||||
InvMan.MaxCarryBlocks = InvMan.Default.MaxCarryBlocks;
|
||||
|
||||
|
||||
foreach PlayerOwner.Pawn.ChildActors(class'Ext_T_ZEDHelper',H)
|
||||
{
|
||||
H.Destroy();
|
||||
}
|
||||
|
||||
|
||||
HP = KFPawn_Human(PlayerOwner.Pawn);
|
||||
if (HP != None)
|
||||
HP.DefaultInventory = HP.Default.DefaultInventory;
|
||||
}
|
||||
|
||||
|
||||
if (CurrentPerk != None)
|
||||
{
|
||||
CurrentPerk.DeactivateTraits();
|
||||
|
||||
|
||||
for (i=0; i<CurrentPerk.PerkTraits.Length; ++i)
|
||||
{
|
||||
CurrentPerk.PerkTraits[i].TraitType.Static.CancelEffectOn(KFPawn_Human(PlayerOwner.Pawn),CurrentPerk,CurrentPerk.PerkTraits[i].CurrentLevel,CurrentPerk.PerkTraits[i].Data);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bStatsDirty = true;
|
||||
CurrentPerk = P;
|
||||
|
||||
|
||||
if (PRIOwner!=None)
|
||||
{
|
||||
PRIOwner.ECurrentPerk = P.Class;
|
||||
@ -131,11 +131,11 @@ function ApplyPerk(Ext_PerkBase P)
|
||||
PRIOwner.CurrentPerkClass = P.BasePerk;
|
||||
P.UpdatePRILevel();
|
||||
}
|
||||
|
||||
|
||||
if (CurrentPerk!=None)
|
||||
{
|
||||
CurrentPerk.ActivateTraits();
|
||||
|
||||
|
||||
if (PlayerOwner.Pawn != None)
|
||||
{
|
||||
HP = KFPawn_Human(PlayerOwner.Pawn);
|
||||
@ -143,11 +143,11 @@ function ApplyPerk(Ext_PerkBase P)
|
||||
{
|
||||
HP.HealthMax = HP.default.Health;
|
||||
HP.MaxArmor = HP.default.MaxArmor;
|
||||
|
||||
|
||||
ModifyHealth(HP.HealthMax);
|
||||
ModifyArmor(HP.MaxArmor);
|
||||
CurrentPerk.UpdateAmmoStatus(HP.InvManager);
|
||||
|
||||
|
||||
if (HP.Health > HP.HealthMax) HP.Health = HP.HealthMax;
|
||||
if (HP.Armor > HP.MaxArmor) HP.Armor = HP.MaxArmor;
|
||||
}
|
||||
@ -158,7 +158,7 @@ function ApplyPerk(Ext_PerkBase P)
|
||||
simulated final function Ext_PerkBase FindPerk(class<Ext_PerkBase> P)
|
||||
{
|
||||
local int i;
|
||||
|
||||
|
||||
for (i=0; i<UserPerks.Length; ++i)
|
||||
if (UserPerks[i].Class==P)
|
||||
return UserPerks[i];
|
||||
@ -175,7 +175,7 @@ simulated function PostBeginPlay()
|
||||
simulated function InitPerks()
|
||||
{
|
||||
local Ext_PerkBase P;
|
||||
|
||||
|
||||
if (WorldInfo.NetMode==NM_Client)
|
||||
{
|
||||
foreach DynamicActors(class'Ext_PerkBase',P)
|
||||
@ -209,7 +209,7 @@ function CheckPlayTime()
|
||||
function ServerInitPerks()
|
||||
{
|
||||
local int i;
|
||||
|
||||
|
||||
for (i=0; i<UserPerks.Length; ++i)
|
||||
UserPerks[i].SetInitialLevel();
|
||||
bServerReady = true;
|
||||
@ -235,7 +235,7 @@ simulated function UnregisterPerk(Ext_PerkBase P)
|
||||
function Destroyed()
|
||||
{
|
||||
local int i;
|
||||
|
||||
|
||||
for (i=(UserPerks.Length-1); i>=0; --i)
|
||||
{
|
||||
UserPerks[i].PerkManager = None;
|
||||
@ -310,7 +310,7 @@ function SaveData(ExtSaveDataBase Data)
|
||||
Data.SaveInt(TotalEXP,3);
|
||||
Data.SaveInt(TotalKills,3);
|
||||
Data.SaveInt(TotalPlayTime,3);
|
||||
|
||||
|
||||
// Write character.
|
||||
if (PRIOwner!=None)
|
||||
PRIOwner.SaveCustomCharacter(Data);
|
||||
@ -326,10 +326,10 @@ function SaveData(ExtSaveDataBase Data)
|
||||
for (i=0; i<UserPerks.Length; ++i)
|
||||
if (UserPerks[i].HasAnyProgress())
|
||||
++o;
|
||||
|
||||
|
||||
// Then write count we have.
|
||||
Data.SaveInt(o);
|
||||
|
||||
|
||||
// Then perk stats.
|
||||
for (i=0; i<UserPerks.Length; ++i)
|
||||
{
|
||||
@ -508,7 +508,7 @@ simulated function ModifyRecoil(out float CurrentRecoilModifier, KFWeapon KFW)
|
||||
}
|
||||
|
||||
simulated function float GetCameraViewShakeModifier(KFWeapon KFW)
|
||||
{
|
||||
{
|
||||
return (CurrentPerk!=None ? CurrentPerk.GetCameraViewShakeModifier(KFW) : 1.f);
|
||||
}
|
||||
|
||||
@ -855,7 +855,7 @@ simulated function bool GetHealingShieldActive()
|
||||
}
|
||||
|
||||
simulated function float GetSelfHealingSurgePct()
|
||||
{
|
||||
{
|
||||
return (Ext_PerkFieldMedic(CurrentPerk)!=None ? Ext_PerkFieldMedic(CurrentPerk).GetSelfHealingSurgePct() : 0.f);
|
||||
}
|
||||
|
||||
@ -889,10 +889,10 @@ simulated function float GetPenetrationModifier(byte Level, class<KFDamageType>
|
||||
{
|
||||
return (Ext_PerkSupport(CurrentPerk)!=None ? Ext_PerkSupport(CurrentPerk).GetPenetrationModifier(Level, DamageType, bForce) : 0.f);
|
||||
}
|
||||
|
||||
|
||||
simulated function float GetTightChokeModifier()
|
||||
{
|
||||
return (CurrentPerk!=None ? CurrentPerk.GetTightChokeModifier() : 1.f);
|
||||
return (CurrentPerk!=None ? CurrentPerk.GetTightChokeModifier() : 1.f);
|
||||
}
|
||||
|
||||
// SwitchSpeed
|
||||
@ -921,7 +921,7 @@ defaultproperties
|
||||
{
|
||||
bTickIsDisabled=false
|
||||
NetPriority=3.5
|
||||
|
||||
|
||||
// SWAT bumping
|
||||
BumpCooldown = 0.1f
|
||||
BumpMomentum=1.f
|
||||
|
@ -13,12 +13,12 @@ final function ExUpdateDetails(Ext_PerkBase PerkClass)
|
||||
|
||||
DetailsProvider = CreateObject("Object");
|
||||
|
||||
KFPC = KFPlayerController(GetPC());
|
||||
KFPC = KFPlayerController(GetPC());
|
||||
|
||||
if (KFPC != none)
|
||||
{
|
||||
KFGRI = KFGameReplicationInfo(KFPC.WorldInfo.GRI);
|
||||
|
||||
|
||||
DetailsProvider.SetString("ExperienceMessage", ExperienceString @ PerkClass.CurrentEXP);
|
||||
|
||||
if (KFGRI != none)
|
||||
@ -31,12 +31,12 @@ final function ExUpdateDetails(Ext_PerkBase PerkClass)
|
||||
|
||||
for (i = 0; i < WeaponNames.length; i++)
|
||||
{
|
||||
DetailsProvider.SetString("WeaponName" $ i, WeaponNames[i]);
|
||||
DetailsProvider.SetString("WeaponImage" $ i, "img://"$WeaponSources[i]);
|
||||
DetailsProvider.SetString("WeaponName" $ i, WeaponNames[i]);
|
||||
DetailsProvider.SetString("WeaponImage" $ i, "img://"$WeaponSources[i]);
|
||||
}
|
||||
|
||||
DetailsProvider.SetString("EXPAction1", "Kill zombies");
|
||||
//DetailsProvider.SetString("EXPAction2", PerkClass.default.EXPAction2);
|
||||
//DetailsProvider.SetString("EXPAction2", PerkClass.default.EXPAction2);
|
||||
|
||||
SetObject("detailsData", DetailsProvider);
|
||||
}
|
||||
@ -53,7 +53,7 @@ final function ExUpdatePassives(Ext_PerkBase PerkClass)
|
||||
{
|
||||
PassiveObject = CreateObject("Object");
|
||||
PassiveObject.SetString("PassiveTitle", PerkClass.GetStatUIStr(i));
|
||||
PassiveObject.SetString("PerkBonusModifier", "");
|
||||
PassiveObject.SetString("PerkBonusModifier", "");
|
||||
PassiveObject.SetString("PerkBonusAmount", "");
|
||||
PassivesProvider.SetElementObject(i, PassiveObject);
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
class ExtPerksContainer_Header extends KFGFxPerksContainer_Header;
|
||||
|
||||
final function ExUpdatePerkHeader(Ext_PerkBase PerkClass)
|
||||
{
|
||||
{
|
||||
local GFxObject PerkDataProvider;
|
||||
|
||||
PerkDataProvider = CreateObject("Object");
|
||||
|
@ -4,29 +4,29 @@ var localized string PerkChangeWarning;
|
||||
|
||||
function UpdatePerkSelection(byte SelectedPerkIndex)
|
||||
{
|
||||
local int i;
|
||||
local int i;
|
||||
local GFxObject DataProvider;
|
||||
local GFxObject TempObj;
|
||||
local ExtPlayerController KFPC;
|
||||
local Ext_PerkBase PerkClass;
|
||||
local Ext_PerkBase PerkClass;
|
||||
|
||||
KFPC = ExtPlayerController(GetPC());
|
||||
|
||||
if (KFPC!=none && KFPC.ActivePerkManager!=None)
|
||||
{
|
||||
DataProvider = CreateArray();
|
||||
DataProvider = CreateArray();
|
||||
|
||||
for (i = 0; i < KFPC.ActivePerkManager.UserPerks.Length; i++)
|
||||
{
|
||||
PerkClass = KFPC.ActivePerkManager.UserPerks[i];
|
||||
TempObj = CreateObject("Object");
|
||||
TempObj.SetInt("PerkLevel", PerkClass.CurrentLevel);
|
||||
TempObj.SetString("Title", PerkClass.PerkName);
|
||||
TempObj.SetString("Title", PerkClass.PerkName);
|
||||
TempObj.SetString("iconSource", PerkClass.GetPerkIconPath(PerkClass.CurrentLevel));
|
||||
TempObj.SetBool("bTierUnlocked", true);
|
||||
|
||||
|
||||
DataProvider.SetElementObject(i, TempObj);
|
||||
}
|
||||
}
|
||||
SetObject("perkData", DataProvider);
|
||||
SetInt("SelectedIndex", SelectedPerkIndex);
|
||||
|
||||
|
@ -108,7 +108,7 @@ function CheckPerk()
|
||||
reliable client function AddAdminCmd(string S)
|
||||
{
|
||||
local int i,j;
|
||||
|
||||
|
||||
j = InStr(S,":");
|
||||
i = AdminCommands.Length;
|
||||
AdminCommands.Length = i+1;
|
||||
@ -344,7 +344,7 @@ reliable client event TeamMessage(PlayerReplicationInfo PRI, coerce string S, na
|
||||
S = PRI.GetHumanReadableName()$": "$S;
|
||||
LocalPlayer(Player).ViewportClient.ViewportConsole.OutputText("("$Type$") "$S);
|
||||
}
|
||||
|
||||
|
||||
if (MyGFxManager != none && MyGFxManager.PartyWidget != none)
|
||||
{
|
||||
if (!MyGFxManager.PartyWidget.ReceiveMessage(S)) //Fails if message is for updating perks in a steam lobby
|
||||
@ -392,16 +392,16 @@ final function PopScreenMsg(string S)
|
||||
local int i;
|
||||
local string L;
|
||||
local float T;
|
||||
|
||||
|
||||
T = 4.f;
|
||||
|
||||
|
||||
// Get lower part.
|
||||
i = InStr(S,"|");
|
||||
if (i!=-1)
|
||||
{
|
||||
L = Mid(S,i+1);
|
||||
S = Left(S,i);
|
||||
|
||||
|
||||
// Get time.
|
||||
i = InStr(L,"|");
|
||||
if (i!=-1)
|
||||
@ -420,7 +420,7 @@ reliable client function ClientKillMessage(class<DamageType> DamType, PlayerRepl
|
||||
|
||||
if (Player==None || Victim==None)
|
||||
return;
|
||||
|
||||
|
||||
if (bUseKF2DeathMessages && MyGFxHUD!=None)
|
||||
{
|
||||
if (Victim==KillerPRI || (KillerPRI==None && KillerPawn==None)) // Suicide
|
||||
@ -559,7 +559,7 @@ simulated final function ToggleFPBody(bool bEnable)
|
||||
{
|
||||
bShowFPLegs = bEnable;
|
||||
Class'ExtPlayerController'.Default.bShowFPLegs = bEnable;
|
||||
|
||||
|
||||
if (ExtHumanPawn(Pawn)!=None)
|
||||
ExtHumanPawn(Pawn).UpdateFPLegs();
|
||||
}
|
||||
@ -654,7 +654,7 @@ function ShowBossNameplate(KFInterface_MonsterBoss KFBoss, optional string Playe
|
||||
}
|
||||
|
||||
function HideBossNameplate()
|
||||
{
|
||||
{
|
||||
if (!bNamePlateHidden)
|
||||
{
|
||||
bNamePlateHidden = false;
|
||||
@ -759,7 +759,7 @@ reliable server function ServerViewPlayerID(int ID)
|
||||
}
|
||||
if (PRI==None || PRI.PlayerID!=ID || Controller(PRI.Owner)==None || Controller(PRI.Owner).Pawn==None || !WorldInfo.Game.CanSpectate(self, PRI))
|
||||
return;
|
||||
|
||||
|
||||
SetViewTarget(PRI);
|
||||
ClientMessage(NowViewingFrom@PRI.GetHumanReadableName());
|
||||
if (CurrentSpectateMode==SMODE_Roaming)
|
||||
@ -769,7 +769,7 @@ reliable server function ServerViewPlayerID(int ID)
|
||||
reliable server function SpectateRoaming()
|
||||
{
|
||||
local Pawn P;
|
||||
|
||||
|
||||
P = Pawn(ViewTarget);
|
||||
ClientMessage(ViewingFromOwnCamera);
|
||||
Super.SpectateRoaming();
|
||||
@ -851,7 +851,7 @@ state Spectating
|
||||
if (Role < ROLE_Authority) // then save this move and replicate it
|
||||
{
|
||||
ReplicateMove(DeltaTime, Acceleration, DCLICK_None, rot(0,0,0));
|
||||
|
||||
|
||||
// only done for clients, as LastActiveTime only affects idle kicking
|
||||
if ((!IsZero(Acceleration) || OldRotation != Rotation) && LastUpdateSpectatorActiveTime<WorldInfo.TimeSeconds)
|
||||
{
|
||||
@ -917,7 +917,7 @@ simulated function EndGameCamFocus(vector Pos)
|
||||
EndGameCamFocusPos[1] = CamPos;
|
||||
EndGameCamRot = CamRot;
|
||||
EndGameCamTimer = WorldInfo.RealTimeSeconds;
|
||||
|
||||
|
||||
if (LocalPlayer(Player)==None)
|
||||
ClientFocusView(Pos);
|
||||
else if (KFPawn(ViewTarget)!=None)
|
||||
@ -939,7 +939,7 @@ final function bool CalcEndGameCam()
|
||||
return true;
|
||||
|
||||
T = WorldInfo.RealTimeSeconds-EndGameCamTimer;
|
||||
|
||||
|
||||
if (T>=20.f) // Finished view.
|
||||
{
|
||||
bEndGameCamFocus = false;
|
||||
@ -1090,7 +1090,7 @@ Ignores NotifyPhysicsVolumeChange,ServerCamera,ResetCameraMode;
|
||||
TheViewTarget = Self;
|
||||
out_Location = TheViewTarget.Location;
|
||||
EndOffset = out_Location-vector(Rotation)*250.f;
|
||||
|
||||
|
||||
if (TheViewTarget.Trace(HL,HN,EndOffset,out_Location,false,vect(16,16,16))!=None)
|
||||
out_Location = HL;
|
||||
else out_Location = EndOffset;
|
||||
@ -1174,7 +1174,7 @@ state Dead
|
||||
bPressedJump = false;
|
||||
FindGoodView();
|
||||
CleanOutSavedMoves();
|
||||
|
||||
|
||||
if (KFPawn(ViewTarget)!=none)
|
||||
{
|
||||
KFPawn(ViewTarget).SetMeshVisibility(true);
|
||||
@ -1213,7 +1213,7 @@ state Dead
|
||||
TheViewTarget = Self;
|
||||
out_Location = TheViewTarget.Location;
|
||||
EndOffset = out_Location-vector(Rotation)*400.f;
|
||||
|
||||
|
||||
if (TheViewTarget.Trace(HL,HN,EndOffset,out_Location,false,vect(16,16,16))!=None)
|
||||
out_Location = HL;
|
||||
else out_Location = EndOffset;
|
||||
@ -1239,7 +1239,7 @@ defaultproperties
|
||||
MidGameMenuClass=class'UI_MidGameMenu'
|
||||
PerkList.Empty()
|
||||
PerkList.Add((PerkClass=Class'ExtPerkManager'))
|
||||
|
||||
|
||||
NVG_DOF_FocalDistance=3800.0
|
||||
NVG_DOF_SharpRadius=2500.0
|
||||
NVG_DOF_FocalRadius=3500.0
|
||||
|
@ -9,7 +9,7 @@ struct FCustomCharEntry
|
||||
struct FMyCustomChar // Now without constant.
|
||||
{
|
||||
var int CharacterIndex,HeadMeshIndex,HeadSkinIndex,BodyMeshIndex,BodySkinIndex,AttachmentMeshIndices[`MAX_COSMETIC_ATTACHMENTS],AttachmentSkinIndices[`MAX_COSMETIC_ATTACHMENTS];
|
||||
|
||||
|
||||
structdefaultproperties
|
||||
{
|
||||
AttachmentMeshIndices[0]=`CLEARED_ATTACHMENT_INDEX
|
||||
@ -101,7 +101,7 @@ simulated function ClientInitialize(Controller C)
|
||||
local ExtPlayerReplicationInfo PRI;
|
||||
|
||||
Super.ClientInitialize(C);
|
||||
|
||||
|
||||
if (WorldInfo.NetMode!=NM_DedicatedServer)
|
||||
{
|
||||
LocalOwnerPRI = Self;
|
||||
@ -189,7 +189,7 @@ simulated final function color PickPerkColor()
|
||||
{
|
||||
local float P;
|
||||
local byte i;
|
||||
|
||||
|
||||
if (RepLevelProgress==0)
|
||||
return MakeColor(255,255,255,255);
|
||||
P = float(RepLevelProgress) / 255.f;
|
||||
@ -331,7 +331,7 @@ function ClearFixed()
|
||||
simulated final function string GetDesc()
|
||||
{
|
||||
local string S;
|
||||
|
||||
|
||||
if ((FixedData & 1)!=0)
|
||||
S = "A.";
|
||||
if ((FixedData & 2)!=0)
|
||||
@ -595,13 +595,13 @@ final function SaveCustomCharacter(ExtSaveDataBase Data)
|
||||
Data.SaveStr(S);
|
||||
if (S=="")
|
||||
return;
|
||||
|
||||
|
||||
// Write selected accessories.
|
||||
Data.SaveInt(CustomCharacter.HeadMeshIndex);
|
||||
Data.SaveInt(CustomCharacter.HeadSkinIndex);
|
||||
Data.SaveInt(CustomCharacter.BodyMeshIndex);
|
||||
Data.SaveInt(CustomCharacter.BodySkinIndex);
|
||||
|
||||
|
||||
c = 0;
|
||||
for (i=0; i<`MAX_COSMETIC_ATTACHMENTS; ++i)
|
||||
{
|
||||
@ -611,7 +611,7 @@ final function SaveCustomCharacter(ExtSaveDataBase Data)
|
||||
|
||||
// Write attachments count.
|
||||
Data.SaveInt(c);
|
||||
|
||||
|
||||
// Write attachments.
|
||||
for (i=0; i<`MAX_COSMETIC_ATTACHMENTS; ++i)
|
||||
{
|
||||
@ -639,7 +639,7 @@ final function LoadCustomCharacter(ExtSaveDataBase Data)
|
||||
if (string(CharacterArchetypes[i].Name)~=S)
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if (i==CharacterArchetypes.Length)
|
||||
{
|
||||
for (i=0; i<CustomCharList.Length; ++i)
|
||||
@ -741,4 +741,4 @@ defaultproperties
|
||||
RespawnCounter=-1
|
||||
AdminType=AT_Player
|
||||
TaggedPlayerName="Player"
|
||||
}
|
||||
}
|
@ -96,4 +96,4 @@ defaultproperties
|
||||
FuseTime=0.35
|
||||
NumCrackers=6
|
||||
bNetTemporary=true
|
||||
}
|
||||
}
|
@ -18,7 +18,7 @@ simulated function PostBeginPlay()
|
||||
{
|
||||
InstigatorPerk = InstigatorPawn.GetPerk();
|
||||
if (InstigatorPerk != none)
|
||||
bExplodeOnContact = InstigatorPerk.IsOnContactActive();
|
||||
bExplodeOnContact = InstigatorPerk.IsOnContactActive();
|
||||
}
|
||||
|
||||
Super.PostBeginPlay();
|
||||
|
@ -58,4 +58,4 @@ defaultproperties
|
||||
Damage=170
|
||||
DamageRadius=800
|
||||
End Object
|
||||
}
|
||||
}
|
@ -9,13 +9,13 @@ defaultproperties
|
||||
|
||||
bCanDisintegrate=false
|
||||
DrawScale=2.5
|
||||
|
||||
|
||||
NumResidualFlames=10
|
||||
ResidualFlameProjClass=class'ExtProj_SUPERMolotovS'
|
||||
|
||||
|
||||
// explosion
|
||||
Begin Object Name=ExploTemplate0
|
||||
Damage=750
|
||||
DamageRadius=500
|
||||
End Object
|
||||
}
|
||||
}
|
@ -9,4 +9,4 @@ defaultproperties
|
||||
Damage=40
|
||||
DamageRadius=200
|
||||
End Object
|
||||
}
|
||||
}
|
@ -12,7 +12,7 @@ function PlayAnimation()
|
||||
PlaySpecialMoveAnim(AnimName, AnimStance, BlendInTime, BlendOutTime, 1.f);
|
||||
|
||||
if (KFPOwner.Role == ROLE_Authority)
|
||||
{
|
||||
{
|
||||
KFGameInfo(KFPOwner.WorldInfo.Game).DialogManager.PlayDialogEvent(KFPOwner, 31);
|
||||
}
|
||||
|
||||
@ -47,5 +47,4 @@ function PlayAnimation()
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
|
||||
}
|
@ -8,9 +8,9 @@ function SpawnProjectileShield()
|
||||
defaultproperties
|
||||
{
|
||||
ExplosionActorClass=class'ExtExplosion_SirenScream'
|
||||
|
||||
|
||||
// explosion
|
||||
Begin Object Name=ExploTemplate0
|
||||
ActorClassToIgnoreForDamage=class'KFPawn_ZedSirenX'
|
||||
End Object
|
||||
}
|
||||
}
|
@ -8,7 +8,7 @@ var array<Actor> ValidSpawnSpots;
|
||||
static final function ExtSpawnPointHelper FindHelper(WorldInfo Level)
|
||||
{
|
||||
local ExtSpawnPointHelper H;
|
||||
|
||||
|
||||
foreach Level.DynamicActors(class'ExtSpawnPointHelper',H)
|
||||
return H;
|
||||
return Level.Spawn(class'ExtSpawnPointHelper');
|
||||
@ -20,7 +20,7 @@ final function Actor PickBestSpawn()
|
||||
local KFPawn P;
|
||||
local float Score,BestScore,Dist;
|
||||
local KFPawn_Human H;
|
||||
|
||||
|
||||
BestN = None;
|
||||
BestScore = 0;
|
||||
foreach ValidSpawnSpots(N)
|
||||
@ -132,7 +132,7 @@ final function CheckSpawn(NavigationPoint N)
|
||||
ValidSpawnSpots.AddItem(N);
|
||||
}
|
||||
CheckedList.AddItem(N);
|
||||
|
||||
|
||||
foreach N.PathList(R)
|
||||
{
|
||||
E = R.GetEnd();
|
||||
|
@ -2,7 +2,7 @@ class ExtTraderContainer_Filter extends KFGFxTraderContainer_Filter;
|
||||
|
||||
function SetPerkFilterData(byte FilterIndex)
|
||||
{
|
||||
local int i;
|
||||
local int i;
|
||||
local GFxObject DataProvider;
|
||||
local GFxObject FilterObject;
|
||||
local ExtPlayerController KFPC;
|
||||
@ -31,7 +31,7 @@ function SetPerkFilterData(byte FilterIndex)
|
||||
SetString("filterText", OffPerkString);
|
||||
}
|
||||
|
||||
DataProvider = CreateArray();
|
||||
DataProvider = CreateArray();
|
||||
for (i = 0; i < PrM.UserPerks.Length; i++)
|
||||
{
|
||||
FilterObject = CreateObject("Object");
|
||||
|
@ -10,11 +10,11 @@ function SetPerkInfo()
|
||||
if (KFPC!=none && KFPC.ActivePerkManager!=None && KFPC.ActivePerkManager.CurrentPerk!=None)
|
||||
{
|
||||
CurrentPerk = KFPC.ActivePerkManager.CurrentPerk;
|
||||
SetString("perkName", CurrentPerk.PerkName);
|
||||
SetString("perkIconPath", CurrentPerk.GetPerkIconPath(CurrentPerk.CurrentLevel));
|
||||
SetInt("perkLevel", CurrentPerk.CurrentLevel);
|
||||
SetString("perkName", CurrentPerk.PerkName);
|
||||
SetString("perkIconPath", CurrentPerk.GetPerkIconPath(CurrentPerk.CurrentLevel));
|
||||
SetInt("perkLevel", CurrentPerk.CurrentLevel);
|
||||
V = CurrentPerk.GetProgressPercent()*100.f;
|
||||
SetInt("xpBarValue", int(V));
|
||||
SetInt("xpBarValue", int(V));
|
||||
}
|
||||
}
|
||||
|
||||
@ -52,5 +52,4 @@ function SetPerkList()
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
|
||||
}
|
@ -12,7 +12,7 @@ function bool IsItemFiltered(STraderItem Item, optional bool bDebug)
|
||||
if ( Item.WeaponDef.default.PlatformRestriction != PR_All && class'KFUnlockManager'.static.IsPlatformRestricted( Item.WeaponDef.default.PlatformRestriction ) )
|
||||
return true;
|
||||
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
|
||||
function RefreshWeaponListByPerk(byte FilterIndex, const out array<STraderItem> ItemList)
|
||||
@ -52,11 +52,11 @@ function RefreshWeaponListByPerk(byte FilterIndex, const out array<STraderItem>
|
||||
case 0: //primary perk
|
||||
OnPerkWeapons.AddItem(ItemList[i]);
|
||||
break;
|
||||
|
||||
|
||||
case 1: //secondary perk
|
||||
SecondaryWeapons.AddItem(ItemList[i]);
|
||||
break;
|
||||
|
||||
|
||||
default: //off perk
|
||||
OffPerkWeapons.AddItem(ItemList[i]);
|
||||
break;
|
||||
@ -68,7 +68,7 @@ function RefreshWeaponListByPerk(byte FilterIndex, const out array<STraderItem>
|
||||
for (i = 0; i < OnPerkWeapons.length; i++)
|
||||
{
|
||||
SetItemInfo(ItemDataArray, OnPerkWeapons[i], SlotIndex);
|
||||
SlotIndex++;
|
||||
SlotIndex++;
|
||||
}
|
||||
|
||||
for (i = 0; i < SecondaryWeapons.length; i++)
|
||||
@ -81,7 +81,7 @@ function RefreshWeaponListByPerk(byte FilterIndex, const out array<STraderItem>
|
||||
{
|
||||
SetItemInfo(ItemDataArray, OffPerkWeapons[i], SlotIndex);
|
||||
SlotIndex++;
|
||||
}
|
||||
}
|
||||
|
||||
SetObject("shopData", ItemDataArray);
|
||||
}
|
||||
|
@ -7,4 +7,4 @@ defaultproperties
|
||||
AmmoPricePerMag=0
|
||||
|
||||
WeaponClassPath="ServerExt.ExtWeap_Pistol_9mm"
|
||||
}
|
||||
}
|
@ -16,4 +16,4 @@ defaultproperties
|
||||
UpgradeSellPrice[1] = 0
|
||||
UpgradeSellPrice[2] = 0
|
||||
UpgradeSellPrice[3] = 0
|
||||
}
|
||||
}
|
@ -4,7 +4,7 @@ defaultproperties
|
||||
{
|
||||
SpareAmmoCapacity[0]=-1
|
||||
InitialSpareMags[0]=0
|
||||
|
||||
|
||||
bInfiniteSpareAmmo=True
|
||||
|
||||
// DualClass=class'ServerExt.ExtWeap_Pistol_MedicS'
|
||||
@ -35,4 +35,4 @@ simulated function KFPerk GetPerk()
|
||||
if (KFPlayer != None)
|
||||
return KFPlayer.GetPerk();
|
||||
return super.GetPerk();
|
||||
}
|
||||
}
|
@ -4,7 +4,7 @@ defaultproperties
|
||||
{
|
||||
SpareAmmoCapacity[0]=-1
|
||||
InitialSpareMags[0]=0
|
||||
|
||||
|
||||
bInfiniteSpareAmmo=True
|
||||
|
||||
SingleClass=class'ExtWeap_Pistol_9mm'
|
||||
@ -19,7 +19,7 @@ simulated static function bool AllowedForAllPerks()
|
||||
|
||||
simulated function ConsumeAmmo(byte FireModeNum)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
simulated static event class<KFPerk> GetWeaponPerkClass(class<KFPerk> InstigatorPerkClass)
|
||||
@ -28,4 +28,4 @@ simulated static event class<KFPerk> GetWeaponPerkClass(class<KFPerk> Instigator
|
||||
return InstigatorPerkClass;
|
||||
|
||||
return default.AssociatedPerkClasses[0];
|
||||
}
|
||||
}
|
@ -3,14 +3,14 @@ class ExtWeap_Pistol_MedicS extends KFWeap_Pistol_Medic;
|
||||
defaultproperties
|
||||
{
|
||||
bCanThrow=false
|
||||
|
||||
|
||||
SpareAmmoCapacity[0]=-1
|
||||
InitialSpareMags[0]=0
|
||||
bInfiniteSpareAmmo=True
|
||||
|
||||
// Remove weight bcs of replacing 9mm
|
||||
InventorySize=0
|
||||
|
||||
|
||||
InstantHitDamageTypes(DEFAULT_FIREMODE)=class'ExtDT_Ballistic_Pistol_Medic'
|
||||
|
||||
WeaponUpgrades[1]=(Stats=((Stat=EWUS_Damage0, Scale=1.7f), (Stat=EWUS_HealFullRecharge, Scale=0.9f)))
|
||||
@ -43,4 +43,4 @@ simulated function KFPerk GetPerk()
|
||||
if (KFPlayer != None)
|
||||
return KFPlayer.GetPerk();
|
||||
return super.GetPerk();
|
||||
}
|
||||
}
|
@ -2,11 +2,11 @@ class ExtWeaponSkinList extends Object;
|
||||
|
||||
struct WeaponSkin
|
||||
{
|
||||
var int Id;
|
||||
var int Id;
|
||||
|
||||
var array<string> MIC_1P;
|
||||
var string MIC_3P;
|
||||
var string MIC_Pickup;
|
||||
var array<string> MIC_1P;
|
||||
var string MIC_3P;
|
||||
var string MIC_Pickup;
|
||||
|
||||
var class<KFWeaponDefinition> WeaponDef;
|
||||
};
|
||||
@ -25,7 +25,7 @@ static function array<MaterialInterface> GetWeaponSkin(int ItemId, EWeaponSkinTy
|
||||
local array<MaterialInterface> Mats;
|
||||
local MaterialInterface LoadedMat;
|
||||
local string FirstPMat;
|
||||
|
||||
|
||||
i = default.Skins.Find('Id', ItemId);
|
||||
if (i > -1)
|
||||
{
|
||||
@ -38,38 +38,38 @@ static function array<MaterialInterface> GetWeaponSkin(int ItemId, EWeaponSkinTy
|
||||
if (LoadedMat != None)
|
||||
Mats.AddItem(LoadedMat);
|
||||
}
|
||||
|
||||
|
||||
break;
|
||||
case WST_ThirdPerson:
|
||||
LoadedMat = MaterialInterface(DynamicLoadObject(default.Skins[i].MIC_3P, class'MaterialInterface'));
|
||||
if (LoadedMat != None)
|
||||
Mats.AddItem(LoadedMat);
|
||||
|
||||
|
||||
break;
|
||||
case WST_Pickup:
|
||||
LoadedMat = MaterialInterface(DynamicLoadObject(default.Skins[i].MIC_Pickup, class'MaterialInterface'));
|
||||
if (LoadedMat != None)
|
||||
Mats.AddItem(LoadedMat);
|
||||
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return Mats;
|
||||
}
|
||||
|
||||
static function SaveWeaponSkin(class<KFWeaponDefinition> WeaponDef, int ID, ExtPlayerController PC)
|
||||
{
|
||||
local int ALen, i;
|
||||
|
||||
|
||||
i = PC.SavedWeaponSkins.Find('WepDef', WeaponDef);
|
||||
if (i > -1)
|
||||
PC.SavedWeaponSkins.Remove(i, 1);
|
||||
|
||||
|
||||
ALen = PC.SavedWeaponSkins.Length;
|
||||
PC.SavedWeaponSkins[ALen].ID = ID;
|
||||
PC.SavedWeaponSkins[ALen].WepDef = WeaponDef;
|
||||
|
||||
|
||||
PC.SaveConfig();
|
||||
}
|
||||
|
||||
@ -87,12 +87,12 @@ defaultproperties
|
||||
{
|
||||
//Anodized Hazard AR15
|
||||
Skins.Add((Id=3001, Weapondef=class'KFWeapDef_AR15', MIC_1P=("WEP_SkinSet01_MAT.anodizedhazard_ar15.AnodizedHazard_AR15_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.anodizedhazard_ar15.AnodizedHazard_AR15_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.anodizedhazard_ar15.AnodizedHazard_AR15_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=3002, Weapondef=class'KFWeapDef_AR15', MIC_1P=("WEP_SkinSet01_MAT.anodizedhazard_ar15.AnodizedHazard_AR15_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.anodizedhazard_ar15.AnodizedHazard_AR15_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.anodizedhazard_ar15.AnodizedHazard_AR15_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=3002, Weapondef=class'KFWeapDef_AR15', MIC_1P=("WEP_SkinSet01_MAT.anodizedhazard_ar15.AnodizedHazard_AR15_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.anodizedhazard_ar15.AnodizedHazard_AR15_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.anodizedhazard_ar15.AnodizedHazard_AR15_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=3003, Weapondef=class'KFWeapDef_AR15', MIC_1P=("WEP_SkinSet01_MAT.anodizedhazard_ar15.AnodizedHazard_AR15_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.anodizedhazard_ar15.AnodizedHazard_AR15_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.anodizedhazard_ar15.AnodizedHazard_AR15_3P_Pickup_MIC"))
|
||||
|
||||
//Airlock 9mm
|
||||
Skins.Add((Id=3004, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet01_MAT.airlock_9mm.Airlock_9MM_1P_Mint_MIC"), MIC_3P="WEP_SkinSet01_MAT.airlock_9mm.Airlock_9MM_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet01_MAT.airlock_9mm.Airlock_9MM_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=3005, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet01_MAT.airlock_9mm.Airlock_9MM_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.airlock_9mm.Airlock_9MM_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.airlock_9mm.Airlock_9MM_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=3005, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet01_MAT.airlock_9mm.Airlock_9MM_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet01_MAT.airlock_9mm.Airlock_9MM_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet01_MAT.airlock_9mm.Airlock_9MM_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=3006, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet01_MAT.airlock_9mm.Airlock_9MM_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet01_MAT.airlock_9mm.Airlock_9MM_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet01_MAT.airlock_9mm.Airlock_9MM_3P_Pickup_MIC"))
|
||||
|
||||
//Aeronaut Bullpup
|
||||
@ -102,17 +102,17 @@ defaultproperties
|
||||
|
||||
//Woodland AA12
|
||||
Skins.Add((Id=3010, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSetPSN03_MAT.woodland_aa12.Woodland_AA12_1P_Mint_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.woodland_aa12.Woodland_AA12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.woodland_aa12.Woodland_AA12_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=3011, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSetPSN03_MAT.woodland_aa12.Woodland_AA12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.woodland_aa12.Woodland_AA12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.woodland_aa12.Woodland_AA12_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=3011, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSetPSN03_MAT.woodland_aa12.Woodland_AA12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.woodland_aa12.Woodland_AA12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.woodland_aa12.Woodland_AA12_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=3012, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSetPSN03_MAT.woodland_aa12.Woodland_AA12_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.woodland_aa12.Woodland_AA12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.woodland_aa12.Woodland_AA12_3P_Pickup_MIC"))
|
||||
|
||||
//Woodland Boomstick
|
||||
Skins.Add((Id=3013, Weapondef=class'KFWeapDef_DoubleBarrel', MIC_1P=("WEP_SkinSetPSN03_MAT.woodland_doublebarrel.Woodland_DoubleBarrel_1P_Mint_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.woodland_doublebarrel.Woodland_DoubleBarrel_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.woodland_doublebarrel.Woodland_DoubleBarrel_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=3014, Weapondef=class'KFWeapDef_DoubleBarrel', MIC_1P=("WEP_SkinSetPSN03_MAT.woodland_doublebarrel.Woodland_DoubleBarrel_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.woodland_doublebarrel.Woodland_DoubleBarrel_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.woodland_doublebarrel.Woodland_DoubleBarrel_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=3014, Weapondef=class'KFWeapDef_DoubleBarrel', MIC_1P=("WEP_SkinSetPSN03_MAT.woodland_doublebarrel.Woodland_DoubleBarrel_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.woodland_doublebarrel.Woodland_DoubleBarrel_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.woodland_doublebarrel.Woodland_DoubleBarrel_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=3015, Weapondef=class'KFWeapDef_DoubleBarrel', MIC_1P=("WEP_SkinSetPSN03_MAT.woodland_doublebarrel.Woodland_DoubleBarrel_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.woodland_doublebarrel.Woodland_DoubleBarrel_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.woodland_doublebarrel.Woodland_DoubleBarrel_3P_Pickup_MIC"))
|
||||
|
||||
//Woodland L85A2
|
||||
Skins.Add((Id=3016, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSetPSN03_MAT.woodland_bullpup.Woodland_Bullpup_1P_Mint_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.woodland_bullpup.Woodland_Bullpup_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.woodland_bullpup.Woodland_Bullpup_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=3017, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSetPSN03_MAT.woodland_bullpup.Woodland_Bullpup_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.woodland_bullpup.Woodland_Bullpup_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.woodland_bullpup.Woodland_Bullpup_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=3017, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSetPSN03_MAT.woodland_bullpup.Woodland_Bullpup_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.woodland_bullpup.Woodland_Bullpup_3P_Mint_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.woodland_bullpup.Woodland_Bullpup_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=3018, Weapondef=class'KFWeapDef_Bullpup', MIC_1P=("WEP_SkinSetPSN03_MAT.woodland_bullpup.Woodland_Bullpup_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSetPSN03_MAT.woodland_bullpup.Woodland_Bullpup_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSetPSN03_MAT.woodland_bullpup.Woodland_Bullpup_3P_Pickup_MIC"))
|
||||
|
||||
//Woodland Scar
|
||||
@ -863,7 +863,7 @@ defaultproperties
|
||||
|
||||
//Victorian Double Barrel
|
||||
Skins.Add((Id=4047, Weapondef=class'KFWeapDef_DoubleBarrel', MIC_1P=("WEP_SkinSet06_MAT.victorian_doublebarrel.Victorian_DoubleBarrel_1P_Mint_MIC"), MIC_3P="WEP_SkinSet06_MAT.victorian_doublebarrel.Victorian_DoubleBarrel_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet06_MAT.victorian_doublebarrel.Victorian_DoubleBarrel_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4046, Weapondef=class'KFWeapDef_DoubleBarrel', MIC_1P=("WEP_SkinSet06_MAT.victorian_doublebarrel.Victorian_DoubleBarrel_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet06_MAT.victorian_doublebarrel.Victorian_DoubleBarrel_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet06_MAT.victorian_doublebarrel.Victorian_DoubleBarrel_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4046, Weapondef=class'KFWeapDef_DoubleBarrel', MIC_1P=("WEP_SkinSet06_MAT.victorian_doublebarrel.Victorian_DoubleBarrel_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet06_MAT.victorian_doublebarrel.Victorian_DoubleBarrel_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet06_MAT.victorian_doublebarrel.Victorian_DoubleBarrel_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4045, Weapondef=class'KFWeapDef_DoubleBarrel', MIC_1P=("WEP_SkinSet06_MAT.victorian_doublebarrel.Victorian_DoubleBarrel_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet06_MAT.victorian_doublebarrel.Victorian_DoubleBarrel_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet06_MAT.victorian_doublebarrel.Victorian_DoubleBarrel_3P_Pickup_MIC"))
|
||||
|
||||
//Victorian M4
|
||||
@ -920,7 +920,7 @@ defaultproperties
|
||||
|
||||
//Tactical AA12
|
||||
Skins.Add((Id=4460, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet07_MAT.tactical_aa12.Tactical_AA12_1P_Mint_MIC"), MIC_3P="WEP_SkinSet07_MAT.tactical_aa12.Tactical_AA12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet07_MAT.tactical_aa12.Tactical_AA12_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4459, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet07_MAT.tactical_aa12.Tactical_AA12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet07_MAT.tactical_aa12.Tactical_AA12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet07_MAT.tactical_aa12.Tactical_AA12_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4459, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet07_MAT.tactical_aa12.Tactical_AA12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet07_MAT.tactical_aa12.Tactical_AA12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet07_MAT.tactical_aa12.Tactical_AA12_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4458, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet07_MAT.tactical_aa12.Tactical_AA12_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet07_MAT.tactical_aa12.Tactical_AA12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet07_MAT.tactical_aa12.Tactical_AA12_3P_Pickup_MIC"))
|
||||
|
||||
//Tactical AK12
|
||||
@ -980,92 +980,92 @@ defaultproperties
|
||||
|
||||
//Deepstrike 9mm
|
||||
Skins.Add((Id=4359, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_9mm.Deepstrike_9mm_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_9mm.Deepstrike_9mm_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_9mm.Deepstrike_9mm_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4358, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_9mm.Deepstrike_9mm_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_9mm.Deepstrike_9mm_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_9mm.Deepstrike_9mm_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4358, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_9mm.Deepstrike_9mm_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_9mm.Deepstrike_9mm_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_9mm.Deepstrike_9mm_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4357, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_9mm.Deepstrike_9mm_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_9mm.Deepstrike_9mm_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_9mm.Deepstrike_9mm_3P_Pickup_MIC"))
|
||||
|
||||
//Deepstrike Crossbow
|
||||
Skins.Add((Id=4362, Weapondef=class'KFWeapDef_Crossbow', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_1P_Mint_MIC", "WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4361, Weapondef=class'KFWeapDef_Crossbow', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_1P_FieldTested_MIC", "WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4361, Weapondef=class'KFWeapDef_Crossbow', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_1P_FieldTested_MIC", "WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4360, Weapondef=class'KFWeapDef_Crossbow', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_1P_BattleScarred_MIC", "WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_crossbow.Deepstrike_Crossbow_3P_Pickup_MIC"))
|
||||
|
||||
//Deepstrike Desert Eagle
|
||||
Skins.Add((Id=4365, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_deagle.Deepstrike_Deagle_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_deagle.Deepstrike_Deagle_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_deagle.Deepstrike_Deagle_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4364, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_deagle.Deepstrike_Deagle_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_deagle.Deepstrike_Deagle_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_deagle.Deepstrike_Deagle_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4364, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_deagle.Deepstrike_Deagle_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_deagle.Deepstrike_Deagle_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_deagle.Deepstrike_Deagle_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4363, Weapondef=class'KFWeapDef_Deagle', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_deagle.Deepstrike_Deagle_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_deagle.Deepstrike_Deagle_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_deagle.Deepstrike_Deagle_3P_Pickup_MIC"))
|
||||
|
||||
//Deepstrike Winchester 1894
|
||||
Skins.Add((Id=4368, Weapondef=class'KFWeapDef_Winchester1894', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_lar.Deepstrike_LAR_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_lar.Deepstrike_LAR_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_lar.Deepstrike_LAR_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4367, Weapondef=class'KFWeapDef_Winchester1894', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_lar.Deepstrike_LAR_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_lar.Deepstrike_LAR_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_lar.Deepstrike_LAR_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4367, Weapondef=class'KFWeapDef_Winchester1894', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_lar.Deepstrike_LAR_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_lar.Deepstrike_LAR_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_lar.Deepstrike_LAR_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4366, Weapondef=class'KFWeapDef_Winchester1894', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_lar.Deepstrike_LAR_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_lar.Deepstrike_LAR_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_lar.Deepstrike_LAR_3P_Pickup_MIC"))
|
||||
|
||||
//Deepstrike M79
|
||||
Skins.Add((Id=4371, Weapondef=class'KFWeapDef_M79', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_m79.Deepstrike_M79_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_m79.Deepstrike_M79_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_m79.Deepstrike_M79_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4370, Weapondef=class'KFWeapDef_M79', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_m79.Deepstrike_M79_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_m79.Deepstrike_M79_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_m79.Deepstrike_M79_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4370, Weapondef=class'KFWeapDef_M79', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_m79.Deepstrike_M79_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_m79.Deepstrike_M79_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_m79.Deepstrike_M79_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4369, Weapondef=class'KFWeapDef_M79', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_m79.Deepstrike_M79_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_m79.Deepstrike_M79_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_m79.Deepstrike_M79_3P_Pickup_MIC"))
|
||||
|
||||
//Deepstrike RPG7
|
||||
Skins.Add((Id=4374, Weapondef=class'KFWeapDef_RPG7', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_rpg7.Deepstrike_RPG7_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_rpg7.Deepstrike_RPG7_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_rpg7.Deepstrike_RPG7_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4373, Weapondef=class'KFWeapDef_RPG7', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_rpg7.Deepstrike_RPG7_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_rpg7.Deepstrike_RPG7_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_rpg7.Deepstrike_RPG7_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4373, Weapondef=class'KFWeapDef_RPG7', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_rpg7.Deepstrike_RPG7_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_rpg7.Deepstrike_RPG7_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_rpg7.Deepstrike_RPG7_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4372, Weapondef=class'KFWeapDef_RPG7', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_rpg7.Deepstrike_RPG7_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_rpg7.Deepstrike_RPG7_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_rpg7.Deepstrike_RPG7_3P_Pickup_MIC"))
|
||||
|
||||
//Deepstrike SCAR
|
||||
Skins.Add((Id=4377, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_1P_Mint_MIC", "WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4376, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_1P_FieldTested_MIC", "WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4376, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_1P_FieldTested_MIC", "WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4375, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_1P_BattleScarred_MIC", "WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet09_MAT.deepstrike_scar.Deepstrike_SCAR_3P_Pickup_MIC"))
|
||||
|
||||
//Horzine Elite Blue Kriss
|
||||
Skins.Add((Id=4572, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_1P_Mint_MIC", "WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4571, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_1P_FieldTested_MIC", "WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4571, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_1P_FieldTested_MIC", "WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4570, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_1P_BattleScarred_MIC", "WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineeliteblue_kriss.HorzineEliteBlue_Kriss_3P_Pickup_MIC"))
|
||||
|
||||
//Horzine Elite Green Kriss
|
||||
Skins.Add((Id=4575, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_1P_Mint_MIC", "WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4574, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_1P_FieldTested_MIC", "WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4574, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_1P_FieldTested_MIC", "WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4573, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_1P_BattleScarred_MIC", "WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineelitegreen_kriss.HorzineEliteGreen_Kriss_3P_Pickup_MIC"))
|
||||
|
||||
//Horzine Elite Red Kriss
|
||||
Skins.Add((Id=4578, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_1P_Mint_MIC", "WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4577, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_1P_FieldTested_MIC", "WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4577, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_1P_FieldTested_MIC", "WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4576, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_1P_BattleScarred_MIC", "WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineelitered_kriss.HorzineEliteRed_Kriss_3P_Pickup_MIC"))
|
||||
|
||||
//Horzine Elite White Kriss
|
||||
Skins.Add((Id=4581, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_1P_Mint_MIC", "WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4580, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_1P_FieldTested_MIC", "WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4580, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_1P_FieldTested_MIC", "WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4579, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_1P_BattleScarred_MIC", "WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet09_MAT.horzineelitewhite_kriss.HorzineEliteWhite_Kriss_3P_Pickup_MIC"))
|
||||
|
||||
//Industrial Crossbow
|
||||
Skins.Add((Id=4720, Weapondef=class'KFWeapDef_Crossbow', MIC_1P=("WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_1P_Mint_MIC", "WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4719, Weapondef=class'KFWeapDef_Crossbow', MIC_1P=("WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_1P_FieldTested_MIC", "WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4719, Weapondef=class'KFWeapDef_Crossbow', MIC_1P=("WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_1P_FieldTested_MIC", "WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4718, Weapondef=class'KFWeapDef_Crossbow', MIC_1P=("WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_1P_BattleScarred_MIC", "WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_crossbow.Industrial_Crossbow_3P_Pickup_MIC"))
|
||||
|
||||
//Shredder (Industrial) Kriss
|
||||
Skins.Add((Id=4723, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet10_MAT.industrial_kriss.Industrial_Kriss_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_kriss.Industrial_Kriss_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_kriss.Industrial_Kriss_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4722, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet10_MAT.industrial_kriss.Industrial_Kriss_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_kriss.Industrial_Kriss_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_kriss.Industrial_Kriss_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4722, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet10_MAT.industrial_kriss.Industrial_Kriss_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_kriss.Industrial_Kriss_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_kriss.Industrial_Kriss_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4721, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet10_MAT.industrial_kriss.Industrial_Kriss_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_kriss.Industrial_Kriss_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_kriss.Industrial_Kriss_3P_Pickup_MIC"))
|
||||
|
||||
//Industrial M14EBR
|
||||
Skins.Add((Id=4726, Weapondef=class'KFWeapDef_M14EBR', MIC_1P=("WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_1P_Mint_MIC", "WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4725, Weapondef=class'KFWeapDef_M14EBR', MIC_1P=("WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_1P_FieldTested_MIC", "WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4725, Weapondef=class'KFWeapDef_M14EBR', MIC_1P=("WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_1P_FieldTested_MIC", "WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4724, Weapondef=class'KFWeapDef_M14EBR', MIC_1P=("WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_1P_BattleScarred_MIC", "WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_m14ebr.Industrial_M14EBR_3P_Pickup_MIC"))
|
||||
|
||||
//Industrial MP5RAS
|
||||
Skins.Add((Id=4729, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet10_MAT.industrial_mp5ras.Industrial_MP5RAS_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_mp5ras.Industrial_MP5RAS_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_mp5ras.Industrial_MP5RAS_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4728, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet10_MAT.industrial_mp5ras.Industrial_MP5RAS_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_mp5ras.Industrial_MP5RAS_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_mp5ras.Industrial_MP5RAS_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4728, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet10_MAT.industrial_mp5ras.Industrial_MP5RAS_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_mp5ras.Industrial_MP5RAS_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_mp5ras.Industrial_MP5RAS_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4727, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet10_MAT.industrial_mp5ras.Industrial_MP5RAS_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_mp5ras.Industrial_MP5RAS_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_mp5ras.Industrial_MP5RAS_3P_Pickup_MIC"))
|
||||
|
||||
//Jackhammer (Industrial) MP7
|
||||
Skins.Add((Id=4732, Weapondef=class'KFWeapDef_MP7', MIC_1P=("WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_1P_Mint_MIC", "WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4731, Weapondef=class'KFWeapDef_MP7', MIC_1P=("WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_1P_FieldTested_MIC", "WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4731, Weapondef=class'KFWeapDef_MP7', MIC_1P=("WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_1P_FieldTested_MIC", "WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4730, Weapondef=class'KFWeapDef_MP7', MIC_1P=("WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_1P_BattleScarred_MIC", "WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_mp7.Industrial_MP7_3P_Pickup_MIC"))
|
||||
|
||||
//Buzzsaw (Industrial) P90
|
||||
Skins.Add((Id=4735, Weapondef=class'KFWeapDef_P90', MIC_1P=("WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_1P_Mint_MIC", "WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4734, Weapondef=class'KFWeapDef_P90', MIC_1P=("WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_1P_FieldTested_MIC", "WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4734, Weapondef=class'KFWeapDef_P90', MIC_1P=("WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_1P_FieldTested_MIC", "WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4733, Weapondef=class'KFWeapDef_P90', MIC_1P=("WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_1P_BattleScarred_MIC", "WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_p90.Industrial_P90_3P_Pickup_MIC"))
|
||||
|
||||
//High Voltage (Industrial) Railgun
|
||||
Skins.Add((Id=4738, Weapondef=class'KFWeapDef_RailGun', MIC_1P=("WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_1P_Mint_MIC", "WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4737, Weapondef=class'KFWeapDef_RailGun', MIC_1P=("WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_1P_FieldTested_MIC", "WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4737, Weapondef=class'KFWeapDef_RailGun', MIC_1P=("WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_1P_FieldTested_MIC", "WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4736, Weapondef=class'KFWeapDef_RailGun', MIC_1P=("WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_1P_BattleScarred_MIC", "WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet10_MAT.industrial_railgun.Industrial_RailGun_3P_Pickup_MIC"))
|
||||
|
||||
//Industrial SW500
|
||||
@ -1107,7 +1107,7 @@ defaultproperties
|
||||
Skins.Add((Id=4815, Weapondef=class'KFWeapDef_FlareGun', MIC_1P=("WEP_SkinSet11_MAT.flamered_flaregun.FlameRed_FlareGun_1P_Mint_MIC"), MIC_3P="WEP_SkinSet11_MAT.flamered_flaregun.FlameRed_FlareGun_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet11_MAT.flamered_flaregun.FlameRed_FlareGun_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4814, Weapondef=class'KFWeapDef_FlareGun', MIC_1P=("WEP_SkinSet11_MAT.flamered_flaregun.FlameRed_FlareGun_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet11_MAT.flamered_flaregun.FlameRed_FlareGun_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet11_MAT.flamered_flaregun.FlameRed_FlareGun_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4813, Weapondef=class'KFWeapDef_FlareGun', MIC_1P=("WEP_SkinSet11_MAT.flamered_flaregun.FlameRed_FlareGun_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet11_MAT.flamered_flaregun.FlameRed_FlareGun_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet11_MAT.flamered_flaregun.FlameRed_FlareGun_3P_Pickup_MIC"))
|
||||
|
||||
|
||||
//Vietnam AK12
|
||||
Skins.Add((Id=4970, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet12_MAT.vietnam_ak12.Vietnam_AK12_1P_Mint_MIC", "WEP_SkinSet12_MAT.vietnam_ak12.Vietnam_AK12_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_ak12.Vietnam_AK12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_ak12.Vietnam_AK12_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4969, Weapondef=class'KFWeapDef_Ak12', MIC_1P=("WEP_SkinSet12_MAT.vietnam_ak12.Vietnam_AK12_1P_FieldTested_MIC", "WEP_SkinSet12_MAT.vietnam_ak12.Vietnam_AK12_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet12_MAT.vietnam_ak12.Vietnam_AK12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet12_MAT.vietnam_ak12.Vietnam_AK12_3P_Pickup_MIC"))
|
||||
@ -1162,7 +1162,7 @@ defaultproperties
|
||||
|
||||
//Junkyard AA12
|
||||
Skins.Add((Id=4614, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet13_MAT.junkyard_aa12.Junkyard_AA12_1P_Mint_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_aa12.Junkyard_AA12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_aa12.Junkyard_AA12_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4613, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet13_MAT.junkyard_aa12.Junkyard_AA12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_aa12.Junkyard_AA12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_aa12.Junkyard_AA12_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4613, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet13_MAT.junkyard_aa12.Junkyard_AA12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_aa12.Junkyard_AA12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_aa12.Junkyard_AA12_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4612, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet13_MAT.junkyard_aa12.Junkyard_AA12_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_aa12.Junkyard_AA12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_aa12.Junkyard_AA12_3P_Pickup_MIC"))
|
||||
|
||||
//Junkyard AK12
|
||||
@ -1192,12 +1192,12 @@ defaultproperties
|
||||
|
||||
//Junkyard M4
|
||||
Skins.Add((Id=4626, Weapondef=class'KFWeapDef_M4', MIC_1P=("WEP_SkinSet13_MAT.junkyard_m4.Junkyard_M4_1P_Mint_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_m4.Junkyard_M4_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_m4.Junkyard_M4_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4625, Weapondef=class'KFWeapDef_M4', MIC_1P=("WEP_SkinSet13_MAT.junkyard_m4.Junkyard_M4_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_m4.Junkyard_M4_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_m4.Junkyard_M4_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4625, Weapondef=class'KFWeapDef_M4', MIC_1P=("WEP_SkinSet13_MAT.junkyard_m4.Junkyard_M4_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_m4.Junkyard_M4_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_m4.Junkyard_M4_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4624, Weapondef=class'KFWeapDef_M4', MIC_1P=("WEP_SkinSet13_MAT.junkyard_m4.Junkyard_M4_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_m4.Junkyard_M4_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_m4.Junkyard_M4_3P_Pickup_MIC"))
|
||||
|
||||
//Junkyard MP5RAS
|
||||
Skins.Add((Id=4629, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet13_MAT.junkyard_mp5ras.Junkyard_MP5RAS_1P_Mint_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_mp5ras.Junkyard_MP5RAS_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_mp5ras.Junkyard_MP5RAS_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4628, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet13_MAT.junkyard_mp5ras.Junkyard_MP5RAS_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_mp5ras.Junkyard_MP5RAS_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_mp5ras.Junkyard_MP5RAS_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4628, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet13_MAT.junkyard_mp5ras.Junkyard_MP5RAS_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_mp5ras.Junkyard_MP5RAS_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_mp5ras.Junkyard_MP5RAS_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4627, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet13_MAT.junkyard_mp5ras.Junkyard_MP5RAS_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_mp5ras.Junkyard_MP5RAS_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_mp5ras.Junkyard_MP5RAS_3P_Pickup_MIC"))
|
||||
|
||||
//Junkyard SCAR
|
||||
@ -1207,7 +1207,7 @@ defaultproperties
|
||||
|
||||
//Junkyard Winchester 1894
|
||||
Skins.Add((Id=4635, Weapondef=class'KFWeapDef_Winchester1894', MIC_1P=("WEP_SkinSet13_MAT.junkyard_winchester1894.Junkyard_Winchester1894_1P_Mint_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_winchester1894.Junkyard_Winchester1894_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_winchester1894.Junkyard_Winchester1894_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4634, Weapondef=class'KFWeapDef_Winchester1894', MIC_1P=("WEP_SkinSet13_MAT.junkyard_winchester1894.Junkyard_Winchester1894_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_winchester1894.Junkyard_Winchester1894_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_winchester1894.Junkyard_Winchester1894_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4634, Weapondef=class'KFWeapDef_Winchester1894', MIC_1P=("WEP_SkinSet13_MAT.junkyard_winchester1894.Junkyard_Winchester1894_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_winchester1894.Junkyard_Winchester1894_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_winchester1894.Junkyard_Winchester1894_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=4633, Weapondef=class'KFWeapDef_Winchester1894', MIC_1P=("WEP_SkinSet13_MAT.junkyard_winchester1894.Junkyard_Winchester1894_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet13_MAT.junkyard_winchester1894.Junkyard_Winchester1894_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet13_MAT.junkyard_winchester1894.Junkyard_Winchester1894_3P_Pickup_MIC"))
|
||||
|
||||
//Headshot Weekly Centerfire
|
||||
@ -1215,117 +1215,117 @@ defaultproperties
|
||||
|
||||
//Horzine Elite White MP5RAS
|
||||
Skins.Add((Id=5033, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineelitewhite_mp5ras.HorzineEliteWhite_MP5RAS_1P_Mint_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineelitewhite_mp5ras.HorzineEliteWhite_MP5RAS_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineelitewhite_mp5ras.HorzineEliteWhite_MP5RAS_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5032, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineelitewhite_mp5ras.HorzineEliteWhite_MP5RAS_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineelitewhite_mp5ras.HorzineEliteWhite_MP5RAS_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineelitewhite_mp5ras.HorzineEliteWhite_MP5RAS_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5032, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineelitewhite_mp5ras.HorzineEliteWhite_MP5RAS_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineelitewhite_mp5ras.HorzineEliteWhite_MP5RAS_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineelitewhite_mp5ras.HorzineEliteWhite_MP5RAS_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5031, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineelitewhite_mp5ras.HorzineEliteWhite_MP5RAS_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineelitewhite_mp5ras.HorzineEliteWhite_MP5RAS_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineelitewhite_mp5ras.HorzineEliteWhite_MP5RAS_3P_Pickup_MIC"))
|
||||
|
||||
//Horzine Elite Black MP5RAS
|
||||
Skins.Add((Id=5036, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineeliteblack_mp5ras.HorzineEliteBlack_MP5RAS_1P_Mint_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineeliteblack_mp5ras.HorzineEliteBlack_MP5RAS_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineeliteblack_mp5ras.HorzineEliteBlack_MP5RAS_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5035, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineeliteblack_mp5ras.HorzineEliteBlack_MP5RAS_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineeliteblack_mp5ras.HorzineEliteBlack_MP5RAS_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineeliteblack_mp5ras.HorzineEliteBlack_MP5RAS_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5035, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineeliteblack_mp5ras.HorzineEliteBlack_MP5RAS_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineeliteblack_mp5ras.HorzineEliteBlack_MP5RAS_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineeliteblack_mp5ras.HorzineEliteBlack_MP5RAS_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5034, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineeliteblack_mp5ras.HorzineEliteBlack_MP5RAS_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineeliteblack_mp5ras.HorzineEliteBlack_MP5RAS_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineeliteblack_mp5ras.HorzineEliteBlack_MP5RAS_3P_Pickup_MIC"))
|
||||
|
||||
//Horzine Elite Green MP5RAS
|
||||
Skins.Add((Id=5039, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineelitegreen_mp5ras.HorzineEliteGreen_MP5RAS_1P_Mint_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineelitegreen_mp5ras.HorzineEliteGreen_MP5RAS_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineelitegreen_mp5ras.HorzineEliteGreen_MP5RAS_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5038, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineelitegreen_mp5ras.HorzineEliteGreen_MP5RAS_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineelitegreen_mp5ras.HorzineEliteGreen_MP5RAS_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineelitegreen_mp5ras.HorzineEliteGreen_MP5RAS_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5038, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineelitegreen_mp5ras.HorzineEliteGreen_MP5RAS_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineelitegreen_mp5ras.HorzineEliteGreen_MP5RAS_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineelitegreen_mp5ras.HorzineEliteGreen_MP5RAS_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5037, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineelitegreen_mp5ras.HorzineEliteGreen_MP5RAS_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineelitegreen_mp5ras.HorzineEliteGreen_MP5RAS_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineelitegreen_mp5ras.HorzineEliteGreen_MP5RAS_3P_Pickup_MIC"))
|
||||
|
||||
//Horzine Elite Blue MP5RAS
|
||||
Skins.Add((Id=5042, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineeliteblue_mp5ras.HorzineEliteBlue_MP5RAS_1P_Mint_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineeliteblue_mp5ras.HorzineEliteBlue_MP5RAS_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineeliteblue_mp5ras.HorzineEliteBlue_MP5RAS_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5041, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineeliteblue_mp5ras.HorzineEliteBlue_MP5RAS_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineeliteblue_mp5ras.HorzineEliteBlue_MP5RAS_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineeliteblue_mp5ras.HorzineEliteBlue_MP5RAS_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5041, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineeliteblue_mp5ras.HorzineEliteBlue_MP5RAS_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineeliteblue_mp5ras.HorzineEliteBlue_MP5RAS_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineeliteblue_mp5ras.HorzineEliteBlue_MP5RAS_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5040, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineeliteblue_mp5ras.HorzineEliteBlue_MP5RAS_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineeliteblue_mp5ras.HorzineEliteBlue_MP5RAS_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineeliteblue_mp5ras.HorzineEliteBlue_MP5RAS_3P_Pickup_MIC"))
|
||||
|
||||
//Horzine Elite Red MP5RAS
|
||||
Skins.Add((Id=5045, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineelitered_mp5ras.HorzineEliteRed_MP5RAS_1P_Mint_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineelitered_mp5ras.HorzineEliteRed_MP5RAS_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineelitered_mp5ras.HorzineEliteRed_MP5RAS_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5044, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineelitered_mp5ras.HorzineEliteRed_MP5RAS_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineelitered_mp5ras.HorzineEliteRed_MP5RAS_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineelitered_mp5ras.HorzineEliteRed_MP5RAS_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5044, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineelitered_mp5ras.HorzineEliteRed_MP5RAS_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineelitered_mp5ras.HorzineEliteRed_MP5RAS_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineelitered_mp5ras.HorzineEliteRed_MP5RAS_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5043, Weapondef=class'KFWeapDef_MP5RAS', MIC_1P=("WEP_SkinSet15_MAT.horzineelitered_mp5ras.HorzineEliteRed_MP5RAS_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet15_MAT.horzineelitered_mp5ras.HorzineEliteRed_MP5RAS_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet15_MAT.horzineelitered_mp5ras.HorzineEliteRed_MP5RAS_3P_Pickup_MIC"))
|
||||
|
||||
//Halloween 9mm
|
||||
Skins.Add((Id=5115, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet14_MAT.halloween_9mm.Halloween_9MM_1P_Mint_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_9mm.Halloween_9MM_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_9mm.Halloween_9MM_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5114, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet14_MAT.halloween_9mm.Halloween_9MM_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_9mm.Halloween_9MM_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_9mm.Halloween_9MM_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5114, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet14_MAT.halloween_9mm.Halloween_9MM_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_9mm.Halloween_9MM_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_9mm.Halloween_9MM_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5113, Weapondef=class'KFWeapDef_9mm', MIC_1P=("WEP_SkinSet14_MAT.halloween_9mm.Halloween_9MM_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_9mm.Halloween_9MM_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_9mm.Halloween_9MM_3P_Pickup_MIC"))
|
||||
|
||||
//Halloween Crossbow
|
||||
Skins.Add((Id=5118, Weapondef=class'KFWeapDef_Crossbow', MIC_1P=("WEP_SkinSet14_MAT.halloween_crossbow.Halloween_Crossbow_1P_Mint_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_crossbow.Halloween_Crossbow_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_crossbow.Halloween_Crossbow_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5117, Weapondef=class'KFWeapDef_Crossbow', MIC_1P=("WEP_SkinSet14_MAT.halloween_crossbow.Halloween_Crossbow_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_crossbow.Halloween_Crossbow_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_crossbow.Halloween_Crossbow_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5117, Weapondef=class'KFWeapDef_Crossbow', MIC_1P=("WEP_SkinSet14_MAT.halloween_crossbow.Halloween_Crossbow_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_crossbow.Halloween_Crossbow_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_crossbow.Halloween_Crossbow_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5116, Weapondef=class'KFWeapDef_Crossbow', MIC_1P=("WEP_SkinSet14_MAT.halloween_crossbow.Halloween_Crossbow_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_crossbow.Halloween_Crossbow_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_crossbow.Halloween_Crossbow_3P_Pickup_MIC"))
|
||||
|
||||
//Halloween Flamethrower
|
||||
Skins.Add((Id=5121, Weapondef=class'KFWeapDef_FlameThrower', MIC_1P=("WEP_SkinSet14_MAT.halloween_flamethrower.Halloween_Flamethrower_1P_Mint_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_flamethrower.Halloween_Flamethrower_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_flamethrower.Halloween_Flamethrower_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5120, Weapondef=class'KFWeapDef_FlameThrower', MIC_1P=("WEP_SkinSet14_MAT.halloween_flamethrower.Halloween_Flamethrower_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_flamethrower.Halloween_Flamethrower_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_flamethrower.Halloween_Flamethrower_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5120, Weapondef=class'KFWeapDef_FlameThrower', MIC_1P=("WEP_SkinSet14_MAT.halloween_flamethrower.Halloween_Flamethrower_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_flamethrower.Halloween_Flamethrower_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_flamethrower.Halloween_Flamethrower_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5119, Weapondef=class'KFWeapDef_FlameThrower', MIC_1P=("WEP_SkinSet14_MAT.halloween_flamethrower.Halloween_Flamethrower_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_flamethrower.Halloween_Flamethrower_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_flamethrower.Halloween_Flamethrower_3P_Pickup_MIC"))
|
||||
|
||||
//Halloween Healer
|
||||
Skins.Add((Id=5124, Weapondef=class'KFWeapDef_Healer', MIC_1P=("WEP_SkinSet14_MAT.halloween_healer.Halloween_Healer_1P_Mint_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_healer.Halloween_Healer_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_healer.Halloween_Healer_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5123, Weapondef=class'KFWeapDef_Healer', MIC_1P=("WEP_SkinSet14_MAT.halloween_healer.Halloween_Healer_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_healer.Halloween_Healer_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_healer.Halloween_Healer_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5123, Weapondef=class'KFWeapDef_Healer', MIC_1P=("WEP_SkinSet14_MAT.halloween_healer.Halloween_Healer_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_healer.Halloween_Healer_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_healer.Halloween_Healer_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5122, Weapondef=class'KFWeapDef_Healer', MIC_1P=("WEP_SkinSet14_MAT.halloween_healer.Halloween_Healer_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_healer.Halloween_Healer_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_healer.Halloween_Healer_3P_Pickup_MIC"))
|
||||
|
||||
//Halloween HZ12
|
||||
Skins.Add((Id=5127, Weapondef=class'KFWeapDef_HZ12', MIC_1P=("WEP_SkinSet14_MAT.halloween_hz12.Halloween_HZ12_1P_Mint_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_hz12.Halloween_HZ12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_hz12.Halloween_HZ12_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5126, Weapondef=class'KFWeapDef_HZ12', MIC_1P=("WEP_SkinSet14_MAT.halloween_hz12.Halloween_HZ12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_hz12.Halloween_HZ12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_hz12.Halloween_HZ12_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5126, Weapondef=class'KFWeapDef_HZ12', MIC_1P=("WEP_SkinSet14_MAT.halloween_hz12.Halloween_HZ12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_hz12.Halloween_HZ12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_hz12.Halloween_HZ12_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5125, Weapondef=class'KFWeapDef_HZ12', MIC_1P=("WEP_SkinSet14_MAT.halloween_hz12.Halloween_HZ12_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_hz12.Halloween_HZ12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_hz12.Halloween_HZ12_3P_Pickup_MIC"))
|
||||
|
||||
//Halloween Katana
|
||||
Skins.Add((Id=5130, Weapondef=class'KFWeapDef_Katana', MIC_1P=("WEP_SkinSet14_MAT.halloween_katana.Halloween_Katana_1P_Mint_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_katana.Halloween_Katana_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_katana.Halloween_Katana_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5129, Weapondef=class'KFWeapDef_Katana', MIC_1P=("WEP_SkinSet14_MAT.halloween_katana.Halloween_Katana_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_katana.Halloween_Katana_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_katana.Halloween_Katana_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5129, Weapondef=class'KFWeapDef_Katana', MIC_1P=("WEP_SkinSet14_MAT.halloween_katana.Halloween_Katana_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_katana.Halloween_Katana_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_katana.Halloween_Katana_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5128, Weapondef=class'KFWeapDef_Katana', MIC_1P=("WEP_SkinSet14_MAT.halloween_katana.Halloween_Katana_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_katana.Halloween_Katana_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_katana.Halloween_Katana_3P_Pickup_MIC"))
|
||||
|
||||
//Halloween Kriss
|
||||
Skins.Add((Id=5133, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet14_MAT.halloween_kriss.Halloween_Kriss_1P_Mint_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_kriss.Halloween_Kriss_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_kriss.Halloween_Kriss_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5132, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet14_MAT.halloween_kriss.Halloween_Kriss_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_kriss.Halloween_Kriss_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_kriss.Halloween_Kriss_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5132, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet14_MAT.halloween_kriss.Halloween_Kriss_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_kriss.Halloween_Kriss_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_kriss.Halloween_Kriss_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5131, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet14_MAT.halloween_kriss.Halloween_Kriss_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_kriss.Halloween_Kriss_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_kriss.Halloween_Kriss_3P_Pickup_MIC"))
|
||||
|
||||
//Halloween M79
|
||||
Skins.Add((Id=5136, Weapondef=class'KFWeapDef_M79', MIC_1P=("WEP_SkinSet14_MAT.halloween_m79.Halloween_M79_1P_Mint_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_m79.Halloween_M79_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_m79.Halloween_M79_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5135, Weapondef=class'KFWeapDef_M79', MIC_1P=("WEP_SkinSet14_MAT.halloween_m79.Halloween_M79_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_m79.Halloween_M79_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_m79.Halloween_M79_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5135, Weapondef=class'KFWeapDef_M79', MIC_1P=("WEP_SkinSet14_MAT.halloween_m79.Halloween_M79_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_m79.Halloween_M79_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_m79.Halloween_M79_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5134, Weapondef=class'KFWeapDef_M79', MIC_1P=("WEP_SkinSet14_MAT.halloween_m79.Halloween_M79_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_m79.Halloween_M79_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_m79.Halloween_M79_3P_Pickup_MIC"))
|
||||
|
||||
//Halloween Stoner 63A
|
||||
Skins.Add((Id=5139, Weapondef=class'KFWeapDef_Stoner63A', MIC_1P=("WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_1P_Mint_MIC", "WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_Receiver_1P_Mint_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5138, Weapondef=class'KFWeapDef_Stoner63A', MIC_1P=("WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_1P_FieldTested_MIC", "WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_Receiver_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5138, Weapondef=class'KFWeapDef_Stoner63A', MIC_1P=("WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_1P_FieldTested_MIC", "WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_Receiver_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5137, Weapondef=class'KFWeapDef_Stoner63A', MIC_1P=("WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_1P_BattleScarred_MIC", "WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_Receiver_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet14_MAT.halloween_stoner63a.Halloween_Stoner63a_3P_Pickup_MIC"))
|
||||
|
||||
//Neon MB500
|
||||
Skins.Add((Id=5160, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet16_MAT.neon_mb500.Neon_MB500_1P_Mint_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_mb500.Neon_MB500_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_mb500.Neon_MB500_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5159, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet16_MAT.neon_mb500.Neon_MB500_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_mb500.Neon_MB500_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_mb500.Neon_MB500_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5159, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet16_MAT.neon_mb500.Neon_MB500_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_mb500.Neon_MB500_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_mb500.Neon_MB500_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5158, Weapondef=class'KFWeapDef_MB500', MIC_1P=("WEP_SkinSet16_MAT.neon_mb500.Neon_MB500_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_mb500.Neon_MB500_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_mb500.Neon_MB500_3P_Pickup_MIC"))
|
||||
|
||||
//Neon Railgun
|
||||
Skins.Add((Id=5163, Weapondef=class'KFWeapDef_RailGun', MIC_1P=("WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_1P_Mint_MIC", "WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5162, Weapondef=class'KFWeapDef_RailGun', MIC_1P=("WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_1P_FieldTested_MIC", "WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_Scope_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5162, Weapondef=class'KFWeapDef_RailGun', MIC_1P=("WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_1P_FieldTested_MIC", "WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_Scope_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5161, Weapondef=class'KFWeapDef_RailGun', MIC_1P=("WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_1P_BattleScarred_MIC", "WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_Scope_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_railgun.Neon_Railgun_3P_Pickup_MIC"))
|
||||
|
||||
//Neon RPG7
|
||||
Skins.Add((Id=5166, Weapondef=class'KFWeapDef_RPG7', MIC_1P=("WEP_SkinSet16_MAT.neon_rpg7.Neon_RPG7_1P_Mint_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_rpg7.Neon_RPG7_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_rpg7.Neon_RPG7_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5165, Weapondef=class'KFWeapDef_RPG7', MIC_1P=("WEP_SkinSet16_MAT.neon_rpg7.Neon_RPG7_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_rpg7.Neon_RPG7_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_rpg7.Neon_RPG7_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5165, Weapondef=class'KFWeapDef_RPG7', MIC_1P=("WEP_SkinSet16_MAT.neon_rpg7.Neon_RPG7_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_rpg7.Neon_RPG7_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_rpg7.Neon_RPG7_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5164, Weapondef=class'KFWeapDef_RPG7', MIC_1P=("WEP_SkinSet16_MAT.neon_rpg7.Neon_RPG7_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_rpg7.Neon_RPG7_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_rpg7.Neon_RPG7_3P_Pickup_MIC"))
|
||||
|
||||
//Neon Scar
|
||||
Skins.Add((Id=5169, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_1P_Mint_MIC", "WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5168, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_1P_FieldTested_MIC", "WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_Scope_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5168, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_1P_FieldTested_MIC", "WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_Scope_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5167, Weapondef=class'KFWeapDef_SCAR', MIC_1P=("WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_1P_BattleScarred_MIC", "WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_Scope_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_scar.Neon_SCAR_3P_Pickup_MIC"))
|
||||
|
||||
//Neon M1911
|
||||
Skins.Add((Id=5172, Weapondef=class'KFWeapDef_Colt1911', MIC_1P=("WEP_SkinSet16_MAT.neon_m1911.Neon_M1911_1P_Mint_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_m1911.Neon_M1911_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_m1911.Neon_M1911_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5171, Weapondef=class'KFWeapDef_Colt1911', MIC_1P=("WEP_SkinSet16_MAT.neon_m1911.Neon_M1911_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_m1911.Neon_M1911_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_m1911.Neon_M1911_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5171, Weapondef=class'KFWeapDef_Colt1911', MIC_1P=("WEP_SkinSet16_MAT.neon_m1911.Neon_M1911_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_m1911.Neon_M1911_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_m1911.Neon_M1911_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5170, Weapondef=class'KFWeapDef_Colt1911', MIC_1P=("WEP_SkinSet16_MAT.neon_m1911.Neon_M1911_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_m1911.Neon_M1911_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_m1911.Neon_M1911_3P_Pickup_MIC"))
|
||||
|
||||
//Neon Katana
|
||||
Skins.Add((Id=5175, Weapondef=class'KFWeapDef_Katana', MIC_1P=("WEP_SkinSet16_MAT.neon_katana.Neon_Katana_1P_Mint_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_katana.Neon_Katana_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_katana.Neon_Katana_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5174, Weapondef=class'KFWeapDef_Katana', MIC_1P=("WEP_SkinSet16_MAT.neon_katana.Neon_Katana_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_katana.Neon_Katana_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_katana.Neon_Katana_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5174, Weapondef=class'KFWeapDef_Katana', MIC_1P=("WEP_SkinSet16_MAT.neon_katana.Neon_Katana_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_katana.Neon_Katana_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_katana.Neon_Katana_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5173, Weapondef=class'KFWeapDef_Katana', MIC_1P=("WEP_SkinSet16_MAT.neon_katana.Neon_Katana_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_katana.Neon_Katana_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_katana.Neon_Katana_3P_Pickup_MIC"))
|
||||
|
||||
//Neon Dragonsbreath
|
||||
Skins.Add((Id=5178, Weapondef=class'KFWeapDef_DragonsBreath', MIC_1P=("WEP_SkinSet16_MAT.neon_dragonsbreath.Neon_DragonsBreath_1P_Mint_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_dragonsbreath.Neon_DragonsBreath_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_dragonsbreath.Neon_DragonsBreath_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5177, Weapondef=class'KFWeapDef_DragonsBreath', MIC_1P=("WEP_SkinSet16_MAT.neon_dragonsbreath.Neon_DragonsBreath_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_dragonsbreath.Neon_DragonsBreath_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_dragonsbreath.Neon_DragonsBreath_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5177, Weapondef=class'KFWeapDef_DragonsBreath', MIC_1P=("WEP_SkinSet16_MAT.neon_dragonsbreath.Neon_DragonsBreath_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_dragonsbreath.Neon_DragonsBreath_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_dragonsbreath.Neon_DragonsBreath_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5176, Weapondef=class'KFWeapDef_DragonsBreath', MIC_1P=("WEP_SkinSet16_MAT.neon_dragonsbreath.Neon_DragonsBreath_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_dragonsbreath.Neon_DragonsBreath_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_dragonsbreath.Neon_DragonsBreath_3P_Pickup_MIC"))
|
||||
|
||||
//Neon Kriss
|
||||
Skins.Add((Id=5181, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_1P_Mint_MIC", "WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_Sight_1P_Mint_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5180, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_1P_FieldTested_MIC", "WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_Sight_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5180, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_1P_FieldTested_MIC", "WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_Sight_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5179, Weapondef=class'KFWeapDef_Kriss', MIC_1P=("WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_1P_BattleScarred_MIC", "WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_Sight_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet16_MAT.neon_kriss.Neon_KRISS_3P_Pickup_MIC"))
|
||||
|
||||
//Vault Pink MP7
|
||||
Skins.Add((Id=5291, Weapondef=class'KFWeapDef_MP7', MIC_1P=("WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_1P_Mint_MIC", "WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5290, Weapondef=class'KFWeapDef_MP7', MIC_1P=("WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_1P_FieldTested_MIC", "WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5290, Weapondef=class'KFWeapDef_MP7', MIC_1P=("WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_1P_FieldTested_MIC", "WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5289, Weapondef=class'KFWeapDef_MP7', MIC_1P=("WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_1P_BattleScarred_MIC", "WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_Scope_1P_Mint_MIC"), MIC_3P="WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet17_MAT.cute_mp7.Vault_Cute_MP7_3P_Pickup_MIC"))
|
||||
|
||||
//Vault Honorable Death AK12
|
||||
@ -1347,4 +1347,5 @@ defaultproperties
|
||||
Skins.Add((Id=5303, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet17_MAT.sports_aa12.Vault_Sports_AA12_1P_Mint_MIC"), MIC_3P="WEP_SkinSet17_MAT.sports_aa12.Vault_Sports_AA12_3P_Mint_MIC", MIC_Pickup="WEP_SkinSet17_MAT.sports_aa12.Vault_Sports_AA12_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5302, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet17_MAT.sports_aa12.Vault_Sports_AA12_1P_FieldTested_MIC"), MIC_3P="WEP_SkinSet17_MAT.sports_aa12.Vault_Sports_AA12_3P_FieldTested_MIC", MIC_Pickup="WEP_SkinSet17_MAT.sports_aa12.Vault_Sports_AA12_3P_Pickup_MIC"))
|
||||
Skins.Add((Id=5301, Weapondef=class'KFWeapDef_AA12', MIC_1P=("WEP_SkinSet17_MAT.sports_aa12.Vault_Sports_AA12_1P_BattleScarred_MIC"), MIC_3P="WEP_SkinSet17_MAT.sports_aa12.Vault_Sports_AA12_3P_BattleScarred_MIC", MIC_Pickup="WEP_SkinSet17_MAT.sports_aa12.Vault_Sports_AA12_3P_Pickup_MIC"))
|
||||
|
||||
}
|
@ -15,7 +15,7 @@ struct FWebAdminConfigInfo
|
||||
var name PropName;
|
||||
var string UIName,UIDesc;
|
||||
var int NumElements;
|
||||
|
||||
|
||||
structdefaultproperties
|
||||
{
|
||||
NumElements=1
|
||||
@ -44,7 +44,7 @@ final function Cleanup()
|
||||
final function AddSettingsPage(string PageName, class<Object> Obj, const out array<FWebAdminConfigInfo> Configs, delegate<OnGetValue> GetFunc, delegate<OnSetValue> SetFunc)
|
||||
{
|
||||
local int i;
|
||||
|
||||
|
||||
i = ConfigList.Find('PageName',PageName);
|
||||
if (i>=0) // Make sure no dupe pages.
|
||||
PageName $= "_"$(ConfigList[i].Dupes++);
|
||||
|
@ -6,7 +6,7 @@ var byte PPerkLevels[6];
|
||||
struct ExtMemberSlotStruct
|
||||
{
|
||||
var class<Ext_PerkBase> PerkClass;
|
||||
|
||||
|
||||
structdefaultproperties
|
||||
{
|
||||
PerkClass=none
|
||||
@ -16,7 +16,7 @@ var ExtMemberSlotStruct ExtMemberSlots[13];
|
||||
|
||||
function GFxObject RefreshSlot(int SlotIndex, KFPlayerReplicationInfo KFPRI)
|
||||
{
|
||||
local string PlayerName;
|
||||
local string PlayerName;
|
||||
local UniqueNetId AdminId;
|
||||
local bool bIsLeader;
|
||||
local bool bIsMyPlayer;
|
||||
@ -26,7 +26,7 @@ function GFxObject RefreshSlot(int SlotIndex, KFPlayerReplicationInfo KFPRI)
|
||||
|
||||
PlayerInfoObject = CreateObject("Object");
|
||||
EPC = ExtPlayerController(GetPC());
|
||||
|
||||
|
||||
if (KFPRI != none)
|
||||
{
|
||||
EPRI = ExtPlayerReplicationInfo(KFPRI);
|
||||
@ -45,12 +45,12 @@ function GFxObject RefreshSlot(int SlotIndex, KFPlayerReplicationInfo KFPRI)
|
||||
PerkIconObject = CreateObject("Object");
|
||||
PerkIconObject.SetString("perkIcon", ExtMemberSlots[SlotIndex].PerkClass.static.GetPerkIconPath(EPRI.ECurrentPerkLevel));
|
||||
PlayerInfoObject.SetObject("perkImageSource", PerkIconObject);
|
||||
|
||||
|
||||
PlayerInfoObject.SetString("perkLevel", string(EPRI.ECurrentPerkLevel));
|
||||
}
|
||||
if (!bIsMyPlayer)
|
||||
{
|
||||
PlayerInfoObject.SetBool("muted", EPC.IsPlayerMuted(EPRI.UniqueId));
|
||||
PlayerInfoObject.SetBool("muted", EPC.IsPlayerMuted(EPRI.UniqueId));
|
||||
}
|
||||
if (class'WorldInfo'.static.IsE3Build())
|
||||
{
|
||||
@ -68,13 +68,13 @@ function GFxObject RefreshSlot(int SlotIndex, KFPlayerReplicationInfo KFPRI)
|
||||
else
|
||||
{
|
||||
PlayerInfoObject.SetString("profileImageSource", "img://"$KFPC.GetSteamAvatar(EPRI.UniqueId));
|
||||
}
|
||||
}
|
||||
if (KFGRI != none)
|
||||
{
|
||||
PlayerInfoObject.SetBool("ready", EPRI.bReadyToPlay && !KFGRI.bMatchHasBegun);
|
||||
}
|
||||
|
||||
return PlayerInfoObject;
|
||||
return PlayerInfoObject;
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
|
@ -7,7 +7,7 @@ final function vector PickPointNearOwner()
|
||||
{
|
||||
local byte i;
|
||||
local vector V,HL,HN,Start;
|
||||
|
||||
|
||||
Start = OwnerPawn.Location;
|
||||
if (OwnerPawn.Physics==PHYS_Falling)
|
||||
{
|
||||
@ -20,10 +20,10 @@ final function vector PickPointNearOwner()
|
||||
V.X = FRand()-0.5;
|
||||
V.Y = FRand()-0.5;
|
||||
V = Start + Normal2D(V) * (100.f+FRand()*500.f);
|
||||
|
||||
|
||||
if (i<20 && !FastTrace(V,Start)) // Destination is inside a wall.
|
||||
continue;
|
||||
|
||||
|
||||
if (i<20 && FastTrace(V-vect(0,0,100),V)) // Destination is above a pit.
|
||||
continue;
|
||||
break;
|
||||
@ -35,7 +35,7 @@ final function vector PickPointNearOwner()
|
||||
final function bool CanSeeOwner()
|
||||
{
|
||||
local Pawn P;
|
||||
|
||||
|
||||
NextSightCheckTime = WorldInfo.TimeSeconds+1.f + FRand();
|
||||
P = Ext_T_MonsterPRI(PlayerReplicationInfo)!=None ? Ext_T_MonsterPRI(PlayerReplicationInfo).OwnerController.Pawn : None;
|
||||
if (P!=None && !LineOfSightTo(P))
|
||||
@ -66,7 +66,7 @@ Begin:
|
||||
UpdateHistoryString("[Attacking : "$DoorEnemy$" at "$WorldInfo.TimeSeconds$"]");
|
||||
class'AICommand_Attack_Melee'.static.Melee(Outer, DoorEnemy);
|
||||
}
|
||||
|
||||
|
||||
// See if we are close to our owner
|
||||
RecheckOwner:
|
||||
OwnerPawn = None;
|
||||
@ -80,7 +80,7 @@ RecheckOwner:
|
||||
if (Enemy!=None && LineOfSightTo(OwnerPawn) && LineOfSightTo(Enemy)) // We have sight to our owner and can see enemy, go for it!
|
||||
{
|
||||
OwnerPawn = None;
|
||||
|
||||
|
||||
bWaitingOnMovementPlugIn = true;
|
||||
SetEnemyMoveGoal(self, true,,, ShouldAttackWhileMoving());
|
||||
NextSightCheckTime = WorldInfo.TimeSeconds+2.f;
|
||||
|
@ -7,7 +7,6 @@ function SpecialMoveStarted(bool bForced, Name PrevMove)
|
||||
|
||||
function SpecialMoveEnded(Name PrevMove, Name NextMove)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
|
@ -155,7 +155,7 @@ simulated final function bool IsWeaponOnPerk(KFWeapon W)
|
||||
|
||||
//if (W.AllowedForAllPerks())
|
||||
// return true;
|
||||
|
||||
|
||||
return W!=None && W.GetWeaponPerkClass(BasePerk)==BasePerk;
|
||||
}
|
||||
|
||||
@ -186,7 +186,7 @@ simulated function PostBeginPlay()
|
||||
return;
|
||||
}
|
||||
bOwnerNetClient = (PlayerController(Owner)!=None && LocalPlayer(PlayerController(Owner).Player)==None);
|
||||
|
||||
|
||||
// Load trait classes.
|
||||
j = 0;
|
||||
for (i=0; i<TraitClasses.Length; ++i)
|
||||
@ -198,7 +198,7 @@ simulated function PostBeginPlay()
|
||||
PerkTraits[j].TraitType = T;
|
||||
++j;
|
||||
}
|
||||
|
||||
|
||||
// Setup serverside stat info (for XML log files).
|
||||
for (j=0; j<PerkStats.Length; ++j)
|
||||
{
|
||||
@ -327,7 +327,7 @@ reliable client simulated function ClientReceiveTraitLvl(int Index, byte NewLeve
|
||||
final function SetPerkStat(name Type, int Value)
|
||||
{
|
||||
local int i;
|
||||
|
||||
|
||||
i = PerkStats.Find('StatType',Type);
|
||||
if (i>=0)
|
||||
PerkStats[i].CurrentValue = Value;
|
||||
@ -336,7 +336,7 @@ final function SetPerkStat(name Type, int Value)
|
||||
final function int GetPerkStat(name Type)
|
||||
{
|
||||
local int i;
|
||||
|
||||
|
||||
i = PerkStats.Find('StatType',Type);
|
||||
if (i==-1)
|
||||
return 0;
|
||||
@ -385,7 +385,7 @@ function OutputXML(ExtStatWriter Data)
|
||||
Data.WriteValue("points",string(CurrentSP));
|
||||
Data.WriteValue("exptilnext",string(NextLevelEXP));
|
||||
Data.WriteValue("exponprev",string(LastLevelEXP));
|
||||
|
||||
|
||||
for (i=0; i<PerkStats.Length; ++i)
|
||||
{
|
||||
if (PerkStats[i].CurrentValue>0)
|
||||
@ -397,7 +397,7 @@ function OutputXML(ExtStatWriter Data)
|
||||
Data.EndIntendent();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for (i=0; i<PerkTraits.Length; ++i)
|
||||
{
|
||||
if (PerkTraits[i].CurrentLevel>0)
|
||||
@ -416,10 +416,10 @@ function OutputXML(ExtStatWriter Data)
|
||||
function SaveData(ExtSaveDataBase Data)
|
||||
{
|
||||
local int i,j;
|
||||
|
||||
|
||||
// Write current EXP.
|
||||
Data.SaveInt(CurrentEXP,3);
|
||||
|
||||
|
||||
// Write current prestige
|
||||
Data.SaveInt(CurrentPrestige,3);
|
||||
|
||||
@ -439,7 +439,7 @@ function SaveData(ExtSaveDataBase Data)
|
||||
Data.SaveInt(PerkStats[i].CurrentValue,1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Count bought traits.
|
||||
j = 0;
|
||||
for (i=0; i<PerkTraits.Length; ++i)
|
||||
@ -471,7 +471,7 @@ function LoadData(ExtSaveDataBase Data)
|
||||
// if (i > CurrentEXP)
|
||||
// CurrentEXP = i
|
||||
// }
|
||||
|
||||
|
||||
if (Data.GetArVer()>=1)
|
||||
CurrentPrestige = Data.ReadInt(3);
|
||||
|
||||
@ -487,7 +487,7 @@ function LoadData(ExtSaveDataBase Data)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
l = Data.ReadInt(); // Traits stats length.
|
||||
for (i=0; i<l; ++i)
|
||||
{
|
||||
@ -543,7 +543,7 @@ function SetInitialLevel()
|
||||
CurrentSP = CurrentLevel*(StarPointsPerLevel+CurrentPrestige*PrestigeSPIncrease);
|
||||
NextLevelEXP = GetNeededExp(CurrentLevel);
|
||||
LastLevelEXP = (CurrentLevel>MinimumLevel ? GetNeededExp(CurrentLevel-1) : 0);
|
||||
|
||||
|
||||
// Now verify the points player used on individual stats.
|
||||
for (i=0; i<PerkStats.Length; ++i)
|
||||
{
|
||||
@ -571,7 +571,7 @@ function SetInitialLevel()
|
||||
if (PerkTraits[i].CurrentLevel>0)
|
||||
{
|
||||
PerkTraits[i].CurrentLevel = Min(PerkTraits[i].CurrentLevel,PerkTraits[i].TraitType.Default.NumLevels);
|
||||
|
||||
|
||||
if (PerkTraits[i].TraitType.Default.LoadPriority>0)
|
||||
MT = Max(MT,PerkTraits[i].TraitType.Default.LoadPriority);
|
||||
else
|
||||
@ -596,7 +596,7 @@ function SetInitialLevel()
|
||||
if (PerkTraits[i].CurrentLevel==0 && PerkTraits[i].Data!=None)
|
||||
PerkTraits[i].TraitType.Static.CleanupTrait(ExtPlayerController(Owner),Self,PerkTraits[i].Data);
|
||||
}
|
||||
|
||||
|
||||
// Delayed loads.
|
||||
for (j=1; j<=MT; ++j)
|
||||
{
|
||||
@ -674,14 +674,14 @@ static function UpdateConfigs(int OldVer)
|
||||
Default.MinimumLevel = 0;
|
||||
Default.MaximumLevel = 150;
|
||||
Default.StarPointsPerLevel = 15;
|
||||
|
||||
|
||||
// Prestige.
|
||||
Default.MinLevelForPrestige = 140;
|
||||
Default.PrestigeSPIncrease = 1;
|
||||
Default.MaxPrestige = 20;
|
||||
Default.MinimalDataLevel = 0;
|
||||
Default.PrestigeXPReduce = 0.05;
|
||||
|
||||
|
||||
Default.PerkStats.Length = 0;
|
||||
AddStatsCfg(0);
|
||||
Default.TraitClasses.Length = Default.DefTraitList.Length;
|
||||
@ -754,7 +754,7 @@ static function InitWebAdmin(ExtWebAdmin_UI UI)
|
||||
local int i;
|
||||
|
||||
UI.AddSettingsPage("Perk "$Default.PerkName,Default.Class,Default.WebConfigs,GetValue,ApplyValue);
|
||||
|
||||
|
||||
for (i=0; i<Default.TraitClasses.Length; ++i)
|
||||
{
|
||||
T = class<Ext_TraitBase>(DynamicLoadObject(Default.TraitClasses[i],Class'Class'));
|
||||
@ -887,7 +887,7 @@ function bool IncrementStat(int iStat, int Amount)
|
||||
simulated function ApplyEffects()
|
||||
{
|
||||
local int i;
|
||||
|
||||
|
||||
for (i=0; i<PerkStats.Length; ++i)
|
||||
{
|
||||
if (PerkStats[i].CurrentValue!=PerkStats[i].OldValue)
|
||||
@ -903,7 +903,7 @@ function ApplyEffectsTo(KFPawn_Human P)
|
||||
{
|
||||
local int i;
|
||||
local bool bSec;
|
||||
|
||||
|
||||
for (i=0; i<PerkTraits.Length; ++i)
|
||||
{
|
||||
if (PerkTraits[i].CurrentLevel>0)
|
||||
@ -929,7 +929,7 @@ function ActivateTraits()
|
||||
local int i;
|
||||
local KFPawn_Human KFP;
|
||||
local bool bSec;
|
||||
|
||||
|
||||
KFP = KFPawn_Human(PlayerOwner.Pawn);
|
||||
if (KFP!=None && !KFP.IsAliveAndWell())
|
||||
KFP = None;
|
||||
@ -961,7 +961,7 @@ function ActivateTraits()
|
||||
function DeactivateTraits()
|
||||
{
|
||||
local int i;
|
||||
|
||||
|
||||
for (i=0; i<PerkTraits.Length; ++i)
|
||||
{
|
||||
if (PerkTraits[i].CurrentLevel>0)
|
||||
@ -1114,7 +1114,7 @@ function FullReset(optional bool bNotPrestige)
|
||||
CurrentSP = CurrentLevel*(StarPointsPerLevel+CurrentPrestige*PrestigeSPIncrease);
|
||||
NextLevelEXP = GetNeededExp(CurrentLevel);
|
||||
LastLevelEXP = 0;
|
||||
|
||||
|
||||
if (PerkManager.CurrentPerk==Self && PerkManager.PRIOwner!=None)
|
||||
{
|
||||
PerkManager.PRIOwner.SetLevelProgress(CurrentLevel,CurrentPrestige,MinimumLevel,MaximumLevel);
|
||||
@ -1127,7 +1127,7 @@ function FullReset(optional bool bNotPrestige)
|
||||
function bool PreventDeath(KFPawn_Human Player, Controller Killer, Class<DamageType> DamType)
|
||||
{
|
||||
local int i;
|
||||
|
||||
|
||||
// Doing 2 passes of this so that things don't go out of order (spawn retaliation effect when you get redeemed etc)
|
||||
for (i=0; i<PerkTraits.Length; ++i)
|
||||
{
|
||||
@ -1160,7 +1160,7 @@ simulated function PlayerDied()
|
||||
simulated function float ApplyEffect(name Type, float Value, float Progress)
|
||||
{
|
||||
local bool bActivePerk;
|
||||
|
||||
|
||||
bActivePerk = (PerkManager!=None && PerkManager.CurrentPerk==Self);
|
||||
switch (Type)
|
||||
{
|
||||
@ -1171,10 +1171,10 @@ simulated function float ApplyEffect(name Type, float Value, float Progress)
|
||||
Modifiers[1] = 1.f + (Value*Progress);
|
||||
break;
|
||||
case 'Recoil':
|
||||
Modifiers[2] = 1.f - (Value*Progress);
|
||||
Modifiers[2] = 1.f / (1.f+Value*Progress);
|
||||
break;
|
||||
case 'Spread':
|
||||
Modifiers[3] = 1.f - (Value*Progress);
|
||||
Modifiers[3] = 1.f / (1.f+Value*Progress);
|
||||
break;
|
||||
case 'Rate':
|
||||
Modifiers[4] = 1.f / (1.f+Value*Progress);
|
||||
@ -1191,8 +1191,8 @@ simulated function float ApplyEffect(name Type, float Value, float Progress)
|
||||
}
|
||||
break;
|
||||
case 'KnockDown':
|
||||
Modifiers[7] = 1.f + (Value*Progress);
|
||||
break;
|
||||
Modifiers[7] = FMin(1.f + (Value*Progress),2.f);
|
||||
return (Modifiers[7]-1.f);
|
||||
case 'Welder':
|
||||
Modifiers[8] = 1.f + (Value*Progress);
|
||||
break;
|
||||
@ -1243,7 +1243,7 @@ simulated function float ApplyEffect(name Type, float Value, float Progress)
|
||||
break;
|
||||
case 'Switch':
|
||||
Modifiers[21] = 1.f / (1.f+Value*Progress);
|
||||
break;
|
||||
break;
|
||||
}
|
||||
return (Value*Progress);
|
||||
}
|
||||
@ -1301,7 +1301,7 @@ simulated function float GetReloadRateScale(KFWeapon KFW)
|
||||
}
|
||||
|
||||
simulated function float GetCameraViewShakeModifier(KFWeapon KFW)
|
||||
{
|
||||
{
|
||||
return Modifiers[2];
|
||||
}
|
||||
|
||||
@ -1341,7 +1341,7 @@ function AddDefaultInventory(KFPawn P)
|
||||
P.DefaultInventory.AddItem(PrimaryMelee);
|
||||
if (KFInventoryManager(P.InvManager)!=None)
|
||||
KFInventoryManager(P.InvManager).MaxCarryBlocks = KFInventoryManager(P.InvManager).Default.MaxCarryBlocks+Modifiers[10];
|
||||
|
||||
|
||||
for (i=0; i<PerkTraits.Length; ++i)
|
||||
{
|
||||
if (PerkTraits[i].CurrentLevel>0)
|
||||
@ -1409,7 +1409,7 @@ simulated final function DrawEnemyHealth(Canvas C)
|
||||
{
|
||||
local KFPawn_Monster KFPM;
|
||||
local vector X,CameraLocation;
|
||||
|
||||
|
||||
X = vector(PlayerOwner.Pawn.GetViewRotation());
|
||||
CameraLocation = PlayerOwner.Pawn.GetPawnViewLocation();
|
||||
|
||||
@ -1499,7 +1499,7 @@ simulated function float GetZedTimeExtensions(byte Level)
|
||||
|
||||
simulated function float GetTightChokeModifier()
|
||||
{
|
||||
return Modifiers[3];
|
||||
return Modifiers[3];
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
@ -1515,11 +1515,11 @@ defaultproperties
|
||||
WeldExpUpNum=180
|
||||
ToxicDartDamage=15
|
||||
NetPriority=4
|
||||
|
||||
|
||||
SecondaryWeaponDef=class'KFWeapDef_9mm'
|
||||
KnifeWeaponDef=class'KFWeapDef_Knife_Commando'
|
||||
GrenadeWeaponDef=class'KFWeapDef_Grenade_Support'
|
||||
|
||||
|
||||
DefTraitList.Add(class'Ext_TraitGrenadeUpg')
|
||||
DefTraitList.Add(class'Ext_TraitNightvision')
|
||||
DefTraitList.Add(class'Ext_TraitAmmoReg')
|
||||
@ -1553,11 +1553,11 @@ defaultproperties
|
||||
WebConfigs.Add((PropType=0,PropName="MaxPrestige",UIName="Max Prestige",UIDesc="Maximum prestige level"))
|
||||
WebConfigs.Add((PropType=0,PropName="PrestigeXPReduce",UIName="Prestige XP Reduce",UIDesc="Percent amount of XP cost is reduced for each prestige (1.0 = 1/2, or 50 % of XP)"))
|
||||
// WebConfigs.Add((PropType=0,PropName="MinimalDataLevel",UIName="Minimal Real Level",UIDesc="Minimal level for new players or who loads from saves"))
|
||||
|
||||
|
||||
DefPerkStats(0)=(MaxValue=50,CostPerValue=1,StatType="Speed",Progress=0.4)
|
||||
DefPerkStats(1)=(MaxValue=1000,CostPerValue=1,StatType="Damage",Progress=0.5)
|
||||
DefPerkStats(2)=(MaxValue=100,CostPerValue=1,StatType="Recoil",Progress=1)
|
||||
DefPerkStats(3)=(MaxValue=100,CostPerValue=1,StatType="Spread",Progress=1)
|
||||
DefPerkStats(2)=(MaxValue=90,CostPerValue=1,StatType="Recoil",Progress=1)
|
||||
DefPerkStats(3)=(MaxValue=80,CostPerValue=1,StatType="Spread",Progress=0.75)
|
||||
DefPerkStats(4)=(MaxValue=1000,CostPerValue=1,StatType="Rate",Progress=0.5)
|
||||
DefPerkStats(5)=(MaxValue=1000,CostPerValue=1,StatType="Reload",Progress=0.5)
|
||||
DefPerkStats(6)=(MaxValue=150,CostPerValue=1,StatType="Health",Progress=1)
|
||||
@ -1599,7 +1599,7 @@ defaultproperties
|
||||
Modifiers.Add(0.f)
|
||||
Modifiers.Add(1.f)
|
||||
Modifiers.Add(1.f)
|
||||
|
||||
|
||||
EnemyDistDraw.Add(500)
|
||||
EnemyDistDraw.Add(700)
|
||||
EnemyDistDraw.Add(1000)
|
||||
|
@ -45,12 +45,12 @@ defaultproperties
|
||||
PrimaryMelee=class'KFWeap_Knife_Berserker'
|
||||
PrimaryWeapon=class'KFWeap_Blunt_Crovel'
|
||||
PerkGrenade=class'KFProj_EMPGrenade'
|
||||
|
||||
|
||||
PrimaryWeaponDef=class'KFWeapDef_Crovel'
|
||||
KnifeWeaponDef=class'KFweapDef_Knife_Berserker'
|
||||
GrenadeWeaponDef=class'KFWeapDef_Grenade_Berserker'
|
||||
|
||||
|
||||
AutoBuyLoadOutPath=(class'KFWeapDef_Crovel', class'KFWeapDef_Nailgun', class'KFWeapDef_Pulverizer', class'KFWeapDef_Eviscerator')
|
||||
|
||||
|
||||
ZedTimeMeleeAtkRate=1.0
|
||||
}
|
@ -22,7 +22,7 @@ simulated function ModifyDamageGiven(out int InDamage, optional Actor DamageCaus
|
||||
if (bUseMachineGunner && WorldInfo.TimeDilation < 1.f)
|
||||
InDamage += InDamage * 0.03;
|
||||
}
|
||||
|
||||
|
||||
Super.ModifyDamageGiven(InDamage, DamageCauser, MyKFPM, DamageInstigator, DamageType, HitZoneIdx);
|
||||
}
|
||||
|
||||
@ -61,7 +61,7 @@ defaultproperties
|
||||
DefTraitList.Add(class'Ext_TraitTactician')
|
||||
DefTraitList.Add(class'Ext_TraitMachineGunner')
|
||||
BasePerk=class'KFPerk_Commando'
|
||||
|
||||
|
||||
ZTExtCount=1.f;
|
||||
|
||||
PrimaryMelee=class'KFWeap_Knife_Commando'
|
||||
@ -71,6 +71,6 @@ defaultproperties
|
||||
PrimaryWeaponDef=class'KFWeapDef_AR15'
|
||||
KnifeWeaponDef=class'KFweapDef_Knife_Commando'
|
||||
GrenadeWeaponDef=class'KFWeapDef_Grenade_Commando'
|
||||
|
||||
|
||||
AutoBuyLoadOutPath=(class'KFWeapDef_AR15', class'KFWeapDef_Bullpup', class'KFWeapDef_AK12', class'KFWeapDef_SCAR')
|
||||
}
|
@ -25,13 +25,13 @@ simulated function float ApplyEffect(name Type, float Value, float Progress)
|
||||
{
|
||||
local KFPlayerReplicationInfo MyPRI;
|
||||
local float DefValue;
|
||||
|
||||
|
||||
DefValue = Super.ApplyEffect(Type, Value, Progress);
|
||||
MyPRI = KFPlayerReplicationInfo(PlayerOwner.PlayerReplicationInfo);
|
||||
|
||||
|
||||
if (MyPRI != None && Type == 'KnockDown')
|
||||
MyPRI.bConcussiveActive = Modifiers[7] > 1.5;
|
||||
|
||||
|
||||
return DefValue;
|
||||
}
|
||||
|
||||
@ -50,10 +50,10 @@ simulated function ModifyDamageGiven(out int InDamage, optional Actor DamageCaus
|
||||
if (bCriticalHit && MyKFPM != none && IsCriticalHitZone(MyKFPM, HitZoneIdx))
|
||||
InDamage *= 1.5f;
|
||||
}
|
||||
|
||||
|
||||
if (class<KFDT_DemoNuke_Toxic_Lingering>(DamageType) != None)
|
||||
InDamage *= NukeDamageMult;
|
||||
|
||||
|
||||
Super.ModifyDamageGiven(InDamage, DamageCauser, MyKFPM, DamageInstigator, DamageType, HitZoneIdx);
|
||||
}
|
||||
|
||||
@ -69,7 +69,7 @@ simulated function ModifySpareAmmoAmount(KFWeapon KFW, out int PrimarySpareAmmo,
|
||||
{
|
||||
if (KFW != None && KFWeap_Thrown_C4(KFW) != None)
|
||||
PrimarySpareAmmo += (1 + Modifiers[11]);
|
||||
|
||||
|
||||
Super.ModifySpareAmmoAmount(KFW, PrimarySpareAmmo, TraderItem, bSecondary);
|
||||
}
|
||||
|
||||
@ -88,20 +88,20 @@ defaultproperties
|
||||
DefTraitList.Add(class'Ext_TraitDemoNuke')
|
||||
DefTraitList.Add(class'Ext_TraitDemoProfessional')
|
||||
BasePerk=class'KFPerk_Demolitionist'
|
||||
|
||||
|
||||
AOEMult=1.0f
|
||||
NukeDamageMult=1.0f
|
||||
|
||||
PrimaryMelee=class'KFWeap_Knife_Demolitionist'
|
||||
PrimaryWeapon=class'KFWeap_GrenadeLauncher_HX25'
|
||||
PerkGrenade=class'KFProj_DynamiteGrenade'
|
||||
|
||||
|
||||
PrimaryWeaponDef=class'KFWeapDef_HX25'
|
||||
KnifeWeaponDef=class'KFWeapDef_Knife_Demo'
|
||||
GrenadeWeaponDef=class'KFWeapDef_Grenade_Demo'
|
||||
|
||||
|
||||
AutoBuyLoadOutPath=(class'KFWeapDef_HX25', class'KFWeapDef_M79', class'KFWeapDef_M16M203', class'KFWeapDef_RPG7')
|
||||
|
||||
|
||||
DefPerkStats(10)=(bHiddenConfig=true) // No support for mag size on demo.
|
||||
DefPerkStats(13)=(bHiddenConfig=false) // Self damage.
|
||||
}
|
@ -22,7 +22,7 @@ simulated function ModifyDamageGiven(out int InDamage, optional Actor DamageCaus
|
||||
TempDamage += InDamage * 100;
|
||||
|
||||
InDamage = Round(TempDamage);
|
||||
|
||||
|
||||
Super.ModifyDamageGiven(InDamage, DamageCauser, MyKFPM, DamageInstigator, DamageType, HitZoneIdx);
|
||||
}
|
||||
|
||||
@ -57,7 +57,7 @@ function bool ModifyHealAmount(out float HealAmount)
|
||||
// Di
|
||||
// simulated function ModifyHealerRechargeTime(out float RechargeRate)
|
||||
// {
|
||||
// super.ModifyHealerRechargeTime(RechargeRate)
|
||||
// super.ModifyHealerRechargeTime(RechargeRate)
|
||||
// RechargeRate /= Clamp(Modifiers[9] * 2, 1.f, 3.f);
|
||||
// }
|
||||
|
||||
@ -79,7 +79,7 @@ function GiveMedicAirborneAgentHealth(KFPawn HealTarget, class<DamageType> DamTy
|
||||
if (KFP.IsAliveAndWell() && WorldInfo.GRI.OnSameTeam(HealTarget, KFP))
|
||||
{
|
||||
if (HealTarget == KFP)
|
||||
KFP.HealDamage(RoundedExtraHealAmount, PlayerOwner, DamType);
|
||||
KFP.HealDamage(RoundedExtraHealAmount, PlayerOwner, DamType);
|
||||
else KFP.HealDamage(RoundedExtraHealAmount + HealAmount, PlayerOwner, DamType);
|
||||
}
|
||||
}
|
||||
@ -101,9 +101,9 @@ static function int ModifyToxicDmg(int ToxicDamage)
|
||||
function NotifyZedTimeStarted()
|
||||
{
|
||||
local KFPawn_Human HPawn;
|
||||
|
||||
|
||||
HPawn = KFPawn_Human(PlayerOwner.Pawn);
|
||||
|
||||
|
||||
if (bUseAirborneAgent && HPawn != none && HPawn.IsAliveAndWell())
|
||||
HPawn.StartAirBorneAgentEvent();
|
||||
}
|
||||
@ -186,8 +186,8 @@ simulated function float GetHealingShieldDuration()
|
||||
}
|
||||
|
||||
simulated function float GetSelfHealingSurgePct()
|
||||
{
|
||||
return SelfHealingSurgePct;
|
||||
{
|
||||
return SelfHealingSurgePct;
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
@ -205,40 +205,40 @@ defaultproperties
|
||||
DefTraitList.Add(class'Ext_TraitArmorRep')
|
||||
BasePerk=class'KFPerk_FieldMedic'
|
||||
HealExpUpNum=3
|
||||
|
||||
|
||||
HealingSpeedBoostPct = 10.0f
|
||||
HealingDamageBoostPct = 5.0f
|
||||
HealingShieldPct = 10.0f
|
||||
|
||||
|
||||
ToxicDmgTypeClass=class'KFDT_Toxic_AcidicRounds'
|
||||
|
||||
SelfHealingSurgePct=0.1f
|
||||
|
||||
SelfHealingSurgePct=0.1f
|
||||
|
||||
MaxHealingSpeedBoost=30
|
||||
HealingSpeedBoostDuration=5.f
|
||||
|
||||
MaxHealingDamageBoost=20
|
||||
HealingDamageBoostDuration=5.f
|
||||
|
||||
|
||||
MaxHealingShield=30
|
||||
HealingShieldDuration=5.0f
|
||||
|
||||
|
||||
DefPerkStats(0)=(MaxValue=70)
|
||||
DefPerkStats(9)=(bHiddenConfig=false) // Heal efficiency
|
||||
DefPerkStats(15)=(bHiddenConfig=false) // Toxic resistance
|
||||
DefPerkStats(16)=(bHiddenConfig=false) // Sonic resistance
|
||||
DefPerkStats(17)=(bHiddenConfig=false) // Fire resistance
|
||||
DefPerkStats(20)=(bHiddenConfig=false) // Heal recharge
|
||||
|
||||
|
||||
PrimaryMelee=class'KFWeap_Knife_FieldMedic'
|
||||
PrimaryWeapon=None
|
||||
PerkGrenade=class'KFProj_MedicGrenade'
|
||||
SuperGrenade=class'ExtProj_SUPERMedGrenade'
|
||||
SecondaryWeaponDef=class'ExtWeapDef_MedicPistol'
|
||||
|
||||
|
||||
PrimaryWeaponDef=None
|
||||
KnifeWeaponDef=class'KFWeapDef_Knife_Medic'
|
||||
GrenadeWeaponDef=class'KFWeapDef_Grenade_Medic'
|
||||
|
||||
|
||||
AutoBuyLoadOutPath=(class'KFWeapDef_MedicSMG', class'KFWeapDef_MedicShotgun', class'KFWeapDef_MedicRifle')
|
||||
}
|
@ -1,48 +1,5 @@
|
||||
Class Ext_PerkFirebug extends Ext_PerkBase;
|
||||
|
||||
var bool bUseInferno,bUsePyromaniac,bUseGroundFire,bUseHeatWave;
|
||||
|
||||
replication
|
||||
{
|
||||
// Things the server should send to the client.
|
||||
if (true)
|
||||
bUseInferno,bUsePyromaniac,bUseGroundFire,bUseHeatWave;
|
||||
}
|
||||
|
||||
simulated final private function bool IsInfernoActive()
|
||||
{
|
||||
return bUseInferno && WorldInfo.TimeDilation < 1.f;
|
||||
}
|
||||
|
||||
simulated function bool GetIsUberAmmoActive(KFWeapon KFW)
|
||||
{
|
||||
return bUsePyromaniac && IsWeaponOnPerk(KFW) && WorldInfo.TimeDilation < 1.f;
|
||||
}
|
||||
|
||||
simulated function float GetZedTimeModifier(KFWeapon W)
|
||||
{
|
||||
local name StateName;
|
||||
|
||||
if (bUsePyromaniac && IsWeaponOnPerk(W))
|
||||
{
|
||||
StateName = W.GetStateName();
|
||||
if (BasePerk.Default.ZedTimeModifyingStates.Find(StateName) != INDEX_NONE || StateName == 'Reloading')
|
||||
return 1.f;
|
||||
}
|
||||
|
||||
return 0.f;
|
||||
}
|
||||
|
||||
simulated final private function bool IsGroundFireActive()
|
||||
{
|
||||
return bUseGroundFire;
|
||||
}
|
||||
|
||||
simulated final private function bool IsHeatWaveActive()
|
||||
{
|
||||
return bUseHeatWave;
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
PerkIcon=Texture2D'UI_PerkIcons_TEX.UI_PerkIcon_Firebug'
|
||||
@ -50,10 +7,6 @@ defaultproperties
|
||||
DefTraitList.Add(class'Ext_TraitNapalm')
|
||||
DefTraitList.Add(class'Ext_TraitFireExplode')
|
||||
DefTraitList.Add(class'Ext_TraitFireRange')
|
||||
DefTraitList.Add(class'Ext_TraitInferno')
|
||||
DefTraitList.Add(class'Ext_TraitPyromaniac')
|
||||
DefTraitList.Add(class'Ext_TraitGroundFire')
|
||||
DefTraitList.Add(class'Ext_TraitHeatWave')
|
||||
BasePerk=class'KFPerk_Firebug'
|
||||
|
||||
PrimaryMelee=class'KFWeap_Knife_Firebug'
|
||||
@ -64,9 +17,9 @@ defaultproperties
|
||||
PrimaryWeaponDef=class'KFWeapDef_CaulkBurn'
|
||||
KnifeWeaponDef=class'KFWeapDef_Knife_Firebug'
|
||||
GrenadeWeaponDef=class'KFWeapDef_Grenade_Firebug'
|
||||
|
||||
|
||||
AutoBuyLoadOutPath=(class'KFWeapDef_CaulkBurn', class'KFWeapDef_DragonsBreath', class'KFWeapDef_FlameThrower', class'KFWeapDef_MicrowaveGun')
|
||||
|
||||
|
||||
DefPerkStats(13)=(Progress=3,bHiddenConfig=false) // Self damage.
|
||||
DefPerkStats(17)=(bHiddenConfig=false) // Fire resistance
|
||||
}
|
@ -22,7 +22,7 @@ simulated function bool GetIsUberAmmoActive(KFWeapon KFW)
|
||||
simulated function float GetZedTimeModifier(KFWeapon W)
|
||||
{
|
||||
local name StateName;
|
||||
|
||||
|
||||
if (bHasFanfire && IsWeaponOnPerk(W))
|
||||
{
|
||||
StateName = W.GetStateName();
|
||||
@ -45,10 +45,10 @@ defaultproperties
|
||||
PrimaryMelee=class'KFWeap_Knife_Gunslinger'
|
||||
PrimaryWeapon=class'KFWeap_Revolver_DualRem1858'
|
||||
PerkGrenade=class'KFProj_NailBombGrenade'
|
||||
|
||||
|
||||
PrimaryWeaponDef=class'KFWeapDef_Remington1858Dual'
|
||||
KnifeWeaponDef=class'KFWeapDef_Knife_Gunslinger'
|
||||
GrenadeWeaponDef=class'KFWeapDef_Grenade_Gunslinger'
|
||||
|
||||
|
||||
AutoBuyLoadOutPath=(class'KFWeapDef_Remington1858', class'KFWeapDef_Remington1858Dual', class'KFWeapDef_Colt1911', class'KFWeapDef_Colt1911Dual',class'KFWeapDef_Deagle', class'KFWeapDef_DeagleDual', class'KFWeapDef_SW500', class'KFWeapDef_SW500Dual')
|
||||
}
|
@ -52,16 +52,16 @@ final function UpdateDmgScale(bool bUp)
|
||||
function UpdatePerkHeadShots(ImpactInfo Impact, class<DamageType> DamageType, int NumHit)
|
||||
{
|
||||
local int HitZoneIdx;
|
||||
local KFPawn_Monster KFPM;
|
||||
local KFPawn_Monster KFPM;
|
||||
|
||||
if (MaxRhythmCombo<=0)
|
||||
return;
|
||||
KFPM = KFPawn_Monster(Impact.HitActor);
|
||||
if (KFPM==none || KFPM.GetTeamNum()==0)
|
||||
return;
|
||||
KFPM = KFPawn_Monster(Impact.HitActor);
|
||||
if (KFPM==none || KFPM.GetTeamNum()==0)
|
||||
return;
|
||||
|
||||
HitZoneIdx = KFPM.HitZones.Find('ZoneName', Impact.HitInfo.BoneName);
|
||||
if (HitZoneIdx == HZI_Head && KFPM.IsAliveAndWell())
|
||||
HitZoneIdx = KFPM.HitZones.Find('ZoneName', Impact.HitInfo.BoneName);
|
||||
if (HitZoneIdx == HZI_Head && KFPM.IsAliveAndWell())
|
||||
{
|
||||
if (class<KFDamageType>(DamageType)!=None && (class<KFDamageType>(DamageType).Default.ModifierPerkList.Find(BasePerk)>=0))
|
||||
UpdateDmgScale(true);
|
||||
@ -87,7 +87,7 @@ reliable client function HeadShotMessage(byte HeadShotNum, bool bMissed, byte Ma
|
||||
else if (HeadShotNum<MaxHits)
|
||||
{
|
||||
if (!bMissed)
|
||||
{
|
||||
{
|
||||
//PC.ClientSpawnCameraLensEffect(class'KFCameraLensEmit_RackemHeadShot');
|
||||
TempAkEvent = AkEvent'WW_UI_PlayerCharacter.Play_R_Method_Hit';
|
||||
}
|
||||
|
@ -38,12 +38,12 @@ defaultproperties
|
||||
PrimaryMelee=class'KFWeap_Knife_Sharpshooter'
|
||||
PrimaryWeapon=class'KFWeap_Rifle_Winchester1894'
|
||||
PerkGrenade=class'KFProj_FreezeGrenade'
|
||||
|
||||
|
||||
PrimaryWeaponDef=class'KFWeapDef_Winchester1894'
|
||||
KnifeWeaponDef=class'KFWeapDef_Knife_Sharpshooter'
|
||||
GrenadeWeaponDef=class'KFWeapDef_Grenade_Sharpshooter'
|
||||
|
||||
|
||||
AutoBuyLoadOutPath=(class'KFWeapDef_Winchester1894', class'KFWeapDef_Crossbow', class'KFWeapDef_M14EBR', class'KFWeapDef_RailGun')
|
||||
|
||||
|
||||
DireReloadSpeed=0.25f
|
||||
}
|
@ -54,10 +54,10 @@ defaultproperties
|
||||
|
||||
PrimaryMelee=class'KFWeap_Knife_Support'
|
||||
PrimaryWeapon=class'KFWeap_Shotgun_MB500'
|
||||
|
||||
|
||||
PrimaryWeaponDef=class'KFWeapDef_MB500'
|
||||
KnifeWeaponDef=class'KFWeapDef_Knife_Support'
|
||||
GrenadeWeaponDef=class'KFWeapDef_Grenade_Support'
|
||||
|
||||
|
||||
AutoBuyLoadOutPath=(class'KFWeapDef_MB500', class'KFWeapDef_DoubleBarrel', class'KFWeapDef_M4', class'KFWeapDef_AA12')
|
||||
}
|
@ -2,5 +2,4 @@ class Ext_TGroupMonster extends Ext_TGroupBase;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
|
||||
}
|
@ -33,5 +33,4 @@ static final function byte GetMaxLimit(Ext_PerkBase Perk)
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
|
||||
}
|
@ -2,5 +2,4 @@ class Ext_TGroupZEDTime extends Ext_TGroupBase;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
|
||||
}
|
@ -34,7 +34,7 @@ simulated function Tick(float Delta)
|
||||
|| KFWeapon(PawnOwner.Weapon)==None
|
||||
|| (KFWeapon(PawnOwner.Weapon).GetWeaponPerkClass(AssociatedPerkClass) != AssociatedPerkClass && AssociatedPerkClass != class'KFPerk_Survivalist'))
|
||||
return;
|
||||
|
||||
|
||||
// Find local playercontroller.
|
||||
if (LocalPC==None)
|
||||
{
|
||||
|
@ -9,7 +9,7 @@ var bool bTeleporting,bIsDelayed;
|
||||
function bool CanResPlayer(KFPawn_Human Other, byte Level)
|
||||
{
|
||||
local Actor SpawnPoint;
|
||||
|
||||
|
||||
if (bTeleporting)
|
||||
{
|
||||
if (LastDied!=None)
|
||||
@ -27,14 +27,14 @@ function bool CanResPlayer(KFPawn_Human Other, byte Level)
|
||||
|
||||
if (SpawnPointer==None)
|
||||
SpawnPointer = class'ExtSpawnPointHelper'.Static.FindHelper(WorldInfo);
|
||||
|
||||
|
||||
SpawnPoint = SpawnPointer.PickBestSpawn();
|
||||
if (SpawnPoint == None)
|
||||
return false;
|
||||
|
||||
|
||||
LastDied = Other;
|
||||
bTeleporting = true;
|
||||
|
||||
|
||||
ResPoint = SpawnPoint.Location;
|
||||
LastDied.FindSpot(vect(36,36,86),ResPoint);
|
||||
if (VSizeSq(LastDied.Location-ResPoint)<1.f) // Prevent division by zero errors in future.
|
||||
@ -49,7 +49,7 @@ final function StartResurrect()
|
||||
TeleStartPoint = LastDied.Location;
|
||||
LastDied.Health = 9999;
|
||||
LastDied.LastStartTime = WorldInfo.TimeSeconds;
|
||||
|
||||
|
||||
if (ExtHumanPawn(LastDied)!=None)
|
||||
{
|
||||
ExtHumanPawn(LastDied).bCanBecomeRagdoll = false;
|
||||
|
@ -24,5 +24,4 @@ function Timer()
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
|
||||
}
|
@ -52,7 +52,7 @@ simulated function Timer()
|
||||
simulated final function NotifyOwner()
|
||||
{
|
||||
local PlayerController PC;
|
||||
|
||||
|
||||
PC = GetALocalPlayerController();
|
||||
if (PC==None || PC.PlayerReplicationInfo!=OwnerPRI || KFExtendedHUD(PC.MyHUD)==None)
|
||||
return;
|
||||
|
@ -84,12 +84,12 @@ simulated function bool GetCanInteract(Pawn User, optional bool bInteractIfTrue
|
||||
PRI = ExtPlayerReplicationInfo(PlayerOwner.PlayerReplicationInfo);
|
||||
if (!User.IsLocallyControlled() || PRI==None || !PRI.CanUseSupply(User))
|
||||
return false;
|
||||
|
||||
|
||||
if (bInteractIfTrue)
|
||||
{
|
||||
PRI.UsedSupply(User,ReuseTime);
|
||||
SetTimer(ReuseTime+0.1,false,'RecheckUser');
|
||||
|
||||
|
||||
if (KFPlayerController(User.Controller)!=None)
|
||||
KFPlayerController(User.Controller).SetPendingInteractionMessage();
|
||||
}
|
||||
@ -99,7 +99,7 @@ simulated function bool GetCanInteract(Pawn User, optional bool bInteractIfTrue
|
||||
i = ActiveUsers.Find('Player',User);
|
||||
if (i>=0 && ActiveUsers[i].NextUseTime>WorldInfo.TimeSeconds)
|
||||
return false;
|
||||
|
||||
|
||||
if (bInteractIfTrue)
|
||||
{
|
||||
if (i==-1)
|
||||
@ -112,7 +112,7 @@ simulated function bool GetCanInteract(Pawn User, optional bool bInteractIfTrue
|
||||
ActiveUsers[i].NextUseTime = WorldInfo.TimeSeconds+ReuseTime;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (bInteractIfTrue && WorldInfo.NetMode!=NM_Client)
|
||||
{
|
||||
GiveAmmunition(KFPawn_Human(User));
|
||||
@ -123,7 +123,7 @@ simulated function bool GetCanInteract(Pawn User, optional bool bInteractIfTrue
|
||||
function CleanupUsers()
|
||||
{
|
||||
local int i;
|
||||
|
||||
|
||||
for (i=(ActiveUsers.Length-1); i>=0; --i)
|
||||
if (ActiveUsers[i].Player==None || ActiveUsers[i].Player.Health<=0 || ActiveUsers[i].NextUseTime<WorldInfo.TimeSeconds)
|
||||
ActiveUsers.Remove(i,1);
|
||||
@ -178,7 +178,7 @@ simulated final function UsedOnClient(Pawn User)
|
||||
if (PRI!=None)
|
||||
PRI.UsedSupply(User,ReuseTime);
|
||||
SetTimer(ReuseTime+0.1,false,'RecheckUser');
|
||||
|
||||
|
||||
if (WorldInfo.NetMode==NM_Client && KFPlayerController(User.Controller)!=None)
|
||||
KFPlayerController(User.Controller).SetPendingInteractionMessage();
|
||||
}
|
||||
@ -202,7 +202,7 @@ defaultproperties
|
||||
bHidden=false
|
||||
ReuseTime=90
|
||||
bProjTarget=false
|
||||
|
||||
|
||||
Components.Empty()
|
||||
Components.Add(CollisionCylinder)
|
||||
}
|
@ -75,7 +75,7 @@ function Destroyed()
|
||||
final function bool HasLiveZeds()
|
||||
{
|
||||
local KFPawn_Monster M;
|
||||
|
||||
|
||||
if (KFGameReplicationInfo(WorldInfo.GRI).WaveNum>=KFGameReplicationInfo(WorldInfo.GRI).WaveMax) // No pets on possible bonus waves.
|
||||
return false;
|
||||
|
||||
@ -95,7 +95,7 @@ final function SpawnHelper()
|
||||
local Ext_T_MonsterPRI PRI;
|
||||
local AkBaseSoundObject TempSound;
|
||||
local bool bFinalWave;
|
||||
|
||||
|
||||
if (PawnOwner.PlayerReplicationInfo==None || !HasLiveZeds())
|
||||
{
|
||||
RespawnHelperTime = 3;
|
||||
@ -137,7 +137,7 @@ final function SpawnHelper()
|
||||
// Downscale.
|
||||
LiveHelper.SetDrawScale(LiveHelper.DrawScale*FriendlyScalar);
|
||||
LiveHelper.SetCollisionSize(LiveHelper.GetCollisionRadius()*FriendlyScalar,LiveHelper.GetCollisionHeight()*FriendlyScalar);
|
||||
|
||||
|
||||
// Setup AI
|
||||
C = Spawn(LiveHelper.ControllerClass);
|
||||
if (KFAIController(C)!=None)
|
||||
@ -157,7 +157,7 @@ final function SpawnHelper()
|
||||
LiveHelper.SetWeakGrabCoolDown(28800.f); // Never get grabbed (for 80 hours).
|
||||
LiveHelper.bWeakZedGrab = true;
|
||||
LiveHelper.bCanGrabAttack = false;
|
||||
|
||||
|
||||
// Scale by previous zed HP.
|
||||
if (PrevMonster!=None)
|
||||
{
|
||||
@ -203,14 +203,14 @@ static final function LoadMonsterList()
|
||||
local int i,j;
|
||||
local array<string> SA;
|
||||
local class<KFPawn_Monster> C;
|
||||
|
||||
|
||||
Default.ZedTypes.Length = class'Ext_TraitZED_Summon'.Default.ZedTypes.Length;
|
||||
|
||||
|
||||
for (i=0; i<Default.ZedTypes.Length; ++i)
|
||||
{
|
||||
SA.Length = 0;
|
||||
ParseStringIntoArray(class'Ext_TraitZED_Summon'.Default.ZedTypes[i],SA,",",true);
|
||||
|
||||
|
||||
for (j=0; j<SA.Length; ++j)
|
||||
{
|
||||
C = class<KFPawn_Monster>(DynamicLoadObject(SA[j],Class'Class'));
|
||||
@ -227,7 +227,7 @@ static final function class<KFPawn_Monster> PickRandomMonster(byte Level, bool b
|
||||
{
|
||||
local byte i;
|
||||
local class<KFPawn_Monster> Res;
|
||||
|
||||
|
||||
Level = Min(Default.ZedTypes.Length-1,Level);
|
||||
for (i=0; i<5; ++i)
|
||||
{
|
||||
|
@ -17,7 +17,7 @@ static function bool MeetsRequirements(byte Lvl, Ext_PerkBase Perk)
|
||||
|
||||
if (Perk.CurrentLevel<Default.MinLevel || Perk.CurrentPrestige<1)
|
||||
return false;
|
||||
|
||||
|
||||
for (i=0; i<Perk.PerkTraits.Length; ++i)
|
||||
{
|
||||
if (Perk.PerkTraits[i].TraitType==Class'Ext_TraitGrenadeUpg')
|
||||
@ -27,7 +27,7 @@ static function bool MeetsRequirements(byte Lvl, Ext_PerkBase Perk)
|
||||
else break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@ var array<float> RegenValues;
|
||||
static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||
{
|
||||
local Ext_T_AmmoRegHelp H;
|
||||
|
||||
|
||||
H = Player.Spawn(class'Ext_T_AmmoRegHelp',Player);
|
||||
if (H!=None)
|
||||
H.RegCount = Default.RegenValues[Level-1];
|
||||
|
@ -3,7 +3,7 @@ Class Ext_TraitArmorReg extends Ext_TraitHealthReg;
|
||||
static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||
{
|
||||
local Ext_T_ArmorRegHelp H;
|
||||
|
||||
|
||||
H = Player.Spawn(class'Ext_T_ArmorRegHelp',Player);
|
||||
if (H!=None)
|
||||
H.RegCount = Default.RegenValues[Level-1];
|
||||
|
@ -42,7 +42,7 @@ static function bool MeetsRequirements(byte Lvl, Ext_PerkBase Perk)
|
||||
// First check level.
|
||||
if (Perk.CurrentLevel<Default.MinLevel)
|
||||
return false;
|
||||
|
||||
|
||||
// Then check grouping.
|
||||
if (Lvl==0 && Default.TraitGroup!=None && Default.TraitGroup.Static.GroupLimited(Perk,Default.Class))
|
||||
return false;
|
||||
@ -54,7 +54,7 @@ function string GetPerkDescription()
|
||||
{
|
||||
local string S;
|
||||
local byte i;
|
||||
|
||||
|
||||
for (i=0; i<Default.NumLevels; ++i)
|
||||
{
|
||||
if (i==0)
|
||||
@ -163,7 +163,7 @@ static final function string GetInlineStr(out string S) // Reverse.
|
||||
{
|
||||
local int l;
|
||||
local string Res;
|
||||
|
||||
|
||||
l = StrToInt(S);
|
||||
Res = Left(S,l);
|
||||
S = Mid(S,l);
|
||||
@ -174,7 +174,7 @@ static function string GetRepData()
|
||||
{
|
||||
local string S;
|
||||
local int i;
|
||||
|
||||
|
||||
S = IntToStr(Default.MinLevel)$IntToStr(Default.LevelCosts.Length);
|
||||
for (i=0; i<Default.LevelCosts.Length; ++i)
|
||||
S $= IntToStr(Default.LevelCosts[i]);
|
||||
|
@ -8,5 +8,4 @@ var class<Ext_TraitBase> TraitClass;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
|
||||
}
|
@ -17,25 +17,25 @@ static function bool MeetsRequirements(byte Lvl, Ext_PerkBase Perk)
|
||||
|
||||
if (Perk.CurrentLevel<Default.MinLevel || Perk.CurrentPrestige<3)
|
||||
return false;
|
||||
|
||||
|
||||
if (Lvl==0)
|
||||
{
|
||||
i = Perk.PerkStats.Find('StatType','Damage');
|
||||
if (i>=0)
|
||||
return (Perk.PerkStats[i].CurrentValue>=30);
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||
{
|
||||
local ExtPlayerReplicationInfo MyPRI;
|
||||
|
||||
|
||||
MyPRI = ExtPlayerReplicationInfo(Perk.PlayerOwner.PlayerReplicationInfo);
|
||||
if (MyPRI == None || Ext_PerkDemolition(Perk) == None)
|
||||
return;
|
||||
|
||||
|
||||
MyPRI.bNukeActive = true;
|
||||
Ext_PerkDemolition(Perk).NukeDamageMult = 1.0 + (((float(Level) - 1.f) * 5.f) / 100.f);
|
||||
}
|
||||
@ -43,11 +43,11 @@ static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitD
|
||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||
{
|
||||
local ExtPlayerReplicationInfo MyPRI;
|
||||
|
||||
|
||||
MyPRI = ExtPlayerReplicationInfo(Perk.PlayerOwner.PlayerReplicationInfo);
|
||||
if (MyPRI == None || Ext_PerkDemolition(Perk) == None)
|
||||
return;
|
||||
|
||||
|
||||
MyPRI.bNukeActive = false;
|
||||
Ext_PerkDemolition(Perk).NukeDamageMult = 1.0;
|
||||
}
|
||||
|
@ -15,16 +15,16 @@ static function bool MeetsRequirements(byte Lvl, Ext_PerkBase Perk)
|
||||
{
|
||||
local int i;
|
||||
|
||||
if (Perk.CurrentLevel<Default.MinLevel || Perk.CurrentPrestige<1)
|
||||
if (Perk.CurrentLevel<Default.MinLevel || Perk.CurrentPrestige<3)
|
||||
return false;
|
||||
|
||||
|
||||
if (Lvl==0)
|
||||
{
|
||||
i = Perk.PerkStats.Find('StatType','Reload');
|
||||
if (i>=0)
|
||||
return (Perk.PerkStats[i].CurrentValue>=30);
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -43,4 +43,4 @@ defaultproperties
|
||||
SupportedPerk=class'Ext_PerkDemolition'
|
||||
DefLevelCosts(0)=100
|
||||
DefMinLevel=100
|
||||
}
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
Class Ext_TraitGroundFire extends Ext_TraitBase;
|
||||
|
||||
static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||
{
|
||||
Ext_PerkFirebug(Perk).bUseGroundFire = true;
|
||||
}
|
||||
|
||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||
{
|
||||
Ext_PerkFirebug(Perk).bUseGroundFire = false;
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
DefLevelCosts(0)=50
|
||||
}
|
@ -5,7 +5,7 @@ var array<byte> RegenValues;
|
||||
static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||
{
|
||||
local Ext_T_HealthRegHelp H;
|
||||
|
||||
|
||||
H = Player.Spawn(class'Ext_T_HealthRegHelp',Player);
|
||||
if (H!=None)
|
||||
H.RegCount = Default.RegenValues[Level-1];
|
||||
|
@ -1,16 +0,0 @@
|
||||
Class Ext_TraitHeatWave extends Ext_TraitBase;
|
||||
|
||||
static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||
{
|
||||
Ext_PerkFirebug(Perk).bUseHeatWave = true;
|
||||
}
|
||||
|
||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||
{
|
||||
Ext_PerkFirebug(Perk).bUseHeatWave = false;
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
DefLevelCosts(0)=50
|
||||
}
|
@ -14,7 +14,7 @@ static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level
|
||||
{
|
||||
if (Level <= 1)
|
||||
return;
|
||||
|
||||
|
||||
Level == 2 ? Player.AddArmor(50) : Player.AddArmor(Player.MaxArmor);
|
||||
}
|
||||
|
||||
|
@ -1,31 +0,0 @@
|
||||
Class Ext_TraitInferno extends Ext_TraitBase;
|
||||
|
||||
var localized string GroupDescription;
|
||||
|
||||
function string GetPerkDescription()
|
||||
{
|
||||
local string S;
|
||||
|
||||
S = Super.GetPerkDescription();
|
||||
S $= "|"$GroupDescription;
|
||||
return S;
|
||||
}
|
||||
|
||||
static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||
{
|
||||
Ext_PerkFirebug(Perk).bUseInferno = true;
|
||||
}
|
||||
|
||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||
{
|
||||
Ext_PerkFirebug(Perk).bUseInferno = false;
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
SupportedPerk=class'Ext_PerkFirebug'
|
||||
TraitGroup=class'Ext_TGroupZEDTime'
|
||||
NumLevels=1
|
||||
DefLevelCosts(0)=50
|
||||
//DefMinLevel=65
|
||||
}
|
@ -20,7 +20,7 @@ defaultproperties
|
||||
DefLevelCosts(2)=40
|
||||
DefLevelCosts(3)=60
|
||||
DefMinLevel=70
|
||||
|
||||
|
||||
ChanceValues(0)=0.8
|
||||
ChanceValues(1)=0.5
|
||||
ChanceValues(2)=0.3
|
||||
|
@ -15,7 +15,7 @@ static function bool MeetsRequirements(byte Lvl, Ext_PerkBase Perk)
|
||||
{
|
||||
if (Perk.CurrentLevel<Default.MinLevel || Perk.CurrentPrestige<2)
|
||||
return false;
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -15,12 +15,12 @@ static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level
|
||||
Inv = Player.FindInventoryType(class'ExtWeap_Pistol_9mm');
|
||||
if (Inv!=None)
|
||||
Inv.Destroy();
|
||||
|
||||
|
||||
if (Player.FindInventoryType(class'ExtWeap_Pistol_MedicS')==None)
|
||||
{
|
||||
Inv = Player.CreateInventory(class'ExtWeap_Pistol_MedicS',Player.Weapon!=None);
|
||||
if (KFWeapon(Inv)!=None)
|
||||
KFWeapon(Inv).bGivenAtStart = true;
|
||||
KFWeapon(Inv).bGivenAtStart = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -17,7 +17,7 @@ static function bool MeetsRequirements(byte Lvl, Ext_PerkBase Perk)
|
||||
|
||||
if (Perk.CurrentLevel<Default.MinLevel || Perk.CurrentPrestige<2)
|
||||
return false;
|
||||
|
||||
|
||||
for (i=0; i<Perk.PerkTraits.Length; ++i)
|
||||
{
|
||||
if (Perk.PerkTraits[i].TraitType==Class'Ext_TraitAPShots')
|
||||
@ -27,7 +27,7 @@ static function bool MeetsRequirements(byte Lvl, Ext_PerkBase Perk)
|
||||
else break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -1,31 +0,0 @@
|
||||
Class Ext_TraitPyromaniac extends Ext_TraitBase;
|
||||
|
||||
var localized string GroupDescription;
|
||||
|
||||
function string GetPerkDescription()
|
||||
{
|
||||
local string S;
|
||||
|
||||
S = Super.GetPerkDescription();
|
||||
S $= "|"$GroupDescription;
|
||||
return S;
|
||||
}
|
||||
|
||||
static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||
{
|
||||
Ext_PerkFirebug(Perk).bUsePyromaniac = true;
|
||||
}
|
||||
|
||||
static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||
{
|
||||
Ext_PerkFirebug(Perk).bUsePyromaniac = false;
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
SupportedPerk=class'Ext_PerkFirebug'
|
||||
TraitGroup=class'Ext_TGroupZEDTime'
|
||||
NumLevels=1
|
||||
DefLevelCosts(0)=50
|
||||
//DefMinLevel=65
|
||||
}
|
@ -21,7 +21,7 @@ defaultproperties
|
||||
DefLevelCosts(1)=30
|
||||
DefLevelCosts(2)=40
|
||||
DefMinLevel=100
|
||||
|
||||
|
||||
ChanceValues(0)=0.2
|
||||
ChanceValues(1)=0.5
|
||||
ChanceValues(2)=0.8
|
||||
|
@ -3,7 +3,7 @@ Class Ext_TraitRetali extends Ext_TraitBase;
|
||||
static function bool PreventDeath(KFPawn_Human Player, Controller Instigator, Class<DamageType> DamType, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
|
||||
{
|
||||
local ExtProj_SUPERGrenade P;
|
||||
|
||||
|
||||
P = Player.Spawn(class'ExtProj_SUPERGrenade');
|
||||
if (P!=None)
|
||||
{
|
||||
|
@ -13,5 +13,5 @@ static function TraitDeActivate(Ext_PerkBase Perk, byte Level, optional Ext_Trai
|
||||
defaultproperties
|
||||
{
|
||||
DefLevelCosts(0)=50
|
||||
DefMinLevel=75
|
||||
DefMinLevel=75
|
||||
}
|
@ -21,6 +21,6 @@ defaultproperties
|
||||
{
|
||||
DefLevelCosts(0)=50
|
||||
TraitData=class'Ext_TraitSupplyData'
|
||||
|
||||
|
||||
SupplyIcon=Texture2D'UI_World_TEX.Support_Supplier_HUD'
|
||||
}
|
@ -12,7 +12,7 @@ final function SpawnSupplier(KFPawn_Human H, optional bool bGrenades)
|
||||
SupplyInteraction.PlayerOwner = H;
|
||||
SupplyInteraction.PerkOwner = Perk;
|
||||
SupplyInteraction.bGrenades = bGrenades;
|
||||
|
||||
|
||||
if (PlayerOwner!=None && ExtPlayerReplicationInfo(PlayerOwner.PlayerReplicationInfo)!=None)
|
||||
ExtPlayerReplicationInfo(PlayerOwner.PlayerReplicationInfo).HasSupplier = class<Ext_TraitSupply>(TraitClass);
|
||||
}
|
||||
@ -21,7 +21,7 @@ final function RemoveSupplier()
|
||||
{
|
||||
if (SupplyInteraction!=None)
|
||||
SupplyInteraction.Destroy();
|
||||
|
||||
|
||||
if (PlayerOwner!=None && ExtPlayerReplicationInfo(PlayerOwner.PlayerReplicationInfo)!=None)
|
||||
ExtPlayerReplicationInfo(PlayerOwner.PlayerReplicationInfo).HasSupplier = None;
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user