/* * NuTP: * * <RegCards> = [S<header>, S[S<card>*]] * */ private static byte[] RegCards(Credential credential, int num) { byte[] userData = RW.FindDataUser(credential.email); if (userData.Length == 0) { //Account Not exist return(NuTP.RespDataWithCode(ErrCate.Account, ErrType.NotExist)); } else { //Account does exist User user = RW.Bytes2User(userData); int numAlready = RW.NumCardsOfUser(user); int numPending = Const.numCardsTotalReg - numAlready; if (numPending <= 0) { return(NuTP.RespDataWithCode(ErrCate.Card, ErrType.Duplicated)); } else { CarryBattleSC.Card[] cardsNew = GenerateRandomCards(user, (numPending < Const.numCardsPerReg) ? numPending : Const.numCardsPerReg); CarryBattleSC.Card[] cardsOrig = user.cards; user.cards = new CarryBattleSC.Card[cardsOrig.Length + cardsNew.Length]; for (int i = 0; i < cardsOrig.Length; i++) { user.cards[i] = cardsOrig[i]; } for (int j = 0; j < cardsNew.Length; j++) { user.cards[j + cardsOrig.Length] = cardsNew[j]; } //更新玩家数据 RW.SaveUser(user); byte[] body = RW.UserCards2Table(user); return(NuTP.RespDataSucWithBody(body)); } } }