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:
+2
-5155
File diff suppressed because it is too large
Load Diff
+1
-5039
File diff suppressed because it is too large
Load Diff
@@ -923,7 +923,7 @@ function BattlePassServer.prototype.claimQuest(self, playerId, steamId, questId)
|
||||
____print(nil, ("[BattlePassServer] ⚠️ Квест " .. questId) .. " не найден в локальном состоянии")
|
||||
local player = PlayerResource:GetPlayer(playerId)
|
||||
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
|
||||
return
|
||||
end
|
||||
@@ -938,7 +938,7 @@ function BattlePassServer.prototype.claimQuest(self, playerId, steamId, questId)
|
||||
)
|
||||
local player = PlayerResource:GetPlayer(playerId)
|
||||
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
|
||||
return
|
||||
end
|
||||
@@ -1007,7 +1007,7 @@ function BattlePassServer.prototype.claimQuest(self, playerId, steamId, questId)
|
||||
end
|
||||
end
|
||||
else
|
||||
local errorMsg = "Ошибка: " .. tostring(result.StatusCode)
|
||||
local errorMsg = "Error: " .. tostring(result.StatusCode)
|
||||
____print(
|
||||
nil,
|
||||
"[BattlePassServer] Ошибка клейма квеста: StatusCode=" .. tostring(result.StatusCode)
|
||||
@@ -1132,7 +1132,7 @@ function BattlePassServer.prototype.loadBattlePassData(self, playerId, steamId)
|
||||
)
|
||||
local player = PlayerResource:GetPlayer(playerId)
|
||||
if player then
|
||||
CustomGameEventManager:Send_ServerToPlayer(player, "battle_pass_data", {error = "Ошибка обработки данных"})
|
||||
CustomGameEventManager:Send_ServerToPlayer(player, "battle_pass_data", {error = "Data processing error"})
|
||||
end
|
||||
end
|
||||
local ____try, ____hasReturned, ____returnValue = pcall(function()
|
||||
@@ -1142,7 +1142,7 @@ function BattlePassServer.prototype.loadBattlePassData(self, playerId, steamId)
|
||||
end
|
||||
if result.StatusCode == 0 then
|
||||
____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
|
||||
end
|
||||
if result.StatusCode >= 200 and result.StatusCode < 300 then
|
||||
@@ -1152,7 +1152,7 @@ function BattlePassServer.prototype.loadBattlePassData(self, playerId, steamId)
|
||||
nil,
|
||||
"[BattlePassServer] Ошибка парсинга JSON: " .. tostring(e)
|
||||
)
|
||||
CustomGameEventManager:Send_ServerToPlayer(player, "battle_pass_data", {error = "Ошибка парсинга данных"})
|
||||
CustomGameEventManager:Send_ServerToPlayer(player, "battle_pass_data", {error = "Data parsing error"})
|
||||
end
|
||||
local ____try, ____hasReturned = pcall(function()
|
||||
local responseData = {json.decode(result.Body)}
|
||||
@@ -1232,7 +1232,7 @@ function BattlePassServer.prototype.loadBattlePassData(self, playerId, steamId)
|
||||
CustomGameEventManager:Send_ServerToPlayer(
|
||||
player,
|
||||
"battle_pass_data",
|
||||
{error = "Ошибка сервера: " .. tostring(result.StatusCode)}
|
||||
{error = "Server error: " .. tostring(result.StatusCode)}
|
||||
)
|
||||
end
|
||||
end)
|
||||
@@ -1288,7 +1288,7 @@ function BattlePassServer.prototype.createBattlePass(self, playerId, steamId, af
|
||||
CustomGameEventManager:Send_ServerToPlayer(
|
||||
player,
|
||||
"battle_pass_data",
|
||||
{error = "Ошибка создания Battle Pass: " .. tostring(result.StatusCode)}
|
||||
{error = "Failed to create Battle Pass: " .. tostring(result.StatusCode)}
|
||||
)
|
||||
if afterCreate then
|
||||
afterCreate(nil, false)
|
||||
@@ -1354,7 +1354,7 @@ function BattlePassServer.prototype.claimReward(self, playerId, steamId, level,
|
||||
self:grantRewardInGame(playerId, level, isPremium)
|
||||
CustomGameEventManager:Send_ServerToPlayer(player, "battle_pass_claim_result", {success = true, level = level, is_premium = isPremium and 1 or 0})
|
||||
else
|
||||
local errorMsg = "Ошибка: " .. tostring(result.StatusCode)
|
||||
local errorMsg = "Error: " .. tostring(result.StatusCode)
|
||||
do
|
||||
pcall(function()
|
||||
local body = {json.decode(result.Body)}
|
||||
@@ -1737,7 +1737,7 @@ function BattlePassServer.prototype.claimAllRewards(self, playerId, steamId)
|
||||
nil,
|
||||
"[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
|
||||
local ____try, ____hasReturned = pcall(function()
|
||||
local decoded = {json.decode(result.Body)}
|
||||
@@ -1825,7 +1825,7 @@ function BattlePassServer.prototype.claimAllRewards(self, playerId, steamId)
|
||||
end
|
||||
end
|
||||
else
|
||||
local errorMsg = "Ошибка: " .. tostring(result.StatusCode)
|
||||
local errorMsg = "Error: " .. tostring(result.StatusCode)
|
||||
do
|
||||
pcall(function()
|
||||
local body = {json.decode(result.Body)}
|
||||
@@ -1857,7 +1857,7 @@ function BattlePassServer.prototype.buyPremium(self, playerId, steamId)
|
||||
self:loadBattlePassData(playerId, steamId)
|
||||
else
|
||||
local code = result.StatusCode
|
||||
local errorMsg = "Ошибка: " .. tostring(code)
|
||||
local errorMsg = "Error: " .. tostring(code)
|
||||
local ____tostring_37 = tostring
|
||||
local ____result_Body_36 = result.Body
|
||||
if ____result_Body_36 == nil then
|
||||
|
||||
@@ -844,15 +844,15 @@ end
|
||||
function ____exports.getDeckBuilderUnlockRequiredMessage(self, unlockCardId)
|
||||
local id = math.floor(__TS__Number(unlockCardId))
|
||||
if id == ____exports.FROSTMOURNE_CARD_ID then
|
||||
return "Нужна купленная карта «Фростморн»"
|
||||
return "Requires purchased Frostmourne card"
|
||||
end
|
||||
if id == ____exports.WISH_CARD_ID then
|
||||
return "Нужна купленная карта «Карта желания»"
|
||||
return "Requires purchased Wish card"
|
||||
end
|
||||
if id == ____exports.MANA_SURGE_CARD_ID then
|
||||
return "Нужна купленная карта «Буйство маны»"
|
||||
return "Requires purchased Mana Surge card"
|
||||
end
|
||||
return "Нужна купленная родительская карта"
|
||||
return "Requires purchased parent card"
|
||||
end
|
||||
function ____exports.isFrostmourneShardCardId(self, cardId)
|
||||
local id = math.floor(__TS__Number(cardId))
|
||||
|
||||
@@ -2472,7 +2472,7 @@ function CardSystem.prototype.CraftOrUpgradeCard(self, cardId, _allowDebris)
|
||||
return
|
||||
end
|
||||
if cardData.canupgrade == false then
|
||||
self:sendCardUpgradeResult(false, "Эту карту нельзя улучшать")
|
||||
self:sendCardUpgradeResult(false, "This card cannot be upgraded")
|
||||
return
|
||||
end
|
||||
local key = tostring(normalizedCardId)
|
||||
@@ -2524,7 +2524,7 @@ function CardSystem.prototype.CraftOrUpgradeCard(self, cardId, _allowDebris)
|
||||
if not isDefaultCard and not hasPurchasedCard then
|
||||
self:sendCardUpgradeResult(
|
||||
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
|
||||
end
|
||||
@@ -2835,9 +2835,9 @@ function CardSystem.prototype.SaveDeckToServer(self, index, cards, deckName)
|
||||
else
|
||||
local deckData = self.decks[tostring(index)]
|
||||
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
|
||||
finalDeckName = "Колода " .. tostring(index)
|
||||
finalDeckName = "Deck " .. tostring(index)
|
||||
end
|
||||
end
|
||||
local request = CreateHTTPRequestScriptVM(
|
||||
@@ -2914,14 +2914,14 @@ function CardSystem.prototype.UpdateActiveDeckOnServer(self)
|
||||
deckName = deckData[1]
|
||||
deckCards = __TS__ArraySlice(deckData, 1)
|
||||
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 ({})
|
||||
else
|
||||
local keys = __TS__ArraySort(
|
||||
__TS__ObjectKeys(deckData),
|
||||
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(
|
||||
__TS__ArrayMap(
|
||||
__TS__ArraySlice(keys, 1),
|
||||
@@ -3030,7 +3030,7 @@ function CardSystem.prototype.resolveDeckName(self, rawName, index)
|
||||
end
|
||||
end
|
||||
end
|
||||
return "Колода " .. tostring(index)
|
||||
return "Deck " .. tostring(index)
|
||||
end
|
||||
function CardSystem.prototype.getDeckCardsList(self, deckData)
|
||||
if not deckData then
|
||||
@@ -3308,7 +3308,7 @@ function CardSystem.prototype.SyncDecks(self)
|
||||
deckName = deckData[1]
|
||||
cardCount = #deckData - 1
|
||||
else
|
||||
deckName = deckData.name or "Колода " .. deckIndex
|
||||
deckName = deckData.name or "Deck " .. deckIndex
|
||||
local cards = deckData.cards
|
||||
cardCount = cards ~= nil and cards ~= nil and __TS__ArrayIsArray(cards) and #cards or 0
|
||||
end
|
||||
|
||||
@@ -361,11 +361,11 @@ function CookingSystem.prototype.onCookingStart(self, event)
|
||||
end
|
||||
local recipe = RECIPES[recipeIndex + 1]
|
||||
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
|
||||
end
|
||||
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
|
||||
end
|
||||
local data = self.campfires:get(event.campfireIndex)
|
||||
|
||||
@@ -1360,7 +1360,7 @@ function GameMode.prototype.OnChatWheelSelect(self, data)
|
||||
if not isCurrentSoundBlocking then
|
||||
local player = PlayerResource:GetPlayer(data.PlayerID)
|
||||
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
|
||||
____print(
|
||||
nil,
|
||||
@@ -1382,7 +1382,7 @@ function GameMode.prototype.OnChatWheelSelect(self, data)
|
||||
else
|
||||
timeText = tostring(math.ceil(remaining)) .. " сек"
|
||||
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)
|
||||
end
|
||||
____print(
|
||||
|
||||
@@ -49,7 +49,7 @@ function LeaderboardServer.prototype.loadLeaderboardFromServer(self, playerId, l
|
||||
local function ____catch(____error)
|
||||
local player = PlayerResource:GetPlayer(playerId)
|
||||
if player then
|
||||
CustomGameEventManager:Send_ServerToPlayer(player, "leaderboard_data", {error = "Ошибка обработки данных"})
|
||||
CustomGameEventManager:Send_ServerToPlayer(player, "leaderboard_data", {error = "Data processing error"})
|
||||
end
|
||||
end
|
||||
local ____try, ____hasReturned, ____returnValue = pcall(function()
|
||||
@@ -58,13 +58,13 @@ function LeaderboardServer.prototype.loadLeaderboardFromServer(self, playerId, l
|
||||
return true
|
||||
end
|
||||
if result.StatusCode == 0 then
|
||||
CustomGameEventManager:Send_ServerToPlayer(player, "leaderboard_data", {error = "Сервер недоступен"})
|
||||
CustomGameEventManager:Send_ServerToPlayer(player, "leaderboard_data", {error = "Server unavailable"})
|
||||
return true
|
||||
end
|
||||
if result.StatusCode >= 200 and result.StatusCode < 300 then
|
||||
do
|
||||
local function ____catch(decodeError)
|
||||
CustomGameEventManager:Send_ServerToPlayer(player, "leaderboard_data", {error = "Ошибка парсинга JSON"})
|
||||
CustomGameEventManager:Send_ServerToPlayer(player, "leaderboard_data", {error = "JSON parsing error"})
|
||||
end
|
||||
local ____try, ____hasReturned = pcall(function()
|
||||
local responseData = {json.decode(result.Body)}
|
||||
@@ -89,7 +89,7 @@ function LeaderboardServer.prototype.loadLeaderboardFromServer(self, playerId, l
|
||||
elseif __TS__ArrayIsArray(data) then
|
||||
CustomGameEventManager:Send_ServerToPlayer(player, "leaderboard_data", {success = true, leaderboard = data, total = #data, board = board})
|
||||
else
|
||||
CustomGameEventManager:Send_ServerToPlayer(player, "leaderboard_data", {error = "Ошибка декодирования данных: leaderboard не найден"})
|
||||
CustomGameEventManager:Send_ServerToPlayer(player, "leaderboard_data", {error = "Data decode error: leaderboard not found"})
|
||||
end
|
||||
else
|
||||
CustomGameEventManager:Send_ServerToPlayer(player, "leaderboard_data", {error = "Ошибка декодирования данных: данные пусты"})
|
||||
@@ -103,7 +103,7 @@ function LeaderboardServer.prototype.loadLeaderboardFromServer(self, playerId, l
|
||||
CustomGameEventManager:Send_ServerToPlayer(
|
||||
player,
|
||||
"leaderboard_data",
|
||||
{error = "Ошибка сервера: " .. tostring(result.StatusCode)}
|
||||
{error = "Server error: " .. tostring(result.StatusCode)}
|
||||
)
|
||||
end
|
||||
end)
|
||||
|
||||
@@ -148,7 +148,7 @@ function MiniProfileServer.prototype.setupEventListeners(self)
|
||||
local rowId = tonumber(tostring(event.row_id or 0)) or 0
|
||||
local steamId = tostring(event.steam_id or "")
|
||||
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
|
||||
end
|
||||
self:loadMatchPlayersFromServer(requestingPlayer, matchId, rowId, steamId)
|
||||
@@ -214,7 +214,7 @@ function MiniProfileServer.prototype.createPlayerProfile(self, playerId, steamId
|
||||
end
|
||||
self:loadPlayerProfileFromServer(playerId, steamId, playerName)
|
||||
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
|
||||
@@ -238,7 +238,7 @@ function MiniProfileServer.prototype.loadPlayerProfileFromServer(self, playerId,
|
||||
local function ____catch(____error)
|
||||
local player = PlayerResource:GetPlayer(playerId)
|
||||
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
|
||||
local ____try, ____hasReturned, ____returnValue = pcall(function()
|
||||
@@ -247,7 +247,7 @@ function MiniProfileServer.prototype.loadPlayerProfileFromServer(self, playerId,
|
||||
return true
|
||||
end
|
||||
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
|
||||
end
|
||||
if result.StatusCode >= 200 and result.StatusCode < 300 then
|
||||
@@ -257,7 +257,7 @@ function MiniProfileServer.prototype.loadPlayerProfileFromServer(self, playerId,
|
||||
nil,
|
||||
"[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
|
||||
local ____try, ____hasReturned, ____returnValue = pcall(function()
|
||||
local responseBodyStr = tostring(result.Body or "")
|
||||
@@ -269,7 +269,7 @@ function MiniProfileServer.prototype.loadPlayerProfileFromServer(self, playerId,
|
||||
nil,
|
||||
"[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
|
||||
end
|
||||
local responseDataAny = responseData
|
||||
@@ -415,7 +415,7 @@ function MiniProfileServer.prototype.loadPlayerProfileFromServer(self, playerId,
|
||||
____print(nil, "[MiniProfileServer] Using object directly as data")
|
||||
else
|
||||
____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
|
||||
end
|
||||
if data then
|
||||
@@ -439,7 +439,7 @@ function MiniProfileServer.prototype.loadPlayerProfileFromServer(self, playerId,
|
||||
end
|
||||
if not data or type(data) ~= "table" then
|
||||
____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
|
||||
end
|
||||
____print(
|
||||
@@ -720,7 +720,7 @@ function MiniProfileServer.prototype.loadPlayerProfileFromServer(self, playerId,
|
||||
player,
|
||||
"player_profile_data",
|
||||
{
|
||||
error = "Ошибка сервера: " .. tostring(result.StatusCode),
|
||||
error = "Server error: " .. tostring(result.StatusCode),
|
||||
steam_id = steamId,
|
||||
player_name = playerName
|
||||
}
|
||||
@@ -1554,7 +1554,7 @@ function MiniProfileServer.prototype.loadMatchPlayersFromServer(self, player, ma
|
||||
local tryRequest
|
||||
tryRequest = function(____, index)
|
||||
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
|
||||
end
|
||||
local request = CreateHTTPRequestScriptVM("GET", endpoints[index + 1])
|
||||
|
||||
@@ -1605,7 +1605,7 @@ function StoreManager.prototype.handlePurchase(self, playerId, itemId, itemData,
|
||||
end
|
||||
local cardId = math.floor(parsedCardId)
|
||||
if CARD_PURCHASABLE_BY_ID[cardId] == false then
|
||||
self:sendPurchaseResult(playerId, false, "Эту карту нельзя купить")
|
||||
self:sendPurchaseResult(playerId, false, "This card cannot be purchased")
|
||||
return true
|
||||
end
|
||||
local maxCopies = self:getCardMaxCopies(cardId)
|
||||
|
||||
@@ -1184,7 +1184,7 @@ function WaveManager.prototype.SpawnBossOnEnd(self, endSpawn, spawnPoints, homeP
|
||||
if selectedBossUnit ~= "" then
|
||||
CustomGameEventManager:Send_ServerToAllClients("boss_spawned", {bossName = selectedBossName, bossUnitName = selectedBossUnit})
|
||||
____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
|
||||
do
|
||||
local i = 0
|
||||
|
||||
Reference in New Issue
Block a user