Example #1
0
        private void ICreatePlayer()
        {
            pnCli2Auth_PlayerCreateRequest req = new pnCli2Auth_PlayerCreateRequest();
            req.Read(fStream);
            ENetError status = ENetError.kNetPending;

            // An empty Guid signifies we haven't logged in
            if (fAcctGuid == Guid.Empty)
                status = ENetError.kNetErrAuthenticationFailed;

            // Only CCR+ may create special avatars
            if (fPermissions < pnAcctPerms.CCR) {
                if (req.fShape.ToLower() != "male" &&
                    req.fShape.ToLower() != "female")
                    status = ENetError.kNetErrPlayerNameInvalid; // Close enough?
            }

            if (status == ENetError.kNetPending) {
                // Forward to the vault server
                // TODO: Reserved and Blacklisted player name list?
                pnCallback cb = new pnCallback(new pnVaultPlayerCreated(IOnPlayerCreated), req.fTransID);
                fVaultCli.CreatePlayer(fAcctGuid, req.fPlayerName, req.fShape, cb);
            } else {
                // I don't think so...
                pnAuth2Cli_PlayerCreateReply reply = new pnAuth2Cli_PlayerCreateReply();
                reply.fResult = status;
                reply.fTransID = req.fTransID;
                reply.Send(fStream);
            }
        }
Example #2
0
 private void IOnPlayerCreated(ENetError result, uint playerID, string playerName, string shape, object param)
 {
     pnAuth2Cli_PlayerCreateReply reply = new pnAuth2Cli_PlayerCreateReply();
     reply.fPlayerID = playerID;
     reply.fPlayerName = playerName;
     reply.fResult = result;
     reply.fShape = shape;
     reply.fTransID = (uint)param;
     fPlayerID = playerID; // Cyan is hacking...
     lock (fStream) reply.Send(fStream);
 }