 CM_IDPASSWORD         = 2001;//½ʺ


  DefMsg := MakeDefaultMsg(CM_IDPASSWORD, 0, 0, 0, 0);
  SendSocket(EncodeMessage(DefMsg) + EncodeString(sAccount + '/' + sPassWord));
ʺź /  ֿ


 sPassword := GetValidStr3(DecodeString(sData), sLoginID, ['/']);



  SM_NEEDUPDATE_ACCOUNT = 531;//ɶ//ǿͻ˽գ
      DefMsg := MakeDefaultMsg(SM_NEEDUPDATE_ACCOUNT, 0, 0, 0, 0);
      SendGateMsg(UserInfo.Socket,
        UserInfo.sSockIndex,
        EncodeMessage(DefMsg) + EncodeBuffer(@UserEntry, SizeOf(TUserEntry)));

SM_PASSOK_SELECTSERVER = 529;//ṹ   Ҳһ𷢸ͻˣ
      if not UserInfo.boPayCost then begin
        DefMsg := MakeDefaultMsg(SM_PASSOK_SELECTSERVER, 0, 0, 0, Config.ServerNameList.Count);
      end else begin
        DefMsg := MakeDefaultMsg(SM_PASSOK_SELECTSERVER,
          nIDCost,
          LoWord(nIPCost),
          HiWord(nIPCost),
          Config.ServerNameList.Count);
      end;

SM_PASSOK_SELECTSERVER: ClientGetPasswordOK(DefMsg, sBody);
DefMsg.Series ŷ 
  for I := 0 to nCount - 1 do begin
    sData := GetValidStr3(sData, sServerName, ['/']);
    sData := GetValidStr3(sData, sServerStatus, ['/']);
    g_ServerList.AddObject(sServerName, TObject(Str_ToInt(sServerStatus, 0)));
  end;
ѭ ʾ   Լض˿


SM_PASSWD_FAIL = 503;//ʧˣ
      DefMsg := MakeDefaultMsg(SM_PASSWD_FAIL, nCode, 0, 0, 0);
      SendGateMsg(UserInfo.Socket, UserInfo.sSockIndex, EncodeMessage(DefMsg))

SM_PASSWD_FAIL: ClientLoginFail(DefMsg.Recog);
    -1: 󣡣
    -2: 󳬹3ΣʺűʱԺٵ¼
    -3: ʺѾ¼쳣Ժٵ¼
    -4: ʺŷʧܣ\ʹʺŵ¼\븶עᡣ
    -5: ʺű
    else ʺŲڻδ֪󣡣