홈 > 커뮤니티 > 자유 게시판
자유 게시판

구팩에 신팩 옵코드 적용 방법

울티마 3 1515 0 0

[린올]

GameClient


static byte[] FIRST_PACKET = {
  (byte) 0x0b, (byte) 0x00,//size
  (byte) 0xEB, // 170713 최신
  (byte) 0x09, (byte) 0xC4, (byte) 0x5C, (byte) 0x35,
  (byte) 0x20, (byte) 0xA7, (byte) 0x38, (byte) 0x50 };



long seed = 0x355CC409; // 170713 최신



Opcodes


public static final int C_PLATE = 0x01; // 게시판 클릭
 public static final int C_LOGIN_TEST = 0x04; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_CHANGE_ACCOUNTINFO = 0x05; // CALL버튼 .감시 (현재 미사용
               // by feel)
 public static final int C_BLINK = 0x08; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_BUYABLE_SPELL = 0x0B; // 스킬 구입 리스트
 public static final int C_HYPERTEXT_INPUT_RESULT = 0x0C; // 수량성 아이템 제작 갯수
 public static final int C_ADD_BUDDY = 0x0D; // 친구추가
 public static final int C_WITHDRAW = 0x0E; // 공금 출금[자금을 인출한다]
 public static final int C_TELL = 0x11; // 찾음[본섭]
 public static final int C_ACCEPT_XCHG = 0x12; // 교환 OK
 public static final int C_READ_NOTICE = 0x16; // 로그인 후 패킷
 public static final int C_HACTION = 0x17; // Npc 대화 액션 부분
 public static final int C_EXCHANGEABLE_SPELL = 0x18; // 호런 마법 리스트
 public static final int C_USE_SPELL = 0x19; // 스킬 사용 부분
 public static final int C_ATTACK = 0x1A; // 일반공격 부분
 public static final int C_UPLOAD_EMBLEM = 0x1C; // 문장데이타를 서버에 요청함
 public static final int C_MERCENARYSELECT = 0x20; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_USE_ITEM = 0x21; // 아이템 사용 부분
 public static final int C_LEAVE_PLEDGE = 0x22; // 혈맹 탈퇴
 public static final int C_RANK_CONTROL = 0x24; // [계급]
 public static final int C_BOOKMARK = 0x28; // [기억 OO]
 public static final int C_MOVE = 0x29; // 이동요청 부분
 public static final int C_SAY = 0x2A; // 찾음[본섭]
 public static final int C_WHO_PLEDGE = 0x2B; // [혈맹]
 public static final int C_MERCENARYARRANGE = 0x2D; // 찾음[본섭] (현재 미사용 by
              // feel)
 public static final int C_MONITOR_CONTROL = 0x2E; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_SLAVE_CONTROL = 0x30; // 펫 공격 목표 지정
 public static final int C_SAVEIO = 0x31; // 캐릭인벤슬롯정보
 public static final int C_WANTED = 0x32; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_EXCLUDE = 0x33; // [/차단]
 public static final int C_DROP = 0x34; // 아이템 떨구기
 public static final int C_ALIVE = 0x35; // 1분마다 한번씩 옴
 public static final int C_BUILDER_CONTROL = 0x36; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_SELECT_TIME = 0x3A; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_INCLUDE = 0x3B; // [포함] (현재 미사용 by feel)
 public static final int C_PERSONAL_SHOP = 0x3C; // [상점 -> OK]
 public static final int C_DELETE_CHARACTER = 0x3D; // 케릭터 삭제
 public static final int C_SHUTDOWN = 0x3F; // 혈맹창 공지, 메모
 public static final int C_WHO = 0x42; // [누구]
 public static final int C_VERSION = 0x46; // v 클라 서버 버전 (현재 미사용 by feel)
 public static final int C_WHO_PARTY = 0x47; // 찾음[본섭]
 public static final int C_LOGIN_RESULT = 0x4C; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_RETURN_SUMMON = 0x4D; // 텔레포트 사용
 public static final int C_QUERY_PERSONAL_SHOP = 0x4E; // 개인상점 buy, sell
 public static final int C_EXTENDED_PROTOBUF = 0x51; // 종합 패킷
 public static final int C_BAN = 0x52; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_CANCEL_XCHG = 0x53; // 교환 취소
 public static final int C_NPC_ITEM_CONTROL = 0x54; // 펫 인벤토리 아이템 사용
 public static final int C_LEAVE_PARTY = 0x55; // 파티 탈퇴
 public static final int C_GOTO_MAP = 0x59; // 찾음[본섭]
 public static final int C_ADD_XCHG = 0x5B; // 교환창에 아이템 추가
 public static final int C_WAREHOUSE_CONTROL = 0x61; // 창고 비번.
 public static final int C_MARRIAGE = 0x62; // [청혼]
 public static final int C_CHANNEL = 0x63; // 불량 유저 신고(신고)
 public static final int C_CONTROL_WEATHER = 0x64; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_GET = 0x65; // 아이템 줍기.
 public static final int C_CREATE_CUSTOM_CHARACTER = 0x67; // 케릭 생성
 public static final int C_TELEPORT = 0x69; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_KICK = 0x6A; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_ADDR = 0x6B; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_DEAD_RESTART = 0x6D; // 겜중에 죽어서 리셋 눌럿을때
 public static final int C_QUERY_CASTLE_SECURITY = 0x6E; // 성내 치안관리
 public static final int C_GIVE = 0x72; // 강제로 아이템 주기
 public static final int C_CHAT = 0x73; // 매크로 체팅 by feel
 public static final int C_MERCENARYNAME = 0x74; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_FIX = 0x78; // 무기수리, 펫인출
 public static final int C_QUERY_BUDDY = 0x7A; // 친구리스트
 public static final int C_FAR_ATTACK = 0x7B; // 활공격 부분
 public static final int C_CHANGE_PASSWORD = 0x7C; // 찾음[본섭] (사용안함_by feel )
 public static final int C_TELEPORT_USER = 0x7D; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_CHANGE_DIRECTION = 0x80; //
 public static final int C_NEW_ACCOUNT = 0x82; // 찾음[본섭] (사용안함_by feel )
 public static final int C_SELECTABLE_TIME = 0x85; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_WISH = 0x86; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_EXTENDED = 0x89; // 아덴상점 아이콘 클릭, 부가 아이템, 혈맹창
 public static final int C_READ_NEWS = 0x8B; // 공지사항 확인 눌럿을때
 public static final int C_OPEN = 0x8E; // 문짝 클릭 부분.
 public static final int C_DUEL = 0x90; // [결투]
 public static final int C_ASK_XCHG = 0x91; // [교환]
 public static final int C_REGISTER_QUIZ = 0x93; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_FIXABLE_ITEM = 0x96; // 무기수리리스트
 public static final int C_CHECK_PK = 0x97; // [checkpk]
 public static final int C_SERVER_SELECT = 0x99; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_EXTENDED_HYBRID = 0x9A; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_TITLE = 0x9B; // 호칭 명령어
 public static final int C_ARCHERARRANGE = 0x9C; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_DELETE_BOOKMARK = 0x9D; // [기억 후 기억목록클릭 delete]
 public static final int C_QUIT = 0xA0; // 0x51 종료
 public static final int C_BOARD_READ = 0xA2; // 게시판 읽기
 public static final int C_MERCENARYEMPLOY = 0xA4; // 용병구매
 public static final int C_EMBLEM = 0xA7; // 가시범위의 혈맹 마크 요청[폴더내 emblem삭제]
 public static final int C_ALT_ATTACK = 0xA8; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_ENTER_SHIP = 0xAB; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_INVITE_PARTY = 0xAC; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_REMOVE_BUDDY = 0xAD; // 친구삭제
 public static final int C_EXCHANGE_SPELL = 0xAE; // 호런 마법목록에서 OK누르기
 public static final int C_BANISH_PARTY = 0xAF; // 파티 추방
 public static final int C_LOGOUT = 0xB0; // 다시 로긴창으로 넘어갈때
 public static final int C_SHIFT_SERVER = 0xB3; // 찾음[본섭] (사용안함_by feel )
 public static final int C_BOOK = 0xB7; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_INVITE_PARTY_TARGET = 0xB9; // 파티 초대
 public static final int C_BOARD_DELETE = 0xBE; // 게시판 게시글 삭제
 public static final int C_EXIT_GHOST = 0xC0; // 무한대전 관람모드 탈출 (현재 미사용 by
             // feel)
 public static final int C_MATCH_MAKING = 0xC5; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_CHECK_INVENTORY = 0xC6; // 펫 인벤토리[펫 메뉴]
 public static final int C_ENTER_PORTAL = 0xC7; // (ENTER_PORTAL)
 public static final int C_THROW = 0xC8; // 낚시 종료
 public static final int C_SILENCE = 0xC9; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_GOTO_PORTAL = 0xCB; // 오른쪽 버튼으로 포탈 진입 확실치 않음
 public static final int C_WAR = 0xCE; // 전쟁
 public static final int C_BOARD_WRITE = 0xCF; // 게시판 쓰기
 public static final int C_VOICE_CHAT = 0xD0; // 스텟 초기화.
 public static final int C_JOIN_PLEDGE = 0xD1; // [가입]
 public static final int C_TAX = 0xD4; // 세금 조정
 public static final int C_SMS = 0xD6; // 문자 찾음[본섭] (현재 미사용 by feel)
 public static final int C_BUY_SELL = 0xD7; // 상점 결과 처리
 public static final int C_ONOFF = 0xD8; // [환경설정->전챗켬,끔].
 public static final int C_DEPOSIT = 0xD9; // 성 공금 입금
 public static final int C_REQUEST_ROLL = 0xDA; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_START_CASTING = 0xDC; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_BOARD_LIST = 0xDD; // 게시판 next
 public static final int C_MAIL = 0xDF; // 편지 읽기
 public static final int C_PLEDGE_WATCH = 0xE2; // 문장 주시 혈맹 목록
 public static final int C_RESTART = 0xE4; // 겜중에 리스창으로 빠짐. [
            // C_CHARACTERCONFIG 다음에 날라옴 ]
 public static final int C_SUMMON = 0xE5; // CALL버튼 .감시
 public static final int C_CHAT_PARTY_CONTROL = 0xE7; // 채팅파티채팅초대
 public static final int C_CLIENT_READY = 0xE8; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_LOGIN = 0xE9; // v 계정정보가 담긴 패킷
 public static final int C_ENTER_WORLD = 0xEC; // 리스창에서 케릭 선택
 public static final int C_ATTACK_CONTINUE = 0xED; // 자동칼질
 public static final int C_CREATE_PLEDGE = 0xF4; // 혈맹 창설
 public static final int C_BAN_MEMBER = 0xF5; // 혈맹 추방 명령어
 public static final int C_ACTION = 0xF6; // <알트+1 ~ 5 까지 액션 >
 public static final int C_CHANGE_CASTLE_SECURITY = 0xF7; // 성내 치안 관리
 public static final int C_ANSWER = 0xF8; // [ Y , N ] 선택 부분
 public static final int C_DESTROY_ITEM = 0xFA; // 휴지통에 아이템 삭제
 public static final int C_SAVE = 0xFB; // 무기수리 완료 - 예측 (현재 미사용 by feel)
 public static final int C_DIALOG = 0xFC; // Npc와 대화부분
 public static final int C_BUY_SPELL = 0xFD; // 스킬 구입 OK

 // .제공_ 필.
 public static final int S_CHANGE_PASSWORD_CHECK = 0x00; // 찾음[본섭] (현재 미사용 by
               // feel)
 public static final int S_WEATHER = 0x01; // 날씨 조작하기
 public static final int S_DRUNKEN = 0x02; // 술
 public static final int S_POISON = 0x04; // 독과 굳은 상태 : 표현 비취나 큐어포이즌 써보면 됨
 public static final int S_XCHG_RESULT = 0x05; // 거래 취소, 완료
 public static final int S_NOT_ENOUGH_FOR_SPELL = 0x0C; // 호런 재료 부족
 public static final int S_CHANGE_ATTR = 0x0D; // 위치값을 이동가능&불가능 조작 부분
 public static final int S_TELL = 0x0F; // 귓속말
 public static final int S_REQUEST_SUMMON = 0x11; // 텔레포트[손바닥]
 public static final int S_BOARD_READ = 0x12; // 게시판 읽기
 public static final int S_ROLL_RESULT = 0x14; // 찾음[본섭] (현재 미사용 by feel)
 public static final int S_REMOVE_INVENTORY = 0x15; // 인벤토리 아이템 삭제
 public static final int S_CHANGE_DIRECTION = 0x16; // 방향 전환 부분 [움직이는 엔피씨에
              // 말걸어서 체크]
 public static final int S_ADD_SPELL = 0x19; // 스킬 추가[버프패킷박스 다음]
 public static final int S_MERCENARYNAME = 0x1A; // 찾음[본섭] (현재 미사용 by feel)
 public static final int S_CHANGE_ALIGNMENT = 0x1D; // 라우풀
 public static final int S_HIT_POINT = 0x20; // HP 업데이트
 public static final int S_NOTICE = 0x21; // 로그인후 패킷
 public static final int S_CLONE = 0x22; // npc 변신(도펠갱어 등등) (현재 미사용 by feel)
 public static final int S_DELETE_CHARACTER_CHECK = 0x23; // 케릭 삭제
 public static final int S_EFFECT = 0x25; // 이팩트 부분 (헤이스트등)
 public static final int S_PERSONAL_SHOP_LIST = 0x26; // 개인상점 물품 열람
 public static final int S_BLIND = 0x2A; // 눈멀기 효과
 public static final int S_CREATE_CHARACTER_CHECK = 0x2D; // 캐릭터 생성시 처리부분
 public static final int S_CHANGE_DESC = 0x2E; // 오브젝트 네임변경시
 public static final int S_BUYABLE_SPELL_LIST = 0x30; // 스킬 구입 창
 public static final int S_CHANGE_ITEM_USE = 0x31; // 찾음[본섭] (현재 미사용 by feel)
 public static final int S_ATTACK_ALL = 0x32; // 찾음[본섭] (현재 미사용 by feel)
 public static final int S_EXP = 0x34; // 경험치 갱신 (현재 미사용 by feel)
 public static final int S_MOVE_OBJECT = 0x36; // 이동 오브젝트
 public static final int S_TAX = 0x3A; // 세율 조정
 public static final int S_VOICE_CHAT = 0x3B; // v 스텟 초기화 길이
 public static final int S_COMMAND_TARGET = 0x3D; // 찾음[본섭] (현재 미사용 by feel)
 public static final int S_ADD_INVENTORY_BATCH = 0x41; // 인벤토리의 아이템리스트
 public static final int S_AGIT_MAP = 0x42; // 찾음[본섭]
 public static final int S_SERVER_LIST = 0x44; // 찾음[본섭] (현재 미사용 by feel)
 public static final int S_AC = 0x45; // AC 및 속성방어 갱신 [블레스트 아머 사용시 나옴]
 public static final int S_NEW_CHAR_INFO = 0x47; // 케릭 새로 만든거 보내기
 public static final int S_ACTION = 0x48; // 액션 부분(맞는모습등)
 public static final int S_CHARACTER_INFO = 0x4B; // v 케릭터리스트의 케릭정보
 public static final int S_MAGE_STRENGTH = 0x4D; // 힘업
 public static final int S_WITHDRAW = 0x4E; // 공금 출금
 public static final int S_PING = 0x4F; // 찾음[본섭] (현재 미사용 by feel)
 public static final int S_MASTER = 0x51; // 찾음[본섭] (현재 미사용 by feel)
 public static final int S_CRIMINAL = 0x52; // 보라돌이
 public static final int S_HYPERTEXT = 0x53; // Npc클릭 Html열람
 public static final int S_CHANGE_LEVEL = 0x55; // 찾음[본섭] (현재 미사용 by feel)
 public static final int S_ASK = 0x57; // [ Y , N ] 메세지
 public static final int S_CASTLE_OWNER = 0x59; // 성소유목록 세팅
 public static final int S_RESTART = 0x5D; // 찾음[본섭]
 public static final int S_BLINK = 0x5E; // 찾음[본섭] (현재 미사용 by feel)
 public static final int S_SELECTABLE_TIME_LIST = 0x5F; // 공성시간 지정
 public static final int S_VERSION_CHECK = 0x61; // 서버버전 (현재 미사용 by feel)
 public static final int S_WAR = 0x63; // 전쟁
 public static final int S_AGIT_LIST = 0x64; // 아지트 리스트
 public static final int S_CHANGE_LIGHT = 0x65; // 밝기
 public static final int S_SHOW_MAP = 0x67; // 찾음[본섭] (현재 미사용 by feel)
 public static final int S_RESURRECT = 0x6D; // 부활 처리 부분
 public static final int S_PORTAL = 0x6E; //
 public static final int S_ATTACK_MANY = 0x70; // 파톰 어퀘등의 스킬
 public static final int S_REMOVE_SPELL = 0x78; // 스킬 삭제 (정령력 제거) 힘투벗기
 public static final int S_EVENT = 0x79; // v 통합 패킷 관리 담당
 public static final int S_ADD_BOOKMARK = 0x7B; // 기억 리스트
 public static final int S_ABILITY_SCORES = 0x7C; // 스테이터스 갱신(디크리즈,민투)
 public static final int S_IDENTIFY_CODE = 0x7D; // 확인주문서
 public static final int S_HIT_RATIO = 0x7E; // 미니 HP표현 부분
 public static final int S_CHANGE_ITEM_DESC_EX = 0x80; // 인벤 아이템 갱신
 public static final int S_NUM_CHARACTER = 0x82; // v 해당 계정의 케릭 갯수
 public static final int S_CHANGE_ITEM_DESC = 0x86; // 아이템 착용 (E표시)
 public static final int S_INVISIBLE = 0x87; // 투명
 public static final int S_SAY_CODE = 0x88; // 샤우팅 글
 public static final int S_MESSAGE = 0x8A; // 시스템 메세지 (장사 채팅).
 public static final int S_PLEDGE_WATCH = 0x8B; // 혈맹 문장 주시
 public static final int S_SELL_LIST = 0x8D; // 상점에 판매 부분
 public static final int S_FIXABLE_ITEM_LIST = 0x8E; // 무기수리 리스트
 public static final int S_MAGE_SHIELD = 0x90; // 쉴드
 public static final int S_READ_MAIL = 0x95; // 찾음[본섭] (현재 미사용 by feel)
 public static final int S_BOARD_LIST = 0x97; // 게시판 클릭
 public static final int S_SLAVE_CONTROL = 0x99; // 펫 공격 목표지정
 public static final int S_EMBLEM = 0x9A; // 클라에 혈문장 요청
 public static final int S_ADD_XCHG = 0x9B; // 거래창 아이템 추가 부분
 public static final int S_SAY = 0x9C; // 일반 채팅
 public static final int S_STATUS = 0xA0; // 케릭 정보 갱신
 public static final int S_MAGE_DEXTERITY = 0xA1; // 덱스업
 public static final int S_TITLE = 0xA2; // 호칭 변경
 public static final int S_WARNING_CODE = 0xA3; // 찾음[본섭] (현재 미사용 by feel)
 public static final int S_CHANGE_ITEM_TYPE = 0xA4; // 찾음[본섭] (현재 미사용 by
              // feel)
 public static final int S_BOOK_LIST = 0xA5; // 찾음[본섭] (현재 미사용 by feel)
 public static final int S_MERCENARYARRANGE = 0xA9; // 선택한 용병 주기
 public static final int S_ATTACK = 0xAB; // 공격 표현 부분
 public static final int S_CLIENT_READY = 0xB2; // 찾음[본섭] (현재 미사용 by feel)
 public static final int S_PUT_OBJECT = 0xB3; // 오브젝트 그리기
 public static final int S_EXTENDED_PROTOBUF = 0xB4; // 종합 패킷
 public static final int S_EXTENDED_HYBRID = 0xB5; // 찾음[본섭] (현재 미사용 by feel)
 public static final int S_RETRIEVE_LIST = 0xB6; // 창고 리스트
 public static final int S_HYPERTEXT_INPUT = 0xB8; // 수량성 아이템 제작 갯수 [여관]
 public static final int S_WIELD = 0xBB; // 무기 착,탈 부분
 public static final int S_POLYMORPH = 0xBC; // 변신
 public static final int S_MANA_POINT = 0xBD; // MP 업데이트
 public static final int S_WORLD = 0xBE; // 찾음[본섭]
 public static final int S_SOUND_EFFECT = 0xC2; // 사운드 이팩트 부분[펫 호루라기로 찾기]
 public static final int S_MAIL_INFO = 0xC3; // 편지 읽기.
 public static final int S_EXCHANGEABLE_SPELL_LIST = 0xC6; // 호런 마법 배우기창
 public static final int S_ENTER_WORLD_CHECK = 0xC8; // 접속담당
 public static final int S_XCHG_START = 0xC9; // 거래창 부분
 public static final int S_TIME = 0xCA; // 게임 시간
 public static final int S_MATCH_MAKING = 0xCC; // 찾음[본섭] (현재 미사용 by feel)
 public static final int S_MERCENARYSELECT = 0xCE; // 고용한 용병을 배치
 public static final int S_LOGIN_CHECK = 0xCF; // 포탈이동시 날라오는
             // 패킷(호런동굴들어갈때)확실치않음
 public static final int S_PLEDGE = 0xD0; // 클랜 업데이트, 아무 혈맹이나 가입하기
 public static final int S_WANTED_LOGIN = 0xD1; // 피케이 횟수 메시지
 public static final int S_KICK = 0xD2; // 해당 케릭 강제 종료
 public static final int S_BUY_LIST = 0xD4; // 상점 구입 부분[BUY]
 public static final int S_EFFECT_LOC = 0xD5; // 트랩 (좌표위 이펙트) 포우 슬레이어로 따면 됨
 public static final int S_ARCHERARRANGE = 0xD7; // 찾음[본섭] (현재 미사용 by feel)
 public static final int S_DEPOSIT = 0xD8; // 공금 입금
 public static final int S_EXTENDED = 0xDB; // 아덴상점생존의 외침 등등
 public static final int S_CHANGE_ACCOUNTINFO_CHECK = 0xDD; // 찾음[본섭] (현재 미사용
                // by feel)
 public static final int S_CHANGE_COUNT = 0xDE; // 찾음[본섭] (현재 미사용 by feel)
 public static final int S_CHANGE_ABILITY = 0xE0; // 이반, 소반 인프라 사용
 public static final int S_DECREE = 0xE1; // 찾음[본섭] (현재 미사용 by feel)
 public static final int S_MAGIC_STATUS = 0xE5; // sp와 mr변경
 public static final int S_CHANGE_ITEM_BLESS = 0xE7; // 봉인 주문서, 봉인줌서 사서
              // 상아탑무기에 바르기
 public static final int S_NEWS = 0xE9; // 공지
 public static final int S_KEY = 0xEB; // 방향 전환 부분 [움직이는 엔피씨에 말걸어서 체크] (현재
           // 미사용 by feel)
 public static final int S_EMOTION = 0xED; // 용기
 public static final int S_MERCENARYEMPLOY = 0xF0; // 성 용병 고용 0612 - 안바낌
 public static final int S_ADD_INVENTORY = 0xF5; // 아이템 생성[아이템 떨궜다가먹기]
 public static final int S_PARALYSE = 0xF9; // 행동 제한 (커스패럴 상태) 사막 스콜피온한테 가서
            // 커스당하기
 public static final int S_REMOVE_OBJECT = 0xFA; // 오브젝트 삭제 (토글etc)
 public static final int S_NEW_ACCOUNT_CHECK = 0xFB; // 찾음[본섭] (현재 미사용 by
              // feel)
 public static final int S_SPEED = 0xFC; // 헤이스트
 public static final int S_MESSAGE_CODE = 0xFE; // 서버 메세지[방어구중복으로체크]
 public static final int S_BREATH = 0xFF; // 에바 아이콘


