Pets & Homun renaming with empty name fix, bugreport:3032

Also:
- Fixed client crash when sending weapon + dragon/mado/newmount
- Fixed 2011-11-16 charinfo_size bug on char selection screen

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15377 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
shennetsind 2012-01-04 02:29:06 +00:00
parent 22d446d13e
commit fb6af6b958
3 changed files with 23 additions and 10 deletions

View File

@ -937,6 +937,7 @@ int mmo_chars_fromsql(struct char_session_data* sd, uint8* buf)
{
if( p.delete_date && p.delete_date < time(NULL) ) {
delete_char_sql(p.char_id);
i--;
continue;
}
p.last_point.map = mapindex_name2id(last_map);
@ -1644,7 +1645,10 @@ int mmo_char_tobuf(uint8* buffer, struct mmo_charstatus* p)
WBUFW(buf,50) = DEFAULT_WALK_SPEED; // p->speed;
WBUFW(buf,52) = p->class_;
WBUFW(buf,54) = p->hair;
WBUFW(buf,56) = p->option&0x20 ? 0 : p->weapon; //When the weapon is sent and your option is riding, the client crashes on login!?
//When the weapon is sent and your option is riding, the client crashes on login!?
WBUFW(buf,56) = p->option&(0x20|0x80000|0x100000|0x200000|0x400000|0x800000|0x1000000|0x2000000|0x4000000|0x8000000) ? 0 : p->weapon;
WBUFW(buf,58) = p->base_level;
WBUFW(buf,60) = min(p->skill_point, INT16_MAX);
WBUFW(buf,62) = p->head_bottom;
@ -1677,14 +1681,17 @@ int mmo_char_tobuf(uint8* buffer, struct mmo_charstatus* p)
WBUFL(buf,128) = p->robe;
offset += 4;
#endif
#if PACKETVER >= 20110928
#if PACKETVER != 20111116 //2011-11-16 wants 136, ask gravity.
#if PACKETVER >= 20110928
WBUFL(buf,132) = 0; // change slot feature (0 = disabled, otherwise enabled)
offset += 4;
#endif
#if PACKETVER >= 20111025
#endif
#if PACKETVER >= 20111025
WBUFL(buf,136) = 0; // unknown purpose (0 = disabled, otherwise displays "Add-Ons" sidebar)
offset += 4;
#endif
#endif
return 106+offset;
}

View File

@ -555,7 +555,10 @@ int merc_hom_change_name_ack(struct map_session_data *sd, char* name, int flag)
{
struct homun_data *hd = sd->hd;
if (!merc_is_hom_active(hd)) return 0;
if (!flag) {
normalize_name(name," ");//bugreport:3032
if ( !flag || !strlen(name) ) {
clif_displaymessage(sd->fd, msg_txt(280)); // You cannot use this name
return 0;
}

View File

@ -630,7 +630,10 @@ int pet_change_name_ack(struct map_session_data *sd, char* name, int flag)
{
struct pet_data *pd = sd->pd;
if (!pd) return 0;
if (!flag) {
normalize_name(name," ");//bugreport:3032
if ( !flag || !strlen(name) ) {
clif_displaymessage(sd->fd, msg_txt(280)); // You cannot use this name for your pet.
clif_send_petstatus(sd); //Send status so client knows oet name change got rejected.
return 0;