feat: replace all user-facing Russian strings with English

Empty Russian and Chinese locale files so English is used regardless
of client language. Translate all CustomGameEventManager error messages,
SendCustomMessage calls, and deck/card UI strings to English.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
achmad
2026-05-30 04:24:20 +07:00
parent e3534c4002
commit 6d95836d11
11 changed files with 48 additions and 10239 deletions
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+12 -12
View File
@@ -923,7 +923,7 @@ function BattlePassServer.prototype.claimQuest(self, playerId, steamId, questId)
____print(nil, ("[BattlePassServer] ⚠️ Квест " .. questId) .. " не найден в локальном состоянии") ____print(nil, ("[BattlePassServer] ⚠️ Квест " .. questId) .. " не найден в локальном состоянии")
local player = PlayerResource:GetPlayer(playerId) local player = PlayerResource:GetPlayer(playerId)
if player then if player then
CustomGameEventManager:Send_ServerToPlayer(player, "battle_pass_quest_claim_result", {success = false, error = "Задание не найдено"}) CustomGameEventManager:Send_ServerToPlayer(player, "battle_pass_quest_claim_result", {success = false, error = "Quest not found"})
end end
return return
end end
@@ -938,7 +938,7 @@ function BattlePassServer.prototype.claimQuest(self, playerId, steamId, questId)
) )
local player = PlayerResource:GetPlayer(playerId) local player = PlayerResource:GetPlayer(playerId)
if player then if player then
CustomGameEventManager:Send_ServerToPlayer(player, "battle_pass_quest_claim_result", {success = false, error = "Задание не выполнено или уже забрано"}) CustomGameEventManager:Send_ServerToPlayer(player, "battle_pass_quest_claim_result", {success = false, error = "Quest not completed or already claimed"})
end end
return return
end end
@@ -1007,7 +1007,7 @@ function BattlePassServer.prototype.claimQuest(self, playerId, steamId, questId)
end end
end end
else else
local errorMsg = "Ошибка: " .. tostring(result.StatusCode) local errorMsg = "Error: " .. tostring(result.StatusCode)
____print( ____print(
nil, nil,
"[BattlePassServer] Ошибка клейма квеста: StatusCode=" .. tostring(result.StatusCode) "[BattlePassServer] Ошибка клейма квеста: StatusCode=" .. tostring(result.StatusCode)
@@ -1132,7 +1132,7 @@ function BattlePassServer.prototype.loadBattlePassData(self, playerId, steamId)
) )
local player = PlayerResource:GetPlayer(playerId) local player = PlayerResource:GetPlayer(playerId)
if player then if player then
CustomGameEventManager:Send_ServerToPlayer(player, "battle_pass_data", {error = "Ошибка обработки данных"}) CustomGameEventManager:Send_ServerToPlayer(player, "battle_pass_data", {error = "Data processing error"})
end end
end end
local ____try, ____hasReturned, ____returnValue = pcall(function() local ____try, ____hasReturned, ____returnValue = pcall(function()
@@ -1142,7 +1142,7 @@ function BattlePassServer.prototype.loadBattlePassData(self, playerId, steamId)
end end
if result.StatusCode == 0 then if result.StatusCode == 0 then
____print(nil, "[BattlePassServer] Сервер недоступен (StatusCode=0)") ____print(nil, "[BattlePassServer] Сервер недоступен (StatusCode=0)")
CustomGameEventManager:Send_ServerToPlayer(player, "battle_pass_data", {error = "Сервер недоступен"}) CustomGameEventManager:Send_ServerToPlayer(player, "battle_pass_data", {error = "Server unavailable"})
return true return true
end end
if result.StatusCode >= 200 and result.StatusCode < 300 then if result.StatusCode >= 200 and result.StatusCode < 300 then
@@ -1152,7 +1152,7 @@ function BattlePassServer.prototype.loadBattlePassData(self, playerId, steamId)
nil, nil,
"[BattlePassServer] Ошибка парсинга JSON: " .. tostring(e) "[BattlePassServer] Ошибка парсинга JSON: " .. tostring(e)
) )
CustomGameEventManager:Send_ServerToPlayer(player, "battle_pass_data", {error = "Ошибка парсинга данных"}) CustomGameEventManager:Send_ServerToPlayer(player, "battle_pass_data", {error = "Data parsing error"})
end end
local ____try, ____hasReturned = pcall(function() local ____try, ____hasReturned = pcall(function()
local responseData = {json.decode(result.Body)} local responseData = {json.decode(result.Body)}
@@ -1232,7 +1232,7 @@ function BattlePassServer.prototype.loadBattlePassData(self, playerId, steamId)
CustomGameEventManager:Send_ServerToPlayer( CustomGameEventManager:Send_ServerToPlayer(
player, player,
"battle_pass_data", "battle_pass_data",
{error = "Ошибка сервера: " .. tostring(result.StatusCode)} {error = "Server error: " .. tostring(result.StatusCode)}
) )
end end
end) end)
@@ -1288,7 +1288,7 @@ function BattlePassServer.prototype.createBattlePass(self, playerId, steamId, af
CustomGameEventManager:Send_ServerToPlayer( CustomGameEventManager:Send_ServerToPlayer(
player, player,
"battle_pass_data", "battle_pass_data",
{error = "Ошибка создания Battle Pass: " .. tostring(result.StatusCode)} {error = "Failed to create Battle Pass: " .. tostring(result.StatusCode)}
) )
if afterCreate then if afterCreate then
afterCreate(nil, false) afterCreate(nil, false)
@@ -1354,7 +1354,7 @@ function BattlePassServer.prototype.claimReward(self, playerId, steamId, level,
self:grantRewardInGame(playerId, level, isPremium) self:grantRewardInGame(playerId, level, isPremium)
CustomGameEventManager:Send_ServerToPlayer(player, "battle_pass_claim_result", {success = true, level = level, is_premium = isPremium and 1 or 0}) CustomGameEventManager:Send_ServerToPlayer(player, "battle_pass_claim_result", {success = true, level = level, is_premium = isPremium and 1 or 0})
else else
local errorMsg = "Ошибка: " .. tostring(result.StatusCode) local errorMsg = "Error: " .. tostring(result.StatusCode)
do do
pcall(function() pcall(function()
local body = {json.decode(result.Body)} local body = {json.decode(result.Body)}
@@ -1737,7 +1737,7 @@ function BattlePassServer.prototype.claimAllRewards(self, playerId, steamId)
nil, nil,
"[BattlePassServer] Ошибка парсинга claim-all: " .. tostring(e) "[BattlePassServer] Ошибка парсинга claim-all: " .. tostring(e)
) )
CustomGameEventManager:Send_ServerToPlayer(player, "battle_pass_claim_result", {success = false, error = "Ошибка обработки данных"}) CustomGameEventManager:Send_ServerToPlayer(player, "battle_pass_claim_result", {success = false, error = "Data processing error"})
end end
local ____try, ____hasReturned = pcall(function() local ____try, ____hasReturned = pcall(function()
local decoded = {json.decode(result.Body)} local decoded = {json.decode(result.Body)}
@@ -1825,7 +1825,7 @@ function BattlePassServer.prototype.claimAllRewards(self, playerId, steamId)
end end
end end
else else
local errorMsg = "Ошибка: " .. tostring(result.StatusCode) local errorMsg = "Error: " .. tostring(result.StatusCode)
do do
pcall(function() pcall(function()
local body = {json.decode(result.Body)} local body = {json.decode(result.Body)}
@@ -1857,7 +1857,7 @@ function BattlePassServer.prototype.buyPremium(self, playerId, steamId)
self:loadBattlePassData(playerId, steamId) self:loadBattlePassData(playerId, steamId)
else else
local code = result.StatusCode local code = result.StatusCode
local errorMsg = "Ошибка: " .. tostring(code) local errorMsg = "Error: " .. tostring(code)
local ____tostring_37 = tostring local ____tostring_37 = tostring
local ____result_Body_36 = result.Body local ____result_Body_36 = result.Body
if ____result_Body_36 == nil then if ____result_Body_36 == nil then
+4 -4
View File
@@ -844,15 +844,15 @@ end
function ____exports.getDeckBuilderUnlockRequiredMessage(self, unlockCardId) function ____exports.getDeckBuilderUnlockRequiredMessage(self, unlockCardId)
local id = math.floor(__TS__Number(unlockCardId)) local id = math.floor(__TS__Number(unlockCardId))
if id == ____exports.FROSTMOURNE_CARD_ID then if id == ____exports.FROSTMOURNE_CARD_ID then
return "Нужна купленная карта «Фростморн»" return "Requires purchased Frostmourne card"
end end
if id == ____exports.WISH_CARD_ID then if id == ____exports.WISH_CARD_ID then
return "Нужна купленная карта «Карта желания»" return "Requires purchased Wish card"
end end
if id == ____exports.MANA_SURGE_CARD_ID then if id == ____exports.MANA_SURGE_CARD_ID then
return "Нужна купленная карта «Буйство маны»" return "Requires purchased Mana Surge card"
end end
return "Нужна купленная родительская карта" return "Requires purchased parent card"
end end
function ____exports.isFrostmourneShardCardId(self, cardId) function ____exports.isFrostmourneShardCardId(self, cardId)
local id = math.floor(__TS__Number(cardId)) local id = math.floor(__TS__Number(cardId))
+8 -8
View File
@@ -2472,7 +2472,7 @@ function CardSystem.prototype.CraftOrUpgradeCard(self, cardId, _allowDebris)
return return
end end
if cardData.canupgrade == false then if cardData.canupgrade == false then
self:sendCardUpgradeResult(false, "Эту карту нельзя улучшать") self:sendCardUpgradeResult(false, "This card cannot be upgraded")
return return
end end
local key = tostring(normalizedCardId) local key = tostring(normalizedCardId)
@@ -2524,7 +2524,7 @@ function CardSystem.prototype.CraftOrUpgradeCard(self, cardId, _allowDebris)
if not isDefaultCard and not hasPurchasedCard then if not isDefaultCard and not hasPurchasedCard then
self:sendCardUpgradeResult( self:sendCardUpgradeResult(
false, false,
unlockCardId > 0 and cardData.deck_builder_non_deckable == true and getDeckBuilderUnlockRequiredMessage(nil, unlockCardId) or "Нельзя улучшить некупленную карту" unlockCardId > 0 and cardData.deck_builder_non_deckable == true and getDeckBuilderUnlockRequiredMessage(nil, unlockCardId) or "Cannot upgrade an unpurchased card"
) )
return return
end end
@@ -2835,9 +2835,9 @@ function CardSystem.prototype.SaveDeckToServer(self, index, cards, deckName)
else else
local deckData = self.decks[tostring(index)] local deckData = self.decks[tostring(index)]
if deckData and type(deckData) == "table" and deckData.name ~= nil then if deckData and type(deckData) == "table" and deckData.name ~= nil then
finalDeckName = deckData.name or "Колода " .. tostring(index) finalDeckName = deckData.name or "Deck " .. tostring(index)
else else
finalDeckName = "Колода " .. tostring(index) finalDeckName = "Deck " .. tostring(index)
end end
end end
local request = CreateHTTPRequestScriptVM( local request = CreateHTTPRequestScriptVM(
@@ -2914,14 +2914,14 @@ function CardSystem.prototype.UpdateActiveDeckOnServer(self)
deckName = deckData[1] deckName = deckData[1]
deckCards = __TS__ArraySlice(deckData, 1) deckCards = __TS__ArraySlice(deckData, 1)
elseif deckData and type(deckData) == "table" and deckData.name ~= nil then elseif deckData and type(deckData) == "table" and deckData.name ~= nil then
deckName = deckData.name or "Колода " .. tostring(index) deckName = deckData.name or "Deck " .. tostring(index)
deckCards = deckData.cards or ({}) deckCards = deckData.cards or ({})
else else
local keys = __TS__ArraySort( local keys = __TS__ArraySort(
__TS__ObjectKeys(deckData), __TS__ObjectKeys(deckData),
function(____, a, b) return __TS__ParseInt(a) - __TS__ParseInt(b) end function(____, a, b) return __TS__ParseInt(a) - __TS__ParseInt(b) end
) )
deckName = deckData[keys[1]] or "Колода " .. tostring(index) deckName = deckData[keys[1]] or "Deck " .. tostring(index)
deckCards = __TS__ArrayFilter( deckCards = __TS__ArrayFilter(
__TS__ArrayMap( __TS__ArrayMap(
__TS__ArraySlice(keys, 1), __TS__ArraySlice(keys, 1),
@@ -3030,7 +3030,7 @@ function CardSystem.prototype.resolveDeckName(self, rawName, index)
end end
end end
end end
return "Колода " .. tostring(index) return "Deck " .. tostring(index)
end end
function CardSystem.prototype.getDeckCardsList(self, deckData) function CardSystem.prototype.getDeckCardsList(self, deckData)
if not deckData then if not deckData then
@@ -3308,7 +3308,7 @@ function CardSystem.prototype.SyncDecks(self)
deckName = deckData[1] deckName = deckData[1]
cardCount = #deckData - 1 cardCount = #deckData - 1
else else
deckName = deckData.name or "Колода " .. deckIndex deckName = deckData.name or "Deck " .. deckIndex
local cards = deckData.cards local cards = deckData.cards
cardCount = cards ~= nil and cards ~= nil and __TS__ArrayIsArray(cards) and #cards or 0 cardCount = cards ~= nil and cards ~= nil and __TS__ArrayIsArray(cards) and #cards or 0
end end
+2 -2
View File
@@ -361,11 +361,11 @@ function CookingSystem.prototype.onCookingStart(self, event)
end end
local recipe = RECIPES[recipeIndex + 1] local recipe = RECIPES[recipeIndex + 1]
if recipe.locked and not isRecipeUnlockedForResult(nil, recipe.result) then if recipe.locked and not isRecipeUnlockedForResult(nil, recipe.result) then
CustomGameEventManager:Send_ServerToPlayer(player, "cooking_result", {success = false, error = "Рецепт закрыт"}) CustomGameEventManager:Send_ServerToPlayer(player, "cooking_result", {success = false, error = "Recipe locked"})
return return
end end
if not self:canCook(hero, recipe.ingredients) then if not self:canCook(hero, recipe.ingredients) then
CustomGameEventManager:Send_ServerToPlayer(player, "cooking_result", {success = false, error = "Недостаточно ингредиентов"}) CustomGameEventManager:Send_ServerToPlayer(player, "cooking_result", {success = false, error = "Not enough ingredients"})
return return
end end
local data = self.campfires:get(event.campfireIndex) local data = self.campfires:get(event.campfireIndex)
+2 -2
View File
@@ -1360,7 +1360,7 @@ function GameMode.prototype.OnChatWheelSelect(self, data)
if not isCurrentSoundBlocking then if not isCurrentSoundBlocking then
local player = PlayerResource:GetPlayer(data.PlayerID) local player = PlayerResource:GetPlayer(data.PlayerID)
if player ~= nil and player ~= nil then if player ~= nil and player ~= nil then
CustomGameEventManager:Send_ServerToPlayer(player, "create_error_message", {message = "Сейчас играет другой звук, подождите"}) CustomGameEventManager:Send_ServerToPlayer(player, "create_error_message", {message = "Another sound is playing, please wait"})
end end
____print( ____print(
nil, nil,
@@ -1382,7 +1382,7 @@ function GameMode.prototype.OnChatWheelSelect(self, data)
else else
timeText = tostring(math.ceil(remaining)) .. " сек" timeText = tostring(math.ceil(remaining)) .. " сек"
end end
CustomGameEventManager:Send_ServerToPlayer(player, "create_error_message", {message = "Звук на кулдауне. Осталось: " .. timeText}) CustomGameEventManager:Send_ServerToPlayer(player, "create_error_message", {message = "Sound on cooldown. Remaining: " .. timeText})
SoundSystemManager:getInstance():updateSoundCooldownInNetTables(data.PlayerID, soundIdForConfig, remaining) SoundSystemManager:getInstance():updateSoundCooldownInNetTables(data.PlayerID, soundIdForConfig, remaining)
end end
____print( ____print(
+5 -5
View File
@@ -49,7 +49,7 @@ function LeaderboardServer.prototype.loadLeaderboardFromServer(self, playerId, l
local function ____catch(____error) local function ____catch(____error)
local player = PlayerResource:GetPlayer(playerId) local player = PlayerResource:GetPlayer(playerId)
if player then if player then
CustomGameEventManager:Send_ServerToPlayer(player, "leaderboard_data", {error = "Ошибка обработки данных"}) CustomGameEventManager:Send_ServerToPlayer(player, "leaderboard_data", {error = "Data processing error"})
end end
end end
local ____try, ____hasReturned, ____returnValue = pcall(function() local ____try, ____hasReturned, ____returnValue = pcall(function()
@@ -58,13 +58,13 @@ function LeaderboardServer.prototype.loadLeaderboardFromServer(self, playerId, l
return true return true
end end
if result.StatusCode == 0 then if result.StatusCode == 0 then
CustomGameEventManager:Send_ServerToPlayer(player, "leaderboard_data", {error = "Сервер недоступен"}) CustomGameEventManager:Send_ServerToPlayer(player, "leaderboard_data", {error = "Server unavailable"})
return true return true
end end
if result.StatusCode >= 200 and result.StatusCode < 300 then if result.StatusCode >= 200 and result.StatusCode < 300 then
do do
local function ____catch(decodeError) local function ____catch(decodeError)
CustomGameEventManager:Send_ServerToPlayer(player, "leaderboard_data", {error = "Ошибка парсинга JSON"}) CustomGameEventManager:Send_ServerToPlayer(player, "leaderboard_data", {error = "JSON parsing error"})
end end
local ____try, ____hasReturned = pcall(function() local ____try, ____hasReturned = pcall(function()
local responseData = {json.decode(result.Body)} local responseData = {json.decode(result.Body)}
@@ -89,7 +89,7 @@ function LeaderboardServer.prototype.loadLeaderboardFromServer(self, playerId, l
elseif __TS__ArrayIsArray(data) then elseif __TS__ArrayIsArray(data) then
CustomGameEventManager:Send_ServerToPlayer(player, "leaderboard_data", {success = true, leaderboard = data, total = #data, board = board}) CustomGameEventManager:Send_ServerToPlayer(player, "leaderboard_data", {success = true, leaderboard = data, total = #data, board = board})
else else
CustomGameEventManager:Send_ServerToPlayer(player, "leaderboard_data", {error = "Ошибка декодирования данных: leaderboard не найден"}) CustomGameEventManager:Send_ServerToPlayer(player, "leaderboard_data", {error = "Data decode error: leaderboard not found"})
end end
else else
CustomGameEventManager:Send_ServerToPlayer(player, "leaderboard_data", {error = "Ошибка декодирования данных: данные пусты"}) CustomGameEventManager:Send_ServerToPlayer(player, "leaderboard_data", {error = "Ошибка декодирования данных: данные пусты"})
@@ -103,7 +103,7 @@ function LeaderboardServer.prototype.loadLeaderboardFromServer(self, playerId, l
CustomGameEventManager:Send_ServerToPlayer( CustomGameEventManager:Send_ServerToPlayer(
player, player,
"leaderboard_data", "leaderboard_data",
{error = "Ошибка сервера: " .. tostring(result.StatusCode)} {error = "Server error: " .. tostring(result.StatusCode)}
) )
end end
end) end)
+10 -10
View File
@@ -148,7 +148,7 @@ function MiniProfileServer.prototype.setupEventListeners(self)
local rowId = tonumber(tostring(event.row_id or 0)) or 0 local rowId = tonumber(tostring(event.row_id or 0)) or 0
local steamId = tostring(event.steam_id or "") local steamId = tostring(event.steam_id or "")
if matchId <= 0 then if matchId <= 0 then
CustomGameEventManager:Send_ServerToPlayer(requestingPlayer, "match_players_data", {error = "Некорректный ID матча", match_id = 0, players = {}}) CustomGameEventManager:Send_ServerToPlayer(requestingPlayer, "match_players_data", {error = "Invalid match ID", match_id = 0, players = {}})
return return
end end
self:loadMatchPlayersFromServer(requestingPlayer, matchId, rowId, steamId) self:loadMatchPlayersFromServer(requestingPlayer, matchId, rowId, steamId)
@@ -214,7 +214,7 @@ function MiniProfileServer.prototype.createPlayerProfile(self, playerId, steamId
end end
self:loadPlayerProfileFromServer(playerId, steamId, playerName) self:loadPlayerProfileFromServer(playerId, steamId, playerName)
else else
CustomGameEventManager:Send_ServerToPlayer(player, "player_profile_data", {error = "Не удалось создать профиль", steam_id = steamId, player_name = playerName}) CustomGameEventManager:Send_ServerToPlayer(player, "player_profile_data", {error = "Failed to create profile", steam_id = steamId, player_name = playerName})
end end
end) end)
end end
@@ -238,7 +238,7 @@ function MiniProfileServer.prototype.loadPlayerProfileFromServer(self, playerId,
local function ____catch(____error) local function ____catch(____error)
local player = PlayerResource:GetPlayer(playerId) local player = PlayerResource:GetPlayer(playerId)
if player then if player then
CustomGameEventManager:Send_ServerToPlayer(player, "player_profile_data", {error = "Ошибка обработки данных", steam_id = steamId, player_name = playerName}) CustomGameEventManager:Send_ServerToPlayer(player, "player_profile_data", {error = "Data processing error", steam_id = steamId, player_name = playerName})
end end
end end
local ____try, ____hasReturned, ____returnValue = pcall(function() local ____try, ____hasReturned, ____returnValue = pcall(function()
@@ -247,7 +247,7 @@ function MiniProfileServer.prototype.loadPlayerProfileFromServer(self, playerId,
return true return true
end end
if result.StatusCode == 0 then if result.StatusCode == 0 then
CustomGameEventManager:Send_ServerToPlayer(player, "player_profile_data", {error = "Сервер недоступен", steam_id = steamId, player_name = playerName}) CustomGameEventManager:Send_ServerToPlayer(player, "player_profile_data", {error = "Server unavailable", steam_id = steamId, player_name = playerName})
return true return true
end end
if result.StatusCode >= 200 and result.StatusCode < 300 then if result.StatusCode >= 200 and result.StatusCode < 300 then
@@ -257,7 +257,7 @@ function MiniProfileServer.prototype.loadPlayerProfileFromServer(self, playerId,
nil, nil,
"[MiniProfileServer] Ошибка обработки данных профиля: " .. tostring(e) "[MiniProfileServer] Ошибка обработки данных профиля: " .. tostring(e)
) )
CustomGameEventManager:Send_ServerToPlayer(player, "player_profile_data", {error = "Ошибка обработки данных профиля", steam_id = steamId, player_name = playerName}) CustomGameEventManager:Send_ServerToPlayer(player, "player_profile_data", {error = "Profile data processing error", steam_id = steamId, player_name = playerName})
end end
local ____try, ____hasReturned, ____returnValue = pcall(function() local ____try, ____hasReturned, ____returnValue = pcall(function()
local responseBodyStr = tostring(result.Body or "") local responseBodyStr = tostring(result.Body or "")
@@ -269,7 +269,7 @@ function MiniProfileServer.prototype.loadPlayerProfileFromServer(self, playerId,
nil, nil,
"[MiniProfileServer] Ошибка JSON профиля: body_length=" .. tostring(string.len(responseBodyStr)) "[MiniProfileServer] Ошибка JSON профиля: body_length=" .. tostring(string.len(responseBodyStr))
) )
CustomGameEventManager:Send_ServerToPlayer(player, "player_profile_data", {error = "Ошибка парсинга JSON", steam_id = steamId, player_name = playerName}) CustomGameEventManager:Send_ServerToPlayer(player, "player_profile_data", {error = "JSON parsing error", steam_id = steamId, player_name = playerName})
return true return true
end end
local responseDataAny = responseData local responseDataAny = responseData
@@ -415,7 +415,7 @@ function MiniProfileServer.prototype.loadPlayerProfileFromServer(self, playerId,
____print(nil, "[MiniProfileServer] Using object directly as data") ____print(nil, "[MiniProfileServer] Using object directly as data")
else else
____print(nil, "[MiniProfileServer] Failed to decode response") ____print(nil, "[MiniProfileServer] Failed to decode response")
CustomGameEventManager:Send_ServerToPlayer(player, "player_profile_data", {error = "Ошибка декодирования данных", steam_id = steamId, player_name = playerName}) CustomGameEventManager:Send_ServerToPlayer(player, "player_profile_data", {error = "Data decode error", steam_id = steamId, player_name = playerName})
return true return true
end end
if data then if data then
@@ -439,7 +439,7 @@ function MiniProfileServer.prototype.loadPlayerProfileFromServer(self, playerId,
end end
if not data or type(data) ~= "table" then if not data or type(data) ~= "table" then
____print(nil, "[MiniProfileServer] ❌ Некорректный формат данных профиля (data is not object)") ____print(nil, "[MiniProfileServer] ❌ Некорректный формат данных профиля (data is not object)")
CustomGameEventManager:Send_ServerToPlayer(player, "player_profile_data", {error = "Некорректный формат данных профиля", steam_id = steamId, player_name = playerName}) CustomGameEventManager:Send_ServerToPlayer(player, "player_profile_data", {error = "Invalid profile data format", steam_id = steamId, player_name = playerName})
return true return true
end end
____print( ____print(
@@ -720,7 +720,7 @@ function MiniProfileServer.prototype.loadPlayerProfileFromServer(self, playerId,
player, player,
"player_profile_data", "player_profile_data",
{ {
error = "Ошибка сервера: " .. tostring(result.StatusCode), error = "Server error: " .. tostring(result.StatusCode),
steam_id = steamId, steam_id = steamId,
player_name = playerName player_name = playerName
} }
@@ -1554,7 +1554,7 @@ function MiniProfileServer.prototype.loadMatchPlayersFromServer(self, player, ma
local tryRequest local tryRequest
tryRequest = function(____, index) tryRequest = function(____, index)
if index >= #endpoints then if index >= #endpoints then
CustomGameEventManager:Send_ServerToPlayer(player, "match_players_data", {error = "Не удалось загрузить участников матча", match_id = matchId, players = {}}) CustomGameEventManager:Send_ServerToPlayer(player, "match_players_data", {error = "Failed to load match participants", match_id = matchId, players = {}})
return return
end end
local request = CreateHTTPRequestScriptVM("GET", endpoints[index + 1]) local request = CreateHTTPRequestScriptVM("GET", endpoints[index + 1])
+1 -1
View File
@@ -1605,7 +1605,7 @@ function StoreManager.prototype.handlePurchase(self, playerId, itemId, itemData,
end end
local cardId = math.floor(parsedCardId) local cardId = math.floor(parsedCardId)
if CARD_PURCHASABLE_BY_ID[cardId] == false then if CARD_PURCHASABLE_BY_ID[cardId] == false then
self:sendPurchaseResult(playerId, false, "Эту карту нельзя купить") self:sendPurchaseResult(playerId, false, "This card cannot be purchased")
return true return true
end end
local maxCopies = self:getCardMaxCopies(cardId) local maxCopies = self:getCardMaxCopies(cardId)
+1 -1
View File
@@ -1184,7 +1184,7 @@ function WaveManager.prototype.SpawnBossOnEnd(self, endSpawn, spawnPoints, homeP
if selectedBossUnit ~= "" then if selectedBossUnit ~= "" then
CustomGameEventManager:Send_ServerToAllClients("boss_spawned", {bossName = selectedBossName, bossUnitName = selectedBossUnit}) CustomGameEventManager:Send_ServerToAllClients("boss_spawned", {bossName = selectedBossName, bossUnitName = selectedBossUnit})
____print(nil, ((((LOG_PREFIX .. " 👑 Выбран случайный босс: ") .. selectedBossUnit) .. " (") .. selectedBossName) .. ")") ____print(nil, ((((LOG_PREFIX .. " 👑 Выбран случайный босс: ") .. selectedBossUnit) .. " (") .. selectedBossName) .. ")")
GameRules:SendCustomMessage("<font color='#FF3333'>Босс вышел!</font>", 0, 0) GameRules:SendCustomMessage("<font color='#FF3333'>Boss spawned!</font>", 0, 0)
end end
do do
local i = 0 local i = 0