diff --git a/doc/packet_interserv.txt b/doc/packet_interserv.txt index c1e83acdf6..ce393ecac4 100644 --- a/doc/packet_interserv.txt +++ b/doc/packet_interserv.txt @@ -101,14 +101,14 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. Type: AH Structure: .W .L .40B .L .B .B .11B .5B .L .L .B .B .B index: 0,2,6,46,50,51,52,63,68,72,76,77,78 - len: 79 + len: 79 parameter: - cmd: packet identification (0x2717) - aid: account identification - email: email of aid - expiration_time: unknow @FIXME - group_id: the group the aid belong too - - char_slots: number of slot available the account have (will be displayed on client) + - char_slots: number of slot available the account have (will be displayed on client) - birthdate: birthdate of aid - pincode: current pincode of aid - pincode_change: new pincode of aid @@ -118,7 +118,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - MAX_CHAR_BILLING: number of charslort that are for billing desc: - Request account data - + 0x2718 Type: AH Structure: .W @@ -158,7 +158,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. 0x2723: Type: AH - Structure: .W L B + Structure: .W .L .B index: 0,2,6 len: 7 parameter: @@ -168,12 +168,12 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. 0 = SEX_FEMALE 1= SEX_MALE 2=SEX_SERVER - desc: + desc: - Acknowledge sex update - + 0x2724: Type: HA - Structure: .W .L L + Structure: .W .L .L index: 0,2,6 len: 10 parameter: @@ -184,7 +184,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - 5 : block (Connection refused) desc: - Receiving an account state update request from a map-server (relayed via char-server) - + 0x2725: Type: HA Structure: .W .L .L @@ -213,7 +213,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. 0x2728: Type: HA - Structure: .W .W L .L { .?B .?B } + Structure: .W .W .L .L { .?B .?B } index: 0,2,4,8,13 len: variable (reg size+4) parameter: @@ -225,11 +225,11 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - value : value of varaible in registry desc: - Receive an request to fetch account_reg2 from a char-server, see packet 0x3004 (mapif_parse_Registry) - + 0x2729: Type: AH - Structure: .W .L .L .L .B { ?B ?B } + Structure: .W .L .L .L .B { .?B .?B } index: 0,2,4,8,12,13 len: variable (reg2 size+13) parameter: @@ -238,7 +238,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - aid: account identification - cid : char identification -type: - -type: + -type: 1: account2 registry (only one used atm) 2: account registry 3: char registry @@ -246,7 +246,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - value : value of varaible in registry desc: - Receive account_reg2 registry, forward to map servers. - + 0x272a: Type: HA Structure: .W .L @@ -255,9 +255,9 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. parameter: - cmd : packet identification (0x272a) - t_aid: account identification - desc: - - request unban account - + desc: + - request unban account + 0x272b: Type: HA @@ -267,7 +267,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. parameter: - cmd : packet identification (0x272b) - t_aid: account identification - desc: + desc: - Add aid to list of online user on loginserv (setacconline). 0x272c: @@ -278,12 +278,12 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. parameter: - cmd : packet identification (0x272c) - t_aid: account identification - desc: + desc: - Remove aid to the list of online user (setaccoffline). 0x272d: Type: HA - Structure: .W W L {.L}* + Structure: .W .W .L {.L}* index: 0,2,4,8 len: 8+users*4 parameter: @@ -293,10 +293,10 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - aid: account identification desc: - receive account list from char-server - + 0x272e: Type: HA - Structure: .W .L .L + Structure: .W .L .L index: 0,2,4,6 len: 10 parameter: @@ -312,7 +312,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. 0x2731: Type: AH - Structure: .W L B .L + Structure: .W .L .B .L index: 0,2,6,7 len: 11 parameter: @@ -326,10 +326,10 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. 0x2732: 0x2733: free - + 0x2734: Type: AH - Structure: .W L + Structure: .W .L index: 0,2, len: 6 parameter: @@ -337,7 +337,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - aid: account identification desc: - Account is already marked as online. (Login server request to kick a character out). - + 0x2735: Type: AH Structure: .W @@ -350,7 +350,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. 0x2736: Type: HA - Structure: .W L + Structure: .W .L index: 0,2 len: 6 parameter: @@ -358,7 +358,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - ip: ip of char server desc: - IP update for char-server - + 0x2737: Type: HA Structure: .W @@ -368,12 +368,12 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - cmd : packet identification (0x2737) desc: - Request to set all account as offline from char-server - + 0x2738: Type: HA - Structure: .W L ?B + Structure: .W .L .?B index: 0,2,6 - len: 11 @FIXME should be 6+PINCODE_LENGTH+1 + len: variable: 11+PINCODE_LENGTH+1 parameter: - cmd : packet identification (0x2738) - aid : account identification @@ -383,7 +383,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. 0x2739: Type: HA - Structure: .W L + Structure: .W .L index: 0,2 len: 6 parameter: @@ -421,11 +421,11 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. parameter: - cmd : packet identification (0x2741) - aid : account identification - - type : 1=select, 2=upd and save + - type : 1=select, 2=upd and save - data : new bank vault desc: - Request the bank info of login - + 0x2742: Type: HA Structure: .W .L .B .L .L @@ -437,7 +437,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - type: &1 ack vip data to char-serv, &2 add duration - timediff: tick to add to viptime - mapfd: map-serv link to ack if type&1 - desc: + desc: - Received a VIP data request from char 0x2743: @@ -462,7 +462,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. 0x3000 Type: ZI - Structure: .W W L W W W W ?B + Structure: .W .W .L .W .W .W .W .?B index: 0,2,4,8,10,12,14,16 len: 16+msglen parameter: @@ -477,12 +477,12 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. desc: - Broadcasts a message to all map-servs connected to this char-serv - NB carefull (also using cmd=3000 rAthena_report but encapsulate it into cmd 3008 for map-char) - - + + 0x3001 Type: ZI - Structure: .W W (NAME_LENGTH)B (NAME_LENGTH)B ?B - index: 0,2,4,4+NAME_LENGTH,4+2*NAME_LENGTH + Structure: .W .W (NAME_LENGTH)B (NAME_LENGTH)B .?B + index: 0,2,4,4+NAME_LENGTH,4+2*NAME_LENGTH len: 52+mes_len parameter: - cmd : packet identification (0x3001) @@ -492,7 +492,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - mes : message to send desc: - Send a whisper to another player - + 0x3002 Type: ZI Structure: .W < @@ -500,34 +500,35 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. len: 7 parameter: - cmd : packet identification (0x3002) - - id: cid (@FIXME of who ?) + - id: whisper id, identifier to match current whisper session that store in inter.c::wis_db - flag: 0=success, 1=target not found, 2=ignored by target desc: - Inform the char-serv of the result of the whisper - + 0x3003 Type: ZI - Structure: .W .w .24B .l .?B - index: - len: 32+mes_len + Structure: .W .W .?B .L .?B + index: 0,2,4,4+NAME_LENGTH,8+NAME_LENGTH + len: variable: mes_len + 8 + NAME_LENGTH parameter: - cmd : packet identification (0x3003) - - len: 32+mes_len - - wisp_name+permission - - mes_len + - packet_len: mes_len + 8 + NAME_LENGTH + - wisp_name + - permission + - message desc: - Transmission of GM only Wisp/Page from server to inter-server - + 0x3004 Type: ZI - Structure: .W .L .L .B { ?B ?B }? + Structure: .W .L .L .B { .?B .?B }? index: 0,4,8,12,13 len: variable : 13+regnum*(len variable name+len value) (max=288 * MAX_REG_NUM+13) parameter: - cmd : packet identification (0x3004) - aid: account identification - cid: char identification - -type: + -type: 1: account2 registry 2: account registry 3: char registry @@ -535,7 +536,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. -value: variable value desc: - Map-serv is requesting Char-serv to save registry values. (type=1 will forward data to login-serv) - + 0x3005 Type: ZI Structure: .W .L .L .B .B .B @@ -550,7 +551,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. -ch_reg : request char registry (permanent variable of char) desc: - Request the registries for this player. - + 0x3006 Type: ZI Structure: .W .L .L .B .? @@ -563,7 +564,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - type - NAME_LENGTH desc - + 0x3007 Type: ZI Structure: .W .L .L .L @@ -577,7 +578,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - query desc: - Request acc info - + 0x3018 Type: ZI Structure: .W .L .L @@ -589,7 +590,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - gid desc: - Request guild storage - + 0x3019 Type: ZI Structure: .W .W .L .L @@ -602,7 +603,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - gid desc: - Send guild storage - + 0x3020 Type: ZI Structure: .W .W .24B .B .B .?B @@ -617,7 +618,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - member desc: - Party creation request - + 0x3021 Type: ZI Structure: .W .L .L @@ -629,7 +630,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - cid desc: - Party information request - + 0x3022 Type: ZI Structure: .W .W .L .?B @@ -642,7 +643,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - member desc: - Request to add a member to party - + 0x3023 Type: ZI Structure: .W .L .L .W .W @@ -656,7 +657,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - item desc: - Request to change party configuration (exp,item share) - + 0x3024 Type: ZI Structure: .W .L .L .L @@ -669,7 +670,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - cid desc: - Request to leave party - + 0x3025 Type: ZI Structure: .W .L .L .L .W .B .W @@ -685,7 +686,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - base_level desc: - Party change map - + 0x3026 Type: ZI Structure: .W .L @@ -696,7 +697,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - party_id desc: - Request breaking party - + 0x3027 Type: ZI Structure: .W .W .L .L .?B @@ -710,7 +711,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - mes desc: - Sending party chat - + 0x3029 Type: ZI Structure: .W .L .L .L @@ -723,7 +724,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - cid desc: - Request a new leader for party - + 0x302A Type: ZI Structure: .W .L @@ -734,7 +735,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - share_lvl desc: - Request to update party share level - + 0x3030 Type: ZI Structure: .W .W .L .?B .?B @@ -748,7 +749,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - master desc: - Request a Guild creation - + 0x3031 Type: ZI Structure: .W .L @@ -759,7 +760,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - guild_id desc: - Request Guild information - + 0x3032 Type: ZI Structure: .W .W .L .?B @@ -769,7 +770,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - cmd : packet identification (0x3032) desc: - Request to add member to the guild - + 0x3033 Type: ZI Structure: .W .W .L .?B @@ -782,7 +783,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - name desc: - Request a new leader for guild - + 0x3034 Type: ZI Structure: .W .L .L .L .B .40B @@ -797,7 +798,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - mes desc: - Request to leave guild - + 0x3035 Type: ZI Structure: .W .L .L .L .B .W .W @@ -813,7 +814,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - class_ desc: - Update request / Lv online status of the guild members - + 0x3036 Type: ZI Structure: .W .L @@ -824,7 +825,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - guild_id desc: - Guild disbanded notification - + 0x3037 Type: ZI Structure: .W .W .L .L .?B @@ -838,7 +839,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - mes desc: - Send a guild message - + 0x3039 Type: ZI Structure: .W .W .L .W .?B @@ -852,7 +853,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - data desc: - Request a change of Guild basic information - + 0x303a Type: ZI Structure: .W .W .L .L .L .W .?B @@ -868,7 +869,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - data desc: - Request a change of Guild member information - + 0x303b Type: ZI Structure: .W .W .L .L

