|
@@ -59,7 +59,7 @@ struct fame_list smith_fame_list[MAX_FAME_LIST];
|
|
struct fame_list chemist_fame_list[MAX_FAME_LIST];
|
|
struct fame_list chemist_fame_list[MAX_FAME_LIST];
|
|
struct fame_list taekwon_fame_list[MAX_FAME_LIST];
|
|
struct fame_list taekwon_fame_list[MAX_FAME_LIST];
|
|
|
|
|
|
-static unsigned short equip_pos[EQI_MAX]={EQP_ACC_L,EQP_ACC_R,EQP_SHOES,EQP_GARMENT,EQP_HEAD_LOW,EQP_HEAD_MID,EQP_HEAD_TOP,EQP_ARMOR,EQP_HAND_L,EQP_HAND_R,EQP_AMMO};
|
|
|
|
|
|
+static unsigned short equip_pos[EQI_MAX]={EQP_ACC_L,EQP_ACC_R,EQP_SHOES,EQP_GARMENT,EQP_HEAD_LOW,EQP_HEAD_MID,EQP_HEAD_TOP,EQP_ARMOR,EQP_HAND_L,EQP_HAND_R,EQP_COSTUME_HEAD_TOP,EQP_COSTUME_HEAD_MID,EQP_COSTUME_HEAD_LOW,EQP_AMMO};
|
|
|
|
|
|
#define MOTD_LINE_SIZE 128
|
|
#define MOTD_LINE_SIZE 128
|
|
static char motd_text[MOTD_LINE_SIZE][CHAT_SIZE_MAX]; // Message of the day buffer [Valaris]
|
|
static char motd_text[MOTD_LINE_SIZE][CHAT_SIZE_MAX]; // Message of the day buffer [Valaris]
|
|
@@ -7377,27 +7377,48 @@ int pc_equipitem(struct map_session_data *sd,int n,int req_pos)
|
|
}
|
|
}
|
|
//Added check to prevent sending the same look on multiple slots ->
|
|
//Added check to prevent sending the same look on multiple slots ->
|
|
//causes client to redraw item on top of itself. (suggested by Lupus)
|
|
//causes client to redraw item on top of itself. (suggested by Lupus)
|
|
- if(pos & EQP_HEAD_LOW) {
|
|
|
|
|
|
+ if(pos & EQP_HEAD_LOW && pc_checkequip(sd,EQP_COSTUME_HEAD_LOW) == -1) {
|
|
if(id && !(pos&(EQP_HEAD_TOP|EQP_HEAD_MID)))
|
|
if(id && !(pos&(EQP_HEAD_TOP|EQP_HEAD_MID)))
|
|
sd->status.head_bottom = id->look;
|
|
sd->status.head_bottom = id->look;
|
|
else
|
|
else
|
|
sd->status.head_bottom = 0;
|
|
sd->status.head_bottom = 0;
|
|
clif_changelook(&sd->bl,LOOK_HEAD_BOTTOM,sd->status.head_bottom);
|
|
clif_changelook(&sd->bl,LOOK_HEAD_BOTTOM,sd->status.head_bottom);
|
|
}
|
|
}
|
|
- if(pos & EQP_HEAD_TOP) {
|
|
|
|
|
|
+ if(pos & EQP_HEAD_TOP && pc_checkequip(sd,EQP_COSTUME_HEAD_TOP) == -1) {
|
|
if(id)
|
|
if(id)
|
|
sd->status.head_top = id->look;
|
|
sd->status.head_top = id->look;
|
|
else
|
|
else
|
|
sd->status.head_top = 0;
|
|
sd->status.head_top = 0;
|
|
clif_changelook(&sd->bl,LOOK_HEAD_TOP,sd->status.head_top);
|
|
clif_changelook(&sd->bl,LOOK_HEAD_TOP,sd->status.head_top);
|
|
}
|
|
}
|
|
- if(pos & EQP_HEAD_MID) {
|
|
|
|
|
|
+ if(pos & EQP_HEAD_MID && pc_checkequip(sd,EQP_COSTUME_HEAD_MID) == -1) {
|
|
if(id && !(pos&EQP_HEAD_TOP))
|
|
if(id && !(pos&EQP_HEAD_TOP))
|
|
sd->status.head_mid = id->look;
|
|
sd->status.head_mid = id->look;
|
|
else
|
|
else
|
|
sd->status.head_mid = 0;
|
|
sd->status.head_mid = 0;
|
|
clif_changelook(&sd->bl,LOOK_HEAD_MID,sd->status.head_mid);
|
|
clif_changelook(&sd->bl,LOOK_HEAD_MID,sd->status.head_mid);
|
|
}
|
|
}
|
|
|
|
+ if(pos & EQP_COSTUME_HEAD_TOP) {
|
|
|
|
+ if(id){
|
|
|
|
+ sd->status.head_top = id->look;
|
|
|
|
+ } else
|
|
|
|
+ sd->status.head_top = 0;
|
|
|
|
+ clif_changelook(&sd->bl,LOOK_HEAD_TOP,sd->status.head_top);
|
|
|
|
+ }
|
|
|
|
+ if(pos & EQP_COSTUME_HEAD_MID) {
|
|
|
|
+ if(id && !(pos&EQP_HEAD_TOP)){
|
|
|
|
+ sd->status.head_mid = id->look;
|
|
|
|
+ } else
|
|
|
|
+ sd->status.head_mid = 0;
|
|
|
|
+ clif_changelook(&sd->bl,LOOK_HEAD_MID,sd->status.head_mid);
|
|
|
|
+ }
|
|
|
|
+ if(pos & EQP_COSTUME_HEAD_LOW) {
|
|
|
|
+ if(id && !(pos&(EQP_HEAD_TOP|EQP_HEAD_MID))){
|
|
|
|
+ sd->status.head_bottom = id->look;
|
|
|
|
+ } else
|
|
|
|
+ sd->status.head_bottom = 0;
|
|
|
|
+ clif_changelook(&sd->bl,LOOK_HEAD_BOTTOM,sd->status.head_bottom);
|
|
|
|
+ }
|
|
if(pos & EQP_SHOES)
|
|
if(pos & EQP_SHOES)
|
|
clif_changelook(&sd->bl,LOOK_SHOES,0);
|
|
clif_changelook(&sd->bl,LOOK_SHOES,0);
|
|
if( pos&EQP_GARMENT )
|
|
if( pos&EQP_GARMENT )
|
|
@@ -7481,18 +7502,34 @@ int pc_unequipitem(struct map_session_data *sd,int n,int flag)
|
|
pc_calcweapontype(sd);
|
|
pc_calcweapontype(sd);
|
|
clif_changelook(&sd->bl,LOOK_SHIELD,sd->status.shield);
|
|
clif_changelook(&sd->bl,LOOK_SHIELD,sd->status.shield);
|
|
}
|
|
}
|
|
- if(sd->status.inventory[n].equip & EQP_HEAD_LOW) {
|
|
|
|
|
|
+ if(sd->status.inventory[n].equip & EQP_HEAD_LOW && pc_checkequip(sd,EQP_COSTUME_HEAD_LOW) == -1 ) {
|
|
sd->status.head_bottom = 0;
|
|
sd->status.head_bottom = 0;
|
|
clif_changelook(&sd->bl,LOOK_HEAD_BOTTOM,sd->status.head_bottom);
|
|
clif_changelook(&sd->bl,LOOK_HEAD_BOTTOM,sd->status.head_bottom);
|
|
}
|
|
}
|
|
- if(sd->status.inventory[n].equip & EQP_HEAD_TOP) {
|
|
|
|
|
|
+ if(sd->status.inventory[n].equip & EQP_HEAD_TOP && pc_checkequip(sd,EQP_COSTUME_HEAD_TOP) == -1 ) {
|
|
sd->status.head_top = 0;
|
|
sd->status.head_top = 0;
|
|
clif_changelook(&sd->bl,LOOK_HEAD_TOP,sd->status.head_top);
|
|
clif_changelook(&sd->bl,LOOK_HEAD_TOP,sd->status.head_top);
|
|
}
|
|
}
|
|
- if(sd->status.inventory[n].equip & EQP_HEAD_MID) {
|
|
|
|
|
|
+ if(sd->status.inventory[n].equip & EQP_HEAD_MID && pc_checkequip(sd,EQP_COSTUME_HEAD_MID) == -1 ) {
|
|
sd->status.head_mid = 0;
|
|
sd->status.head_mid = 0;
|
|
clif_changelook(&sd->bl,LOOK_HEAD_MID,sd->status.head_mid);
|
|
clif_changelook(&sd->bl,LOOK_HEAD_MID,sd->status.head_mid);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ if(sd->status.inventory[n].equip & EQP_COSTUME_HEAD_TOP) {
|
|
|
|
+ sd->status.head_top = ( pc_checkequip(sd,EQP_HEAD_TOP) >= 0 ) ? sd->inventory_data[pc_checkequip(sd,EQP_HEAD_TOP)]->look : 0;
|
|
|
|
+ clif_changelook(&sd->bl,LOOK_HEAD_TOP,sd->status.head_top);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(sd->status.inventory[n].equip & EQP_COSTUME_HEAD_MID) {
|
|
|
|
+ sd->status.head_mid = ( pc_checkequip(sd,EQP_HEAD_MID) >= 0 ) ? sd->inventory_data[pc_checkequip(sd,EQP_HEAD_MID)]->look : 0;
|
|
|
|
+ clif_changelook(&sd->bl,LOOK_HEAD_MID,sd->status.head_mid);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(sd->status.inventory[n].equip & EQP_COSTUME_HEAD_LOW) {
|
|
|
|
+ sd->status.head_bottom = ( pc_checkequip(sd,EQP_HEAD_LOW) >= 0 ) ? sd->inventory_data[pc_checkequip(sd,EQP_HEAD_LOW)]->look : 0;
|
|
|
|
+ clif_changelook(&sd->bl,LOOK_HEAD_TOP,sd->status.head_bottom);
|
|
|
|
+ }
|
|
|
|
+
|
|
if(sd->status.inventory[n].equip & EQP_SHOES)
|
|
if(sd->status.inventory[n].equip & EQP_SHOES)
|
|
clif_changelook(&sd->bl,LOOK_SHOES,0);
|
|
clif_changelook(&sd->bl,LOOK_SHOES,0);
|
|
if( sd->status.inventory[n].equip&EQP_GARMENT )
|
|
if( sd->status.inventory[n].equip&EQP_GARMENT )
|