PacketHandler

case C_EXTENDED_PROTOBUF:  
   new C_ActionUi(abyte0, _client);   
   new C_Craft(abyte0, _client);
   new C_ServerVersion(abyte0, _client);
   break;




S_ServerVersion


/*
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 * 02111-1307, USA.
 *
 * http://www.gnu.org/copyleft/gpl.html
 */
package l1j.server.server.serverpackets;


import l1j.server.server.Opcodes;
import l1j.server.server.model.gametime.L1GameTimeClock;

    public class S_ServerVersion extends ServerBasePacket {
 private static final String S_SERVER_VERSION = "[S] ServerVersion";
 
 public S_ServerVersion(int version) {
  int time = L1GameTimeClock.getInstance().getGameTime().getSeconds();
  time = time - (time % 300);
  int uptime = (int) (System.currentTimeMillis() / 1000L);
  
  
  writeC(Opcodes.S_EXTENDED_PROTOBUF);
  writeH(821); // SERVER_VERSION
  writeC(0x08);
  writeBit(0);
  writeC(0x10);
  writeBit(0);
  writeC(0x18);
  writeBit(version);
  writeC(0x20);
  writeBit(version);
  writeC(0x28);
  writeBit(2015090301);
  writeC(0x30);
  writeBit(version);
  writeC(0x38);
  writeBit(time);
  writeC(0x40);
  writeBit(0);
  writeC(0x48);
  writeBit(0);
  writeC(0x50);
  writeBit(889191819);
  writeC(0x58);
  writeBit(uptime);
  writeC(0x60);
  writeBit(151112700);
  writeC(0x68);
  writeBit(161031701);
  writeC(0x70);
  writeBit(161111700);
  writeC(0x78);
  writeBit(1701031002);
  writeH(0x0180);
  writeBit(160531700);
  writeH(0x0188);
  writeBit(0);
  writeH(0); // dummy
  
//  /**0108**/
//  writeC(Opcodes.S_VERSION_CHECK);//6B 
//  writeC(0x00);
//  writeC(0x0c);
//  writeD(0x098b028c);
//  writeD(0x098b028c);
//  writeD(0x781bd67d); 
//  writeD(0x098b028c);
//  writeD(time);
//  writeC(0x00);
//  writeC(0x00);
//  writeC(0x00);
//  writeD(0x34fffd8b);
//  writeD(UPTIME);
//  writeD(0x0901cbfc);
//  writeD(0x08f5c5dd);
//  writeD(0x0903911c);

 }

 @Override
 public byte[] getContent() {
  return getBytes();
 }

 @Override
 public String getType() {
  return S_SERVER_VERSION;
 }
}



