до уезда кнопки

This commit is contained in:
2025-10-02 11:53:57 +03:00
parent a41e972d38
commit 38e31ffa94
21 changed files with 1620 additions and 3833 deletions

View File

@@ -1 +1 @@
{"0":{"_testing":12345,"pause":false,"gamersCounter":7,"init":null,"sharik":{"playersCounter":0,"startTime":null,"playerId":null},"smena":{"adminId":183,"stime":"2025-09-30T07:38:19.870Z","money_razm_open":5000,"comm_open":"123123123","adminName":"Соломин Вадим"}},"1":{"game":0,"patr":0,"patrOk":0,"patrAdd":0,"gamer":{"gamerId":3,"games":[],"gameCounter":0},"startTime":null,"timeOut":false,"canHaveBonus":false,"isBonus":false},"2":{"game":0,"gamer":{"gamerId":null,"games":[]},"timeOut":false,"canHaveBonus":false},"3":{"game":0,"patr":0,"patrOk":0,"patrAdd":0,"gamer":{"gamerId":null,"games":[]},"startTime":null,"timeOut":false,"canHaveBonus":false,"isBonus":false},"4":{"game":0,"patr":0,"patrOk":0,"patrAdd":0,"gamer":{"gamerId":null,"games":[]},"startTime":null,"timeOut":false,"canHaveBonus":false,"isBonus":false},"5":{"game":0,"gamer":{"gamerId":4,"games":[],"gameCounter":0},"timeOut":false,"canHaveBonus":false},"6":{"game":0,"patr":0,"patrOk":0,"patrAdd":0,"gamer":{"gamerId":7,"games":[],"gameCounter":0},"startTime":null,"timeOut":false,"canHaveBonus":false,"isBonus":false}}
{"0":{"_testing":12345,"pause":false,"gamersCounter":4,"init":null,"sharik":{"playersCounter":0,"startTime":null,"playerId":null},"smena":{"adminId":183,"stime":"2025-10-02T07:09:50.971Z","money_razm_open":5000,"comm_open":"123123","adminName":"Соломин Вадим"}},"1":{"game":0,"gamer":{"gamerId":3,"games":[],"gameCounter":0},"timeOut":false,"canHaveBonus":false},"2":{"game":0,"gamer":{"gamerId":1,"games":[],"gameCounter":0},"timeOut":false,"canHaveBonus":false},"3":{"game":0,"gamer":{"gamerId":2,"games":[],"gameCounter":0},"timeOut":false,"canHaveBonus":false},"4":{"game":0,"gamer":{"gamerId":4,"games":[],"gameCounter":0},"timeOut":false,"canHaveBonus":false},"5":{"game":0,"patr":0,"patrOk":0,"patrAdd":0,"gamer":{"gamerId":null,"games":[],"gameCounter":0},"startTime":null,"timeOut":false,"canHaveBonus":false,"isBonus":false},"6":{"game":0,"patr":0,"patrOk":0,"patrAdd":0,"gamer":{"gamerId":null,"games":[],"gameCounter":0},"startTime":null,"timeOut":false,"canHaveBonus":false,"isBonus":false}}

View File

@@ -1 +1 @@
{"79616613126":"pUowhCyhQJ1ZByL","79026527096":"ORgSYM7l365cJ2E"}
{"79616613126":"hhG1EXYj6YcEtPi","79026527096":"ORgSYM7l365cJ2E"}

View File

