개요
MSDK 그룹 기능 호출을 통해, 게임 내 방파의 리더 플레이어가 방파를 채팅 그룹과 결합할 수 있습니다. 결합이 해제된 채팅 그룹은 일반 플레이어가 방파의 채팅 그룹에 참가할 수 있으므로, 손쉽게 게임 플레이어 그룹의 상호 작용 환경을 개선할 수 있으며, 플레이어 활약도 및 밀착도 모두를 높일 수 있습니다.
현재 채팅 그룹은 QQ 그룹 및 위챗 그룹이 지원되며, 각 방파 당 최대 1개의 QQ 그룹과 1개의 위챗 그룹을 결합할 수 있습니다.
QQ그룹 결합:
QQ그룹 참가:
위챗 그룹 결합:
위챗 그룹 참가:
액세스 내비게이션
1 사전 요구 사항
1) 이미 MSDK 액세스 설정 모듈 설명에 따라 액세스 설정
2) 이미 MSDK 액세스 로그인 모듈 설명에 따라 액세스 로그인
모바일QQ 그룹 기능 새 버전 V2(3.2.5i 이상 버전)
1 개요 설명
모바일QQ 새 버전은, 이전 버전의 복잡한 그룹 결합 절차를 간소화했습니다.
2 콜백
1) 기능 설명
그룹 정보 호출 결과 확인은 이 콜백 비동기를 통해 게임에 통지할 수 있으며, 모바일QQ와 위챗 그룹 기능은 함께 이 콜백을 이용합니다.
2) 인터페이스 선언
void WGSetGroupObserver(WGGroupObserver Observer)
3) 파라미터 명칭
파라미터 명칭 | 유형 | 설명 |
---|---|---|
Observer | WGGroupObserver 카테고리 | 그룹 기능 정보 유형의 구체적인 구성원은 점프해 확인하십시오. |
4) 반환값
없음
5) 예시 코드
void MyObserver::OnCreateGroupV2Notify(GroupRet& groupRet) {
// v2의 모바일QQ 그룹 생성 콜백, v2의 그룹 인터페이스 콜백 정보는 모두 mQQGroupInfoV2 안에 있음
//콜백 생성 처리 예시:
/*if(groupRet.flag == CallbackFlag.eFlag_Succ){
Vector<QQGroup> qqGroups = groupRet.mQQGroupInfoV2.qqGroups;
if(qqGroups != null && qqGroups.size() > 0){
QQGroup qqGroup = qqGroups.get(0);
String groupId = qqGroup.groupId; // 그룹 id
String groupName = qqGroup.groupName; // 그룹 이름
}
}else{
int errorCode = groupRet.errorCode;
// errorCode에 따라 처리 실시
}*/
}
void MyObserver::OnJoinGroupV2Notify(GroupRet groupRet) {
// v2의 모바일QQ 그룹 가입 콜백, v2의 그룹 인터페이스 콜백 정보는 모두 mQQGroupInfoV2 안에 있음
//그룹 가입 콜백 처리 예시:
/*if(groupRet.flag == CallbackFlag.eFlag_Succ){
// 그룹 가입 성공
}else{
int errorCode = groupRet.errorCode;
// errorCode에 따라 처리 실시
}*/
}
void MyObserver::OnQueryGroupInfoV2Notify(GroupRet groupRet) {
// v2의 모바일QQ 그룹과 관련된 콜백 검색, v2의 그룹 인터페이스 콜백 정보는 모두 mQQGroupInfoV2 안에 있음
//모바일QQ 그룹과 관련된 콜백 처리 검색 예시:
/*if(groupRet.flag == CallbackFlag.eFlag_Succ){
//사용자와 그룹 사이의 관계, 1: 그룹 주인, 2: 관리자, 3: 일반 구성원, 4: 비 구성원, -1 검색 오류
int relation = groupRet.mQQGroupInfoV2.relation;
}else{
int errorCode = groupRet.errorCode;
// errorCode에 따라 처리 실시
}*/
}
void MyObserver::OnUnbindGroupV2Notify(GroupRet groupRet) {
// v2의 모바일QQ 그룹 결합 해제 콜백, v2의 그룹 인터페이스 콜백 정보는 모두 mQQGroupInfoV2 안에 있음
//모바일QQ 그룹 결합 해제 콜백 처리 예시:
/*if(groupRet.flag == CallbackFlag.eFlag_Succ){
Vector<QQGroup> qqGroups = groupRet.mQQGroupInfoV2.qqGroups;
if(qqGroups != null && qqGroups.size() > 0){
QQGroup qqGroup = qqGroups.get(0);
String groupId = qqGroup.groupId; // 그룹 결합 해제 id(결합 해제는 그룹 id만 반환)
}
}else{
int errorCode = groupRet.errorCode;
// errorCode에 따라 처리 실시
}*/
}
void MyObserver::OnGetGroupCodeV2Notify(GroupRet groupRet) {
// v2 길드 결합 그룹 번호 획득 콜백, v2의 그룹 인터페이스 콜백 정보는 모두 mQQGroupInfoV2 안에 있음
//길드 결합 그룹 번호 획득 콜백 처리 예시:
/*if(groupRet.flag == CallbackFlag.eFlag_Succ){
Vector<QQGroup> qqGroups = groupRet.mQQGroupInfoV2.qqGroups;
if(qqGroups != null && qqGroups.size() > 0){
QQGroup qqGroup = qqGroups.get(0);
String groupId = qqGroup.groupId; // 그룹 id
String groupName = qqGroup.groupName; // 그룹 이름
}
}else{
int errorCode = groupRet.errorCode;
// errorCode에 따라 처리 실시
}*/
}
void MyObserver::OnQueryBindGuildV2Notify(GroupRet groupRet) {
// v2의 결합된 길드 검색 콜백, v2의 그룹 인터페이스 콜백 정보는 모두 mQQGroupInfoV2 안에 있음
//결합된 길드 검색 콜백 처리 예시:
/*if(groupRet.flag == CallbackFlag.eFlag_Succ){
String guildId = groupRet.mQQGroupInfoV2.guildId;
String guildName = groupRet.mQQGroupInfoV2.guildName;
}else{
int errorCode = groupRet.errorCode;
// errorCode에 따라 처리 실시
}*/
}
void MyObserver::OnBindExistGroupV2Notify(GroupRet groupRet) {
// v2의 기존 모바일QQ 그룹 결합 콜백, v2의 그룹 인터페이스 콜백 정보는 모두 mQQGroupInfoV2 안에 있음
//기존 모바일QQ 그룹 결합 콜백 처리 검색 예시:
/*if(groupRet.flag == CallbackFlag.eFlag_Succ){
Vector<QQGroup> qqGroups = groupRet.mQQGroupInfoV2.qqGroups;
if(qqGroups != null && qqGroups.size() > 0){
QQGroup qqGroup = qqGroups.get(0);
String groupId = qqGroup.groupId; // 그룹 id
String groupName = qqGroup.groupName; // 그룹 이름
}
}else{
int errorCode = groupRet.errorCode;
// errorCode에 따라 처리 실시
}*/
}
void MyObserver::OnGetGroupListV2Notify(GroupRet groupRet) {
// v2의 생성된 모바일QQ 그룹 목록 획득 콜백, v2의 그룹 인터페이스 콜백 정보는 모두 mQQGroupInfoV2 안에 있음
//생성된 모바일QQ 그룹 목록 획득 콜백 처리 예시:
/*if(groupRet.flag == CallbackFlag.eFlag_Succ){
Vector<QQGroup> qqGroups = groupRet.mQQGroupInfoV2.qqGroups;
if(qqGroups != null && qqGroups.size() > 0){
QQGroup qqGroup : qqGroups){
String groupId = qqGroup.groupId; // 그룹 id
String groupName = qqGroup.groupName; // 그룹 이름
}
}
}else{
int errorCode = groupRet.errorCode;
// errorCode에 따라 처리 실시
}*/
}
void MyObserver::OnRemindGuildLeaderV2Notify(GroupRet groupRet) {
// v2의 길드 회장 그룹 결합 알림 콜백, v2의 그룹 인터페이스 콜백 정보는 모두 mQQGroupInfoV2 안에 있음
//길드 회장 그룹 결합 알림 콜백 처리 예시:
/*if(groupRet.flag == CallbackFlag.eFlag_Succ){
// 알림 성공
}else{
int errorCode = groupRet.errorCode;
// errorCode에 따라 처리 실시
}*/
}
6) 특수 설명
msdk3.2 이후의 모든 v2 버전의 그룹 인터페이스는 새로운 v2 그룹 콜백을 사용합니다.
7) 명칭 해석
1 QQ 그룹 생성 인터페이스 호출(v2)
1) 기능 설명
QQ그룹을 생성하며, 그 결과는 WGGroupObserver의 OnCreateGroupV2Notify 를 통해 게임에 콜백할 수 있습니다.
2) 인터페이스 선언
void WGCreateQQGroupV2(GameGuild& gameGuild);
3) 파라미터 설명
GameGuild: 설정 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
guildId | String | (필수 입력)길드 id;문자열(스트링)은 숫자를 적용해야 함. 예를 들면 “123456”. |
guildName | String | (필수 입력)길드 명칭 |
zoneId | String | (필수 입력) 서버그룹 id |
roleId | String | (필수 입력) 캐릭터 id |
partition | String | (선택 입력) 구역 서비스 id (소형 구역)은, 입력하지 않아도 되며, 현재 이용되지 않습니다. |
userZoneId | String | (선택 입력) 사용자의 구역 서비스 ID는, 회장이 해당 구역에 속하지 않은 사람에게 양도할 수 있으므로, 길드 구역 서비스가 반드시 사용자 구역 서비스인 것은 아닙니다. |
userLabel | String | (선택 입력) 그룹 명함을 수정하고 수정하지 않은 그룹 명함을 입력하지 않으며, 규칙은 "[YYYY] zzzz”이며 YYYY는 사용자의 게임 내 닉네임입니다. |
nickName | String | (선택 입력) 사용자 닉네임 |
type | String | (선택 입력) "0” 길드(기본값), "1” 팀, "2” 이벤트 |
areaId | String | (선택 입력) 게임 대형 구역 ID, "1” qq(기본값), "2” 위챗(선택 입력) |
4) 반환값
없으며, 결과는 WGGroupObserver의 OnCreateGroupV2Notify 를 통해 게임에 콜백합니다.
5) 예시 코드:
GameGuild gameGuild;
gameGuild.guildName = [[param objectForKey:@"msdk"] UTF8String];
gameGuild.guildId = [[param objectForKey:@"100703379"] UTF8String];
gameGuild.roleId = [[param objectForKey:@"징징"] UTF8String];
gameGuild.partition = [[param objectForKey:@"10"] UTF8String];
gameGuild.zoneId = [[param objectForKey:@"100"] UTF8String];
WGPlatform::GetInstance()->WGCreateQQGroupV2(gameGuild);
6) 특수 설명
파라미터 설명에 따라 적절한 비율로 파라미터를 입력하고 선택 입력 파라미터는 필요에 따라 입력합니다.
7) 명칭 해석
없음
2 QQ그룹 관계 검색 인터페이스(v2) 호출
1) 기능 설명
QQ 그룹과의 관계를 검색하며, 결과는 WGGroupObserver의 OnQueryGroupInfoV2Notify 를 통해 게임에 콜백할 수 있습니다.
2) 인터페이스 선언
void WGQueryQQGroupInfoV2(String groupId);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
groupId | String | 그룹 생성시 리턴하는 그룹id (그룹id는 그룹계정임.) |
4) 반환값
없으며, 결과는 WGGroupObserver의 OnQueryGroupInfoV2Notify 를 통해 게임에 콜백합니다.
5) 예시 코드:
WGPlatform.WGQueryQQGroupInfoV2("11002222");
6) 특수 설명
없음
7) 명칭 해석
없음
3 QQ그룹 참가 인터페이스(v2) 호출
1) 기능 설명
QQ그룹에 참가하며, 결과는 WGGroupObserver의 OnJoinGroupV2Notify 를 통해 게임에 콜백할 수 있습니다.
2) 인터페이스 선언
함수 호출 시에 파라미터 전송 순서에 주의해 주십시오.
void WGJoinQQGroupV2(GameGuild& gameGuild,String groupId);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
gameGuild | GameGuild | (필수 입력) 길드 정보 |
groupId | String | (필수 입력)길드 id;문자열(스트링)은 숫자를 적용. 예를 들면 "123456" |
GameGuild: 설정 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
guildId | String | (필수 입력)길드 id;문자열(스트링)은 숫자를 적용. 예를 들면 "123456" |
zoneId | String | (필수 입력) 대형 구역 id |
roleId | String | (필수 입력) 캐릭터 id |
partition | String | (선택 입력) 구역 서비스 id (소형 구역)은, 입력하지 않아도 되며, 현재 이용되지 않습니다. |
userZoneId | String | (선택 입력) 사용자의 구역 서비스 ID는, 회장이 해당 구역에 속하지 않은 사람에게 양도할 수 있으므로, 길드 구역 서비스가 반드시 사용자 구역 서비스인 것은 아닙니다. |
userLabel | String | (선택 입력) 그룹 명함을 수정하고 수정하지 않은 그룹 명함을 입력하지 않으며, 규칙은 "[YYYY] zzzz”이며 YYYY는 사용자의 게임 내 닉네임입니다. |
nickName | String | (선택 입력) 사용자 닉네임 |
type | String | (선택 입력) "0” 길드(기본값), "1” 팀, "2” 이벤트 |
areaId | String | (선택 입력) 게임 대형 구역 ID, "1” qq(기본값), "2” 위챗(선택 입력) |
4) 반환값
없으며, 결과는 WGGroupObserver의 OnJoinGroupV2Notify 를 통해 게임에 콜백합니다.
5) 예시 코드:
GameGuild gameGuild;
gameGuild.guildId = [[param objectForKey:@"100703379"] UTF8String];
gameGuild.roleId = [[param objectForKey:@"징징"] UTF8String];
gameGuild.partition = [[param objectForKey:@"10"] UTF8String];
gameGuild.zoneId = [[param objectForKey:@"100"] UTF8String];
WGPlatform::GetInstance()->WGJoinQQGroupV2(gameGuild,"11002222");
6) 특수 설명
파라미터 설명에 따라 적절한 비율로 파라미터를 입력하고 선택 입력 파라미터는 필요에 따라 입력합니다.
7) 명칭 해석
없음
4 QQ그룹 결합 해제 인터페이스(v2) 호출
1) 기능 설명
QQ그룹을 결합 해제하며, 그 결과는 WGGroupObserver의 OnUnbindGroupV2Notify 를 통해 게임에 콜백할 수 있습니다.
2) 인터페이스 선언
void WGUnbindQQGroupV2(GameGuild& gameGuild);
3) 파라미터 설명
GameGuild: 설정 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
guildId | String | (필수 입력)길드 id;문자열(스트링)에 숫자가 적용되어야 함. 예시: "123456" |
guildName | String | (필수 입력)길드 이름 |
zoneId | String | (필수 입력) 대형 구역 id |
userZoneId | String | (선택 입력) 사용자의 구역 서비스 ID는, 회장이 해당 구역에 속하지 않은 사람에게 양도할 수 있으므로, 길드 구역 서비스가 반드시 사용자 구역 서비스인 것은 아닙니다. |
type | String | (선택 입력) "0” 길드(기본값), "1” 팀, "2” 이벤트 |
areaId | String | (선택 입력) 게임 대형 구역 ID, "1” qq(기본값), "2” 위챗(선택 입력) |
4) 반환값
없으며, 결과는 WGGroupObserver의 OnUnbindGroupV2Notify 를 통해 게임에 콜백할 수 있습니다.
5) 예시 코드:
GameGuild gameGuild;
gameGuild.guildId = [[param objectForKey:@"100703379"] UTF8String];
gameGuild.guildName = [[param objectForKey:@"msdk"] UTF8String];
gameGuild.zoneId = [[param objectForKey:@"100"] UTF8String];
WGPlatform::GetInstance()->WGUnbindQQGroupV2(gameGuild);
6) 특수 설명
파라미터 설명에 따라 적절한 비율로 파라미터를 입력하고 선택 입력 파라미터는 필요에 따라 입력합니다.
7) 명칭 해석
없음
5 기존 모바일QQ그룹 결합 인터페이스(v2) 호출
1) 기능 설명
길드장은 자기가 생성한 QQ그룹 인터페이스에 길드를 바인딩 가능합니다. 해당 인터페이스를 호출하기 전에 우선 WGGetQQGroupListV2 인터페이스를 호출하여 기존에 생성한 그룹 리스트를 읽어오며, 관련 결과는 OnBindExistGroupV2Notify 를 통해 게임에 콜백합니다.
2) 인터페이스 선언
void WGBindExistQQGroupV2(GameGuild& gameGuild,String groupId,String groupName);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
gameGuild | GameGuild | (필수 입력) 길드 정보 |
groupId | String | (필수 입력) 그룹id(그룹id는 그룹계정임) |
groupName | String | (필수 입력) 그룹 닉네임 |
GameGuild: 설정 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
guildId | String | (필수 입력)길드 id, 스트링은 수치를 적용해야 함. 예를들면 “123456”. |
roleId | String | (필수 입력) 캐릭터 ID |
zoneId | String | (필수 입력) 대형 구역 id |
userZoneId | String | (선택 입력) 사용자의 구역 서비스 ID는, 회장이 해당 구역에 속하지 않은 사람에게 양도할 수 있으므로, 길드 구역 서비스가 반드시 사용자 구역 서비스인 것은 아닙니다. |
type | String | (선택 입력) "0” 길드(기본값), "1” 팀, "2” 이벤트 |
areaId | String | (선택 입력) 게임 대형 구역 ID, "1” qq(기본값), "2” 위챗(선택 입력) |
4) 반환값
없음. 바인딩 결과는 OnBindExistGroupV2Notify 를 통해 게임에 콜백합니다
5) 예시 코드:
GameGuild gameGuild;
gameGuild.guildId = [[param objectForKey:@"100703379"] UTF8String];
gameGuild.roleId = [[param objectForKey:@"10"] UTF8String];
gameGuild.zoneId = [[param objectForKey:@"100"] UTF8String];
WGPlatform::GetInstance()->WGBindExistQQGroupV2(gameGuild,"111022","msdk");
6) 특수 설명
파라미터 설명에 따라 적절한 비율로 파라미터를 입력하고 선택 입력 파라미터는 필요에 따라 입력합니다.
7) 명칭 해석
없음
6 결합된 모바일QQ 그룹의 그룹 번호 획득 인터페이스(v2) 호출
1) 기능 설명
모바일QQ그룹에 바인딩한 QQ그룹 메시지를 획득합니다. 길드ID를 통해 QQ그룹의 그룹계정을 읽어오면 그룹이 바인딩됩니다. 그룹을 생성시 길드 명칭을 입력하지 않으면 이때 획득한 QQ그룹명은 비어있습니다. 결과는 OnGetGroupCodeV2Notify 를 통해 게임에 콜백합니다.
2) 인터페이스 선언
void WGGetQQGroupCodeV2(GameGuild& gameGuild);
3) 파라미터 설명
GameGuild: 설정 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
guildId | String | (필수 입력)길드id, 문자열(스트링)에 숫자가 적용되어야 함. 예를 들면 “123456” |
zoneId | String | (필수 입력) 대형 구역 id |
type | String | (선택 입력) "0” 길드(기본값), "1” 팀, "2” 이벤트 |
4) 반환값
없음. 결과는 OnGetGroupCodeV2Notify 를 통해 게임에 콜백합니다.
5) 예시 코드:
GameGuild gameGuild;
gameGuild.guildId = [[param objectForKey:@"100703379"] UTF8String];
gameGuild.roleId = [[param objectForKey:@"10"] UTF8String];
gameGuild.zoneId = [[param objectForKey:@"100"] UTF8String];
WGPlatform::GetInstance()->WGGetQQGroupCodeV2(gameGuild);
6) 특수 설명
파라미터 설명에 따라 적절한 비율로 파라미터를 입력하고 선택 입력 파라미터는 필요에 따라 입력합니다.
7) 명칭 해석
없음
7 그룹 결합된 길드 검색 인터페이스(v2) 호출
1) 기능 설명
그룹ID(그룹계정)를 기반으로 바인딩한 길드 메시지를 조회합니다. 결과는 OnQueryBindGuildV2Notify 를 통해 게임에 콜백합니다.
2) 인터페이스 선언
void WGQueryBindGuildV2(String groupId, int type);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
groupId | String | (필수 입력) 그룹id(그룹id는 그룹 계정임) |
type | int | (필수 입력) 0 길드(기본값), 1 팀, 2 이벤트 |
4) 반환값
없음, 결과는 OnQueryBindGuildV2Notify 를 통해 게임에 콜백합니다.
5) 예시 코드:
WGPlatform.WGQueryBindGuildV2("111002",0);
6) 특수 설명
파라미터 설명에 따라 적절한 비율로 파라미터를 입력하고 선택 입력 파라미터는 필요에 따라 입력합니다.
7) 명칭 해석
없음
8 생성된 QQ그룹 목록 검색 인터페이스(v2) 호출
1) 기능 설명
길드장이 자기가 기존에 생성한 QQ그룹에 길드를 바인딩할 경우, 이미 생성된 QQ그룹 리스트를 조회 시에 사용합니다. 결과는 OnGetGroupListV2Notify 를 통해 게임에 콜백합니다.
2) 인터페이스 선언
void WGGetQQGroupListV2();
3) 파라미터 설명
없음
4) 반환값
없음,결과는 OnGetGroupListV2Notify 를 통해 게임에 콜백합니다.
5) 예시 코드:
WGPlatform::GetInstance()->WGGetQQGroupListV2();
6) 특수 설명
없음
7) 명칭 해석
없음
9 길드 회장 그룹 결합 메시지 인터페이스(v2) 호출
1) 기능 설명
길드에 QQ그룹을 바인딩하지 않았을 경우, 길드원이 길드장에게 바인딩을 리마인딩하는 인터페이스입니다. 내가 생성한 QQ그룹에 길드를 바인딩하면, (위챗) 공식계정 “QQ모바일게임”을 통해 공지를 받으며, 공지는 하루에 1개 만 받아봅니다. 검증 시에 알림자와 피알림자는 반드시 길드원이어야 하며, 게임측에서 ‘피알림자는 길드장’으로 설정해주시기를 요청드립니다. 결과는 OnRemindGuildLeaderV2Notify 를 통해 게임에 콜백합니다.
2) 인터페이스 선언
함수 호출 시에 파라미터 전송 순서에 주의해 주십시오.
void WGRemindGuildLeaderV2(GameGuild& gameGuild);
3) 파라미터 설명
GameGuild: 설정 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
guildId | String | (필수 입력)길드 id;문자열(스트링)에 숫자가 적용되어야 합니다. 예를 들면 "123456" |
zoneId | String | (필수 입력) 대형 구역 id |
roleId | String | (필수 입력) 캐릭터 id |
roleName | String | (필수 입력) 캐릭터 이름 |
leaderOpenid | String | (필수 입력) 길드 회장의 openid |
leaderRoleId | String | (필수 입력) 길드 회장의 roleid |
leaderZoneId | String | (선택 입력) 회장 구역 서비스 정보는, 회장이 해당 구역 서비스 소속이 아닌 사람에게 양도할 수 있습니다. |
userZoneId | String | (선택 입력) 사용자의 구역 서비스 ID는, 회장이 해당 구역에 속하지 않은 사람에게 양도할 수 있으므로, 길드 구역 서비스가 반드시 사용자 구역 서비스인 것은 아닙니다. |
type | String | (선택 입력) "0” 길드(기본값), "1” 팀, "2” 이벤트 |
areaId | String | (선택 입력) 게임 대형 구역 ID, "1” qq(기본값), "2” 위챗(선택 입력) |
4) 반환값
없음,결과는 OnRemindGuildLeaderV2Notify 를 통해 게임에 콜백합니다.
5) 예시 코드:
GameGuild gameGuild;
gameGuild.guildId = [[param objectForKey:@"100703379"] UTF8String];
gameGuild.roleId = [[param objectForKey:@"12"] UTF8String];
gameGuild.roleName = [[param objectForKey:@"징징"] UTF8String];
gameGuild.zoneId = [[param objectForKey:@"100"] UTF8String];
gameGuild.leaderOpenid = [[param objectForKey:@"78AADD8DC9CF80E655EE68039B1D02C9"] UTF8String];
gameGuild.leaderZoneId= [[param objectForKey:@"1234"] UTF8String];
WGPlatform::GetInstance()->WGRemindGuildLeaderV2(gameGuild);
6) 특수 설명
파라미터 설명에 따라 적절한 비율로 파라미터를 입력하고 선택 입력 파라미터는 필요에 따라 입력합니다.
7) 명칭 해석
없음
위챗 그룹 기능
1 개요 설명
먼저 위챗 그룹 기능 콜백을 등록한 후에 권장 절차에 따라 위챗 그룹 기능 인터페이스를 호출하면 위챗 그룹 기능에 액세스할 수 있습니다.
인터페이스 호출 절차는 아래 그림과 같습니다.
2 그룹 정보 콜백 설정
1) 기능 설명
위챗 그룹 기능 관련 인터페이스를 호출하기 전에 먼저 그룹 메시지 콜백을 설정하면 위챗 그룹 생성, 그룹 정보 검색, 그룹 가입 결과를 콜백합니다.
2) 인터페이스 선언
void WGSetGroupObserver(WGGroupObserver* pGroupObserver);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
pGroupObserver | WGGroupObserver 카테고리 | 그룹 기능 콜백 정보 |
4) 반환값
없음
5) 예시 코드
MyObserver *ob = MyObserver::GetInstance();
WGPlatform::GetInstance()->WGSetGroupObserver(ob);
6) 특수 설명
없음
7) 용어 해석
없음
3 위챗 그룹 정보 검색
1) 기능 설명
게임 내에서 길드위챗 그룹 정보를 검색하며, 위챗 길드 그룹이 생성되었는지 그리고 대응하는 사용자가 그룹에 가입했는지 확인하는 데 사용됩니다.
2) 인터페이스 선언
void WGQueryWXGroupInfo(
unsigned char* unionID,
unsigned char* openIdLists
);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
unionID | unsigned char* | 길드 id |
openIdLists | unsigned char* | 그룹 내에 사용자 openid 목록 유무 확인을 기다리며, 쉼표(“,”)로 분할합니다. |
4) 반환값
없으며, 호출 결과는 OnQueryGroupInfoNotify
을/를 통해 게임에 콜백합니다.
5) 예시 코드
WGPlatform::GetInstance()->WGQueryWXGroupInfo((unsigned char*)[self.wxGroupUnionId UTF8String],
(unsigned char*)[self.wxGroupQueryOpenIDLists UTF8String]);
6) 특수 설명
없음
7) 용어 해석
없음
4 위챗 그룹 정보 검색 처리 콜백
1) 기능 설명
검색한 위챗 그룹 정보를 게임에 콜백합니다.
2) 인터페이스 선언
virtual void OnQueryGroupInfoNotify(GroupRet& groupRet) = 0;
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
groupRet | GroupRet 카테고리 | 그룹 기능 콜백 정보 |
4) 반환값
없음
5) 예시 코드
void MyObserver::OnQueryGroupInfoNotify(GroupRet& groupRet)
{
if (groupRet.flag == 0)
{
NSLog(@"그룹 구성원 검색 성공");
}
else
{
switch (groupRet.errorCode)
{
case eFlag_Error:
// 시스템 오류
NSLog(@"시스템 오류. 재시도하십시오.");
break;
case eFlag_WX_Group_ParameterError:
// 파라미터 검색 오류
NSLog(@"시스템 오류. 파라미터 검색 오류. 파라미터 확인 후 재시도하십시오.");
break;
case eFlag_WX_Group_IDNotExist:
//그룹 ID 없음
NSLog(@"시스템 오류. 그룹 ID 없음. 확인 후 재시도하십시오.");
break;
default:
break;
}
}
}
6) 특수 설명
없음
7) 용어 해석
없음
5 길드 위챗 그룹 생성
1) 기능 설명
게임 내에서 길드 위챗 그룹을 생성합니다.
2) 인터페이스 선언
void WGCreateWXGroup(
unsigned char* unionid,
unsigned char* chatRoomName,
unsigned char* chatRoomNickName
);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
unionid | unsigned char* | 길드 id |
chatRoomName | unsigned char* | 채팅 그룹 이름 |
chatRoomNickName | unsigned char* | 사용자의 채팅 그룹 내 자체 정의 닉네임 |
4) 반환값
없으며, 호출 결과는 OnCreateWXGroupNotify
을/를 통해 게임에 콜백합니다.
5) 예시 코드
WGPlatform::GetInstance()->WGCreateWXGroup((unsigned char*)[self.wxGroupUnionId UTF8String],
(unsigned char*)[self.wxGroupChatRoomName UTF8String],
(unsigned char*)[self.wxGroupChatRoomNickName UTF8String]);
6) 특수 설명
없음
7) 용어 해석
없음
6 위챗 그룹 생성 콜백 처리
1) 기능 설명
위챗 그룹 생성 결과를 게임에 콜백합니다.
2) 인터페이스 선언
virtual void OnCreateWXGroupNotify(GroupRet& groupRet) = 0;
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
groupRet | GroupRet 카테고리 | 그룹 기능 콜백 정보 |
4) 반환값
없음
5) 예시 코드
void MyObserver::OnCreateWXGroupNotify(GroupRet& groupRet)
{
if (groupRet.flag == eFlag_Succ)
{
NSLog(@"위챗 그룹 생성 성공");
}
else
{
switch (groupRet.errorCode)
{
case eFlag_Error:
// 시스템 오류
NSLog(@"시스템 오류. 재시도하십시오.");
break;
case eFlag_WX_Group_HasNoAuthority:
// 해당 게임은 그룹 생성 권한이 없음
NSLog(@"시스템 오류. 게임에 그룹 생성 권한 없음. 재시도하십시오.");
break;
case eFlag_WX_Group_ParameterError:
// 파라미터 검색 오류
NSLog(@"시스템 오류. 파라미터 검색 오류. 파라미터 확인 후 재시도하십시오.");
break;
case eFlag_WX_Group_HadExist:
//그룹 ID 이미 있음
NSLog(@"시스템 오류. 위챗 그룹 이미 있음. 확인 후 재시도하십시오.");
break;
case eFlag_WX_Group_AmountBeyond:
//그룹 생성 횟수 제한 초과
NSLog(@"시스템 오류. 그룹 생성 횟수 제한 초과. 확인 후 재시도하십시오.");
break;
default:
break;
}
}
}
6) 특수 설명
없음
7) 용어 해석
없음
7 길드 위챗 그룹 가입
1) 기능 설명
게임 내 길드 위챗 그룹 가입
2) 인터페이스 선언
void WGJoinWXGroup(
unsigned char* unionid,
unsigned char* chatRoomNickName
);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
unionid | unsigned char* | 길드 id |
chatRoomNickName | unsigned char* | 사용자의 채팅 그룹 내 자체 정의 닉네임 |
4) 반환값
없으며, 호출 결과는 OnJoinWXGroupNotify
을/를 통해 게임에 콜백합니다.
5) 예시 코드
WGPlatform::GetInstance()->WGJoinWXGroup((unsigned char*)[self.wxGroupUnionId UTF8String],
(unsigned char*)[self.wxGroupChatRoomNickName UTF8String]);
6) 특수 설명
없음
7) 용어 해석
없음
8 위챗 그룹 가입 콜백 처리
1) 기능 설명
위챗 그룹 가입 결과를 게임에 콜백합니다.
2) 인터페이스 선언
virtual void OnJoinWXGroupNotify(GroupRet& groupRet) = 0;
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
groupRet | GroupRet 카테고리 | 그룹 기능 콜백 정보 |
4) 반환값
없음
5) 예시 코드
void MyObserver::OnJoinWXGroupNotify(GroupRet& groupRet)
{
if (groupRet.flag == 0)
{
NSLog(@"위챗 그룹 가입 성공");
}
else
{
switch (groupRet.errorCode)
{
case eFlag_Error:
// 시스템 오류
NSLog(@"시스템 오류. 재시도하십시오.");
break;
case eFlag_WX_Group_ParameterError:
// 파라미터 검색 오류
NSLog(@"시스템 오류. 파라미터 검색 오류. 파라미터 확인 후 재시도하십시오.");
break;
case eFlag_WX_Group_IDNotExist:
//그룹 ID 없음
NSLog(@"시스템 오류. 그룹 ID 없음. 확인 후 재시도하십시오.");
break;
default:
break;
}
}
}
6) 특수 설명
없음
7) 용어 해석
없음
9 위챗 그룹 상태 검색 인터페이스(2.18.0 이상 버전) 호출
1) 기능 설명
게임 내에서 지정된 길드 id가 이미 그룹을 생성했는지, 또는 그룹에 이미 가입했는지 확인합니다.
2) 인터페이스 선언
void WGQueryWXGroupStatus(unsigned char* groupId,eStatusType opType);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
unionid | unsigned char* | 길드 id |
type | eStatusType | 열거 유형: ISCREATED(그룹 생성 여부), ISJONINED(그룹 참가 여부) |
4) 반환값
void MyObserver::OnQueryWXGroupStatusNotify(GroupRet& groupRet)
{
if (groupRet.flag == 0) //성공
{
if(groupRet.platform == ePlatform_WeiXin)
{
WXGroupInfo wxGroupInfo = groupRet.wxGroupInfo;
int status = wxGroupInfo.status; //0은 그룹 생성 또는 그룹 가입이 없음을 나타내며, 1은 이미 그룹 생성 또는 그룹 가입이 이루어졌음을 나타냄
...
}
}
else
{
if(groupRet.platform == ePlatform_WeiXin)
{
switch (groupRet.errorCode)
{
}
}
}
}
5) 예시 코드
NSString* groupId = @"10001";
WGPlatform::GetInstance()->WGQueryWXGroupStatus((unsigned char*)[groupId UTF8String],ISCREATED);
6) 특수 설명
없음
7) 명칭 해석
없음
10 위챗 그룹 결합 해제 인터페이스(2.17.0 이상 버전)
1) 기능 설명
게임 내에서 지정된 길드 그룹을 결합합니다.
2) 인터페이스 선언
void WGUnbindWeiXinGroup(unsigned char* groupId);
3) 파라미터 설명
파라미터 명칭 | 유형 | 설명 |
---|---|---|
unionid | unsigned char* | 길드 id |
4) 반환값
콜백 획득 예시(주의: 위챗 그룹 결합 해제와 모바일QQ 그룹 결합 해제가 사용하는 것은 동일한 콜백 함수이며, 먼저 콜백 플랫폼이 모바일QQ인지 위챗인지를 구분해야 함:
void MyObserver::OnUnbindGroupNotify(GroupRet& groupRet)
{
if (groupRet.flag == 0) //성공
{
if(groupRet.platform == ePlatform_WeiXin)
{
int errorCode = groupRet.errorCode;
std::string desc = groupRet.desc;
...
}
}
else
{
if(groupRet.platform == ePlatform_WeiXin)
{
switch (groupRet.errorCode)
{
}
}
}
}
5) 예시 코드
NSString* groupId = @"10001";
WGPlatform::GetInstance()->WGUnbindWeiXinGroup((unsigned char*)[groupId UTF8String]);
6) 특수 설명
없음
7) 명칭 해석
없음
자주 묻는 질문
- 1개의 위챗 계정은 1건의 게임 하에서 매일 최대 1개의 위챗 길드 그룹만을 생성할 수 있으며, 반드시 24시간을 기다린 후에 다시 새로운 위챗 그룹을 생성할 수 있습니다. 1개의 위챗 계정은 1건의 게임 하에서 20개의 위챗 길드 그룹만을 만들 수 있으며, 생성한 위챗 길드 그룹은 삭제될 수 없습니다. 따라서, 테스트 시에 해당 게임의 그룹을 20개를 초과해 생성하는 경우, 1개의 계정을 변환해 길드 그룹을 만들어야 합니다.
- 1개의 위챗 계정은 ㅂ건의 게임 하에서 매일 최대 2개의 위챗 길드 그룹에만 가입할 수 있습니다. 1개의 위챗 계정은 1건의 게임 하에서 최대 50개의 위챗 길드 그룹에만 가입할 수 있습니다.
- 1개의 qq 계정은 매일 최대 8회까지 qq 길드 그룹(게임을 구분하지 않으며, 해당 그룹이 해산되어도 그룹 생성 1회로 계산됨)을 생성할 수 있습니다. 1개의 QQ 계정은 최대 100개까지 qq 길드 그룹을 생성할 수 있습니다.
- 1개의 qq 계정은 최대 500명까지 qq 길드 그룹에 가입할 수 있습니다.(게임을 구분하지 않음)
- QQ 그룹이 해산될 경우 두 가지 방식으로 결합 관계를 취소할 수 있습니다.
1.회장이 그룹 결합 해제 인터페이스를 호출해 그룹 관계를 해제함;
2.길드 구성원이 그룹 가입 인터페이스를 호출할 경우, 이 때는 그룹 ID를 찾을 수 없으므로 기본값으로 결합 해제를 실시할 수 있습니다
QQ 그룹이 해산되되고 상기 처리 중 어느 것도 수행하지 않은 경우, 결합 관계는 자동으로 취소될 수 없습니다.