C_ServerVersion


/*
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 * 02111-1307, USA.
 *
 * http://www.gnu.org/copyleft/gpl.html
 */

package l1j.server.server.clientpackets;

import l1j.server.server.GameClient;
import l1j.server.server.serverpackets.S_ServerVersion;

// Referenced classes of package l1j.server.server.clientpackets:
// ClientBasePacket

public class C_ServerVersion extends ClientBasePacket {

 @SuppressWarnings("unused")
 private static final String C_SERVER_VERSION = "[C] C_ServerVersion";
 private static final int C_SERVERVERSION = 0X34;

 public C_ServerVersion(byte decrypt[], GameClient client) throws Exception {
  super(decrypt);
  if (client == null) {
   return;
  }
  int type = readC(); // 1바이트
  if (type != C_SERVERVERSION) { // 서버저전이 아니라면
   return;
  }
  switch (type) {

  case C_SERVERVERSION:
   client.packetvirsion = true;
   readC(); // 0x03
   readC(); // 0x13
   readBit(); // 0x00
   readC(); // 0x08
   readBit(); // 0x34
   readC(); // 0x10
   readBit(); // 949
   readC(); // 0x18
   readBit(); // 가변

   readC(); // 0x20
   int version = readBit();

   client.CharReStart(false);
   client.sendPacket(new S_ServerVersion(version));
   break;
  }
 }
}

 

 