@@ -1 +1 @@
{"groups":{"10":{"title":"По банкам","img":"po_bankam.png"},"11":{"title":"По мишеням","img":"po_mish.png"},"12":{"title":"Беспроигрышные","img":"bez_proig.png"}},"games":{"1":{"_id":1,"group":1,"patr":999,"title":"Престрелка","info":"техническая игра","cost":0,"color":"red","priz":0},"2":{"_id":2,"group":1,"patr":999,"title":"Престрелка","info":"пристрелка для техников","cost":0,"color":"red","priz":0},"99":{"_id":99,"title":"Малая призовая ","cost":400,"gpriz":false,"group":10,"info":"20 выстрелов, Малый приз, Без выбора","isGameActive":true,"patr":20,"priz":1,"color":"#fbff00"},"101":{"_id":101,"title":"Средняя призовая","cost":800,"gpriz":false,"group":10,"info":"20 выстрелов, Средний приз, Без выбора","isGameActive":true,"patr":20,"priz":2,"color":"#00ff04"},"102":{"_id":102,"title":"Большая призовая","cost":900,"gpriz":false,"group":10,"info":"20 выстрелов, Большой приз, Без выбора","isGameActive":true,"patr":20,"priz":3,"color":"#ff0000"},"103":{"_id":103,"title":"Малая призовая ","cost":400,"gpriz":false,"group":11,"info":"10 выстрелов, Малый приз, Без выбора","isGameActive":true,"patr":10,"priz":1,"color":"#eeff00"},"104":{"_id":104,"title":"Средняя призовая","cost":800,"gpriz":false,"group":11,"info":"10 выстрелов, Средний приз, Без выбора","isGameActive":true,"patr":10,"priz":2,"color":"#00ff33"},"105":{"_id":105,"title":"Большая призовая","cost":900,"gpriz":false,"group":11,"info":"10 выстрелов, Большой приз, Без выбора","isGameActive":true,"patr":10,"priz":3,"color":"#ff0000"},"106":{"_id":106,"title":"Малая беспроигрышная","cost":800,"gpriz":true,"group":12,"info":"20 выстрелов, Малый приз, с выбором ","isGameActive":true,"patr":20,"priz":1,"color":"#ff00ea"},"107":{"_id":107,"title":"Средняя беспроигрышная","cost":1900,"gpriz":true,"group":12,"info":"20 выстрелов, Малый приз, с выбором ","isGameActive":true,"patr":20,"priz":2,"color":"#0011ff"},"108":{"_id":108,"title":"Большая беспроигрышная","cost":2300,"gpriz":true,"group":12,"info":"20 выстрелов, Малый приз, с выбором ","isGameActive":true,"patr":20,"priz":3,"color":"#ff7300"},"109":{"_id":109,"title":"СУПЕРИГРА ПО БАНКАМ ","cost":5000,"gpriz":false,"group":10,"info":"20 выстрелов, Супер приз","isGameActive":true,"patr":20,"priz":5,"color":"#bbff00"},"110":{"_id":110,"title":"СУПЕРИГРА ДОП ЖИЗНЬ ","cost":1000,"gpriz":false,"group":10,"info":"20 выстрелов, дополнительная жизнь","isGameActive":true,"patr":20,"priz":5,"color":"#ffffff"},"111":{"_id":111,"title":"СУПЕРИГРА ПО МИШЕНЯМ","cost":5000,"gpriz":false,"group":11,"info":"10 выстрелов, Супер приз","isGameActive":true,"patr":10,"priz":5,"color":"#ff0000"},"112":{"_id":112,"title":"СУПЕРИГРА ПО МИШЕНЯМ","cost":1000,"gpriz":false,"group":11,"info":"10 выстрелов, дополнительная жизнь","isGameActive":true,"patr":10,"priz":5,"color":"#000000"},"113":{"_id":113,"title":"ИГРА ПО КУПОНУ ","cost":0,"gpriz":false,"group":10,"info":"5 выстрелов","isGameActive":true,"patr":5,"priz":1,"color":"#00ff11"}}}
{"groups":{"10":{"title":"По банкам","img":"po_bankam.png"},"11":{"title":"По мишеням","img":"po_mish.png"},"12":{"title":"Беспроигрышные","img":"bez_proig.png"}},"games":{"1":{"_id":1,"group":1,"patr":999,"title":"Престрелка","info":"техническая игра","cost":0,"color":"red","priz":0},"2":{"_id":2,"group":1,"patr":999,"title":"Престрелка","info":"пристрелка для техников","cost":0,"color":"red","priz":0},"99":{"_id":99,"title":"Малая призовая ","cost":400,"gpriz":false,"group":10,"info":"20 выстрелов, Малый приз, Без выбора","isGameActive":true,"patr":20,"priz":1,"color":"#fbff00"},"101":{"_id":101,"title":"Средняя призовая","cost":800,"gpriz":false,"group":10,"info":"20 выстрелов, Средний приз, Без выбора","isGameActive":true,"patr":20,"priz":2,"color":"#00ff04"},"102":{"_id":102,"title":"Большая призовая","cost":900,"gpriz":false,"group":10,"info":"20 выстрелов, Большой приз, Без выбора","isGameActive":true,"patr":20,"priz":3,"color":"#ff0000"},"103":{"_id":103,"title":"Малая призовая ","cost":400,"gpriz":false,"group":11,"info":"10 выстрелов, Малый приз, Без выбора","isGameActive":true,"patr":10,"priz":1,"color":"#eeff00"},"104":{"_id":104,"title":"Средняя призовая","cost":800,"gpriz":false,"group":11,"info":"10 выстрелов, Средний приз, Без выбора","isGameActive":true,"patr":10,"priz":2,"color":"#00ff33"},"105":{"_id":105,"title":"Большая призовая","cost":900,"gpriz":false,"group":11,"info":"10 выстрелов, Большой приз, Без выбора","isGameActive":true,"patr":10,"priz":3,"color":"#ff0000"},"106":{"_id":106,"title":"Малая беспроигрышная","cost":"800","gpriz":true,"group":12,"info":"20 выстрелов, Малый приз, с выбором ","isGameActive":true,"patr":20,"priz":1,"color":"#ff00ea"},"107":{"_id":107,"title":"Средняя беспроигрышная","cost":1900,"gpriz":true,"group":12,"info":"20 выстрелов, Малый приз, с выбором ","isGameActive":true,"patr":20,"priz":2,"color":"#0011ff"},"108":{"_id":108,"title":"Большая беспроигрышная","cost":2300,"gpriz":true,"group":12,"info":"20 выстрелов, Малый приз, с выбором ","isGameActive":true,"patr":20,"priz":3,"color":"#ff7300"},"109":{"_id":109,"title":"СУПЕРИГРА ПО БАНКАМ ","cost":5000,"gpriz":false,"group":10,"info":"20 выстрелов, Супер приз","isGameActive":true,"patr":20,"priz":5,"color":"#bbff00"},"110":{"_id":110,"title":"СУПЕРИГРА ДОП ЖИЗНЬ ","cost":"1000","gpriz":false,"group":10,"info":"20 выстрелов, дополнительная жизнь","isGameActive":true,"patr":20,"priz":5,"color":"#ffffff"},"111":{"_id":111,"title":"СУПЕРИГРА ПО МИШЕНЯМ","cost":5000,"gpriz":false,"group":11,"info":"10 выстрелов, Супер приз","isGameActive":true,"patr":10,"priz":5,"color":"#ff0000"},"112":{"_id":112,"title":"СУПЕРИГРА ПО МИШЕНЯМ","cost":1000,"gpriz":false,"group":11,"info":"10 выстрелов, дополнительная жизнь","isGameActive":true,"patr":10,"priz":5,"color":"#000000"},"113":{"_id":113,"title":"ИГРА ПО КУПОНУ ","cost":0,"gpriz":false,"group":10,"info":"5 выстрелов","isGameActive":true,"patr":5,"priz":1,"color":"#00ff11"}}}

