Jump to content
Unity Insider Forum

Kongregate API purchaseItem einbauen


Dero

Recommended Posts

Hallo Community.

Mein Spiel ist soweit fertig (kein topseller aber fürs erste reicht mir das).

Ich arbeite aktuell mit der Unity Version 5.5, habe mein Spiel aber mit Unity 5.0 angefangen, bzw die falsche Unity installation genutzt.

Macht aber erstmal nichts, da alles in der neuen Version auch funktioniert.

 

Da leider der WebPlayer fast komplett futsch ist, habe ich bereits meinen Code für WebGL umgebaut.

Nun ist auch alles soweit fertig und wartet nur noch darauf Online zu gehen. Läuft auch bei Kongregate.

 

Problem:

Jetzt wollte ich nur um den ein oder anderen Euro mehr daran zu verdienen die API von Kongregate nutzen.

Der Nutzer soll ein Item kaufen können um besser vorran zu kommen.

Dazu benötige ich die KongregateAPI.

Diese lade ich über:

http://docs.kongregate.com/docs/unity-api

und erstelle mir ein neues Script: Kongregate.js und kopiere mir dort folgendes rein:

 

#pragma strict
public class KongregateAPIBehaviour extends MonoBehaviour {
 private static var instance:KongregateApiBehaviour;
 function Start () {
   if(instance == null) {
  instance = this;
   } else {
  Destroy(gameObject);
  return;
   }
   DontDestroyOnLoad(gameObject);
   gameObject.name = "KongregateAPI";
   var script =
   "if(typeof(kongregateUnitySupport) != 'undefined') { " +
   "  kongregateUnitySupport.initAPI('KongregateAPI', 'OnKongregateAPILoaded');" +
   "};";
   Application.ExternalEval(script);
 }
 function OnKongregateAPILoaded(userInfoString:String) {
   OnKongregateUserInfo(userInfoString);
   var script =
   "kongregate.services.addEventListener('login', function() {" +
   "  var unityObject = kongregateUnitySupport.getUnityObject();" +
   "  var services = kongregate.services;" +
   "  var params=[services.getUserId(), services.getUsername()," +
   "			  services.getGameAuthToken()].join('|');" +
   "  unityObject.SendMessage('KongregateAPI', 'OnKongregateUserInfo', params);" +
   "});";
   Application.ExternalEval(script);
 }
 function OnKongregateUserInfo(userInfoString:String) {
   var info = userInfoString.Split("|"[0]);
   var userId = parseInt(info[0]);
   var username = info[1];
   var gameAuthToken = info[2];
   Debug.Log("Kongregate User Info: " + username + ", userId: " + userId);
 }
}

 

Jetzt gebe ich mir in einer anderen Datei erstmal den Usernamen aus.

var kong : Kongregate;

kong.username;

Läuft (aber nur wenn ich das Game auf Kongregate hochlade)

Im Editor wird mir übergeben:

 

External Call: if(typeof(kongregateUnitySupport) != 'undefined') { kongregateUnitySupport.initAPI('KongregateAPI', 'OnKongregateAPILoaded');};

UnityEngine.Application:ExternalEval(String)

KongregateAPIBehaviour:Start() (at Assets/KongregateAPIBehaviour.js:33)

 

Meiner Meinung nach...Jup, API läd und funktioniert da mir der Username ausgegeben wird.

 

Nun zu dem was ich einfach nicht verstehe/hinbekomme:

http://docs.kongregate.com/v1.0/docs/client-api-mtx-purchaseitems

 

kongregate.mtx.purchaseItems(["sword"], onPurchaseResult);
function onPurchaseResult(result) {
 console.log("Purchase success:" + result.success);
}

 

1. Wo muss ich das jetzt überhaupt einbauen? Würde das gerne mit einem Button aufrufen. Dazu habe ich mir das hier gebastelt:

 

var success : boolean;
var guckste : String;
function onPurchaseResult(result) {
   Debug.Log("Purchase success:" + result.succsess);
   guckste = 'Läuft';
}

if(GUI.Button(Rect(100,120,100,100),'Bla'+guckste))
{
 Application.ExternalEval("kongregate.mtx.purchaseItems(['sword'], onPurchaseResult)");
}

 

2. Wenn ich Debug.Log("Purchase success:" + result.succsess); schreibe kommt die Fehlermeldung : succsess is not a member of Object.

 

3. Wenn ich den Button anklicke kommt zwar:

External Call: kongregate.mtx.purchaseItems(['sword'], onPurchaseResult);

UnityEngine.Application:ExternalEval(String)

 

aber bei Kongregate.com passiert einfach nix.

 

Schonmal jemand damit zutun gehabt?

 

Würde mich freuen wenn sich da jemand mal die Zeit nimmt um sich das mal anzuschauen.

 

MfG

Dero

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...