0

I've created a small singleplayer game which I'm now trying to adapt to multiplayer. It's turned based so I'm using Appwarp. I have this code but I get 'Null pointer exception' for this line:

SC_AppWarpKit.CreateTurnBaseRoom("BattleShips", userName, 2, null, 60);

Note that I did not create game objects for AppWarpKit, searched for examples online but could not find anything similar. APIKEY and SECRETKEY are empty for privacy reasons.

private string apiKey = "";
private string secretKey = "";
private string email = "@gmail.com";
private string userName = "mrnobody";
private string roomId = "";
private List<string> rooms;
private string opponentName = "";

private bool isMyTurn = false;

void OnEnable()
{
        SC_Listener_App42.onCreatedUserApp42 += onCreatedUserApp42;
        SC_Listener_App42.OnExceptionFromApp42 += OnExceptionFromApp42;

        SC_Listener_AppWarp.onConnectToAppWarp += onConnectToAppWarp;
        SC_Listener_AppWarp.onDisconnectFromAppWarp += onDisconnectFromAppWarp;
        SC_Listener_AppWarp.OnMatchedRooms += OnGetMatchedRoomsDone;
        SC_Listener_AppWarp.OnSubscribeToRoom += onSubscribeToRoom;
        SC_Listener_AppWarp.OnUnSubscribeToRoom += onUnSubscribeToRoom;
        SC_Listener_AppWarp.OnJoinToRoom += OnJoinToRoom;
        SC_Listener_AppWarp.OnLeaveFromRoom += OnLeaveFromRoom;
        SC_Listener_AppWarp.OnCreateRoomDone += OnCreateRoomDone;
        SC_Listener_AppWarp.onGetLiveRoomInfo += OnGetLiveRoomInfo;
        SC_Listener_AppWarp.OnSendPrivateUpdate += OnSendPrivateUpdate;
        SC_Listener_AppWarp.OnStartGameDone += OnStartGameDone;
        SC_Listener_AppWarp.OnStopGameDone += OnStopGameDone;
        SC_Listener_AppWarp.OnRoomCreated += OnRoomCreated;
        SC_Listener_AppWarp.OnUserJoinRoom += OnUserJoinRoom;
        SC_Listener_AppWarp.OnUserLeftRoom += OnUserLeftRoom;
        SC_Listener_AppWarp.OnPrivateUpdateReceived += OnPrivateUpdateReceived;
        SC_Listener_AppWarp.OnPrivateChatReceived += OnPrivateChatReceived;
        SC_Listener_AppWarp.OnGameStarted += OnGameStarted;
        SC_Listener_AppWarp.OnGameStopped += OnGameStopped;
        SC_Listener_AppWarp.OnSendMove += OnSendMove;
        SC_Listener_AppWarp.OnMoveCompleted += OnMoveCompleted;
}

void OnDisable()
{
    SC_Listener_App42.onCreatedUserApp42 -= onCreatedUserApp42;
    SC_Listener_App42.OnExceptionFromApp42 -= OnExceptionFromApp42;

    SC_Listener_App42.OnExceptionFromApp42 -= OnExceptionFromApp42;
    SC_Listener_AppWarp.onConnectToAppWarp -= onConnectToAppWarp;
    SC_Listener_AppWarp.onDisconnectFromAppWarp -= onDisconnectFromAppWarp;
    SC_Listener_AppWarp.OnMatchedRooms -= OnGetMatchedRoomsDone;
    SC_Listener_AppWarp.OnSubscribeToRoom -= onSubscribeToRoom;
    SC_Listener_AppWarp.OnUnSubscribeToRoom -= onUnSubscribeToRoom;
    SC_Listener_AppWarp.OnJoinToRoom -= OnJoinToRoom;
    SC_Listener_AppWarp.OnLeaveFromRoom -= OnLeaveFromRoom;
    SC_Listener_AppWarp.OnCreateRoomDone -= OnCreateRoomDone;
    SC_Listener_AppWarp.onGetLiveRoomInfo -= OnGetLiveRoomInfo;
    SC_Listener_AppWarp.OnSendPrivateUpdate -= OnSendPrivateUpdate;
    SC_Listener_AppWarp.OnStartGameDone -= OnStartGameDone;
    SC_Listener_AppWarp.OnStopGameDone -= OnStopGameDone;
    SC_Listener_AppWarp.OnRoomCreated -= OnRoomCreated;
    SC_Listener_AppWarp.OnUserJoinRoom -= OnUserJoinRoom;
    SC_Listener_AppWarp.OnUserLeftRoom -= OnUserLeftRoom;
    SC_Listener_AppWarp.OnPrivateUpdateReceived -= OnPrivateUpdateReceived;
    SC_Listener_AppWarp.OnPrivateChatReceived -= OnPrivateChatReceived;
    SC_Listener_AppWarp.OnGameStarted -= OnGameStarted;
    SC_Listener_AppWarp.OnGameStopped -= OnGameStopped;
    SC_Listener_AppWarp.OnSendMove -= OnSendMove;
    SC_Listener_AppWarp.OnMoveCompleted -= OnMoveCompleted;

}

void Start () 
{
    SC_App42Kit.App42Init(apiKey,secretKey);
    SC_AppWarpKit.WarpInit(apiKey,secretKey);
    SC_AppWarpKit.CreateTurnBaseRoom("BattleShips", userName, 2, null, 60);
}

In a separate DLL folder I have: App42_Unity3D_SDK_2.9.1.dll AppWarpUnity.dll

Please assist.

David Faizulaev
  • 4,651
  • 21
  • 74
  • 124

1 Answers1

0

Figured it out. Was indeed using an incorrect DLL and needed to change the function call:

SC_App42Kit.App42Init(apiKey,secretKey);
    SC_AppWarpKit.WarpInit(apiKey,secretKey);
    SC_AppWarpKit.connectToAppWarp(userName);

The call to create room and so on was moved to the 'connectToAppWarp' callback.

David Faizulaev
  • 4,651
  • 21
  • 74
  • 124