pc_isUseitem: update flywings list (#7487)

Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
This commit is contained in:
Balfear 2022-12-20 16:03:59 +03:00 committed by GitHub
parent 5b8d0ee6a5
commit 3b71f77c27
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 144 additions and 60 deletions

View File

@ -7433,3 +7433,45 @@ Body:
Rate: 1 Rate: 1
- Item: Gold_Tiara_ - Item: Gold_Tiara_
Rate: 1 Rate: 1
- Group: MF_NOTELEPORT
SubGroups:
- SubGroup: 0
List:
- Item: Wing_Of_Fly
- Item: Giant_Fly_Wing
- Item: N_Fly_Wing
- Item: E_Giant_Fly_Wing
- Item: F_Giant_Fly_Wing
- Group: MF_NORETURN
SubGroups:
- SubGroup: 0
List:
- Item: Wing_Of_Butterfly
- Item: N_Butterfly_Wing
- Item: Dun_Tele_Scroll1
- Item: Dun_Tele_Scroll2
- Item: Dun_Tele_Scroll3
- Item: E_Dun_Tele_Scroll1
- Item: F_Dun_Tele_Scroll1
- Item: WOB_Rune
- Item: E_WOB_Rune
- Item: F_WOB_Rune
- Item: WOB_Schwaltz
- Item: E_WOB_Schwaltz
- Item: F_WOB_Schwaltz
- Item: WOB_Rachel
- Item: E_WOB_Rachel
- Item: F_WOB_Rachel
- Item: WOB_Local
- Item: WOB_Local
- Item: WOB_Local
- Item: Siege_Teleport_Scroll
- Item: Siege_Teleport_Scroll2
- Item: E_Siege_Teleport_Scroll
- Group: GIANT_FLY_WING
SubGroups:
- SubGroup: 0
List:
- Item: Giant_Fly_Wing
- Item: E_Giant_Fly_Wing
- Item: F_Giant_Fly_Wing

View File

@ -48950,3 +48950,49 @@ Body:
List: List:
- Item: Poison_Bottle - Item: Poison_Bottle
- Item: Poison_Bottle_B - Item: Poison_Bottle_B
- Group: MF_NOTELEPORT
SubGroups:
- SubGroup: 0
List:
- Item: Wing_Of_Fly
- Item: Giant_Fly_Wing
- Item: N_Fly_Wing
- Item: E_Giant_Fly_Wing
- Item: F_Giant_Fly_Wing
- Item: C_Wing_Of_Fly
- Item: N_Fly_Wing_
- Item: Compressed_Wing_Of_Fly
- Item: Comp_Wing_Of_Fly
- Group: MF_NORETURN
SubGroups:
- SubGroup: 0
List:
- Item: Wing_Of_Butterfly
- Item: N_Butterfly_Wing
- Item: Dun_Tele_Scroll1
- Item: Dun_Tele_Scroll2
- Item: Dun_Tele_Scroll3
- Item: E_Dun_Tele_Scroll1
- Item: F_Dun_Tele_Scroll1
- Item: WOB_Rune
- Item: E_WOB_Rune
- Item: F_WOB_Rune
- Item: WOB_Schwaltz
- Item: E_WOB_Schwaltz
- Item: F_WOB_Schwaltz
- Item: WOB_Rachel
- Item: E_WOB_Rachel
- Item: F_WOB_Rachel
- Item: WOB_Local
- Item: WOB_Local
- Item: WOB_Local
- Item: Siege_Teleport_Scroll
- Item: Siege_Teleport_Scroll2
- Item: E_Siege_Teleport_Scroll
- Group: GIANT_FLY_WING
SubGroups:
- SubGroup: 0
List:
- Item: Giant_Fly_Wing
- Item: E_Giant_Fly_Wing
- Item: F_Giant_Fly_Wing

View File

@ -51,8 +51,6 @@ enum item_itemid : t_itemid
ITEMID_RED_SLIM_POTION = 545, ITEMID_RED_SLIM_POTION = 545,
ITEMID_YELLOW_SLIM_POTION = 546, ITEMID_YELLOW_SLIM_POTION = 546,
ITEMID_WHITE_SLIM_POTION = 547, ITEMID_WHITE_SLIM_POTION = 547,
ITEMID_WING_OF_FLY = 601,
ITEMID_WING_OF_BUTTERFLY = 602,
ITEMID_ANODYNE = 605, ITEMID_ANODYNE = 605,
ITEMID_ALOEBERA = 606, ITEMID_ALOEBERA = 606,
ITEMID_MAGNIFIER = 611, ITEMID_MAGNIFIER = 611,
@ -101,28 +99,17 @@ enum item_itemid : t_itemid
ITEMID_COOKIE_BAT = 11605, ITEMID_COOKIE_BAT = 11605,
ITEMID_MERCENARY_RED_POTION = 12184, ITEMID_MERCENARY_RED_POTION = 12184,
ITEMID_MERCENARY_BLUE_POTION = 12185, ITEMID_MERCENARY_BLUE_POTION = 12185,
ITEMID_GIANT_FLY_WING = 12212,
ITEMID_NEURALIZER = 12213, ITEMID_NEURALIZER = 12213,
ITEMID_M_CENTER_POTION = 12241, ITEMID_M_CENTER_POTION = 12241,
ITEMID_M_AWAKENING_POTION = 12242, ITEMID_M_AWAKENING_POTION = 12242,
ITEMID_M_BERSERK_POTION = 12243, ITEMID_M_BERSERK_POTION = 12243,
ITEMID_N_FLY_WING = 12323,
ITEMID_N_BUTTERFLY_WING = 12324,
ITEMID_NOVICE_MAGNIFIER = 12325, ITEMID_NOVICE_MAGNIFIER = 12325,
ITEMID_ANCILLA = 12333, ITEMID_ANCILLA = 12333,
ITEMID_DUN_TELE_SCROLL3 = 12352,
ITEMID_REINS_OF_MOUNT = 12622, ITEMID_REINS_OF_MOUNT = 12622,
ITEMID_NOBLE_NAMEPLATE = 12705, ITEMID_NOBLE_NAMEPLATE = 12705,
ITEMID_SILVER_BULLET = 13201, ITEMID_SILVER_BULLET = 13201,
ITEMID_PURIFICATION_BULLET = 13220, ITEMID_PURIFICATION_BULLET = 13220,
ITEMID_SILVER_BULLET_ = 13221, ITEMID_SILVER_BULLET_ = 13221,
ITEMID_DUN_TELE_SCROLL1 = 14527,
ITEMID_DUN_TELE_SCROLL2 = 14581,
ITEMID_WOB_RUNE = 14582,
ITEMID_WOB_SCHWALTZ = 14583,
ITEMID_WOB_RACHEL = 14584,
ITEMID_WOB_LOCAL = 14585,
ITEMID_SIEGE_TELEPORT_SCROLL = 14591,
ITEMID_INVENTORY_EX_EVT = 25791, ITEMID_INVENTORY_EX_EVT = 25791,
ITEMID_INVENTORY_EX_DIS = 25792, ITEMID_INVENTORY_EX_DIS = 25792,
ITEMID_INVENTORY_EX = 25793, ITEMID_INVENTORY_EX = 25793,
@ -1836,6 +1823,9 @@ enum e_random_item_group {
IG_BLACKSMITH_BLESS_BOX_3, IG_BLACKSMITH_BLESS_BOX_3,
IG_SHADOW_HAMMER_BOX_3, IG_SHADOW_HAMMER_BOX_3,
IG_EDP, IG_EDP,
IG_MF_NOTELEPORT,
IG_MF_NORETURN,
IG_GIANT_FLY_WING,
IG_MAX, IG_MAX,
}; };

