Add example

This commit is contained in:
Chomp 2022-05-16 17:45:09 +01:00
parent 39e87ceb12
commit 0d0c9e1232
449 changed files with 11349 additions and 0 deletions

View File

@ -0,0 +1,17 @@
{
"name": "EditDatabase",
"version": "1.0.0",
"main": "src/mod.js",
"license": "MIT",
"author": "Chomp",
"akiVersion": "2.4.0",
"scripts": {
"install": "npx handpick --target=devDependencies",
"build": "tsc"
},
"devDependencies": {
"@types/node": "^17.0.31",
"tsyringe": "^4.6.0",
"typescript": "^4.6.4"
}
}

View File

@ -0,0 +1,7 @@
export class MoreCode
{
public getTheWordFlub(): string
{
return "flub";
}
}

View File

@ -0,0 +1,29 @@
import type { DependencyContainer } from "tsyringe";
import { IMod } from "../types/@types/external/mod";
import type { ILogger } from "../types/@types/spt/utils/ILogger";
import {MoreCode } from "./MoreCode";
class Mod implements IMod
{
// not used for this example
public load(container: DependencyContainer): void
{ return }
public delayedLoad(container: DependencyContainer): void
{
// get logger
const logger = container.resolve<ILogger>("WinstonLogger");
// Make a new instance of the 'MoreCode' class
const moreCode = new MoreCode();
// call the function 'getTheWordFlub()' and assign the result to 'result'
const result = moreCode.getTheWordFlub();
// log the 'myProperty' property to the console
logger.info(`Here is the value from my second class: ${result}`);
}
}
module.exports = { mod: new Mod() }

View File

@ -0,0 +1,22 @@
{
"compilerOptions": {
"allowJs": true,
"module": "CommonJS",
"target": "es2020",
"moduleResolution": "node",
"esModuleInterop": true,
"downlevelIteration": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"resolveJsonModule": true,
"esModuleInterop": true,
"outDir": "out"
},
"lib": [
"es2020"
],
"include": [
"src/*",
"src/**/*"
]
}

View File

@ -0,0 +1,8 @@
export interface IGenerateBotsRequestData {
conditions: Condition[];
}
export interface Condition {
Role: string;
Limit: number;
Difficulty: string;
}

View File