.?B @@ -882,7 +883,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - p desc: - Request a change of Guild title - + 0x303c Type: ZI Structure: .W .L .L .L .L @@ -896,7 +897,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - max desc: - Request an update of Guildskill skill_id - + 0x303d Type: ZI Structure: .W .L .L .L .L .B @@ -911,7 +912,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - flag desc: - Request a new guild alliance - + 0x303e Type: ZI Structure: .W .L .60B .120B @@ -924,7 +925,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - mes2 desc: - Request to change guild notice - + 0x303f Type: ZI Structure: .W .W .L <0>.L .?B @@ -934,7 +935,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - cmd : packet identification (0x303f) desc: - Request to change guild emblem - + 0x3040 Type: ZI Structure: .W .W .?B @@ -946,7 +947,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - castle_ids desc: - Requests guild castles data from char-server - + 0x3041 Type: ZI Structure: .W .W .B .L @@ -959,7 +960,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - value desc: - Request change castle guild owner and save data - + 0x3048 Type: ZI Structure: .W .L .B @@ -971,7 +972,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - flag desc: - Inbox request - + 0x3049 Type: ZI Structure: .W .L @@ -982,7 +983,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - mail_id desc: - Mail read - + 0x304a Type: ZI Structure: .W .L .L @@ -994,7 +995,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - mail_id desc: - Mail get attachment - + 0x304b Type: ZI Structure: .W .L .L @@ -1006,7 +1007,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - mail_id desc: - Mail delete - + 0x304c Type: ZI Structure: .W .L .L @@ -1018,7 +1019,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - mail_id desc: - Mail return - + 0x304d Type: ZI Structure: .W .W .L .?B @@ -1031,7 +1032,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - msg desc: - Mail send - + 0x3050 Type: ZI Structure: .W .W .L .W .L .W .?B @@ -1047,19 +1048,19 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - searchtext desc: - Auction request list - + 0x3051 Type: ZI - Structure: .W .W .?B @FIXME + Structure: .W .W .?B index: 0,2,4 - len: variable: 4+auction + len: variable: 4+auction_data parameter: - cmd : packet identification (0x3093) - len - - auction + - auction_data desc: - Auction register - + 0x3052 Type: ZI Structure: .W .L .L @@ -1071,7 +1072,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - auction_id desc: - Auction cancel - + 0x3053 Type: ZI Structure: .W .L .L @@ -1083,7 +1084,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - auction_id desc: - Auction close - + 0x3055 Type: ZI Structure: .W .W .L .L .L .?B @@ -1097,7 +1098,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - bid desc: - Auction bid - + 0x3056 Type: ZI Structure: .W .L .L .W @@ -1110,7 +1111,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - guild_id desc: - Itembound request - + 0x3060 Type: ZI Structure: .W .L @@ -1121,7 +1122,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - cid desc: - Requests a character's quest log entries to the inter server. - + 0x3061 Type: ZI Structure: .W .W .L .?B @@ -1143,7 +1144,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - merc desc: - Mercenary create - + 0x3071 Type: ZI Structure: .W .L .L @@ -1155,7 +1156,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - cid desc: - Mercenary request - + 0x3072 Type: ZI Structure: .W .L @@ -1166,7 +1167,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - merc_id desc: - Mercenary delete - + 0x3073 Type: ZI Structure: .W .W .?B @@ -1178,7 +1179,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - merc desc: - Mercenary save - + 0x307c Type: ZI Structure: .W .W .?B @@ -1190,7 +1191,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - ele desc: - Elemental create - + 0x307d Type: ZI Structure: .W .L .L @@ -1202,7 +1203,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - cid desc: - Elemental request - + 0x307e Type: ZI Structure: .W .L @@ -1213,7 +1214,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - ele_id desc: - Elemental delete - + 0x307f Type: ZI Structure: .W .W .?B @@ -1245,7 +1246,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - incubate desc: - Pet create - + 0x3081 Type: ZI Structure: .W .L .L .L @@ -1258,20 +1259,20 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - pet_id desc: - Request pet data - + 0x3082 Type: ZI - Structure: .W .W .L