View File

@ -6053,54 +6053,57 @@ bool pc_isUseitem(map_session_data *sd,int n)
if (item->flag.dead_branch && (mapdata->flag[MF_NOBRANCH] || mapdata_flag_gvg2(mapdata))) if (item->flag.dead_branch && (mapdata->flag[MF_NOBRANCH] || mapdata_flag_gvg2(mapdata)))
return false; return false;
if( itemdb_group.item_exists( IG_MF_NOTELEPORT, nameid ) ){
if( ( mapdata->flag[MF_NOTELEPORT] || mapdata_flag_gvg2( mapdata ) ) ){
clif_skill_teleportmessage( sd, 0 );
return false;
}
if( sd->duel_group && !battle_config.duel_allow_teleport ){
clif_displaymessage( sd->fd, msg_txt( sd, 663 ) ); // Duel: Can't use this item in duel.
return false;
}
}
if( itemdb_group.item_exists( MF_NORETURN, nameid ) ){
if( mapdata->flag[MF_NORETURN] ){
return false;
}
if( sd->duel_group && !battle_config.duel_allow_teleport ){
clif_displaymessage( sd->fd, msg_txt( sd, 663 ) ); // Duel: Can't use this item in duel.
return false;
}
}
if( itemdb_group.item_exists( IG_GIANT_FLY_WING, nameid ) ){
struct party_data *pd = party_search( sd->status.party_id );
if( pd ){
int i;
ARR_FIND( 0, MAX_PARTY, i, pd->data[i].sd == sd && pd->party.member[i].leader );
// User is not party leader
if( i == MAX_PARTY ){
clif_msg( sd, ITEM_PARTY_MEMBER_NOT_SUMMONED );
return false;
}
ARR_FIND( 0, MAX_PARTY, i, pd->data[i].sd && pd->data[i].sd != sd && pd->data[i].sd->bl.m == sd->bl.m && !pc_isdead( pd->data[i].sd ) );
// No party members found on same map
if( i == MAX_PARTY ){
clif_msg( sd, ITEM_PARTY_NO_MEMBER_IN_MAP );
return false;
}
}else{
clif_msg( sd, ITEM_PARTY_MEMBER_NOT_SUMMONED );
return false;
}
}
switch( nameid ) { switch( nameid ) {
case ITEMID_WING_OF_FLY:
case ITEMID_GIANT_FLY_WING:
case ITEMID_N_FLY_WING:
if( mapdata->flag[MF_NOTELEPORT] || mapdata_flag_gvg2(mapdata) ) {
clif_skill_teleportmessage(sd,0);
return false;
}
if (nameid == ITEMID_GIANT_FLY_WING) {
struct party_data *pd = party_search(sd->status.party_id);
if (pd) {
int i;
ARR_FIND(0, MAX_PARTY, i, pd->data[i].sd == sd && pd->party.member[i].leader);
if (i == MAX_PARTY) { // User is not party leader
clif_msg(sd, ITEM_PARTY_MEMBER_NOT_SUMMONED);
break;
}
ARR_FIND(0, MAX_PARTY, i, pd->data[i].sd && pd->data[i].sd != sd && pd->data[i].sd->bl.m == sd->bl.m && !pc_isdead(pd->data[i].sd));
if (i == MAX_PARTY) { // No party members found on same map
clif_msg(sd, ITEM_PARTY_NO_MEMBER_IN_MAP);
break;
}
} else {
clif_msg(sd, ITEM_PARTY_MEMBER_NOT_SUMMONED);
break;
}
}
// Fall through
case ITEMID_WING_OF_BUTTERFLY:
case ITEMID_N_BUTTERFLY_WING:
case ITEMID_DUN_TELE_SCROLL1:
case ITEMID_DUN_TELE_SCROLL2:
case ITEMID_DUN_TELE_SCROLL3:
case ITEMID_WOB_RUNE:
case ITEMID_WOB_SCHWALTZ:
case ITEMID_WOB_RACHEL:
case ITEMID_WOB_LOCAL:
case ITEMID_SIEGE_TELEPORT_SCROLL:
if( sd->duel_group && !battle_config.duel_allow_teleport ) {
clif_displaymessage(sd->fd, msg_txt(sd,663));
return false;
}
if( mapdata->flag[MF_NORETURN] && nameid != ITEMID_WING_OF_FLY && nameid != ITEMID_GIANT_FLY_WING && nameid != ITEMID_N_FLY_WING )
return false;
break;
case ITEMID_MERCENARY_RED_POTION: case ITEMID_MERCENARY_RED_POTION:
case ITEMID_MERCENARY_BLUE_POTION: case ITEMID_MERCENARY_BLUE_POTION:
case ITEMID_M_CENTER_POTION: case ITEMID_M_CENTER_POTION:

View File

@ -6634,6 +6634,9 @@
export_constant(IG_BLACKSMITH_BLESS_BOX_3); export_constant(IG_BLACKSMITH_BLESS_BOX_3);
export_constant(IG_SHADOW_HAMMER_BOX_3); export_constant(IG_SHADOW_HAMMER_BOX_3);
export_constant(IG_EDP); export_constant(IG_EDP);
export_constant(IG_MF_NOTELEPORT);
export_constant(IG_MF_NORETURN);
export_constant(IG_GIANT_FLY_WING);
/* unit stop walking */ /* unit stop walking */
export_constant(USW_NONE); export_constant(USW_NONE);