优化房间视图控制器中的消息处理逻辑,增加 TurboModeStateManager 对全服礼物和游戏飘屏的控制,移除不必要的本地缓存,确保实时查询状态。更新 BoomInfoViewController 中的比值计算方式,提升代码可读性。调整 XPEffectPanelViewController 和 XPRoomMoreMenuViewController 的布局约束,改善用户界面。移除多处调试日志,提升代码整洁性。
This commit is contained in:
@@ -690,7 +690,7 @@
|
||||
|
||||
// 更新比值 label 并保持发光效果
|
||||
NSString *ratioText = [NSString stringWithFormat:@"%@/%@",
|
||||
@(boom.exp * boom.speed / 100.0).stringValue,
|
||||
@(floor(boom.exp * boom.speed / 100.0)).stringValue,
|
||||
@(boom.exp).stringValue];
|
||||
|
||||
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:ratioText];
|
||||
|
@@ -123,14 +123,12 @@
|
||||
}
|
||||
|
||||
- (void)resume {
|
||||
if (!self.isPaused) {
|
||||
NSLog(@"▶️ BannerScheduler: 恢复调度器");
|
||||
self.isPaused = NO;
|
||||
|
||||
// 如果当前没有在播放,则开始处理队列
|
||||
if (!self.isPlaying) {
|
||||
[self processNextBanner];
|
||||
}
|
||||
NSLog(@"▶️ BannerScheduler: 恢复调度器");
|
||||
self.isPaused = NO;
|
||||
|
||||
// 如果当前没有在播放,则开始处理队列
|
||||
if (!self.isPlaying) {
|
||||
[self processNextBanner];
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -191,11 +191,7 @@ BannerSchedulerDelegate
|
||||
// 🔧 移除:本地开关状态,改为使用 TurboModeStateManager
|
||||
@property (nonatomic, strong) NSString *currentRoomId; // 当前房间 ID
|
||||
|
||||
// 🔧 新增:本地开关状态缓存,减少频繁调用 TurboModeStateManager
|
||||
@property (nonatomic, assign) BOOL cachedGiftEffectsEnabled;
|
||||
@property (nonatomic, assign) BOOL cachedGlobalGiftScreenEnabled;
|
||||
@property (nonatomic, assign) BOOL cachedGlobalGameScreenEnabled;
|
||||
@property (nonatomic, assign) BOOL cachedCpMicEnabled;
|
||||
// 移除本地开关缓存:直接向 TurboModeStateManager 询问实时值
|
||||
|
||||
@end
|
||||
|
||||
@@ -601,8 +597,10 @@ BannerSchedulerDelegate
|
||||
effectPath:(NSString *)effectPath
|
||||
isCPEnter:(BOOL)isCP {
|
||||
|
||||
// 🔧 修改:使用本地缓存检查进房特效开关
|
||||
if (!self.cachedGiftEffectsEnabled) {
|
||||
// 实时查询开关:礼物特效
|
||||
NSString *roomIdForTurbo = self.currentRoomId ?: @([self.hostDelegate getRoomInfo].roomId).stringValue;
|
||||
BOOL giftEffectsEnabled = [[TurboModeStateManager sharedManager] isGiftEffectsEnabledForRoom:roomIdForTurbo];
|
||||
if (!giftEffectsEnabled) {
|
||||
NSLog(@"🎮 Turbo Mode进房特效已关闭,跳过进房动画");
|
||||
return;
|
||||
}
|
||||
@@ -735,7 +733,9 @@ BannerSchedulerDelegate
|
||||
if (obj.second == Custom_Message_Sub_General_Floating_Screen_One_Room ||
|
||||
obj.second == Custom_Message_Sub_General_Floating_Screen_All_Room) {
|
||||
// 游戏相关banner
|
||||
if (!self.cachedGlobalGameScreenEnabled) {
|
||||
NSString *roomIdForTurbo = self.currentRoomId ?: @([self.hostDelegate getRoomInfo].roomId).stringValue;
|
||||
BOOL allowGameScreen = [[TurboModeStateManager sharedManager] isGlobalGameScreenEnabledForRoom:roomIdForTurbo];
|
||||
if (!allowGameScreen) {
|
||||
NSLog(@"🎮 Turbo Mode全局游戏屏幕已关闭,跳过游戏banner");
|
||||
return;
|
||||
}
|
||||
@@ -743,7 +743,9 @@ BannerSchedulerDelegate
|
||||
obj.second == Custom_Message_Sub_Gift_ChannelNotify ||
|
||||
obj.second == Custom_Message_Sub_LuckyPackage) {
|
||||
// 礼物相关banner
|
||||
if (!self.cachedGlobalGiftScreenEnabled) {
|
||||
NSString *roomIdForTurbo = self.currentRoomId ?: @([self.hostDelegate getRoomInfo].roomId).stringValue;
|
||||
BOOL allowGiftScreen = [[TurboModeStateManager sharedManager] isGlobalGiftScreenEnabledForRoom:roomIdForTurbo];
|
||||
if (!allowGiftScreen) {
|
||||
NSLog(@"🎮 Turbo Mode全局礼物屏幕已关闭,跳过礼物banner");
|
||||
return;
|
||||
}
|
||||
@@ -751,7 +753,9 @@ BannerSchedulerDelegate
|
||||
obj.second == Custom_Message_Sub_CP_Upgrade ||
|
||||
obj.second == Custom_Message_Sub_CP_Binding) {
|
||||
// CP相关banner - 需要检查礼物特效开关
|
||||
if (!self.cachedGiftEffectsEnabled) {
|
||||
NSString *roomIdForTurbo = self.currentRoomId ?: @([self.hostDelegate getRoomInfo].roomId).stringValue;
|
||||
BOOL giftEffectsEnabled = [[TurboModeStateManager sharedManager] isGiftEffectsEnabledForRoom:roomIdForTurbo];
|
||||
if (!giftEffectsEnabled) {
|
||||
NSLog(@"🎮 Turbo Mode礼物特效已关闭,跳过CP banner");
|
||||
return;
|
||||
}
|
||||
@@ -1358,10 +1362,14 @@ BannerSchedulerDelegate
|
||||
|
||||
#pragma mark - Method: Send Gifts
|
||||
- (void)receiveGiftHandleSendGiftAnimationWith:(GiftReceiveInfoModel *)receiveInfo attachment:(AttachmentModel *)attachment {
|
||||
// 🔧 修改:使用本地缓存检查礼物特效开关
|
||||
if (!self.cachedGiftEffectsEnabled) {
|
||||
// 实时查询开关:礼物特效
|
||||
{
|
||||
NSString *roomIdForTurbo = self.currentRoomId ?: @([self.hostDelegate getRoomInfo].roomId).stringValue;
|
||||
BOOL giftEffectsEnabled = [[TurboModeStateManager sharedManager] isGiftEffectsEnabledForRoom:roomIdForTurbo];
|
||||
if (!giftEffectsEnabled) {
|
||||
NSLog(@"🎮 RoomAnimationView 礼物特效已关闭,跳过动画");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (!self.hostDelegate.getRoomInfo.hasAnimationEffect) {
|
||||
@@ -1860,7 +1868,7 @@ BannerSchedulerDelegate
|
||||
}
|
||||
|
||||
AttachmentModel *attachment = (AttachmentModel *)obj.attachment;
|
||||
{
|
||||
#if DEBUG
|
||||
// 自定义消息处理入口排查日志:first/second、payload size、线程
|
||||
NSData *payloadJSON = nil;
|
||||
@try { payloadJSON = [NSJSONSerialization dataWithJSONObject:attachment.data ?: @{} options:0 error:nil]; } @catch (__unused NSException *e) {}
|
||||
@@ -1869,7 +1877,7 @@ BannerSchedulerDelegate
|
||||
(unsigned long)payloadJSON.length,
|
||||
[NSThread isMainThread] ? @"YES" : @"NO",
|
||||
[[NSDate date] timeIntervalSince1970]);
|
||||
}
|
||||
#endif
|
||||
switch (attachment.first) {
|
||||
case CustomMessageType_User_Enter_Room:
|
||||
[self _handleEnterRoomMessage:message];
|
||||
@@ -4064,14 +4072,10 @@ BannerSchedulerDelegate
|
||||
#pragma mark - BannerSchedulerDelegate
|
||||
|
||||
- (void)bannerScheduler:(BannerScheduler *)scheduler shouldPlayBanner:(id)banner {
|
||||
// NSLog(@"🎯 BannerSchedulerDelegate: 收到播放 Banner 请求");
|
||||
// NSLog(@"🎯 Banner 类型: %@", [banner class]);
|
||||
|
||||
// 将 Banner 数据转换为 AttachmentModel 并播放
|
||||
if ([banner isKindOfClass:[AttachmentModel class]]) {
|
||||
AttachmentModel *attachment = (AttachmentModel *)banner;
|
||||
// NSLog(@"🎯 AttachmentModel 类型: %ld", (long)attachment.second);
|
||||
// NSLog(@"🎯 AttachmentModel 数据: %@", attachment.data);
|
||||
[self _playBannerWithAttachment:attachment];
|
||||
} else {
|
||||
NSLog(@"⚠️ BannerSchedulerDelegate: Banner 不是 AttachmentModel 类型");
|
||||
@@ -4276,9 +4280,6 @@ BannerSchedulerDelegate
|
||||
- (void)handleTurboGiftEffectsChanged:(NSNotification *)notification {
|
||||
BOOL enabled = [notification.userInfo[@"on"] boolValue];
|
||||
|
||||
// 🔧 新增:更新本地缓存
|
||||
self.cachedGiftEffectsEnabled = enabled;
|
||||
|
||||
// 如果关闭,清理当前效果
|
||||
if (!enabled) {
|
||||
[self cleanupGiftEffects];
|
||||
@@ -4291,9 +4292,6 @@ BannerSchedulerDelegate
|
||||
- (void)handleTurboGlobalGiftScreenChanged:(NSNotification *)notification {
|
||||
BOOL enabled = [notification.userInfo[@"on"] boolValue];
|
||||
|
||||
// 🔧 新增:更新本地缓存
|
||||
self.cachedGlobalGiftScreenEnabled = enabled;
|
||||
|
||||
// 如果关闭,清理礼物相关 banner
|
||||
if (!enabled) {
|
||||
[self cleanupGiftBanners];
|
||||
@@ -4306,9 +4304,6 @@ BannerSchedulerDelegate
|
||||
- (void)handleTurboGlobalGameScreenChanged:(NSNotification *)notification {
|
||||
BOOL enabled = [notification.userInfo[@"on"] boolValue];
|
||||
|
||||
// 🔧 新增:更新本地缓存
|
||||
self.cachedGlobalGameScreenEnabled = enabled;
|
||||
|
||||
// 如果关闭,清理游戏相关 banner
|
||||
if (!enabled) {
|
||||
[self cleanupGameBanners];
|
||||
@@ -4321,9 +4316,6 @@ BannerSchedulerDelegate
|
||||
- (void)handleTurboCpMicChanged:(NSNotification *)notification {
|
||||
BOOL enabled = [notification.userInfo[@"on"] boolValue];
|
||||
|
||||
// 🔧 新增:更新本地缓存
|
||||
self.cachedCpMicEnabled = enabled;
|
||||
|
||||
// CP麦位开关的变化由 MicMidpointRectManager 处理,这里只记录日志
|
||||
NSLog(@"🎮 RoomAnimationView CP麦位开关状态变化: %@", enabled ? @"开启" : @"关闭");
|
||||
}
|
||||
@@ -4339,29 +4331,12 @@ BannerSchedulerDelegate
|
||||
[[TurboModeStateManager sharedManager] updateGiftEffectsForRoom:roomId
|
||||
enabled:self.hostDelegate.getRoomInfo.hasAnimationEffect];
|
||||
|
||||
// 🔧 新增:更新本地缓存
|
||||
[self updateLocalSwitchCache];
|
||||
|
||||
NSLog(@"🎮 RoomAnimationView: 收到房间ID设置通知,房间ID: %@", roomId);
|
||||
}
|
||||
}
|
||||
|
||||
// 🔧 新增:更新本地开关状态缓存
|
||||
- (void)updateLocalSwitchCache {
|
||||
if (!self.currentRoomId) return;
|
||||
|
||||
TurboModeStateManager *manager = [TurboModeStateManager sharedManager];
|
||||
self.cachedGiftEffectsEnabled = [manager isGiftEffectsEnabledForRoom:self.currentRoomId];
|
||||
self.cachedGlobalGiftScreenEnabled = [manager isGlobalGiftScreenEnabledForRoom:self.currentRoomId];
|
||||
self.cachedGlobalGameScreenEnabled = [manager isGlobalGameScreenEnabledForRoom:self.currentRoomId];
|
||||
self.cachedCpMicEnabled = [manager isCpMicEnabledForRoom:self.currentRoomId];
|
||||
|
||||
NSLog(@"🎮 RoomAnimationView: 本地开关缓存已更新 - 礼物特效:%@, 全局礼物:%@, 全局游戏:%@, CP麦位:%@",
|
||||
self.cachedGiftEffectsEnabled ? @"开启" : @"关闭",
|
||||
self.cachedGlobalGiftScreenEnabled ? @"开启" : @"关闭",
|
||||
self.cachedGlobalGameScreenEnabled ? @"开启" : @"关闭",
|
||||
self.cachedCpMicEnabled ? @"开启" : @"关闭");
|
||||
}
|
||||
// 移除本地缓存更新:统一直接查 TurboModeStateManager
|
||||
|
||||
// 🔧 新增:处理 Turbo Mode 状态变化通知
|
||||
- (void)handleTurboModeStateChanged:(NSNotification *)notification {
|
||||
@@ -4373,7 +4348,11 @@ BannerSchedulerDelegate
|
||||
NSLog(@"🎮 RoomAnimationView: Turbo Mode 已开启,停止所有 banner 和动画");
|
||||
} else {
|
||||
// Turbo Mode 关闭时,恢复正常的 banner 和动画控制
|
||||
NSLog(@"🎮 RoomAnimationView: Turbo Mode 已关闭,恢复正常的 banner 和动画控制");
|
||||
if (self.bannerScheduler) {
|
||||
// 关键:恢复调度器,清除 isPaused 并在空闲时自动触发下一条
|
||||
[self.bannerScheduler resume];
|
||||
}
|
||||
NSLog(@"🎮 RoomAnimationView: Turbo Mode 已关闭,恢复 banner 调度");
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -53,11 +53,6 @@
|
||||
- (void)setItemModel:(XPRoomMoreItemModel *)itemModel {
|
||||
_itemModel = itemModel;
|
||||
if (_itemModel) {
|
||||
NSLog(@"=== Cell 设置数据 ===");
|
||||
NSLog(@"标题: %@", _itemModel.title);
|
||||
NSLog(@"图片: %@", _itemModel.imageName);
|
||||
NSLog(@"类型: %ld", (long)_itemModel.type);
|
||||
|
||||
self.titleLabel.text = _itemModel.title;
|
||||
self.titleLabel.textColor = _itemModel.titleColor ? _itemModel.titleColor : [DJDKMIMOMColor mainTextColor];
|
||||
if (itemModel.imageTintColor) {
|
||||
@@ -66,8 +61,6 @@
|
||||
} else {
|
||||
self.logoImageView.image = [UIImage getLanguageImage:_itemModel.imageName];
|
||||
}
|
||||
|
||||
NSLog(@"图片是否加载成功: %@", self.logoImageView.image ? @"是" : @"否");
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -76,60 +76,56 @@
|
||||
make.trailing.mas_equalTo(self.bottomAreaBackground).offset(-20);
|
||||
make.width.height.mas_equalTo(44);
|
||||
}];
|
||||
|
||||
self.dismissButton.hidden = YES;
|
||||
}
|
||||
|
||||
- (void)setupTitle {
|
||||
self.titleLabel = [[UILabel alloc] init];
|
||||
self.titleLabel.text = YMLocalizedString(@"20.20.62_text_9"); // Turbo Mode
|
||||
self.titleLabel.textColor = [UIColor whiteColor];
|
||||
self.titleLabel.font = [UIFont boldSystemFontOfSize:18];
|
||||
self.titleLabel.font = kFontMedium(15);
|
||||
self.titleLabel.textAlignment = NSTextAlignmentCenter;
|
||||
[self.bottomAreaBackground addSubview:self.titleLabel];
|
||||
|
||||
// 设置约束 - 使用 Masonry
|
||||
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.centerY.mas_equalTo(self.dismissButton);
|
||||
make.centerX.mas_equalTo(self.bottomAreaBackground);
|
||||
make.leading.mas_greaterThanOrEqualTo(self.bottomAreaBackground).offset(60);
|
||||
make.trailing.mas_lessThanOrEqualTo(self.bottomAreaBackground).offset(-60);
|
||||
// make.centerX.mas_equalTo(self.bottomAreaBackground);
|
||||
make.leading.mas_greaterThanOrEqualTo(self.bottomAreaBackground).offset(16);
|
||||
// make.trailing.mas_lessThanOrEqualTo(self.bottomAreaBackground).offset(-60);
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)setupSwitches {
|
||||
// 礼物特效开关(临时状态)
|
||||
[self setupSwitchItem:YMLocalizedString(@"20.20.62_text_10") // Gift effects
|
||||
switch:self.giftEffectsSwitch
|
||||
atIndex:0];
|
||||
atIndex:0];
|
||||
|
||||
// 全局礼物屏幕开关(持久化)
|
||||
[self setupSwitchItem:YMLocalizedString(@"20.20.62_text_11") // Global gift screen
|
||||
switch:self.globalGiftScreenSwitch
|
||||
atIndex:1];
|
||||
atIndex:1];
|
||||
|
||||
// 全局游戏屏幕开关(持久化)
|
||||
[self setupSwitchItem:YMLocalizedString(@"20.20.62_text_12") // Global game screen
|
||||
switch:self.globalGameScreenSwitch
|
||||
atIndex:2];
|
||||
atIndex:2];
|
||||
|
||||
// CP麦位开关(持久化)
|
||||
[self setupSwitchItem:YMLocalizedString(@"20.20.62_text_21") // CP mic
|
||||
switch:self.cpMicSwitch
|
||||
atIndex:3];
|
||||
atIndex:3];
|
||||
}
|
||||
|
||||
- (void)setupSwitchItem:(NSString *)title
|
||||
switch:(UISwitch *)switchControl
|
||||
atIndex:(NSInteger)index {
|
||||
|
||||
UIView *switchView = [[UIView alloc] init];
|
||||
switchView.backgroundColor = [UIColor colorWithWhite:0.2 alpha:0.8];
|
||||
switchView.layer.cornerRadius = 12;
|
||||
UIView *switchView = [[UIView alloc] init];
|
||||
switchView.backgroundColor = [UIColor clearColor];
|
||||
switchView.layer.cornerRadius = 12;
|
||||
[self.bottomAreaBackground addSubview:switchView];
|
||||
|
||||
UILabel *titleLabel = [[UILabel alloc] init];
|
||||
titleLabel.text = title;
|
||||
titleLabel.textColor = [UIColor whiteColor];
|
||||
titleLabel.font = [UIFont systemFontOfSize:16];
|
||||
titleLabel.font = kFontRegular(14);
|
||||
[switchView addSubview:titleLabel];
|
||||
|
||||
UISwitch *switchViewControl = [[UISwitch alloc] init];
|
||||
@@ -138,19 +134,18 @@
|
||||
|
||||
// 设置约束 - 使用 Masonry
|
||||
[switchView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.mas_equalTo(self.bottomAreaBackground).offset(20);
|
||||
make.trailing.mas_equalTo(self.bottomAreaBackground).offset(-20);
|
||||
make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(30 + index * 70);
|
||||
make.leading.trailing.mas_equalTo(self.bottomAreaBackground).inset(16);
|
||||
make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(20 + index * 50);
|
||||
make.height.mas_equalTo(50);
|
||||
}];
|
||||
|
||||
[titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.leading.mas_equalTo(switchView).offset(16);
|
||||
make.leading.mas_equalTo(switchView);
|
||||
make.centerY.mas_equalTo(switchView);
|
||||
}];
|
||||
|
||||
[switchViewControl mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.trailing.mas_equalTo(switchView).offset(-16);
|
||||
make.trailing.mas_equalTo(switchView);
|
||||
make.centerY.mas_equalTo(switchView);
|
||||
}];
|
||||
|
||||
|
@@ -201,13 +201,6 @@ extern NSString *const kTurboModeButtonStateChanged;
|
||||
|
||||
#pragma mark - XPMoreMenuProtocol
|
||||
- (void)getMoreMenuDataSuccess:(NSArray<XPRoomMoreItemModel *> *)list {
|
||||
NSLog(@"=== getMoreMenuDataSuccess ===");
|
||||
NSLog(@"接收到 %lu 个菜单项", (unsigned long)list.count);
|
||||
|
||||
for (XPRoomMoreItemModel *item in list) {
|
||||
NSLog(@"菜单项: 标题=%@, 图片=%@, 类型=%ld", item.title, item.imageName, (long)item.type);
|
||||
}
|
||||
|
||||
self.datasource = list;
|
||||
[self.collectionView reloadData];
|
||||
|
||||
|
@@ -390,14 +390,6 @@ NSString * const kBoomStateForceResetNotification = @"BoomStateForceResetNotific
|
||||
// 新增:打印当前连击状态(用于调试)
|
||||
- (void)printComboState {
|
||||
NSDictionary *stateInfo = [self getComboStateInfo];
|
||||
NSLog(@"[Combo effect] 📊 当前连击状态:");
|
||||
NSLog(@"[Combo effect] - isCombing: %@", [stateInfo[@"isCombing"] boolValue] ? @"YES" : @"NO");
|
||||
NSLog(@"[Combo effect] - enableCombo: %@", [stateInfo[@"enableCombo"] boolValue] ? @"YES" : @"NO");
|
||||
NSLog(@"[Combo effect] - combo: %@", stateInfo[@"combo"]);
|
||||
NSLog(@"[Combo effect] - hasGiftInfo: %@", [stateInfo[@"hasGiftInfo"] boolValue] ? @"YES" : @"NO");
|
||||
NSLog(@"[Combo effect] - targetCount: %@", stateInfo[@"targetCount"]);
|
||||
NSLog(@"[Combo effect] - errorMessage: %@", stateInfo[@"errorMessage"]);
|
||||
|
||||
// 检查并修复连击计数异常
|
||||
[self validateAndFixComboCount];
|
||||
}
|
||||
|
@@ -172,7 +172,6 @@
|
||||
- (void)updateCount {
|
||||
// 在连击面板点击时,需要先更新连击计数
|
||||
NSInteger comboCount = [[GiftComboManager sharedManager] currentCount];
|
||||
NSLog(@"[Combo effect] 🔢 更新连击次数显示 - combo: %ld", (long)comboCount);
|
||||
NSString *countStr = [NSString stringWithFormat:@"x%ld", comboCount];
|
||||
NSShadow *shadow = [[NSShadow alloc] init];
|
||||
shadow.shadowBlurRadius = 3;
|
||||
|
@@ -2096,9 +2096,20 @@ XPCandyTreeInsufficientBalanceViewDelegate>
|
||||
|
||||
NSLog(@"[Recv] --- Message Raw Attach Content: %@, %@, %ld", @(message.senderClientType), message.rawAttachContent, (long)message.messageType);
|
||||
|
||||
if ([message.rawAttachContent containsString:@"\"allRoomMsg\":1"]) {
|
||||
NSLog(@"[Recv] --- 拦截旧的全房间消息");
|
||||
continue;
|
||||
// 全服礼物/游戏飘屏按 TurboModeStateManager 的房间开关控制
|
||||
NSString *currentRoomIdForTurbo = @(self.roomInfo.roomId).stringValue;
|
||||
BOOL containsAllRoomMsg = [message.rawAttachContent containsString:@"\"allRoomMsg\":1"]; // 全服礼物飘屏标记
|
||||
BOOL containsAllGameMsg = [message.rawAttachContent containsString:@"\"allGameMsg\":1"]; // 预留:全服游戏飘屏标记
|
||||
if (containsAllRoomMsg || containsAllGameMsg) {
|
||||
BOOL allowGiftScreen = [[TurboModeStateManager sharedManager] isGlobalGiftScreenEnabledForRoom:currentRoomIdForTurbo];
|
||||
BOOL allowGameScreen = [[TurboModeStateManager sharedManager] isGlobalGameScreenEnabledForRoom:currentRoomIdForTurbo];
|
||||
if ((containsAllRoomMsg && !allowGiftScreen) || (containsAllGameMsg && !allowGameScreen)) {
|
||||
NSLog(@"[Recv] ⛔️ 按 TurboMode 屏蔽全服飘屏 | gift=%@ game=%@ | roomId=%@",
|
||||
allowGiftScreen ? @"ON" : @"OFF",
|
||||
allowGameScreen ? @"ON" : @"OFF",
|
||||
currentRoomIdForTurbo);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (message.messageType == NIMMessageTypeNotification) {
|
||||
@@ -2915,6 +2926,15 @@ XPCandyTreeInsufficientBalanceViewDelegate>
|
||||
}else if(attachment.first == CustomMessageType_LuckyBag && attachment.second == Custom_Message_Sub_Room_Gift_LuckBag_FullScree){
|
||||
isHave = YES;
|
||||
}
|
||||
// 对全服飘屏按 TurboModeStateManager 的房间开关做二次过滤
|
||||
if (isHave && (attachment.first == CustomMessageType_General_Public_Screen && attachment.second == Custom_Message_Sub_General_Public_Screen_All_Room)) {
|
||||
NSString *currentRoomIdForTurbo = @(self.roomInfo.roomId).stringValue;
|
||||
BOOL allowGiftScreen = [[TurboModeStateManager sharedManager] isGlobalGiftScreenEnabledForRoom:currentRoomIdForTurbo];
|
||||
if (!allowGiftScreen) {
|
||||
NSLog(@"[Broadcast] ⛔️ 按 TurboMode 屏蔽全服礼物飘屏 | roomId=%@", currentRoomIdForTurbo);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (attachment.first == CustomMessageType_RedPacket && attachment.second == Custom_Message_Sub_AllDiamandRedPacket) {
|
||||
if(self.isShowRedPacket == YES)return;
|
||||
XPRedPacketModel *data = [XPRedPacketModel modelWithDictionary:attachment.data];
|
||||
|
@@ -808,197 +808,163 @@
|
||||
"XPMineDataClanTableViewCell5" = "Hali hech qanday guildga a'zo emas";
|
||||
"XPMineDataClanTableViewCell6" = "Profil";
|
||||
"XPMineDataClanTableViewCell7" = "Burjalar:";
|
||||
// TODO: 漏的翻译 start
|
||||
"XPMineDataClanTableViewCell8" = "Birthday:";
|
||||
"XPMineDataClanTableViewCell9" = "Room:";
|
||||
"XPMineDataClanTableViewCell10" = "Guild:";
|
||||
"XPMineDataClanTableViewCell11" = "This user has not joined any room yet";
|
||||
"XPMineDataClanTableViewCell12" = "Not joined any room yet";
|
||||
"XPMineDataClanTableViewCell13" = "Region:";
|
||||
"XPMineDataClanTableViewCell14" = "More";
|
||||
|
||||
"XPMineUserInfoGiftWallViewController0" = "Gifts";
|
||||
"XPMineUserInfoGiftWallViewController1" = "Normal gifts";
|
||||
"XPMineUserInfoGiftWallViewController2" = "Lucky gifts";
|
||||
"XPMineUserInfoGiftWallViewController3" = "No photos yet";
|
||||
"XPMineUserInfoGiftWallViewController4" = "No gifts yet";
|
||||
|
||||
"XPMineUserInfoTableViewCell1" = "I am a default signature";
|
||||
"XPMineUserInfoTableViewCell2" = "Live";
|
||||
|
||||
|
||||
"XPMineVisitorEmptyTableViewCell0" = "No data";
|
||||
|
||||
"XPMineVisitorTableViewCell0" = "User nickname";
|
||||
|
||||
"XPMineRechargeTableViewCell0" = "Coins";
|
||||
|
||||
"XPMineUserInfoViewController0" = "Report";
|
||||
"XPMineUserInfoViewController1" = "Block User";
|
||||
"XPMineUserInfoViewController2" = "Remove from Blacklist";
|
||||
"XPMineUserInfoViewController3" = "By removing from blacklist, you will receive messages from this user as usual";
|
||||
"XPMineUserInfoViewController4" = "Add to Blacklist";
|
||||
"XPMineUserInfoViewController5" = "By adding to blacklist, you will no longer receive messages from this user";
|
||||
"XPMineUserInfoViewController6" = "Removed from blacklist successfully";
|
||||
"XPMineUserInfoViewController7" = "Added to blacklist successfully";
|
||||
"XPMineUserInfoViewController8" = "Chat";
|
||||
"XPMineUserInfoViewController9" = "Follow";
|
||||
"XPMineUserInfoViewController10" = "Following";
|
||||
"XPMineUserInfoViewController11" = "Profile";
|
||||
"XPMineUserInfoViewController12" = "Posts";
|
||||
"XPMineUserInfoViewController13" = "Gift Wall";
|
||||
|
||||
"XPMineUserInfoAlbumViewController0" = "My Albums";
|
||||
"XPMineUserInfoAlbumViewController1" = "Upload from Camera";
|
||||
"XPMineUserInfoAlbumViewController3" = "Camera access restricted. Tap OK to go to system settings";
|
||||
"XPMineUserInfoAlbumViewController5" = "Photo library access restricted. Tap OK to go to system settings";
|
||||
"XPMineUserInfoAlbumViewController6" = "Local Album";
|
||||
"XPMineUserInfoAlbumViewController8" = "Photo library access restricted. Tap OK to go to system settings";
|
||||
"XPMineUserInfoAlbumViewController10" = "Photo library access restricted. Tap OK to go to system settings";
|
||||
"XPMineUserInfoAlbumViewController11" = "You can only upload up to 8 photos";
|
||||
"XPMineUserInfoAlbumViewController12" = "Deletion is irreversible";
|
||||
"XPMineUserInfoAlbumViewController13" = "Do you want to delete?";
|
||||
"XPMineUserInfoAlbumViewController14" = "Photo under review, will be uploaded automatically after approval";
|
||||
"XPMineUserInfoAlbumViewController15" = "Deleted successfully";
|
||||
"XPMineUserInfoAlbumViewController16" = "Edit";
|
||||
"XPMineUserInfoAlbumViewController17" = "Done";
|
||||
|
||||
"XPMineUserDataViewController0" = "Application submitted, waiting for admin approval";
|
||||
"XPMineUserDataViewController1" = "Posts";
|
||||
"XPMineUserDataViewController2" = "Default posts cannot be liked";
|
||||
"XPMineUserDataViewController3" = "Default posts cannot be commented";
|
||||
|
||||
"XPMineSimpleUserInfoViewController0" = "Report";
|
||||
"XPMineSimpleUserInfoViewController1" = "We have received your request and will process it as soon as possible";
|
||||
"XPMineSimpleUserInfoViewController2" = "Block";
|
||||
"XPMineSimpleUserInfoViewController3" = "Remove from Blacklist";
|
||||
"XPMineSimpleUserInfoViewController4" = "By removing from blacklist, you will receive messages from this user as usual";
|
||||
"XPMineSimpleUserInfoViewController5" = "Add to Blacklist";
|
||||
"XPMineSimpleUserInfoViewController6" = "By adding to blacklist, you will no longer receive messages from this user";
|
||||
"XPMineSimpleUserInfoViewController7" = "Removed from blacklist successfully";
|
||||
"XPMineSimpleUserInfoViewController8" = "Added to blacklist successfully";
|
||||
"XPMineSimpleUserInfoViewController9" = "Chat with them";
|
||||
"XPMineSimpleUserInfoViewController10" = "Follow";
|
||||
"XPMineSimpleUserInfoViewController11" = "Following";
|
||||
|
||||
"XPMineUserInfoDesViewController0" = "Edit Personal Introduction";
|
||||
"XPMineUserInfoDesViewController1" = "Maximum %ld characters";
|
||||
"XPMineUserInfoDesViewController2" = "Write a self-introduction to let others know more about you~";
|
||||
"XPMineUserInfoDesViewController3" = "Done";
|
||||
|
||||
"XPMineUserInfoEditViewController0" = "Edit Profile";
|
||||
"XPMineUserInfoEditViewController1" = "Upload from Camera";
|
||||
"XPMineUserInfoEditViewController2" = "Camera unavailable";
|
||||
"XPMineUserInfoEditViewController3" = "Camera access restricted. Tap OK to go to system settings";
|
||||
"XPMineUserInfoEditViewController4" = "Camera unavailable";
|
||||
"XPMineUserInfoEditViewController5" = "Photo library access restricted. Tap OK to go to system settings";
|
||||
"XPMineUserInfoEditViewController6" = "Local Album";
|
||||
"XPMineUserInfoEditViewController7" = "Photo library access restricted. Tap OK to go to system settings";
|
||||
"XPMineUserInfoEditViewController8" = "Photo library access restricted. Tap OK to go to system settings";
|
||||
"XPMineUserInfoEditViewController9" = "Profile under review";
|
||||
"XPMineUserInfoEditViewController10" = "Profile under review, will be applied automatically after approval";
|
||||
"XPMineUserInfoEditViewController11" = "Updated successfully";
|
||||
"XPMineUserInfoEditViewController12" = "Avatar has been submitted for review, it will be automatically applied upon approval";
|
||||
"XPMineUserInfoEditViewController13" = "Update successful";
|
||||
|
||||
|
||||
"XPMineUserInfoNickViewController0" = "Edit Nickname";
|
||||
"XPMineUserInfoNickViewController1" = "Maximum character limit reached";
|
||||
"XPMineUserInfoNickViewController2" = "Maximum character limit reached";
|
||||
"XPMineUserInfoNickViewController3" = "Done";
|
||||
|
||||
"XPMineUserInfoGiftWallViewController0" = "Gifts";
|
||||
|
||||
|
||||
"XPMineVisitorViewController0" = "No more visitor records";
|
||||
"XPMineVisitorViewController1" = "Visitor records";
|
||||
"XPMineVisitorViewController2" = "No visitor records yet";
|
||||
|
||||
"XPMineViewController0" = "To create a safer online environment and protect your and others' property security, please complete real-name authentication first.";
|
||||
|
||||
"XPMineViewController2" = "Real-name Authentication";
|
||||
|
||||
"XPSimpleMineViewController0" = "You don't have any guild yet";
|
||||
"XPSimpleMineViewController1" = "My Guild";
|
||||
"XPSimpleMineViewController2" = "Personalize";
|
||||
"XPSimpleMineViewController3" = "Fan Clubs";
|
||||
"XPSimpleMineViewController4" = "Teen Mode";
|
||||
"XPSimpleMineViewController5" = "Feedback";
|
||||
"XPSimpleMineViewController6" = "Settings";
|
||||
|
||||
"XPIAPRechargeHeaderView0" = "My Coins";
|
||||
|
||||
"XPIAPRechargeViewController0" = "Purchase Failed";
|
||||
"XPIAPRechargeViewController1" = "Unknown error occurred, please try again";
|
||||
"XPIAPRechargeViewController2" = "Confirm Recharge";
|
||||
"XPIAPRechargeViewController3" = "《User Recharge Agreement》";
|
||||
"XPIAPRechargeViewController4" = "I have read and agree";
|
||||
"XPIAPRechargeViewController5" = "For any questions, please contact customer service, MoliStar ID";
|
||||
"XPIAPRechargeViewController6" = "My Account";
|
||||
"XPIAPRechargeViewController7" = "Reminder";
|
||||
"XPIAPRechargeViewController8" = "Recharge failed. Please contact customer service for assistance.";
|
||||
"XPIAPRechargeViewController9" = "Contact Customer Service";
|
||||
"XPIAPRechargeViewController10" = "Recharge failed. Currently only devices running iOS 15 and above can recharge. Please upgrade your system and try again.";
|
||||
"XPIAPRechargeViewController11" = "Please select the number of Coins to be recharged";
|
||||
|
||||
|
||||
"XPMineRechargeViewController0" = "Purchase Failed";
|
||||
"XPMineRechargeViewController1" = "Unknown error occurred, please try again";
|
||||
"XPMineRechargeViewController2" = "《User Recharge Agreement";
|
||||
"XPMineRechargeViewController3" = "I have read and agree";
|
||||
|
||||
"XPMinePayPwdViewController0" = "Set Payment Password";
|
||||
"XPMinePayPwdViewController1" = "Failed to get phone number";
|
||||
"XPMinePayPwdViewController2" = "Verification code sent successfully";
|
||||
"XPMinePayPwdViewController3" = "Payment password set successfully";
|
||||
"XPMinePayPwdViewController4" = "Payment password must be 6-digit number";
|
||||
"XPMinePayPwdViewController5" = "Payment password must be numeric";
|
||||
"XPMinePayPwdViewController6" = "Passwords entered do not match";
|
||||
"XPMinePayPwdViewController7" = "Enter verification code";
|
||||
|
||||
"XPMinePayPwdViewController9" = "Verification code sent to your bound phone %@****%@";
|
||||
"XPMinePayPwdViewController10" = "Enter payment password";
|
||||
"XPMinePayPwdViewController11" = "Confirm payment password";
|
||||
|
||||
"XPMineBlackListViewController0" = "Blacklist";
|
||||
"XPMineBlackListViewController1" = "Remove";
|
||||
|
||||
"XPMineResetPayPwdViewController0" = "Reset Payment Password";
|
||||
"XPMineResetPayPwdViewController1" = "Payment password reset successfully";
|
||||
"XPMineResetPayPwdViewController2" = "Passwords entered do not match";
|
||||
"XPMineResetPayPwdViewController3" = "Enter payment password";
|
||||
"XPMineResetPayPwdViewController4" = "Confirm payment password";
|
||||
|
||||
|
||||
"XPMineSettingViewController0" = "Settings";
|
||||
"XPMineSettingViewController1" = "Please bind your phone number first";
|
||||
"XPMineSettingViewController2" = "Clear Cache";
|
||||
"XPMineSettingViewController3" = "Do you want to clear cache?";
|
||||
"XPMineSettingViewController4" = "Cache cleared";
|
||||
"XPMineSettingViewController5" = "Currently updated to the latest version";
|
||||
"XPMineSettingViewController6" = "Currently updated to the latest version";
|
||||
"XPMineSettingViewController7" = "Log out of current account";
|
||||
"XPMineSettingViewController8" = "Log out";
|
||||
"XPMineSettingViewController9" = "Set Login Password";
|
||||
"XPMineSettingViewController10" = "To facilitate your next login, please set a login password first";
|
||||
|
||||
"XPMineModifPayPwdViewController0" = "Modify Payment Password";
|
||||
"XPMineModifPayPwdViewController1" = "Payment password modified successfully";
|
||||
"XPMineModifPayPwdViewController2" = "Passwords entered do not match";
|
||||
"XPMineModifPayPwdViewController3" = "New payment password must be numeric";
|
||||
"XPMineModifPayPwdViewController4" = "Enter current payment password";
|
||||
"XPMineModifPayPwdViewController5" = "Enter payment password";
|
||||
"XPMineModifPayPwdViewController6" = "Confirm payment password";
|
||||
|
||||
"XPMineModifPayPwdViewController8" = "Forgot Password";
|
||||
|
||||
"XPMineFeedbackViewController0" = "Feedback";
|
||||
"XPMineFeedbackViewController1" = "Thank you for your valuable feedback, let's work together to create a better";
|
||||
"XPMineFeedbackViewController2" = "Problem Description";
|
||||
"XPMineFeedbackViewController3" = "Please describe in detail the problems and situations you encountered. Thank you for your valuable feedback.";
|
||||
"XPMineFeedbackViewController4" = "Please enter your contact information";
|
||||
"XPMineFeedbackViewController5" = "Submit Feedback";
|
||||
// TODO: 漏的翻译 end
|
||||
"XPMineDataClanTableViewCell8" = "Tug'ilgan kun:";
|
||||
"XPMineDataClanTableViewCell9" = "Xona:";
|
||||
"XPMineDataClanTableViewCell10" = "Gildiya:";
|
||||
"XPMineDataClanTableViewCell11" = "Bu foydalanuvchi hali hech qanday xonaga qo'shilmagan";
|
||||
"XPMineDataClanTableViewCell12" = "Hali hech qanday xonaga qo'shilmagan";
|
||||
"XPMineDataClanTableViewCell13" = "Hudud:";
|
||||
"XPMineDataClanTableViewCell14" = "Batafsil";
|
||||
"XPMineUserInfoGiftWallViewController0" = "Sovg'alar";
|
||||
"XPMineUserInfoGiftWallViewController1" = "Oddiy sovg'alar";
|
||||
"XPMineUserInfoGiftWallViewController2" = "Omadli sovg'alar";
|
||||
"XPMineUserInfoGiftWallViewController3" = "Hali rasmlar mavjud emas";
|
||||
"XPMineUserInfoGiftWallViewController4" = "Hali sovg'alar mavjud emas";
|
||||
"XPMineUserInfoTableViewCell1" = "Men standart imzodaman";
|
||||
"XPMineUserInfoTableViewCell2" = "Jonli";
|
||||
"XPMineVisitorEmptyTableViewCell0" = "Ma'lumot yo'q";
|
||||
"XPMineVisitorTableViewCell0" = "Foydalanuvchi taxallusi";
|
||||
"XPMineRechargeTableViewCell0" = "Tangalar";
|
||||
"XPMineUserInfoViewController0" = "Shikoyat qilish";
|
||||
"XPMineUserInfoViewController1" = "Foydalanuvchini bloklash";
|
||||
"XPMineUserInfoViewController2" = "Qora ro'yxatdan olib tashlash";
|
||||
"XPMineUserInfoViewController3" = "Qora ro'yxatdan olib tashlash orqali siz ushbu foydalanuvchidan xabarlarni odatdagidek olasiz";
|
||||
"XPMineUserInfoViewController4" = "Qora ro'yxatga qo'shish";
|
||||
"XPMineUserInfoViewController5" = "Qora ro'yxatga qo'shish orqali siz ushbu foydalanuvchidan boshqa xabarlar olmaysiz";
|
||||
"XPMineUserInfoViewController6" = "Qora ro'yxatdan muvaffaqiyatli olib tashlandi";
|
||||
"XPMineUserInfoViewController7" = "Qora ro'yxatga muvaffaqiyatli qo'shildi";
|
||||
"XPMineUserInfoViewController8" = "Suhbat";
|
||||
"XPMineUserInfoViewController9" = "Kuzatish";
|
||||
"XPMineUserInfoViewController10" = "Kuzatilmoqda";
|
||||
"XPMineUserInfoViewController11" = "Profil";
|
||||
"XPMineUserInfoViewController12" = "Postlar";
|
||||
"XPMineUserInfoViewController13" = "Sovg'alar devori";
|
||||
"XPMineUserInfoAlbumViewController0" = "Mening albomlarim";
|
||||
"XPMineUserInfoAlbumViewController1" = "Kameradan yuklash";
|
||||
"XPMineUserInfoAlbumViewController3" = "Kameraga kirish cheklangan. Tizim sozlamalariga o'tish uchun OK tugmasini bosing";
|
||||
"XPMineUserInfoAlbumViewController5" = "Fotoalbomga kirish cheklangan. Tizim sozlamalariga o'tish uchun OK tugmasini bosing";
|
||||
"XPMineUserInfoAlbumViewController6" = "Lokal albom";
|
||||
"XPMineUserInfoAlbumViewController8" = "Fotoalbomga kirish cheklangan. Tizim sozlamalariga o'tish uchun OK tugmasini bosing";
|
||||
"XPMineUserInfoAlbumViewController10" = "Fotoalbomga kirish cheklangan. Tizim sozlamalariga o'tish uchun OK tugmasini bosing";
|
||||
"XPMineUserInfoAlbumViewController11" = "Siz faqat 8 tagacha rasm yuklashingiz mumkin";
|
||||
"XPMineUserInfoAlbumViewController12" = "O'chirishni qaytarib bo'lmaydi";
|
||||
"XPMineUserInfoAlbumViewController13" = "O'chirmoqchimisiz?";
|
||||
"XPMineUserInfoAlbumViewController14" = "Rasm ko'rib chiqilmoqda, tasdiqlangandan keyin avtomatik yuklanadi";
|
||||
"XPMineUserInfoAlbumViewController15" = "Muvaffaqiyatli o'chirildi";
|
||||
"XPMineUserInfoAlbumViewController16" = "Tahrirlash";
|
||||
"XPMineUserInfoAlbumViewController17" = "Bajarildi";
|
||||
"XPMineUserDataViewController0" = "Ariza topshirildi, ma'mur tasdiqini kutmoqda";
|
||||
"XPMineUserDataViewController1" = "Postlar";
|
||||
"XPMineUserDataViewController2" = "Standart postlarni yoqtirish mumkin emas";
|
||||
"XPMineUserDataViewController3" = "Standart postlarga izoh qoldirish mumkin emas";
|
||||
"XPMineSimpleUserInfoViewController0" = "Shikoyat qilish";
|
||||
"XPMineSimpleUserInfoViewController1" = "Biz sizning so'rovingizni qabul qildik va imkon qadar tezda ko'rib chiqamiz";
|
||||
"XPMineSimpleUserInfoViewController2" = "Bloklash";
|
||||
"XPMineSimpleUserInfoViewController3" = "Qora ro'yxatdan olib tashlash";
|
||||
"XPMineSimpleUserInfoViewController4" = "Qora ro'yxatdan olib tashlash orqali siz ushbu foydalanuvchidan xabarlarni odatdagidek olasiz";
|
||||
"XPMineSimpleUserInfoViewController5" = "Qora ro'yxatga qo'shish";
|
||||
"XPMineSimpleUserInfoViewController6" = "Qora ro'yxatga qo'shish orqali siz ushbu foydalanuvchidan boshqa xabarlar olmaysiz";
|
||||
"XPMineSimpleUserInfoViewController7" = "Qora ro'yxatdan muvaffaqiyatli olib tashlandi";
|
||||
"XPMineSimpleUserInfoViewController8" = "Qora ro'yxatga muvaffaqiyatli qo'shildi";
|
||||
"XPMineSimpleUserInfoViewController9" = "Ularni suhbat qilish";
|
||||
"XPMineSimpleUserInfoViewController10" = "Kuzatish";
|
||||
"XPMineSimpleUserInfoViewController11" = "Kuzatilmoqda";
|
||||
"XPMineUserInfoDesViewController0" = "Shaxsiy ta'rifni tahrirlash";
|
||||
"XPMineUserInfoDesViewController1" = "Maksimal %ld belgi";
|
||||
"XPMineUserInfoDesViewController2" = "O'zingiz haqingizda batafsil yozing, boshqalar sizni yaxshiroq tanishsin~";
|
||||
"XPMineUserInfoDesViewController3" = "Bajarildi";
|
||||
"XPMineUserInfoEditViewController0" = "Profilni tahrirlash";
|
||||
"XPMineUserInfoEditViewController1" = "Kameradan yuklash";
|
||||
"XPMineUserInfoEditViewController2" = "Kamera mavjud emas";
|
||||
"XPMineUserInfoEditViewController3" = "Kameraga kirish cheklangan. Tizim sozlamalariga o'tish uchun OK tugmasini bosing";
|
||||
"XPMineUserInfoEditViewController4" = "Kamera mavjud emas";
|
||||
"XPMineUserInfoEditViewController5" = "Fotoalbomga kirish cheklangan. Tizim sozlamalariga o'tish uchun OK tugmasini bosing";
|
||||
"XPMineUserInfoEditViewController6" = "Lokal albom";
|
||||
"XPMineUserInfoEditViewController7" = "Fotoalbomga kirish cheklangan. Tizim sozlamalariga o'tish uchun OK tugmasini bosing";
|
||||
"XPMineUserInfoEditViewController8" = "Fotoalbomga kirish cheklangan. Tizim sozlamalariga o'tish uchun OK tugmasini bosing";
|
||||
"XPMineUserInfoEditViewController9" = "Profil ko'rib chiqilmoqda";
|
||||
"XPMineUserInfoEditViewController10" = "Profil ko'rib chiqilmoqda, tasdiqlangandan keyin avtomatik qo'llaniladi";
|
||||
"XPMineUserInfoEditViewController11" = "Muvaffaqiyatli yangilandi";
|
||||
"XPMineUserInfoEditViewController12" = "Avatar ko'rib chiqish uchun topshirildi, tasdiqlangandan keyin avtomatik qo'llaniladi";
|
||||
"XPMineUserInfoEditViewController13" = "Yangilash muvaffaqiyatli";
|
||||
"XPMineUserInfoNickViewController0" = "Taxallusni tahrirlash";
|
||||
"XPMineUserInfoNickViewController1" = "Maksimal belgi chegarasiga yetildi";
|
||||
"XPMineUserInfoNickViewController2" = "Maksimal belgi chegarasiga yetildi";
|
||||
"XPMineUserInfoNickViewController3" = "Bajarildi";
|
||||
"XPMineUserInfoGiftWallViewController0" = "Sovg'alar";
|
||||
"XPMineVisitorViewController0" = "Boshqa mehmon yozuvlari yo'q";
|
||||
"XPMineVisitorViewController1" = "Mehmon yozuvlari";
|
||||
"XPMineVisitorViewController2" = "Hali mehmon yozuvlari mavjud emas";
|
||||
"XPMineViewController0" = "Xavfsiz onlayn muhit yaratish va sizning va boshqalarning mulk xavfsizligini himoya qilish uchun, iltimos, avval haqiqiy ism autentifikatsiyasini to'ldiring.";
|
||||
"XPMineViewController2" = "Haqiqiy ism autentifikatsiyasi";
|
||||
"XPSimpleMineViewController0" = "Sizda hali hech qanday gildiya yo'q";
|
||||
"XPSimpleMineViewController1" = "Mening gildiyam";
|
||||
"XPSimpleMineViewController2" = "Shaxsiylashtirish";
|
||||
"XPSimpleMineViewController3" = "Muxlislar klublari";
|
||||
"XPSimpleMineViewController4" = "Yosh rejimi";
|
||||
"XPSimpleMineViewController5" = "Fikr-mulohaza";
|
||||
"XPSimpleMineViewController6" = "Sozlamalar";
|
||||
"XPIAPRechargeHeaderView0" = "Mening tangalarim";
|
||||
"XPIAPRechargeViewController0" = "Xarida muvaffaqiyatsiz";
|
||||
"XPIAPRechargeViewController1" = "Noma'lum xato yuz berdi, iltimos qayta urinib ko'ring";
|
||||
"XPIAPRechargeViewController2" = "To'ldirishni tasdiqlash";
|
||||
"XPIAPRechargeViewController3" = "《Foydalanuvchi To'ldirish Shartnomasi》";
|
||||
"XPIAPRechargeViewController4" = "Men o'qidim va qabul qildim";
|
||||
"XPIAPRechargeViewController5" = "Savollar bo'lsa, iltimos mijozlar xizmatiga murojaat qiling, MoliStar ID";
|
||||
"XPIAPRechargeViewController6" = "Mening hisobim";
|
||||
"XPIAPRechargeViewController7" = "Eslatma";
|
||||
"XPIAPRechargeViewController8" = "To'ldirish muvaffaqiyatsiz. Iltimos yordam uchun mijozlar xizmatiga murojaat qiling.";
|
||||
"XPIAPRechargeViewController9" = "Mijozlar xizmatiga murojaat qiling";
|
||||
"XPIAPRechargeViewController10" = "To'ldirish muvaffaqiyatsiz. Hozirda faqat iOS 15 va undan yuqori versiyalarda ishlaydigan qurilmalar to'ldirishi mumkin. Iltimos tizimingizni yangilang va qayta urinib ko'ring.";
|
||||
"XPIAPRechargeViewController11" = "Iltimos to'ldiriladigan Tangalar sonini tanlang";
|
||||
"XPMineRechargeViewController0" = "Xarida muvaffaqiyatsiz";
|
||||
"XPMineRechargeViewController1" = "Noma'lum xato yuz berdi, iltimos qayta urinib ko'ring";
|
||||
"XPMineRechargeViewController2" = "《Foydalanuvchi To'ldirish Shartnomasi";
|
||||
"XPMineRechargeViewController3" = "Men o'qidim va qabul qildim";
|
||||
"XPMinePayPwdViewController0" = "To'lov parolini o'rnatish";
|
||||
"XPMinePayPwdViewController1" = "Telefon raqamini olish muvaffaqiyatsiz";
|
||||
"XPMinePayPwdViewController2" = "Tasdiqlash kodi muvaffaqiyatli yuborildi";
|
||||
"XPMinePayPwdViewController3" = "To'lov paroli muvaffaqiyatli o'rnatildi";
|
||||
"XPMinePayPwdViewController4" = "To'lov paroli 6 raqamli bo'lishi kerak";
|
||||
"XPMinePayPwdViewController5" = "To'lov paroli raqamli bo'lishi kerak";
|
||||
"XPMinePayPwdViewController6" = "Kiritilgan parollar mos kelmadi";
|
||||
"XPMinePayPwdViewController7" = "Tasdiqlash kodini kiriting";
|
||||
"XPMinePayPwdViewController9" = "Tasdiqlash kodi sizning bog'langan telefon raqamingiz %@****%@ ga yuborildi";
|
||||
"XPMinePayPwdViewController10" = "To'lov parolini kiriting";
|
||||
"XPMinePayPwdViewController11" = "To'lov parolini tasdiqlang";
|
||||
"XPMineBlackListViewController0" = "Qora ro'yxat";
|
||||
"XPMineBlackListViewController1" = "O'chirish";
|
||||
"XPMineResetPayPwdViewController0" = "To'lov parolini qayta o'rnatish";
|
||||
"XPMineResetPayPwdViewController1" = "To'lov paroli muvaffaqiyatli qayta o'rnatildi";
|
||||
"XPMineResetPayPwdViewController2" = "Kiritilgan parollar mos kelmadi";
|
||||
"XPMineResetPayPwdViewController3" = "To'lov parolini kiriting";
|
||||
"XPMineResetPayPwdViewController4" = "To'lov parolini tasdiqlang";
|
||||
"XPMineSettingViewController0" = "Sozlamalar";
|
||||
"XPMineSettingViewController1" = "Iltimos avval telefon raqamingizni bog'lang";
|
||||
"XPMineSettingViewController2" = "Keshni tozalash";
|
||||
"XPMineSettingViewController3" = "Keshni tozalamoqchimisiz?";
|
||||
"XPMineSettingViewController4" = "Kesh tozalandi";
|
||||
"XPMineSettingViewController5" = "Hozirda eng so'nggi versiyaga yangilandi";
|
||||
"XPMineSettingViewController6" = "Hozirda eng so'nggi versiyaga yangilandi";
|
||||
"XPMineSettingViewController7" = "Joriy hisobdan chiqish";
|
||||
"XPMineSettingViewController8" = "Chiqish";
|
||||
"XPMineSettingViewController9" = "Kirish parolini o'rnatish";
|
||||
"XPMineSettingViewController10" = "Keyingi kirishingizni qulaylashtirish uchun, iltimos avval kirish parolini o'rnating";
|
||||
"XPMineModifPayPwdViewController0" = "To'lov parolini o'zgartirish";
|
||||
"XPMineModifPayPwdViewController1" = "To'lov paroli muvaffaqiyatli o'zgartirildi";
|
||||
"XPMineModifPayPwdViewController2" = "Kiritilgan parollar mos kelmadi";
|
||||
"XPMineModifPayPwdViewController3" = "Yangi to'lov paroli raqamli bo'lishi kerak";
|
||||
"XPMineModifPayPwdViewController4" = "Joriy to'lov parolini kiriting";
|
||||
"XPMineModifPayPwdViewController5" = "To'lov parolini kiriting";
|
||||
"XPMineModifPayPwdViewController6" = "To'lov parolini tasdiqlang";
|
||||
"XPMineModifPayPwdViewController8" = "Parolni unutdingizmi";
|
||||
"XPMineFeedbackViewController0" = "Fikr-mulohaza";
|
||||
"XPMineFeedbackViewController1" = "Sizning qimmatli fikringiz uchun tashakkur, keling birgalikda yaxshiroq yarataylik";
|
||||
"XPMineFeedbackViewController2" = "Muammo tavsifi";
|
||||
"XPMineFeedbackViewController3" = "Iltimos, duch kelgan muammo va vaziyatlaringizni batafsil tasvirlang. Qimmatli fikringiz uchun tashakkur.";
|
||||
"XPMineFeedbackViewController4" = "Iltimos aloqa ma'lumotlaringizni kiriting";
|
||||
"XPMineFeedbackViewController5" = "Fikr-mulohazani yuborish";
|
||||
|
||||
"XPMineAboutUsViewController0" = "Haqida";
|
||||
"XPMineNotificaViewController0" = "Bildirishnoma sozlamalari";
|
||||
|
Reference in New Issue
Block a user