Archived
Complete Remake of the Modpack
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
[General]
|
||||
gameName=spt
|
||||
modid=0
|
||||
version=d2025.5.14.0
|
||||
newestVersion=
|
||||
category="-1,"
|
||||
nexusFileStatus=1
|
||||
installationFile=choccy-type64-1.0.0.zip
|
||||
repository=Nexus
|
||||
ignoredVersion=
|
||||
comments=
|
||||
notes=
|
||||
nexusDescription=
|
||||
url=
|
||||
hasCustomURL=true
|
||||
lastNexusQuery=
|
||||
lastNexusUpdate=
|
||||
nexusLastModified=2025-05-14T13:44:12Z
|
||||
nexusCategory=0
|
||||
converted=false
|
||||
validated=false
|
||||
color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0)
|
||||
tracked=0
|
||||
|
||||
[installedFiles]
|
||||
1\modid=0
|
||||
1\fileid=0
|
||||
size=1
|
||||
@@ -0,0 +1,13 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Rider ignored files
|
||||
/contentModel.xml
|
||||
/.idea.Choccy-Striker.iml
|
||||
/modules.xml
|
||||
/projectSettingsUpdater.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,66 @@
|
||||
{
|
||||
"manifest": [
|
||||
{
|
||||
"key": "client_assets.bundle",
|
||||
"dependencyKeys": [
|
||||
"shaders",
|
||||
"cubemaps",
|
||||
"client_textures.bundle"
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "client_textures.bundle",
|
||||
"dependencyKeys": []
|
||||
},
|
||||
{
|
||||
"key": "mod_bipod_type64.bundle",
|
||||
"dependencyKeys": [
|
||||
"shaders",
|
||||
"cubemaps",
|
||||
"client_textures.bundle"
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "mod_front_sight_type64.bundle",
|
||||
"dependencyKeys": [
|
||||
"client_assets.bundle"
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "mod_handguard_type64_stamped_steel.bundle",
|
||||
"dependencyKeys": [
|
||||
"client_assets.bundle"
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "mod_magazine_type64_20rnd.bundle",
|
||||
"dependencyKeys": [
|
||||
"client_assets.bundle"
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "mod_mount_type64_piccatiny_rail.bundle",
|
||||
"dependencyKeys": [
|
||||
"client_assets.bundle"
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "mod_rear_sight_type64.bundle",
|
||||
"dependencyKeys": [
|
||||
"client_assets.bundle"
|
||||
]
|
||||
},
|
||||
{
|
||||
"key": "weapon_howa_type64_container.bundle",
|
||||
"dependencyKeys": [
|
||||
"assets/content/audio/weapons/generic",
|
||||
"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",
|
||||
"client_assets.bundle"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
LFS
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"name": "Type64",
|
||||
"version": "1.0.0",
|
||||
"main": "src/mod.js",
|
||||
"license": "CC-BY 3.0",
|
||||
"author": "Choccy",
|
||||
"isBundleMod": true,
|
||||
"sptVersion": "~3.11",
|
||||
"loadBefore": ["SPT-Realism"],
|
||||
"loadAfter": [],
|
||||
"incompatibilities": [],
|
||||
"contributors": [],
|
||||
"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,279 @@
|
||||
{
|
||||
"items": [
|
||||
{
|
||||
"_id": "6806584a3e6716e0404d3d77",
|
||||
"_tpl": "67f757e6e60606b56610261d",
|
||||
"slotId": "hideout",
|
||||
"parentId": "hideout",
|
||||
"upd": {
|
||||
"UnlimitedCount": true,
|
||||
"StackObjectsCount": 9999,
|
||||
"FireMode": {
|
||||
"FireMode": "fullauto"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"_id": "680658680cd945c4486277d6",
|
||||
"_tpl": "67f757e76a8379e1874e8556",
|
||||
"slotId": "mod_magazine",
|
||||
"parentId": "6806584a3e6716e0404d3d77"
|
||||
},
|
||||
{
|
||||
"_id": "680658697770aa4fc8cf53df",
|
||||
"_tpl": "67f760061ccdd8ae7ac6fd75",
|
||||
"slotId": "mod_handguard",
|
||||
"parentId": "6806584a3e6716e0404d3d77"
|
||||
},
|
||||
{
|
||||
"_id": "6806586a76e4baaa95af14e5",
|
||||
"_tpl": "67f757e853012eb617d4b50b",
|
||||
"slotId": "mod_sight_front",
|
||||
"parentId": "6806584a3e6716e0404d3d77"
|
||||
},
|
||||
{
|
||||
"_id": "6806586b6d5e851dad343598",
|
||||
"_tpl": "67f757e9f5c8b5a10f0b6bc1",
|
||||
"slotId": "mod_sight_rear",
|
||||
"parentId": "6806584a3e6716e0404d3d77"
|
||||
},
|
||||
|
||||
{
|
||||
"_id": "68065888f7eb848fc91ddf07",
|
||||
"_tpl": "67f757e6e60606b56610261d",
|
||||
"slotId": "hideout",
|
||||
"parentId": "hideout",
|
||||
"upd": {
|
||||
"UnlimitedCount": true,
|
||||
"StackObjectsCount": 9999,
|
||||
"FireMode": {
|
||||
"FireMode": "fullauto"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"_id": "6806588f9144ba3960b46b38",
|
||||
"_tpl": "67f757e76a8379e1874e8556",
|
||||
"slotId": "mod_magazine",
|
||||
"parentId": "68065888f7eb848fc91ddf07"
|
||||
},
|
||||
{
|
||||
"_id": "68065890e16bec62f63ebb08",
|
||||
"_tpl": "67f760061ccdd8ae7ac6fd75",
|
||||
"slotId": "mod_handguard",
|
||||
"parentId": "68065888f7eb848fc91ddf07"
|
||||
},
|
||||
{
|
||||
"_id": "680658923c04c260dc3db42b",
|
||||
"_tpl": "67f757e26cf3bc1bfc968982",
|
||||
"slotId": "mod_mount",
|
||||
"parentId": "68065888f7eb848fc91ddf07"
|
||||
},
|
||||
{
|
||||
"_id": "68065893136f4b1af2960587",
|
||||
"_tpl": "67f757e853012eb617d4b50b",
|
||||
"slotId": "mod_sight_front",
|
||||
"parentId": "68065888f7eb848fc91ddf07"
|
||||
},
|
||||
{
|
||||
"_id": "6806589436cb2a57bcd0bb62",
|
||||
"_tpl": "67f757e9f5c8b5a10f0b6bc1",
|
||||
"slotId": "mod_sight_rear",
|
||||
"parentId": "68065888f7eb848fc91ddf07"
|
||||
},
|
||||
{
|
||||
"_id": "68065895de2cbd20769285cf",
|
||||
"_tpl": "67f757e89c7aaec4e343d2b5",
|
||||
"slotId": "mod_bipod",
|
||||
"parentId": "68065888f7eb848fc91ddf07"
|
||||
},
|
||||
{
|
||||
"_id": "68065898fe61814cc13a68f2",
|
||||
"_tpl": "5b3b99265acfc4704b4a1afb",
|
||||
"slotId": "mod_scope",
|
||||
"parentId": "680658923c04c260dc3db42b"
|
||||
},
|
||||
{
|
||||
"_id": "6806589d522881010665bb43",
|
||||
"_tpl": "5b3b99475acfc432ff4dcbee",
|
||||
"slotId": "mod_scope",
|
||||
"parentId": "68065898fe61814cc13a68f2"
|
||||
},
|
||||
|
||||
{
|
||||
"_id": "680658b1250f24ed65a2e6b3",
|
||||
"_tpl": "67f757e89c7aaec4e343d2b5",
|
||||
"slotId": "hideout",
|
||||
"parentId": "hideout",
|
||||
"upd": {
|
||||
"UnlimitedCount": true,
|
||||
"StackObjectsCount": 9999
|
||||
}
|
||||
},
|
||||
{
|
||||
"_id": "680658c085641e6238b98493",
|
||||
"_tpl": "67f757e9f5c8b5a10f0b6bc1",
|
||||
"slotId": "hideout",
|
||||
"parentId": "hideout",
|
||||
"upd": {
|
||||
"UnlimitedCount": true,
|
||||
"StackObjectsCount": 9999
|
||||
}
|
||||
},
|
||||
{
|
||||
"_id": "680658d031a457bf03652f01",
|
||||
"_tpl": "67f757e853012eb617d4b50b",
|
||||
"slotId": "hideout",
|
||||
"parentId": "hideout",
|
||||
"upd": {
|
||||
"UnlimitedCount": true,
|
||||
"StackObjectsCount": 9999
|
||||
}
|
||||
},
|
||||
{
|
||||
"_id": "6806592badd4be36c8d0a43c",
|
||||
"_tpl": "67f757e26cf3bc1bfc968982",
|
||||
"slotId": "hideout",
|
||||
"parentId": "hideout",
|
||||
"upd": {
|
||||
"UnlimitedCount": true,
|
||||
"StackObjectsCount": 9999
|
||||
}
|
||||
},
|
||||
{
|
||||
"_id": "6806592dee4324dd807111a3",
|
||||
"_tpl": "67f760061ccdd8ae7ac6fd75",
|
||||
"slotId": "hideout",
|
||||
"parentId": "hideout",
|
||||
"upd": {
|
||||
"UnlimitedCount": true,
|
||||
"StackObjectsCount": 9999
|
||||
}
|
||||
},
|
||||
{
|
||||
"_id": "68065944d397569e4bc9510c",
|
||||
"_tpl": "67f757e76a8379e1874e8556",
|
||||
"slotId": "hideout",
|
||||
"parentId": "hideout",
|
||||
"upd": {
|
||||
"UnlimitedCount": true,
|
||||
"StackObjectsCount": 9999
|
||||
}
|
||||
},
|
||||
{
|
||||
"_id": "68065c00ba04cc10a06de423",
|
||||
"_tpl": "67f757e6e60606b56610261d",
|
||||
"slotId": "hideout",
|
||||
"parentId": "hideout",
|
||||
"upd": {
|
||||
"UnlimitedCount": true,
|
||||
"StackObjectsCount": 9999,
|
||||
"FireMode": {
|
||||
"FireMode": "fullauto"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"barter_scheme": {
|
||||
"6806584a3e6716e0404d3d77": [
|
||||
[
|
||||
{
|
||||
"_tpl": "5d63d33b86f7746ea9275524",
|
||||
"count": 1
|
||||
},
|
||||
{
|
||||
"_tpl": "5d1c819a86f774771b0acd6c",
|
||||
"count": 4
|
||||
},
|
||||
{
|
||||
"_tpl": "5649b1c04bdc2d16268b457c",
|
||||
"count": 2
|
||||
}
|
||||
]
|
||||
],
|
||||
"68065888f7eb848fc91ddf07": [
|
||||
[
|
||||
{
|
||||
"_tpl": "67f757e6e60606b56610261d",
|
||||
"count": 1
|
||||
},
|
||||
{
|
||||
"_tpl": "59e35cbb86f7741778269d83",
|
||||
"count": 4
|
||||
},
|
||||
{
|
||||
"_tpl": "56742c324bdc2d150f8b456d",
|
||||
"count": 2
|
||||
}
|
||||
]
|
||||
],
|
||||
"680658b1250f24ed65a2e6b3": [
|
||||
[
|
||||
{
|
||||
"_tpl": "569668774bdc2da2298b4568",
|
||||
"count": 37
|
||||
}
|
||||
]
|
||||
],
|
||||
"680658c085641e6238b98493": [
|
||||
[
|
||||
{
|
||||
"_tpl": "569668774bdc2da2298b4568",
|
||||
"count": 4
|
||||
}
|
||||
]
|
||||
],
|
||||
"680658d031a457bf03652f01": [
|
||||
[
|
||||
{
|
||||
"_tpl": "569668774bdc2da2298b4568",
|
||||
"count": 4
|
||||
}
|
||||
]
|
||||
],
|
||||
"6806592badd4be36c8d0a43c": [
|
||||
[
|
||||
{
|
||||
"_tpl": "569668774bdc2da2298b4568",
|
||||
"count": 26
|
||||
}
|
||||
]
|
||||
],
|
||||
"6806592dee4324dd807111a3": [
|
||||
[
|
||||
{
|
||||
"_tpl": "569668774bdc2da2298b4568",
|
||||
"count": 20
|
||||
}
|
||||
]
|
||||
],
|
||||
"68065944d397569e4bc9510c": [
|
||||
[
|
||||
{
|
||||
"_tpl": "569668774bdc2da2298b4568",
|
||||
"count": 7
|
||||
}
|
||||
]
|
||||
],
|
||||
"68065c00ba04cc10a06de423": [
|
||||
[
|
||||
{
|
||||
"_tpl": "569668774bdc2da2298b4568",
|
||||
"count": 50
|
||||
}
|
||||
]
|
||||
]
|
||||
|
||||
},
|
||||
"loyal_level_items":{
|
||||
"6806584a3e6716e0404d3d77": 1,
|
||||
"68065888f7eb848fc91ddf07": 1,
|
||||
"680658b1250f24ed65a2e6b3": 2,
|
||||
"680658c085641e6238b98493": 1,
|
||||
"680658d031a457bf03652f01": 1,
|
||||
"6806592badd4be36c8d0a43c": 2,
|
||||
"6806592dee4324dd807111a3": 1,
|
||||
"68065944d397569e4bc9510c": 1,
|
||||
"68065c00ba04cc10a06de423": 1
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
{
|
||||
"ItemPresets": {
|
||||
"680653e4db5ee0b78ad37943": {
|
||||
"_changeWeaponName": false,
|
||||
"_encyclopedia": "67f757e6e60606b56610261d",
|
||||
"_id": "680653e4db5ee0b78ad37943",
|
||||
"_items": [
|
||||
{
|
||||
"_id": "6806565ec25cf058f803647b",
|
||||
"_tpl": "67f757e6e60606b56610261d",
|
||||
"upd": {
|
||||
"FireMode": {
|
||||
"FireMode": "fullauto"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"_id": "6806565ec25cf058f803647c",
|
||||
"_tpl": "67f757e76a8379e1874e8556",
|
||||
"slotId": "mod_magazine",
|
||||
"parentId": "6806565ec25cf058f803647b"
|
||||
},
|
||||
{
|
||||
"_id": "6806565ec25cf058f803647d",
|
||||
"_tpl": "67f760061ccdd8ae7ac6fd75",
|
||||
"slotId": "mod_handguard",
|
||||
"parentId": "6806565ec25cf058f803647b"
|
||||
},
|
||||
{
|
||||
"_id": "6806565ec25cf058f803647e",
|
||||
"_tpl": "67f757e853012eb617d4b50b",
|
||||
"slotId": "mod_sight_front",
|
||||
"parentId": "6806565ec25cf058f803647b"
|
||||
},
|
||||
{
|
||||
"_id": "6806565ec25cf058f803647f",
|
||||
"_tpl": "67f757e9f5c8b5a10f0b6bc1",
|
||||
"slotId": "mod_sight_rear",
|
||||
"parentId": "6806565ec25cf058f803647b"
|
||||
}
|
||||
],
|
||||
"_name": "Default",
|
||||
"_parent": "6806565ec25cf058f803647b",
|
||||
"_type": "Preset"
|
||||
},
|
||||
"6806545d567504f92dfd75e4": {
|
||||
"_changeWeaponName": true,
|
||||
"_encyclopedia": "67f757e6e60606b56610261d",
|
||||
"_id": "6806545d567504f92dfd75e4",
|
||||
"_items": [
|
||||
{
|
||||
"_id": "6806567bc25cf058f8036482",
|
||||
"_tpl": "67f757e6e60606b56610261d",
|
||||
"upd": {
|
||||
"FireMode": {
|
||||
"FireMode": "fullauto"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"_id": "6806567bc25cf058f8036483",
|
||||
"_tpl": "67f757e76a8379e1874e8556",
|
||||
"slotId": "mod_magazine",
|
||||
"parentId": "6806567bc25cf058f8036482"
|
||||
},
|
||||
{
|
||||
"_id": "6806567bc25cf058f8036484",
|
||||
"_tpl": "67f760061ccdd8ae7ac6fd75",
|
||||
"slotId": "mod_handguard",
|
||||
"parentId": "6806567bc25cf058f8036482"
|
||||
},
|
||||
{
|
||||
"_id": "6806567bc25cf058f8036485",
|
||||
"_tpl": "67f757e26cf3bc1bfc968982",
|
||||
"slotId": "mod_mount",
|
||||
"parentId": "6806567bc25cf058f8036482"
|
||||
},
|
||||
{
|
||||
"_id": "6806567bc25cf058f8036486",
|
||||
"_tpl": "67f757e853012eb617d4b50b",
|
||||
"slotId": "mod_sight_front",
|
||||
"parentId": "6806567bc25cf058f8036482"
|
||||
},
|
||||
{
|
||||
"_id": "6806567bc25cf058f8036487",
|
||||
"_tpl": "67f757e9f5c8b5a10f0b6bc1",
|
||||
"slotId": "mod_sight_rear",
|
||||
"parentId": "6806567bc25cf058f8036482"
|
||||
},
|
||||
{
|
||||
"_id": "6806567bc25cf058f8036488",
|
||||
"_tpl": "67f757e89c7aaec4e343d2b5",
|
||||
"slotId": "mod_bipod",
|
||||
"parentId": "6806567bc25cf058f8036482"
|
||||
},
|
||||
{
|
||||
"_id": "6806567bc25cf058f803648b",
|
||||
"_tpl": "5b3b99265acfc4704b4a1afb",
|
||||
"slotId": "mod_scope",
|
||||
"parentId": "6806567bc25cf058f8036485"
|
||||
},
|
||||
{
|
||||
"_id": "6806567bc25cf058f803648c",
|
||||
"_tpl": "5b3b99475acfc432ff4dcbee",
|
||||
"slotId": "mod_scope",
|
||||
"parentId": "6806567bc25cf058f803648b"
|
||||
}
|
||||
],
|
||||
"_name": "Marksman",
|
||||
"_parent": "6806567bc25cf058f8036482",
|
||||
"_type": "Preset"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,460 @@
|
||||
"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.WeapID = void 0;
|
||||
const ItemTpl_1 = require("C:/snapshot/project/obj/models/enums/ItemTpl");
|
||||
const Traders_1 = require("C:/snapshot/project/obj/models/enums/Traders");
|
||||
const Item_Preset_json_1 = __importDefault(require("../src/Item_Preset.json"));
|
||||
const global_item_preset_json_1 = __importDefault(require("../src/global_item_preset.json"));
|
||||
var WeapID;
|
||||
(function (WeapID) {
|
||||
WeapID["MOUNT_TYPE64_PICATINY"] = "67f757e26cf3bc1bfc968982";
|
||||
WeapID["WEAP_TYPE64"] = "67f757e6e60606b56610261d";
|
||||
WeapID["MAG_TYPE64"] = "67f757e76a8379e1874e8556";
|
||||
WeapID["BIPOD_TYPE64"] = "67f757e89c7aaec4e343d2b5";
|
||||
WeapID["SIGHT_FRONT_TYPE64"] = "67f757e853012eb617d4b50b";
|
||||
WeapID["SIGHT_REAR_TYPE64"] = "67f757e9f5c8b5a10f0b6bc1";
|
||||
WeapID["HANDGUARD_TYPE64"] = "67f760061ccdd8ae7ac6fd75";
|
||||
})(WeapID || (exports.WeapID = WeapID = {}));
|
||||
class Mod {
|
||||
postDBLoad(container) {
|
||||
const customitem = container.resolve("CustomItemService");
|
||||
const databaseserver = container.resolve("DatabaseServer");
|
||||
const db = databaseserver.getTables();
|
||||
const globals = db.globals;
|
||||
const MC = db.traders[Traders_1.Traders.MECHANIC].assort;
|
||||
const scope_Mods = [];
|
||||
db.templates.items[ItemTpl_1.ItemTpl.RECEIVER_MK18_338_LM_UPPER]._props.Slots[0]._props.filters[0].Filter.forEach(iDs => { scope_Mods.push(iDs); });
|
||||
//---WEAPON LISTING AND ATTACHMENT---
|
||||
const Piccatiny_Mount = {
|
||||
itemTplToClone: "591ee00d86f774592f7b841e",
|
||||
overrideProperties: {
|
||||
Weight: 0.057,
|
||||
ExaminedByDefault: false,
|
||||
RaidModdable: true,
|
||||
Width: 2,
|
||||
Prefab: {
|
||||
path: "mod_mount_type64_piccatiny_rail.bundle",
|
||||
rcid: ""
|
||||
},
|
||||
Slots: [
|
||||
{
|
||||
"_id": "67f758f0300a259797a08891",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "mod_scope",
|
||||
"_parent": WeapID.MOUNT_TYPE64_PICATINY,
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": scope_Mods,
|
||||
"Shift": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d30c4c4bdc2db4468b457e",
|
||||
"_required": false
|
||||
}
|
||||
]
|
||||
},
|
||||
parentId: "55818b224bdc2dde698b456f",
|
||||
newId: WeapID.MOUNT_TYPE64_PICATINY,
|
||||
handbookParentId: "5b5f755f86f77447ec5d770e",
|
||||
handbookPriceRoubles: 5447,
|
||||
fleaPriceRoubles: 7653,
|
||||
locales: {
|
||||
"en": {
|
||||
name: "Howa Type 64 Siderail Mount",
|
||||
shortName: "Type 64",
|
||||
description: "A modern piccatiny rail made to fit in the slot of a M84 Scope mount. Supports variety of sights, although it blocks a portion of the chamber view."
|
||||
}
|
||||
}
|
||||
};
|
||||
customitem.createItemFromClone(Piccatiny_Mount);
|
||||
const type64 = {
|
||||
itemTplToClone: ItemTpl_1.ItemTpl.ASSAULTRIFLE_DS_ARMS_SA58_762X51_ASSAULT_RIFLE,
|
||||
overrideProperties: {
|
||||
Prefab: {
|
||||
path: "weapon_howa_type64_container.bundle",
|
||||
rcid: ""
|
||||
},
|
||||
Width: 5,
|
||||
Height: 2,
|
||||
AllowFeed: false,
|
||||
AllowJam: false,
|
||||
AllowMisfire: false,
|
||||
AllowSlide: false,
|
||||
AimPlane: 0.3,
|
||||
CenterOfImpact: 0.11,
|
||||
DurabilityBurnRatio: 3.15,
|
||||
SingleFireRate: 500,
|
||||
bFirerate: 500,
|
||||
Velocity: 1.1,
|
||||
DeviationCurve: 1.12,
|
||||
DeviationMax: 15,
|
||||
Ergonomics: 45,
|
||||
isChamberLoad: true,
|
||||
TacticalReloadFixation: 95,
|
||||
TacticalReloadStiffnes: {
|
||||
x: 0.85,
|
||||
y: 0.80,
|
||||
z: 0.95
|
||||
},
|
||||
ExaminedByDefault: false,
|
||||
ExamineExperience: 20,
|
||||
HeatFactorGun: 0.99,
|
||||
IronSightRange: 100,
|
||||
LootExperience: 50,
|
||||
RecoilAngle: 93,
|
||||
RecoilCenter: {
|
||||
x: 0,
|
||||
y: -0.238,
|
||||
z: 0.002
|
||||
},
|
||||
RecoilForceUp: 142,
|
||||
RecoilForceBack: 382,
|
||||
RecoilCamera: 0.045,
|
||||
RecoilDampingHandRotation: 0.75,
|
||||
RecoilReturnSpeedHandRotation: 3.42,
|
||||
RecoilReturnPathDampingHandRotation: 0.51,
|
||||
RecoilStableIndexShot: 4,
|
||||
RecoilPosZMult: 1,
|
||||
PostRecoilHorizontalRangeHandRotation: {
|
||||
x: -0.8,
|
||||
y: 0.8,
|
||||
z: 0
|
||||
},
|
||||
PostRecoilVerticalRangeHandRotation: {
|
||||
x: -1.2,
|
||||
y: 0,
|
||||
z: 0
|
||||
},
|
||||
RotationCenter: {
|
||||
x: 0,
|
||||
y: -0.05,
|
||||
z: -0.034
|
||||
},
|
||||
RotationCenterNoStock: {
|
||||
x: 0,
|
||||
y: -0.238,
|
||||
z: -0.009
|
||||
},
|
||||
Slots: [
|
||||
{
|
||||
"_id": "67f75fa092b226eb0d2a9bb1",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "mod_magazine",
|
||||
"_parent": WeapID.WEAP_TYPE64,
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"AnimationIndex": 0,
|
||||
"Filter": [
|
||||
WeapID.MAG_TYPE64
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d30c394bdc2dae468b4577",
|
||||
"_required": false
|
||||
},
|
||||
{
|
||||
"_id": "67f7601eeb13ec4fdd7f5a4b",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "mod_handguard",
|
||||
"_parent": WeapID.WEAP_TYPE64,
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": [
|
||||
WeapID.HANDGUARD_TYPE64
|
||||
],
|
||||
"Shift": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d30c4c4bdc2db4468b457e",
|
||||
"_required": true
|
||||
},
|
||||
{
|
||||
"_id": "67f75fafaad5ed69caced214",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "mod_mount",
|
||||
"_parent": WeapID.WEAP_TYPE64,
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": [
|
||||
WeapID.MOUNT_TYPE64_PICATINY
|
||||
],
|
||||
"Shift": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d30c4c4bdc2db4468b457e",
|
||||
"_required": false
|
||||
},
|
||||
{
|
||||
"_id": "67f75fbb1920d932ff90df1e",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "mod_sight_front",
|
||||
"_parent": WeapID.WEAP_TYPE64,
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": [
|
||||
WeapID.SIGHT_FRONT_TYPE64
|
||||
],
|
||||
"Shift": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d30c4c4bdc2db4468b457e",
|
||||
"_required": false
|
||||
},
|
||||
{
|
||||
"_id": "67f75fcbec7ef481c01e83fc",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "mod_sight_rear",
|
||||
"_parent": WeapID.WEAP_TYPE64,
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": [
|
||||
WeapID.SIGHT_REAR_TYPE64
|
||||
],
|
||||
"Shift": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d30c4c4bdc2db4468b457e",
|
||||
"_required": false
|
||||
},
|
||||
{
|
||||
"_id": "67f76032b303bc270721284e",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "mod_bipod",
|
||||
"_parent": WeapID.WEAP_TYPE64,
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": [
|
||||
WeapID.BIPOD_TYPE64
|
||||
],
|
||||
"Shift": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d30c4c4bdc2db4468b457e",
|
||||
"_required": false
|
||||
}
|
||||
],
|
||||
Weight: 2.8,
|
||||
ammoCaliber: "Caliber762x51",
|
||||
defAmmo: "5e023e53d4353e3302577c4c",
|
||||
defMagType: WeapID.MAG_TYPE64,
|
||||
durabSpawnMax: 100,
|
||||
durabSpawnMin: 35,
|
||||
weapFireType: ["single", "fullauto"]
|
||||
},
|
||||
parentId: "5447b5f14bdc2d61278b4567",
|
||||
newId: WeapID.WEAP_TYPE64,
|
||||
handbookParentId: "5b5f78fc86f77409407a7f90",
|
||||
handbookPriceRoubles: 158771,
|
||||
fleaPriceRoubles: 187221,
|
||||
locales: {
|
||||
"en": {
|
||||
name: "Howa Type 64 7.62x51 battle rifle",
|
||||
shortName: "Type 64",
|
||||
description: "The Howa Type 64 battle rifle (Romanized: Roku-yon-shiki-jidou-shoujuu), referred to as the Type 64 7.62mm rifle, is a Japanese battle rifle used exclusively by the Japan Self-Defense Forces and the Japanese Coast Guard. It is a gas-operated, selective fire weapon which is chambered for the 7.62×51mm NATO round and uses a detachable 20-round box magazine. The Type 64 has never been exported due to Japan's strict anti-hardware export laws. It has been superseded by the more advanced Howa Type 89 from 1989 to 1990, but is still in service with all branches of the Self-Defense Forces and the Japanese Coast Guard. The JGSDF's Ōita Prefecture garrison had encountered supply problems when they were not able to account for 30 Howa Type 64s that had been lost, yet somehow among those 30 that were lost some ended up here."
|
||||
}
|
||||
}
|
||||
};
|
||||
customitem.createItemFromClone(type64);
|
||||
const type64_mag = {
|
||||
itemTplToClone: ItemTpl_1.ItemTpl.MAGAZINE_762X51_SA58FAL_20RND,
|
||||
overrideProperties: {
|
||||
ExaminedByDefault: false,
|
||||
Ergonomics: -8,
|
||||
Weight: 0.4,
|
||||
ExamineExperience: 15,
|
||||
ExtraSizeDown: 0,
|
||||
Prefab: {
|
||||
path: "mod_magazine_type64_20rnd.bundle",
|
||||
rcid: ""
|
||||
}
|
||||
},
|
||||
parentId: "5448bc234bdc2d3c308b4569",
|
||||
newId: WeapID.MAG_TYPE64,
|
||||
handbookParentId: "5b5f754a86f774094242f19b",
|
||||
handbookPriceRoubles: 1162,
|
||||
fleaPriceRoubles: 2853,
|
||||
locales: {
|
||||
"en": {
|
||||
name: "Howa Type 64 20-Round Magazine",
|
||||
shortName: "Type 64",
|
||||
description: "Standard issue detachable metal magazine for the Type 64, supports 20 round."
|
||||
}
|
||||
}
|
||||
};
|
||||
customitem.createItemFromClone(type64_mag);
|
||||
const type64_handguard = {
|
||||
itemTplToClone: ItemTpl_1.ItemTpl.HANDGUARD_SA58FAL_BELGIAN_STYLE,
|
||||
overrideProperties: {
|
||||
Ergonomics: 10,
|
||||
Weight: 0.68,
|
||||
Width: 2,
|
||||
Height: 1,
|
||||
ExtraSizeRight: 0,
|
||||
ExtraSizeLeft: 0,
|
||||
Recoil: -14,
|
||||
ExamineExperience: 10,
|
||||
Prefab: {
|
||||
path: "mod_handguard_type64_stamped_steel.bundle",
|
||||
rcid: ""
|
||||
},
|
||||
ExaminedByDefault: false
|
||||
},
|
||||
parentId: "55818a104bdc2db9688b4569",
|
||||
newId: WeapID.HANDGUARD_TYPE64,
|
||||
handbookParentId: "5b5f75e486f77447ec5d7712",
|
||||
handbookPriceRoubles: 12763,
|
||||
fleaPriceRoubles: 16223,
|
||||
locales: {
|
||||
"en": {
|
||||
name: "Howa Type 64 Stamped Steel Handguard",
|
||||
shortName: "Type 64",
|
||||
description: "Standard issue handguard for Type 64, made from stamped steel."
|
||||
}
|
||||
}
|
||||
};
|
||||
customitem.createItemFromClone(type64_handguard);
|
||||
const type64_front_sight = {
|
||||
itemTplToClone: "5bc09a30d4351e00367fb7c8",
|
||||
overrideProperties: {
|
||||
Ergonomics: 7,
|
||||
Weight: 0.014,
|
||||
Width: 1,
|
||||
Height: 1,
|
||||
Prefab: {
|
||||
path: "mod_front_sight_type64.bundle",
|
||||
rcid: ""
|
||||
},
|
||||
ExaminedByDefault: false
|
||||
},
|
||||
parentId: "55818ac54bdc2d5b648b456e",
|
||||
newId: WeapID.SIGHT_FRONT_TYPE64,
|
||||
handbookParentId: "5b5f73ec86f774093e6cb4fd",
|
||||
handbookPriceRoubles: 885,
|
||||
fleaPriceRoubles: 910,
|
||||
locales: {
|
||||
"en": {
|
||||
name: "Howa Type 64 Front Sight Flip Up",
|
||||
shortName: "Type 64",
|
||||
description: "Standard issue flippable sight for the Type 64."
|
||||
}
|
||||
}
|
||||
};
|
||||
customitem.createItemFromClone(type64_front_sight);
|
||||
const type64_rear_sight = {
|
||||
itemTplToClone: "5894a81786f77427140b8347",
|
||||
overrideProperties: {
|
||||
Ergonomics: 8,
|
||||
Weight: 0.028,
|
||||
Width: 1,
|
||||
Height: 1,
|
||||
Prefab: {
|
||||
path: "mod_rear_sight_type64.bundle",
|
||||
rcid: ""
|
||||
},
|
||||
ExaminedByDefault: false
|
||||
},
|
||||
parentId: "55818ac54bdc2d5b648b456e",
|
||||
newId: WeapID.SIGHT_REAR_TYPE64,
|
||||
handbookParentId: "5b5f73ec86f774093e6cb4fd",
|
||||
handbookPriceRoubles: 885,
|
||||
fleaPriceRoubles: 910,
|
||||
locales: {
|
||||
"en": {
|
||||
name: "Howa Type 64 Rear Sight Flip Up",
|
||||
shortName: "Type 64",
|
||||
description: "Standard issue flippable sight for the Type 64."
|
||||
}
|
||||
}
|
||||
};
|
||||
customitem.createItemFromClone(type64_rear_sight);
|
||||
const type64_bipod = {
|
||||
itemTplToClone: ItemTpl_1.ItemTpl.BIPOD_SV98,
|
||||
overrideProperties: {
|
||||
Ergonomics: -12,
|
||||
Weight: 0.124,
|
||||
ExamineExperience: 12,
|
||||
ExaminedByDefault: false,
|
||||
RaidModdable: true,
|
||||
CanSellOnRagfair: true,
|
||||
BipodRecoilMultiplier: 0.35,
|
||||
Width: 2,
|
||||
Prefab: {
|
||||
path: "mod_bipod_type64.bundle",
|
||||
rcid: ""
|
||||
},
|
||||
YawLimitProneBipod: {
|
||||
"x": -31,
|
||||
"y": 31,
|
||||
"z": 0
|
||||
},
|
||||
PitchLimitProneBipod: {
|
||||
"x": -12,
|
||||
"y": 2,
|
||||
"z": 0
|
||||
}
|
||||
},
|
||||
parentId: "55818afb4bdc2dde698b456d",
|
||||
newId: WeapID.BIPOD_TYPE64,
|
||||
handbookParentId: "5b5f71c186f77409407a7ec0",
|
||||
handbookPriceRoubles: 4885,
|
||||
fleaPriceRoubles: 7261,
|
||||
locales: {
|
||||
"en": {
|
||||
name: "Howa Type 64 Marksman Bipod",
|
||||
shortName: "Type 64",
|
||||
description: "Standard issue bipod made for Type 64."
|
||||
}
|
||||
}
|
||||
};
|
||||
customitem.createItemFromClone(type64_bipod);
|
||||
//---MASTERY AND TRADER---
|
||||
const type64_mastery = {
|
||||
"Name": "Howa Type 64 Battlerifle",
|
||||
"Templates": [
|
||||
WeapID.WEAP_TYPE64
|
||||
],
|
||||
"Level2": 450,
|
||||
"Level3": 1200
|
||||
};
|
||||
globals.config.Mastering.push(type64_mastery);
|
||||
for (const lang in db.locales.global) {
|
||||
db.locales.global[lang]["6806545d567504f92dfd75e4"] = "Marksman";
|
||||
}
|
||||
//Global Weapon Preset
|
||||
for (const itemPreset in global_item_preset_json_1.default.ItemPresets) {
|
||||
globals.ItemPresets[itemPreset] = global_item_preset_json_1.default.ItemPresets[itemPreset];
|
||||
}
|
||||
//Trader Assort
|
||||
MC.items.push(...Item_Preset_json_1.default.items);
|
||||
for (const bsc in Item_Preset_json_1.default.barter_scheme) {
|
||||
MC.barter_scheme[bsc] = Item_Preset_json_1.default.barter_scheme[bsc];
|
||||
}
|
||||
for (const llv in Item_Preset_json_1.default.loyal_level_items) {
|
||||
MC.loyal_level_items[llv] = Item_Preset_json_1.default.loyal_level_items[llv];
|
||||
}
|
||||
//---For Other tidbits of manipulation---
|
||||
db.templates.items[ItemTpl_1.ItemTpl.INVENTORY_DEFAULT]._props.Slots[0]._props.filters[0].Filter.push(WeapID.WEAP_TYPE64);
|
||||
db.templates.items[ItemTpl_1.ItemTpl.INVENTORY_DEFAULT]._props.Slots[1]._props.filters[0].Filter.push(WeapID.WEAP_TYPE64);
|
||||
//For next AKi update
|
||||
customitem.addCustomWeaponToPMCs(WeapID.WEAP_TYPE64, 4, "FirstPrimaryWeapon");
|
||||
}
|
||||
}
|
||||
exports.mod = new Mod();
|
||||
//# sourceMappingURL=mod.js.map
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,503 @@
|
||||
/* 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 { ItemTpl } from "@spt/models/enums/ItemTpl";
|
||||
import { Traders } from "@spt/models/enums/Traders";
|
||||
|
||||
import preset_file from "../src/Item_Preset.json";
|
||||
import global_preset_file from "../src/global_item_preset.json";
|
||||
|
||||
export enum WeapID {
|
||||
MOUNT_TYPE64_PICATINY = "67f757e26cf3bc1bfc968982",
|
||||
WEAP_TYPE64 = "67f757e6e60606b56610261d",
|
||||
MAG_TYPE64 = "67f757e76a8379e1874e8556",
|
||||
BIPOD_TYPE64 = "67f757e89c7aaec4e343d2b5",
|
||||
SIGHT_FRONT_TYPE64 = "67f757e853012eb617d4b50b",
|
||||
SIGHT_REAR_TYPE64 = "67f757e9f5c8b5a10f0b6bc1",
|
||||
HANDGUARD_TYPE64 = "67f760061ccdd8ae7ac6fd75"
|
||||
}
|
||||
|
||||
class Mod implements IPostDBLoadMod
|
||||
{
|
||||
public postDBLoad(container: DependencyContainer): void
|
||||
{
|
||||
const customitem = container.resolve<CustomItemService>("CustomItemService");
|
||||
const databaseserver = container.resolve<DatabaseServer>("DatabaseServer");
|
||||
const db = databaseserver.getTables()
|
||||
const globals = db.globals;
|
||||
const MC = db.traders[Traders.MECHANIC].assort;
|
||||
const scope_Mods = [];
|
||||
db.templates.items[ItemTpl.RECEIVER_MK18_338_LM_UPPER]._props.Slots[0]._props.filters[0].Filter.forEach(iDs => {scope_Mods.push(iDs)});
|
||||
//---WEAPON LISTING AND ATTACHMENT---
|
||||
const Piccatiny_Mount: NewItemFromCloneDetails ={
|
||||
itemTplToClone: "591ee00d86f774592f7b841e",
|
||||
overrideProperties: {
|
||||
Weight: 0.057,
|
||||
ExaminedByDefault: false,
|
||||
RaidModdable: true,
|
||||
Width: 2,
|
||||
Prefab: {
|
||||
path: "mod_mount_type64_piccatiny_rail.bundle",
|
||||
rcid: ""
|
||||
},
|
||||
Slots: [
|
||||
{
|
||||
"_id": "67f758f0300a259797a08891",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "mod_scope",
|
||||
"_parent": WeapID.MOUNT_TYPE64_PICATINY,
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": scope_Mods,
|
||||
"Shift": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d30c4c4bdc2db4468b457e",
|
||||
"_required": false
|
||||
}
|
||||
]
|
||||
},
|
||||
parentId: "55818b224bdc2dde698b456f",
|
||||
newId: WeapID.MOUNT_TYPE64_PICATINY,
|
||||
handbookParentId: "5b5f755f86f77447ec5d770e",
|
||||
handbookPriceRoubles: 5447,
|
||||
fleaPriceRoubles: 7653,
|
||||
locales: {
|
||||
"en": {
|
||||
name: "Howa Type 64 Siderail Mount",
|
||||
shortName: "Type 64",
|
||||
description: "A modern piccatiny rail made to fit in the slot of a M84 Scope mount. Supports variety of sights, although it blocks a portion of the chamber view."
|
||||
}
|
||||
}
|
||||
}
|
||||
customitem.createItemFromClone(Piccatiny_Mount);
|
||||
|
||||
const type64: NewItemFromCloneDetails = {
|
||||
itemTplToClone: ItemTpl.ASSAULTRIFLE_DS_ARMS_SA58_762X51_ASSAULT_RIFLE,
|
||||
overrideProperties: {
|
||||
Prefab: {
|
||||
path: "weapon_howa_type64_container.bundle",
|
||||
rcid: ""
|
||||
},
|
||||
Width: 5,
|
||||
Height: 2,
|
||||
AllowFeed: false,
|
||||
AllowJam: false,
|
||||
AllowMisfire: false,
|
||||
AllowSlide: false,
|
||||
AimPlane: 0.3,
|
||||
CenterOfImpact: 0.11,
|
||||
DurabilityBurnRatio: 3.15,
|
||||
SingleFireRate: 500,
|
||||
bFirerate: 500,
|
||||
Velocity: 1.1,
|
||||
DeviationCurve: 1.12,
|
||||
DeviationMax: 15,
|
||||
Ergonomics: 45,
|
||||
isChamberLoad: true,
|
||||
TacticalReloadFixation: 95,
|
||||
TacticalReloadStiffnes:
|
||||
{
|
||||
x: 0.85,
|
||||
y: 0.80,
|
||||
z: 0.95
|
||||
},
|
||||
ExaminedByDefault: false,
|
||||
ExamineExperience: 20,
|
||||
HeatFactorGun: 0.99,
|
||||
IronSightRange: 100,
|
||||
LootExperience: 50,
|
||||
RecoilAngle: 93,
|
||||
RecoilCenter:
|
||||
{
|
||||
x: 0,
|
||||
y: -0.238,
|
||||
z: 0.002
|
||||
},
|
||||
RecoilForceUp: 142,
|
||||
RecoilForceBack: 382,
|
||||
RecoilCamera: 0.045,
|
||||
RecoilDampingHandRotation: 0.75,
|
||||
RecoilReturnSpeedHandRotation: 3.42,
|
||||
RecoilReturnPathDampingHandRotation: 0.51,
|
||||
RecoilStableIndexShot: 4,
|
||||
RecoilPosZMult: 1,
|
||||
PostRecoilHorizontalRangeHandRotation:
|
||||
{
|
||||
x: -0.8,
|
||||
y: 0.8,
|
||||
z: 0
|
||||
},
|
||||
PostRecoilVerticalRangeHandRotation:
|
||||
{
|
||||
x: -1.2,
|
||||
y: 0,
|
||||
z: 0
|
||||
},
|
||||
RotationCenter:
|
||||
{
|
||||
x: 0,
|
||||
y: -0.05,
|
||||
z: -0.034
|
||||
},
|
||||
RotationCenterNoStock:
|
||||
{
|
||||
x: 0,
|
||||
y: -0.238,
|
||||
z: -0.009
|
||||
},
|
||||
Slots: [
|
||||
{
|
||||
"_id": "67f75fa092b226eb0d2a9bb1",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "mod_magazine",
|
||||
"_parent": WeapID.WEAP_TYPE64,
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"AnimationIndex": 0,
|
||||
"Filter": [
|
||||
WeapID.MAG_TYPE64
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d30c394bdc2dae468b4577",
|
||||
"_required": false
|
||||
},
|
||||
{
|
||||
"_id": "67f7601eeb13ec4fdd7f5a4b",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "mod_handguard",
|
||||
"_parent": WeapID.WEAP_TYPE64,
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": [
|
||||
WeapID.HANDGUARD_TYPE64
|
||||
],
|
||||
"Shift": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d30c4c4bdc2db4468b457e",
|
||||
"_required": true
|
||||
},
|
||||
{
|
||||
"_id": "67f75fafaad5ed69caced214",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "mod_mount",
|
||||
"_parent": WeapID.WEAP_TYPE64,
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": [
|
||||
WeapID.MOUNT_TYPE64_PICATINY
|
||||
],
|
||||
"Shift": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d30c4c4bdc2db4468b457e",
|
||||
"_required": false
|
||||
},
|
||||
{
|
||||
"_id": "67f75fbb1920d932ff90df1e",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "mod_sight_front",
|
||||
"_parent": WeapID.WEAP_TYPE64,
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": [
|
||||
WeapID.SIGHT_FRONT_TYPE64
|
||||
],
|
||||
"Shift": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d30c4c4bdc2db4468b457e",
|
||||
"_required": false
|
||||
},
|
||||
{
|
||||
"_id": "67f75fcbec7ef481c01e83fc",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "mod_sight_rear",
|
||||
"_parent": WeapID.WEAP_TYPE64,
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": [
|
||||
WeapID.SIGHT_REAR_TYPE64
|
||||
],
|
||||
"Shift": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d30c4c4bdc2db4468b457e",
|
||||
"_required": false
|
||||
},
|
||||
{
|
||||
"_id": "67f76032b303bc270721284e",
|
||||
"_mergeSlotWithChildren": false,
|
||||
"_name": "mod_bipod",
|
||||
"_parent": WeapID.WEAP_TYPE64,
|
||||
"_props": {
|
||||
"filters": [
|
||||
{
|
||||
"Filter": [
|
||||
WeapID.BIPOD_TYPE64
|
||||
],
|
||||
"Shift": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
"_proto": "55d30c4c4bdc2db4468b457e",
|
||||
"_required": false
|
||||
}
|
||||
],
|
||||
Weight: 2.8,
|
||||
ammoCaliber: "Caliber762x51",
|
||||
defAmmo: "5e023e53d4353e3302577c4c",
|
||||
defMagType: WeapID.MAG_TYPE64,
|
||||
durabSpawnMax: 100,
|
||||
durabSpawnMin: 35,
|
||||
weapFireType: ["single", "fullauto"]
|
||||
},
|
||||
parentId: "5447b5f14bdc2d61278b4567",
|
||||
newId: WeapID.WEAP_TYPE64,
|
||||
handbookParentId: "5b5f78fc86f77409407a7f90",
|
||||
handbookPriceRoubles: 158771,
|
||||
fleaPriceRoubles: 187221,
|
||||
locales: {
|
||||
"en": {
|
||||
name: "Howa Type 64 7.62x51 battle rifle",
|
||||
shortName: "Type 64",
|
||||
description: "The Howa Type 64 battle rifle (Romanized: Roku-yon-shiki-jidou-shoujuu), referred to as the Type 64 7.62mm rifle, is a Japanese battle rifle used exclusively by the Japan Self-Defense Forces and the Japanese Coast Guard. It is a gas-operated, selective fire weapon which is chambered for the 7.62×51mm NATO round and uses a detachable 20-round box magazine. The Type 64 has never been exported due to Japan's strict anti-hardware export laws. It has been superseded by the more advanced Howa Type 89 from 1989 to 1990, but is still in service with all branches of the Self-Defense Forces and the Japanese Coast Guard. The JGSDF's Ōita Prefecture garrison had encountered supply problems when they were not able to account for 30 Howa Type 64s that had been lost, yet somehow among those 30 that were lost some ended up here."
|
||||
}
|
||||
}
|
||||
}
|
||||
customitem.createItemFromClone(type64);
|
||||
|
||||
const type64_mag: NewItemFromCloneDetails= {
|
||||
itemTplToClone: ItemTpl.MAGAZINE_762X51_SA58FAL_20RND,
|
||||
overrideProperties: {
|
||||
ExaminedByDefault: false,
|
||||
Ergonomics: -8,
|
||||
Weight: 0.4,
|
||||
ExamineExperience: 15,
|
||||
ExtraSizeDown: 0,
|
||||
Prefab:
|
||||
{
|
||||
path: "mod_magazine_type64_20rnd.bundle",
|
||||
rcid: ""
|
||||
}
|
||||
|
||||
},
|
||||
parentId: "5448bc234bdc2d3c308b4569",
|
||||
newId: WeapID.MAG_TYPE64,
|
||||
handbookParentId: "5b5f754a86f774094242f19b",
|
||||
handbookPriceRoubles: 1162,
|
||||
fleaPriceRoubles: 2853,
|
||||
locales: {
|
||||
"en": {
|
||||
name: "Howa Type 64 20-Round Magazine",
|
||||
shortName: "Type 64",
|
||||
description: "Standard issue detachable metal magazine for the Type 64, supports 20 round."
|
||||
}
|
||||
}
|
||||
}
|
||||
customitem.createItemFromClone(type64_mag);
|
||||
|
||||
const type64_handguard: NewItemFromCloneDetails= {
|
||||
itemTplToClone: ItemTpl.HANDGUARD_SA58FAL_BELGIAN_STYLE,
|
||||
overrideProperties: {
|
||||
Ergonomics: 10,
|
||||
Weight: 0.68,
|
||||
Width: 2,
|
||||
Height: 1,
|
||||
ExtraSizeRight: 0,
|
||||
ExtraSizeLeft: 0,
|
||||
Recoil: -14,
|
||||
ExamineExperience: 10,
|
||||
Prefab:
|
||||
{
|
||||
path: "mod_handguard_type64_stamped_steel.bundle",
|
||||
rcid: ""
|
||||
},
|
||||
ExaminedByDefault: false
|
||||
|
||||
},
|
||||
parentId: "55818a104bdc2db9688b4569",
|
||||
newId: WeapID.HANDGUARD_TYPE64,
|
||||
handbookParentId: "5b5f75e486f77447ec5d7712",
|
||||
handbookPriceRoubles: 12763,
|
||||
fleaPriceRoubles: 16223,
|
||||
locales: {
|
||||
"en": {
|
||||
name: "Howa Type 64 Stamped Steel Handguard",
|
||||
shortName: "Type 64",
|
||||
description: "Standard issue handguard for Type 64, made from stamped steel."
|
||||
}
|
||||
}
|
||||
}
|
||||
customitem.createItemFromClone(type64_handguard);
|
||||
|
||||
const type64_front_sight: NewItemFromCloneDetails= {
|
||||
itemTplToClone: "5bc09a30d4351e00367fb7c8",
|
||||
overrideProperties: {
|
||||
Ergonomics: 7,
|
||||
Weight: 0.014,
|
||||
Width: 1,
|
||||
Height: 1,
|
||||
Prefab:
|
||||
{
|
||||
path: "mod_front_sight_type64.bundle",
|
||||
rcid: ""
|
||||
},
|
||||
ExaminedByDefault: false
|
||||
|
||||
},
|
||||
parentId: "55818ac54bdc2d5b648b456e",
|
||||
newId: WeapID.SIGHT_FRONT_TYPE64,
|
||||
handbookParentId: "5b5f73ec86f774093e6cb4fd",
|
||||
handbookPriceRoubles: 885,
|
||||
fleaPriceRoubles: 910,
|
||||
locales: {
|
||||
"en": {
|
||||
name: "Howa Type 64 Front Sight Flip Up",
|
||||
shortName: "Type 64",
|
||||
description: "Standard issue flippable sight for the Type 64."
|
||||
}
|
||||
}
|
||||
}
|
||||
customitem.createItemFromClone(type64_front_sight);
|
||||
|
||||
const type64_rear_sight: NewItemFromCloneDetails= {
|
||||
itemTplToClone: "5894a81786f77427140b8347",
|
||||
overrideProperties: {
|
||||
Ergonomics: 8,
|
||||
Weight: 0.028,
|
||||
Width: 1,
|
||||
Height: 1,
|
||||
Prefab:
|
||||
{
|
||||
path: "mod_rear_sight_type64.bundle",
|
||||
rcid: ""
|
||||
},
|
||||
ExaminedByDefault: false
|
||||
|
||||
},
|
||||
parentId: "55818ac54bdc2d5b648b456e",
|
||||
newId: WeapID.SIGHT_REAR_TYPE64,
|
||||
handbookParentId: "5b5f73ec86f774093e6cb4fd",
|
||||
handbookPriceRoubles: 885,
|
||||
fleaPriceRoubles: 910,
|
||||
locales: {
|
||||
"en": {
|
||||
name: "Howa Type 64 Rear Sight Flip Up",
|
||||
shortName: "Type 64",
|
||||
description: "Standard issue flippable sight for the Type 64."
|
||||
}
|
||||
}
|
||||
}
|
||||
customitem.createItemFromClone(type64_rear_sight);
|
||||
|
||||
const type64_bipod: NewItemFromCloneDetails= {
|
||||
itemTplToClone: ItemTpl.BIPOD_SV98,
|
||||
overrideProperties: {
|
||||
Ergonomics: -12,
|
||||
Weight: 0.124,
|
||||
ExamineExperience: 12,
|
||||
ExaminedByDefault: false,
|
||||
RaidModdable: true,
|
||||
CanSellOnRagfair: true,
|
||||
BipodRecoilMultiplier: 0.35,
|
||||
Width: 2,
|
||||
Prefab:
|
||||
{
|
||||
path: "mod_bipod_type64.bundle",
|
||||
rcid: ""
|
||||
},
|
||||
YawLimitProneBipod:
|
||||
{
|
||||
"x": -31,
|
||||
"y": 31,
|
||||
"z": 0
|
||||
},
|
||||
PitchLimitProneBipod:
|
||||
{
|
||||
"x": -12,
|
||||
"y": 2,
|
||||
"z": 0
|
||||
}
|
||||
|
||||
},
|
||||
parentId: "55818afb4bdc2dde698b456d",
|
||||
newId: WeapID.BIPOD_TYPE64,
|
||||
handbookParentId: "5b5f71c186f77409407a7ec0",
|
||||
handbookPriceRoubles: 4885,
|
||||
fleaPriceRoubles: 7261,
|
||||
locales: {
|
||||
"en": {
|
||||
name: "Howa Type 64 Marksman Bipod",
|
||||
shortName: "Type 64",
|
||||
description: "Standard issue bipod made for Type 64."
|
||||
}
|
||||
}
|
||||
}
|
||||
customitem.createItemFromClone(type64_bipod);
|
||||
|
||||
//---MASTERY AND TRADER---
|
||||
const type64_mastery = {
|
||||
"Name": "Howa Type 64 Battlerifle",
|
||||
"Templates": [
|
||||
WeapID.WEAP_TYPE64
|
||||
],
|
||||
"Level2": 450,
|
||||
"Level3": 1200
|
||||
}
|
||||
globals.config.Mastering.push(type64_mastery)
|
||||
|
||||
for (const lang in db.locales.global)
|
||||
{
|
||||
db.locales.global[lang]["6806545d567504f92dfd75e4"] = "Marksman"
|
||||
}
|
||||
|
||||
//Global Weapon Preset
|
||||
for (const itemPreset in global_preset_file.ItemPresets)
|
||||
{
|
||||
globals.ItemPresets[itemPreset] = global_preset_file.ItemPresets[itemPreset];
|
||||
}
|
||||
|
||||
//Trader Assort
|
||||
MC.items.push(...preset_file.items);
|
||||
|
||||
for (const bsc in preset_file.barter_scheme)
|
||||
{
|
||||
MC.barter_scheme[bsc] = preset_file.barter_scheme[bsc];
|
||||
}
|
||||
|
||||
for (const llv in preset_file.loyal_level_items)
|
||||
{
|
||||
MC.loyal_level_items[llv] = preset_file.loyal_level_items[llv];
|
||||
}
|
||||
//---For Other tidbits of manipulation---
|
||||
db.templates.items[ItemTpl.INVENTORY_DEFAULT]._props.Slots[0]._props.filters[0].Filter.push(WeapID.WEAP_TYPE64);
|
||||
db.templates.items[ItemTpl.INVENTORY_DEFAULT]._props.Slots[1]._props.filters[0].Filter.push(WeapID.WEAP_TYPE64);
|
||||
|
||||
|
||||
//For next AKi update
|
||||
customitem.addCustomWeaponToPMCs(WeapID.WEAP_TYPE64, 4, "FirstPrimaryWeapon");
|
||||
}
|
||||
}
|
||||
|
||||
export const mod = new Mod();
|
||||
Reference in New Issue
Block a user