mirror of
https://github.com/shiroikitsu8/Bayshore_6r_legacy.git
synced 2025-01-19 18:08:39 +01:00
Merge pull request #18 from ghkkk090/master
fix crown ghost bug, attract screen bug, *hopefully* ghost battle working (both saving and load)
This commit is contained in:
commit
ed05c81c55
@ -0,0 +1,9 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "Car" ALTER COLUMN "stLoseBits" SET DEFAULT 0;
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "GhostTrail" ADD COLUMN "byAreaMergeSerial" INTEGER,
|
||||
ADD COLUMN "byCarMergeSerial" INTEGER,
|
||||
ADD COLUMN "byUserMergeSerial" INTEGER,
|
||||
ADD COLUMN "trendBinaryByCar" BYTEA,
|
||||
ADD COLUMN "trendBinaryByUser" BYTEA;
|
@ -0,0 +1,5 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "Car" ALTER COLUMN "stLoseBits" SET DEFAULT 0;
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "GhostTrail" ADD COLUMN "driveDMergeSerial" INTEGER;
|
@ -0,0 +1,8 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "Car" ALTER COLUMN "stLoseBits" SET DEFAULT 0;
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "GhostTrail" ADD COLUMN "tuneHandling" INTEGER NOT NULL DEFAULT 0,
|
||||
ADD COLUMN "tunePower" INTEGER NOT NULL DEFAULT 0,
|
||||
ALTER COLUMN "playedAt" SET DEFAULT 0,
|
||||
ALTER COLUMN "crownBattle" SET DEFAULT false;
|
@ -0,0 +1,30 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "Car" ALTER COLUMN "stLoseBits" SET DEFAULT 0;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "GhostBattleRecord" (
|
||||
"dbId" SERIAL NOT NULL,
|
||||
"carId" INTEGER NOT NULL,
|
||||
"tunePower" INTEGER NOT NULL DEFAULT 0,
|
||||
"tuneHandling" INTEGER NOT NULL DEFAULT 0,
|
||||
"opponent1CarId" INTEGER NOT NULL,
|
||||
"opponent1Result" INTEGER NOT NULL,
|
||||
"opponent1TunePower" INTEGER NOT NULL,
|
||||
"opponent1TuneHandling" INTEGER NOT NULL,
|
||||
"opponent2CarId" INTEGER,
|
||||
"opponent2Result" INTEGER,
|
||||
"opponent2TunePower" INTEGER,
|
||||
"opponent2TuneHandling" INTEGER,
|
||||
"opponent3CarId" INTEGER,
|
||||
"opponent3Result" INTEGER,
|
||||
"opponent3TunePower" INTEGER,
|
||||
"opponent3TuneHandling" INTEGER,
|
||||
"area" INTEGER NOT NULL DEFAULT 0,
|
||||
"playedAt" INTEGER NOT NULL DEFAULT 0,
|
||||
"playedShopName" TEXT NOT NULL DEFAULT 'Bayshore',
|
||||
|
||||
CONSTRAINT "GhostBattleRecord_pkey" PRIMARY KEY ("dbId")
|
||||
);
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "GhostBattleRecord" ADD CONSTRAINT "GhostBattleRecord_carId_fkey" FOREIGN KEY ("carId") REFERENCES "Car"("carId") ON DELETE RESTRICT ON UPDATE CASCADE;
|
@ -0,0 +1,18 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "Car" ALTER COLUMN "stLoseBits" SET DEFAULT 0;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "CarPathandTuning" (
|
||||
"dbId" SERIAL NOT NULL,
|
||||
"carId" INTEGER NOT NULL,
|
||||
"area" INTEGER NOT NULL DEFAULT 0,
|
||||
"ramp" INTEGER NOT NULL DEFAULT 0,
|
||||
"path" INTEGER NOT NULL DEFAULT 0,
|
||||
"tunePower" INTEGER NOT NULL DEFAULT 17,
|
||||
"tuneHandling" INTEGER NOT NULL DEFAULT 17,
|
||||
|
||||
CONSTRAINT "CarPathandTuning_pkey" PRIMARY KEY ("dbId")
|
||||
);
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "CarPathandTuning" ADD CONSTRAINT "CarPathandTuning_carId_fkey" FOREIGN KEY ("carId") REFERENCES "Car"("carId") ON DELETE RESTRICT ON UPDATE CASCADE;
|
@ -0,0 +1,5 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "Car" ALTER COLUMN "stLoseBits" SET DEFAULT 0;
|
||||
|
||||
-- AlterTable
|
||||
ALTER TABLE "CarPathandTuning" ADD COLUMN "lastPlayedAt" INTEGER NOT NULL DEFAULT 0;
|
@ -132,6 +132,8 @@ model Car {
|
||||
TimeAttackRecord TimeAttackRecord[]
|
||||
CarCrown CarCrown[]
|
||||
GhostTrail GhostTrail[]
|
||||
GhostBattleRecord GhostBattleRecord[]
|
||||
CarPathandTuning CarPathandTuning[]
|
||||
}
|
||||
|
||||
model CarGTWing {
|
||||
@ -215,8 +217,8 @@ model CarCrown {
|
||||
}
|
||||
|
||||
model GhostTrail {
|
||||
dbId Int @id @default(autoincrement())
|
||||
car Car @relation(fields: [carId], references: [carId])
|
||||
dbId Int @id @default(autoincrement())
|
||||
car Car @relation(fields: [carId], references: [carId])
|
||||
carId Int
|
||||
area Int
|
||||
ramp Int
|
||||
@ -224,7 +226,50 @@ model GhostTrail {
|
||||
trail Bytes
|
||||
time Int?
|
||||
driveData Bytes? @db.ByteA
|
||||
driveDMergeSerial Int?
|
||||
trendBinaryByUser Bytes? @db.ByteA
|
||||
byUserMergeSerial Int?
|
||||
trendBinaryByArea Bytes? @db.ByteA
|
||||
playedAt Int
|
||||
crownBattle Boolean
|
||||
byAreaMergeSerial Int?
|
||||
trendBinaryByCar Bytes? @db.ByteA
|
||||
byCarMergeSerial Int?
|
||||
playedAt Int @default(0)
|
||||
tunePower Int @default(0)
|
||||
tuneHandling Int @default(0)
|
||||
crownBattle Boolean @default(false)
|
||||
}
|
||||
|
||||
model GhostBattleRecord {
|
||||
dbId Int @id @default(autoincrement())
|
||||
car Car @relation(fields: [carId], references: [carId])
|
||||
carId Int
|
||||
tunePower Int @default(0)
|
||||
tuneHandling Int @default(0)
|
||||
opponent1CarId Int
|
||||
opponent1Result Int
|
||||
opponent1TunePower Int
|
||||
opponent1TuneHandling Int
|
||||
opponent2CarId Int?
|
||||
opponent2Result Int?
|
||||
opponent2TunePower Int?
|
||||
opponent2TuneHandling Int?
|
||||
opponent3CarId Int?
|
||||
opponent3Result Int?
|
||||
opponent3TunePower Int?
|
||||
opponent3TuneHandling Int?
|
||||
area Int @default(0)
|
||||
playedAt Int @default(0)
|
||||
playedShopName String @default("Bayshore")
|
||||
}
|
||||
|
||||
model CarPathandTuning {
|
||||
dbId Int @id @default(autoincrement())
|
||||
car Car @relation(fields: [carId], references: [carId])
|
||||
carId Int
|
||||
area Int @default(0)
|
||||
ramp Int @default(0)
|
||||
path Int @default(0)
|
||||
tunePower Int @default(17)
|
||||
tuneHandling Int @default(17)
|
||||
lastPlayedAt Int @default(0)
|
||||
}
|
||||
|
1746
src/modules/game.ts
1746
src/modules/game.ts
File diff suppressed because it is too large
Load Diff
@ -66,9 +66,9 @@ export default class StartupModule extends Module {
|
||||
orderBy: {
|
||||
time: 'asc'
|
||||
},
|
||||
take: 20,
|
||||
take: 10,
|
||||
});
|
||||
if(ta_time.length !== 0){
|
||||
if(ta_time.length > 0){
|
||||
let list_ta: wmsrv.wm.protobuf.Ranking.Entry[] = [];
|
||||
for(let j=0; j<ta_time.length; j++){
|
||||
let car_ta = await prisma.car.findFirst({
|
||||
@ -78,7 +78,7 @@ export default class StartupModule extends Module {
|
||||
});
|
||||
|
||||
list_ta.push(wmsrv.wm.protobuf.Ranking.Entry.create({
|
||||
carId: car_ta!.carId,
|
||||
carId: ta_time[j].carId,
|
||||
rank: car_ta!.level,
|
||||
result: ta_time[j].time,
|
||||
name: car_ta!.name,
|
||||
@ -86,26 +86,26 @@ export default class StartupModule extends Module {
|
||||
model: car_ta!.model,
|
||||
visualModel: car_ta!.visualModel,
|
||||
defaultColor: car_ta!.defaultColor,
|
||||
tunePower: car_ta!.tunePower,
|
||||
tuneHandling: car_ta!.tuneHandling,
|
||||
tunePower: ta_time[j].tunePower,
|
||||
tuneHandling: ta_time[j].tuneHandling,
|
||||
title: car_ta!.title,
|
||||
level: car_ta!.level
|
||||
}));
|
||||
}
|
||||
if(ta_time.length < 20){
|
||||
for(let j=ta_time.length; j<20; j++){
|
||||
let resulttime = 599999;
|
||||
if(ta_time.length < 11){
|
||||
for(let j=ta_time.length; j<11; j++){
|
||||
let resultTime = 599999;
|
||||
if(i === 22 || i === 23){
|
||||
resulttime = 1199999
|
||||
resultTime = 1199999;
|
||||
}
|
||||
list_ta.push(wmsrv.wm.protobuf.Ranking.Entry.create({
|
||||
carId: 0,
|
||||
rank: 0,
|
||||
result: resulttime,
|
||||
result: resultTime,
|
||||
name: 'GUEST',
|
||||
regionId: 0,
|
||||
model: Math.floor(Math.random() * 50),
|
||||
visualModel: Math.floor(Math.random() * 106),
|
||||
visualModel: Math.floor(Math.random() * 100),
|
||||
defaultColor: 0,
|
||||
tunePower: 0,
|
||||
tuneHandling: 0,
|
||||
@ -115,6 +115,34 @@ export default class StartupModule extends Module {
|
||||
}
|
||||
}
|
||||
|
||||
lists.push(new wmsrv.wm.protobuf.Ranking.List({
|
||||
rankingType: i, // RANKING_TA_*AREA*
|
||||
topRecords: list_ta
|
||||
}));
|
||||
}
|
||||
else{
|
||||
let list_ta: wmsrv.wm.protobuf.Ranking.Entry[] = [];
|
||||
for(let j=0; j<11; j++){
|
||||
let resulttime = 599999;
|
||||
if(i === 22 || i === 23){
|
||||
resulttime = 1199999
|
||||
}
|
||||
list_ta.push(wmsrv.wm.protobuf.Ranking.Entry.create({
|
||||
carId: 0,
|
||||
rank: 0,
|
||||
result: resulttime,
|
||||
name: 'GUEST',
|
||||
regionId: 0,
|
||||
model: Math.floor(Math.random() * 50),
|
||||
visualModel: Math.floor(Math.random() * 100),
|
||||
defaultColor: 0,
|
||||
tunePower: 0,
|
||||
tuneHandling: 0,
|
||||
title: 'Wangan Beginner',
|
||||
level: 0
|
||||
}));
|
||||
}
|
||||
|
||||
lists.push(new wmsrv.wm.protobuf.Ranking.List({
|
||||
rankingType: i, // RANKING_TA_*AREA*
|
||||
topRecords: list_ta
|
||||
@ -148,7 +176,7 @@ export default class StartupModule extends Module {
|
||||
}));
|
||||
}
|
||||
if(car_vs.length < 20){
|
||||
for(let j=car_vs.length; j<20; j++){
|
||||
for(let j=car_vs.length; j<21; j++){
|
||||
list_vs.push(wmsrv.wm.protobuf.Ranking.Entry.create({
|
||||
carId: 0,
|
||||
rank: 0,
|
||||
@ -156,7 +184,7 @@ export default class StartupModule extends Module {
|
||||
name: 'GUEST',
|
||||
regionId: 0,
|
||||
model: Math.floor(Math.random() * 50),
|
||||
visualModel: Math.floor(Math.random() * 106),
|
||||
visualModel: Math.floor(Math.random() * 100),
|
||||
defaultColor: 0,
|
||||
tunePower: 0,
|
||||
tuneHandling: 0,
|
||||
@ -196,7 +224,7 @@ export default class StartupModule extends Module {
|
||||
}));
|
||||
}
|
||||
if(car_ghost.length < 20){
|
||||
for(let j=car_ghost.length; j<20; j++){
|
||||
for(let j=car_ghost.length; j<21; j++){
|
||||
list_ghost.push(wmsrv.wm.protobuf.Ranking.Entry.create({
|
||||
carId: 0,
|
||||
rank: 0,
|
||||
@ -204,7 +232,7 @@ export default class StartupModule extends Module {
|
||||
name: 'GUEST',
|
||||
regionId: 0,
|
||||
model: Math.floor(Math.random() * 50),
|
||||
visualModel: Math.floor(Math.random() * 106),
|
||||
visualModel: Math.floor(Math.random() * 100),
|
||||
defaultColor: 0,
|
||||
tunePower: 0,
|
||||
tuneHandling: 0,
|
||||
@ -247,22 +275,7 @@ export default class StartupModule extends Module {
|
||||
|
||||
app.get('/resource/crown_list', async (req, res) => {
|
||||
console.log('crown_list');
|
||||
//-------------FOR TESTING PURPOSE---------------
|
||||
let list_crown: wmsrv.wm.protobuf.Crown[] = [];
|
||||
/*let car_crown = await prisma.car.findFirst({
|
||||
where: {
|
||||
OR: [
|
||||
{ name: { startsWith: 'KITSU'}, visualModel: 32 },
|
||||
{ name: { startsWith: 'きつ', }, visualModel: 32 },
|
||||
],
|
||||
},
|
||||
include: {
|
||||
gtWing: true
|
||||
},
|
||||
orderBy: {
|
||||
carId: 'asc'
|
||||
}
|
||||
});*/
|
||||
let car_crown = await prisma.carCrown.findMany({
|
||||
orderBy: {
|
||||
area: 'asc'
|
||||
@ -287,10 +300,9 @@ export default class StartupModule extends Module {
|
||||
if(car!.regionId === 0){
|
||||
car!.regionId = 1; // Hokkaido
|
||||
}
|
||||
//car!.aura = 0;
|
||||
car!.tunePower = car_crown[counter].tunePower;
|
||||
car!.tuneHandling = car_crown[counter].tuneHandling;
|
||||
car!.lastPlayedAt = car_crown[counter].playedAt - 100000;
|
||||
car!.lastPlayedAt = 1659286800; // 2 August 2022
|
||||
list_crown.push(wmsrv.wm.protobuf.Crown.create({
|
||||
carId: car_crown[counter].carId,
|
||||
area: car_crown[counter].area, // GID_RUNAREA_C1 - GID_RUNAREA_TURNPIKE & GID_RUNAREA_HIROSHIMA
|
||||
@ -312,25 +324,21 @@ export default class StartupModule extends Module {
|
||||
}
|
||||
}
|
||||
else{
|
||||
for(let i=0; i<14; i++){
|
||||
for(let i=0; i<19; i++){
|
||||
if(i >= 14){
|
||||
i = 18;
|
||||
}
|
||||
list_crown.push(wmsrv.wm.protobuf.Crown.create({
|
||||
carId: i,
|
||||
area: i, // GID_RUNAREA_C1 - GID_RUNAREA_TURNPIKE
|
||||
area: i, // GID_RUNAREA_C1 - GID_RUNAREA_TURNPIKE & GID_RUNAREA_HIROSHIMA
|
||||
unlockAt: 0,
|
||||
}));
|
||||
}
|
||||
list_crown.push(wmsrv.wm.protobuf.Crown.create({
|
||||
carId: 18,
|
||||
area: 18, // GID_RUNAREA_HIROSHIMA
|
||||
unlockAt: 0,
|
||||
}));
|
||||
}
|
||||
|
||||
let msg = {
|
||||
crowns: list_crown
|
||||
};
|
||||
//-----------------------------------------------
|
||||
|
||||
let resp = wmsrv.wm.protobuf.CrownList.encode(msg);
|
||||
let end = resp.finish();
|
||||
let r = res
|
||||
@ -341,4 +349,4 @@ export default class StartupModule extends Module {
|
||||
r.send(Buffer.from(end));
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -10,141 +10,233 @@ let scratchSheets = [
|
||||
[ // Sheet 1
|
||||
[201, 4], // R2
|
||||
|
||||
// Window Stickers
|
||||
[25, 8], [25, 8], [25, 8], [25, 8], [25, 8], // BAT
|
||||
[25, 6], [25, 6], [25, 6], [25, 6], [25, 6], // SPEAR
|
||||
[25, 24], [25, 24], [25, 24], [25, 24], [25, 24], // PULSE
|
||||
[25, 3], [25, 3], [25, 3], [25, 3], [25, 3], // CIRCLE
|
||||
[25, 14], [25, 14], [25, 14], [25, 14], [25, 14], // TRIBAL
|
||||
|
||||
// Rival Markers
|
||||
[26, 18], [26, 18], [26, 18], [26, 18], // LIGHTNING
|
||||
[26, 2], [26, 2], [26, 2], [26, 2], // NEON
|
||||
[26, 31], [26, 31], [26, 31], [26, 31], // V
|
||||
[26, 40], [26, 40], [26, 40], [26, 40], // NEW DRIVER
|
||||
[26, 18], [26, 18], [26, 18], [26, 18], // LIGHTNING
|
||||
[26, 1], [26, 1], [26, 1], [26, 1], // FIRE
|
||||
[26, 3], [26, 3], [26, 3], [26, 3], // NEON
|
||||
[26, 17], [26, 17], [26, 17], [26, 17], // TROPICAL
|
||||
[26, 31], [26, 31], [26, 31], [26, 31], // V
|
||||
|
||||
// Window Stickers
|
||||
[25, 24], [25, 24], [25, 24], [25, 24], [25, 24], // PULSE
|
||||
[25, 8], [25, 8], [25, 8], [25, 8], [25, 8], // BAT
|
||||
[25, 3], [25, 3], [25, 3], [25, 3], [25, 3], // CIRCLE
|
||||
[25, 6], [25, 6], [25, 6], [25, 6], [25, 6], // SPEAR
|
||||
[25, 14], [25, 14], [25, 14], [25, 14], [25, 14], // TRIBAL
|
||||
],
|
||||
[ // Sheet 2
|
||||
[201, 3], // Corolla
|
||||
|
||||
// Window Stickers
|
||||
[25, 11], [25, 11], [25, 11], [25, 11], [25, 11], // Thunderbolt
|
||||
[25, 4], [25, 4], [25, 4], [25, 4], [25, 4], // Circle 2
|
||||
[25, 28], [25, 28], [25, 28], [25, 28], [25, 28], // Wangan URL
|
||||
[25, 5], [25, 5], [25, 5], [25, 5], [25, 5], // Triangle
|
||||
[25, 16], [25, 16], [25, 16], [25, 16], [25, 16], // Cards
|
||||
|
||||
// Rival Markers
|
||||
[26, 9], [26, 9], [26, 9], [26, 9], // GRAFFITI
|
||||
[26, 6], [26, 6], [26, 6], [26, 6], // CASUAL
|
||||
[26, 19], [26, 19], [26, 19], [26, 19], // WALL
|
||||
[26, 29], [26, 29], [26, 29], [26, 29], // BAT
|
||||
[26, 9], [26, 9], [26, 9], [26, 9], // GRAFFITI
|
||||
[26, 2], [26, 2], [26, 2], [26, 2], // ANIMAL
|
||||
[26, 6], [26, 6], [26, 6], [26, 6], // CASUAL
|
||||
[26, 8], [26, 8], [26, 8], [26, 8], // PAINT SPLASH
|
||||
]
|
||||
/*
|
||||
[ // Sheet 3 (Incomplete)
|
||||
[26, 19], [26, 19], [26, 19], [26, 19], // WALL
|
||||
|
||||
// Window Stickers
|
||||
[25, 28], [25, 28], [25, 28], [25, 28], [25, 28], // WANGAN URL
|
||||
[25, 11], [25, 11], [25, 11], [25, 11], [25, 11], // THUNDER BOLT
|
||||
[25, 5], [25, 5], [25, 5], [25, 5], [25, 5], // TRIANGLE
|
||||
[25, 4], [25, 4], [25, 4], [25, 4], [25, 4], // CIRCLE 2
|
||||
[25, 16], [25, 16], [25, 16], [25, 16], [25, 16], // CARDS
|
||||
],
|
||||
[ // Sheet 3
|
||||
[201, 1], // Hiace Van
|
||||
|
||||
// Window Stickers
|
||||
[25, 13], [25, 13], [25, 13], [25, 13], [25, 13], // Arrow
|
||||
[25, 9], [25, 9], [25, 9], [25, 9], // Star
|
||||
[25, 7], [25, 7], [25, 7], [25, 7], // Snake
|
||||
[25, 18], [25, 18], [25, 18], [25, 18], // Heart
|
||||
[25, ], [25, ], [25, ], [25, ], // ????
|
||||
|
||||
// Rival Markers
|
||||
[26, 36], [26, 36], [26, 36], [26, 36], // Pinstripe
|
||||
[26, 5], [26, 5], [26, 5], [26, 5], // Dangerous
|
||||
[26, 14], [26, 14], [26, 14], [26, 14], // Relief
|
||||
[26, 34], [26, 34], [26, 34], [26, 34], // Diamond
|
||||
[26, 4], [26, 4], [26, 4], [26, 4], // Metal
|
||||
[26, 10], [26, 10], [26, 10], [26, 10], // Japonism
|
||||
[26, 20], [26, 20], [26, 20], [26, 20], // Reggae
|
||||
[26, 34], [26, 34], [26, 34], [26, 34], // DIAMOND
|
||||
[26, 36], [26, 36], [26, 36], [26, 36], // PINSTRIPE
|
||||
[26, 4], [26, 4], [26, 4], [26, 4], // METAL
|
||||
[26, 5], [26, 5], [26, 5], [26, 5], // DANGEROUS
|
||||
[26, 10], [26, 10], [26, 10], [26, 10], // JAPANESE PATTERN
|
||||
[26, 14], [26, 14], [26, 14], [26, 14], // RELIEF
|
||||
[26, 20], [26, 20], [26, 20], [26, 20], // REGGAE
|
||||
|
||||
// Window Stickers
|
||||
[25, 13], [25, 13], [25, 13], [25, 13], [25, 13], // ARROW
|
||||
[25, 7], [25, 7], [25, 7], [25, 7], // SNAKE
|
||||
[25, 9], [25, 9], [25, 9], [25, 9], // STAR
|
||||
[25, 18], [25, 18], [25, 18], [25, 18], // HEART
|
||||
[25, 1], [25, 1], [25, 1], [25, 1], // FIRE PATTERN
|
||||
],
|
||||
[ // Sheet 4 (Incomplete)
|
||||
[ // Sheet 4
|
||||
[201, 2], // Pajero Evolution
|
||||
|
||||
// Window Stickers
|
||||
[25, 21], [25, 21], [25, 21], [25, 21], [25, 21], // Plum Blossoms
|
||||
[25, 12], [25, 12], [25, 12], [25, 12], // Illumination
|
||||
[25, 10], [25, 10], [25, 10], [25, 10], // Shooting Star
|
||||
[25, 20], [25, 20], [25, 20], [25, 20], // Raimo
|
||||
[25, ], [25, ], [25, ], [25, ], // ????
|
||||
|
||||
// Rival Markers
|
||||
[26, 7], [26, 7], [26, 7], [26, 7], // Flowers
|
||||
[26, 16], [26, 16], [26, 16], [26, 16], // Wood
|
||||
[26, 24], [26, 24], [26, 24], [26, 24], // Studded
|
||||
[26, 33], [26, 33], [26, 33], [26, 33], // Heart
|
||||
[26, 15], [26, 15], [26, 15], [26, 15], // Camo
|
||||
[26, 21], [26, 21], [26, 21], [26, 21], // Decoration
|
||||
[26, 30], [26, 30], [26, 30], [26, 30], // Effect
|
||||
[26, 33], [26, 33], [26, 33], [26, 33], // HEART
|
||||
[26, 7], [26, 7], [26, 7], [26, 7], // FLOWERS
|
||||
[26, 15], [26, 15], [26, 15], [26, 15], // CAMO
|
||||
[26, 16], [26, 16], [26, 16], [26, 16], // WOOD
|
||||
[26, 21], [26, 21], [26, 21], [26, 21], // DECORATION
|
||||
[26, 24], [26, 24], [26, 24], [26, 24], // STUDDED
|
||||
[26, 30], [26, 30], [26, 30], [26, 30], // EFFECT
|
||||
|
||||
// Window Stickers
|
||||
[25, 21], [25, 21], [25, 21], [25, 21], [25, 21], // PLUM BLOSSOMS
|
||||
[25, 10], [25, 10], [25, 10], [25, 10], // SHOOTING STAR
|
||||
[25, 12], [25, 12], [25, 12], [25, 12], // ILLUMINATION
|
||||
[25, 20], [25, 20], [25, 20], [25, 20], // RAIMON
|
||||
[25, 27], [25, 27], [25, 27], [25, 27], // LONGHORN
|
||||
],
|
||||
[ // Sheet 5 (Incomplete)
|
||||
[ // Sheet 5
|
||||
[201, 5], // Nismo GT-R (Black)
|
||||
|
||||
// Window Stickers
|
||||
[25, 26], [25, 26], [25, 26], [25, 26], [25, 26], // Paint
|
||||
[25, 29], [25, 29], [25, 29], [25, 29], // Galaga
|
||||
[25, 23], [25, 23], [25, 23], [25, 23], // Maze
|
||||
[25, 2], [25, 2], [25, 2], [25, 2], // Fire Pattern 2
|
||||
[25, ], [25, ], [25, ], [25, ], // ????
|
||||
|
||||
// Rival Markers
|
||||
[26, 39], [26, 39], [26, 39], [26, 39], // Silver Accessory
|
||||
[26, 22], [26, 22], [26, 22], [26, 22], // Tropical 2
|
||||
[26, 25], [26, 25], [26, 25], [26, 25], // Casual 2
|
||||
[26, 28], [26, 28], [26, 28], [26, 28], // Guitar Pick
|
||||
[26, 12], [26, 12], [26, 12], [26, 12], // Mechanical
|
||||
[26, 23], [26, 23], [26, 23], [26, 23], // Monogram
|
||||
[26, 27], [26, 27], [26, 27], [26, 27], // Carbon
|
||||
[26, 28], [26, 28], [26, 28], [26, 28], // GUITAR PICK
|
||||
[26, 39], [26, 39], [26, 39], [26, 39], // SILVER ACCESSORY
|
||||
[26, 12], [26, 12], [26, 12], [26, 12], // MECHANICAL
|
||||
[26, 22], [26, 22], [26, 22], [26, 22], // TROPICAL 2
|
||||
[26, 23], [26, 23], [26, 23], [26, 23], // MONOGRAM
|
||||
[26, 25], [26, 25], [26, 25], [26, 25], // CASUAL 2
|
||||
[26, 27], [26, 27], [26, 27], [26, 27], // CARBON
|
||||
|
||||
// Window Stickers
|
||||
[25, 26], [25, 26], [25, 26], [25, 26], [25, 26], // PAINT
|
||||
[25, 23], [25, 23], [25, 23], [25, 23], // MAZE
|
||||
[25, 29], [25, 29], [25, 29], [25, 29], // GALAGA
|
||||
[25, 2], [25, 2], [25, 2], [25, 2], // FIRE PATTERN 2
|
||||
[25, 19], [25, 19], [25, 19], [25, 19], // ANGEL HEART
|
||||
],
|
||||
[ // Sheet 6 (Incomplete)
|
||||
[ // Sheet 6
|
||||
[201, 6], // Fairlady Z (Nismo)
|
||||
|
||||
// Window Stickers
|
||||
[25, 25], [25, 25], [25, 25], [25, 25], [25, 25], // Equaliser
|
||||
[25, 17], [25, 17], [25, 17], [25, 17], // Cards 2
|
||||
[25, 30], [25, 30], [25, 30], [25, 30], // Pac-Man
|
||||
[25, 22], [25, 22], [25, 22], [25, 22], // Seigaiha
|
||||
[25, ], [25, ], [25, ], [25, ], // ????
|
||||
|
||||
// Rival Markers
|
||||
[26, 38], [26, 38], [26, 38], [26, 38], // Hex
|
||||
[26, 13], [26, 13], [26, 13], [26, 13], // Cosmos
|
||||
[26, 35], [26, 35], [26, 35], [26, 35], // Fire Pattern
|
||||
[26, 32], [26, 32], [26, 32], [26, 32], // Feather
|
||||
[26, 11], [26, 11], [26, 11], [26, 11], // Silvercraft
|
||||
[26, 26], [26, 26], [26, 26], [26, 26], // Graffiti 2
|
||||
[26, 37], [26, 37], [26, 37], [26, 37], // Arrow of Light
|
||||
[26, 32], [26, 32], [26, 32], [26, 32], // FEATHER
|
||||
[26, 38], [26, 38], [26, 38], [26, 38], // HEX
|
||||
[26, 11], [26, 11], [26, 11], [26, 11], // SILVERCRAFT
|
||||
[26, 13], [26, 13], [26, 13], [26, 13], // COSMOS
|
||||
[26, 26], [26, 26], [26, 26], [26, 26], // GRAFFITI 2
|
||||
[26, 35], [26, 35], [26, 35], [26, 35], // FIRE PATTERN
|
||||
[26, 37], [26, 37], [26, 37], [26, 37], // ARROW OF LIGHT
|
||||
|
||||
// Window Stickers
|
||||
[25, 25], [25, 25], [25, 25], [25, 25], [25, 25], // EQUALIZER
|
||||
[25, 30], [25, 30], [25, 30], [25, 30], // PAC-MAN
|
||||
[25, 17], [25, 17], [25, 17], [25, 17], // CARDS 2
|
||||
[25, 22], [25, 22], [25, 22], [25, 22], // SEIGAIHA
|
||||
[25, 15], [25, 15], [25, 15], [25, 15], // TRIBAL 2
|
||||
],
|
||||
[ // Sheet 7 (Incomplete)
|
||||
[ // Sheet 7
|
||||
[201, 16], // Aristo (Taxi)
|
||||
|
||||
// Rival Markers
|
||||
[26, 71], [26, 71], [26, 71], [26, 71], // KATANA
|
||||
[26, 73], [26, 73], [26, 73], [26, 73], // SHURIKEN
|
||||
[26, 41], [26, 41], [26, 41], [26, 41], // STEEL
|
||||
[26, 69], [26, 69], [26, 69], [26, 69], // ELECTRONICS
|
||||
[26, 66], [26, 66], [26, 66], [26, 66], // WALL 2
|
||||
[26, 47], [26, 47], [26, 47], [26, 47], // PAINT SPLASH 2
|
||||
|
||||
// Window Stickers
|
||||
[25, 32], [25, 32], [25, 32], [25, 32], [25, 32], // Emotion
|
||||
[25, 17], [25, 17], [25, 17], [25, 17], // Pine
|
||||
[25, 30], [25, 30], [25, 30], [25, 30], // Love
|
||||
// [25, 22], [25, 22], [25, 22], [25, 22], // Square
|
||||
[25, 35], [25, 35], [25, 35], [25, 35], [25, 35], // Trap
|
||||
[25, 31], [25, 31], [25, 31], [25, 31], [25, 31], // LOVE
|
||||
[25, 32], [25, 32], [25, 32], [25, 32], [25, 32], // EMOTION
|
||||
[25, 33], [25, 33], [25, 33], [25, 33], [25, 33], // SQUARE
|
||||
[25, 34], [25, 34], [25, 34], [25, 34], [25, 34], // PINE
|
||||
[25, 35], [25, 35], [25, 35], [25, 35], [25, 35], // TRAP
|
||||
],
|
||||
[ // Sheet 8
|
||||
[201, 17], // Driving School Mazda 6 MPS
|
||||
|
||||
// Rival Markers
|
||||
[26, 38], [26, 38], [26, 38], [26, 38], // Shuriken
|
||||
[26, 13], [26, 13], [26, 13], [26, 13], // Electronics
|
||||
[26, 35], [26, 35], [26, 35], [26, 35], // Paint Splash 2
|
||||
[26, 32], [26, 32], [26, 32], [26, 32], // Katana
|
||||
[26, 11], [26, 11], [26, 11], [26, 11], // Steel
|
||||
[26, 26], [26, 26], [26, 26], [26, 26], // Wall 2
|
||||
],
|
||||
*/
|
||||
]
|
||||
[26, 74], [26, 74], [26, 74], [26, 74], // HEAVY METAL
|
||||
[26, 79], [26, 79], [26, 79], [26, 79], // LOVE YOU
|
||||
[26, 59], [26, 59], [26, 59], [26, 59], // METRO POLICE
|
||||
[26, 60], [26, 60], [26, 60], [26, 60], // WOOFER
|
||||
[26, 61], [26, 61], [26, 61], [26, 61], // DIGITAL
|
||||
[26, 62], [26, 62], [26, 62], [26, 62], // PUNK
|
||||
|
||||
// Window Stickers
|
||||
[25, 36], [25, 36], [25, 36], [25, 36], [25, 36], // WING
|
||||
[25, 37], [25, 37], [25, 37], [25, 37], [25, 37], // TRIBAL 3
|
||||
[25, 38], [25, 38], [25, 38], [25, 38], [25, 38], // TRIBAL 4
|
||||
[25, 39], [25, 39], [25, 39], [25, 39], [25, 39], // TECHNO
|
||||
[25, 40], [25, 40], [25, 40], [25, 40], [25, 40], // TECHNO 2
|
||||
],
|
||||
[ // Sheet 9
|
||||
[201, 18], // Toyota Celsior Taxi
|
||||
|
||||
// Rival Markers
|
||||
[26, 70], [26, 70], [26, 70], [26, 70], // BUTTERFLY
|
||||
[26, 77], [26, 77], [26, 77], [26, 77], // DRAGON
|
||||
[26, 54], [26, 54], [26, 54], [26, 54], // ROAD
|
||||
[26, 57], [26, 57], [26, 57], [26, 57], // GRAFFITI 3
|
||||
[26, 55], [26, 55], [26, 55], [26, 55], // CAMO 2
|
||||
[26, 56], [26, 56], [26, 56], [26, 56], // PINSTRIPE 2
|
||||
[26, 45], [26, 45], [26, 45], [26, 45], // ID TAG
|
||||
|
||||
// Window Stickers
|
||||
[25, 41], [25, 41], [25, 41], [25, 41], [25, 41], // MUSTACHE
|
||||
[25, 42], [25, 42], [25, 42], [25, 42], // FLASH
|
||||
[25, 43], [25, 43], [25, 43], [25, 43], // SCRATCH
|
||||
[25, 44], [25, 44], [25, 44], [25, 44], // ANTIQUE
|
||||
[25, 45], [25, 45], [25, 45], [25, 45], // THORNS
|
||||
],
|
||||
[ // Sheet 10
|
||||
[201, 19], // High lift Toyota Hiace (KZH100G)
|
||||
|
||||
// Rival Markers
|
||||
[26, 76], [26, 76], [26, 76], [26, 76], // FANG
|
||||
[26, 78], [26, 78], [26, 78], [26, 78], // HAWK
|
||||
[26, 49], [26, 49], [26, 49], [26, 49], // OGRE TILE
|
||||
[26, 43], [26, 43], [26, 43], [26, 43], // DANGEROUS 2
|
||||
[26, 67], [26, 67], [26, 67], [26, 67], // DANGEROUS 3
|
||||
[26, 64], [26, 64], [26, 64], [26, 64], // FIRE PATTERN 2
|
||||
[26, 46], [26, 46], [26, 46], [26, 46], // ANIMAL 2
|
||||
|
||||
// Window Stickers
|
||||
[25, 46], [25, 46], [25, 46], [25, 46], [25, 46], // SKID MARK
|
||||
[25, 47], [25, 47], [25, 47], [25, 47], // ARROW 2
|
||||
[25, 48], [25, 48], [25, 48], [25, 48], // CHECKERED FLAG
|
||||
[25, 49], [25, 49], [25, 49], [25, 49], // CHECKERED FLAG 2
|
||||
[25, 50], [25, 50], [25, 50], [25, 50], // PUZZLE
|
||||
],
|
||||
[ // Sheet 11
|
||||
[201, 20], // R35 Pure Edition 2017
|
||||
|
||||
// Rival Markers
|
||||
[26, 75], [26, 75], [26, 75], [26, 75], // HELMET
|
||||
[26, 72], [26, 72], [26, 72], [26, 72], // HAMAYA ARROW
|
||||
[26, 42], [26, 42], [26, 42], [26, 42], // JAPANESE PATTERN 2
|
||||
[26, 63], [26, 63], [26, 63], [26, 63], // LEATHER
|
||||
[26, 48], [26, 48], [26, 48], [26, 48], // MARINE
|
||||
[26, 65], [26, 65], [26, 65], [26, 65], // CAMO 3
|
||||
[26, 68], [26, 68], [26, 68], [26, 68], // MECHANICAL 2
|
||||
|
||||
// Window Stickers
|
||||
[25, 51], [25, 51], [25, 51], [25, 51], [25, 51], // PUZZLE 2
|
||||
[25, 52], [25, 52], [25, 52], [25, 52], // WAVE
|
||||
[25, 53], [25, 53], [25, 53], [25, 53], // FANG
|
||||
[25, 54], [25, 54], [25, 54], [25, 54], // LOCK-ON
|
||||
[25, 55], [25, 55], [25, 55], [25, 55], // CHAIN
|
||||
],
|
||||
[ // Sheet 12
|
||||
[201, 21], // Honda NSX-R (NA2)
|
||||
|
||||
// Rival Markers
|
||||
[26, 80], [26, 80], [26, 80], [26, 80], // SPEECH BUBBLE
|
||||
[26, 51], [26, 51], [26, 51], [26, 51], // COMIC
|
||||
[26, 50], [26, 50], [26, 50], [26, 50], // GLITTER
|
||||
[26, 52], [26, 52], [26, 52], [26, 52], // FOREST
|
||||
[26, 53], [26, 53], [26, 53], [26, 53], // BANDANA
|
||||
[26, 44], [26, 44], [26, 44], [26, 44], // STICKER
|
||||
[26, 58], [26, 58], [26, 58], [26, 58], // CRYSTAL
|
||||
|
||||
// Window Stickers
|
||||
[25, 56], [25, 56], [25, 56], [25, 56], [25, 56], // STREET
|
||||
[25, 57], [25, 57], [25, 57], [25, 57], // NO ENTRY
|
||||
[25, 58], [25, 58], [25, 58], [25, 58], // BARCODE
|
||||
[25, 59], [25, 59], [25, 59], [25, 59], // ZIPPER
|
||||
[25, 60], [25, 60], [25, 60], [25, 60], // WANGAN URL 2
|
||||
]
|
||||
];
|
||||
|
||||
// Terminal scratch cars only
|
||||
export const scratchCars = [
|
||||
4, 3, 1, 2, 5, 6, 16, 17, 18, 19, 20, 21
|
||||
]
|
||||
];
|
||||
|
||||
// Fully tuned special cars
|
||||
export const fullyTunedCars = [
|
||||
@ -279,7 +371,7 @@ export async function generateScratchSheet (userId: number, sheetNo: number)
|
||||
else // Sheet is out of range
|
||||
{
|
||||
// Generate a random (standard) scratch sheet
|
||||
scratchItems = getRandomScratchSheet(sheetNo-1);
|
||||
// scratchItems = getRandomScratchSheet(sheetNo-1);
|
||||
}
|
||||
break;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user