diff options
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/battle.c | 21 | ||||
-rw-r--r-- | src/map/pc.c | 20 | ||||
-rw-r--r-- | src/map/skill.c | 32 |
3 files changed, 44 insertions, 29 deletions
diff --git a/src/map/battle.c b/src/map/battle.c index 24547762d..00ca5a9e0 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -2057,8 +2057,9 @@ static struct Damage battle_calc_pet_weapon_attack( damage2 = damage2*(100+ 40*skill_lv)/100; break; case MO_FINGEROFFENSIVE: //Žw’e - damage = damage * (100 + 50 * skill_lv) / 100; + damage = damage * (125 + 25 * skill_lv) / 100; div_ = 1; + flag=(flag&~BF_RANGEMASK)|BF_LONG; //orn break; case MO_INVESTIGATE: // ” ™¤ if(def1 < 1000000) @@ -2549,8 +2550,9 @@ static struct Damage battle_calc_mob_weapon_attack( damage2 = damage2*(100+ 40*skill_lv)/100; break; case MO_FINGEROFFENSIVE: //Žw’e - damage = damage * (100 + 50 * skill_lv) / 100; + damage = damage * (125 + 25 * skill_lv) / 100; div_ = 1; + flag=(flag&~BF_RANGEMASK)|BF_LONG; //orn break; case MO_INVESTIGATE: // ” ™¤ if(def1 < 1000000) @@ -3329,15 +3331,16 @@ static struct Damage battle_calc_pc_weapon_attack( break; case MO_FINGEROFFENSIVE: //Žw’e if(battle_config.finger_offensive_type == 0) { - damage = damage * (100 + 50 * skill_lv) / 100 * sd->spiritball_old; - damage2 = damage2 * (100 + 50 * skill_lv) / 100 * sd->spiritball_old; + damage = damage * (125 + 25 * skill_lv) / 100 * sd->spiritball_old; + damage2 = damage2 * (125 + 25 * skill_lv) / 100 * sd->spiritball_old; div_ = sd->spiritball_old; } else { - damage = damage * (100 + 50 * skill_lv) / 100; - damage2 = damage2 * (100 + 50 * skill_lv) / 100; + damage = damage * (125 + 25 * skill_lv) / 100; + damage2 = damage2 * (125 + 25 * skill_lv) / 100; div_ = 1; } + flag=(flag&~BF_RANGEMASK)|BF_LONG; //orn break; case MO_INVESTIGATE: // ” ™¤ if(def1 < 1000000) { @@ -5418,7 +5421,7 @@ void battle_set_defaults() { battle_config.ban_spoof_namer = 5; // added by [Yor] (default: 5 minutes) battle_config.hack_info_GM_level = 60; // added by [Yor] (default: 60, GM level) battle_config.any_warp_GM_min_level = 20; // added by [Yor] - battle_config.packet_ver_flag = 63; // added by [Yor] + battle_config.packet_ver_flag = 511; // added by [Yor] battle_config.min_hair_style = 0; battle_config.max_hair_style = 20; battle_config.min_hair_color = 0; @@ -5548,8 +5551,8 @@ void battle_validate_conf() { battle_config.any_warp_GM_min_level = 100; // at least 1 client must be accepted - if ((battle_config.packet_ver_flag & 63) == 0) // added by [Yor] - battle_config.packet_ver_flag = 63; // accept all clients + if ((battle_config.packet_ver_flag & 511) == 0) // added by [Yor] + battle_config.packet_ver_flag = 511; // accept all clients if (battle_config.night_darkness_level > 10) // Celest battle_config.night_darkness_level = 10; diff --git a/src/map/pc.c b/src/map/pc.c index 5ec5b8a1b..bbf40eae6 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -31,6 +31,7 @@ #include "nullpo.h" #include "atcommand.h" #include "log.h" +#include "showmsg.h" #ifndef TXT_ONLY // mail system [Valaris] #include "mail.h" @@ -841,6 +842,10 @@ int pc_authok(int id, int login_id2, time_t connect_until_time, struct mmo_chars } fclose(fp); } + else if(battle_config.error_log) { + sprintf(buf, "%s not found\n", motd_txt); + ShowWarning (buf); + } } #ifndef TXT_ONLY @@ -5947,10 +5952,15 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper) return 1; // check if we are changing from 1st to 2nd job - if (s_class.job > 0 && s_class.job < 7 && job >= 7 && job <= 21) - sd->change_level = sd->status.job_level; - else - sd->change_level = 0; + if (job >= 7 && job <= 21) { + if (s_class.job > 0 && s_class.job < 7) + sd->change_level = sd->status.job_level; + else + sd->change_level = 40; + } + else + sd->change_level = 0; + pc_setglobalreg (sd, "jobchange_level", sd->change_level); sd->status.class = sd->view_class = b_class; @@ -7341,7 +7351,7 @@ static int pc_natural_heal_sub(struct map_session_data *sd,va_list ap) { if ((battle_config.natural_heal_weight_rate > 100 || sd->weight*100/sd->max_weight < battle_config.natural_heal_weight_rate) && !pc_isdead(sd) && !pc_ishiding(sd) && - sd->sc_data[SC_POISON].timer == -1 && + !(sd->sc_data[SC_POISON].timer != -1 && sd->sc_data[SC_SLOWPOISON].timer == -1) && sd->sc_data[SC_BERSERK].timer == -1 ) { pc_natural_heal_hp(sd); if( sd->sc_data && sd->sc_data[SC_EXTREMITYFIST].timer == -1 && //ˆ¢C—…?‘Ô‚Å‚ÍSP‚ª‰ñ•œ‚µ‚È‚¢ diff --git a/src/map/skill.c b/src/map/skill.c index ed0521aec..dc708c906 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -2384,16 +2384,16 @@ int skill_castend_damage_id( struct block_list* src, struct block_list *bl,int s { struct status_change *sc_data = battle_get_sc_data(src); - if(!battle_config.finger_offensive_type) - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); - else { - skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); - if(sd) { - for(i=1;i<sd->spiritball_old;i++) - skill_addtimerskill(src,tick+i*200,bl->id,0,0,skillid,skilllv,BF_WEAPON,flag); - sd->canmove_tick = tick + (sd->spiritball_old-1)*200; + if(!battle_config.finger_offensive_type) + skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); + else { + skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag); + if(sd) { + for(i=1;i<sd->spiritball_old;i++) + skill_addtimerskill(src,tick+i*200,bl->id,0,0,skillid,skilllv,BF_WEAPON,flag); + sd->canmove_tick = tick + (sd->spiritball_old-1)*200; + } } - } if(sc_data && sc_data[SC_BLADESTOP].timer != -1) skill_status_change_end(src,SC_BLADESTOP,-1); } @@ -5965,14 +5965,16 @@ int skill_unit_onplace(struct skill_unit *src,struct block_list *bl,unsigned int int type=SkillStatusChangeTable[sg->skill_id]; if(sg->src_id == bl->id) break; - if(sc_data && sc_data[type].timer==-1) - skill_status_change_start(bl,type,sg->skill_lv,sg->val1,sg->val2, - (int)src,skill_get_time2(sg->skill_id,sg->skill_lv),0); - else if( (unit2=(struct skill_unit *)sc_data[type].val4) && unit2 != src ){ - if( unit2->group && DIFF_TICK(sg->tick,unit2->group->tick)>0 ) + if(sc_data) { + if (sc_data[type].timer==-1) skill_status_change_start(bl,type,sg->skill_lv,sg->val1,sg->val2, (int)src,skill_get_time2(sg->skill_id,sg->skill_lv),0); - ts->tick-=sg->interval; + else if( (unit2=(struct skill_unit *)sc_data[type].val4) && unit2 != src ){ + if( unit2->group && DIFF_TICK(sg->tick,unit2->group->tick)>0 ) + skill_status_change_start(bl,type,sg->skill_lv,sg->val1,sg->val2, + (int)src,skill_get_time2(sg->skill_id,sg->skill_lv),0); + ts->tick-=sg->interval; + } } } break; |