スタミナ値を増減する

ここではサーバサイドSDKの解説をしています。
GS2 SDK for Unity のサンプルは GS2 SDK for Unity のページをご参照ください。

事前にGS2マネージメントコンソールか、SDKからStaminaPoolを作成しておきます。
(このサンプルは stamina-0001 という名前の 
StaminaPool が作成されているものとしています)

PHP
  1. // アクセス先リージョンとGSIを設定
  2. $region = 'ap-northeast-1';
  3. $credentials = new Gs2Credentials(CLIENT_ID, CLIENT_SECRET);
  4. // アクセストークンを取得
  5. $serviceId = 'service-0001';
  6. $userId = 'user-0001';
  7. $authclient = new Gs2AuthClient($region, $credentials);
  8. $request = [
  9. 'serviceId' => $serviceId,
  10. 'userId' => $userId
  11. ];
  12. $result = $authclient->login($request);
  13. $accessToken = $result['token'];
  14. // スタミナ値を消費する
  15. $staminaPoolName = 'stamina-0001';
  16. $client = new Gs2StaminaClient($region, $credentials);
  17. $request = [
  18.         'staminaPoolName' => $staminaPoolName,
  19.         'variation' => -5,
  20.         'maxValue' => 50,
  21.         'overflow' => false,
  22.         'accessToken' => $accessToken
  23. ];
  24. $result = $client->changeStamina($request);
  25. $stamina = $result['item'];
  26. // $result['nextIncreaseTimestamp'] に次回スタミナ値が回復するタイムスタンプ(unixepoch)
  27. // $stamina['value'] に現在のスタミナ値
  28. // $stamina['overflow'] に最大値を超えて回復した場合はあふれたスタミナ値 が返ります

Ruby
  1. # リージョンを設定
  2. region = 'ap-northeast-1'
  3. # アクセストークンを取得
  4. service_id = 'service-0001'
  5. user_id = 'user-0001'
  6. authclient = Gs2::Auth::Client.new(region, CLIENT_ID, CLIENT_SECRET)
  7. request = {
  8. 'serviceId' => service_id,
  9. 'userId' => user_id
  10. }
  11. result = authclient.login(request)
  12. access_token = result['token']
  13. # スタミナ値を消費する
  14. stamina_pool_name = 'stamina-0001'
  15. client = Gs2::Stamina::Client.new(region, CLIENT_ID, CLIENT_SECRET)
  16. request = {
  17. 'staminaPoolName' => STAMINA_POOL_NAME,
  18. 'variation' => -5,
  19. 'maxValue' => STAMINA_MAX,
  20. 'overflow' => false,
  21. 'accessToken' => @@accessToken
  22. }
  23. result = client.change_stamina(request);
  24. stamina = result['item'];
  25. # result['nextIncreaseTimestamp'] に次回スタミナ値が回復するタイムスタンプ(unixepoch)
  26. # stamina['value'] に現在のスタミナ値
  27. # stamina['overflow'] に最大値を超えて回復した場合はあふれたスタミナ値 が返ります

Java
  1. // アクセス先リージョンとGSIを設定
  2. String region = "ap-northeast-1";
  3. IGs2Credential credentials = new BasicGs2Credential(CLIENT_ID, CLIENT_SECRET);
  4. // アクセストークンを取得
  5. String serviceId = "service-0001";
  6. String userId = "user-0001";
  7. LoginRequest request = new LoginRequest()
  8. .withServiceId(serviceId)
  9. .withUserId(userId);
  10. Gs2AuthClient authclient = new Gs2AuthClient(credentials)
  11. .withRegion(region);
  12. LoginResult result = authclient.login(request);
  13. String accessToken = result.getToken();
  14. // スタミナ値を消費する
  15. String staminaPoolName = 'stamina-0001';
  16. Gs2StaminaClient client = new Gs2StaminaClient(credentials)
  17. .withRegion(region);
  18. ChangeStaminaResult result = client.changeStamina(new ChangeStaminaRequest()
  19.         .withStaminaPoolName(STAMINA_POOL_NAME)
  20.         .withVariation(-5)
  21.         .withMaxValue(STAMINA_MAX)
  22.         .withOverflow(false)
  23.         .withAccessToken(accessToken));
  24. Stamina stamina = result.getItem();
  25. // result.getNnextIncreaseTimestamp() に次回スタミナ値が回復するタイムスタンプ(unixepoch)
  26. // stamina.getValue() に現在のスタミナ値
  27. // stamina.getOverflow() に最大値を超えて回復した場合はあふれたスタミナ値 が返ります