Archived
Complete Remake of the Modpack
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Rider ignored files
|
||||
/projectSettingsUpdater.xml
|
||||
/.idea.Choccy-SAA.iml
|
||||
/contentModel.xml
|
||||
/modules.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="UserContentModel">
|
||||
<attachedFolders />
|
||||
<explicitIncludes />
|
||||
<explicitExcludes />
|
||||
</component>
|
||||
</project>
|
||||
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"manifest": [
|
||||
{
|
||||
"key": "assets/weapons/colt_saa/patron_1143x33mmr_lead.bundle",
|
||||
"dependencyKeys": [
|
||||
"shaders",
|
||||
"cubemaps"
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "assets/weapons/colt_saa/weapon_colt_single_action_army_container.bundle",
|
||||
"dependencyKeys": [
|
||||
"assets/content/weapons/additional_hands/client_assets.bundle",
|
||||
"assets/content/weapons/wip/kibas tuning prefabs/muzzlejets_templates/default_assets.bundle",
|
||||
"assets/systems/effects/heathaze/defaultheathaze.bundle",
|
||||
"assets/systems/effects/muzzleflash/muzzleflash.bundle",
|
||||
"assets/systems/effects/smoke.bundle",
|
||||
"assets/weapons/colt_saa/main_store.bundle",
|
||||
"assets/weapons/colt_saa/saa_bank.bundle",
|
||||
"assets/content/audio/weapons/generic"
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "assets/weapons/colt_saa/weapon_colt_single_action_army_container_debugging.bundle",
|
||||
"dependencyKeys": [
|
||||
"assets/content/weapons/additional_hands/client_assets.bundle",
|
||||
"assets/content/weapons/wip/kibas tuning prefabs/muzzlejets_templates/default_assets.bundle",
|
||||
"assets/systems/effects/heathaze/defaultheathaze.bundle",
|
||||
"assets/systems/effects/muzzleflash/muzzleflash.bundle",
|
||||
"assets/systems/effects/smoke.bundle",
|
||||
"assets/weapons/colt_saa/main_store.bundle",
|
||||
"assets/weapons/colt_saa/saa_bank.bundle",
|
||||
"assets/content/audio/weapons/generic"
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "assets/weapons/colt_saa/weapon_colt_single_action_army_container_debugging_alt.bundle",
|
||||
"dependencyKeys": [
|
||||
"assets/content/weapons/additional_hands/client_assets.bundle",
|
||||
"assets/content/weapons/wip/kibas tuning prefabs/muzzlejets_templates/default_assets.bundle",
|
||||
"assets/systems/effects/heathaze/defaultheathaze.bundle",
|
||||
"assets/systems/effects/muzzleflash/muzzleflash.bundle",
|
||||
"assets/systems/effects/smoke.bundle",
|
||||
"assets/weapons/colt_saa/main_store.bundle",
|
||||
"assets/weapons/colt_saa/saa_bank.bundle",
|
||||
"assets/content/audio/weapons/generic"
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "assets/weapons/colt_saa/main_store.bundle",
|
||||
"dependencyKeys": [
|
||||
"shaders",
|
||||
"cubemaps",
|
||||
"assets/weapons/colt_saa/texture.bundle"
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "assets/weapons/colt_saa/texture.bundle",
|
||||
"dependencyKeys": [
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "assets/weapons/colt_saa/mod_magazine_colt_army_cylinder.bundle",
|
||||
"dependencyKeys": [
|
||||
"assets/weapons/colt_saa/main_store.bundle"
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "assets/weapons/colt_saa/saa_bank.bundle",
|
||||
"dependencyKeys": [
|
||||
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
mods/Colt Single Action Revolver/user/mods/choccy-saa/bundles/assets/weapons/colt_saa/texture.bundle
LFS
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"Debug_Mode": false,
|
||||
"altdebug": false
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"name": "SAA",
|
||||
"version": "1.0.10",
|
||||
"main": "src/mod.js",
|
||||
"license": "CC-BY 3.0",
|
||||
"author": "Choccy",
|
||||
"isBundleMod": true,
|
||||
"sptVersion": "~3.11",
|
||||
"scripts": {
|
||||
"setup": "npm i",
|
||||
"build": "node ./build.mjs",
|
||||
"buildinfo": "node ./build.mjs --verbose"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "20.11",
|
||||
"@typescript-eslint/eslint-plugin": "7.2",
|
||||
"@typescript-eslint/parser": "7.2",
|
||||
"archiver": "^6.0",
|
||||
"eslint": "8.57",
|
||||
"fs-extra": "11.2",
|
||||
"ignore": "^5.2",
|
||||
"tsyringe": "4.8.0",
|
||||
"typescript": "5.8",
|
||||
"winston": "3.12"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
// This is a simple script used to build a mod package. The script will copy necessary files to the build directory
|
||||
// and compress the build directory into a zip file that can be easily shared.
|
||||
|
||||
const fs = require("fs-extra");
|
||||
const glob = require("glob");
|
||||
const zip = require('bestzip');
|
||||
const path = require("path");
|
||||
|
||||
// Load the package.json file to get some information about the package so we can name things appropriately. This is
|
||||
// atypical, and you would never do this in a production environment, but this script is only used for development so
|
||||
// it's fine in this case. Some of these values are stored in environment variables, but those differ between node
|
||||
// versions; the 'author' value is not available after node v14.
|
||||
const { author, name:packageName, version } = require("./package.json");
|
||||
|
||||
// Generate the name of the package, stripping out all non-alphanumeric characters in the 'author' and 'name'.
|
||||
const modName = `${author.replace(/[^a-z0-9]/gi, "")}-${packageName.replace(/[^a-z0-9]/gi, "")}-${version}`;
|
||||
console.log(`Generated package name: ${modName}`);
|
||||
|
||||
// Delete the old build directory and compressed package file.
|
||||
fs.rmSync(`${__dirname}/dist`, { force: true, recursive: true });
|
||||
console.log("Previous build files deleted.");
|
||||
|
||||
// Generate a list of files that should not be copied over into the distribution directory. This is a blacklist to ensure
|
||||
// we always copy over additional files and directories that authors may have added to their project. This may need to be
|
||||
// expanded upon by the mod author to allow for node modules that are used within the mod; example commented out below.
|
||||
const ignoreList = [
|
||||
"node_modules/",
|
||||
// "node_modules/!(weighted|glob)", // Instead of excluding the entire node_modules directory, allow two node modules.
|
||||
"src/**/*.js",
|
||||
"types/",
|
||||
".git/",
|
||||
".gitea/",
|
||||
".eslintignore",
|
||||
".eslintrc.json",
|
||||
".gitignore",
|
||||
".DS_Store",
|
||||
"packageBuild.ts",
|
||||
"mod.code-workspace",
|
||||
"package-lock.json",
|
||||
"tsconfig.json"
|
||||
];
|
||||
const exclude = glob.sync(`{${ignoreList.join(",")}}`, { realpath: true, dot: true });
|
||||
|
||||
// For some reason these basic-bitch functions won't allow us to copy a directory into itself, so we have to resort to
|
||||
// using a temporary directory, like an idiot. Excuse the normalize spam; some modules cross-platform, some don't...
|
||||
fs.copySync(__dirname, path.normalize(`${__dirname}/../~${modName}`), {filter:(filePath) =>
|
||||
{
|
||||
return !exclude.includes(filePath);
|
||||
}});
|
||||
fs.moveSync(path.normalize(`${__dirname}/../~${modName}`), path.normalize(`${__dirname}/${modName}`), { overwrite: true });
|
||||
fs.copySync(path.normalize(`${__dirname}/${modName}`), path.normalize(`${__dirname}/dist`));
|
||||
console.log("Build files copied.");
|
||||
|
||||
// Compress the files for easy distribution. The compressed file is saved into the dist directory. When uncompressed we
|
||||
// need to be sure that it includes a directory that the user can easily copy into their game mods directory.
|
||||
zip({
|
||||
source: modName,
|
||||
destination: `dist/${modName}.zip`,
|
||||
cwd: __dirname
|
||||
}).catch(function(err)
|
||||
{
|
||||
console.error("A bestzip error has occurred: ", err.stack);
|
||||
}).then(function()
|
||||
{
|
||||
console.log(`Compressed mod package to: /dist/${modName}.zip`);
|
||||
|
||||
// Now that we're done with the compression we can delete the temporary build directory.
|
||||
fs.rmSync(`${__dirname}/${modName}`, { force: true, recursive: true });
|
||||
console.log("Build successful! your zip file has been created and is ready to be uploaded to hub.sp-tarkov.com/files/");
|
||||
});
|
||||
@@ -0,0 +1,82 @@
|
||||
{
|
||||
"items": [
|
||||
{
|
||||
"_id": "6651564f6b50749c3c503af5",
|
||||
"_tpl": "665152810b4c784f2258d7d0",
|
||||
"parentId": "hideout",
|
||||
"slotId": "hideout",
|
||||
"upd": {
|
||||
"UnlimitedCount": true,
|
||||
"StackObjectsCount": 2375,
|
||||
"FireMode": {
|
||||
"FireMode": "single"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"_id": "65f6e6c2fab2670ee1dd550f",
|
||||
"_tpl": "665154c4019e9e7d5ad6d0cc",
|
||||
"parentId": "6651564f6b50749c3c503af5",
|
||||
"slotId": "mod_magazine"
|
||||
},
|
||||
{
|
||||
"_id": "66515659559711f98644d702",
|
||||
"_tpl": "665154c4019e9e7d5ad6d0cc",
|
||||
"parentId": "hideout",
|
||||
"slotId": "hideout",
|
||||
"upd": {
|
||||
"UnlimitedCount": true,
|
||||
"StackObjectsCount": 5732
|
||||
}
|
||||
},
|
||||
{
|
||||
"_id": "66515661ac3ab013c5a5308c",
|
||||
"_tpl": "65f3e7fa6d952338bde17f8a",
|
||||
"parentId": "hideout",
|
||||
"slotId": "hideout",
|
||||
"upd": {
|
||||
"UnlimitedCount": true,
|
||||
"StackObjectsCount": 5732
|
||||
}
|
||||
}
|
||||
],
|
||||
"barter_scheme": {
|
||||
"6651564f6b50749c3c503af5": [
|
||||
[
|
||||
{
|
||||
"_tpl": "5e54f62086f774219b0f1937",
|
||||
"count": 1
|
||||
},
|
||||
{
|
||||
"_tpl": "5bc9bdb8d4351e003562b8a1",
|
||||
"count": 1
|
||||
},
|
||||
{
|
||||
"_tpl": "5bc9b355d4351e6d1509862a",
|
||||
"count": 1
|
||||
}
|
||||
]
|
||||
],
|
||||
"66515659559711f98644d702": [
|
||||
[
|
||||
{
|
||||
"_tpl": "5449016a4bdc2d6f028b456f",
|
||||
"count": 21554
|
||||
}
|
||||
]
|
||||
],
|
||||
"66515661ac3ab013c5a5308c": [
|
||||
[
|
||||
{
|
||||
"_tpl": "5449016a4bdc2d6f028b456f",
|
||||
"count": 2875
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"loyal_level_items":{
|
||||
"6651564f6b50749c3c503af5": 3,
|
||||
"66515659559711f98644d702": 3,
|
||||
"66515661ac3ab013c5a5308c": 3
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"ItemPresets": {
|
||||
"65f3e931ac7e6374d1edae28": {
|
||||
"_changeWeaponName": false,
|
||||
"_encyclopedia": "665152810b4c784f2258d7d0",
|
||||
"_id": "65f3e931ac7e6374d1edae28",
|
||||
"_items": [
|
||||
{
|
||||
"_id": "65f3e93d2054f73e342c8c7e",
|
||||
"_tpl": "665152810b4c784f2258d7d0",
|
||||
"upd": {
|
||||
"FireMode": {
|
||||
"FireMode": "single"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"_id": "65f3e96e4069bbc8d4d79f8e",
|
||||
"_tpl": "665154c4019e9e7d5ad6d0cc",
|
||||
"parentId": "65f3e93d2054f73e342c8c7e",
|
||||
"slotId": "mod_magazine"
|
||||
}
|
||||
],
|
||||
"_name": "Peacemaker Stock",
|
||||
"_parent": "65f3e93d2054f73e342c8c7e",
|
||||
"_type": "Preset"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,319 @@
|
||||
{
|
||||
"spawnsRezerv": [
|
||||
{
|
||||
"locationId": "(78.797 2.4313 -13.9751|37.4873 226.9819 316.1582)",
|
||||
"probability": 0.345273,
|
||||
"template": {
|
||||
"Id": "6651567375381abb786f3a5b",
|
||||
"IsContainer": false,
|
||||
"useGravity": true,
|
||||
"randomRotation": false,
|
||||
"Position": {
|
||||
"x": 78.797,
|
||||
"y": 2.4313,
|
||||
"z": -13.9751
|
||||
},
|
||||
"Rotation": {
|
||||
"x": 37.4873,
|
||||
"y": 226.9819,
|
||||
"z": 316.1582
|
||||
},
|
||||
"IsGroupPosition": false,
|
||||
"GroupPositions": [],
|
||||
"IsAlwaysSpawn": false,
|
||||
"Root": "6651567738f38ab0f6c52bc2",
|
||||
"Items": [
|
||||
{
|
||||
"_id": "6651567ed962a5b792248fa6",
|
||||
"_tpl": "665152810b4c784f2258d7d0"
|
||||
},
|
||||
{
|
||||
"_id": "665156862404d5899b738021",
|
||||
"_tpl": "665154c4019e9e7d5ad6d0cc",
|
||||
"parentId": "6651567ed962a5b792248fa6",
|
||||
"slotId": "mod_magazine"
|
||||
}
|
||||
]
|
||||
},
|
||||
"itemDistribution": [
|
||||
{
|
||||
"composedKey": {
|
||||
"key": "6651567ed962a5b792248fa6"
|
||||
},
|
||||
"relativeProbability": 8
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"locationId": "(11.5916 -0.7892 4.6904|353.6969 48.8262 41.7712)",
|
||||
"probability": 0.044532,
|
||||
"template": {
|
||||
"Id": "66515689253af484c5f1303a",
|
||||
"IsContainer": false,
|
||||
"useGravity": true,
|
||||
"randomRotation": false,
|
||||
"Position": {
|
||||
"x": 11.5916,
|
||||
"y": -0.7892,
|
||||
"z": 4.6904
|
||||
},
|
||||
"Rotation": {
|
||||
"x": 353.6969,
|
||||
"y": 48.8262,
|
||||
"z": 41.7712
|
||||
},
|
||||
"IsGroupPosition": false,
|
||||
"GroupPositions": [],
|
||||
"IsAlwaysSpawn": false,
|
||||
"Root": "6651568ca4b26f481f19cda6",
|
||||
"Items": [
|
||||
{
|
||||
"_id": "66515693328c890700469175",
|
||||
"_tpl": "665152810b4c784f2258d7d0"
|
||||
},
|
||||
{
|
||||
"_id": "665156918928bd149c60e827",
|
||||
"_tpl": "665154c4019e9e7d5ad6d0cc",
|
||||
"parentId": "66515693328c890700469175",
|
||||
"slotId": "mod_magazine"
|
||||
}
|
||||
]
|
||||
},
|
||||
"itemDistribution": [
|
||||
{
|
||||
"composedKey": {
|
||||
"key": "66515693328c890700469175"
|
||||
},
|
||||
"relativeProbability": 8
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"locationId": "(-57.1463 2.6746 20.5125|332.6287 14.0353 93.8348)",
|
||||
"probability": 0.007432,
|
||||
"template": {
|
||||
"Id": "6651569a10759cb0de48342f",
|
||||
"IsContainer": false,
|
||||
"useGravity": true,
|
||||
"randomRotation": false,
|
||||
"Position": {
|
||||
"x": -57.1463,
|
||||
"y": 2.6746,
|
||||
"z": 20.5125
|
||||
},
|
||||
"Rotation": {
|
||||
"x": 332.6287,
|
||||
"y": 14.0353,
|
||||
"z": 93.8348
|
||||
},
|
||||
"IsGroupPosition": false,
|
||||
"GroupPositions": [],
|
||||
"IsAlwaysSpawn": false,
|
||||
"Root": "6651569d1466068c6cf8b2b2",
|
||||
"Items": [
|
||||
{
|
||||
"_id": "665156a3b260a8bf5125a4b7",
|
||||
"_tpl": "665152810b4c784f2258d7d0"
|
||||
},
|
||||
{
|
||||
"_id": "665156a05ac9ddcd5afa52d2",
|
||||
"_tpl": "665154c4019e9e7d5ad6d0cc",
|
||||
"parentId": "665156a3b260a8bf5125a4b7",
|
||||
"slotId": "mod_magazine"
|
||||
}
|
||||
]
|
||||
},
|
||||
"itemDistribution": [
|
||||
{
|
||||
"composedKey": {
|
||||
"key": "665156a3b260a8bf5125a4b7"
|
||||
},
|
||||
"relativeProbability": 8
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"locationId": "(-40.0311 19.3493 182.6263|359.9928 29.7891 272.4274)",
|
||||
"probability": 0.115632,
|
||||
"template": {
|
||||
"Id": "665156b386eb1fb0aa4423d8",
|
||||
"IsContainer": false,
|
||||
"useGravity": true,
|
||||
"randomRotation": false,
|
||||
"Position": {
|
||||
"x": -40.0311,
|
||||
"y": 19.3493,
|
||||
"z": 182.6263
|
||||
},
|
||||
"Rotation": {
|
||||
"x": 359.9928,
|
||||
"y": 29.7891,
|
||||
"z": 272.4274
|
||||
},
|
||||
"IsGroupPosition": false,
|
||||
"GroupPositions": [],
|
||||
"IsAlwaysSpawn": false,
|
||||
"Root": "665156b6e05850fe3e39d38e",
|
||||
"Items": [
|
||||
{
|
||||
"_id": "665156bcf71631770429e3ad",
|
||||
"_tpl": "665152810b4c784f2258d7d0"
|
||||
},
|
||||
{
|
||||
"_id": "665156b953844543601b15ca",
|
||||
"_tpl": "665154c4019e9e7d5ad6d0cc",
|
||||
"parentId": "665156bcf71631770429e3ad",
|
||||
"slotId": "mod_magazine"
|
||||
}
|
||||
]
|
||||
},
|
||||
"itemDistribution": [
|
||||
{
|
||||
"composedKey": {
|
||||
"key": "665156bcf71631770429e3ad"
|
||||
},
|
||||
"relativeProbability": 8
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"spawnsWoods":[
|
||||
{
|
||||
"locationId": "(54.0311 -1.9997 -47.0143|1.7769 44.5448 93.2316)",
|
||||
"probability": 0.15673,
|
||||
"template": {
|
||||
"Id": "665156c6e89a63667409ae9b",
|
||||
"IsContainer": false,
|
||||
"useGravity": true,
|
||||
"randomRotation": false,
|
||||
"Position": {
|
||||
"x": 54.0311,
|
||||
"y": -1.9997,
|
||||
"z": -47.0143
|
||||
},
|
||||
"Rotation": {
|
||||
"x": 1.7769,
|
||||
"y": 44.5448,
|
||||
"z": 93.2316
|
||||
},
|
||||
"IsGroupPosition": false,
|
||||
"GroupPositions": [],
|
||||
"IsAlwaysSpawn": false,
|
||||
"Root": "665156ca4aeb42ea90e12402",
|
||||
"Items": [
|
||||
{
|
||||
"_id": "665156d18439fd78ee89f7fa",
|
||||
"_tpl": "665152810b4c784f2258d7d0"
|
||||
},
|
||||
{
|
||||
"_id": "665156cdfbc726f414d55e81",
|
||||
"_tpl": "665154c4019e9e7d5ad6d0cc",
|
||||
"parentId": "665156d18439fd78ee89f7fa",
|
||||
"slotId": "mod_magazine"
|
||||
}
|
||||
]
|
||||
},
|
||||
"itemDistribution": [
|
||||
{
|
||||
"composedKey": {
|
||||
"key": "665156d18439fd78ee89f7fa"
|
||||
},
|
||||
"relativeProbability": 8
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"locationId": "(-203.8976 -1.006 217.1824|359.8936 156.5553 49.0165)",
|
||||
"probability": 0.24673,
|
||||
"template": {
|
||||
"Id": "665156d66283b8245a51ee10",
|
||||
"IsContainer": false,
|
||||
"useGravity": true,
|
||||
"randomRotation": false,
|
||||
"Position": {
|
||||
"x": -203.8976,
|
||||
"y": -1.006,
|
||||
"z": 217.1824
|
||||
},
|
||||
"Rotation": {
|
||||
"x": 359.8936,
|
||||
"y": 156.5553,
|
||||
"z": 49.0165
|
||||
},
|
||||
"IsGroupPosition": false,
|
||||
"GroupPositions": [],
|
||||
"IsAlwaysSpawn": false,
|
||||
"Root": "665156d92118013ac5fc6364",
|
||||
"Items": [
|
||||
{
|
||||
"_id": "665156e00c98d72dd4cde0f9",
|
||||
"_tpl": "665152810b4c784f2258d7d0"
|
||||
},
|
||||
{
|
||||
"_id": "665156ddb836ed40339d2688",
|
||||
"_tpl": "665154c4019e9e7d5ad6d0cc",
|
||||
"parentId": "665156e00c98d72dd4cde0f9",
|
||||
"slotId": "mod_magazine"
|
||||
}
|
||||
]
|
||||
},
|
||||
"itemDistribution": [
|
||||
{
|
||||
"composedKey": {
|
||||
"key": "665156e00c98d72dd4cde0f9"
|
||||
},
|
||||
"relativeProbability": 8
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"spawnsFactory": [
|
||||
{
|
||||
"locationId": "(25.5145 8.6044 40.7727|0.1531 106.4753 158.1044)",
|
||||
"probability": 0.07643,
|
||||
"template": {
|
||||
"Id": "665156e757dec8b8d7dd5f0b",
|
||||
"IsContainer": false,
|
||||
"useGravity": true,
|
||||
"randomRotation": false,
|
||||
"Position": {
|
||||
"x": 25.5145,
|
||||
"y": 8.6044,
|
||||
"z": 40.7727
|
||||
},
|
||||
"Rotation": {
|
||||
"x": 0.1531,
|
||||
"y": 106.4753,
|
||||
"z": 158.1044
|
||||
},
|
||||
"IsGroupPosition": false,
|
||||
"GroupPositions": [],
|
||||
"IsAlwaysSpawn": false,
|
||||
"Root": "665156eac2285ec483385e8d",
|
||||
"Items": [
|
||||
{
|
||||
"_id": "665156ef5ddfea15aa6e1b1b",
|
||||
"_tpl": "665152810b4c784f2258d7d0"
|
||||
},
|
||||
{
|
||||
"_id": "665156edbf39d6a24be36ec7",
|
||||
"_tpl": "665154c4019e9e7d5ad6d0cc",
|
||||
"parentId": "665156ef5ddfea15aa6e1b1b",
|
||||
"slotId": "mod_magazine"
|
||||
}
|
||||
]
|
||||
},
|
||||
"itemDistribution": [
|
||||
{
|
||||
"composedKey": {
|
||||
"key": "665156ef5ddfea15aa6e1b1b"
|
||||
},
|
||||
"relativeProbability": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"spawnsLight": [],
|
||||
"spawnsShore": [],
|
||||
"spawnsCustom": []
|
||||
}
|
||||
@@ -0,0 +1,453 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.mod = exports.WeaponIds = void 0;
|
||||
const Item_Preset_json_1 = __importDefault(require("../src/Item_Preset.json"));
|
||||
const global_item_preset_json_1 = __importDefault(require("../src/global_item_preset.json"));
|
||||
const config_json_1 = __importDefault(require("../config/config.json"));
|
||||
const Spawns_json_1 = __importDefault(require("../src/loot/Spawns.json"));
|
||||
const ItemTpl_1 = require("C:/snapshot/project/obj/models/enums/ItemTpl");
|
||||
const Traders_1 = require("C:/snapshot/project/obj/models/enums/Traders");
|
||||
var WeaponIds;
|
||||
(function (WeaponIds) {
|
||||
WeaponIds["COLT_PEACEMAKER"] = "665152810b4c784f2258d7d0";
|
||||
})(WeaponIds || (exports.WeaponIds = WeaponIds = {}));
|
||||
class Mod {
|
||||
postDBLoad(container) {
|
||||
const customitem = container.resolve("CustomItemService");
|
||||
const databaseServer = container.resolve("DatabaseServer");
|
||||
const dbTables = databaseServer.getTables();
|
||||
const globals = dbTables.globals;
|
||||
const PK = dbTables.traders[Traders_1.Traders.PEACEKEEPER].assort;
|
||||
const SKR = dbTables.traders[Traders_1.Traders.SKIER].assort;
|
||||
// WEAPON LISTING AND ATTACHMENT
|
||||
const Patron_1143x33 = {
|
||||
itemTplToClone: "5c0d56a986f774449d5de529",
|
||||
overrideProperties: {
|
||||
Weight: 0.0165,
|
||||
ArmorDamage: 58,
|
||||
BulletMassGram: 16.5,
|
||||
Caliber: "Caliber1143x33mmR",
|
||||
Damage: 102,
|
||||
ExaminedByDefault: false,
|
||||
FragmentType: "",
|
||||
FragmentationChance: 0,
|
||||
InitialSpeed: 343,
|
||||
HeavyBleedingDelta: 0.24,
|
||||
LightBleedingDelta: 0.33,
|
||||
PenetrationChanceObstacle: 0.32,
|
||||
PenetrationPower: 67,
|
||||
PenetrationPowerDiviation: 0.211,
|
||||
Prefab: {
|
||||
path: "assets/weapons/colt_saa/patron_1143x33mmr_lead.bundle",
|
||||
rcid: ""
|
||||
},
|
||||
StaminaBurnPerDamage: 0.733,
|
||||
casingMass: 14,
|
||||
ammoRec: 47,
|
||||
MalfFeedChance: 0,
|
||||
MalfMisfireChance: 0,
|
||||
StackMaxSize: 20,
|
||||
StackMaxRandom: 10
|
||||
},
|
||||
parentId: "5485a8684bdc2da71d8b4567",
|
||||
newId: "65f3e7fa6d952338bde17f8a",
|
||||
handbookParentId: "5b47574386f77428ca22b33b",
|
||||
handbookPriceRoubles: 1086,
|
||||
fleaPriceRoubles: 1244,
|
||||
locales: {
|
||||
"en": {
|
||||
name: ".45 Colt +P",
|
||||
shortName: ".45C+P",
|
||||
description: "The .45 Colt (11.43×33mmR), is a rimmed, straight-walled, handgun cartridge dating to 1872. The .45 Colt is loaded with black powder, but with recent years it is now loaded with a smokeless powder. Providing a powerful force with the cost of recoil."
|
||||
}
|
||||
}
|
||||
};
|
||||
customitem.createItemFromClone(Patron_1143x33);
|
||||
const colt_saa = {
|
||||
itemTplToClone: "61a4c8884f95bc3b2c5dc96f",
|
||||
overrideProperties: {
|
||||
Prefab: {
|
||||
path: "assets/weapons/colt_saa/weapon_colt_single_action_army_container.bundle",
|
||||
rcid: ""
|
||||
},
|
||||
BackgroundColor: "yellow",
|
||||
aimingSensitivity: 0.7,
|
||||
AimPlane: 0.15,
|
||||
CenterOfImpact: 0.045,
|
||||
DeviationCurve: 3,
|
||||
DeviationMax: 8,
|
||||
Ergonomics: 95,
|
||||
ExaminedByDefault: true,
|
||||
ExamineExperience: 18,
|
||||
HeatFactorGun: 0.76,
|
||||
IronSightRange: 100,
|
||||
LootExperience: 25,
|
||||
RecoilAngle: 94,
|
||||
RecoilCenter: {
|
||||
x: 0,
|
||||
y: -0.491,
|
||||
z: -0.023
|
||||
},
|
||||
RecoilForceUp: 422,
|
||||
RecoilForceBack: 240,
|
||||
RecoilPosZMult: 0.7,
|
||||
RecoilCamera: 0.016,
|
||||
RecoilReturnPathDampingHandRotation: 0.68,
|
||||
RecoilReturnSpeedHandRotation: 3.26,
|
||||
RecoilDampingHandRotation: 0.74,
|
||||
CameraToWeaponAngleStep: 0.01,
|
||||
CameraSnap: 4,
|
||||
RotationCenterNoStock: {
|
||||
x: 0,
|
||||
y: -0.491,
|
||||
z: -0.023
|
||||
},
|
||||
Slots: [
|
||||
{
|
||||
_id: "665154a231f1039d7fccbcd5",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "mod_magazine",
|
||||
"_parent": WeaponIds.COLT_PEACEMAKER,
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"AnimationIndex": 0,
|
||||
"Filter": [
|
||||
"665154c4019e9e7d5ad6d0cc"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d30c394bdc2dae468b4577",
|
||||
"_required": true
|
||||
}
|
||||
],
|
||||
Weight: 1.048,
|
||||
ammoCaliber: "Caliber1143x33mmR",
|
||||
defAmmo: "65f3e7fa6d952338bde17f8a",
|
||||
defMagType: "665154c4019e9e7d5ad6d0cc",
|
||||
durabSpawnMax: 100,
|
||||
durabSpawnMin: 35,
|
||||
weapFireType: ["single"]
|
||||
},
|
||||
parentId: "617f1ef5e8b54b0998387733",
|
||||
newId: WeaponIds.COLT_PEACEMAKER,
|
||||
handbookParentId: "5b5f792486f77447ed5636b3",
|
||||
handbookPriceRoubles: 12987,
|
||||
fleaPriceRoubles: 174335,
|
||||
locales: {
|
||||
"en": {
|
||||
name: "Colt Single Action Army \"Peacemaker\" 11.43x33mmR Revolver",
|
||||
shortName: "Peacemaker",
|
||||
description: "The Colt Single Action Army, also known as SAA, is a single-action revolver handgun. It was designed for the U.S. government service revolver trials of 1872 by Colt's Patent Firearms Manufacturing Company and was adopted as the standard-issued pistol of the U.S. Army from 1873 until 1892. Today, they are mainly bought as memorabilia by collectors and re-enactors. It is recommended to not load all 6 shot as the hammer wil hit the round even if it's not cocked (but that's real life). This one has engraving all over it, offering no tactical advantage whatsoever."
|
||||
}
|
||||
}
|
||||
};
|
||||
customitem.createItemFromClone(colt_saa);
|
||||
const colt_cylinder = {
|
||||
itemTplToClone: "619f54a1d25cbd424731fb99",
|
||||
overrideProperties: {
|
||||
Cartridges: [
|
||||
{
|
||||
"_id": "66515612ca5e57294f5e3527",
|
||||
"_max_count": 6,
|
||||
"_name": "cartridges",
|
||||
"_parent": "665154c4019e9e7d5ad6d0cc",
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "5748538b2459770af276a261"
|
||||
}
|
||||
],
|
||||
Ergonomics: -12,
|
||||
Weight: 0.21,
|
||||
ExamineExperience: 12,
|
||||
Prefab: {
|
||||
path: "assets/weapons/colt_saa/mod_magazine_colt_army_cylinder.bundle",
|
||||
rcid: ""
|
||||
},
|
||||
Slots: [
|
||||
{
|
||||
"_id": "665156168ca9d58731082a0a",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "camora_000",
|
||||
"_parent": "665154c4019e9e7d5ad6d0cc",
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
],
|
||||
MaxStackCount: 1
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d4af244bdc2d962f8b4571",
|
||||
"_required": false
|
||||
},
|
||||
{
|
||||
"_id": "66515619ddd2bbaccbae878b",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "camora_001",
|
||||
"_parent": "665154c4019e9e7d5ad6d0cc",
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
],
|
||||
MaxStackCount: 1
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d4af244bdc2d962f8b4571",
|
||||
"_required": false
|
||||
},
|
||||
{
|
||||
"_id": "6651561ed786bdb78ba7577d",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "camora_002",
|
||||
"_parent": "665154c4019e9e7d5ad6d0cc",
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
],
|
||||
"MaxStackCount": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d4af244bdc2d962f8b4571",
|
||||
"_required": false
|
||||
},
|
||||
{
|
||||
"_id": "665156238098aeabb396b22e",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "camora_003",
|
||||
"_parent": "665154c4019e9e7d5ad6d0cc",
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
],
|
||||
"MaxStackCount": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d4af244bdc2d962f8b4571",
|
||||
"_required": false
|
||||
},
|
||||
{
|
||||
"_id": "66515627af664f37df1da465",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "camora_004",
|
||||
"_parent": "665154c4019e9e7d5ad6d0cc",
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
],
|
||||
"MaxStackCount": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d4af244bdc2d962f8b4571",
|
||||
"_required": false
|
||||
},
|
||||
{
|
||||
"_id": "6651562b36f0014c0cb19e14",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "camora_005",
|
||||
"_parent": "665154c4019e9e7d5ad6d0cc",
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
],
|
||||
"MaxStackCount": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d4af244bdc2d962f8b4571",
|
||||
"_required": false
|
||||
}
|
||||
]
|
||||
},
|
||||
parentId: "610720f290b75a49ff2e5e25",
|
||||
newId: "665154c4019e9e7d5ad6d0cc",
|
||||
handbookParentId: "5b5f754a86f774094242f19b",
|
||||
handbookPriceRoubles: 2553,
|
||||
fleaPriceRoubles: 4348,
|
||||
locales: {
|
||||
"en": {
|
||||
name: "Colt Single Action Army 6-Round Cylinder",
|
||||
shortName: "Colt SAA",
|
||||
description: "6-Round standard issue cylinder for the SAA. This one has been customized with intricate engraving."
|
||||
}
|
||||
}
|
||||
};
|
||||
customitem.createItemFromClone(colt_cylinder);
|
||||
const Patron_1143x33_PACK = {
|
||||
itemTplToClone: "5649ed104bdc2d3d1c8b458b",
|
||||
overrideProperties: {
|
||||
StackSlots: [
|
||||
{
|
||||
"_id": "6651562fa7842ba5dacc9d7d",
|
||||
"_max_count": 20,
|
||||
"_name": "cartridges",
|
||||
"_parent": "66515174b0b7affec08d22aa",
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "5748538b2459770af276a261"
|
||||
}
|
||||
],
|
||||
Prefab: {
|
||||
path: "assets/content/items/ammo/boxes/item_ammo_box_7_62x54mm_r.bundle",
|
||||
rcid: ""
|
||||
},
|
||||
ammoCaliber: "Caliber1143x33mmR"
|
||||
},
|
||||
parentId: "543be5cb4bdc2deb348b4568",
|
||||
newId: "66515174b0b7affec08d22aa",
|
||||
handbookParentId: "5b47574386f77428ca22b33c",
|
||||
handbookPriceRoubles: 1763,
|
||||
fleaPriceRoubles: 2876,
|
||||
locales: {
|
||||
"en": {
|
||||
name: ".45 Colt +P 20 Cartridges Pack",
|
||||
shortName: ".45C+P",
|
||||
description: "A 20-round pack for .45 Colt cartridges."
|
||||
}
|
||||
}
|
||||
};
|
||||
customitem.createItemFromClone(Patron_1143x33_PACK);
|
||||
// MASTERY AND TRADER
|
||||
const saa_mastery = {
|
||||
"Name": "Colt Single Action",
|
||||
"Templates": [
|
||||
WeaponIds.COLT_PEACEMAKER
|
||||
],
|
||||
"Level2": 450,
|
||||
"Level3": 900
|
||||
};
|
||||
globals.config.Mastering.push(saa_mastery);
|
||||
if (config_json_1.default.Debug_Mode && config_json_1.default.altdebug != true) {
|
||||
dbTables.templates.items[WeaponIds.COLT_PEACEMAKER]._props.Prefab.path = "assets/weapons/colt_saa/weapon_colt_single_action_army_container_debugging.bundle";
|
||||
}
|
||||
else if (config_json_1.default.Debug_Mode && config_json_1.default.altdebug) {
|
||||
dbTables.templates.items[WeaponIds.COLT_PEACEMAKER]._props.Prefab.path = "assets/weapons/colt_saa/weapon_colt_single_action_army_container_debugging_alt.bundle";
|
||||
}
|
||||
for (const itemPreset in global_item_preset_json_1.default.ItemPresets) {
|
||||
globals.ItemPresets[itemPreset] = global_item_preset_json_1.default.ItemPresets[itemPreset];
|
||||
}
|
||||
//trader push
|
||||
SKR.items.push(...Item_Preset_json_1.default.items);
|
||||
for (const bsc in Item_Preset_json_1.default.barter_scheme) {
|
||||
SKR.barter_scheme[bsc] = Item_Preset_json_1.default.barter_scheme[bsc];
|
||||
}
|
||||
for (const llv in Item_Preset_json_1.default.loyal_level_items) {
|
||||
SKR.loyal_level_items[llv] = Item_Preset_json_1.default.loyal_level_items[llv];
|
||||
}
|
||||
//push loot
|
||||
const safeLoot = {
|
||||
"tpl": WeaponIds.COLT_PEACEMAKER,
|
||||
"relativeProbability": 24
|
||||
};
|
||||
const ammopack = {
|
||||
tpl: "66515174b0b7affec08d22aa",
|
||||
"relativeProbability": 146
|
||||
};
|
||||
const locations = dbTables.locations;
|
||||
locations.rezervbase.looseLoot.spawnpoints.push(...Spawns_json_1.default.spawnsRezerv);
|
||||
locations.woods.looseLoot.spawnpoints.push(...Spawns_json_1.default.spawnsWoods);
|
||||
locations.factory4_day.looseLoot.spawnpoints.push(...Spawns_json_1.default.spawnsFactory);
|
||||
locations.factory4_night.looseLoot.spawnpoints.push(...Spawns_json_1.default.spawnsFactory);
|
||||
for (const locationKey in locations) {
|
||||
const location = locations[locationKey];
|
||||
if (!location || !location.staticLoot) {
|
||||
continue;
|
||||
}
|
||||
const safe = location.staticLoot[ItemTpl_1.ItemTpl.LOOTCONTAINER_SAFE];
|
||||
if (safe) {
|
||||
safe.itemDistribution.push(safeLoot);
|
||||
}
|
||||
const weaponbox5x5 = location.staticLoot[ItemTpl_1.ItemTpl.LOOTCONTAINER_WEAPON_BOX_5X5];
|
||||
if (weaponbox5x5) {
|
||||
weaponbox5x5.itemDistribution.push(ammopack);
|
||||
}
|
||||
location.staticLoot[ItemTpl_1.ItemTpl.LOOTCONTAINER_WEAPON_BOX_4X4]?.itemDistribution.push(ammopack);
|
||||
location.staticLoot[ItemTpl_1.ItemTpl.LOOTCONTAINER_WEAPON_BOX_6X3]?.itemDistribution.push(ammopack);
|
||||
location.staticLoot[ItemTpl_1.ItemTpl.LOOTCONTAINER_WEAPON_BOX_5X2]?.itemDistribution.push(ammopack);
|
||||
location.staticLoot[ItemTpl_1.ItemTpl.LOOTCONTAINER_WOODEN_CRATE]?.itemDistribution.push(ammopack);
|
||||
if (!location || !location.staticAmmo) {
|
||||
continue;
|
||||
}
|
||||
location.staticAmmo["Caliber1143x33mmR"] =
|
||||
[
|
||||
{
|
||||
tpl: "65f3e7fa6d952338bde17f8a",
|
||||
relativeProbability: 1
|
||||
}
|
||||
];
|
||||
}
|
||||
const scavy = dbTables.bots.types["assault"];
|
||||
scavy.inventory.equipment.Holster[WeaponIds.COLT_PEACEMAKER] = 9;
|
||||
scavy.inventory.mods[WeaponIds.COLT_PEACEMAKER] =
|
||||
{
|
||||
mod_magazine: [
|
||||
"665154c4019e9e7d5ad6d0cc"
|
||||
]
|
||||
};
|
||||
scavy.inventory.mods["665154c4019e9e7d5ad6d0cc"] =
|
||||
{
|
||||
camora_000: [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
],
|
||||
camora_001: [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
],
|
||||
camora_002: [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
],
|
||||
camora_003: [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
],
|
||||
camora_004: [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
],
|
||||
camora_005: [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
]
|
||||
};
|
||||
scavy.inventory.Ammo["Caliber1143x33mmR"] =
|
||||
{
|
||||
"65f3e7fa6d952338bde17f8a": 1
|
||||
};
|
||||
customitem.addCustomWeaponToPMCs(WeaponIds.COLT_PEACEMAKER, 7, "Holster");
|
||||
//ON GOD WACKY AHH ID INVENTORY THING
|
||||
dbTables.templates.items["55d7217a4bdc2d86028b456d"]._props.Slots[2]._props.filters[0].Filter.push(WeaponIds.COLT_PEACEMAKER);
|
||||
dbTables.templates.items[ItemTpl_1.ItemTpl.LOCKABLECONTAINER_PISTOL_CASE]._props.Grids[0]._props.filters[0].Filter.push(WeaponIds.COLT_PEACEMAKER);
|
||||
}
|
||||
}
|
||||
exports.mod = new Mod();
|
||||
//# sourceMappingURL=mod.js.map
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,494 @@
|
||||
/* eslint-disable @typescript-eslint/indent */
|
||||
/* eslint-disable @typescript-eslint/naming-convention */
|
||||
import { DependencyContainer } from "tsyringe";
|
||||
import { IPostDBLoadMod } from "@spt/models/external/IPostDBLoadMod";
|
||||
import { CustomItemService } from "@spt/services/mod/CustomItemService";
|
||||
import { NewItemFromCloneDetails } from "@spt/models/spt/mod/NewItemDetails";
|
||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
||||
import { ILocation } from "@spt/models/eft/common/ILocation";
|
||||
|
||||
import preset_file from "../src/Item_Preset.json";
|
||||
import global_preset_file from "../src/global_item_preset.json";
|
||||
import config from "../config/config.json";
|
||||
import spawnPoints from "../src/loot/Spawns.json";
|
||||
import { ItemTpl } from "@spt/models/enums/ItemTpl";
|
||||
import { Traders } from "@spt/models/enums/Traders";
|
||||
|
||||
export enum WeaponIds
|
||||
{
|
||||
COLT_PEACEMAKER = "665152810b4c784f2258d7d0"
|
||||
}
|
||||
|
||||
class Mod implements IPostDBLoadMod
|
||||
{
|
||||
public postDBLoad(container: DependencyContainer): void {
|
||||
const customitem = container.resolve<CustomItemService>("CustomItemService");
|
||||
const databaseServer = container.resolve<DatabaseServer>("DatabaseServer");
|
||||
const dbTables = databaseServer.getTables();
|
||||
const globals = dbTables.globals;
|
||||
const PK = dbTables.traders[Traders.PEACEKEEPER].assort;
|
||||
const SKR = dbTables.traders[Traders.SKIER].assort;
|
||||
// WEAPON LISTING AND ATTACHMENT
|
||||
const Patron_1143x33: NewItemFromCloneDetails = {
|
||||
itemTplToClone: "5c0d56a986f774449d5de529",
|
||||
overrideProperties: {
|
||||
Weight: 0.0165,
|
||||
ArmorDamage: 58,
|
||||
BulletMassGram: 16.5,
|
||||
Caliber: "Caliber1143x33mmR",
|
||||
Damage: 102,
|
||||
ExaminedByDefault: false,
|
||||
FragmentType: "",
|
||||
FragmentationChance: 0,
|
||||
InitialSpeed: 343,
|
||||
HeavyBleedingDelta: 0.24,
|
||||
LightBleedingDelta: 0.33,
|
||||
PenetrationChanceObstacle: 0.32,
|
||||
PenetrationPower: 67,
|
||||
PenetrationPowerDiviation: 0.211,
|
||||
Prefab: {
|
||||
path: "assets/weapons/colt_saa/patron_1143x33mmr_lead.bundle",
|
||||
rcid: ""
|
||||
},
|
||||
StaminaBurnPerDamage: 0.733,
|
||||
casingMass: 14,
|
||||
ammoRec: 47,
|
||||
MalfFeedChance: 0,
|
||||
MalfMisfireChance: 0,
|
||||
StackMaxSize: 20,
|
||||
StackMaxRandom: 10
|
||||
},
|
||||
parentId: "5485a8684bdc2da71d8b4567",
|
||||
newId: "65f3e7fa6d952338bde17f8a",
|
||||
handbookParentId: "5b47574386f77428ca22b33b",
|
||||
handbookPriceRoubles: 1086,
|
||||
fleaPriceRoubles: 1244,
|
||||
locales: {
|
||||
"en": {
|
||||
name: ".45 Colt +P",
|
||||
shortName: ".45C+P",
|
||||
description: "The .45 Colt (11.43×33mmR), is a rimmed, straight-walled, handgun cartridge dating to 1872. The .45 Colt is loaded with black powder, but with recent years it is now loaded with a smokeless powder. Providing a powerful force with the cost of recoil."
|
||||
}
|
||||
}
|
||||
}
|
||||
customitem.createItemFromClone(Patron_1143x33);
|
||||
|
||||
const colt_saa: NewItemFromCloneDetails = {
|
||||
itemTplToClone: "61a4c8884f95bc3b2c5dc96f",
|
||||
overrideProperties: {
|
||||
Prefab: {
|
||||
path: "assets/weapons/colt_saa/weapon_colt_single_action_army_container.bundle",
|
||||
rcid: ""
|
||||
},
|
||||
BackgroundColor: "yellow",
|
||||
aimingSensitivity: 0.7,
|
||||
AimPlane: 0.15,
|
||||
CenterOfImpact: 0.045,
|
||||
DeviationCurve: 3,
|
||||
DeviationMax: 8,
|
||||
Ergonomics: 95,
|
||||
ExaminedByDefault: true,
|
||||
ExamineExperience: 18,
|
||||
HeatFactorGun: 0.76,
|
||||
IronSightRange: 100,
|
||||
LootExperience: 25,
|
||||
RecoilAngle: 94,
|
||||
RecoilCenter:
|
||||
{
|
||||
x: 0,
|
||||
y: -0.491,
|
||||
z: -0.023
|
||||
},
|
||||
RecoilForceUp: 422,
|
||||
RecoilForceBack: 240,
|
||||
RecoilPosZMult: 0.7,
|
||||
RecoilCamera: 0.016,
|
||||
RecoilReturnPathDampingHandRotation: 0.68,
|
||||
RecoilReturnSpeedHandRotation: 3.26,
|
||||
RecoilDampingHandRotation: 0.74,
|
||||
CameraToWeaponAngleStep: 0.01,
|
||||
CameraSnap: 4,
|
||||
RotationCenterNoStock:
|
||||
{
|
||||
x: 0,
|
||||
y: -0.491,
|
||||
z: -0.023
|
||||
},
|
||||
Slots: [
|
||||
{
|
||||
_id: "665154a231f1039d7fccbcd5",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "mod_magazine",
|
||||
"_parent": WeaponIds.COLT_PEACEMAKER,
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"AnimationIndex": 0,
|
||||
"Filter": [
|
||||
"665154c4019e9e7d5ad6d0cc"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d30c394bdc2dae468b4577",
|
||||
"_required": true
|
||||
}
|
||||
],
|
||||
Weight: 1.048,
|
||||
ammoCaliber: "Caliber1143x33mmR",
|
||||
defAmmo: "65f3e7fa6d952338bde17f8a",
|
||||
defMagType: "665154c4019e9e7d5ad6d0cc",
|
||||
durabSpawnMax: 100,
|
||||
durabSpawnMin: 35,
|
||||
weapFireType: ["single"]
|
||||
},
|
||||
parentId: "617f1ef5e8b54b0998387733",
|
||||
newId: WeaponIds.COLT_PEACEMAKER,
|
||||
handbookParentId: "5b5f792486f77447ed5636b3",
|
||||
handbookPriceRoubles: 12987,
|
||||
fleaPriceRoubles: 174335,
|
||||
locales: {
|
||||
"en": {
|
||||
name: "Colt Single Action Army \"Peacemaker\" 11.43x33mmR Revolver",
|
||||
shortName: "Peacemaker",
|
||||
description: "The Colt Single Action Army, also known as SAA, is a single-action revolver handgun. It was designed for the U.S. government service revolver trials of 1872 by Colt's Patent Firearms Manufacturing Company and was adopted as the standard-issued pistol of the U.S. Army from 1873 until 1892. Today, they are mainly bought as memorabilia by collectors and re-enactors. It is recommended to not load all 6 shot as the hammer wil hit the round even if it's not cocked (but that's real life). This one has engraving all over it, offering no tactical advantage whatsoever."
|
||||
}
|
||||
}
|
||||
}
|
||||
customitem.createItemFromClone(colt_saa);
|
||||
|
||||
const colt_cylinder: NewItemFromCloneDetails = {
|
||||
itemTplToClone: "619f54a1d25cbd424731fb99",
|
||||
overrideProperties: {
|
||||
Cartridges: [
|
||||
{
|
||||
"_id": "66515612ca5e57294f5e3527",
|
||||
"_max_count": 6,
|
||||
"_name": "cartridges",
|
||||
"_parent": "665154c4019e9e7d5ad6d0cc",
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "5748538b2459770af276a261"
|
||||
}
|
||||
],
|
||||
Ergonomics: -12,
|
||||
Weight: 0.21,
|
||||
ExamineExperience: 12,
|
||||
Prefab:
|
||||
{
|
||||
path: "assets/weapons/colt_saa/mod_magazine_colt_army_cylinder.bundle",
|
||||
rcid: ""
|
||||
},
|
||||
Slots: [
|
||||
{
|
||||
"_id": "665156168ca9d58731082a0a",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "camora_000",
|
||||
"_parent": "665154c4019e9e7d5ad6d0cc",
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
],
|
||||
MaxStackCount: 1
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d4af244bdc2d962f8b4571",
|
||||
"_required": false
|
||||
},
|
||||
{
|
||||
"_id": "66515619ddd2bbaccbae878b",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "camora_001",
|
||||
"_parent": "665154c4019e9e7d5ad6d0cc",
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
],
|
||||
MaxStackCount: 1
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d4af244bdc2d962f8b4571",
|
||||
"_required": false
|
||||
},
|
||||
{
|
||||
"_id": "6651561ed786bdb78ba7577d",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "camora_002",
|
||||
"_parent": "665154c4019e9e7d5ad6d0cc",
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
],
|
||||
"MaxStackCount": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d4af244bdc2d962f8b4571",
|
||||
"_required": false
|
||||
},
|
||||
{
|
||||
"_id": "665156238098aeabb396b22e",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "camora_003",
|
||||
"_parent": "665154c4019e9e7d5ad6d0cc",
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
],
|
||||
"MaxStackCount": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d4af244bdc2d962f8b4571",
|
||||
"_required": false
|
||||
},
|
||||
{
|
||||
"_id": "66515627af664f37df1da465",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "camora_004",
|
||||
"_parent": "665154c4019e9e7d5ad6d0cc",
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
],
|
||||
"MaxStackCount": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d4af244bdc2d962f8b4571",
|
||||
"_required": false
|
||||
},
|
||||
{
|
||||
"_id": "6651562b36f0014c0cb19e14",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "camora_005",
|
||||
"_parent": "665154c4019e9e7d5ad6d0cc",
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
],
|
||||
"MaxStackCount": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d4af244bdc2d962f8b4571",
|
||||
"_required": false
|
||||
}
|
||||
]
|
||||
|
||||
},
|
||||
parentId: "610720f290b75a49ff2e5e25",
|
||||
newId: "665154c4019e9e7d5ad6d0cc",
|
||||
handbookParentId: "5b5f754a86f774094242f19b",
|
||||
handbookPriceRoubles: 2553,
|
||||
fleaPriceRoubles: 4348,
|
||||
locales: {
|
||||
"en": {
|
||||
name: "Colt Single Action Army 6-Round Cylinder",
|
||||
shortName: "Colt SAA",
|
||||
description: "6-Round standard issue cylinder for the SAA. This one has been customized with intricate engraving."
|
||||
}
|
||||
}
|
||||
}
|
||||
customitem.createItemFromClone(colt_cylinder);
|
||||
|
||||
const Patron_1143x33_PACK: NewItemFromCloneDetails = {
|
||||
itemTplToClone: "5649ed104bdc2d3d1c8b458b",
|
||||
overrideProperties: {
|
||||
StackSlots: [
|
||||
{
|
||||
"_id": "6651562fa7842ba5dacc9d7d",
|
||||
"_max_count": 20,
|
||||
"_name": "cartridges",
|
||||
"_parent": "66515174b0b7affec08d22aa",
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "5748538b2459770af276a261"
|
||||
}
|
||||
],
|
||||
Prefab: {
|
||||
path: "assets/content/items/ammo/boxes/item_ammo_box_7_62x54mm_r.bundle",
|
||||
rcid: ""
|
||||
},
|
||||
ammoCaliber: "Caliber1143x33mmR"
|
||||
},
|
||||
parentId: "543be5cb4bdc2deb348b4568",
|
||||
newId: "66515174b0b7affec08d22aa",
|
||||
handbookParentId: "5b47574386f77428ca22b33c",
|
||||
handbookPriceRoubles: 1763,
|
||||
fleaPriceRoubles: 2876,
|
||||
locales: {
|
||||
"en": {
|
||||
name: ".45 Colt +P 20 Cartridges Pack",
|
||||
shortName: ".45C+P",
|
||||
description: "A 20-round pack for .45 Colt cartridges."
|
||||
}
|
||||
}
|
||||
}
|
||||
customitem.createItemFromClone(Patron_1143x33_PACK);
|
||||
|
||||
// MASTERY AND TRADER
|
||||
const saa_mastery = {
|
||||
"Name": "Colt Single Action",
|
||||
"Templates": [
|
||||
WeaponIds.COLT_PEACEMAKER
|
||||
],
|
||||
"Level2": 450,
|
||||
"Level3": 900
|
||||
}
|
||||
globals.config.Mastering.push(saa_mastery)
|
||||
|
||||
if (config.Debug_Mode && config.altdebug != true)
|
||||
{
|
||||
dbTables.templates.items[WeaponIds.COLT_PEACEMAKER]._props.Prefab.path = "assets/weapons/colt_saa/weapon_colt_single_action_army_container_debugging.bundle";
|
||||
}
|
||||
else if (config.Debug_Mode && config.altdebug)
|
||||
{
|
||||
dbTables.templates.items[WeaponIds.COLT_PEACEMAKER]._props.Prefab.path = "assets/weapons/colt_saa/weapon_colt_single_action_army_container_debugging_alt.bundle";
|
||||
}
|
||||
|
||||
for (const itemPreset in global_preset_file.ItemPresets)
|
||||
{
|
||||
globals.ItemPresets[itemPreset] = global_preset_file.ItemPresets[itemPreset];
|
||||
}
|
||||
|
||||
//trader push
|
||||
SKR.items.push(...preset_file.items);
|
||||
|
||||
for (const bsc in preset_file.barter_scheme)
|
||||
{
|
||||
SKR.barter_scheme[bsc] = preset_file.barter_scheme[bsc];
|
||||
}
|
||||
|
||||
for (const llv in preset_file.loyal_level_items)
|
||||
{
|
||||
SKR.loyal_level_items[llv] = preset_file.loyal_level_items[llv];
|
||||
}
|
||||
|
||||
//push loot
|
||||
const safeLoot =
|
||||
{
|
||||
"tpl": WeaponIds.COLT_PEACEMAKER,
|
||||
"relativeProbability": 24
|
||||
}
|
||||
|
||||
const ammopack =
|
||||
{
|
||||
tpl: "66515174b0b7affec08d22aa",
|
||||
"relativeProbability": 146
|
||||
}
|
||||
|
||||
const locations = dbTables.locations;
|
||||
locations.rezervbase.looseLoot.spawnpoints.push(...spawnPoints.spawnsRezerv);
|
||||
locations.woods.looseLoot.spawnpoints.push(...spawnPoints.spawnsWoods);
|
||||
locations.factory4_day.looseLoot.spawnpoints.push(...spawnPoints.spawnsFactory);
|
||||
locations.factory4_night.looseLoot.spawnpoints.push(...spawnPoints.spawnsFactory);
|
||||
|
||||
for (const locationKey in locations)
|
||||
{
|
||||
const location: ILocation = locations[locationKey];
|
||||
if (!location || !location.staticLoot)
|
||||
{
|
||||
continue
|
||||
}
|
||||
|
||||
const safe = location.staticLoot[ItemTpl.LOOTCONTAINER_SAFE];
|
||||
if (safe)
|
||||
{
|
||||
safe.itemDistribution.push(safeLoot);
|
||||
}
|
||||
|
||||
const weaponbox5x5 = location.staticLoot[ItemTpl.LOOTCONTAINER_WEAPON_BOX_5X5];
|
||||
if (weaponbox5x5)
|
||||
{
|
||||
weaponbox5x5.itemDistribution.push(ammopack);
|
||||
}
|
||||
|
||||
location.staticLoot[ItemTpl.LOOTCONTAINER_WEAPON_BOX_4X4]?.itemDistribution.push(ammopack);
|
||||
location.staticLoot[ItemTpl.LOOTCONTAINER_WEAPON_BOX_6X3]?.itemDistribution.push(ammopack);
|
||||
location.staticLoot[ItemTpl.LOOTCONTAINER_WEAPON_BOX_5X2]?.itemDistribution.push(ammopack);
|
||||
location.staticLoot[ItemTpl.LOOTCONTAINER_WOODEN_CRATE]?.itemDistribution.push(ammopack);
|
||||
if (!location || !location.staticAmmo)
|
||||
{
|
||||
continue
|
||||
}
|
||||
location.staticAmmo["Caliber1143x33mmR"] =
|
||||
[
|
||||
{
|
||||
tpl: "65f3e7fa6d952338bde17f8a",
|
||||
relativeProbability: 1
|
||||
}
|
||||
]
|
||||
}
|
||||
const scavy = dbTables.bots.types["assault"];
|
||||
scavy.inventory.equipment.Holster[WeaponIds.COLT_PEACEMAKER] = 9;
|
||||
scavy.inventory.mods[WeaponIds.COLT_PEACEMAKER] =
|
||||
{
|
||||
mod_magazine: [
|
||||
"665154c4019e9e7d5ad6d0cc"
|
||||
]
|
||||
}
|
||||
scavy.inventory.mods["665154c4019e9e7d5ad6d0cc"] =
|
||||
{
|
||||
camora_000: [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
],
|
||||
camora_001: [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
],
|
||||
camora_002: [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
],
|
||||
camora_003: [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
],
|
||||
camora_004: [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
],
|
||||
camora_005: [
|
||||
"65f3e7fa6d952338bde17f8a"
|
||||
]
|
||||
}
|
||||
scavy.inventory.Ammo["Caliber1143x33mmR"] =
|
||||
{
|
||||
"65f3e7fa6d952338bde17f8a": 1
|
||||
}
|
||||
|
||||
customitem.addCustomWeaponToPMCs(WeaponIds.COLT_PEACEMAKER, 7, "Holster")
|
||||
|
||||
|
||||
//ON GOD WACKY AHH ID INVENTORY THING
|
||||
dbTables.templates.items["55d7217a4bdc2d86028b456d"]._props.Slots[2]._props.filters[0].Filter.push(WeaponIds.COLT_PEACEMAKER);
|
||||
dbTables.templates.items[ItemTpl.LOCKABLECONTAINER_PISTOL_CASE]._props.Grids[0]._props.filters[0].Filter.push(WeaponIds.COLT_PEACEMAKER);
|
||||
}
|
||||
}
|
||||
|
||||
export const mod = new Mod();
|
||||
Reference in New Issue
Block a user