사이트 로그인
2016.07.05 16:38
지엠명령어 일단 원활한 테스트위해서
/** 2013.6.3 개태,큐르 클랜매칭 실험명령어**/
} else if (cmd.equalsIgnoreCase("매칭")) {
gm.sendPackets(new S_ClanMatching());
} else if (cmd.equalsIgnoreCase("매칭0")) {
gm.sendPackets(new S_ClanMatching(gm, 0,0));
} else if (cmd.equalsIgnoreCase("매칭1")) {
gm.sendPackets(new S_ClanMatching(gm, 1,0));
} else if (cmd.equalsIgnoreCase("매칭2")) {
gm.sendPackets(new S_ClanMatching(gm, 2,0));
} else if (cmd.equalsIgnoreCase("매칭3")) {
gm.sendPackets(new S_ClanMatching(gm, 3,0));
} else if (cmd.equalsIgnoreCase("매칭4")) {
gm.sendPackets(new S_ClanMatching(gm, 4,0));
} else if (cmd.equalsIgnoreCase("매칭5")) {
gm.sendPackets(new S_ClanMatching(gm, 5,0));
} else if (cmd.equalsIgnoreCase("매칭6")) {
gm.sendPackets(new S_ClanMatching(gm, 6,0));
/** **/
아래껀추가
package l1j.server.server.serverpackets;
import javolution.util.FastTable;
import l1j.server.server.Opcodes;
import l1j.server.server.model.L1Clan;
import l1j.server.server.model.L1War;
import l1j.server.server.model.L1World;
import l1j.server.server.model.Instance.L1PcInstance;
/** 2013.6.3 개태,큐르 클랜매칭 **/
public class S_ClanMatching extends ServerBasePacket {
private static final String S_ClanMatching = "[S] S_ClanMatching";
private byte[] _byte = null;
public S_ClanMatching(L1PcInstance pc, int type, int subType) {
buildPacket(pc, type, subType);
}
public S_ClanMatching() {//군주부름클릭하라는부분일듯한데 현재모르것음 반응없음
writeC(Opcodes.S_OPCODE_CLANMATCHING);
writeC(0xf0);
writeC(0x56);
writeC(0x35);
writeC(0x23);
writeC(0x2b);
writeC(0xb5);
writeC(0xff);
writeC(0x27);
writeC(0xed);
writeC(0x52);
writeC(0xf6);
writeC(0x76);
writeC(0x20);
writeC(0xa9);
writeC(0xfb);
writeC(0x32);
writeC(0xef);
writeC(0x57);
writeC(0xe6);
writeC(0x43);
writeC(0x00);
writeC(0x81);
writeC(0xdf);
// ========================================================
// [Server] OPCODE :192 Size :24
// ========================================================
// [DATA]0000 :c0 f0 56 35 23 2b b5 ff 27 ed 52 f6 76 20 a9 fb ..V5#+..'.R.v ..
// [DATA]0010 :32 ef 57 e6 43 00 81 df 2.W.C...
}
/** 2013.6.3 개태,큐르 클랜매칭 **/
private void buildPacket(L1PcInstance pc, int type, int subType) {
int size = 0;
writeC(Opcodes.S_OPCODE_CLANMATCHING);
writeH(type); //매칭창 타입
if (type == 0) {//혈맹등록
} else if (type == 1) {//등록취소
} else if (type == 2 || type == 3) {//혈맹리스트 추천/신청
FastTable<L1Clan> MatchingList = null;
if (type == 2) {
MatchingList = L1World.getInstance().getClanMatchingList();
size = MatchingList.size();
writeC(size);//모든리스트갯수
} else if (type == 3) {
MatchingList = L1World.getInstance().getClanMatchingMyList(pc);
size = MatchingList.size();
writeC(size);//신청한리스트갯수
}
for (L1Clan clan : MatchingList) {
if (type == 3) {
writeD(clan.getClanId());//클렌아이디 월랜목록번호인데 구분쉽게 아이디가좋을듯
writeC(0x00);
}
writeD(clan.getClanId());//클렌아이디
writeS(clan.getClanName());//클렌네임
writeS(clan.getLeaderName());//리더네임
writeD(clan.OnlineMemberMatchCount); //섭다전까지최고유저로일단지정
writeC(clan.MatchWarType);// 타입 0:전투, 1:사냥, 2:친목
if (clan.getHouseId() > 0) {//아지트
writeC(0x01);
} else {
writeC(0x00);
}
boolean iswar = false;
String enemy_clan_name = null;
for (L1War war : L1World.getInstance().getWarList()) {
iswar = war.CheckClanInWar(clan.getClanName());
if (iswar) {
enemy_clan_name = war.GetEnemyClanName(clan.getClanName());
break;
}
}
if (enemy_clan_name != null) {
writeC(0x01); //전쟁상태 1:O, 0:X
writeC(0x01); //마우스오버 표시 1:표현, 0:미표현
writeS("\\aG전쟁중:" + enemy_clan_name + " 혈맹");
} else {
writeC(0x00);
writeC(0x00);
}
/** 혈맹 정보 **/
writeS("\\aD" + clan.MatchMent);//홍보문구
writeD(clan.getClanId());//클랜아이디
}
writeC(0x00);
writeC(0x00);
MatchingList.clear();
} else if (type == 4) {
} else if (type == 5) {
} else if (type == 6) {//취소 수락 거절
if (subType == 3) {//가입신청 취소할경우
//개태잠들어서 패킷끍어올수없음 ㅈㅈ
}
}
}
@Override
public byte[] getContent() {
if (_byte == null) {
_byte = getBytes();
}
return _byte;
}
@Override
public String getType() {
return S_ClanMatching;
}
}
아래도추가
package l1j.server.server.clientpackets;
import java.util.logging.Logger;
import javolution.util.FastTable;
import l1j.server.server.model.L1Clan;
import l1j.server.server.model.L1World;
import l1j.server.server.model.Instance.L1PcInstance;
import l1j.server.server.serverpackets.S_ClanMatching;
import l1j.server.server.serverpackets.S_SystemMessage;
import server.LineageClient;
/** 2013.6.3 개태,큐르 클랜매칭 **/
public class C_ClanMatching extends ClientBasePacket {
private static final String C_ClanMatching = "[C] C_ClanMatching";
private static Logger _log = Logger.getLogger(C_ClanMatching.class.getName());
/** 2013.6.3 개태,큐르 클랜매칭 **/
public C_ClanMatching(byte abyte0[], LineageClient clientthread) throws Exception {
super(abyte0);
int type = readC();
L1PcInstance pc = clientthread.getActiveChar();
L1Clan clan = null;
FastTable<L1Clan> MatchingList = null;
int clanid = 0;
switch (type) {
case 0://혈맹등록
int warType = readC();
String ment = readS();
clan = pc.getClan();
if (clan == null) {
pc.sendPackets(new S_SystemMessage("혈맹이 없습니다."));
//패킷이필요할지도
return;
}
clan.isClanMatch = true;
clan.MatchWarType = warType;
clan.MatchMent = ment;
pc.sendPackets(new S_ClanMatching(pc, 0, 0));
MatchingList = L1World.getInstance().getClanMatchingList();
for (L1Clan targetClan : MatchingList) {
if (clan == targetClan) {
pc.sendPackets(new S_SystemMessage("등록정보를 수정하셨습니다."));
return;
}
}
pc.sendPackets(new S_SystemMessage("혈맹을 등록하셨습니다."));
break;
case 1://등록취소
clan = pc.getClan();
if (clan == null) {
pc.sendPackets(new S_SystemMessage("혈맹이 없습니다."));
//패킷이필요할지도
return;
}
clan.isClanMatch = false;
clan.MatchWarType = 0;
clan.MatchMent = "";
clan.MatchPcList.clear();
pc.sendPackets(new S_ClanMatching(pc, 1, 0));
pc.sendPackets(new S_SystemMessage("혈맹등록을 취소하셨습니다."));
break;
case 2://새로고침
pc.sendPackets(new S_ClanMatching(pc, 2, 0));
break;
case 3://새로고침
pc.sendPackets(new S_ClanMatching(pc, 3, 0));
break;
case 4://새로고침
pc.sendPackets(new S_ClanMatching(pc, 4, 0));
break;
case 5://혈가입신청
clanid = readD();
L1World.getInstance().getClan(clanid).MatchPcList.add(pc);
pc.sendPackets(new S_ClanMatching(pc, 5, 0));
pc.sendPackets(new S_SystemMessage("혈맹에 가입을 신청하셨습니다."));
break;
case 6://혈가입취소
clanid = readD();
readD();
int Type = readD();
L1World.getInstance().getClan(clanid).MatchPcList.remove(pc);
pc.sendPackets(new S_SystemMessage("혈맹가입신청을 취소하셨습니다."));
//pc.sendPackets(new S_ClanMatching(pc, 6, Type)); //패킷부족 개태얼렁와
break;
default:
System.out.println("지정하지 않은 타입 : " + type);
break;
}
MatchingList.clear();
}
@Override
public String getType() {
return C_ClanMatching;
}
}
씨셀렉트케릭
for (L1PcInstance clanMember : clan.getOnlineClanMember()) {
if (clanMember.getId() != pc.getId() && !pc.isGm()) {
// 지금, 혈맹원의%0%s가 게임에 접속했습니다.
clanMember.sendPackets(new S_ServerMessage(843, pc.getName()));
}
}
/** 2013.6.3 개태,큐르 클랜매칭 **/
clan.setOnlineMemberMatchCount();
/** **/
엘원클랜
/** 2013.6.3 개태,큐르 클랜매칭 **/
public boolean isClanMatch = false;
public int OnlineMemberMatchCount = 0;
public int MatchWarType = 0;//타입 0:전투, 1:사냥, 2:친목
public String MatchMent = "";
public void setOnlineMemberMatchCount() {//디비입력귀찮으니 섭다전까지 최고수치
int count = 0;
for (int i = 0; i < clanMemberList.size(); i++) {
if (L1World.getInstance().getPlayer(clanMemberList.get(i).name) != null) {
count++;
}
}
if (OnlineMemberMatchCount < count) {
OnlineMemberMatchCount = count;
}
}
public final FastTable<L1PcInstance> MatchPcList = new FastTable<L1PcInstance>();
/** **/
엘원월드
/** 2013.6.3 개태,큐르 클랜매칭 **/
public FastTable<L1Clan> getClanMatchingList(){
FastTable<L1Clan> matchlist = new FastTable<L1Clan>();
for(L1Clan clan : getAllClans()){
if(clan.isClanMatch){
matchlist.add(clan);
}
}
return matchlist;
}
public FastTable<L1Clan> getClanMatchingMyList(L1PcInstance pc){
FastTable<L1Clan> matchpclist = new FastTable<L1Clan>();
for(L1Clan clan : getAllClans()){
if(clan.isClanMatch && clan.MatchPcList.contains(pc)){
matchpclist.add(clan);
}
}
return matchpclist;
}
/** **/
수락/거절/가입신청취소 부분 패킷이필요한데
대만접가능한 개태는 자러가버려서 ㅈㅈ
신청해둔목록리스트도 패킷이없어서 ㅈㅈ
아무거나쏘면서 노가다할수도잇지만 굳이 그럴이유는 없으니.....
다음에 패킷긁어오면 마저 처리
일단 지금 까지 작업한부분까지만 공개할께용
개태랑 큐르랑 공동작업
변수들은 귀찮아서 일단 캡슐화안한상태
[출처] 매칭 조금덧붙인부분 (미완 (비공개 카페)
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | 소스자료는 직접 올려주세요 | 게임존 | 2017.06.06 | 550 |
459 | 글말 고대물품 | 준희미니 | 2016.07.05 | 35 |
458 | UI6차 [롤코] 글루딘 고대물품 관련 | 준희미니 | 2016.07.05 | 30 |
457 | 롤코 소스 간략화 | 준희미니 | 2016.07.05 | 32 |
456 | 3.63대만 접속기 옵코드 대만사이트서 공개 되어잇네여 | 준희미니 | 2016.07.05 | 223 |
455 | 짜집기 리치인형 | 준희미니 | 2016.07.05 | 49 |
454 | 대만옵코드 S_ServerVersion 올려달라는분이 잇어서여~~나머지는 기억부분 소스인듯.. | 준희미니 | 2016.07.05 | 112 |
453 | S_EquipmentWindow 패킷오류수정에바에맞게 | 준희미니 | 2016.07.05 | 33 |
452 | 인형레이스번호 | 준희미니 | 2016.07.05 | 42 |
451 | [수정]18세님꺼 장비 장착 룬 적용 안되시는분... | 준희미니 | 2016.07.05 | 50 |
450 |
계급: %s(으)로 계급 임명함 or 계급: %s을(를) %s(으)로 임명함
![]() | 준희미니 | 2016.07.05 | 33 |
449 | 3.63c 수호기사 /가입 허용 | 준희미니 | 2016.07.05 | 29 |
448 | 몹트렙 | 준희미니 | 2016.07.05 | 74 |
» | 매칭 조금덧붙인부분 | 준희미니 | 2016.07.05 | 58 |
446 | 매칭 덧붙인부분 | 준희미니 | 2016.07.05 | 13 |
445 | 매칭 덧붙인부분(포기 | 준희미니 | 2016.07.05 | 22 |
444 | .정리 오류나는분 | 준희미니 | 2016.07.05 | 75 |
443 | 싸이 인형 입니다 | 준희미니 | 2016.07.05 | 77 |
442 | 배틀존 용기사 변신 | 준희미니 | 2016.07.05 | 38 |
441 | 짜집기 트리플애로우^^;; | 준희미니 | 2016.07.05 | 82 |
440 | 짜집기 언케니닷지 | 준희미니 | 2016.07.05 | 46 |
439 | 짜집기 대마법사의모자 | 준희미니 | 2016.07.05 | 42 |
438 | 펌 핫식스 힘이 불끈 | 준희미니 | 2016.07.05 | 31 |
437 | 안톤 끝내 포기하면서 허접한 제작 주문서 올랴보아요 | 준희미니 | 2016.07.05 | 64 |
436 | 안톤 먹튀하시는분들 보세요 초보소스 | 준희미니 | 2016.07.05 | 61 |
435 | UI6 안톤NPC _ 멸마 제작관련 | 준희미니 | 2016.07.05 | 49 |
434 | 인던초기화 | 준희미니 | 2016.07.05 | 61 |
433 | 인챈트 웨폰 / 블래스 아머 버프창 표시 | 준희미니 | 2016.07.05 | 130 |
432 | 인챈표기실시간 [1] | 준희미니 | 2016.07.05 | 119 |
431 | 속강에 스펠도넣긔-ㅁ-ㅋ | 준희미니 | 2016.07.05 | 38 |
430 | mapids.sql | 준희미니 | 2016.07.05 | 43 |
429 | textmapreader 및 mapid 및 map파일 | 준희미니 | 2016.07.05 | 45 |
428 |
기억의 구슬 창 패킷
![]() | 준희미니 | 2016.07.05 | 77 |
427 | 만월의정기나 리퍼같은거 엘원몹인분 | 준희미니 | 2016.07.05 | 27 |
426 | 신생아님요청 | 준희미니 | 2016.07.05 | 41 |
425 | 던전초기화 | 준희미니 | 2016.06.29 | 114 |
424 | npc삭제하기 | 준희미니 | 2016.06.29 | 133 |
423 | 인던초기화(끌어올림 | 준희미니 | 2016.06.29 | 42 |
422 | [수정1] 데스나이트 불검 커스텀 버전 | 준희미니 | 2016.06.29 | 193 |
421 | 린드비오르 갑옷 라이브화 (7/10 업데이트 적용 | 준희미니 | 2016.06.29 | 111 |
420 | 크리티컬 마법이펙트입니다; 고생들하세용 | 준희미니 | 2016.06.29 | 163 |
419 | 유저에게 스톰워크를 쓸 수 있도록 해주자 | 준희미니 | 2016.06.29 | 96 |
418 | [UI6] 레벨업 버프 효과 | 준희미니 | 2016.06.29 | 56 |
417 | 댄싱 블레이즈 (야매) | 준희미니 | 2016.06.29 | 62 |
416 | 운영자 파티 | 준희미니 | 2016.06.29 | 51 |
415 | 지혜의 물약 리뉴얼 | 준희미니 | 2016.06.29 | 65 |
414 | 만인첸시 속성 안되시는분들 있으셔서 홧팅 | 준희미니 | 2016.06.29 | 52 |
413 | 속성 변환 주문서(보내기는 아이디공개 합니다.) | 준희미니 | 2016.06.29 | 52 |
412 | 10주년 아이템 강화하자 //질문있습니다 | 준희미니 | 2016.06.29 | 28 |
411 | 오림시스템[해양전] | 준희미니 | 2016.06.29 | 68 |
410 | 쥬니a님 요청자료 | 준희미니 | 2016.06.29 | 73 |