[감자]

Opcodes


public class Opcodes {

 public Opcodes() {
 }
 
 public static final int C_PLATE = 0x01; // 게시판 클릭
 public static final int C_LOGIN_TEST = 0x04; // 찾음[본섭]  (현재 미사용 by feel)
 public static final int C_CHANGE_ACCOUNTINFO = 0x05; // CALL버튼 .감시  (현재 미사용 by feel)
 public static final int C_BLINK = 0x08; // 찾음[본섭]  (현재 미사용 by feel)
 public static final int C_BUYABLE_SPELL = 0x0B; // 스킬 구입 리스트
 public static final int C_HYPERTEXT_INPUT_RESULT = 0x0C; // 수량성 아이템 제작 갯수
 public static final int C_ADD_BUDDY = 0x0D; // 친구추가
 public static final int C_WITHDRAW = 0x0E; // 공금 출금[자금을 인출한다]
 public static final int C_TELL = 0x11; // 찾음[본섭]
 public static final int C_ACCEPT_XCHG = 0x12; // 교환 OK
 public static final int C_READ_NOTICE = 0x16; // 로그인 후 패킷
 public static final int C_HACTION = 0x17; // Npc 대화 액션 부분
 public static final int C_EXCHANGEABLE_SPELL = 0x18; // 호런 마법 리스트
 public static final int C_USE_SPELL = 0x19; // 스킬 사용 부분
 public static final int C_ATTACK = 0x1A; // 일반공격 부분
 public static final int C_UPLOAD_EMBLEM = 0x1C; // 문장데이타를 서버에 요청함
 public static final int C_MERCENARYSELECT = 0x20; // 찾음[본섭]  (현재 미사용 by feel)
 public static final int C_USE_ITEM = 0x21; // 아이템 사용 부분
 public static final int C_LEAVE_PLEDGE = 0x22; // 혈맹 탈퇴
 public static final int C_RANK_CONTROL = 0x24; // [계급]
 public static final int C_BOOKMARK = 0x28; // [기억 OO]
 public static final int C_MOVE = 0x29; // 이동요청 부분
 public static final int C_SAY = 0x2A; // 찾음[본섭]
 public static final int C_WHO_PLEDGE = 0x2B; // [혈맹]
 public static final int C_MERCENARYARRANGE = 0x2D; // 찾음[본섭]  (현재 미사용 by feel)
 public static final int C_MONITOR_CONTROL = 0x2E; // 찾음[본섭]  (현재 미사용 by feel)
 public static final int C_SLAVE_CONTROL = 0x30; // 펫 공격 목표 지정
 public static final int C_SAVEIO = 0x31; // 캐릭인벤슬롯정보
 public static final int C_WANTED = 0x32; // 찾음[본섭]  (현재 미사용 by feel)
 public static final int C_EXCLUDE = 0x33; // [/차단]
 public static final int C_DROP = 0x34; // 아이템 떨구기
 public static final int C_ALIVE = 0x35; // 1분마다 한번씩 옴
 public static final int C_BUILDER_CONTROL = 0x36; // 찾음[본섭]  (현재 미사용 by feel)
 public static final int C_SELECT_TIME = 0x3A; // 찾음[본섭]  (현재 미사용 by feel)
 public static final int C_INCLUDE = 0x3B; // [포함]  (현재 미사용 by feel)
 public static final int C_PERSONAL_SHOP = 0x3C; // [상점 -> OK]
 public static final int C_DELETE_CHARACTER = 0x3D; // 케릭터 삭제
 public static final int C_SHUTDOWN = 0x3F; // 혈맹창 공지, 메모
 public static final int C_WHO = 0x42; // [누구]
 public static final int C_VERSION = 0x46; // v 클라 서버 버전 (현재 미사용 by feel)
 public static final int C_WHO_PARTY = 0x47; // 찾음[본섭]
 public static final int C_LOGIN_RESULT = 0x4C; // 찾음[본섭]  (현재 미사용 by feel)
 public static final int C_RETURN_SUMMON = 0x4D; // 텔레포트 사용
 public static final int C_QUERY_PERSONAL_SHOP = 0x4E; // 개인상점 buy, sell
 public static final int C_EXTENDED_PROTOBUF = 0x51; // 종합 패킷
 public static final int C_BAN = 0x52; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_CANCEL_XCHG = 0x53; // 교환 취소
 public static final int C_NPC_ITEM_CONTROL = 0x54; // 펫 인벤토리 아이템 사용
 public static final int C_LEAVE_PARTY = 0x55; // 파티 탈퇴
 public static final int C_GOTO_MAP = 0x59; // 찾음[본섭]
 public static final int C_ADD_XCHG = 0x5B; // 교환창에 아이템 추가
 public static final int C_WAREHOUSE_CONTROL = 0x61; // 창고 비번.
 public static final int C_MARRIAGE = 0x62; // [청혼]
 public static final int C_CHANNEL = 0x63; // 불량 유저 신고(신고)
 public static final int C_CONTROL_WEATHER = 0x64; // 찾음[본섭]  (현재 미사용 by feel)
 public static final int C_GET = 0x65; // 아이템 줍기.
 public static final int C_CREATE_CUSTOM_CHARACTER = 0x67; // 케릭 생성
 public static final int C_TELEPORT = 0x69; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_KICK = 0x6A; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_ADDR = 0x6B; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_DEAD_RESTART = 0x6D; // 겜중에 죽어서 리셋 눌럿을때
 public static final int C_QUERY_CASTLE_SECURITY = 0x6E; // 성내 치안관리
 public static final int C_GIVE = 0x72; // 강제로 아이템 주기
 public static final int C_CHAT = 0x73; // 매크로 체팅 by feel
 public static final int C_MERCENARYNAME = 0x74; // 찾음[본섭]  (현재 미사용 by feel)
 public static final int C_FIX = 0x78; // 무기수리, 펫인출
 public static final int C_QUERY_BUDDY = 0x7A; // 친구리스트
 public static final int C_FAR_ATTACK = 0x7B; // 활공격 부분
 public static final int C_CHANGE_PASSWORD = 0x7C; // 찾음[본섭] (사용안함_by feel )
 public static final int C_TELEPORT_USER = 0x7D; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_CHANGE_DIRECTION = 0x80; //
 public static final int C_NEW_ACCOUNT = 0x82; // 찾음[본섭] (사용안함_by feel )
 public static final int C_SELECTABLE_TIME = 0x85; // 찾음[본섭]  (현재 미사용 by feel)
 public static final int C_WISH = 0x86; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_EXTENDED = 0x89; // 아덴상점 아이콘 클릭, 부가 아이템, 혈맹창
 public static final int C_READ_NEWS = 0x8B; // 공지사항 확인 눌럿을때
 public static final int C_OPEN = 0x8E; // 문짝 클릭 부분.
 public static final int C_DUEL = 0x90; // [결투]
 public static final int C_ASK_XCHG = 0x91; // [교환]
 public static final int C_REGISTER_QUIZ = 0x93; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_FIXABLE_ITEM = 0x96; // 무기수리리스트
 public static final int C_CHECK_PK = 0x97; // [checkpk]
 public static final int C_SERVER_SELECT = 0x99; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_EXTENDED_HYBRID = 0x9A; // 찾음[본섭]  (현재 미사용 by feel)
 public static final int C_TITLE = 0x9B; // 호칭 명령어
 public static final int C_ARCHERARRANGE = 0x9C; // 찾음[본섭]  (현재 미사용 by feel)
 public static final int C_DELETE_BOOKMARK = 0x9D; // [기억 후 기억목록클릭 delete]
 public static final int C_QUIT = 0xA0; // 0x51 종료
 public static final int C_BOARD_READ = 0xA2; // 게시판 읽기
 public static final int C_MERCENARYEMPLOY = 0xA4; // 용병구매
 public static final int C_EMBLEM = 0xA7; // 가시범위의 혈맹 마크 요청[폴더내 emblem삭제]
 public static final int C_ALT_ATTACK = 0xA8; // 찾음[본섭]  (현재 미사용 by feel)
 public static final int C_ENTER_SHIP = 0xAB; // 찾음[본섭]  (현재 미사용 by feel)
 public static final int C_INVITE_PARTY = 0xAC; // 찾음[본섭]  (현재 미사용 by feel)
 public static final int C_REMOVE_BUDDY = 0xAD; // 친구삭제
 public static final int C_EXCHANGE_SPELL = 0xAE; // 호런 마법목록에서 OK누르기
 public static final int C_BANISH_PARTY = 0xAF; // 파티 추방
 public static final int C_LOGOUT = 0xB0; // 다시 로긴창으로 넘어갈때
 public static final int C_SHIFT_SERVER = 0xB3; // 찾음[본섭] (사용안함_by feel )
 public static final int C_BOOK = 0xB7; // 찾음[본섭]  (현재 미사용 by feel)
 public static final int C_INVITE_PARTY_TARGET = 0xB9; // 파티 초대
 public static final int C_BOARD_DELETE = 0xBE; // 게시판 게시글 삭제
 public static final int C_EXIT_GHOST = 0xC0; // 무한대전 관람모드 탈출  (현재 미사용 by feel)
 public static final int C_MATCH_MAKING = 0xC5; // 찾음[본섭]  (현재 미사용 by feel)
 public static final int C_CHECK_INVENTORY = 0xC6; // 펫 인벤토리[펫 메뉴]
 public static final int C_ENTER_PORTAL = 0xC7; // (ENTER_PORTAL)
 public static final int C_THROW = 0xC8; // 낚시 종료
 public static final int C_SILENCE = 0xC9; // 찾음[본섭] (현재 미사용 by feel)
 public static final int C_GOTO_PORTAL = 0xCB; // 오른쪽 버튼으로 포탈 진입 확실치 않음
 public static final int C_WAR = 0xCE; // 전쟁
 public static final int C_BOARD_WRITE = 0xCF; // 게시판 쓰기
 public static final int C_VOICE_CHAT = 0xD0; // 스텟 초기화.
 public static final int C_JOIN_PLEDGE = 0xD1; // [가입]
 public static final int C_TAX = 0xD4; // 세금 조정
 public static final int C_SMS = 0xD6; // 문자    찾음[본섭]  (현재 미사용 by feel)
 public static final int C_BUY_SELL = 0xD7; // 상점 결과 처리
 public static final int C_ONOFF = 0xD8; // [환경설정->전챗켬,끔].
 public static final int C_DEPOSIT = 0xD9; // 성 공금 입금
 public static final int C_REQUEST_ROLL = 0xDA; // 찾음[본섭]  (현재 미사용 by feel)
 public static final int C_START_CASTING = 0xDC; // 찾음[본섭]  (현재 미사용 by feel)
 public static final int C_BOARD_LIST = 0xDD; // 게시판 next
 public static final int C_MAIL = 0xDF; // 편지 읽기
 public static final int C_PLEDGE_WATCH = 0xE2; // 문장 주시 혈맹 목록
 public static final int C_RESTART = 0xE4; // 겜중에 리스창으로 빠짐. [ C_CHARACTERCONFIG 다음에 날라옴 ]
 public static final int C_SUMMON = 0xE5; // CALL버튼 .감시
 public static final int C_CHAT_PARTY_CONTROL = 0xE7; // 채팅파티채팅초대
 public static final int C_CLIENT_READY = 0xE8; // 찾음[본섭]  (현재 미사용 by feel)
 public static final int C_LOGIN = 0xE9; // v 계정정보가 담긴 패킷
 public static final int C_ENTER_WORLD = 0xEC; // 리스창에서 케릭 선택
 public static final int C_ATTACK_CONTINUE = 0xED; // 자동칼질
 public static final int C_CREATE_PLEDGE = 0xF4; // 혈맹 창설
 public static final int C_BAN_MEMBER = 0xF5; // 혈맹 추방 명령어
 public static final int C_ACTION = 0xF6; // <알트+1 ~ 5 까지 액션 >
 public static final int C_CHANGE_CASTLE_SECURITY = 0xF7; // 성내 치안 관리
 public static final int C_ANSWER = 0xF8; // [ Y , N ] 선택 부분
 public static final int C_DESTROY_ITEM = 0xFA; // 휴지통에 아이템 삭제
 public static final int C_SAVE = 0xFB; // 무기수리 완료 - 예측  (현재 미사용 by feel)
 public static final int C_DIALOG = 0xFC; // Npc와 대화부분
 public static final int C_BUY_SPELL = 0xFD; // 스킬 구입 OK

3 Comments
울티마 2017.12.31 23:17  
감자는 게시글이 짤려네요 ㅋㅋ

Congratulation! You win the 13 Lucky Point!

투혼v 01.03 00:04  
감자 글만 따로 올려주심 안되요?
감사합니다