From e07a11186dd58a30e8e16ed2f27cb409f0398abc Mon Sep 17 00:00:00 2001 From: aleos89 Date: Wed, 9 Apr 2014 15:10:58 -0400 Subject: [PATCH] Updated clif_message enum and appropriate clif_msg* functions. --- src/map/clif.c | 2 +- src/map/clif.h | 19 +++++++++++++++---- src/map/itemdb.h | 2 ++ src/map/pc.c | 12 ++++++++++++ src/map/script.c | 2 +- src/map/skill.c | 47 +++++++++++++++++++++++++++-------------------- 6 files changed, 58 insertions(+), 26 deletions(-) diff --git a/src/map/clif.c b/src/map/clif.c index 886a4cddee..5469f1c7f5 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -5473,7 +5473,7 @@ void clif_cooking_list(struct map_session_data *sd, int trigger, uint16 skill_id } else { clif_menuskill_clear(sd); #if PACKETVER >= 20090922 - clif_msg_skill(sd,skill_id,0x625); + clif_msg_skill(sd,skill_id,INVENTORY_SPACE_FULL); #else WFIFOW(fd,2) = 6 + 2 * c; WFIFOSET(fd,WFIFOW(fd,2)); diff --git a/src/map/clif.h b/src/map/clif.h index 28d9b31aca..52e2c6fa73 100644 --- a/src/map/clif.h +++ b/src/map/clif.h @@ -344,14 +344,25 @@ enum useskill_fail_cause }; enum clif_messages { - MERC_MSG_BASE = 1266, //0x4f2 - SKILL_CANT_USE_AREA = 0x536, - VIEW_EQUIP_FAIL = 0x54d, - USAGE_FAIL = 0x783, ADDITEM_TO_CART_FAIL_WEIGHT = 0x0, ADDITEM_TO_CART_FAIL_COUNT = 0x1, + ITEM_CANT_OBTAIN_WEIGHT = 0x34, /* You cannot carry more items because you are overweight. */ + ITEM_NOUSE_SITTING = 0x297, + MERC_MSG_BASE = 0x4f2, + SKILL_CANT_USE_AREA = 0x536, + ITEM_CANT_USE_AREA = 0x537, + VIEW_EQUIP_FAIL = 0x54d, + RUNE_CANT_CREATE = 0x61b, + ITEM_CANT_COMBINE = 0x623, + INVENTORY_SPACE_FULL = 0x625, + ITEM_PRODUCE_SUCCESS = 0x627, + ITEM_PRODUCE_FAIL = 0x628, + ITEM_UNIDENTIFIED = 0x62d, + USAGE_FAIL = 0x783, + NEED_REINS_OF_MOUNT = 0x78c, }; + enum e_personalinfo { PINFO_BASIC = 0, PINFO_PREMIUM, diff --git a/src/map/itemdb.h b/src/map/itemdb.h index 3d85cdfe4b..c58f20a055 100644 --- a/src/map/itemdb.h +++ b/src/map/itemdb.h @@ -40,6 +40,7 @@ enum item_itemid { ITEMID_YELLOW_POTION = 503, ITEMID_WHITE_POTION = 504, ITEMID_BLUE_POTION = 505, + ITEMID_HOLY_WATER = 523, ITEMID_RED_SLIM_POTION = 545, ITEMID_YELLOW_SLIM_POTION = 546, ITEMID_WHITE_SLIM_POTION = 547, @@ -73,6 +74,7 @@ enum item_itemid { ITEMID_PHRACON = 1010, ITEMID_EMVERETARCON = 1011, ITEMID_TRAP = 1065, + ITEMID_PAINT_BRUSH = 6122, ITEMID_STRANGE_EMBRYO = 6415, ITEMID_STONE = 7049, ITEMID_FIRE_BOTTLE = 7135, diff --git a/src/map/pc.c b/src/map/pc.c index de11587301..f881b7d9d1 100755 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -4413,6 +4413,17 @@ int pc_isUseitem(struct map_session_data *sd,int n) else if( itemdb_is_poison(nameid) && (sd->class_&MAPID_THIRDMASK) != MAPID_GUILLOTINE_CROSS ) return 0; + /*if( item->group ) { //@TODO + if( pc_is90overweight(sd) ) { + clif_msgtable(sd->fd,ITEM_CANT_OBTAIN_WEIGHT); + return 0; + } + if( !pc_inventoryblank(sd) ) { + clif_colormes(sd,color_table[COLOR_RED],msg_txt(1477)); //Item cannot be open when inventory is full + return 0; + } + }*/ + //Gender check if(item->sex != 2 && sd->status.sex != item->sex) return 0; @@ -4549,6 +4560,7 @@ int pc_useitem(struct map_session_data *sd,int n) /* on restricted maps the item is consumed but the effect is not used */ if (!pc_has_permission(sd,PC_PERM_ITEM_UNCONDITIONAL) && itemdb_isNoEquip(id,sd->bl.m)) { + clif_msg(sd,ITEM_CANT_USE_AREA); // This item cannot be used within this area if( battle_config.allow_consume_restricted_item && !id->flag.delay_consume ) { //need confirmation for delayed consumption items clif_useitemack(sd,n,item.amount-1,true); pc_delitem(sd,n,1,1,0,LOG_TYPE_CONSUME); diff --git a/src/map/script.c b/src/map/script.c index c171fcbde5..7d919db227 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -17697,7 +17697,7 @@ BUILDIN_FUNC(setmounting) { if( (sd = script_rid2sd(st)) == NULL ) return 0; if( &sd->sc && sd->sc.option&(OPTION_WUGRIDER|OPTION_RIDING|OPTION_DRAGON|OPTION_MADOGEAR) ) { - clif_msgtable(sd->fd, 0x78b); + clif_msgtable(sd->fd, NEED_REINS_OF_MOUNT); script_pushint(st,0); //can't mount with one of these } else { if( &sd->sc && sd->sc.data[SC_ALL_RIDING] ) diff --git a/src/map/skill.c b/src/map/skill.c index 1bf50dc4f0..3d9a5f61fa 100755 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -529,7 +529,7 @@ bool skill_isNotOk(uint16 skill_id, struct map_session_data *sd) (map_flag_gvg(m) && skill_get_nocast (skill_id) & 4) || (map[m].flag.battleground && skill_get_nocast (skill_id) & 8) || (map[m].flag.restricted && map[m].zone && skill_get_nocast (skill_id) & (8*map[m].zone)) ){ - clif_msg(sd, 0x536); // This skill cannot be used within this area + clif_msg(sd, SKILL_CANT_USE_AREA); // This skill cannot be used within this area return true; } @@ -14622,18 +14622,24 @@ bool skill_check_condition_castend(struct map_session_data* sd, uint16 skill_id, continue; index[i] = pc_search_inventory(sd,require.itemid[i]); if( index[i] < 0 || sd->status.inventory[index[i]].amount < require.amount[i] ) { - //if( require.itemid[i] == ITEMID_RED_GEMSTONE ) - // clif_skill_fail(sd,skill_id,USESKILL_FAIL_REDJAMSTONE,0);// red gemstone required - //else if( require.itemid[i] == ITEMID_BLUE_GEMSTONE ) - // clif_skill_fail(sd,skill_id,USESKILL_FAIL_BLUEJAMSTONE,0);// blue gemstone required - //else { + if( require.itemid[i] == ITEMID_HOLY_WATER ) + clif_skill_fail(sd,skill_id,USESKILL_FAIL_HOLYWATER,0); //Holy water is required. + else if( require.itemid[i] == ITEMID_RED_GEMSTONE ) + clif_skill_fail(sd,skill_id,USESKILL_FAIL_REDJAMSTONE,0); //Red gemstone is required. + else if( require.itemid[i] == ITEMID_BLUE_GEMSTONE ) + clif_skill_fail(sd,skill_id,USESKILL_FAIL_BLUEJAMSTONE,0); //Blue gemstone is required. + else if( require.itemid[i] == ITEMID_PAINT_BRUSH ) + clif_skill_fail(sd,skill_id,USESKILL_FAIL_PAINTBRUSH,0); //Paint brush is required. + else if( require.itemid[i] == ITEMID_ANCILLA ) + clif_skill_fail(sd,skill_id,USESKILL_FAIL_ANCILLA,0); //Ancilla is required. + else { + char output[128]; + //Official is using msgstringtable.txt for each requirement failure - char output[CHAT_SIZE_MAX]; //clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); - //sprintf(output, "You need itemid=%d, amount=%d", require.itemid[i], require.amount[i]); sprintf(output, msg_txt(sd,720), itemdb_jname(require.itemid[i])); // %s is required. clif_colormes(sd,color_table[COLOR_RED],output); - //} + } return false; } } @@ -14727,6 +14733,7 @@ void skill_consume_requirement( struct map_session_data *sd, uint16 skill_id, ui case SA_VIOLENTGALE: if( sc && sc->data[SC_WILD_STORM_OPTION] && rnd()%100 < 50 ) continue; + break; case RL_H_MINE: if (sd->flicker) continue; @@ -17505,7 +17512,7 @@ int skill_produce_mix (struct map_session_data *sd, uint16 skill_id, int nameid, for( i = 0; i < MAX_INVENTORY; i++ ) { if( sd->status.inventory[i].nameid == nameid ) { if( sd->status.inventory[i].amount >= data->stack.amount ) { - clif_msgtable(sd->fd,0x61b); + clif_msgtable(sd->fd,RUNE_CANT_CREATE); return 0; } else { /** @@ -17947,8 +17954,8 @@ int skill_produce_mix (struct map_session_data *sd, uint16 skill_id, int nameid, } break; } - if( k ){ - clif_msg_skill(sd,skill_id,0x627); + if( k ) { + clif_msg_skill(sd,skill_id,ITEM_PRODUCE_SUCCESS); return 1; } } else if (tmp_item.amount) { //Success @@ -17957,7 +17964,7 @@ int skill_produce_mix (struct map_session_data *sd, uint16 skill_id, int nameid, map_addflooritem(&tmp_item,tmp_item.amount,sd->bl.m,sd->bl.x,sd->bl.y,0,0,0,0); } if( skill_id == GN_MIX_COOKING || skill_id == GN_MAKEBOMB || skill_id == GN_S_PHARMACY ) - clif_msg_skill(sd,skill_id,0x627); + clif_msg_skill(sd,skill_id,ITEM_PRODUCE_SUCCESS); return 1; } } @@ -18008,13 +18015,13 @@ int skill_produce_mix (struct map_session_data *sd, uint16 skill_id, int nameid, clif_additem(sd,0,0,flag); map_addflooritem(&tmp_item,tmp_item.amount,sd->bl.m,sd->bl.x,sd->bl.y,0,0,0,0); } - clif_msg_skill(sd,skill_id,0x628); + clif_msg_skill(sd,skill_id,ITEM_PRODUCE_FAIL); } break; case GN_MAKEBOMB: case GN_S_PHARMACY: case GN_CHANGEMATERIAL: - clif_msg_skill(sd,skill_id,0x628); + clif_msg_skill(sd,skill_id,ITEM_PRODUCE_FAIL); break; default: if( skill_produce_db[idx].itemlv > 10 && skill_produce_db[idx].itemlv <= 20 ) @@ -18340,7 +18347,7 @@ int skill_changematerial(struct map_session_data *sd, int n, unsigned short *ite nameid = sd->status.inventory[idx].nameid; amount = item_list[k*2+1]; if( nameid > 0 && sd->status.inventory[idx].identify == 0 ){ - clif_msg_skill(sd,GN_CHANGEMATERIAL,0x62D); + clif_msg_skill(sd,GN_CHANGEMATERIAL,ITEM_UNIDENTIFIED); return 0; } if( nameid == skill_produce_db[i].mat_id[j] && (amount-p*skill_produce_db[i].mat_amount[j]) >= skill_produce_db[i].mat_amount[j] @@ -18362,7 +18369,7 @@ int skill_changematerial(struct map_session_data *sd, int n, unsigned short *ite } if( p == 0) - clif_msg_skill(sd,GN_CHANGEMATERIAL,0x623); + clif_msg_skill(sd,GN_CHANGEMATERIAL,ITEM_CANT_COMBINE); return 0; } @@ -19344,7 +19351,7 @@ static bool skill_parse_row_requiredb(char* split[], int columns, int current) else if( strcmpi(split[10],"elementalspirit") == 0 ) skill_db[idx].require.state = ST_ELEMENTALSPIRIT; else if( strcmpi(split[10],"peco") == 0 ) skill_db[idx].require.state = ST_PECO; else skill_db[idx].require.state = ST_NONE; // Unknown or no state - + //Status requirements trim(split[11]); if (split[11][0] != '\0') { @@ -19355,9 +19362,9 @@ static bool skill_parse_row_requiredb(char* split[], int columns, int current) skill_db[idx].require.status[i] = (sc_type)require[i]; } } - + skill_split_atoi(split[12],skill_db[idx].require.spiritball); - + for( i = 0; i < MAX_SKILL_ITEM_REQUIRE; i++ ) { skill_db[idx].require.itemid[i] = atoi(split[13+ 2*i]); skill_db[idx].require.amount[i] = atoi(split[14+ 2*i]);