* Some minor changes to Sacrifice in battle.c

* Set the Emperium to be immune to Sacrifice
* Set the Emperium to be have max status effects immunity

git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1294 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
celest 2005-03-25 11:08:48 +00:00
parent f9452b9683
commit 6765fd327f
3 changed files with 13 additions and 4 deletions

View File

@ -1,6 +1,9 @@
Date Added Date Added
03/25 03/25
* Some minor changes to Sacrifice in battle.c [celest]
* Set the Emperium to be immune to Sacrifice [celest]
* Set the Emperium to be have max status effects immunity [celest]
* Fixed indoorsrwstable.txt reading even when 'indoors_override_grffile' is * Fixed indoorsrwstable.txt reading even when 'indoors_override_grffile' is
set to 'no' [celest] set to 'no' [celest]
* Fixed @monsterbig/@monstersmall not working [celest] * Fixed @monsterbig/@monstersmall not working [celest]

View File

@ -402,7 +402,7 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,int damage,i
if(class_ == 1288 || class_ == 1287 || class_ == 1286 || class_ == 1285) { if(class_ == 1288 || class_ == 1287 || class_ == 1286 || class_ == 1285) {
// if(class_ == 1288) { // if(class_ == 1288) {
if(class_ == 1288 && (flag&BF_SKILL || skill_num == ASC_BREAKER)) if(class_ == 1288 && (flag&BF_SKILL || skill_num == ASC_BREAKER || skill_num == PA_SACRIFICE))
damage=0; damage=0;
if(src->type == BL_PC) { if(src->type == BL_PC) {
struct guild *g=guild_search(((struct map_session_data *)src)->status.guild_id); struct guild *g=guild_search(((struct map_session_data *)src)->status.guild_id);
@ -2436,6 +2436,8 @@ static struct Damage battle_calc_pc_weapon_attack(
hitrate = 1000000; hitrate = 1000000;
s_ele = 0; s_ele = 0;
s_ele_ = 0; s_ele_ = 0;
skill_num = PA_SACRIFICE;
//clif_skill_nodamage(src,target,skill_num,skill_lv,1); // this doesn't show effect either.. hmm =/
sc_data[SC_SACRIFICE].val2 --; sc_data[SC_SACRIFICE].val2 --;
if (sc_data[SC_SACRIFICE].val2 == 0) if (sc_data[SC_SACRIFICE].val2 == 0)
status_change_end(src, SC_SACRIFICE,-1); status_change_end(src, SC_SACRIFICE,-1);

View File

@ -2978,9 +2978,13 @@ int status_get_sc_def(struct block_list *bl, int type)
break; break;
} }
if(bl->type == BL_MOB && sc_def < 50) if(bl->type == BL_MOB) {
sc_def = 50; struct mob_data *md = (struct mob_data *)bl;
else if(bl->type == BL_PC) { if (md && md->class_ == 1288)
return 0;
if (sc_def < 50)
sc_def = 50;
} else if(bl->type == BL_PC) {
struct status_change* sc_data = status_get_sc_data(bl); struct status_change* sc_data = status_get_sc_data(bl);
if (sc_data && sc_data[SC_GOSPEL].timer != -1 && if (sc_data && sc_data[SC_GOSPEL].timer != -1 &&
sc_data[SC_GOSPEL].val4 == BCT_PARTY && sc_data[SC_GOSPEL].val4 == BCT_PARTY &&