Реализация двух расходных материалов с помощью MKStoreKit

Как реализовать два расходных материала с помощью MKStoreKit? Если у меня есть два расходных материала, например "горсть монет" (10 монет) и "мешок с монетами" (100 монет). У меня есть два вопроса:

  1. Как должны выглядеть идентификаторы продуктов?

  2. Как получить общее количество купленных монет, в том числе из горсти(ей) и из мешка(ов)?

    Amount = 10*handfuls_purchased + 100*bags_purchased;
    

Я прочитал учебник в официальном блоге MKStoreKit, но до сих пор не могу понять это.

P.S. Я использую MKStoreKit 3.1 и не могу обновиться до более новой версии из-за ARC (мой проект его не поддерживает)


person Oleg Trakhman    schedule 11.07.2012    source источник


Ответы (1)


Ключ расходных материалов вашего plist должен выглядеть так.

<key>Consumables</key>
    <dict>
        <key>com.yourcompany.yourapp.handfulofcoins</key>
        <dict>
            <key>Count</key>
            <integer>10</integer>
            <key>Name</key>
            <string>CoinsInMyApp</string>
        </dict>
<key>com.yourcompany.yourapp.bagofcoins</key>
        <dict>
            <key>Count</key>
            <integer>100</integer>
            <key>Name</key>
            <string>CoinsInMyApp</string>
        </dict>
    </dict>

Я сопоставляю строку «CoinsInMyApp», чтобы рассчитать количество купленных монет, независимо от того, из какого расходного материала они получены. В приведенном выше примере, если пользователь покупает 1 пакет монет и 2 пригоршни монет, MKStoreManager сохраняет 120 для ключа CoinsInMyApp.

методы,

- (BOOL) canConsumeProduct:(NSString*) productIdentifier
- (BOOL) canConsumeProduct:(NSString*) productIdentifier quantity:(int) quantity

скажет вам, достаточно ли у вас продуктов.

Когда игрок использует монеты, вы должны сообщить об этом MKStoreKit, вызвав

- (BOOL) consumeProduct:(NSString*) productIdentifier quantity:(int) quantity

Узнать количество монет можно по телефону

[[MKStoreManager numberForKey:@"CoinsInMyApp"] intValue];

PS: вы можете использовать последнюю версию MKStoreKit в проекте, отличном от ARC, скомпилировав его с флагом -fobjc-arc.

Я писал об этом здесь http://blog.mugunthkumar.com/articles/migrating-your-code-to-objective-c-arc/

person Mugunth    schedule 15.07.2012
comment
Большое спасибо! Еще один вопрос, если позволите: я даю пользователю 3 монеты при первом запуске игры: if ([MKStoreManager objectForKey:GoldenCoinsID] == nil) [MKStoreManager setObject:[NSNumber numberWithInt:3] forKey:GoldenCoinsID]; - person Oleg Trakhman; 16.07.2012
comment
В последней версии он не работает, потому что больше нет общедоступного метода [MKStoreManager objectForKey:] - person Nastya Gorban; 29.10.2013
comment
Я знаю, что это старый пост, но MKStoreKit восстанавливает расходные материалы? - person LilMoke; 08.05.2014