diff options
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/pc.c | 10 | ||||
-rw-r--r-- | src/map/script.c | 4 |
2 files changed, 10 insertions, 4 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; diff --git a/src/map/script.c b/src/map/script.c index cfe0ce1b0..a4e348083 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -5758,12 +5758,12 @@ BUILDIN_FUNC(deletearray) if( is_string_variable(name) ) { for( ; start < end; ++start ) - set_reg(st, sd, reference_uid(id, start), name, (void*)0, reference_getref(data)); + set_reg(st, sd, reference_uid(id, start), name, (void *)"", reference_getref(data)); } else { for( ; start < end; ++start ) - set_reg(st, sd, reference_uid(id, start), name, (void *)"", reference_getref(data)); + set_reg(st, sd, reference_uid(id, start), name, (void*)0, reference_getref(data)); } return 0; } |