.?B @FIXME + Structure: .W .W .L .?B index: 0,2,4,8 len: variable: 8+s_pet parameter: - cmd : packet identification (0x3082) - - ? + - size - aid - - p + - s_pet: Pet data desc: - Save pet data - + 0x3083 Type: ZI Structure: .W .L @@ -1295,7 +1296,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - sh desc: - Homunculus create - + 0x3091: Type: ZI Structure: .W .L .L @@ -1320,7 +1321,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - sh desc: - Homunculus request save - + 0x3093: Type: ZI Structure: .W .L @@ -1331,7 +1332,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - homun_id desc: - Homunculus request delete - + 0x3094: Type: ZI Structure: .W .L .L .?B @@ -1378,7 +1379,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - msg desc: - Send whisper message - + 0x3802 Type: IZ Structure: .W .24B .B @@ -1390,18 +1391,21 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - flag desc: - Whisper sending result - + 0x3803 Type: IZ - Structure: .W .W .24B .W .?B @FIXME - index: 0,2 - len: variable: 30+message + Structure: .W .W .?B .L .?B + index: 0,2,4,4+NAME_LENGTH,8+NAME_LENGTH + len: variable: mes_len + 8 + NAME_LENGTH parameter: - - cmd : packet identification (0x3803) - - + - cmd : packet identification (0x3003) + - packet_len: mes_len + 8 + NAME_LENGTH + - wisp_name + - permission + - message desc: - Parse whisper to GM - + 0x3804 Type: IZ Structure: .W .W .L .L .B @@ -1415,7 +1419,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - type desc: - Account registry transfer to map-server - + 0x3806 Type: IZ Structure: .W .L .L .B .B .B @@ -1430,7 +1434,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - name desc: - mapif_namechange_ack - + 0x3807 Type: IZ Structure: .W .W .L .L .?B @@ -1444,7 +1448,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - msg_out desc: - sends a mesasge to map server (fd) to a user (u_fd) although we use fd we keep aid for safe-check - + 0x3818 Type: IZ Structure: .W .W .L .L .B .?B @@ -1459,7 +1463,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - guild_storage desc: - mapif_load_guild_storage - + 0x3819 Type: IZ Structure: .W .L .L .B @@ -1472,7 +1476,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - fail desc: - mapif_save_guild_storage_ack - + 0x3820 Type: IZ Structure: .W .L .L .B .L .?B @@ -1487,7 +1491,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - name desc: - ACK party creation - + 0x3821 Type: IZ Structure: .W .W .L .L @@ -1500,7 +1504,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - party_id desc: - Party information not found - + 0x3822 Type: IZ Structure: .W .L .L .L .B @@ -1514,7 +1518,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - flag desc: - mapif_party_memberadded - + 0x3823 Type: IZ Structure: .W .L .L .W .W .B @@ -1530,7 +1534,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - ? desc: - Party setting change notification - + 0x3824 Type: IZ Structure: .W .L .L .L .?B @@ -1544,7 +1548,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - ? desc: - Withdrawal notification party - + 0x3825 Type: IZ Structure: .W .L .L .L .W .B .W .?B @@ -1561,7 +1565,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - ? desc: - Party map update notification - + 0x3826 Type: IZ Structure: .W .L .B .?B @@ -1574,7 +1578,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - ? desc: - Dissolution party notification - + 0x3827 Type: IZ Structure: .W .W .L .L .?B @@ -1588,7 +1592,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - mes desc: - mapif_party_message - + 0x3830 Type: IZ Structure: .W .L .L @@ -1600,7 +1604,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - guild_id desc: - mapif_guild_created - + 0x3831 Type: IZ Structure: .W .W .L .?B @@ -1613,7 +1617,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - ? desc: - mapif_guild_noinfo - + 0x3832 Type: IZ Structure: .W .L .L .L .B @@ -1627,7 +1631,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - flag desc: - ACK member add - + 0x3834 Type: IZ Structure: .W .L .L .L .B .40B .?B @@ -1643,7 +1647,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - name desc: - mapif_guild_withdraw - + 0x3835 Type: IZ Structure: .W .L .L .L .B .W .W @@ -1659,7 +1663,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - class_ desc: - Send short guild member's info - + 0x3836 Type: IZ Structure: .W .L .B @@ -1671,7 +1675,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - flag desc: - mapif_guild_broken - + 0x3837 Type: IZ Structure: .W .W .L .L .?B @@ -1685,7 +1689,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - mes desc: - Send guild message - + 0x3839 Type: IZ Structure: .W .W .L .W .?B @@ -1699,7 +1703,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - data desc: - mapif_guild_basicinfochanged - + 0x383a Type: IZ Structure: .W .W .L .L .L .W .?B @@ -1715,7 +1719,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - data desc: - mapif_guild_memberinfochanged - + 0x383b Type: IZ Structure: .W .W .L .L .?B @@ -1729,7 +1733,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - position desc: - mapif_guild_position - + 0x383c Type: IZ Structure: .W .L .L .L @@ -1742,7 +1746,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - account_id desc: - ACK guild skill up - + 0x383d Type: IZ Structure: .W .L .L .L .L .B .?B .?B @@ -1756,7 +1760,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - account_id2 desc: - ACK guild alliance - + 0x383e Type: IZ Structure: .W .L .60B .120B .?B @@ -1770,7 +1774,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - ? desc: - Send the guild notice - + 0x383f Type: IZ Structure: .W .W .L .L .?B @@ -1784,7 +1788,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - emblem_data desc: - Send emblem data - + 0x3840 Type: IZ Structure: .W .W .?B @@ -1796,7 +1800,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - gc desc: - mapif_guild_castle_dataload - + 0x3843 Type: IZ Structure: .W .L .L .L @@ -1810,6 +1814,288 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. desc: - mapif_guild_master_changed +0x3848 + Type: IZ + Structure: .W .W .L .B .?B + index: 0,2,4,8,9 + len: variable: 9+md + parameter: + - cmd : packet identification (0x3848) + - size + - char_id + - flag + - md : Mail + desc: + - A player request for mail inbox + +0x3849 + Type: IZ + Structure: .W .L .L .24B .40B + index: 0,2,6,10,34 + len: 74 + parameter: + - cmd : packet identification (0x3849) + - dest_id + - sender_id + - sender_name + - mail_title + desc: + - Report New Mail to Map Server + +0x384a + Type: IZ + Structure: .W .W .L .L .?B + index: 0,2,4,8,12 + len: variable: 12+item + parameter: + - cmd : packet identification (0x384a) + - size + - char_id + - zeny + - item + desc: + - Get mail attachment + +0x384b + Type: IZ + Structure: .W .L .L .B + index: 0,2,6,10,11 + len: 11 + parameter: + - cmd : packet identification (0x384b) + - char_id + - mail_id + - failed: Fail status when delete a mail + desc: + - Status about mail deletion to player + +0x384c + Type: IZ + Structure: .W .L .L .B + index: 0,2,6,10,11 + len: 11 + parameter: + - cmd : packet identification (0x384c) + - char_id + - mail_id + - new_mail + desc: + - Received a returned mail + +0x384d + Type: IZ + Structure: .W .W .?B + index: 0,2,4 + len: variable: 4+mail_message + parameter: + - cmd : packet identification (0x384d) + - size + - mail_message + desc: + - Mail sent status (to player if the sender is player and online) + +0x3850 + Type: IZ + Structure: .W .W .L .W .W .?B + index: 0,2,4,8,10,12 + len: variable: 12+auction_data + parameter: + - cmd : packet identification (0x3850) + - size + - char_id + - count + - pages + - auction_data + desc: + - Auction list + +0x3851 + Type: IZ + Structure: .W .W .?B + index: 0,2,4 + len: variable: 4+auction_data + parameter: + - cmd : packet identification (0x3851) + - size + - auction_data + desc: + - Status auction registration + +0x3852 + Type: IZ + Structure: .W .L .B + index: 0,2,6 + len: 7 + parameter: + - cmd : packet identification (0x3852) + - char_id + - result + desc: + - Cancel an auction that requested by player + +0x3853 + Type: IZ + Structure: .W .L .B + index: 0,2,6 + len: 7 + parameter: + - cmd : packet identification (0x3853) + - char_id + - result + desc: + - Receive a notification that the auction has ended + +0x3855 + Type: IZ + Structure: .W .L .L .B + index: 0,2,6,10 + len: 11 + parameter: + - cmd : packet identification (0x3855) + - char_id + - bid + - result + desc: + - Get back the money from biding auction (someone else have bid it over) + +0x3856 + Type: IZ + Structure: .W .L .W + index: 0,2,6 + len: 8 + parameter: + - cmd : packet identification (0x3856) + - aid : account_id + - guild_id + desc: + - Acknowledge the good deletion of the bound item + +0x3860 + Type: IZ + Structure: .W .W .L .?B + index: 0,2,4,8 + len: variable: 8+quest + parameter: + - cmd : packet identification (0x3860) + - size + - char_id + - quest + desc: + - Send quest log to a player + +0x3861 + Type: IZ + Structure: .W .L .B + index: 0,2,4 + len: 5 + parameter: + - cmd : packet identification (0x3861) + - char_id + - success + desc: + - Send quest log saving status + +0x3880 + Type: IZ + Structure: .W .L .W .L + index: 0,2,6,8 + len: 12 + parameter: + - cmd : packet identification (0x3880) + - account_id + - class + - pet_id + desc: + - Send pet egg creation status + +0x3881 + Type: IZ + Structure: .W .W .L .B .?B + index: 0,2,4,6,8,9 + len: variable: 9+s_pet + parameter: + - cmd : packet identification (0x3881) + - size + - account_id + - status: 1 means no info available + - s_pet: Pet data + desc: + - Send packet data to a player + +0x3882 + Type: IZ + Structure: .W .L .B + index: 0,2,4 + len: 5 + parameter: + - cmd : packet identification (0x3882) + - account_id + - flag: 1 failed to save + desc: + - Send pet save status + +0x3883 + Type: IZ + Structure: .W .B + index: 0,2 + len: 3 + parameter: + - cmd : packet identification (0x3883) + - flag + desc: + - Send pet deletion status + +0x3890 + Type: IZ + Structure: .W .W .L .B .?B + index: 0,2,4,8,9 + len: variable: 9+s_homunculus + parameter: + - cmd : packet identification (0x3890) + - size + - account_id + - flag: 0 means homunculus creation is failed + - s_homunculus: Homunculus data + desc: + - Send homunculus creation status + +0x3891 + Type: IZ + Structure: .W .W .L .B .?B + index: 0,2,4,8,9 + len: variable: 9+s_homunculus + parameter: + - cmd : packet identification (0x3890) + - size + - account_id + - flag: 0 means failed to retrieve homunculus data + - s_homunculus: Homunculus data + desc: + - Send homunculus data to a player + +0x3892 + Type: IZ + Structure: .W .L .B + index: 0,2,4 + len: 5 + parameter: + - cmd : packet identification (0x3892) + - account_id + - flag: 1 if success + desc: + - Send homunculus saving status to a player + +0x3893 + Type: IZ + Structure: .W .B + index: 0,2 + len: 3 + parameter: + - cmd : packet identification (0x3893) + - flag: 1 Homunculus deleted + desc: + - Send homunculus deletion status + ======================== | 3.2 Char-Map Packets | ======================== @@ -1823,7 +2109,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - ? desc: - chrif_connectack - + 0x2afb Type: AZ Structure: .W .B @@ -1834,7 +2120,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - ? desc: - send name for wisp to player - + 0x2afd Type: AZ Structure: .W .W .L .L .L .L .L .B .?B @@ -1852,7 +2138,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - cd desc: - auth request from map-server - + 0x2b00 Type: AZ Structure: .W .L @@ -1862,7 +2148,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - cmd : packet identification (0x2b00) desc: - Send to map-servers the users count on this char-serv, (meaning the total of all mapserv) - + 0x2b03 Type: AZ Structure: .W .L .B @@ -1874,7 +2160,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - ? desc: - Player Requesting char-select from map_serv - + 0x2b04 Type: AZ Structure: .W .W .L .W @@ -1887,7 +2173,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - port desc: - Receive maps from some other map-server (relayed via char-server) - + 0x2b06 Type: AZ Structure: .W .L .L .L .L .W .W .W .L .W @@ -1906,7 +2192,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - port desc: - Map-server change request acknowledgement (positive or negative) - + 0x2b09 Type: AZ Structure: .W .L ? @@ -1918,7 +2204,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - ? desc: - Lookup to search if that char_id correspond to a name. - + 0x2b0b Type: AZ Structure: .W .W .L .L .W .?B @@ -1933,7 +2219,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - skill_cooldown_data desc: - Retrieve and load skillcooldown for a player - + 0x2b0d Type: AZ Structure: .W .L .L @@ -1945,7 +2231,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - sex desc: - Request char server to change sex of char - + 0x2b0f Type: AZ Structure: .W .L .24B .W .W @@ -1959,7 +2245,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - result desc: - Processing a reply to chrif_req_login_operation() (request to modify an account). - + 0x2b12 Type: AZ Structure: .W .L .L .B @@ -1972,10 +2258,10 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - ? desc: - Divorce players (only used if 'partner_id' is offline) - + 0x2b14 Type: AZ - Structure: .W .L .B .L + Structure: .W .L .B .L index: 0,2,6,7 len: 11 parameter: @@ -1985,10 +2271,10 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - ret_status desc: - Disconnection of a player (account has been banned of has a status, from login/char-server) - + 0x2b1b Type: AZ - Structure: .W .W .W .W ?B ?B ?B + Structure: .W .W .W .W .?B .?B .?B index: 0,2,4,6,?,?,? len: ? (Max=32000) parameter: @@ -2001,7 +2287,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - desc: - Send map-servers fames ranking lists - + 0x2b1d Type: AZ Structure: .W .W .L .L @@ -2014,7 +2300,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - cid desc: - Map-serv requesting to send the list of sc_data the player has saved - + 0x2b1e Type: AZ Structure: .W .L @@ -2025,7 +2311,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - new_ip desc: - Request forwarded from char-server for interserver IP sync - + 0x2b1f Type: AZ Structure: .W .L .B @@ -2037,7 +2323,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - reason desc: - Request to kick char from a certain map server - + 0x2b20 Type: AZ Structure: .W .W .L .W @@ -2050,7 +2336,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - port desc: - Remove specified maps (used when some other map-server disconnects) - + 0x2b21 Type: AZ Structure: .W .L .L @@ -2060,7 +2346,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - cmd : packet identification (0x2b21) desc: - chrif_save_ack (Received after a character has been "final saved" on the char-server) - + 0x2b22 Type: AZ Structure: .W .B .B .L @@ -2073,7 +2359,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - fame desc: - Send to map-servers the updated fame ranking lists - + 0x2b24 Type: AZ Structure: .W @@ -2083,7 +2369,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - cmd : packet identification (0x2b24) desc: - Map-server keep alive packet, awnser back map that we alive as well - + 0x2b25 Type: AZ Structure: .W .L .L .L @@ -2096,7 +2382,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - char_id desc: - Removes baby from Father ID and Mother ID - + 0x2b27 Type: AZ Structure: .W .L .L .L .B @@ -2110,7 +2396,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - sex desc: - Client authentication failed - + 0x2b29 Type: AZ Structure: .W .L .L @@ -2122,7 +2408,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - bank_vault desc: - Received bank data for player to be loaded - + 0x2b2b Type: AZ Structure: .W .L .L .B .B .L @@ -2137,7 +2423,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - groupid desc: - Received vip-data from char-serv, fill map-serv data - + 0x2b2f Type: AZ Structure: .W .W .L .W @@ -2157,19 +2443,19 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - cmd : packet identification (0x2736) desc: - ip address update - + 0x2afa Type: ZA - Structure: .W .W .W - index: 0,2,4+1*4 @FIXME - len: variable 4+instance_start*4 + Structure: .W .W {.W}*instance_start + index: 0,2,4 + len: variable: 4+instance_start*4 parameter: - cmd : packet identification (0x2afa) - - ? - - ? + - size + - map_index*instance_start desc: - - chrif_sendmap - + - Send available normal maps. chrif_sendmap + 0x2afc Type: ZA Structure: .W .L .L @@ -2181,7 +2467,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - char_id desc: - Request sc_data from charserver - + 0x2afe Type: ZA Structure: .W .W @@ -2191,7 +2477,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - cmd : packet identification (0x2afe) desc: - send_usercount_tochar (unused) - + 0x2aff Type: ZA Structure: .W .W .W .L .L @@ -2205,7 +2491,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - char_id desc: - Map-serv sent us all his users info, (aid and cid) so we can update online_char_db - + 0x2b01 Type: ZA Structure: .W .W .L .L .B @@ -2215,7 +2501,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - cmd : packet identification (0x2b01) desc: - charsave of char XY account XY - + 0x2b02 Type: ZA Structure: .W .L .L .L .L .B @@ -2230,7 +2516,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - packet_ver desc: - chrif_charselectreq - + 0x2b05 Type: ZA Structure: .W .L .L .L .L .W .W .W .L .W .B .L .L @@ -2252,7 +2538,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - group_id desc: - Tell the charserver the mapchange / quest for ok - + 0x2b07 Type: ZA Structure: .W .L .L @@ -2264,7 +2550,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - friend_id desc: - Asks char server to remove friend_id from the friend list of char_id - + 0x2b08 Type: ZA Structure: .W .L @@ -2274,7 +2560,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - cmd : packet identification (0x2b08) desc: - Search char through id on char serv - + 0x2b0a Type: ZA Structure: .W .L .L @@ -2286,7 +2572,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - char_id desc: - Request skillcooldown from charserver - + 0x2b0c Type: ZA Structure: .W .W .40B .40B @@ -2299,7 +2585,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - new_email desc: - Change Email - + 0x2b0e Type: ZA Structure: .W .L .24B .W .L .L .L @@ -2315,7 +2601,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - val2 desc: - Send an account modification request to the login server (via char server). - + 0x2b10 Type: ZA Structure: .W .L .L .B @@ -2328,7 +2614,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - type desc: - Request/Receive top 10 Fame character list - + 0x2b11 Type: ZA Structure: .W .L .L @@ -2340,7 +2626,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - partner_id2 desc: - Request Char Server to Divorce Players - + 0x2b15 Type: ZA Structure: .W .W .L .L .W @@ -2354,7 +2640,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - count desc: - Request to save skill cooldown data - + 0x2b16 Type: ZA Structure: .W .L .L .L @@ -2367,7 +2653,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - drop_rate desc: - Send rates and motd to char server - + 0x2b17 Type: ZA Structure: .W .L .L @@ -2379,7 +2665,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - account_id desc: - Tell char-server character disconnected - + 0x2b18 Type: ZA Structure: .W @@ -2389,7 +2675,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - cmd : packet identification (0x2b18) desc: - Tell char-server to reset all chars offline - + 0x2b19 Type: ZA Structure: .W .L .L @@ -2401,7 +2687,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - account_id desc: - Tell char-server character is online - + 0x2b1a Type: ZA Structure: .W @@ -2411,7 +2697,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - cmd : packet identification (0x2b1a) desc: - Build the fame ranking lists and send them - + 0x2b1c Type: ZA Structure: .W .W .L .L .W @@ -2425,7 +2711,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - count desc: - parses the sc_data of the player and sends it to the char-server for saving - + 0x2b23 Type: ZA Structure: .W @@ -2435,7 +2721,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - cmd : packet identification (0x2b23) desc: - pings the charserver (chrif_keepalive) - + 0x2b26 Type: ZA Structure: .W .L .L .L .B .L .B @@ -2451,7 +2737,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - autotrade desc: - client authentication request - + 0x2b28 Type: ZA Structure: .W .L .L .?B @@ -2474,7 +2760,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - cmd : packet identification (0x2b2a) desc: - chrif_req_charunban - + 0x2b2d Type: ZA Structure: .W .L @@ -2484,7 +2770,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - cmd : packet identification (0x2b2d) desc: - Requests bonus_script data - + 0x2b2e Type: ZA Structure: .W .W .L .W @@ -2497,7 +2783,7 @@ Currently the max packet size is 0xFFFF (see 'WFIFOSET()' in 'src/common/socket. - count desc: - Stores bonus_script data(s) to the table - + 0x3008 Type: ZA Structure: .W .?B diff --git a/src/char/char_clif.c b/src/char/char_clif.c index ccf62c450a..dda82be9a8 100644 --- a/src/char/char_clif.c +++ b/src/char/char_clif.c @@ -168,26 +168,27 @@ int chclif_parse_pincode_change( int fd, struct char_session_data* sd ){ return 0; if( charserv_config.pincode_config.pincode_enabled==0 || RFIFOL(fd,2) != sd->account_id ) return 1; - else { - char oldpin[PINCODE_LENGTH+1]; - char newpin[PINCODE_LENGTH+1]; - - memset(oldpin,0,PINCODE_LENGTH+1); - memset(newpin,0,PINCODE_LENGTH+1); - strncpy(oldpin, (char*)RFIFOP(fd,6), PINCODE_LENGTH); - strncpy(newpin, (char*)RFIFOP(fd,10), PINCODE_LENGTH); - RFIFOSKIP(fd,14); - - char_pincode_decrypt(sd->pincode_seed,oldpin); - if( !char_pincode_compare( fd, sd, oldpin ) ) - return 1; - char_pincode_decrypt(sd->pincode_seed,newpin); - - chlogif_pincode_notifyLoginPinUpdate( sd->account_id, newpin ); - strncpy(sd->pincode, newpin, sizeof(newpin)); - - chclif_pincode_sendstate( fd, sd, PINCODE_PASSED ); - } + else { + char oldpin[PINCODE_LENGTH+1]; + char newpin[PINCODE_LENGTH+1]; + + memset(oldpin,0,PINCODE_LENGTH+1); + memset(newpin,0,PINCODE_LENGTH+1); + strncpy(oldpin, (char*)RFIFOP(fd,6), PINCODE_LENGTH); + strncpy(newpin, (char*)RFIFOP(fd,10), PINCODE_LENGTH); + RFIFOSKIP(fd,14); + + char_pincode_decrypt(sd->pincode_seed,oldpin); + if( !char_pincode_compare( fd, sd, oldpin ) ) + return 1; + char_pincode_decrypt(sd->pincode_seed,newpin); + + chlogif_pincode_notifyLoginPinUpdate( sd->account_id, newpin ); + strncpy(sd->pincode, newpin, sizeof(newpin)); + ShowInfo("Pincode changed for AID: %d\n", sd->account_id); + + chclif_pincode_sendstate( fd, sd, PINCODE_PASSED ); + } return 1; } @@ -200,19 +201,19 @@ int chclif_parse_pincode_setnew( int fd, struct char_session_data* sd ){ if( charserv_config.pincode_config.pincode_enabled==0 || RFIFOL(fd,2) != sd->account_id ) return 1; - else { - char newpin[PINCODE_LENGTH+1]; - memset(newpin,0,PINCODE_LENGTH+1); - strncpy( newpin, (char*)RFIFOP(fd,6), PINCODE_LENGTH ); - RFIFOSKIP(fd,10); + else { + char newpin[PINCODE_LENGTH+1]; + memset(newpin,0,PINCODE_LENGTH+1); + strncpy( newpin, (char*)RFIFOP(fd,6), PINCODE_LENGTH ); + RFIFOSKIP(fd,10); - char_pincode_decrypt( sd->pincode_seed, newpin ); + char_pincode_decrypt( sd->pincode_seed, newpin ); - chlogif_pincode_notifyLoginPinUpdate( sd->account_id, newpin ); - strncpy( sd->pincode, newpin, strlen( newpin ) ); + chlogif_pincode_notifyLoginPinUpdate( sd->account_id, newpin ); + strncpy( sd->pincode, newpin, strlen( newpin ) ); - chclif_pincode_sendstate( fd, sd, PINCODE_PASSED ); - } + chclif_pincode_sendstate( fd, sd, PINCODE_PASSED ); + } return 1; } @@ -368,9 +369,9 @@ void chclif_char_delete2_cancel_ack(int fd, int char_id, uint32 result) { // CH: <0827>.W .L int chclif_parse_char_delete2_req(int fd, struct char_session_data* sd) { - FIFOSD_CHECK(6) - { - int char_id, i; + FIFOSD_CHECK(6) + { + int char_id, i; char* data; time_t delete_date; @@ -425,15 +426,15 @@ int chclif_parse_char_delete2_req(int fd, struct char_session_data* sd) { } chclif_char_delete2_ack(fd, char_id, 1, delete_date); - } - return 1; + } + return 1; } // CH: <0829>.W .L .6B int chclif_parse_char_delete2_accept(int fd, struct char_session_data* sd) { - FIFOSD_CHECK(12) - { - char birthdate[8+1]; + FIFOSD_CHECK(12) + { + char birthdate[8+1]; int char_id, i, k; unsigned int base_level; char* data; @@ -503,8 +504,8 @@ int chclif_parse_char_delete2_accept(int fd, struct char_session_data* sd) { sd->found_char[MAX_CHARS-1] = -1; chclif_char_delete2_accept_ack(fd, char_id, 1); - } - return 1; + } + return 1; } // CH: <082b>.W .L diff --git a/src/char/char_logif.c b/src/char/char_logif.c index 20a0339aa7..a394a94b82 100644 --- a/src/char/char_logif.c +++ b/src/char/char_logif.c @@ -35,11 +35,13 @@ int chlogif_pincode_notifyLoginPinError( int account_id ){ int chlogif_pincode_notifyLoginPinUpdate( int account_id, char* pin ){ if (login_fd > 0 && session[login_fd] && !session[login_fd]->flag.eof){ - WFIFOHEAD(login_fd,11); + int size = 8 + PINCODE_LENGTH+1; + WFIFOHEAD(login_fd,size); WFIFOW(login_fd,0) = 0x2738; - WFIFOL(login_fd,2) = account_id; - strncpy( (char*)WFIFOP(login_fd,6), pin, PINCODE_LENGTH+1 ); - WFIFOSET(login_fd,11); + WFIFOW(login_fd,2) = size; + WFIFOL(login_fd,4) = account_id; + strncpy( (char*)WFIFOP(login_fd,8), pin, PINCODE_LENGTH+1 ); + WFIFOSET(login_fd,size); return 1; } return 0; @@ -47,6 +49,7 @@ int chlogif_pincode_notifyLoginPinUpdate( int account_id, char* pin ){ void chlogif_pincode_start(int fd, struct char_session_data* sd){ if( charserv_config.pincode_config.pincode_enabled ){ + ShowInfo("Asking to start pincode to AID: %d\n", sd->account_id); // PIN code system enabled if( sd->pincode[0] == '\0' ){ // No PIN code has been set yet @@ -75,6 +78,7 @@ void chlogif_pincode_start(int fd, struct char_session_data* sd){ } }else{ // PIN code system disabled + //ShowInfo("Pincode is disabled.\n"); chclif_pincode_sendstate( fd, sd, PINCODE_OK ); } } @@ -329,10 +333,8 @@ int chlogif_parse_reqaccdata(int fd, struct char_session_data* sd){ } else { // send characters to player chclif_mmo_char_send(u_fd, sd); - if(sd->version >= date2version(20110309)){ - ShowInfo("Asking to start pincode\n"); + if(sd->version >= date2version(20110309)) chlogif_pincode_start(u_fd,sd); - } } } RFIFOSKIP(fd,79); diff --git a/src/char/inter.c b/src/char/inter.c index c169df51bb..386623bf20 100644 --- a/src/char/inter.c +++ b/src/char/inter.c @@ -1002,7 +1002,7 @@ int mapif_parse_WisReply(int fd) // Received wisp message from map-server for ALL gm (just copy the message and resends it to ALL map-servers) int mapif_parse_WisToGM(int fd) { - unsigned char buf[2048]; // 0x3003/0x3803 .w .24B .w .?B + unsigned char buf[2048]; // 0x3003/0x3803 .w .24B .L .?B memcpy(WBUFP(buf,0), RFIFOP(fd,0), RFIFOW(fd,2)); WBUFW(buf, 0) = 0x3803; diff --git a/src/login/loginchrif.c b/src/login/loginchrif.c index dc0e79920d..0a8706ae12 100644 --- a/src/login/loginchrif.c +++ b/src/login/loginchrif.c @@ -682,18 +682,18 @@ int logchrif_parse_setalloffline(int fd, int id){ * @return 0 fail (packet does not have enough data), 1 success */ int logchrif_parse_updpincode(int fd){ - if( RFIFOREST(fd) < 11 ) + if( RFIFOREST(fd) < 8 + PINCODE_LENGTH+1 ) return 0; else{ struct mmo_account acc; AccountDB* accounts = login_get_accounts_db(); - if( accounts->load_num(accounts, &acc, RFIFOL(fd,2) ) ){ - strncpy( acc.pincode, (char*)RFIFOP(fd,6), 5 ); + if( accounts->load_num(accounts, &acc, RFIFOL(fd,4) ) ){ + strncpy( acc.pincode, (char*)RFIFOP(fd,8), PINCODE_LENGTH+1 ); acc.pincode_change = time( NULL ); accounts->save(accounts, &acc); } - RFIFOSKIP(fd,11); + RFIFOSKIP(fd,8 + PINCODE_LENGTH+1); } return 1; } diff --git a/src/map/intif.c b/src/map/intif.c index 25e0b1c056..e9a21f7ba5 100644 --- a/src/map/intif.c +++ b/src/map/intif.c @@ -345,7 +345,7 @@ int intif_wis_message_to_gm(char *wisp_name, int permission, char *mes) if (CheckForCharServer()) return 0; mes_len = strlen(mes) + 1; // + null - WFIFOHEAD(inter_fd, mes_len + 32); + WFIFOHEAD(inter_fd, mes_len + 8 + NAME_LENGTH); WFIFOW(inter_fd,0) = 0x3003; WFIFOW(inter_fd,2) = mes_len + 32; memcpy(WFIFOP(inter_fd,4), wisp_name, NAME_LENGTH); @@ -1200,7 +1200,7 @@ int intif_parse_WisMessage(int fd) } //Success to send whisper. clif_wis_message(sd->fd, wisp_source, (char*)RFIFOP(fd,56),RFIFOW(fd,2)-56); - intif_wis_replay(id,0); // succes + intif_wis_replay(id,0); // success return 1; } @@ -1258,12 +1258,12 @@ int mapif_parse_WisToGM(int fd) char Wisp_name[NAME_LENGTH]; char *message; - mes_len = RFIFOW(fd,2) - 32; + mes_len = RFIFOW(fd,2) - 8+NAME_LENGTH; message = (char *) aMalloc(mes_len); - permission = RFIFOL(fd,28); + permission = RFIFOL(fd,4+NAME_LENGTH); safestrncpy(Wisp_name, (char*)RFIFOP(fd,4), NAME_LENGTH); - safestrncpy(message, (char*)RFIFOP(fd,32), mes_len); + safestrncpy(message, (char*)RFIFOP(fd,8+NAME_LENGTH), mes_len); // information is sent to all online GM map_foreachpc(mapif_parse_WisToGM_sub, permission, Wisp_name, message, mes_len); aFree(message); @@ -2891,7 +2891,7 @@ void intif_itembound_req(int char_id,int aid,int guild_id) { } /** - * Acknoledge the good deletion of the bound item + * Acknowledge the good deletion of the bound item * (unlock the guild storage) * @struct : 0x3856 .L .W * @param fd : Char-serv link @@ -2973,18 +2973,15 @@ int intif_parse(int fd) case 0x3840: intif_parse_GuildCastleDataLoad(fd); break; case 0x3843: intif_parse_GuildMasterChanged(fd); break; - //Quest system - case 0x3860: intif_parse_questlog(fd); break; - case 0x3861: intif_parse_questsave(fd); break; - -// Mail System + // Mail System case 0x3848: intif_parse_Mail_inboxreceived(fd); break; case 0x3849: intif_parse_Mail_new(fd); break; case 0x384a: intif_parse_Mail_getattach(fd); break; case 0x384b: intif_parse_Mail_delete(fd); break; case 0x384c: intif_parse_Mail_return(fd); break; case 0x384d: intif_parse_Mail_send(fd); break; -// Auction System + + // Auction System case 0x3850: intif_parse_Auction_results(fd); break; case 0x3851: intif_parse_Auction_register(fd); break; case 0x3852: intif_parse_Auction_cancel(fd); break; @@ -2992,28 +2989,37 @@ int intif_parse(int fd) case 0x3854: intif_parse_Auction_message(fd); break; case 0x3855: intif_parse_Auction_bid(fd); break; -//Bound items + //Bound items #ifdef BOUND_ITEMS case 0x3856: intif_parse_itembound_ack(fd); break; #endif + //Quest system + case 0x3860: intif_parse_questlog(fd); break; + case 0x3861: intif_parse_questsave(fd); break; + // Mercenary System case 0x3870: intif_parse_mercenary_received(fd); break; case 0x3871: intif_parse_mercenary_deleted(fd); break; case 0x3872: intif_parse_mercenary_saved(fd); break; + // Elemental System case 0x387c: intif_parse_elemental_received(fd); break; case 0x387d: intif_parse_elemental_deleted(fd); break; case 0x387e: intif_parse_elemental_saved(fd); break; + // Pet System case 0x3880: intif_parse_CreatePet(fd); break; case 0x3881: intif_parse_RecvPetData(fd); break; case 0x3882: intif_parse_SavePetOk(fd); break; case 0x3883: intif_parse_DeletePetOk(fd); break; + + // Homunculus case 0x3890: intif_parse_CreateHomunculus(fd); break; case 0x3891: intif_parse_RecvHomunculusData(fd); break; case 0x3892: intif_parse_SaveHomunculusOk(fd); break; case 0x3893: intif_parse_DeleteHomunculusOk(fd); break; + default: ShowError("intif_parse : unknown packet %d %x\n",fd,RFIFOW(fd,0)); return 0;