* Merged changes up to eAthena 15063.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15478 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
0b4a77d2d2
commit
d6c35b853a
@ -735,7 +735,7 @@ packet_ver: 16
|
|||||||
0x022f,5
|
0x022f,5
|
||||||
0x0231,26,changehomunculusname,0
|
0x0231,26,changehomunculusname,0
|
||||||
0x023a,4
|
0x023a,4
|
||||||
0x023b,24,storagepassword,0
|
0x023b,36,storagepassword,2:4:20
|
||||||
0x023c,6
|
0x023c,6
|
||||||
|
|
||||||
//2005-06-22aSakexe
|
//2005-06-22aSakexe
|
||||||
|
149
src/map/clif.c
149
src/map/clif.c
@ -658,6 +658,24 @@ void clif_authok(struct map_session_data *sd)
|
|||||||
WFIFOSET(fd,packet_len(cmd));
|
WFIFOSET(fd,packet_len(cmd));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// Notifies the client, that it's connection attempt was refused (ZC_REFUSE_ENTER).
|
||||||
|
/// 0074 <error code>.B
|
||||||
|
/// error code:
|
||||||
|
/// 0 = client type mismatch
|
||||||
|
/// 1 = ID mismatch
|
||||||
|
/// 2 = mobile - out of available time
|
||||||
|
/// 3 = mobile - already logged in
|
||||||
|
/// 4 = mobile - waiting state
|
||||||
|
void clif_authrefuse(int fd, uint8 error_code)
|
||||||
|
{
|
||||||
|
WFIFOHEAD(fd,packet_len(0x74));
|
||||||
|
WFIFOW(fd,0) = 0x74;
|
||||||
|
WFIFOB(fd,2) = error_code;
|
||||||
|
WFIFOSET(fd,packet_len(0x74));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*==========================================
|
/*==========================================
|
||||||
* Authentication failed/disconnect client.
|
* Authentication failed/disconnect client.
|
||||||
*------------------------------------------
|
*------------------------------------------
|
||||||
@ -3644,6 +3662,21 @@ void clif_tradecompleted(struct map_session_data* sd, int fail)
|
|||||||
WFIFOSET(fd,packet_len(0xf0));
|
WFIFOSET(fd,packet_len(0xf0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// Resets the trade window on the send side (ZC_EXCHANGEITEM_UNDO).
|
||||||
|
/// 00f1
|
||||||
|
/// NOTE: Unknown purpose. Items are not removed until the window is
|
||||||
|
/// refreshed (ex. by putting another item in there).
|
||||||
|
void clif_tradeundo(struct map_session_data* sd)
|
||||||
|
{
|
||||||
|
int fd = sd->fd;
|
||||||
|
|
||||||
|
WFIFOHEAD(fd,packet_len(0xf1));
|
||||||
|
WFIFOW(fd,0) = 0xf1;
|
||||||
|
WFIFOSET(fd,packet_len(0xf1));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*==========================================
|
/*==========================================
|
||||||
* Server tells client it's quantity of items in storage changed
|
* Server tells client it's quantity of items in storage changed
|
||||||
*------------------------------------------*/
|
*------------------------------------------*/
|
||||||
@ -6588,6 +6621,22 @@ void clif_mvp_exp(struct map_session_data *sd, unsigned int exp)
|
|||||||
WFIFOSET(fd,packet_len(0x10b));
|
WFIFOSET(fd,packet_len(0x10b));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// Dropped MVP item reward message (ZC_THROW_MVPITEM).
|
||||||
|
/// 010d
|
||||||
|
///
|
||||||
|
/// "You are the MVP, but cannot obtain the reward because
|
||||||
|
/// you are overweight."
|
||||||
|
void clif_mvp_noitem(struct map_session_data* sd)
|
||||||
|
{
|
||||||
|
int fd = sd->fd;
|
||||||
|
|
||||||
|
WFIFOHEAD(fd,packet_len(0x10d));
|
||||||
|
WFIFOW(fd,0) = 0x10d;
|
||||||
|
WFIFOSET(fd,packet_len(0x10d));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*==========================================
|
/*==========================================
|
||||||
* Guild creation result
|
* Guild creation result
|
||||||
* R 0167 <flag>.B
|
* R 0167 <flag>.B
|
||||||
@ -7606,6 +7655,32 @@ void clif_specialeffect_single(struct block_list* bl, int type, int fd)
|
|||||||
WFIFOSET(fd,10);
|
WFIFOSET(fd,10);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// Notifies clients of an special/visual effect that accepts an value (ZC_NOTIFY_EFFECT3).
|
||||||
|
/// 0284 <id>.L <effect id>.L <num data>.L
|
||||||
|
/// effect id:
|
||||||
|
/// @see doc/effect_list.txt
|
||||||
|
/// num data:
|
||||||
|
/// effect-dependent value
|
||||||
|
void clif_specialeffect_value(struct block_list* bl, int effect_id, int num, send_target target)
|
||||||
|
{
|
||||||
|
uint8 buf[14];
|
||||||
|
|
||||||
|
WBUFW(buf,0) = 0x284;
|
||||||
|
WBUFL(buf,2) = bl->id;
|
||||||
|
WBUFL(buf,6) = effect_id;
|
||||||
|
WBUFL(buf,10) = num;
|
||||||
|
|
||||||
|
clif_send(buf, packet_len(0x284), bl, target);
|
||||||
|
|
||||||
|
if( disguised(bl) )
|
||||||
|
{
|
||||||
|
WBUFL(buf,2) = -bl->id;
|
||||||
|
clif_send(buf, packet_len(0x284), bl, SELF);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/******************************************************
|
/******************************************************
|
||||||
* W.<packet> W.<LENGTH> L.<ID> L.<COLOR> S.<TEXT>
|
* W.<packet> W.<LENGTH> L.<ID> L.<COLOR> S.<TEXT>
|
||||||
* Mob/NPC Color Talk [SnakeDrak]
|
* Mob/NPC Color Talk [SnakeDrak]
|
||||||
@ -8190,6 +8265,38 @@ void clif_msg(struct map_session_data* sd, unsigned short id)
|
|||||||
WFIFOSET(fd, packet_len(0x291));
|
WFIFOSET(fd, packet_len(0x291));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// Display msgstringtable.txt string and fill in a valid for %d format (ZC_MSG_VALUE).
|
||||||
|
/// 0x7e2 <message>.W <value>.L
|
||||||
|
void clif_msg_value(struct map_session_data* sd, unsigned short id, int value)
|
||||||
|
{
|
||||||
|
int fd = sd->fd;
|
||||||
|
|
||||||
|
WFIFOHEAD(fd, packet_len(0x7e2));
|
||||||
|
WFIFOW(fd,0) = 0x7e2;
|
||||||
|
WFIFOW(fd,2) = id;
|
||||||
|
WFIFOL(fd,4) = value;
|
||||||
|
WFIFOSET(fd, packet_len(0x7e2));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// Displays msgstringtable.txt string, prefixed with a skill name. (ZC_MSG_SKILL).
|
||||||
|
/// 07e6 <skill id>.W <msg id>.L
|
||||||
|
///
|
||||||
|
/// NOTE: Message has following format and is printed in color 0xCDCDFF (purple):
|
||||||
|
/// "[SkillName] Message"
|
||||||
|
void clif_msg_skill(struct map_session_data* sd, unsigned short skill_id, int msg_id)
|
||||||
|
{
|
||||||
|
int fd = sd->fd;
|
||||||
|
|
||||||
|
WFIFOHEAD(fd, packet_len(0x7e6));
|
||||||
|
WFIFOW(fd,0) = 0x7e6;
|
||||||
|
WFIFOW(fd,2) = skill_id;
|
||||||
|
WFIFOL(fd,4) = msg_id;
|
||||||
|
WFIFOSET(fd, packet_len(0x7e6));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/// View player equip request denied
|
/// View player equip request denied
|
||||||
void clif_viewequip_fail(struct map_session_data* sd)
|
void clif_viewequip_fail(struct map_session_data* sd)
|
||||||
{
|
{
|
||||||
@ -10586,6 +10693,26 @@ void clif_parse_CloseKafra(int fd, struct map_session_data *sd)
|
|||||||
storage_guild_storageclose(sd);
|
storage_guild_storageclose(sd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// Displays kafra storage password dialog (ZC_REQ_STORE_PASSWORD).
|
||||||
|
/// 023a <info>.W
|
||||||
|
/// info:
|
||||||
|
/// 0 = password has not been set yet
|
||||||
|
/// 1 = storage is password-protected
|
||||||
|
/// 8 = too many wrong passwords
|
||||||
|
/// ? = ignored
|
||||||
|
/// NOTE: This packet is only available on certain non-kRO clients.
|
||||||
|
void clif_storagepassword(struct map_session_data* sd, short info)
|
||||||
|
{
|
||||||
|
int fd = sd->fd;
|
||||||
|
|
||||||
|
WFIFOHEAD(fd,packet_len(0x23a));
|
||||||
|
WFIFOW(fd,0) = 0x23a;
|
||||||
|
WFIFOW(fd,2) = info;
|
||||||
|
WFIFOSET(fd,packet_len(0x23a));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*==========================================
|
/*==========================================
|
||||||
* Kafra storage protection password system
|
* Kafra storage protection password system
|
||||||
*------------------------------------------*/
|
*------------------------------------------*/
|
||||||
@ -10595,6 +10722,28 @@ void clif_parse_StoragePassword(int fd, struct map_session_data *sd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// Result of kafra storage password validation (ZC_RESULT_STORE_PASSWORD).
|
||||||
|
/// 023c <result>.W <error count>.W
|
||||||
|
/// result:
|
||||||
|
/// 4 = password change success
|
||||||
|
/// 5 = password change failure
|
||||||
|
/// 6 = password check success
|
||||||
|
/// 7 = password check failure
|
||||||
|
/// 8 = too many wrong passwords
|
||||||
|
/// ? = ignored
|
||||||
|
/// NOTE: This packet is only available on certain non-kRO clients.
|
||||||
|
void clif_storagepassword_result(struct map_session_data* sd, short result, short error_count)
|
||||||
|
{
|
||||||
|
int fd = sd->fd;
|
||||||
|
|
||||||
|
WFIFOHEAD(fd,packet_len(0x23c));
|
||||||
|
WFIFOW(fd,0) = 0x23c;
|
||||||
|
WFIFOW(fd,2) = result;
|
||||||
|
WFIFOW(fd,4) = error_count;
|
||||||
|
WFIFOSET(fd,packet_len(0x23c));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*==========================================
|
/*==========================================
|
||||||
* Party creation request
|
* Party creation request
|
||||||
* S 00f9 <party name>.24S
|
* S 00f9 <party name>.24S
|
||||||
|
@ -309,6 +309,7 @@ uint32 clif_refresh_ip(void);
|
|||||||
uint16 clif_getport(void);
|
uint16 clif_getport(void);
|
||||||
|
|
||||||
void clif_authok(struct map_session_data *sd);
|
void clif_authok(struct map_session_data *sd);
|
||||||
|
void clif_authrefuse(int fd, uint8 error_code);
|
||||||
void clif_authfail_fd(int fd, int type);
|
void clif_authfail_fd(int fd, int type);
|
||||||
void clif_charselectok(int id, uint8 ok);
|
void clif_charselectok(int id, uint8 ok);
|
||||||
void clif_dropflooritem(struct flooritem_data* fitem);
|
void clif_dropflooritem(struct flooritem_data* fitem);
|
||||||
@ -394,6 +395,7 @@ void clif_tradeitemok(struct map_session_data* sd, int index, int fail);
|
|||||||
void clif_tradedeal_lock(struct map_session_data* sd, int fail);
|
void clif_tradedeal_lock(struct map_session_data* sd, int fail);
|
||||||
void clif_tradecancelled(struct map_session_data* sd);
|
void clif_tradecancelled(struct map_session_data* sd);
|
||||||
void clif_tradecompleted(struct map_session_data* sd, int fail);
|
void clif_tradecompleted(struct map_session_data* sd, int fail);
|
||||||
|
void clif_tradeundo(struct map_session_data* sd);
|
||||||
|
|
||||||
// storage
|
// storage
|
||||||
void clif_storagelist(struct map_session_data* sd, struct item* items, int items_length);
|
void clif_storagelist(struct map_session_data* sd, struct item* items, int items_length);
|
||||||
@ -475,6 +477,7 @@ void clif_item_skill(struct map_session_data *sd,int skillid,int skilllv);
|
|||||||
void clif_mvp_effect(struct map_session_data *sd);
|
void clif_mvp_effect(struct map_session_data *sd);
|
||||||
void clif_mvp_item(struct map_session_data *sd,int nameid);
|
void clif_mvp_item(struct map_session_data *sd,int nameid);
|
||||||
void clif_mvp_exp(struct map_session_data *sd, unsigned int exp);
|
void clif_mvp_exp(struct map_session_data *sd, unsigned int exp);
|
||||||
|
void clif_mvp_noitem(struct map_session_data* sd);
|
||||||
void clif_changed_dir(struct block_list *bl, enum send_target target);
|
void clif_changed_dir(struct block_list *bl, enum send_target target);
|
||||||
|
|
||||||
// vending
|
// vending
|
||||||
@ -589,6 +592,7 @@ void clif_specialeffect(struct block_list* bl, int type, enum send_target target
|
|||||||
void clif_specialeffect_single(struct block_list* bl, int type, int fd);
|
void clif_specialeffect_single(struct block_list* bl, int type, int fd);
|
||||||
void clif_messagecolor(struct block_list* bl, unsigned long color, const char* msg); // Mob/Npc color talk [SnakeDrak]
|
void clif_messagecolor(struct block_list* bl, unsigned long color, const char* msg); // Mob/Npc color talk [SnakeDrak]
|
||||||
void clif_message(struct block_list* bl, const char* msg); // messages (from mobs/npcs) [Valaris]
|
void clif_message(struct block_list* bl, const char* msg); // messages (from mobs/npcs) [Valaris]
|
||||||
|
void clif_specialeffect_value(struct block_list* bl, int effect_id, int num, send_target target);
|
||||||
|
|
||||||
void clif_GM_kickack(struct map_session_data *sd, int id);
|
void clif_GM_kickack(struct map_session_data *sd, int id);
|
||||||
void clif_GM_kick(struct map_session_data *sd,struct map_session_data *tsd);
|
void clif_GM_kick(struct map_session_data *sd,struct map_session_data *tsd);
|
||||||
@ -621,6 +625,8 @@ void clif_viewequip_fail(struct map_session_data* sd);
|
|||||||
void clif_equipcheckbox(struct map_session_data* sd);
|
void clif_equipcheckbox(struct map_session_data* sd);
|
||||||
|
|
||||||
void clif_msg(struct map_session_data* sd, unsigned short id);
|
void clif_msg(struct map_session_data* sd, unsigned short id);
|
||||||
|
void clif_msg_value(struct map_session_data* sd, unsigned short id, int value);
|
||||||
|
void clif_msg_skill(struct map_session_data* sd, unsigned short skill_id, int msg_id);
|
||||||
|
|
||||||
//quest system [Kevin] [Inkfish]
|
//quest system [Kevin] [Inkfish]
|
||||||
void clif_quest_send_list(struct map_session_data * sd);
|
void clif_quest_send_list(struct map_session_data * sd);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user