fixed 0 bot
This commit is contained in:
@@ -51,9 +51,9 @@
|
||||
"providerUserId": "p_1775109142385_wq7wfy1p32j",
|
||||
"notes": "auto: player-coins",
|
||||
"blocked": false,
|
||||
"coins": 2642,
|
||||
"coins": 2860,
|
||||
"createdAt": "2026-04-02T05:52:21+00:00",
|
||||
"updatedAt": "2026-07-01T00:43:02+00:00",
|
||||
"updatedAt": "2026-07-01T14:37:22+00:00",
|
||||
"daily": {
|
||||
"anchorMs": 1781197200000,
|
||||
"claimedDays": [
|
||||
@@ -67,29 +67,33 @@
|
||||
],
|
||||
"lockUntilMs": 0
|
||||
},
|
||||
"score": 568,
|
||||
"score": 786,
|
||||
"scoreByCase": {
|
||||
"1": 26,
|
||||
"10": 782,
|
||||
"10": 914,
|
||||
"8": 296,
|
||||
"11": 20,
|
||||
"13": 344,
|
||||
"13": 364,
|
||||
"14": 30,
|
||||
"9": 40,
|
||||
"12": 466,
|
||||
"15": 20,
|
||||
"4": 20,
|
||||
"5": 32,
|
||||
"7": 6,
|
||||
"7": 14,
|
||||
"3": 150,
|
||||
"6": 44,
|
||||
"2": 166
|
||||
"2": 224
|
||||
},
|
||||
"lbName": "Q",
|
||||
"lbName": "บอท7",
|
||||
"achievements": {
|
||||
"d1_minigame_solver": 20,
|
||||
"a1_first_deduction": 1,
|
||||
"a5_truth_hunter": 3
|
||||
"a5_truth_hunter": 3,
|
||||
"e2_the_impostor": 1,
|
||||
"e4_agent_of_chaos": 2,
|
||||
"e3_master_of_doubt": 1,
|
||||
"e5_slippery_eel": 1
|
||||
},
|
||||
"lobbyColorThemeIndex": 7,
|
||||
"lobbySkinToneIndex": 1
|
||||
@@ -102,9 +106,9 @@
|
||||
"providerUserId": "p_1775128666204_xzgg2n6x8h",
|
||||
"notes": "auto: player-coins",
|
||||
"blocked": false,
|
||||
"coins": 165,
|
||||
"coins": 253,
|
||||
"createdAt": "2026-04-02T11:17:46+00:00",
|
||||
"updatedAt": "2026-06-26T12:12:46+00:00",
|
||||
"updatedAt": "2026-07-01T12:26:22+00:00",
|
||||
"lobbyColorThemeIndex": 1,
|
||||
"lobbySkinToneIndex": 3,
|
||||
"daily": {
|
||||
@@ -112,28 +116,29 @@
|
||||
"claimedDays": [
|
||||
true,
|
||||
true,
|
||||
false,
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false
|
||||
],
|
||||
"lockUntilMs": 1782493200000
|
||||
"lockUntilMs": 1782925200000
|
||||
},
|
||||
"score": 140,
|
||||
"score": 208,
|
||||
"scoreByCase": {
|
||||
"6": 30,
|
||||
"13": 50,
|
||||
"5": 8,
|
||||
"12": 6,
|
||||
"10": 36,
|
||||
"3": 10
|
||||
"10": 78,
|
||||
"3": 10,
|
||||
"2": 26
|
||||
},
|
||||
"lbName": "OHM",
|
||||
"lbName": "บอท 888",
|
||||
"achievements": {
|
||||
"d1_minigame_solver": 19,
|
||||
"d1_minigame_solver": 20,
|
||||
"a1_first_deduction": 1,
|
||||
"a5_truth_hunter": 1
|
||||
"a5_truth_hunter": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -325,26 +330,26 @@
|
||||
"providerUserId": "p_1781849642042_x2vt68wscm",
|
||||
"notes": "auto: player-coins",
|
||||
"blocked": false,
|
||||
"coins": 148,
|
||||
"coins": 169,
|
||||
"createdAt": "2026-06-19T06:14:02+00:00",
|
||||
"updatedAt": "2026-06-26T12:12:46+00:00",
|
||||
"updatedAt": "2026-07-01T11:44:24+00:00",
|
||||
"daily": {
|
||||
"anchorMs": 1781802000000,
|
||||
"claimedDays": [
|
||||
true,
|
||||
false,
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false
|
||||
],
|
||||
"lockUntilMs": 0
|
||||
"lockUntilMs": 1782925200000
|
||||
},
|
||||
"score": 138,
|
||||
"score": 144,
|
||||
"scoreByCase": {
|
||||
"1": 66,
|
||||
"7": 10,
|
||||
"7": 16,
|
||||
"5": 10,
|
||||
"2": 40,
|
||||
"6": 10,
|
||||
@@ -352,8 +357,10 @@
|
||||
},
|
||||
"lbName": "tomato",
|
||||
"achievements": {
|
||||
"d1_minigame_solver": 18
|
||||
}
|
||||
"d1_minigame_solver": 19
|
||||
},
|
||||
"lobbyColorThemeIndex": 1,
|
||||
"lobbySkinToneIndex": 1
|
||||
},
|
||||
{
|
||||
"id": "cdf90c44df43f374c61afe24",
|
||||
@@ -837,22 +844,25 @@
|
||||
"providerUserId": "p_1782300287206_l5omneu1yeo",
|
||||
"notes": "auto: player-coins",
|
||||
"blocked": false,
|
||||
"coins": 104,
|
||||
"coins": 169,
|
||||
"createdAt": "2026-06-24T11:24:48+00:00",
|
||||
"updatedAt": "2026-06-26T12:12:46+00:00",
|
||||
"updatedAt": "2026-07-01T12:20:59+00:00",
|
||||
"lobbyColorThemeIndex": 3,
|
||||
"lobbySkinToneIndex": 2,
|
||||
"score": 94,
|
||||
"lobbySkinToneIndex": 3,
|
||||
"score": 144,
|
||||
"scoreByCase": {
|
||||
"6": 24,
|
||||
"13": 26,
|
||||
"13": 44,
|
||||
"5": 16,
|
||||
"12": 8,
|
||||
"3": 20
|
||||
"3": 20,
|
||||
"7": 4,
|
||||
"2": 14,
|
||||
"10": 14
|
||||
},
|
||||
"lbName": "Nam",
|
||||
"achievements": {
|
||||
"d1_minigame_solver": 17,
|
||||
"d1_minigame_solver": 20,
|
||||
"a1_first_deduction": 1,
|
||||
"a5_truth_hunter": 1
|
||||
},
|
||||
@@ -860,14 +870,14 @@
|
||||
"anchorMs": 1782406800000,
|
||||
"claimedDays": [
|
||||
true,
|
||||
false,
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false
|
||||
],
|
||||
"lockUntilMs": 1782493200000
|
||||
"lockUntilMs": 1782925200000
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -962,35 +972,38 @@
|
||||
"providerUserId": "p_1782472374020_hlha51h8q2m",
|
||||
"notes": "auto: player-coins",
|
||||
"blocked": false,
|
||||
"coins": 86,
|
||||
"coins": 135,
|
||||
"createdAt": "2026-06-26T11:12:52+00:00",
|
||||
"updatedAt": "2026-06-29T05:24:08+00:00",
|
||||
"updatedAt": "2026-07-01T11:43:34+00:00",
|
||||
"lobbyColorThemeIndex": 8,
|
||||
"lobbySkinToneIndex": 3,
|
||||
"score": 76,
|
||||
"score": 110,
|
||||
"scoreByCase": {
|
||||
"10": 32,
|
||||
"6": 8,
|
||||
"3": 16,
|
||||
"12": 10,
|
||||
"1": 10
|
||||
"1": 10,
|
||||
"7": 10,
|
||||
"2": 14,
|
||||
"13": 10
|
||||
},
|
||||
"lbName": "MOOKIZ",
|
||||
"achievements": {
|
||||
"d1_minigame_solver": 9
|
||||
"d1_minigame_solver": 13
|
||||
},
|
||||
"daily": {
|
||||
"anchorMs": 1782666000000,
|
||||
"claimedDays": [
|
||||
true,
|
||||
false,
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false
|
||||
],
|
||||
"lockUntilMs": 1782752400000
|
||||
"lockUntilMs": 1782925200000
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -1013,17 +1026,19 @@
|
||||
"providerUserId": "p_1778156246099_lbrni0cvx8",
|
||||
"notes": "auto: player-coins",
|
||||
"blocked": false,
|
||||
"coins": 20,
|
||||
"coins": 64,
|
||||
"createdAt": "2026-06-29T07:25:24+00:00",
|
||||
"updatedAt": "2026-06-29T07:32:57+00:00",
|
||||
"score": 20,
|
||||
"updatedAt": "2026-07-01T12:00:46+00:00",
|
||||
"score": 64,
|
||||
"scoreByCase": {
|
||||
"10": 10,
|
||||
"8": 10
|
||||
"10": 42,
|
||||
"8": 10,
|
||||
"7": 2,
|
||||
"1": 10
|
||||
},
|
||||
"lbName": "MONE",
|
||||
"lbName": "บอท 1 (เกือบฉลาด)",
|
||||
"achievements": {
|
||||
"d1_minigame_solver": 2
|
||||
"d1_minigame_solver": 9
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -1048,6 +1063,64 @@
|
||||
"a1_first_deduction": 1,
|
||||
"a5_truth_hunter": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "071d6cc72313b5f1b71d0e21",
|
||||
"email": "",
|
||||
"displayName": "DevTester",
|
||||
"loginType": "guest",
|
||||
"providerUserId": "p_1782802776912_g9ua6h1w5dj",
|
||||
"notes": "auto: achievements",
|
||||
"blocked": false,
|
||||
"coins": 40,
|
||||
"achievements": {
|
||||
"d1_minigame_solver": 4
|
||||
},
|
||||
"createdAt": "2026-07-01T06:43:44+00:00",
|
||||
"updatedAt": "2026-07-01T06:48:17+00:00",
|
||||
"score": 40,
|
||||
"scoreByCase": {
|
||||
"1": 40
|
||||
},
|
||||
"lbName": "DevTester"
|
||||
},
|
||||
{
|
||||
"id": "0a493efd0dfaae0029a9b12f",
|
||||
"email": "",
|
||||
"displayName": "บอท0",
|
||||
"loginType": "guest",
|
||||
"providerUserId": "p_1782905000925_trqqhvxjdmm",
|
||||
"notes": "auto: player-coins",
|
||||
"blocked": false,
|
||||
"coins": 88,
|
||||
"createdAt": "2026-07-01T11:23:21+00:00",
|
||||
"updatedAt": "2026-07-01T12:26:22+00:00",
|
||||
"score": 78,
|
||||
"scoreByCase": {
|
||||
"10": 58,
|
||||
"2": 20
|
||||
},
|
||||
"lbName": "บอท 7 (ฉลาด)",
|
||||
"achievements": {
|
||||
"d1_minigame_solver": 9,
|
||||
"a1_first_deduction": 1,
|
||||
"a5_truth_hunter": 2
|
||||
},
|
||||
"lobbyColorThemeIndex": 2,
|
||||
"lobbySkinToneIndex": 1,
|
||||
"daily": {
|
||||
"anchorMs": 1782838800000,
|
||||
"claimedDays": [
|
||||
true,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false,
|
||||
false
|
||||
],
|
||||
"lockUntilMs": 1782925200000
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -98,8 +98,8 @@
|
||||
"balloonBossBalloonsPerPlayer": 3,
|
||||
"forcedMinigameKeys": [
|
||||
"gauntlet",
|
||||
"stack",
|
||||
"quiz_carry"
|
||||
"quiz",
|
||||
"balloon_boss"
|
||||
],
|
||||
"testSpecialCardByMap": {},
|
||||
"troublesomeForceOffer": false,
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
{
|
||||
"gauntletTickMs": 220,
|
||||
"gauntletJumpTicks": 6,
|
||||
"gauntletJumpHeightMult": 0.52,
|
||||
"gauntletTimeLimitSec": 0,
|
||||
"troublesomeOfferSec": 15,
|
||||
"gauntletLaneImageUrls": [],
|
||||
"gauntletLaserTopUrl": "",
|
||||
"gauntletLaserBottomUrl": "",
|
||||
"gauntletLaserLineUrl": "",
|
||||
"gauntletLaserFillColor": "rgba(140,230,255,0.42)",
|
||||
"gauntletLaserStrokeColor": "rgba(255,220,255,0.9)",
|
||||
"gauntletLaserLineWidthPx": 2,
|
||||
"stackSwingHz": 0.1,
|
||||
"stackBlockWidthTiles": 3.2,
|
||||
"stackTowerMissionTimeSec": 90,
|
||||
"stackTeamMissesMax": 3,
|
||||
"stackTowerProgressBlocks": 50,
|
||||
"stackBlockNormalImageUrls": [
|
||||
"/Game/img/TowerBlock/Block-Code-1-red.png",
|
||||
"/Game/img/TowerBlock/Block-Code-2-orange.png",
|
||||
"/Game/img/TowerBlock/Block-Code-3-Yellow.png",
|
||||
"/Game/img/TowerBlock/Block-Code-4-Green.png",
|
||||
"/Game/img/TowerBlock/Block-Code-5-Blue.png",
|
||||
"/Game/img/TowerBlock/Block-Code-6-Navy.png",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"stackBlockHeavyImageUrls": [
|
||||
"/Game/img/TowerBlock/Block-Code-1-red-2.png",
|
||||
"/Game/img/TowerBlock/Block-Code-2-orange-2.png",
|
||||
"/Game/img/TowerBlock/Block-Code-3-Yellow-2.png",
|
||||
"/Game/img/TowerBlock/Block-Code-4-Green-2.png",
|
||||
"/Game/img/TowerBlock/Block-Code-5-Blue-2.png",
|
||||
"/Game/img/TowerBlock/Block-Code-6-Navy-2.png",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"stackHeavyBlockPercent": 35,
|
||||
"jumpSurviveJumpHeightMult": 1.7,
|
||||
"jumpSurviveMissionTimeSec": 0,
|
||||
"jumpSurvivePlatformTiles": [
|
||||
{
|
||||
"url": "/Game/img/Jumper/platfrom-1.png",
|
||||
"w": 1392,
|
||||
"h": 60
|
||||
},
|
||||
{
|
||||
"url": "/Game/img/Jumper/platfrom-2.png",
|
||||
"w": 389,
|
||||
"h": 36
|
||||
},
|
||||
{
|
||||
"url": "/Game/img/Jumper/platfrom-3.png",
|
||||
"w": 212,
|
||||
"h": 33
|
||||
}
|
||||
],
|
||||
"spaceShooterMissionTimeSec": 0,
|
||||
"spaceShooterShipImageUrls": [
|
||||
"/Game/img/ViolentCrime/Rocket-1.png",
|
||||
"/Game/img/ViolentCrime/Rocket-2.png",
|
||||
"/Game/img/ViolentCrime/Rocket-3.png",
|
||||
"/Game/img/ViolentCrime/Rocket-4.png",
|
||||
"/Game/img/ViolentCrime/Rocket-5.png",
|
||||
"/Game/img/ViolentCrime/Rocket-6.png"
|
||||
],
|
||||
"spaceShooterAsteroidSpriteUrls": [
|
||||
"/Game/img/ViolentCrime/Meteo-1.png",
|
||||
"/Game/img/ViolentCrime/Meteo-2.png",
|
||||
"/Game/img/ViolentCrime/Meteo-3.png"
|
||||
],
|
||||
"spaceShooterAsteroidExplodeFrameMs": 60,
|
||||
"spaceShooterAsteroidIntervalMs": 300,
|
||||
"spaceShooterShipDamageOverlayUrls": [
|
||||
"/Game/img/ViolentCrime/Rocket-broke-1.png",
|
||||
"/Game/img/ViolentCrime/Rocket-broke-2.png",
|
||||
"/Game/img/ViolentCrime/Rocket-broke-3.png"
|
||||
],
|
||||
"balloonBossMissionTimeSec": 60,
|
||||
"balloonBossBossImageUrl": "/Game/img/MegaVirus/boss.png",
|
||||
"balloonBossPlayerBalloonImageUrls": [
|
||||
"/Game/img/MegaVirus/balloon-1.png",
|
||||
"/Game/img/MegaVirus/balloon-2.png",
|
||||
"/Game/img/MegaVirus/balloon-3.png",
|
||||
"/Game/img/MegaVirus/balloon-4.png",
|
||||
"/Game/img/MegaVirus/balloon-5.png",
|
||||
"/Game/img/MegaVirus/balloon-6.png",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"balloonBossPlayerBalloonFallbackUrl": "/Game/img/MegaVirus/Artboard%209.png",
|
||||
"balloonBossBalloonsPerPlayer": 3,
|
||||
"forcedMinigameKeys": [
|
||||
"gauntlet",
|
||||
"stack",
|
||||
"quiz_carry"
|
||||
],
|
||||
"testSpecialCardByMap": {},
|
||||
"troublesomeForceOffer": false,
|
||||
"troublesomeRollMaxSec": 15,
|
||||
"specialQuizIconExpireSec": 20,
|
||||
"pickVoteSec": 25,
|
||||
"trialVoteSec": 30,
|
||||
"lobbyDebugHud": false,
|
||||
"lobbyDebugHudNames": []
|
||||
}
|
||||
@@ -1 +1 @@
|
||||
{"qbroom1":[{"name":"ผู้เล่น9514","score":17,"characterId":"char-1777017632279","ts":1781850667717},{"name":"MONE","score":10,"characterId":"char-1777017632279","ts":1781850749437},{"name":"tomato","score":9,"characterId":"char-1777017632279","ts":1781850748552},{"name":"Q","score":7,"characterId":"char-1777017632279","ts":1781171902962},{"name":"ผู้เล่น1991","score":5,"characterId":"char-1777017632279","ts":1781850950078},{"name":"ผู้เล่น8916","score":4,"characterId":"char-1777017632279","ts":1781074083031},{"name":"ผู้เล่น2821","score":4,"characterId":"char-1777017632279","ts":1781079179108},{"name":"Weenwild","score":4,"characterId":"char-1777017632279","ts":1781849863580}],"qbroom2":[{"name":"ผู้เล่น4472","score":13,"characterId":"char-1777017632279","ts":1781851033914},{"name":"Q","score":7,"characterId":"char-1777017632279","ts":1781175468983},{"name":"ผู้เล่น2612","score":1,"characterId":"char-1777017632279","ts":1781079252376}],"qbroom3":[{"name":"Q","score":9,"characterId":"char-1777017632279","ts":1781175654893},{"name":"Weenwild","score":2,"characterId":"char-1777017632279","ts":1781849898452}],"qbroom5":[{"name":"Q","score":6,"characterId":"char-1777017632279","ts":1781675299850}],"qbroom6":[{"name":"Q","score":3,"characterId":"char-1777017632279","ts":1781675383175}],"qbroom9":[{"name":"Q","score":7,"characterId":"char-1777017632279","ts":1781696345322}]}
|
||||
{"qbroom1":[{"name":"Nam","score":18,"characterId":"char-1777017632279","ts":1782909257585},{"name":"ผู้เล่น9514","score":17,"characterId":"char-1777017632279","ts":1781850667717},{"name":"MONE","score":10,"characterId":"char-1777017632279","ts":1781850749437},{"name":"tomato","score":9,"characterId":"char-1777017632279","ts":1781850748552},{"name":"Q","score":7,"characterId":"char-1777017632279","ts":1781171902962},{"name":"ผู้เล่น1991","score":5,"characterId":"char-1777017632279","ts":1781850950078},{"name":"ผู้เล่น8916","score":4,"characterId":"char-1777017632279","ts":1781074083031},{"name":"ผู้เล่น2821","score":4,"characterId":"char-1777017632279","ts":1781079179108},{"name":"Weenwild","score":4,"characterId":"char-1777017632279","ts":1781849863580}],"qbroom2":[{"name":"ผู้เล่น4472","score":13,"characterId":"char-1777017632279","ts":1781851033914},{"name":"Q","score":7,"characterId":"char-1777017632279","ts":1781175468983},{"name":"ผู้เล่น2612","score":1,"characterId":"char-1777017632279","ts":1781079252376}],"qbroom3":[{"name":"Q","score":9,"characterId":"char-1777017632279","ts":1781175654893},{"name":"Weenwild","score":2,"characterId":"char-1777017632279","ts":1781849898452}],"qbroom5":[{"name":"Q","score":6,"characterId":"char-1777017632279","ts":1781675299850}],"qbroom6":[{"name":"Q","score":3,"characterId":"char-1777017632279","ts":1781675383175}],"qbroom9":[{"name":"Q","score":7,"characterId":"char-1777017632279","ts":1781696345322}]}
|
||||
@@ -8,16 +8,16 @@
|
||||
"carryMapPanelTheme": {
|
||||
"panelBg": "rgba(255, 0, 0, 0)",
|
||||
"panelBorder": "rgba(255, 255, 255, 0)",
|
||||
"textColor": "rgba(241, 245, 249, 1)",
|
||||
"borderWidthPx": 0,
|
||||
"textColor": "rgba(241, 245, 249, 1)",
|
||||
"questionFontMinPx": 10,
|
||||
"questionFontMaxPx": 24
|
||||
},
|
||||
"quizMapPanelTheme": {
|
||||
"panelBg": "rgba(12, 14, 28, 0)",
|
||||
"panelBorder": "rgba(255, 214, 102, 0)",
|
||||
"borderWidthPx": 2,
|
||||
"textColor": "rgba(255, 224, 102, 1)",
|
||||
"borderWidthPx": 2,
|
||||
"questionFontMinPx": 10,
|
||||
"questionFontMaxPx": 28
|
||||
},
|
||||
@@ -175,7 +175,7 @@
|
||||
"carryChoicePlaqueMapScale": 1.9,
|
||||
"carryWalkSpeedMultForMapId": "",
|
||||
"carryWalkSpeedMult": null,
|
||||
"quizRoundQuestionCount": 3,
|
||||
"quizRoundQuestionCount": 10,
|
||||
"questions": [
|
||||
{
|
||||
"text": "เพื่อนทักขอยืมเงิน แต่ให้โอนเข้าบัญชีชื่อคนอื่น",
|
||||
|
||||
@@ -20435,10 +20435,16 @@
|
||||
try { socket.emit('special-quiz-testmode', { on: true }); } catch (eT) { /* ignore */ }
|
||||
}
|
||||
let botSlots = parseInt(res.botSlotCount, 10);
|
||||
if ((!botSlots || botSlots < 1) && res.maxPlayers > 0 && res.maxPlayers < 6) {
|
||||
botSlots = 6 - res.maxPlayers;
|
||||
/* server ส่ง botSlotCount เสมอ (0 = เลือก ≥4 คน ไม่มีบอท) → เชื่อค่าตรง ๆ.
|
||||
fallback 6-maxP เฉพาะตอน server "ไม่ส่งค่า" เท่านั้น — เดิม fallback ทับ 0 เป็น 6-maxP
|
||||
= client สร้างบอทแต่ server มี 0 → จำนวนบอท 2 ฝั่งไม่ตรง = "ทุกเกมแปลกๆ" */
|
||||
if (!Number.isFinite(botSlots) || botSlots < 0) {
|
||||
botSlots = (res.maxPlayers > 0 && res.maxPlayers < 6) ? (6 - res.maxPlayers) : 0;
|
||||
}
|
||||
if (botSlots > 0) {
|
||||
/* ห้องจริง detective หลายคน (ไม่ใช่ editor preview) → เปิด flow เสมอ แม้บอท 0 คน.
|
||||
เดิม gate botSlots>0 → ≥4 คน(0 บอท) = detectiveCaseFillBots ค้าง false = playBotsEnabled()=false
|
||||
→ turn order / sync / เงื่อนไขจบเกม เพี้ยนทั้งหมด (รวม MG2 ไม่จบ) */
|
||||
if (!previewFillBots) {
|
||||
detectiveCaseFillBots = true;
|
||||
detectiveBotSlotCount = Math.min(6, Math.max(0, botSlots));
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -5438,7 +5438,7 @@
|
||||
<script src="/app-base.js?v=2"></script>
|
||||
<script src="/Game/socket.io/socket.io.js"></script>
|
||||
<script src="js/version.js?v=0.0306"></script>
|
||||
<script src="js/play.js?v=0.006301050"></script>
|
||||
<script src="js/play.js?v=0.006301060"></script>
|
||||
<div class="version-tag">v —</div>
|
||||
<style id="qc-howto-mg2-fix">
|
||||
/* HOW TO PLAY ของ quiz_carry (Minigame-4) -> ให้เหมือน Minigame-2 (gch-mg2-mock)
|
||||
|
||||
+3810
-8058
File diff suppressed because it is too large
Load Diff
+1151
-601
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,602 @@
|
||||
[
|
||||
{
|
||||
"n": 2,
|
||||
"name": "ตัวละครไม่แสดง",
|
||||
"detail": "หน้าเลือกเกม Quiz battle ภาพตัวละครไม่แสดง",
|
||||
"prio": "กลาง",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "",
|
||||
"note": "",
|
||||
"cat": "Minigame 1"
|
||||
},
|
||||
{
|
||||
"n": 3,
|
||||
"name": "ระบบ join เกมมีปัญหา",
|
||||
"detail": "เมื่อเข้ามินิเกม : บางคนเล่นเกมกะบอท บางคนเล่นกะเพื่อน แต่ละคนเข้ามินิเกมแล้วเจอกันบ้าง ไม่เจอกันบ้าง",
|
||||
"prio": "วิกฤต",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "",
|
||||
"note": "",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"n": 5,
|
||||
"name": "ระบบ Host มีปัญหา - 2",
|
||||
"detail": "เมื่อกดออกจากเกม Host เปลี่ยนจากพี่ต้อมเป็นพี่คิวอัติโนมัติ",
|
||||
"prio": "วิกฤต",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "",
|
||||
"note": "",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"n": 6,
|
||||
"name": "ระบบ Host มีปัญหา - 3",
|
||||
"detail": "เมื่อเข้ามินิเกม ทุกคนเห็นตัวเองเป็น host หมดเลย แต่กดเริ่มเกมไม่ได้",
|
||||
"prio": "วิกฤต",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "",
|
||||
"note": "",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"n": 7,
|
||||
"name": "ระบบสีตัวละคร ยังใช้ไม่ได้",
|
||||
"detail": "สีตัวละครเปลี่ยนไปเรื่อย ไม่รุ้ว่าเราสีอะไรแน่ งงไปหมด",
|
||||
"prio": "วิกฤต",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "",
|
||||
"note": "",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"n": 8,
|
||||
"name": "หน้าเข้าร่วมเกมส์",
|
||||
"detail": "ห้องไหนที่เริ่มเกมส์ไปแล้ว เมื่อกดเข้าร่วมแสดง popup alert error ปรับดีไซต์ให้สวยงามกว่านี้",
|
||||
"prio": "กลาง",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "",
|
||||
"note": "",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"n": 9,
|
||||
"name": "เกมวิ่งขึ้นบันได ผิด flow",
|
||||
"detail": "ปรับ flow ให้ถูกต้อง คือ ใครตกจอตาย แต่ถ้าขึ้นไปอยู่บนสุดแล้วจะกระโดดไม่ไปต่อเฉยๆ แต่ไม่ตาย",
|
||||
"prio": "วิกฤต",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "",
|
||||
"note": "",
|
||||
"cat": "Minigame 5"
|
||||
},
|
||||
{
|
||||
"n": 10,
|
||||
"name": "เกมวิ่งขึ้นบันได",
|
||||
"detail": "เวลาหมดแล้ว ให้เล่นรอบ 2 auto \/ รอบ 3 มี popup ให้กดเล่นต่อ",
|
||||
"prio": "",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "",
|
||||
"note": "",
|
||||
"cat": "Minigame 2"
|
||||
},
|
||||
{
|
||||
"n": 11,
|
||||
"name": "เกมยิงลูกโป่ง",
|
||||
"detail": "ฉากเกมยิงลูกโป่ง (MG7 Mega Virus) เล็กไป — ต้องการให้ภาพพื้นหลัง (BG) เต็มจอ แต่การเดิน (movement) และพื้นที่เล่น (area) ต่างๆ คงเดิม",
|
||||
"prio": "กลาง",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-25",
|
||||
"note": "แก้แล้ว (deploy prod play.js?v=0.006250401): BG ของ MG7 เป็นภาพ 16:9 (1920x1080) แต่โค้ดเดิม map ภาพเข้า world rect 4:3 (640x480) ทำให้ภาพถูกบีบ + เหลือขอบดำซ้าย-ขวา = ฉากดูเล็ก. เปลี่ยนการวาด BG ของ balloon_boss เป็นแบบ cover เต็มจอ (รักษาสัดส่วน 16:9, crop ส่วนเกิน, จัดกึ่งกลาง) วาดแยกจาก world layer → กล้อง\/movement\/area ของเกมคงเดิมทุกอย่าง เปลี่ยนเฉพาะพื้นหลังให้เต็มจอ. ไฟล์: Game\/public\/js\/play.js (draw loop, สาขา isBalloonBoss cover-fill).",
|
||||
"cat": "Minigame 7"
|
||||
},
|
||||
{
|
||||
"n": 14,
|
||||
"name": "Room ID",
|
||||
"detail": "เวลาจอยห้องให้กรอกเเค่ ID กับรหัสที่สร้าง",
|
||||
"prio": "ต่ำ",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "",
|
||||
"note": "",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"n": 16,
|
||||
"name": "grid กับ ฉาก ไม่ตรงกัน",
|
||||
"detail": "เกม Quiz battle เกมที่ 1 ฉากกับกริดไม่ตรงกัน ทำให้เดินทะลุ หรือเดินติดในจุดที่ไม่ควรติด",
|
||||
"prio": "สูง",
|
||||
"status": "เปิด",
|
||||
"updated": "",
|
||||
"note": "",
|
||||
"cat": "Minigame 1"
|
||||
},
|
||||
{
|
||||
"n": 17,
|
||||
"name": "ตัวละครวิ่งเร็วเกินไป",
|
||||
"detail": "เกม Quiz battle เกมที่ 1 ตัวละครผู้เล่นเร็วเกินไป",
|
||||
"prio": "กลาง",
|
||||
"status": "เปิด",
|
||||
"updated": "2026-06-25",
|
||||
"note": "",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"n": 18,
|
||||
"name": "Oauth Social log-in error",
|
||||
"detail": "ไม่สามารถ log-inด้วย facebook \/ Google ได้ path: \/oauth-public.php",
|
||||
"prio": "ต่ำ",
|
||||
"status": "เปิด",
|
||||
"updated": "",
|
||||
"note": "",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"n": 19,
|
||||
"name": "หน้า login",
|
||||
"detail": "นโยบายความเป็นส่วนตัวกดไม่ได้",
|
||||
"prio": "กลาง",
|
||||
"status": "เปิด",
|
||||
"updated": "",
|
||||
"note": "",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"n": 20,
|
||||
"name": "แสดงเลข version ตรงมุมจอ",
|
||||
"detail": "แสดงเลข version ตรงมุมจอขวาบนหรือขวาล่างก็ได้",
|
||||
"prio": "ต่ำ",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-24",
|
||||
"note": "✅ แก้แล้ว 2026-06-24 v0.006242500 (รอเทส) — badge มุมขวาล่าง อ่าน ?v= อัตโนมัติ",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"n": 21,
|
||||
"name": "ลดขนาดตัวละคร",
|
||||
"detail": "ลดขนาดตัวละครในห้อง lobby ลงอีก 2เท่า",
|
||||
"prio": "สูง",
|
||||
"status": "เปิด",
|
||||
"updated": "",
|
||||
"note": "",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"n": 22,
|
||||
"name": "เปลี่ยน ui popup ตอนพูดบนหัว",
|
||||
"detail": "แก้ png seq บนหัวใหม่ เป็นแบบอื่น",
|
||||
"prio": "กลาง",
|
||||
"status": "เปิด",
|
||||
"updated": "",
|
||||
"note": "",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"n": 23,
|
||||
"name": "ชื่่อตัวละครทับลำโพง\/ทับ bubble",
|
||||
"detail": "ใน lobby ขยับชื่อลงมาอย่าให้ทับ",
|
||||
"prio": "กลาง",
|
||||
"status": "เปิด",
|
||||
"updated": "",
|
||||
"note": "",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"n": 25,
|
||||
"name": "เพิ่ม ข้อความแจ้งเตือนอัพเดทกลางจอ",
|
||||
"detail": "ถ้ามีการอัพเดทซีน อัพเดทสีตัวละครให้มีป็อปอัพเด้งมากลางหน้าจอ ว่ามีการอัพเดทและให้รอโหลด",
|
||||
"prio": "สูง",
|
||||
"status": "เปิด",
|
||||
"updated": "",
|
||||
"note": "",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"n": 26,
|
||||
"name": "เอาเงาตัวละครออก 1 อัน",
|
||||
"detail": "ตอนนี้ตัวละครมีเงา 2 ชั้น เอาออกไป 1 ชั้น",
|
||||
"prio": "กลาง",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-24",
|
||||
"note": "✅ แก้แล้ว 2026-06-24 v0.006242500 (รอเทส) — ปิด default-shadow overlay เหลือเงาในสไปรต์",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"n": 27,
|
||||
"name": "optimize ตัวละครให้เล็กลงอีก มันโหลดช้า",
|
||||
"detail": "",
|
||||
"prio": "สูง",
|
||||
"status": "เปิด",
|
||||
"updated": "",
|
||||
"note": "",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"n": 28,
|
||||
"name": "ปุ่ม start ใน lobby",
|
||||
"detail": "ทำให้ดูโต้ตอบหน่อย เช่นพอเดินเข้าไปใกล้ให้มัน glow ขึ้นมา",
|
||||
"prio": "กลาง",
|
||||
"status": "เปิด",
|
||||
"updated": "",
|
||||
"note": "",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"n": 32,
|
||||
"name": "เอา popup ขออนุญาตใช้ไมค์ออกไปเลย น่ารำคาญ",
|
||||
"detail": "",
|
||||
"prio": "สูง",
|
||||
"status": "เปิด",
|
||||
"updated": "",
|
||||
"note": "",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"n": 34,
|
||||
"name": "เกม ใช่ หรือไม่ : ตอนจบบั๊ค",
|
||||
"detail": "ตอนสรุปคะแนน ยังนับเวลาอยุ่ และขึ้น gameover ทับหน้าสรุปคะแนน",
|
||||
"prio": "วิกฤต",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-24",
|
||||
"note": "✅ แก้แล้ว 2026-06-24 v0.006242500 (รอเทส) — MG1 ใช่\/ไม่: capture mg1AnyScore ก่อนล้าง (gameover) + guard quiz-phase หลังจบ (timer)",
|
||||
"cat": "Minigame 1"
|
||||
},
|
||||
{
|
||||
"n": 35,
|
||||
"name": "เกมวิ่ง : กดปุ่มไม่กระโดด",
|
||||
"detail": "ปุ่ม jump กดแล้วไม่กระโดด",
|
||||
"prio": "วิกฤต",
|
||||
"status": "เปิด",
|
||||
"updated": "",
|
||||
"note": "",
|
||||
"cat": "Minigame 5"
|
||||
},
|
||||
{
|
||||
"n": 36,
|
||||
"name": "เกมวิ่ง : ตอนจบบั๊ค วิ่งเลยฉาก",
|
||||
"detail": "ตอนจบบั๊ค วิ่งเลยฉาก (ในบางรอบ)",
|
||||
"prio": "วิกฤต",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-24",
|
||||
"note": "✅ แก้แล้ว 2026-06-24 v0.006242500 (รอเทส) — MG2 วิ่งเลยฉาก: walk-to-finish ค่อยๆเดินเข้าเส้น + clamp ไม่เลยเส้น",
|
||||
"cat": "Minigame 2"
|
||||
},
|
||||
{
|
||||
"n": 40,
|
||||
"name": "จำนวนคน ให้เล่นได้ตั้งแต่ 4-6 คน",
|
||||
"detail": "กรณีเลือกผู้เล่นตั้งแต่ 4 คนขึ้นไปไม่ต้องมี bot",
|
||||
"prio": "วิกฤต",
|
||||
"status": "เปิด",
|
||||
"updated": "",
|
||||
"note": "",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"n": 41,
|
||||
"name": "เกม หยิบแผ่นป้าย",
|
||||
"detail": "ต้องเล่นให้ครบ 10 ข้อก่อน ค่อยจบเกม (ตอนนี้เล่นถูก 1 ข้อ จบเกมเลย)",
|
||||
"prio": "วิกฤต",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-24",
|
||||
"note": "✅ แก้แล้ว 2026-06-24 v0.006242500 (รอเทส) — MG4 หยิบป้าย: ใช้ map จริง (currentPlayMapId) เปิด mission flow + default 10 ข้อ",
|
||||
"cat": "Minigame 4"
|
||||
},
|
||||
{
|
||||
"n": 42,
|
||||
"name": "เกม กระโดด",
|
||||
"detail": "ท่ากระโดดแปลก ยืนซอยเท้าทำไม",
|
||||
"prio": "กลาง",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-26",
|
||||
"note": "anim ไม่ sync: ยืนบนแท่นที่เลื่อนลง world Y เปลี่ยนทุกเฟรม → ปลายทางเดา isWalking จาก delta = เห็น ซอยเท้า ตลอด. แก้: ส่ง isWalking จริงใน move (jsWalking) + ปลายทางใช้ค่านั้น (play.js ~19162\/20501\/24930). v0.006260100",
|
||||
"cat": "Minigame 5"
|
||||
},
|
||||
{
|
||||
"n": 43,
|
||||
"name": "เกม กระโดด",
|
||||
"detail": "ขั้นบันไดมันถี่ไป บางทีกระโดดแล้วเบิ้ลขั้นเลย ปรับให้ระยะห่างแต่ละขั้นมันเท่ากัน",
|
||||
"prio": "สูง",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-26",
|
||||
"note": "ขั้นถี่\/ไม่เท่า → เบิ้ลขั้น+ติดรอแท่ง. แก้ layout mnptfts2: ระยะเท่ากันทุกขั้น (gap 3 แถว, rows 2\/5\/8\/11\/14\/17, zigzag กว้าง6) ในโซนปลอดภัย (เลี่ยง hazard แถว 0\/18\/19). reach apex 4.5 > 3 = ถึงทุกขั้น (ไม่ติดรอ #43b) + ขั้นถัดไป-อีกขั้น 6 แถว > reach = กระโดดข้ามไม่ได้ (ไม่เบิ้ล). seam รอยต่อ wrap ห่าง 5 แถว 1 จุด\/รอบ (h=20 หาร 3 ไม่ลง). restart service หลังแก้แมป | รอบ2: (ก) แก้ลายแท่นบิด — เดิม width เท่ากัน(6)ทำให้ภาพถูกบีบ → ตั้ง width = ขนาดจริงของรูป (เล็ก=var3 7ช่อง\/212px, กลาง=var2 13ช่อง\/389px) วาดได้สัดส่วนจริงไม่บิด. (ข) ติดบนสุด = seam รอยต่อ wrap 5แถว >ระยะกระโดด(apex4.5) → bump jumpSurviveJumpHeightMult 1.5→1.7 (apex 5.1) ให้ข้าม seam ได้ แต่ข้าม2ขั้น(6แถว)ยังไม่ได้. var1(ใหญ่ 46ช่อง)ใหญ่เกินแมป35 ใช้ไม่ได้ไม่บิด → ใช้ เล็ก\/กลาง",
|
||||
"cat": "Minigame 5"
|
||||
},
|
||||
{
|
||||
"n": 44,
|
||||
"name": "เกมกระโดด",
|
||||
"detail": "อีเวนท์พิเศษ (ทนาย\/เทพความรู้) หายไป",
|
||||
"prio": "วิกฤต",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-24",
|
||||
"note": "✅ แก้แล้ว 2026-06-24 v0.006242500 (รอเทส) — MG5 อีเวนต์พิเศษ: เพิ่ม branch jump_survive วาง icon บน platform",
|
||||
"cat": "Minigame 5"
|
||||
},
|
||||
{
|
||||
"n": 46,
|
||||
"name": "เกมยิิงอุกาบาด",
|
||||
"detail": "สีตัวละครยังไม่ตรงกับที่เลือกมา",
|
||||
"prio": "วิกฤต",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-24",
|
||||
"note": "✅ แก้แล้ว 2026-06-24 v0.006242500 (รอเทส) — MG6 สี: ยาน Rocket-1..8 ตาม lobby theme ของผู้เล่น",
|
||||
"cat": "Minigame 6"
|
||||
},
|
||||
{
|
||||
"n": 47,
|
||||
"name": "เกมยิิงอุกาบาด",
|
||||
"detail": "อุกาบาดให้พุ่งเร็วกว่านี้ และลูกเล็กกว่านี้เกมง่ายไป",
|
||||
"prio": "สูง",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-24",
|
||||
"note": "✅ แก้แล้ว 2026-06-24 v0.006242500 (รอเทส) — MG6: อุกาบาตเร็วขึ้น (+~50%) + เล็กลง (48->34\/11->8)",
|
||||
"cat": "Minigame 6"
|
||||
},
|
||||
{
|
||||
"n": 50,
|
||||
"name": "ผู้เล่น 6 คน: บางเกมเล่นได้แค่ 5 (คนที่ 6 หายจากสรุป)",
|
||||
"detail": "สรุปคะแนนฝั่ง client slice(0,5) ตัดคนที่ 6 — แก้เป็น slice(0,6) ทุกมินิเกม (MG1\/3\/4\/5\/6\/7)",
|
||||
"prio": "วิกฤต",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-24",
|
||||
"note": "✅ แก้แล้ว 2026-06-24 v0.006242500 (รอเทส)",
|
||||
"cat": "Minigame 1"
|
||||
},
|
||||
{
|
||||
"n": 51,
|
||||
"name": "ผู้เล่น 6 คน: คะแนนตอนจบไม่ตรงกันแต่ละจอ",
|
||||
"detail": "MG1 merge คะแนน server \/ MG6,7 merge คะแนน host -> ครบ 6 ตรงกัน (MG3 ยัง local)",
|
||||
"prio": "วิกฤต",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-24",
|
||||
"note": "✅ แก้แล้ว 2026-06-24 v0.006242500 (รอเทส)",
|
||||
"cat": "Minigame 6"
|
||||
},
|
||||
{
|
||||
"n": 53,
|
||||
"name": "เพิ่มหน้าโหลด (loading) ตอนเข้าเกม",
|
||||
"detail": "overlay spinner กันเห็นจอเปล่า\/asset แว่บ ซ่อนเมื่อ draw เฟรมแรก + safety 8s",
|
||||
"prio": "สูง",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-25",
|
||||
"note": "✅ แก้แล้ว 2026-06-25 v0.006242530 (รอเทส)",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"n": 54,
|
||||
"name": "host โหลดนานมากตอนเข้าเกม",
|
||||
"detail": "optimize asset\/char (เกี่ยว row 28) — loading overlay ช่วยซ่อน แต่ยังโหลดช้าจริง",
|
||||
"prio": "สูง",
|
||||
"status": "เปิด",
|
||||
"updated": "2026-06-25",
|
||||
"note": "loading overlay บังอาการแล้ว · root = canvas tint ภาพตัวละครใหญ่ (source ไม่อยู่ใน repo) → ต้อง optimize ภาพแยก",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"n": 56,
|
||||
"name": "ตอนกลับ LobbyB โชว์รูปแรกก่อนแล้วค่อยถูก",
|
||||
"detail": "เหมือน #1 การ์ด — ต้องใส่ loading state ตอน return LobbyB ด้วย (มี room-loading-overlay อยู่แต่ซ่อนเร็วไป)",
|
||||
"prio": "สูง",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-25",
|
||||
"note": "✅ แก้แล้ว 2026-06-25 v0.0308 — การ์ดมี spinner (#1) + room-loading overlay ใส่ % + รอ char preload เสร็จก่อนซ่อน + safety 12s",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"n": 58,
|
||||
"name": "ปุ่ม \"เล่นเกมต่อ\" ไม่รู้ว่าค้างหรือรอคนอื่น",
|
||||
"detail": "text \"รอผู้เล่นอื่น (X\/Y)\" ถูก set อยู่แล้วแต่ CSS font-size:0 ซ่อน → เพิ่ม .is-waiting CSS โชว์ข้อความ+spinner แทนรูปปุ่ม",
|
||||
"prio": "สูง",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-25",
|
||||
"note": "✅ แก้แล้ว 2026-06-25 v0.0309\/server (รอเทส)",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"n": 60,
|
||||
"name": "ทำหน้า testcase บนเซิร์ฟเวอร์",
|
||||
"detail": "srv1361159.hstgr.cloud\/testcase — bug list + filter\/search\/นับสถานะ generate จาก xlsx",
|
||||
"prio": "กลาง",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-25",
|
||||
"note": "✅ แก้แล้ว 2026-06-25 v0.0309\/server (รอเทส)",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"n": 62,
|
||||
"name": "MG1\/MG4 user\/bot ติดกัน (เดินไม่ผ่าน)",
|
||||
"detail": "เพิ่ม anti-stuck: ดันชนเพื่อน → เขย่า (shake) + ปลดล็อกเดินผ่านกันชั่วคราว คงกำแพง\/area\/quiz-lock; ทั้งผู้เล่นและบอท",
|
||||
"prio": "สูง",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-25",
|
||||
"note": "✅ แก้แล้ว 2026-06-25 v0.006250100 (รอเทส)",
|
||||
"cat": "Minigame 4"
|
||||
},
|
||||
{
|
||||
"n": 65,
|
||||
"name": "อีเวนต์พิเศษ (ทนาย\/เทพ) = 1 ใน 3 (ตามดีไซน์)",
|
||||
"detail": "ดีไซน์: 3 เกม\/LobbyB เล่นได้เกมละ 3 ครั้ง · อีเวนต์พิเศษ 1\/3 ต่อครั้ง (1 ใบ) · Test Mode บังคับ. revert การแก้ \">1 ต่อรอบ\" กลับเป็น 1 ใบ\/ครั้งที่ติด",
|
||||
"prio": "กลาง",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-25",
|
||||
"note": "✅ revert 2026-06-25 — กลับเป็น 1\/3 (1 ใบ\/ครั้งที่ติด) ตามดีไซน์ · ยืนยันโครงสร้าง 3เกม×3ครั้ง + disruptor toggle (>4คน\/Test Mode) ถูกต้อง",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"n": 71,
|
||||
"name": "หน้าผลชนะ (โพเดียม) ตัวละครลอย ไม่ยืนบนพื้น",
|
||||
"detail": "หน้า \"ยินดีด้วย ทีมนักสืบ ชนะ!\" ตัวละครผู้ชนะลอยอยู่กลางอากาศ ไม่ยืนบนพื้นเวที",
|
||||
"prio": "กลาง",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-25",
|
||||
"note": "แก้แล้ว (deploy prod room-lobby.js?v=0.0312): พื้นหลัง win-bg เดิม center\/cover ทำให้พื้นเวทีถูก crop เลื่อน + podium ตั้ง bottom:9% ตัวละครเลยลอย. แก้เป็น (1) ปักพื้นหลังไว้ขอบล่าง background-position:center bottom -> พื้นเวทีติดขอบล่างจอเสมอทุกสัดส่วน (2) ลด podium bottom 9% -> 2% ให้ตัวละครยืนบนพื้น. ไฟล์: Game\/public\/js\/room-lobby.js (injectFinalResultStyle, #trial-final-podium).",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"n": 74,
|
||||
"name": "แถวหน้าตัวละคร (ready ใต้ปุ่ม HOW TO) ค้างบนจอระหว่างเล่นเกม",
|
||||
"detail": "หลังกด HOW TO\/Ready แล้วเริ่มเกม กล่องแถว avatar คนที่กด ready (ใต้ปุ่ม) ไม่ถูกซ่อน ค้างอยู่กลางจอล่างทับฉากเกม (เห็นชัดใน MG3 stack) — กระทบ MG1\/3\/5\/6",
|
||||
"prio": "กลาง",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-26",
|
||||
"note": "กล่องลอย #gch-ready-avatars-float ถูกซ่อนเฉพาะ MG2 (dismissGauntletCrownHowtoOverlayPlay) + MG4 (quiz_carry) เท่านั้น. begin*CountdownThenRun ของ MG1\/3\/5\/6 (stack\/jump\/space\/quiz) ตั้ง gauntletCrownHowtoVisible=false แต่ไม่เรียก hideReadyAvatarsFloat() → กล่องค้าง display:flex ทั้งเกม (ไม่มี driver เรียกใหม่ตอน live). แก้: เพิ่ม hideReadyAvatarsFloat() ในทั้ง 4 ฟังก์ชันเริ่มเกม (play.js). v0.006260101",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"name": "block สีไม่ตรงในฝั่ง client",
|
||||
"detail": "",
|
||||
"prio": "กลาง",
|
||||
"status": "เปิด",
|
||||
"note": "",
|
||||
"cat": "Minigame 3",
|
||||
"updated": "2026-06-26",
|
||||
"n": 75
|
||||
},
|
||||
{
|
||||
"name": "บางที client บางคนเล่นไม่ได้",
|
||||
"detail": "",
|
||||
"prio": "กลาง",
|
||||
"status": "เปิด",
|
||||
"note": "",
|
||||
"cat": "Minigame 3",
|
||||
"updated": "2026-06-26",
|
||||
"n": 76
|
||||
},
|
||||
{
|
||||
"n": 82,
|
||||
"name": "MG1: หน้า How-to ใหม่ (SAFE\/SCAM)",
|
||||
"detail": "เปลี่ยน how-to เป็น \"วิเคราะห์ภัยร้าย\" (เดิมเป็นดีไซน์ MG4)",
|
||||
"prio": "กลาง",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-26",
|
||||
"note": "วิธีเทส: เข้า MG1 → หน้า HOW TO PLAY ต้องเป็น \"วิเคราะห์ภัยร้าย ปกป้องระบบให้ปลอดภัย\" มี SAFE\/SCAM + การ์ด COMMON\/RARE\/LEGENDARY",
|
||||
"cat": "Minigame 1"
|
||||
},
|
||||
{
|
||||
"n": 83,
|
||||
"name": "MG1: ปุ่ม READY 2 สถานะ",
|
||||
"detail": "ยังไม่กด=ฟ้า \/ กดแล้ว=เขียว+เครื่องหมายถูก",
|
||||
"prio": "ต่ำ",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-26",
|
||||
"note": "วิธีเทส: หน้า ready MG1 → ปุ่มฟ้า · กด → เขียวมี ✓ · กดอีกที → กลับฟ้า",
|
||||
"cat": "Minigame 1"
|
||||
},
|
||||
{
|
||||
"n": 84,
|
||||
"name": "MG1: auto-start เมื่อทุกคน ready",
|
||||
"detail": "ครบ ready → server เริ่มเอง ไม่ต้องรอ host กด START",
|
||||
"prio": "สูง",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-26",
|
||||
"note": "วิธีเทส: ทุกคนกด READY ครบ → เกมเริ่มเอง (นับ 3-2-1) ไม่ต้องมีใครกด START · ลองให้ host ออกก่อนคนสุดท้าย ready → ยังเริ่มได้",
|
||||
"cat": "Minigame 1"
|
||||
},
|
||||
{
|
||||
"n": 85,
|
||||
"name": "MG1: คน\/บอท วิ่งเร็วเท่ากัน",
|
||||
"detail": "movement time-based",
|
||||
"prio": "กลาง",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-26",
|
||||
"note": "วิธีเทส: 2 เครื่องเล่น MG1 พร้อมกัน → คนวิ่งเร็วเท่ากัน · บอทวิ่งเข้าโซน SAFE\/SCAM สม่ำเสมอ",
|
||||
"cat": "Minigame 1"
|
||||
},
|
||||
{
|
||||
"n": 86,
|
||||
"name": "MG1: ผีหาย (avatar ไม่ซ้ำ)",
|
||||
"detail": "server ส่ง play-roster ทุก 1.5s ตัดตัวซ้ำระหว่างเล่น",
|
||||
"prio": "สูง",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-26",
|
||||
"note": "วิธีเทส: เล่น MG1 แล้วมีคนหลุด\/reconnect → ต้องไม่มีตัวซ้ำขยับไม่ได้ค้างในสนาม",
|
||||
"cat": "Minigame 1"
|
||||
},
|
||||
{
|
||||
"n": 87,
|
||||
"name": "MG1: บอทเดินต่อแม้ host หลุด",
|
||||
"detail": "server เป็นเจ้าของการเดินบอท quiz",
|
||||
"prio": "วิกฤต",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-26",
|
||||
"note": "วิธีเทส: เล่น MG1 กับบอท · host รีเฟรช\/ออกกลางเกม → บอทต้องเดิน+วิ่งเข้าโซนต่อ ไม่หยุดนิ่ง",
|
||||
"cat": "Minigame 1"
|
||||
},
|
||||
{
|
||||
"n": 88,
|
||||
"name": "MG1: คะแนนบอทตรงกันทุกจอ",
|
||||
"detail": "server คิดคะแนนบอท (เดิม host คิดเอง ไม่ sync)",
|
||||
"prio": "สูง",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-26",
|
||||
"note": "วิธีเทส: 2 เครื่องเล่น MG1 กับบอท → คะแนนบอทบนกระดานต้องตรงกันทั้ง 2 จอทุกข้อ",
|
||||
"cat": "Minigame 1"
|
||||
},
|
||||
{
|
||||
"n": 89,
|
||||
"name": "MG1: ผีบอทอยู่ในโซนผี ไม่ทับ SAFE\/SCAM",
|
||||
"detail": "บอทตอบผิด=ผี ตำแหน่งจริงอยู่ในโซนผี (กลาง-บน) — แก้การวาดภาพผีที่เคยห้อยลงทับสนามคำตอบ",
|
||||
"prio": "สูง",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-27",
|
||||
"note": "วิธีเทส: เล่น MG1 กับบอท ให้มีบอทตอบผิด → ตัวผีต้องลอยอยู่แถบกลาง-บน (เหนือ SAFE\/SCAM) ไม่ห้อยลงทับช่อง SAFE\/SCAM",
|
||||
"cat": "Minigame 1"
|
||||
},
|
||||
{
|
||||
"n": 90,
|
||||
"name": "MG1: บอทเดินลื่น ไม่วาป",
|
||||
"detail": "บอท quiz เดินจาก server (time-based) + lerp นุ่ม",
|
||||
"prio": "กลาง",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-27",
|
||||
"note": "วิธีเทส: เล่น MG1 กับบอท → บอทเดินเข้าโซน SAFE\/SCAM ลื่น ไม่กระตุก ไม่วาปไปมา",
|
||||
"cat": "Minigame 1"
|
||||
},
|
||||
{
|
||||
"n": 92,
|
||||
"name": "Admin: ตัวเลขผู้ใช้ออนไลน์ + ความจุ",
|
||||
"detail": "widget 👥 N\/500 สบาย\/เริ่มหนัก\/หนัก (เขียว\/เหลือง\/แดง) บนแถบ Admin",
|
||||
"prio": "ต่ำ",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-27",
|
||||
"note": "วิธีเทส: เปิดหน้า Admin → มุมขวาบนมี 👥 ตัวเลขผู้เล่นออนไลน์ · hover เห็น CPU\/RAM\/ห้อง\/socket · อัปเดตทุก 10 วิ",
|
||||
"cat": "อื่นๆ"
|
||||
},
|
||||
{
|
||||
"n": 93,
|
||||
"name": "MG1: หลุดกลางเกม → บอท takeover ในที่เดิม",
|
||||
"detail": "บอทแทนทันที สี\/ตำแหน่ง\/สถานะเดิม (คะแนนต่อ, ตกรอบ→ผีต่อ)",
|
||||
"prio": "สูง",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-27",
|
||||
"note": "วิธีเทส: เล่น MG1 หลายคน → คนนึงปิดแท็บกลางเกม → ตัวละครต้องไม่หาย กลายเป็นบอทสีเดิม ตำแหน่งเดิม เล่นต่อ + มี \"(บอท)\" หลังชื่อ",
|
||||
"cat": "Minigame 1"
|
||||
},
|
||||
{
|
||||
"n": 94,
|
||||
"name": "MG1: หลุดแล้วกลับมาใน 10วิ → คืนสิทธิ์เล่น",
|
||||
"detail": "reconnect-undo: ถอนบอท takeover คืนตัวจริง (กันตัวซ้ำ)",
|
||||
"prio": "สูง",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-27",
|
||||
"note": "วิธีเทส: เล่น MG1 → refresh กลางเกม (กลับมาใน 10วิ) → ต้องเล่นเองต่อได้ ไม่มีบอทซ้ำกับตัวเรา",
|
||||
"cat": "Minigame 1"
|
||||
},
|
||||
{
|
||||
"n": 95,
|
||||
"name": "MG1: host หลุดในหน้า how-to → เล่นต่อได้",
|
||||
"detail": "expectedActive ลดตอนคนออกถาวร → host ใหม่กด START ได้ (เดิมค้าง \"รอ x\/y\")",
|
||||
"prio": "วิกฤต",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-27",
|
||||
"note": "วิธีเทส: เข้า MG1 how-to หลายคน → host ปิดแท็บ → รอ ~10วิ → host ใหม่กด START ได้ + บอทสีเดิมเล่นแทน",
|
||||
"cat": "Minigame 1"
|
||||
},
|
||||
{
|
||||
"n": 98,
|
||||
"name": "MG how-to: เห็น countdown ตอนมีคนหลุด",
|
||||
"detail": "grace banner z-index ขึ้นเหนือ how-to overlay",
|
||||
"prio": "ต่ำ",
|
||||
"status": "แก้ไขแล้ว",
|
||||
"updated": "2026-06-27",
|
||||
"note": "วิธีเทส: ในหน้า how-to มีคนหลุด → ต้องเห็นแถบ \"🔌 ... หลุด — รอกลับมา N วิ\" ลอยเหนือ how-to (ไม่ถูกบัง)",
|
||||
"cat": "Minigame 1"
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user