Cấu hình từ xa

Bạn có thể truy xuất cấu hình cờ trạng thái từ xa (Cấu hình từ xa) thông qua phương thức getFlags() từ Yandex Games  SDK. Bạn nên yêu cầu thông tin về các cờ trạng thái một lần khi khởi động trò chơi.

Phương thức getFlags() trả về giá trị của các cờ trạng thái đã lưu. Sau đây là các ví dụ về cách sử dụng phương thức:

const ysdk = await YaGames.init(); // Khởi tạo SDK.
const flags = await ysdk.getFlags(); // Phương thức này trả về một đối tượng chứa các cờ trạng thái.

// Bạn có thể thêm điều kiện này vào logic trò chơi:
if (flags.difficult === 'hard') {
    // Tăng độ khó của trò chơi.
}
YaGames.init()
    .then(ysdk => ysdk.getFlags())
    .then(flags => {
        // "flags" chứa một đối tượng có các cờ trạng thái.

        // Bạn có thể thêm điều kiện này vào logic trò chơi:
        if (flags.difficult === 'hard') {
            // Tăng độ khó của trò chơi.
        }
    });

Cấu hình cục bộ

Bạn nên luôn nhúng cấu hình cờ trạng thái cục bộ vào mã trò chơi để đảm bảo rằng trò chơi có thể truy cập cấu hình ngay cả khi có sự cố mạng hoặc các vấn đề khác (ví dụ: kết nối internet kém trong tàu điện ngầm). Cách tiếp cận này sẽ cải thiện hoạt động trò chơi của bạn.

Với mục đích này, phương thức getFlags() hỗ trợ các tham số bổ sung. Truyền cấu hình cục bộ (một đối tượng phẳng chứa các giá trị chuỗi) trong trường defaultFlags.

Đối tượng kết quả là sự kết hợp của cấu hình từ xa và cục bộ của bạn. Cấu hình từ xa có mức độ ưu tiên cao hơn.

YaGames.init()
    .then(ysdk => ysdk.getFlags({ defaultFlags: { difficult: 'easy' } }))
    .then(flags => {
        // "flags" chứa đối tượng "{ difficult: 'easy' }"
    });

Tham số người dùng

Nếu ứng dụng trò chơi của bạn lưu trữ thông tin trạng thái người chơi, chẳng hạn như liệu người chơi có sử dụng tiền trong trò chơi ít nhất một lần hay không, họ đã vượt qua bao nhiêu cấp độ hoặc liệu người dùng có được coi là người chơi cốt lõi hay không, bạn có thể thêm các chi tiết này vào cấu hình từ xa. Để biết thêm thông tin về cách thiết lập cờ trạng thái có điều kiện, hãy xem Tạo cấu hình cờ trạng thái.

Truyền các tham số người dùng dưới dạng một mảng trong trường clientFeatures của phương thức getFlags().

Ví dụ có "await"

const ysdk = await YaGames.init(); // Khởi tạo SDK.
const player = await ysdk.getPlayer(); // Truy xuất dữ liệu người chơi.
const payingStatus = player.getPayingStatus(); // Lấy thông tin trạng thái hoạt động thanh toán của người dùng trên nền tảng.

// Yêu cầu các cờ trạng thái có tham số người dùng chứa trạng thái hoạt động thanh toán của người dùng.
const flags = await ysdk.getFlags({
    clientFeatures: [
        {name: 'payingStatus', value: payingStatus}
    ]
});

Ví dụ không có "await"

// Gửi tham số người dùng "levels=5".
YaGames.init()
    .then(ysdk => ysdk.getFlags({
        defaultFlags: {},
        clientFeatures: [
            { name: 'levels', value: '5' }
        ]})
    )
    .then(flags => {
        // Điều kiện tham số người dùng không được đáp ứng.
        // flags.showFullscreenAdOnStart === 'no'
    });

// Gửi tham số người dùng "levels = 10".
YaGames.init()
    .then(ysdk => ysdk.getFlags({
        defaultFlags: {},
        clientFeatures: [
            { name: 'levels', value: '10' }
        ]})
    )
    .then(flags => {
        // Điều kiện tham số người dùng được đáp ứng, hiển thị quảng cáo khi khởi động.
        // flags.showFullscreenAdOnStart === 'yes'
    });

// Ví dụ với hai tham số người dùng:
YaGames.init()
    .then(ysdk => ysdk.getFlags({
        defaultFlags: {},
        clientFeatures: [
            { name: 'levels', value: '10' },
            { name: 'inAppPurchaseUsed', value: 'yes' }
        ]})
    )
    .then(flags => {

    });

Chữ ký và giao diện của phương thức getFlags()

interface IFlags {
    [key: string]: string;
}

interface ClientFeature {
    name: string;
    value: string;
}

interface IGetFlagsParams {
    defaultFlags?: IFlags;
    clientFeatures?: ClientFeature[];
}

function getFlags(getFlagsParams: IGetFlagsParams = {}): IFlags {}

Ghi chú

Nhân viên hỗ trợ sẽ giúp bạn đăng bài trò chơi đã hoàn thiện lên nền tảng trò chơi của Yandex. Để đặt các câu hỏi về việc phát triển và kiểm thử, các nhà phát triển khác sẽ trả lời chuyên sâu trong Kênh Discord.

Nếu bạn đang gặp phải vấn đề hoặc có câu hỏi liên quan đến việc sử dụng Yandex Games SDK, vui lòng liên hệ với bộ phận hỗ trợ:

Viết trong mục trò chuyện