View File

@@ -1 +1 @@
{"day":"2025-09-30T10:00:50.183Z","num":40}
{"day":"2025-10-02T10:00:50.183Z","num":30}

View File

@@ -1 +1 @@
{"admin":44,"info":347}
{"admin":44,"info":418}

View File

@@ -2603,12 +2603,24 @@ exports.handleESPResponse = function(data) {
}
// Отправляем уведомление всем клиентам
console.log(`[ESP TEST] 📤 Отправляем команду start клиентам:`, {
// ИСПРАВЛЕНИЕ: Отправляем только сериализуемые данные, как в обычном режиме
console.log(`[ESP TEST] 📤 Отправляем команду start клиентам для порта ${line}`);
safeSendToClients({
do: "start",
line: line,
game: cfg.game[line]
game: cfg.game[line].game || 0,
patr: cfg.game[line].patr || 0,
patrOk: cfg.game[line].patrOk || 0,
patrAdd: cfg.game[line].patrAdd || 0,
startTime: cfg.game[line].startTime || null,
adminId: cfg.game[line].adminId || null,
tel: cfg.game[line].tel || null,
priceGame: cfg.game[line].priceGame || null,
isBonus: cfg.game[line].isBonus || false,
gamer: cfg.game[line].gamer || { gamerId: null, games: [], gameCounter: 0 },
canHaveBonus: cfg.game[line].canHaveBonus || false,
timeOut: cfg.game[line].timeOut || false
});
safeSendToClients({do:"start", game:cfg.game[line], line});
save();
console.log(`[ESP TEST] ✅ Игра успешно запущена на порту ${line}, состояние сохранено`);

View File

@@ -527,8 +527,9 @@ exports.go = async (wsClient, message) => {
if (shiftAge >= maxShiftAge) {
console.log(`[${new Date().toLocaleTimeString()}] [WS START] ❌ Отказ в запуске игры - смена истекла (${Math.round(shiftAge / 1000 / 60)} минут)`);
sendToClient(wsClient, {
do: "err",
err: "Смена истекла (более 16 часов). Закройте текущую смену и откройте новую"
do: "err",
err: "Невозможно запустить игру: смена просрочена (более 16 часов). Закройте текущую смену и откройте новую",
errorCode: "SHIFT_EXPIRED"
});
return;
}