summaryrefslogtreecommitdiff
path: root/src/map/pc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/pc.c')
-rw-r--r--src/map/pc.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/map/pc.c b/src/map/pc.c
index 79a898cff..49d880767 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -2494,11 +2494,17 @@ int pc_skill(TBL_PC* sd, int id, int level, int flag)
{
nullpo_retr(0, sd);
- if( level > MAX_SKILL_LEVEL ){
+ if( id <= 0 || id >= MAX_SKILL || skill_db[id].name == NULL) {
if( battle_config.error_log )
- ShowError("pc_skill: Skill level %d too high. Max lv supported is MAX_SKILL_LEVEL (%d)\n", level, MAX_SKILL_LEVEL);
+ ShowError("pc_skill: Skill with id %d does not exist in the skill database\n", id);
return 0;
}
+ if( level > MAX_SKILL_LEVEL ) {
+ if( battle_config.error_log )
+ ShowError("pc_skill: Skill level %d too high. Max lv supported is %d\n", level, MAX_SKILL_LEVEL);
+ return 0;
+ }
+
switch( flag ){
case 0: //Set skill data overwriting whatever was there before.
sd->status.skill[id].id = id;