Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions doc/item_bonus.txt
Original file line number Diff line number Diff line change
Expand Up @@ -446,6 +446,7 @@ bonus2 bAddSkillBlow,sk,n; Knock back the target by n cells when using skill sk
bonus bNoKnockback,n; Character is no longer knocked back by enemy skills with such effect (n is meaningless)
bonus bNoGemStone,n; Skills requiring Gemstones do not require them (n is meaningless)
NOTE: Hocus Pocus still requires 1 Yellow Gemstone, Ganbantein requirements not reduced
bonus bNoEleStone,n; Removes Flame, Ice, Wind Stone, or Shadow Orb from skill requirement. 'n' is meaningless
bonus bIntravision,n; Always see Hiding and Cloaking players/mobs (n is meaningless)
bonus bPerfectHide,n; Hidden/cloaked character is no longer detected by monsters with 'detector' mode (n is meaningless)
bonus bRestartFullRecover,n; When reviving, HP and SP are fully healed (n is meaningless)
Expand Down
5 changes: 5 additions & 0 deletions src/map/itemdb.h
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,10 @@ enum item_itemid
ITEMID_COATING_BOTTLE = 7139,
ITEMID_FRAGMENT_OF_CRYSTAL = 7321,
ITEMID_SKULL_ = 7420,
ITEMID_FLAME_STONE = 7521,
ITEMID_ICE_STONE = 7522,
ITEMID_WIND_STONE = 7523,
ITEMID_SHADOW_ORB = 7524,
ITEMID_TOKEN_OF_SIEGFRIED = 7621,
ITEMID_TRAP_ALLOY = 7940,
ITEMID_CATNIP_FRUIT = 11602,
Expand Down Expand Up @@ -489,6 +493,7 @@ struct item_data* itemdb_exists(unsigned short nameid);
#define itemdb_iscashfood(id) ( (id) >= ITEMID_STR_DISH10_ && (id) <= ITEMID_VIT_DISH10_ )
#define itemdb_is_GNbomb(n) (n >= ITEMID_APPLE_BOMB && n <= ITEMID_VERY_HARD_LUMP)
#define itemdb_is_GNthrowable(n) (n >= ITEMID_MYSTERIOUS_POWDER && n <= ITEMID_BLACK_THING_TO_THROW)
#define itemid_iselestone(id) ( (id) >= ITEMID_FLAME_STONE && (id) <= ITEMID_SHADOW_ORB )
const char* itemdb_typename(enum item_types type);
const char *itemdb_typename_ammo (enum e_item_ammo ammo);
bool itemdb_is_spellbook2(unsigned short nameid);
Expand Down
1 change: 1 addition & 0 deletions src/map/map.h
Original file line number Diff line number Diff line change
Expand Up @@ -477,6 +477,7 @@ enum _sp {
SP_STATE_NORECOVER_RACE, SP_CRITICAL_RANGEATK, SP_MAGIC_ADDRACE2, SP_IGNORE_MDEF_RACE2_RATE, // 2079-2082
SP_WEAPON_ATK_RATE, SP_WEAPON_MATK_RATE, SP_DROP_ADDRACE, SP_DROP_ADDCLASS, SP_NO_MADO_FUEL, // 2083-2087
SP_IGNORE_DEF_CLASS_RATE, SP_REGEN_PERCENT_HP, SP_REGEN_PERCENT_SP, //2088-2091
SP_NO_ELESTONE,
};

enum _look {
Expand Down
4 changes: 4 additions & 0 deletions src/map/pc.c
Original file line number Diff line number Diff line change
Expand Up @@ -3044,6 +3044,10 @@ void pc_bonus(struct map_session_data *sd,int type,int val)
if (sd->state.lr_flag != 2)
sd->special_state.no_mado_fuel = 1;
break;
case SP_NO_ELESTONE: // bonus bNoEleStone,n;
if(sd->state.lr_flag != 2)
sd->special_state.no_elestone = 1;
break;
default:
if (running_npc_stat_calc_event) {
ShowWarning("pc_bonus: unknown bonus type %d %d in OnPCStatCalcEvent!\n", type, val);
Expand Down
1 change: 1 addition & 0 deletions src/map/pc.h
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,7 @@ struct map_session_data {
unsigned int no_knockback : 1;
unsigned int bonus_coma : 1;
unsigned int no_mado_fuel : 1; // Disable Magic_Gear_Fuel consumption [Secret]
unsigned int no_elestone : 1; // bNoEleStone [Cydh]
} special_state;
uint32 login_id1, login_id2;
unsigned short class_; //This is the internal job ID used by the map server to simplify comparisons/queries/etc. [Skotlex]
Expand Down
2 changes: 2 additions & 0 deletions src/map/script_constants.h
Original file line number Diff line number Diff line change
Expand Up @@ -3174,6 +3174,8 @@
export_constant(STOR_MODE_GET);
export_constant(STOR_MODE_PUT);

script_set_constant("bNoEleStone",SP_NO_ELESTONE,false);

#undef export_constant

#endif /* _SCRIPT_CONSTANTS_H_ */
2 changes: 2 additions & 0 deletions src/map/skill.c
Original file line number Diff line number Diff line change
Expand Up @@ -15964,6 +15964,8 @@ struct skill_condition skill_get_requirement(struct map_session_data* sd, uint16
}
}
}
else if (sd->special_state.no_elestone && itemid_iselestone(req.itemid[i]))
req.itemid[i] = req.amount[i] = 0;
// Check requirement for Magic Gear Fuel
if (req.itemid[i] == ITEMID_MAGIC_GEAR_FUEL) {
if (sd->special_state.no_mado_fuel)
Expand Down