@ -0,0 +1,2 @@
export interface IEmptyRequestData {
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,25 @@
import { Skills } from "./IPmcData";
export interface IItemEventResponseData {
warnings: any[];
profileChanges: Record<string, ProfileChange>;
}
export interface ProfileChange {
_id: string;
experience: number;
quests: any[];
ragFairOffers: any[];
builds: any[];
items: Items;
production: Production;
skills: Skills;
traderRelations: TraderRelations;
}
export interface Items {
new: any[];
change: any[];
del: any[];
}
export interface Production {
}
export interface TraderRelations {
}

View File

@ -0,0 +1,6 @@
import { ILocationBase } from "./ILocationBase";
import { ILooseLoot } from "./ILooseLoot";
export interface ILocation {
base: ILocationBase;
looseLoot: ILooseLoot;
}

View File

@ -0,0 +1,189 @@
export interface ILocationBase {
AccessKeys: string[];
AirdropParameters: AirdropParameter[];
Area: number;
AveragePlayTime: number;
AveragePlayerLevel: number;
Banners: Banner[];
BossLocationSpawn: BossLocationSpawn[];
BotAssault: number;
BotEasy: number;
BotHard: number;
BotImpossible: number;
BotLocationModifier: BotLocationModifier;
BotMarksman: number;
BotMax: number;
BotMaxPlayer: number;
BotMaxTimePlayer: number;
BotNormal: number;
BotSpawnTimeOffMax: number;
BotSpawnTimeOffMin: number;
BotSpawnTimeOnMax: number;
BotSpawnTimeOnMin: number;
BotStart: number;
BotStop: number;
Description: string;
DisabledForScav: boolean;
DisabledScavExits: string;
Enabled: boolean;
GlobalLootChanceModifier: number;
IconX: number;
IconY: number;
Id: string;
Insurance: boolean;
IsSecret: boolean;
Locked: boolean;
Loot: any[];
MaxBotPerZone: number;
MaxDistToFreePoint: number;
MaxPlayers: number;
MinDistToExitPoint: number;
MinDistToFreePoint: number;
MinMaxBots: MinMaxBot[];
MinPlayers: number;
Name: string;
NewSpawn: boolean;
OcculsionCullingEnabled: boolean;
OldSpawn: boolean;
OpenZones: string;
Preview: Preview;
RequiredPlayerLevel: number;
Rules: string;
SafeLocation: boolean;
Scene: Scene;
SpawnPointParams: SpawnPointParam[];
UnixDateTime: number;
_Id: string;
doors: any[];
escape_time_limit: number;
exit_access_time: number;
exit_count: number;
exit_time: number;
exits: Exit[];
filter_ex: string[];
limits: ILimit[];
matching_min_seconds: number;
maxItemCountInLocation: MaxItemCountInLocation[];
sav_summon_seconds: number;
tmp_location_field_remove_me: number;
users_gather_seconds: number;
users_spawn_seconds_n: number;
users_spawn_seconds_n2: number;
users_summon_seconds: number;
waves: Wave[];
}
export interface ILimit {
min: number;
max: number;
items: any[];
}
export interface AirdropParameter {
AirdropPointDeactivateDistance: number;
MinPlayersCountToSpawnAirdrop: number;
PlaneAirdropChance: number;
PlaneAirdropCooldownMax: number;
PlaneAirdropCooldownMin: number;
PlaneAirdropEnd: number;
PlaneAirdropMax: number;
PlaneAirdropStartMax: number;
PlaneAirdropStartMin: number;
UnsuccessfulTryPenalty: number;
}
export interface Banner {
id: string;
pic: Pic;
}
export interface Pic {
path: string;
rcid: string;
}
export interface BossLocationSpawn {
BossChance: number;
BossDifficult: string;
BossEscortAmount: string;
BossEscortDifficult: string;
BossEscortType: string;
BossName: string;
BossPlayer: boolean;
BossZone: string;
Time: number;
}
export interface BotLocationModifier {
AccuracySpeed: number;
DistToActivate: number;
DistToPersueAxemanCoef: number;
DistToSleep: number;
GainSight: number;
KhorovodChance: number;
MagnetPower: number;
MarksmanAccuratyCoef: number;
Scattering: number;
VisibleDistance: number;
}
export interface MinMaxBot {
WildSpawnType: string;
max: number;
min: number;
}
export interface Preview {
path: string;
rcid: string;
}
export interface Scene {
path: string;
rcid: string;
}
export interface SpawnPointParam {
BotZoneName: string;
Categories: string[];
ColliderParams: ColliderParams;
DelayToCanSpawnSec: number;
Id: string;
Infiltration: string;
Position: xyz;
Rotation: number;
Sides: string[];
}
export interface ColliderParams {
_parent: string;
_props: Props;
}
export interface Props {
Center: xyz;
Radius: number;
}
export interface xyz {
x: number;
y: number;
z: number;
}
export interface Exit {
Chance: number;
Count: number;
EntryPoints: string;
ExfiltrationTime: number;
ExfiltrationType: string;
Id: string;
MaxTime: number;
MinTime: number;
Name: string;
PassageRequirement: string;
PlayersCount: number;
RequirementTip: string;
}
export interface MaxItemCountInLocation {
TemplateId: string;
Value: number;
}
export interface Wave {
BotPreset: string;
BotSide: string;
SpawnPoints: string;
WildSpawnType: string;
isPlayers: boolean;
number: number;
slots_max: number;
slots_min: number;
time_max: number;
time_min: number;
}

View File

@ -0,0 +1,9 @@
import { ILocations } from "../../spt/server/ILocations";
export interface ILocationsGenerateAllResponse {
locations: ILocations;
paths: Path[];
}
export interface Path {
Source: string;
Destination: string;
}

View File

@ -0,0 +1,45 @@
export interface ILooseLoot {
spawnpointCount: SpawnpointCount;
spawnpointsForced: SpawnpointsForced[];
spawnpoints: Spawnpoint[];
}
export interface SpawnpointCount {
mean: number;
std: number;
}
export interface SpawnpointsForced {
locationId: string;
probability: number;
template: SpawnpointTemplate;
}
export interface SpawnpointTemplate {
Id: string;
IsStatic: boolean;
useGravity: boolean;
randomRotation: boolean;
Position: Xyz;
Rotation: Xyz;
IsGroupPosition: boolean;
GroupPositions: any[];
Root: any;
Items: Item[];
}
export interface Item {
_id: string;
_tpl?: string;
}
export interface Spawnpoint {
locationId: string;
probability: number;
template: SpawnpointTemplate;
itemDistribution: ItemDistribution[];
}
export interface Xyz {
x: number;
y: number;
z: number;
}
export interface ItemDistribution {
tpl: string;
relativeProbability: number;
}

View File

@ -0,0 +1,7 @@
export interface IMetricsTableData {
Keys: number[];
NetProcessingBins: number[];
RenderBins: number[];
GameUpdateBins: number[];
MemoryMeasureInterval: number;
}

View File

@ -0,0 +1,341 @@
import { IRagfairOffer } from "../ragfair/IRagfairOffer";
import { IPmcDataRepeatableQuest } from "./tables/IRepeatableQuests";
import { Item, Upd } from "./tables/IItem";
import { HideoutAreasEnum } from "../hideout/HideoutAreasEnum";
import { MemberCategory } from "./MemberCategory";
export interface IPmcData {
_id: string;
aid: string;
savage: string;
Info: Info;
Customization: Customization;
Health: Health;
Inventory: Inventory;
Skills: Skills;
Stats: Stats;
Encyclopedia: Record<string, boolean>;
ConditionCounters: ConditionCounters;
BackendCounters: Record<string, BackendCounter>;
InsuredItems: InsuredItem[];
Hideout: Hideout;
Bonuses: Bonus[];
Notes: Notes;
Quests: Quest[];
TradersInfo: Record<string, TraderInfo>;
RagfairInfo: RagfairInfo;
WishList: string[];
RepeatableQuests: IPmcDataRepeatableQuest[];
CarExtractCounts: CarExtractCounts;
SurvivorClass: SurvivorClass;
}
export declare enum SurvivorClass {
Unknown = 0,
Neutralizer = 1,
Marauder = 2,
Paramedic = 3,
Survivor = 4
}
export interface Info {
EntryPoint: string;
Nickname: string;
LowerNickname: string;
Side: string;
Voice: string;
Level: number;
Experience: number;
RegistrationDate: number;
GameVersion: string;
AccountType: number;
MemberCategory: MemberCategory;
lockedMoveCommands: boolean;
SavageLockTime: number;
LastTimePlayedAsSavage: number;
Settings: Settings;
NicknameChangeDate: number;
IsStreamerModeAvailable: boolean;
Bans: IBan[];
BannedState: boolean;
BannedUntil: number;
}
export interface Settings {
Role: string;
BotDifficulty: string;
Experience: number;
StandingForKill: number;
AggressorBonus: number;
}
export interface IBan {
type: BanType;
dateTime: number;
}
export declare enum BanType {
Chat = 0,
RagFair = 1,
Voip = 2,
Trading = 3,
Online = 4,
Friends = 5,
ChangeNickname = 6
}
export interface Notes {
Notes: Note[];
}
export interface Note {
Time: number;
Text: string;
}
export interface Customization {
Head: string;
Body: string;
Feet: string;
Hands: string;
}
export interface Health {
Hydration: CurrentMax;
Energy: CurrentMax;
Temperature: CurrentMax;
BodyParts: BodyPartsHealth;
UpdateTime: number;
}
export interface BodyPartsHealth {
Head: BodyPartHealth;
Chest: BodyPartHealth;
Stomach: BodyPartHealth;
LeftArm: BodyPartHealth;
RightArm: BodyPartHealth;
LeftLeg: BodyPartHealth;
RightLeg: BodyPartHealth;
}
export interface BodyPartHealth {
Health: CurrentMax;
Effects?: Record<string, number>;
}
export interface CurrentMax {
Current: number;
Maximum: number;
}
export interface Inventory {
items: Item[];
equipment: string;
stash: string;
sortingTable: string;
questRaidItems: string;
questStashItems: string;
fastPanel: FastPanel;
}
export interface FastPanel {
}
export interface Skills {
Common: Common[];
Mastering: Mastering[];
Bonuses?: any[];
Points: number;
}
export interface Common {
Id: string;
Progress: number;
PointsEarnedDuringSession: number;
LastAccess: number;
}
export interface Mastering {
Id: string;
Progress: number;
}
export interface Stats {
CarriedQuestItems: string[];
Victims: Victim[];
TotalSessionExperience: number;
LastSessionDate: number;
SessionCounters: SessionCounters;
OverallCounters: OverallCounters;
SessionExperienceMult?: number;
ExperienceBonusMult?: number;
Aggressor?: Aggressor;
DroppedItems?: IDroppedItem[];
FoundInRaidItems?: FoundInRaidItem[];
DamageHistory?: DamageHistory;
DeathCause?: DeathCause;
LastPlayerState?: LastPlayerState;
TotalInGameTime: number;
SurvivorClass?: string;
}
export interface IDroppedItem {
QuestId: string;
ItemId: string;
ZoneId: string;
}
export interface FoundInRaidItem {
QuestId: string;
ItemId: string;
}
export interface Victim {
AccountId: string;
ProfileId: string;
Name: string;
Side: string;
BodyPart: string;
Time: string;
Distance: number;
Level: number;
Weapon: string;
Role: string;
}
export interface SessionCounters {
Items: CounterKeyValue[];
}
export interface OverallCounters {
Items: CounterKeyValue[];
}
export interface CounterKeyValue {
Key: string[];
Value: number;
}
export interface Aggressor {
AccountId: string;
ProfileId: string;
MainProfileNickname: string;
Name: string;
Side: string;
BodyPart: string;
HeadSegment: string;
WeaponName: string;
Category: string;
}
export interface DamageHistory {
LethalDamagePart: string;
LethalDamage: LethalDamage;
BodyParts: BodyPartsDamageHistory;
}
export interface LethalDamage {
Amount: number;
Type: string;
SourceId: string;
OverDamageFrom: string;
Blunt: boolean;
ImpactsCount: number;
}
export interface BodyPartsDamageHistory {
Head: DamageStats[];
Chest: DamageStats[];
Stomach: DamageStats[];
LeftArm: DamageStats[];
RightArm: DamageStats[];
LeftLeg: DamageStats[];
RightLeg: DamageStats[];
Common: DamageStats[];
}
export interface DamageStats {
Amount: number;
Type: string;
SourceId: string;
OverDamageFrom: string;
Blunt: boolean;
ImpactsCount: number;
}
export interface DeathCause {
DamageType: string;
Side: string;
Role: string;
WeaponId: string;
}
export interface LastPlayerState {
Info: LastPlayerStateInfo;
Customization: Record<string, string>;
Equipment: any;
}
export interface LastPlayerStateInfo {
Nickname: string;
Side: string;
Level: number;
MemberCategory: string;
}
export interface ConditionCounters {
Counters: Counter[];
}
export interface Counter {
id: string;
value: number;
qid: string;
}
export interface BackendCounter {
id: string;
qid?: string;
value: number;
}
export interface InsuredItem {
tid: string;
itemId: string;
}
export interface Hideout {
Production: Record<string, Productive>;
Areas: HideoutArea[];
}
export interface Productive {
Products: Product[];
Progress?: number;
inProgress?: boolean;
StartTimestamp?: number;
}
export interface Product {
_id: string;
_tpl: string;
upd?: Upd;
}
export interface ScavCase extends Productive {
}
export interface Production extends Productive {
RecipeId: string;
SkipTime: number;
ProductionTime: number;
}
export interface HideoutArea {
type: HideoutAreasEnum;
level: number;
active: boolean;
passiveBonusesEnabled: boolean;
completeTime: number;
constructing: boolean;
slots: HideoutSlot[];
lastRecipe: string;
}
export interface HideoutSlot {
item: HideoutItem[];
}
export interface HideoutItem {
_id: string;
_tpl: string;
upd?: Upd;
}
export interface Bonus {
type: string;
templateId?: string;
passive?: boolean;
production?: boolean;
visible?: boolean;
value?: number;
icon?: string;
}
export interface Quest {
qid: string;
startTime: number;
status: string;
statusTimers?: StatusTimer;
completedConditions?: string[];
}
export interface StatusTimer {
AvailableForStart?: number;
}
export interface TraderInfo {
loyaltyLevel: number;
salesSum: number;
standing: number;
nextResupply: number;
unlocked: boolean;
}
export interface RagfairInfo {
rating: number;
isRatingGrowing: boolean;
offers: IRagfairOffer[];
}
export interface CarExtractCounts {
}

View File

@ -0,0 +1,71 @@
export interface IPmcDataRepeatableQuest {
name: string;
activeQuests: Quest[];
inactiveQuests: Quest[];
endTime: number;
}
export interface Quest {
_id: string;
traderId: string;
location: string;
image: string;
type: string;
isKey: boolean;
restartable: boolean;
instantComplete: boolean;
secretQuest: boolean;
canShowNotificationsInGame: boolean;
rewards: Rewards;
conditions: Conditions;
name: string;
note: string;
description: string;
successMessageText: string;
failMessageText: string;
startedMessageText: string;
templateId: string;
}
export interface Rewards {
Started: Reward[];
Success: Reward[];
Fail: Reward[];
}
export interface Reward {
value: number;
type: string;
index: number;
target?: string;
items?: Item[];
}
export interface Item {
_id: string;
_tpl: string;
upd: Upd;
}
export interface Conditions {
AvailableForStart: any[];
AvailableForFinish: AvailableForFinish[];
Fail: any[];
}
export interface AvailableForFinish {
_props: Props;
_parent: string;
dynamicLocale: boolean;
}
export interface Props {
id: string;
parentId: string;
dynamicLocale: boolean;
index: number;
visibilityConditions: any[];
target: string[];
value: number;
minDurability: number;
maxDurability: number;
dogtagLevel: number;
onlyFoundInRaid: boolean;
}
export interface Upd {
StackObjectsCount: number;
SpawnedInSession?: boolean;
}

View File

@ -0,0 +1,13 @@
export declare enum MemberCategory {
Default = 0,
Developer = 1,
UniqueId = 2,
Trader = 4,
Group = 8,
System = 16,
ChatModerator = 32,
ChatModeratorWithPermanentBan = 64,
UnitTest = 128,
Sherpa = 256,
Emissary = 512
}

View File

@ -0,0 +1,9 @@
export interface IBaseInteractionRequestData {
Action: string;
fromOwner?: OwnerInfo;
toOwner?: OwnerInfo;
}
export interface OwnerInfo {
id: string;
type: string;
}

View File

@ -0,0 +1,101 @@
import { BackendCounter, Bonus } from "../IPmcData";
import { Item } from "./IItem";
export interface IBotBase {
_id: string;
aid: string;
savage: any;
Info: Info;
Customization: Customization;
Health: Health;
Inventory: Inventory;
Skills: Skills;
Stats: Stats;
Encyclopedia: any;
ConditionCounters: ConditionCounters;
BackendCounters: Record<string, BackendCounter>;
InsuredItems: any[];
Hideout: Hideout;
Bonuses: Bonus[];
}
export interface Info {
Nickname: string;
LowerNickname: string;
Side: string;
Voice: string;
Level: number;
Experience: number;
RegistrationDate: number;
GameVersion: string;
AccountType: number;
MemberCategory: number;
lockedMoveCommands: boolean;
SavageLockTime: number;
LastTimePlayedAsSavage: number;
Settings: Settings;
NicknameChangeDate: number;
NeedWipeOptions: any[];
lastCompletedWipe: any;
BannedState: boolean;
BannedUntil: number;
IsStreamerModeAvailable: boolean;
}
export interface Settings {
Role: string;
BotDifficulty: string;
Experience: number;
StandingForKill: number;
AggressorBonus: number;
}
export interface Customization {
Head: string;
Body: string;
Feet: string;
Hands: string;
}
export interface Health {
}
export interface Inventory {
items: Item[];
equipment: string;
stash: string;
sortingTable: string;
questRaidItems: string;
questStashItems: string;
fastPanel: FastPanel;
}
export interface FastPanel {
}
export interface Skills {
Common: any[];
Mastering: any[];
Points: number;
}
export interface Stats {
SessionCounters: SessionCounters;
OverallCounters: OverallCounters;
}
export interface SessionCounters {
Items: any[];
}
export interface OverallCounters {
Items: any[];
}
export interface ConditionCounters {
Counters: any[];
}
export interface Hideout {
Production: Production;
Areas: Area[];
}
export interface Production {
}
export interface Area {
type: number;
level: number;
active: boolean;
passiveBonusesEnabled: boolean;
completeTime: number;
constructing: boolean;
slots: any[];
lastRecipe: any;
}

View File

@ -0,0 +1,133 @@
export interface IBotCore {
SAVAGE_KILL_DIST: number;
SOUND_DOOR_BREACH_METERS: number;
SOUND_DOOR_OPEN_METERS: number;
STEP_NOISE_DELTA: number;
JUMP_NOISE_DELTA: number;
GUNSHOT_SPREAD: number;
GUNSHOT_SPREAD_SILENCE: number;
BASE_WALK_SPEREAD2: number;
MOVE_SPEED_COEF_MAX: number;
SPEED_SERV_SOUND_COEF_A: number;
SPEED_SERV_SOUND_COEF_B: number;
G: number;
STAY_COEF: number;
SIT_COEF: number;
LAY_COEF: number;
MAX_ITERATIONS: number;
START_DIST_TO_COV: number;
MAX_DIST_TO_COV: number;
STAY_HEIGHT: number;
CLOSE_POINTS: number;
COUNT_TURNS: number;
SIMPLE_POINT_LIFE_TIME_SEC: number;
DANGER_POINT_LIFE_TIME_SEC: number;
DANGER_POWER: number;
COVER_DIST_CLOSE: number;
GOOD_DIST_TO_POINT: number;
COVER_TOOFAR_FROM_BOSS: number;
COVER_TOOFAR_FROM_BOSS_SQRT: number;
MAX_Y_DIFF_TO_PROTECT: number;
FLARE_POWER: number;
MOVE_COEF: number;
PRONE_POSE: number;
LOWER_POSE: number;
MAX_POSE: number;
FLARE_TIME: number;
MAX_REQUESTS__PER_GROUP: number;
UPDATE_GOAL_TIMER_SEC: number;
DIST_NOT_TO_GROUP: number;
DIST_NOT_TO_GROUP_SQR: number;
LAST_SEEN_POS_LIFETIME: number;
DELTA_GRENADE_START_TIME: number;
DELTA_GRENADE_END_TIME: number;
DELTA_GRENADE_RUN_DIST: number;
DELTA_GRENADE_RUN_DIST_SQRT: number;
PATROL_MIN_LIGHT_DIST: number;
HOLD_MIN_LIGHT_DIST: number;
STANDART_BOT_PAUSE_DOOR: number;
ARMOR_CLASS_COEF: number;
SHOTGUN_POWER: number;
RIFLE_POWER: number;
PISTOL_POWER: number;
SMG_POWER: number;
SNIPE_POWER: number;
GESTUS_PERIOD_SEC: number;
GESTUS_AIMING_DELAY: number;
GESTUS_REQUEST_LIFETIME: number;
GESTUS_FIRST_STAGE_MAX_TIME: number;
GESTUS_SECOND_STAGE_MAX_TIME: number;
GESTUS_MAX_ANSWERS: number;
GESTUS_FUCK_TO_SHOOT: number;
GESTUS_DIST_ANSWERS: number;
GESTUS_DIST_ANSWERS_SQRT: number;
GESTUS_ANYWAY_CHANCE: number;
TALK_DELAY: number;
CAN_SHOOT_TO_HEAD: boolean;
CAN_TILT: boolean;
TILT_CHANCE: number;
MIN_BLOCK_DIST: number;
MIN_BLOCK_TIME: number;
COVER_SECONDS_AFTER_LOSE_VISION: number;
MIN_ARG_COEF: number;
MAX_ARG_COEF: number;
DEAD_AGR_DIST: number;
MAX_DANGER_CARE_DIST_SQRT: number;
MAX_DANGER_CARE_DIST: number;
MIN_MAX_PERSON_SEARCH: number;
PERCENT_PERSON_SEARCH: number;
LOOK_ANYSIDE_BY_WALL_SEC_OF_ENEMY: number;
CLOSE_TO_WALL_ROTATE_BY_WALL_SQRT: number;
SHOOT_TO_CHANGE_RND_PART_MIN: number;
SHOOT_TO_CHANGE_RND_PART_MAX: number;
SHOOT_TO_CHANGE_RND_PART_DELTA: number;
FORMUL_COEF_DELTA_DIST: number;
FORMUL_COEF_DELTA_SHOOT: number;
FORMUL_COEF_DELTA_FRIEND_COVER: number;
SUSPETION_POINT_DIST_CHECK: number;
MAX_BASE_REQUESTS_PER_PLAYER: number;
MAX_HOLD_REQUESTS_PER_PLAYER: number;
MAX_GO_TO_REQUESTS_PER_PLAYER: number;
MAX_COME_WITH_ME_REQUESTS_PER_PLAYER: number;
CORE_POINT_MAX_VALUE: number;
CORE_POINTS_MAX: number;
CORE_POINTS_MIN: number;
BORN_POISTS_FREE_ONLY_FAREST_BOT: boolean;
BORN_POINSTS_FREE_ONLY_FAREST_PLAYER: boolean;
SCAV_GROUPS_TOGETHER: boolean;
LAY_DOWN_ANG_SHOOT: number;
HOLD_REQUEST_TIME_SEC: number;
TRIGGERS_DOWN_TO_RUN_WHEN_MOVE: number;
MIN_DIST_TO_RUN_WHILE_ATTACK_MOVING: number;
MIN_DIST_TO_RUN_WHILE_ATTACK_MOVING_OTHER_ENEMIS: number;
MIN_DIST_TO_STOP_RUN: number;
JUMP_SPREAD_DIST: number;
LOOK_TIMES_TO_KILL: number;
COME_INSIDE_TIMES: number;
TOTAL_TIME_KILL: number;
TOTAL_TIME_KILL_AFTER_WARN: number;
MOVING_AIM_COEF: number;
VERTICAL_DIST_TO_IGNORE_SOUND: number;
DEFENCE_LEVEL_SHIFT: number;
MIN_DIST_CLOSE_DEF: number;
USE_ID_PRIOR_WHO_GO: boolean;
SMOKE_GRENADE_RADIUS_COEF: number;
GRENADE_PRECISION: number;
MAX_WARNS_BEFORE_KILL: number;
CARE_ENEMY_ONLY_TIME: number;
MIDDLE_POINT_COEF: number;
MAIN_TACTIC_ONLY_ATTACK: boolean;
LAST_DAMAGE_ACTIVE: number;
SHALL_DIE_IF_NOT_INITED: boolean;
CHECK_BOT_INIT_TIME_SEC: number;
WEAPON_ROOT_Y_OFFSET: number;
DELTA_SUPRESS_DISTANCE_SQRT: number;
DELTA_SUPRESS_DISTANCE: number;
WAVE_COEF_LOW: number;
WAVE_COEF_MID: number;
WAVE_COEF_HIGH: number;
WAVE_COEF_HORDE: number;
WAVE_ONLY_AS_ONLINE: boolean;
LOCAL_BOTS_COUNT: number;
AXE_MAN_KILLS_END: number;
}

View File

@ -0,0 +1,174 @@
export interface IBotType {
appearance: Appearance;
chances: Chances;
difficulty: Difficulties;
experience: Experience;
firstName: string[];
generation: Generation;
health: Health;
inventory: Inventory;
lastName: string[];
skills: Skills;
}
export interface Appearance {
body: string[];
feet: string[];
hands: string[];
head: string[];
voice: string[];
}
export interface Chances {
equipment: EquipmentChances;
mods: ModsChances;
}
export interface EquipmentChances {
ArmBand: number;
ArmorVest: number;
Backpack: number;
Earpiece: number;
Eyewear: number;
FaceCover: number;
FirstPrimaryWeapon: number;
Headwear: number;
Holster: number;
Pockets: number;
Scabbard: number;
SecondPrimaryWeapon: number;
SecuredContainer: number;
TacticalVest: number;
}
export interface ModsChances {
mod_charge: number;
mod_equipment: number;
mod_equipment_000: number;
mod_equipment_001: number;
mod_equipment_002: number;
mod_flashlight: number;
mod_foregrip: number;
mod_launcher: number;
mod_magazine: number;
mod_mount: number;
mod_mount_000: number;
mod_mount_001: number;
mod_muzzle: number;
mod_nvg: number;
mod_pistol_grip: number;
mod_reciever: number;
mod_scope: number;
mod_sight_front: number;
mod_sight_rear: number;
mod_stock: number;
mod_stock_000: number;
mod_stock_akms: number;
mod_tactical: number;
mod_tactical_000: number;
mod_tactical_001: number;
mod_tactical_002: number;
mod_tactical_003: number;
}
export interface Difficulties {
easy: Difficulty;
normal: Difficulty;
hard: Difficulty;
impossible: Difficulty;
}
export interface Difficulty {
Aiming: Record<string, string | number | boolean>;
Boss: Record<string, string | number | boolean>;
Change: Record<string, string | number | boolean>;
Core: Record<string, string | number | boolean>;
Cover: Record<string, string | number | boolean>;
Grenade: Record<string, string | number | boolean>;
Hearing: Record<string, string | number | boolean>;
Lay: Record<string, string | number | boolean>;
Look: Record<string, string | number | boolean>;
Mind: Record<string, string | number | boolean | string[]>;
Move: Record<string, string | number | boolean>;
Patrol: Record<string, string | number | boolean>;
Scattering: Record<string, string | number | boolean>;
Shoot: Record<string, string | number | boolean>;
}
export interface Experience {
aggressorBonus: number;
level: MinMax;
reward: MinMax;
standingForKill: number;
}
export interface Generation {
items: ItemMinMax;
}
export interface ItemMinMax {
grenades: MinMax;
healing: MinMax;
looseLoot: MinMax;
magazines: MinMax;
specialItems: MinMax;
}
export interface Health {
BodyParts: BodyPart[];
Energy: MinMax;
Hydration: MinMax;
Temperature: MinMax;
}
export interface BodyPart {
Chest: MinMax;
Head: MinMax;
LeftArm: MinMax;
LeftLeg: MinMax;
RightArm: MinMax;
RightLeg: MinMax;
Stomach: MinMax;
}
export interface MinMax {
max: number;
min: number;
}
export interface Inventory {
equipment: Equipment;
items: Items;
mods: Mods;
}
export interface Equipment {
ArmBand: Record<string, number>;
ArmorVest: Record<string, number>;
Backpack: Record<string, number>;
Earpiece: Record<string, number>;
Eyewear: Record<string, number>;
FaceCover: Record<string, number>;
FirstPrimaryWeapon: Record<string, number>;
Headwear: Record<string, number>;
Holster: Record<string, number>;
Pockets: Record<string, number>;
Scabbard: Record<string, number>;
SecondPrimaryWeapon: Record<string, number>;
SecuredContainer: Record<string, number>;
TacticalVest: Record<string, number>;
}
export interface Items {
Backpack: string[];
Pockets: string[];
SecuredContainer: string[];
SpecialLoot: string[];
TacticalVest: string[];
}
export declare type Mods = Record<string, Record<string, string[]>>;
export interface Skills {
Common: Common[];
Bonuses?: any;
Mastering: Mastering[];
Points: number;
}
export interface Mastering {
Id: string;
Progress: number;
max?: number;
min?: number;
}
export interface Common {
Id: string;
Progress: number;
PointsEarnedDuringSession?: number;
LastAccess?: number;
max?: number;
min?: number;
}

View File

@ -0,0 +1,33 @@
export interface ICustomizationItem {
_id: string;
_name: string;
_parent: string;
_type: string;
_props: Props;
_proto: string;
}
export interface Props {
Name: string;
ShortName: string;
Description: string;
Side: string[];
BodyPart: string;
AvailableAsDefault?: boolean;
Body: string;
Hands: string;
Feet: string;
Prefab: Prefab;
WatchPrefab: Prefab;
IntegratedArmorVest: boolean;
WatchPosition: Xyz;
WatchRotation: Xyz;
}
export interface Prefab {
path: string;
rcid: string;
}
export interface Xyz {
x: number;
y: number;
z: number;
}

View File

@ -0,0 +1,16 @@
export interface IHandbookBase {
Categories: Category[];
Items: HandbookItem[];
}
export interface Category {
Id: string;
ParentId?: string;
Icon: string;
Color: string;
Order: string;
}
export interface HandbookItem {
Id: string;
ParentId: string;
Price: number;
}

View File

@ -0,0 +1,108 @@
export interface Item {
_id: string;
_tpl: string;
parentId?: string;
slotId?: string;
location?: Location | number;
upd?: Upd;
}
export interface Upd {
OriginalStackObjectsCount?: number;
Togglable?: Togglable;
Map?: Map;
Tag?: Tag;
sptPresetId?: string;
FaceShield?: FaceShield;
StackObjectsCount?: number;
UnlimitedCount?: boolean;
Repairable?: Repairable;
FireMode?: FireMode;
SpawnedInSession?: boolean;
Light?: Light;
Key?: Key;
Resource?: Resource;
Sight?: Sight;
MedKit?: MedKit;
FoodDrink?: FoodDrink;
Dogtag?: Dogtag;
BuyRestrictionMax?: number;
BuyRestrictionCurrent?: number;
Foldable?: Foldable;
SideEffect?: SideEffect;
RepairKit?: RepairKit;
}
export interface Togglable {
On: boolean;
}
export interface Map {
Markers: MapMarker[];
}
export interface MapMarker {
X: number;
Y: number;
}
export interface Tag {
Color: number;
Name: string;
}
export interface FaceShield {
Hits: number;
}
export interface Repairable {
Durability: number;
MaxDurability: number;
}
export interface MedKit {
HpResource: number;
}
export interface Sight {
ScopesCurrentCalibPointIndexes: number[];
ScopesSelectedModes: number[];
SelectedScope: number;
}
export interface Foldable {
Folded: boolean;
}
export interface FireMode {
FireMode: string;
}
export interface FoodDrink {
HpPercent: number;
}
export interface Key {
NumberOfUsages: number;
}
export interface Resource {
Value: number;
UnitsConsumed: number;
}
export interface Light {
IsActive: boolean;
SelectedMode: number;
}
export interface Dogtag {
AccountId: string;
ProfileId: string;
Nickname: string;
Side: string;
Level: number;
Time: string;
Status: string;
KillerAccountId: string;
KillerProfileId: string;
KillerName: string;
WeaponName: string;
}
export interface Location {
x: number;
y: number;
r: string | number;
isSearched?: boolean;
rotation?: string;
}
export interface SideEffect {
Value: number;
}
export interface RepairKit {
Resource: number;
}

View File

@ -0,0 +1,10 @@
export interface ILocationsBase {
locations: Locations;
paths: Path[];
}
export interface Locations {
}
export interface Path {
Source: string;
Destination: string;
}

View File

@ -0,0 +1,64 @@
import { Item } from "./IItem";
export interface ILootBase {
staticAmmo: Record<string, IStaticAmmoDetails[]>;
staticContainers: Record<string, IStaticContainerDetails>;
staticLoot: Record<string, IStaticLootDetails>;
}
export interface IStaticAmmoDetails {
tpl: string;
relativeProbability: number;
}
export interface IStaticContainerDetails {
staticWeapons: IStaticWeaponProps[];
staticContainers: IStaticContainerProps[];
staticForced: IStaticForcedProps[];
}
export interface IStaticWeaponProps {
Id: string;
IsStatic: boolean;
useGravity: boolean;
randomRotation: boolean;
Position: Xyz;
Rotation: Xyz;
IsGroupPosition: boolean;
GroupPositions: any[];
Root: string;
Items: Item[];
}
export interface IStaticContainerProps {
Id: string;
IsStatic: boolean;
useGravity: boolean;
randomRotation: boolean;
Position: Xyz;
Rotation: Xyz;
IsGroupPosition: boolean;
GroupPositions: any[];
Root: any;
Items: StaticItem[];
}
export interface Xyz {
x: number;
y: number;
z: number;
}
export interface StaticItem {
_id: any;
_tpl: string;
}
export interface IStaticForcedProps {
containerId: string;
itemTpl: string;
}
export interface IStaticLootDetails {
itemcountDistribution: ItemCountDistribution[];
itemDistribution: ItemDistribution[];
}
export interface ItemCountDistribution {
count: number;
relativeProbability: number;
}
export interface ItemDistribution {
tpl: string;
relativeProbability: number;
}

View File

@ -0,0 +1,76 @@
import { Item } from "./IItem";
export interface IQuest {
QuestName: string;
_id: string;
canShowNotificationsInGame: boolean;
conditions: Conditions;
description: string;
failMessageText: string;
name: string;
note: string;
traderId: string;
location: string;
image: string;
type: string;
isKey: boolean;
restartable: boolean;
instantComplete: boolean;
secretQuest: boolean;
startedMessageText: string;
successMessageText: string;
templateId: string;
rewards: Rewards;
status: string;
KeyQuest: boolean;
changeQuestMessageText: string;
}
export interface Conditions {
Started: AvailableForConditions[];
AvailableForFinish: AvailableForConditions[];
AvailableForStart: AvailableForConditions[];
Success: AvailableForConditions[];
Fail: AvailableForConditions[];
}
export interface AvailableForConditions {
_parent: string;
_props: AvailableForProps;
dynamicLocale: boolean;
}
export interface AvailableForProps {
id: string;
index: number;
parentId: string;
dynamicLocale: boolean;
value?: number;
compareMethod?: string;
visibilityConditions?: VisibilityCondition[];
target?: string;
status?: number[];
}
export interface VisibilityCondition {
id: string;
value: number;
dynamicLocale: boolean;
oneSessionOnly: boolean;
}
export interface Rewards {
AvailableForStart: Reward[];
AvailableForFinish: Reward[];
Started: Reward[];
Success: Reward[];
Fail: Reward[];
FailRestartable: Reward[];
Expired: Reward[];
}
export interface Reward {
value?: string;
id: string;
type: string;
index: number;
target?: string;
items?: Item[];
loyaltyLevel?: number;
traderId?: string;
unknown?: boolean;
findInRaid?: boolean;
}

View File

@ -0,0 +1,219 @@
import { Item } from "./IItem";
export interface IReward {
index: number;
type: string;
value: number;
target?: string;
items?: Item[];
}
export interface IRepeatableQuestDatabase {
templates: ITemplates;
rewards: IRewardOptions;
data: IOptions;
samples: ISampleQuests[];
}
export interface ITemplates {
Elimination: IRepeatableQuest;
Completion: IRepeatableQuest;
Exploration: IRepeatableQuest;
}
export interface IPmcDataRepeatableQuest {
id?: string;
name: string;
activeQuests: IRepeatableQuest[];
inactiveQuests: IRepeatableQuest[];
endTime: number;
changeRequirement: TChangeRequirementRecord;
}
export declare type TChangeRequirementRecord = Record<string, IChangeRequirement>;
export interface IChangeRequirement {
changeCost: IChangeCost[];
changeStandingCost: number;
}
export interface IChangeCost {
templateId: string;
count: number;
}
export interface IRepeatableQuest {
_id: any;
traderId: string;
location: any;
image: string;
type: string;
isKey: boolean;
restartable: boolean;
instantComplete: boolean;
secretQuest: boolean;
canShowNotificationsInGame: boolean;
rewards: IRewards;
conditions: IConditions;
name: string;
note: string;
description: string;
successMessageText: string;
failMessageText: string;
startedMessageText: string;
changeQuestMessageText: string;
templateId: string;
changeCost: IChangeCost[];
changeStandingCost: number;
}
export interface IRewards {
Started: IReward[];
Success: IReward[];
Fail: IReward[];
}
export interface IConditions {
AvailableForStart: any[];
AvailableForFinish: IAvailableFor[];
Fail: any[];
}
export interface IAvailableFor {
_props: IAvailableForProps;
_parent: string;
dynamicLocale: boolean;
}
export interface IAvailableForProps {
id: string;
parentId: string;
dynamicLocale: boolean;
index: number;
visibilityConditions: IVisibilityCondition[];
value: number;
}
export interface IVisibilityCondition {
id: string;
oneSessionOnly: boolean;
value: number;
index: number;
dynamicLocale: boolean;
}
export interface IAvailableForPropsCounter extends IAvailableForProps {
type: string;
oneSessionOnly: boolean;
doNotResetIfCounterCompleted: boolean;
counter: ICounter;
}
export interface ICounter {
id: string;
conditions: ICondition[];
}
export interface ICondition {
_props: IConditionProps;
_parent: string;
}
export interface IConditionProps {
id: string;
dynamicLocale: boolean;
}
export interface IElimination extends IRepeatableQuest {
conditions: IEliminationConditions;
}
export interface IEliminationConditions extends IConditions {
AvailableForFinish: IEliminationAvailableFor[];
}
export interface IEliminationAvailableFor extends IAvailableFor {
_props: IEliminationAvailableForProps;
}
export interface IEliminationAvailableForProps extends IAvailableForPropsCounter {
counter: IEliminationCounter;
}
export interface IEliminationCounter extends ICounter {
conditions: IEliminationCondition[];
}
export interface IEliminationCondition extends ICondition {
_props: ILocationConditionProps | IKillConditionProps;
}
export interface IExploration extends IRepeatableQuest {
conditions: IExplorationConditions;
}
export interface IExplorationConditions extends IConditions {
AvailableForFinish: IExplorationAvailableFor[];
}
export interface IExplorationAvailableFor extends IAvailableFor {
_props: IExplorationAvailableForProps;
}
export interface IExplorationAvailableForProps extends IAvailableForPropsCounter {
counter: IExplorationCounter;
}
export interface IExplorationCounter extends ICounter {
conditions: IExplorationCondition[];
}
export interface IExplorationCondition extends ICondition {
_props: ILocationConditionProps | IExitStatusConditionProps | IExitNameConditionProps;
}
export interface ICompletion extends IRepeatableQuest {
conditions: ICompletionConditions;
}
export interface ICompletionConditions extends IConditions {
AvailableForFinish: ICompletionAvailableFor[];
}
export interface ICompletionAvailableFor extends IAvailableFor {
_props: ICompletionAvailableForProps;
}
export interface ICompletionAvailableForProps extends IAvailableForProps {
target: string[];
minDurability: number;
maxDurability: number;
dogtagLevel: number;
onlyFoundInRaid: boolean;
}
export interface ILocationConditionProps extends IConditionProps {
target: string[];
}
export interface IKillConditionProps extends IConditionProps {
target: string;
value: number;
savageRole?: string[];
bodyPart?: string[];
distance?: IDistanceCheck;
}
export interface IDistanceCheck {
compareMethod: string;
value: number;
}
export interface IExitStatusConditionProps extends IConditionProps {
status: string[];
}
export interface IExitNameConditionProps extends IConditionProps {
exitName: string;
}
export interface IRewardOptions {
itemsBlacklist: string[];
}
export interface IOptions {
Completion: ICompletionFilter;
}
export interface ICompletionFilter {
itemsBlacklist: ItemsBlacklist[];
itemsWhitelist: ItemsWhitelist[];
}
export interface ItemsBlacklist {
minPlayerLevel: number;
itemIds: string[];
}
export interface ItemsWhitelist {
minPlayerLevel: number;
itemIds: string[];
}
export interface ISampleQuests {
_id: string;
traderId: string;
location: string;
image: string;
type: string;
isKey: boolean;
restartable: boolean;
instantComplete: boolean;
secretQuest: boolean;
canShowNotificationsInGame: boolean;
rewards: IRewards;
conditions: IConditions;
name: string;
note: string;
description: string;
successMessageText: string;
failMessageText: string;
startedMessageText: string;
templateId: string;
}

View File

@ -0,0 +1,401 @@
export interface ITemplateItem {
_id: string;
_name: string;
_parent: string;
_type: string;
_props: Props;
_proto: string;
}
export interface Props {
Name: string;
ShortName: string;
Description: string;
Weight: number;
BackgroundColor: string;
Width: number;
Height: number;
StackMaxSize: number;
Rarity?: string;
SpawnChance?: number;
CreditsPrice?: number;
ItemSound: string;
Prefab: Prefab;
UsePrefab: Prefab;
StackObjectsCount: number;
NotShownInSlot: boolean;
ExaminedByDefault: boolean;
ExamineTime: number;
IsUndiscardable: boolean;
IsUnsaleable: boolean;
IsUnbuyable: boolean;
IsUngivable: boolean;
IsLockedafterEquip: boolean;
QuestItem: boolean;
LootExperience: number;
ExamineExperience: number;
HideEntrails: boolean;
RepairCost: number;
RepairSpeed: number;
ExtraSizeLeft: number;
ExtraSizeRight: number;
ExtraSizeUp: number;
ExtraSizeDown: number;
ExtraSizeForceAdd: boolean;
MergesWithChildren: boolean;
CanSellOnRagfair: boolean;
CanRequireOnRagfair: boolean;
ConflictingItems: string[];
DiscardLimit: number;
Unlootable: boolean;
UnlootableFromSlot: string;
UnlootableFromSide: string[];
AnimationVariantsNumber: number;
DiscardingBlock: boolean;
RagFairCommissionModifier: number;
IsAlwaysAvailableForInsurance: boolean;
Grids: Grid[];
Slots: Slot[];
CanPutIntoDuringTheRaid: boolean;
CantRemoveFromSlotsDuringRaid: string[];
weapClass: string;
weapUseType: string;
ammoCaliber: string;
Durability: number;
MaxDurability: number;
OperatingResource: number;
RepairComplexity: number;
durabSpawnMin: number;
durabSpawnMax: number;
isFastReload: boolean;
RecoilForceUp: number;
RecoilForceBack: number;
Convergence: number;
RecoilAngle: number;
weapFireType: string[];
RecolDispersion: number;
SingleFireRate: number;
CanQueueSecondShot: boolean;
bFirerate: number;
Ergonomics: number;
Velocity: number;
bEffDist: number;
bHearDist: number;
isChamberLoad: boolean;
chamberAmmoCount: number;
isBoltCatch: boolean;
defMagType: string;
defAmmo: string;
AdjustCollimatorsToTrajectory: boolean;
shotgunDispersion: number;
Chambers: Chamber[];
CameraRecoil: number;
CameraSnap: number;
ReloadMode: string;
CenterOfImpact: number;
AimPlane: number;
DeviationCurve: number;
DeviationMax: number;
Foldable: boolean;
Retractable: boolean;
TacticalReloadStiffnes: Xyz;
TacticalReloadFixation: number;
RecoilCenter: Xyz;
RotationCenter: Xyz;
RotationCenterNoStock: Xyz;
SizeReduceRight: number;
FoldedSlot: string;
CompactHandling: boolean;
SightingRange: number;
MinRepairDegradation: number;
MaxRepairDegradation: number;
MinRepairKitDegradation: number;
MaxRepairKitDegradation: number;
IronSightRange: number;
MustBoltBeOpennedForExternalReload: boolean;
MustBoltBeOpennedForInternalReload: boolean;
BoltAction: boolean;
HipAccuracyRestorationDelay: number;
HipAccuracyRestorationSpeed: number;
HipInnaccuracyGain: number;
ManualBoltCatch: boolean;
BurstShotsCount: number;
BaseMalfunctionChance: number;
AllowJam: boolean;
AllowFeed: boolean;
AllowMisfire: boolean;
AllowSlide: boolean;
DurabilityBurnRatio: number;
HeatFactorGun: number;
CoolFactorGun: number;
CoolFactorGunMods: number;
HeatFactorByShot: number;
AllowOverheat: boolean;
DoubleActionAccuracyPenalty: number;
RecoilPosZMult: number;
ShotgunDispersion: number;
StackMinRandom: number;
StackMaxRandom: number;
StackSlots: StackSlot[];
SearchSound: string;
BlocksArmorVest: boolean;
RigLayoutName: string;
armorZone: string[];
armorClass: number;
speedPenaltyPercent: number;
mousePenalty: number;
weaponErgonomicPenalty: number;
BluntThroughput: number;
ArmorMaterial: string;
medUseTime: number;
medEffectType: string;
MaxHpResource: number;
hpResourceRate: number;
StimulatorBuffs: string;
effects_health: EffectsHealth;
effects_damage: EffectsDamage;
knifeHitDelay: number;
knifeHitSlashRate: number;
knifeHitStabRate: number;
knifeHitRadius: number;
knifeHitSlashDam: number;
knifeHitStabDam: number;
knifeDurab: number;
PrimaryDistance: number;
SecondryDistance: number;
SlashPenetration: number;
StabPenetration: number;
PrimaryConsumption: number;
SecondryConsumption: number;
DeflectionConsumption: number;
MaxResource: number;
AppliedTrunkRotation: Xyz;
AppliedHeadRotation: Xyz;
DisplayOnModel: boolean;
AdditionalAnimationLayer: number;
StaminaBurnRate: number;
ColliderScaleMultiplier: Xyz;
ammoType: string;
InitialSpeed: number;
BallisticCoeficient: number;
BulletMassGram: number;
BulletDiameterMilimeters: number;
Damage: number;
ammoAccr: number;
ammoRec: number;
ammoDist: number;
buckshotBullets: number;
PenetrationPower: number;
PenetrationPowerDiviation: number;
ammoHear: number;
ammoSfx: string;
MisfireChance: number;
MinFragmentsCount: number;
MaxFragmentsCount: number;
ammoShiftChance: number;
casingName: string;
casingEjectPower: number;
casingMass: number;
casingSounds: string;
ProjectileCount: number;
PenetrationChance: number;
RicochetChance: number;
FragmentationChance: number;
Deterioration: number;
SpeedRetardation: number;
Tracer: boolean;
TracerColor: string;
TracerDistance: number;
ArmorDamage: number;
Caliber: string;
StaminaBurnPerDamage: number;
HeavyBleedingDelta: number;
LightBleedingDelta: number;
ShowBullet: boolean;
HasGrenaderComponent: boolean;
FuzeArmTimeSec: number;
ExplosionStrength: number;
MinExplosionDistance: number;
MaxExplosionDistance: number;
FragmentsCount: number;
FragmentType: string;
ShowHitEffectOnExplode: boolean;
ExplosionType: string;
AmmoLifeTimeSec: number;
Contusion: Contusion;
ArmorDistanceDistanceDamage: Xyz;
Blindness: Xyz;
IsLightAndSoundShot: boolean;
LightAndSoundShotAngle: number;
LightAndSoundShotSelfContusionTime: number;
LightAndSoundShotSelfContusionStrength: number;
MalfMisfireChance: number;
DurabilityBurnModificator: number;
HeatFactor: number;
MalfFeedChance: number;
Accuracy: number;
Recoil: number;
Loudness: number;
EffectiveDistance: number;
RaidModdable: boolean;
ToolModdable: boolean;
BlocksFolding: boolean;
BlocksCollapsible: boolean;
IsAnimated: boolean;
HasShoulderContact: boolean;
DoubleActionAccuracyPenaltyMult: number;
magAnimationIndex: number;
Cartridges: Cartridge[];
CanFast: boolean;
CanHit: boolean;
CanAdmin: boolean;
LoadUnloadModifier: number;
CheckTimeModifier: number;
CheckOverride: number;
ReloadMagType: string;
VisibleAmmoRangesString: string;
MalfunctionChance: number;
TagColor: number;
TagName: string;
MaximumNumberOfUsage: number;
CustomAimPlane: string;
sightModType: string;
aimingSensitivity: number;
SightModesCount: number;
OpticCalibrationDistances: number[];
ScopesCount: number;
AimSensitivity: number[][];
ModesCount: number[];
Zooms: number[][];
CalibrationDistances: number[][];
Intensity: number;
Mask: string;
MaskSize: number;
NoiseIntensity: number;
NoiseScale: number;
Color: Color;
DiffuseIntensity: number;
HasHinge: boolean;
Resource?: number;
CoolFactor?: number;
foodUseTime?: number;
foodEffectType?: string;
MaxRepairResource: number;
RepairQuality: number;
RepairType: string;
TargetItemFilter: string[];
apResource: number;
krResource: number;
}
export interface Prefab {
path: string;
rcid: string;
}
export interface Grid {
_name: string;
_id: string;
_parent: string;
_props: GridProps;
_proto: string;
}
export interface GridProps {
filters: GridFilter[];
cellsH: number;
cellsV: number;
minCount: number;
maxCount: number;
maxWeight: number;
isSortingTable: boolean;
}
export interface GridFilter {
Filter: string[];
ExcludedFilter: string[];
}
export interface Slot {
_name: string;
_id: string;
_parent: string;
_props: SlotProps;
_required: boolean;
_mergeSlotWithChildren: boolean;
_proto: string;
}
export interface SlotProps {
filters: Filter[];
}
export interface Chamber {
_name: string;
_id: string;
_parent: string;
_props: ChamberProps;
_required: boolean;
_mergeSlotWithChildren: boolean;
_proto: string;
}
export interface ChamberProps {
filters: FilterProps[];
}
export interface FilterProps {
Filter: string[];
}
export interface Xyz {
x: number;
y: number;
z: number;
}
export interface StackSlot {
_name?: string;
_id: string;
_sptTpl: string;
parent: string;
location: any;
slotId: string;
_max_count: number;
_props?: StackSlotProps;
_proto?: string;
upd: any;
}
export interface StackSlotProps {
filters: Filter[];
}
export interface EffectsHealth {
Hydration: Hydration;
}
export interface Hydration {
value: number;
}
export interface EffectsDamage {
Pain: Pain;
Contusion: Contusion;
}
export interface Pain {
delay: number;
duration: number;
fadeOut: number;
}
export interface Contusion {
delay: number;
duration: number;
fadeOut: number;
}
export interface Cartridge {
_name: string;
_id: string;
_parent: string;
_max_count: number;
_props: CartridgeProps;
_proto: string;
}
export interface CartridgeProps {
filters: Filter[];
}
export interface Filter {
Shift?: number;
Filter: string[];
AnimationIndex?: number;
}
export interface Color {
r: number;
g: number;
b: number;
a: number;
}

View File

@ -0,0 +1,90 @@
import { Item } from "./IItem";
export interface ITrader {
assort: ITraderAssort;
base: ITraderBase;
dialogue?: Record<string, string[]>;
questassort: Record<string, Record<string, string>>;
suits?: ISuit[];
}
export interface ITraderBase {
refreshAssort: boolean;
_id: string;
avatar: string;
balance_dol: number;
balance_eur: number;
balance_rub: number;
buyer_up: boolean;
currency: string;
customization_seller: boolean;
discount: number;
discount_end: number;
gridHeight: number;
insurance: Insurance;
location: string;
loyaltyLevels: LoyaltyLevel[];
medic: boolean;
name: string;
nextResupply: number;
nickname: string;
repair: Repair;
sell_category: string[];
surname: string;
unlockedByDefault: boolean;
}
export interface Insurance {
availability: boolean;
excluded_category: string[];
max_return_hour: number;
max_storage_time: number;
min_payment: number;
min_return_hour: number;
}
export interface LoyaltyLevel {
buy_price_coef: number;
exchange_price_coef: number;
heal_price_coef: number;
insurance_price_coef: number;
minLevel: number;
minSalesSum: number;
minStanding: number;
repair_price_coef: number;
}
export interface Repair {
availability: boolean;
currency: string;
currency_coefficient: number;
excluded_category: string[];
excluded_id_list: any[];
quality: string;
}
export interface ITraderAssort {
nextResupply?: number;
items: Item[];
barter_scheme: Record<string, IBarterScheme[][]>;
loyal_level_items: Record<string, number>;
}
export interface IBarterScheme {
count: number;
_tpl: string;
onlyFunctional?: boolean;
}
export interface ISuit {
_id: string;
tid: string;
suiteId: string;
isActive: boolean;
requirements: Requirements;
}
export interface Requirements {
loyaltyLevel: number;
profileLevel: number;
standing: number;
skillRequirements: string[];
questRequirements: string[];
itemRequirements: ItemRequirement[];
}
export interface ItemRequirement {
count: number;
_tpl: string;
onlyFunctional: boolean;
}

View File

@ -0,0 +1,10 @@
export interface IBuyClothingRequestData {
Action: "CustomizationBuy";
offer: string;
items: Item[];
}
export interface Item {
del: boolean;
id: string;
count: number;
}

View File

@ -0,0 +1,4 @@
export interface IWearClothingRequestData {
Action: "CustomizationWear";
suites: string[];
}

View File

@ -0,0 +1,3 @@
export interface IFriendRequestData {
to: string;
}

View File

@ -0,0 +1,3 @@
export interface IGetAllAttachmentsRequestData {
dialogId: string;
}

View File

@ -0,0 +1,6 @@
import { Message } from "../profile/IAkiProfile";
export interface IGetAllAttachmentsResponse {
messages: Message[];
profiles: any[];
hasMessagesWithRewards: boolean;
}

View File

@ -0,0 +1,3 @@
export interface IGetChatServerListRequestData {
VersionId: string;
}

View File

@ -0,0 +1,16 @@
import { MemberCategory } from "../common/MemberCategory";
export interface IGetFriendListDataResponse {
Friends: Friend[];
Ignore: any[];
InIgnoreList: any[];
}
export interface Friend {
_id: string;
Info: Info;
}
export interface Info {
Nickname: string;
Side: string;
Level: number;
MemberCategory: MemberCategory;
}

View File

@ -0,0 +1,3 @@
export interface IGetMailDialogInfoRequestData {
dialogId: string;
}

View File

@ -0,0 +1,4 @@
export interface IGetMailDialogListRequestData {
limit: number;
offset: number;
}

View File

@ -0,0 +1,7 @@
import { MessageType } from "../profile/IAkiProfile";
export interface IGetMailDialogViewRequestData {
type: MessageType;
dialogId: string;
limit: number;
time: number;
}

View File

@ -0,0 +1,7 @@
import { IPmcData } from "../common/IPmcData";
import { Message } from "../profile/IAkiProfile";
export interface IGetMailDialogViewResponseData {
messages: Message[];
profiles: IPmcData[];
hasMessagesWithRewards: boolean;
}

View File

@ -0,0 +1,3 @@
export interface IPinDialogRequestData {
dialogId: string;
}

View File

@ -0,0 +1,3 @@
export interface IRemoveDialogRequestData {
dialogId: string;
}

View File

@ -0,0 +1,7 @@
import { MessageType } from "../profile/IAkiProfile";
export interface ISendMessageRequest {
dialogId: string;
type: MessageType;
text: string;
replyTo: string;
}

View File

@ -0,0 +1,3 @@
export interface ISetDialogReadRequestData {
dialogs: string[];
}

View File

@ -0,0 +1,19 @@
export interface IGameConfigResponse {
aid: string;
lang: string;
languages: Record<string, string>;
ndaFree: boolean;
taxonomy: number;
activeProfileId: string;
backend: Backend;
utc_time: number;
totalInGame: number;
reportAvailable: boolean;
twitchEventMember: boolean;
}
export interface Backend {
Trading: string;
Messaging: string;
Main: string;
RagFair: string;
}

View File

@ -0,0 +1,3 @@
export interface IGameEmptyCrcRequestData {
crc: number;
}

View File

@ -0,0 +1,11 @@
export interface IVersionValidateRequestData {
version: Version;
develop: boolean;
}
export interface Version {
major: string;
minor: string;
game: string;
backend: string;
taxonomy: string;
}

View File

@ -0,0 +1,29 @@
export interface IHealthTreatmentRequestData {
Action: "RestoreHealth";
trader: string;
items: Item[];
difference: Difference;
timestamp: number;
}
export interface Item {
id: string;
count: number;
}
export interface Difference {
BodyParts: BodyParts;
Energy: number;
Hydration: number;
}
export interface BodyParts {
Head: BodyPart;
Chest: BodyPart;
Stomach: BodyPart;
LeftArm: BodyPart;
RightArm: BodyPart;
LeftLeg: BodyPart;
RightLeg: BodyPart;
}
export interface BodyPart {
Health: number;
Effects: string[];
}

View File

@ -0,0 +1,7 @@
import { IBaseInteractionRequestData } from "../common/request/IBaseInteractionRequestData";
export interface IOffraidEatRequestData extends IBaseInteractionRequestData {
Action: "Eat";
item: string;
count: number;
time: number;
}

View File

@ -0,0 +1,18 @@
import { IBaseInteractionRequestData } from "../common/request/IBaseInteractionRequestData";
export interface IOffraidHealRequestData extends IBaseInteractionRequestData {
Action: "Heal";
item: string;
part: BodyPart;
count: number;
time: number;
}
export declare enum BodyPart {
Head = 0,
Chest = 1,
Stomach = 2,
LeftArm = 3,
RightArm = 4,
LeftLeg = 5,
RightLeg = 6,
Common = 7
}

View File

@ -0,0 +1,21 @@
export interface ISyncHealthRequestData {
Health: Health;
IsAlive: boolean;
Hydration?: number;
Energy?: number;
Temperature?: number;
}
export interface Health {
Head?: BodyPartHealth;
Chest?: BodyPartHealth;
Stomach?: BodyPartHealth;
LeftArm?: BodyPartHealth;
RightArm?: BodyPartHealth;
LeftLeg?: BodyPartHealth;
RightLeg?: BodyPartHealth;
}
export interface BodyPartHealth {
Maximum: number;
Current: number;
Effects: Record<string, number>;
}

View File

@ -0,0 +1,25 @@
export declare enum HideoutAreasEnum {
NOTSET = -1,
VENTS = 0,
SECURITY = 1,
LAVATORY = 2,
STASH = 3,
GENERATOR = 4,
HEATING = 5,
WATER_COLLECTOR = 6,
MEDSTATION = 7,
NUTRITION_UNIT = 8,
REST_SPACE = 9,
WORKBENCH = 10,
INTEL_CENTER = 11,
SHOOTING_RANGE = 12,
LIBRARY = 13,
SCAV_CASE = 14,
ILLUMINATION = 15,
PLACE_OF_FAME = 16,
AIR_FILTERING = 17,
SOLAR_POWER = 18,
BOOZE_GENERATOR = 19,
BITCOIN_FARM = 20,
CHRISTMAS_TREE = 21
}

View File

@ -0,0 +1,5 @@
export interface HideoutUpgradeCompleteRequestData {
Action: string;
areaType: number;
timestamp: number;
}

View File

@ -0,0 +1,40 @@
export interface IHideoutArea {
_id: string;
type: number;
enabled: boolean;
needsFuel: boolean;
takeFromSlotLocked: boolean;
craftGivesExp: boolean;
stages: Record<string, Stage>;
}
export interface Stage {
requirements: Requirement[];
bonuses: StageBonus[];
slots: number;
constructionTime: number;
description: string;
}
export interface Requirement {
areaType?: number;
requiredLevel?: number;
type: string;
templateId?: string;
count?: number;
isFunctional?: boolean;
traderId?: string;
loyaltyLevel?: number;
skillName?: string;
skillLevel?: number;
}
export interface StageBonus {
value: number;
passive: boolean;
production: boolean;
visible: boolean;
skillType?: string;
type: string;
filter?: string[];
icon?: string;
id?: string;
templateId?: string;
}

View File

@ -0,0 +1,5 @@
export interface IHideoutContinousProductionStartRequestData {
Action: "HideoutContinuousProductionStart";
recipeId: string;
timestamp: number;
}

View File

@ -0,0 +1,20 @@
export interface IHideoutProduction {
_id: string;
areaType: number;
requirements: Requirement[];
productionTime: number;
boosters: any;
endProduct: string;
continuous: boolean;
count: number;
productionLimitCount: number;
}
export interface Requirement {
templateId?: string;
count?: number;
isFunctional?: boolean;
type: string;
areaType?: number;
requiredLevel?: number;
resource?: number;
}

View File

@ -0,0 +1,10 @@
export interface IHideoutPutItemInRequestData {
Action: "HideoutPutItemsInAreaSlots";
areaType: number;
items: Record<string, ItemDetails>;
timestamp: number;
}
export interface ItemDetails {
count: number;
id: string;
}

View File

@ -0,0 +1,10 @@
export interface IHideoutRequestData {
Action: "HideoutUpgrade";
areaType: number;
items: HideoutItem[];
timestamp: number;
}
export interface HideoutItem {
count: number;
id: string;
}

View File

@ -0,0 +1,21 @@
export interface IHideoutScavCase {
_id: string;
ProductionTime: number;
Requirements: Requirement[];
EndProducts: EndProducts;
}
export interface Requirement {
templateId: string;
count: number;
isFunctional: boolean;
type: string;
}
export interface EndProducts {
Common: MinMax;
Rare: MinMax;
Superrare: MinMax;
}
export interface MinMax {
min: string;
max: string;
}

View File

@ -0,0 +1,15 @@
export interface IHideoutScavCaseStartRequestData {
Action: "HideoutScavCaseProductionStart";
recipeId: string;
items: HideoutItem[];
tools: Tool[];
timestamp: number;
}
export interface HideoutItem {
id: string;
count: number;
}
export interface Tool {
id: string;
count: number;
}

View File

@ -0,0 +1,6 @@
export interface IHideoutSettingsBase {
generatorSpeedWithoutFuel: number;
generatorFuelFlowRate: number;
airFilterUnitFlowRate: number;
gpuBoostRate: number;
}

View File

@ -0,0 +1,10 @@
export interface IHideoutSingleProductionStartRequestData {
Action: "HideoutSingleProductionStart";
recipeId: string;
items: Item[];
timestamp: number;
}
export interface Item {
id: string;
count: number;
}

View File

@ -0,0 +1,6 @@
export interface IHideoutTakeItemOutRequestData {
Action: "HideoutTakeItemsFromAreaSlots";
areaType: number;
slots: number[];
timestamp: number;
}

View File

@ -0,0 +1,5 @@
export interface IHideoutTakeProductionRequestData {
Action: "HideoutTakeProduction";
recipeId: string;
timestamp: number;
}

View File

@ -0,0 +1,6 @@
export interface IHideoutToggleAreaRequestData {
Action: "HideoutToggleArea";
areaType: number;
enabled: boolean;
timestamp: number;
}

View File

@ -0,0 +1,5 @@
export interface IHideoutUpgradeCompleteRequestData {
Action: "HideoutUpgradeComplete";
areaType: number;
timestamp: number;
}

View File

@ -0,0 +1,10 @@
export interface IHideoutUpgradeRequestData {
Action: "HideoutUpgrade";
areaType: number;
items: HideoutItem[];
timestamp: number;
}
export interface HideoutItem {
count: number;
id: string;
}

View File

@ -0,0 +1,5 @@
export interface IGetBodyResponseData<Type> {
err: number;
errmsg: any;
(data: Type): Type;
}

View File

@ -0,0 +1,5 @@
export interface INullResponseData {
err: number;
errmsg: any;
data: null;
}

View File

@ -0,0 +1,5 @@
export interface IRegisterPlayerRequestData {
crc: number;
locationId: string;
variantId: number;
}

View File

@ -0,0 +1,8 @@
import { IPmcData } from "../common/IPmcData";
import { ISyncHealthRequestData } from "../health/ISyncHealthRequestData";
export interface ISaveProgressRequestData {
exit: string;
profile: IPmcData;
isPlayerScav: boolean;
health: ISyncHealthRequestData;
}

View File

@ -0,0 +1,4 @@
export interface IGetInsuranceCostRequestData {
traders: string[];
items: string[];
}

View File

@ -0,0 +1,6 @@
import { IBaseInteractionRequestData } from "../common/request/IBaseInteractionRequestData";
export interface IInsureRequestData extends IBaseInteractionRequestData {
Action: "Insure";
tid: string;
items: string[];
}

View File

@ -0,0 +1,6 @@
import { Container, IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData";
export interface IInventoryAddRequestData extends IInventoryBaseActionRequestData {
Action: "Add";
item: string;
container: Container;
}

View File

@ -0,0 +1,27 @@
import { IBaseInteractionRequestData } from "../common/request/IBaseInteractionRequestData";
export interface IInventoryBaseActionRequestData extends IBaseInteractionRequestData {
}
export interface To {
id: string;
container: string;
location?: ToLocation | number;
}
export interface ToLocation {
x: number;
y: number;
r: string;
rotation?: string;
isSearched: boolean;
}
export interface Container {
id: string;
container: string;
location: Location | number;
}
export interface Location {
x: number;
y: number;
r: string;
rotation?: string;
isSearched: boolean;
}

View File

@ -0,0 +1,6 @@
import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData";
export interface IInventoryBindRequestData extends IInventoryBaseActionRequestData {
Action: "Bind";
item: string;
index: number;
}

View File

@ -0,0 +1,12 @@
import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData";
export interface IInventoryCreateMarkerRequestData extends IInventoryBaseActionRequestData {
Action: "CreateMapMarker";
item: string;
mapMarker: MapMarker;
}
export interface MapMarker {
Type: string;
X: number;
Y: number;
Note: string;
}

View File

@ -0,0 +1,7 @@
import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData";
export interface IInventoryDeleteMarkerRequestData extends IInventoryBaseActionRequestData {
Action: "DeleteMapMarker";
item: string;
X: number;
Y: number;
}

View File

@ -0,0 +1,14 @@
import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData";
export interface IInventoryEditMarkerRequestData extends IInventoryBaseActionRequestData {
Action: "EditMapMarker";
item: string;
X: number;
Y: number;
mapMarker: MapMarker;
}
export interface MapMarker {
Type: string;
X: number;
Y: number;
Note: string;
}

View File

@ -0,0 +1,10 @@
import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData";
export interface IInventoryExamineRequestData extends IInventoryBaseActionRequestData {
Action: "Examine";
item: string;
fromOwner: IFromOwner;
}
export interface IFromOwner {
id: string;
type: string;
}

View File

@ -0,0 +1,6 @@
import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData";
export interface IInventoryFoldRequestData extends IInventoryBaseActionRequestData {
Action: "Fold";
item: string;
value: boolean;
}

View File

@ -0,0 +1,6 @@
import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData";
export interface IInventoryMergeRequestData extends IInventoryBaseActionRequestData {
Action: "Merge";
item: string;
with: string;
}

View File

@ -0,0 +1,6 @@
import { IInventoryBaseActionRequestData, To } from "./IInventoryBaseActionRequestData";
export interface IInventoryMoveRequestData extends IInventoryBaseActionRequestData {
Action: "Move";
item: string;
to: To;
}

View File

@ -0,0 +1,5 @@
import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData";
export interface IInventoryReadEncyclopediaRequestData extends IInventoryBaseActionRequestData {
Action: "ReadEncyclopedia";
ids: string[];
}

View File

@ -0,0 +1,5 @@
import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData";
export interface IInventoryRemoveRequestData extends IInventoryBaseActionRequestData {
Action: "Remove";
item: string;
}

View File

@ -0,0 +1,20 @@
import { Upd } from "../common/tables/IItem";
import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData";
export interface IInventorySortRequestData extends IInventoryBaseActionRequestData {
Action: "ApplyInventoryChanges";
changedItems: ChangedItem[];
}
export interface ChangedItem {
_id: string;
_tpl: string;
parentId: string;
slotId: string;
location: Location;
upd: Upd;
}
export interface Location {
x: number;
y: number;
r: string;
isSearched: boolean;
}

View File

@ -0,0 +1,7 @@
import { Container, IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData";
export interface IInventorySplitRequestData extends IInventoryBaseActionRequestData {
Action: "Split";
item: string;
container: Container;
count: number;
}

View File

@ -0,0 +1,11 @@
import { OwnerInfo } from "../common/request/IBaseInteractionRequestData";
import { IInventoryBaseActionRequestData, To } from "./IInventoryBaseActionRequestData";
export interface IInventorySwapRequestData extends IInventoryBaseActionRequestData {
Action: "Swap";
item: string;
to: To;
item2: string;
to2: To;
fromOwner2: OwnerInfo;
toOwner2: OwnerInfo;
}

View File

@ -0,0 +1,7 @@
import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData";
export interface IInventoryTagRequestData extends IInventoryBaseActionRequestData {
Action: "Tag";
item: string;
TagName: string;
TagColor: number;
}

View File

@ -0,0 +1,6 @@
import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData";
export interface IInventoryToggleRequestData extends IInventoryBaseActionRequestData {
Action: "Toggle";
item: string;
value: boolean;
}

View File

@ -0,0 +1,7 @@
import { IInventoryBaseActionRequestData } from "./IInventoryBaseActionRequestData";
export interface IInventoryTransferRequestData extends IInventoryBaseActionRequestData {
Action: "Transfer";
item: string;
with: string;
count: number;
}

View File

@ -0,0 +1,4 @@
import { IItemEventRouterBase } from "./IItemEventRouterBase";
export interface IEmptyItemEventRouterResponse extends IItemEventRouterBase {
profileChanges: "";
}

View File

@ -0,0 +1,21 @@
export interface IHandleEventRequestData {
data: Daum[];
tm: number;
reload: number;
}
export interface Daum {
Action: string;
item: string;
to?: To;
}
export interface To {
id: string;
container: string;
location: Location;
}
export interface Location {
x: number;
y: number;
r: string;
isSearched: boolean;
}

View File

@ -0,0 +1,61 @@
import { Skills } from "../common/IPmcData";
import { Item, Upd } from "../common/tables/IItem";
import { IQuest } from "../common/tables/IQuest";
import { IPmcDataRepeatableQuest } from "../common/tables/IRepeatableQuests";
import { IRagfairOffer } from "../ragfair/IRagfairOffer";
export interface IItemEventRouterBase {
warnings: Warning[];
profileChanges: TProfileChanges | "";
}
export declare type TProfileChanges = Record<string, ProfileChange>;
export interface Warning {
index: number;
err: string;
errmsg: string;
}
export interface ProfileChange {
_id: string;
experience: number;
quests: IQuest[];
ragFairOffers: IRagfairOffer[];
builds: BuildChange[];
items: ItemChanges;
production: Record<string, Production>;
skills: Skills;
traderRelations: Record<string, TraderRelations>;
repeatableQuests?: IPmcDataRepeatableQuest[];
}
export interface BuildChange {
id: string;
name: string;
root: string;
items: Item[];
}
export interface ItemChanges {
new: Product[];
change: Product[];
del: Product[];
}
export interface Production {
Progress: number;
StartTimestamp: number;
ProductionTime: number;
inProgress: boolean;
RecipeId: string;
Products: Product[];
}
export interface Product {
_id: string;
_tpl?: string;
parentId?: string;
slotId?: string;
location?: any;
upd?: Upd;
}
export interface TraderRelations {
salesSum?: number;
standing?: number;
loyalty?: number;
unlocked?: boolean;
disabled?: boolean;
}

View File

@ -0,0 +1,21 @@
export interface IItemEventRouterRequest {
data: Daum[];
tm: number;
reload: number;
}
export interface Daum {
Action: string;
item: string;
to: To;
}
export interface To {
id: string;
container: string;
location?: Location;
}
export interface Location {
x: number;
y: number;
r: string;
isSearched: boolean;
}

View File

@ -0,0 +1,3 @@
import { IItemEventRouterBase } from "./IItemEventRouterBase";
export interface IItemEventRouterResponse extends IItemEventRouterBase {
}

View File

@ -0,0 +1,4 @@
import { ILoginRequestData } from "./ILoginRequestData";
export interface IChangeRequestData extends ILoginRequestData {
change: string;
}

View File

@ -0,0 +1,4 @@
export interface IGetMiniProfileRequestData {
username: string;
password: string;
}

View File

@ -0,0 +1,4 @@
export interface ILoginRequestData {
username: string;
password: string;
}

View File

@ -0,0 +1,14 @@
export interface IMiniProfile {
username: string;
nickname: string;
side: string;
currlvl: number;
currexp: number;
prevexp: number;
nextlvl: number;
maxlvl: number;
akiData: AkiData;
}
export interface AkiData {
version: string;
}

Some files were not shown because too many files have changed in this diff Show More