- When Kaizel (or super novice rebirth skill) triggers, you get debuffed now.
- Modified the player_cloak_check_type and monster_cloak_check_type settings. 1 makes it check for walls, 2 makes cloaking NOT end on normal attacks, and 4 makes cloaking NOT end when using skills. The default setting for players is still 1, but for mobs the default has been changed to 4. - Non-players can now use all skills while hidden. git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9109 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
186798af26
commit
4435ff8b9c
@ -4,6 +4,14 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
|
||||
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
|
||||
|
||||
2006/10/31
|
||||
* When Kaizel (or super novice rebirth skill) triggers, you get debuffed
|
||||
now. [Skotlex]
|
||||
* Modified the player_cloak_check_type and monster_cloak_check_type
|
||||
settings. 1 makes it check for walls, 2 makes cloaking NOT end on normal
|
||||
attacks, and 4 makes cloaking NOT end when using skills. The default
|
||||
setting for players is still 1, but for mobs the default has been changed
|
||||
to 4. [Skotlex]
|
||||
* Non-players can now use all skills while hidden. [Skotlex]
|
||||
* Added a check to prevent adding negative damage to the total accumulated
|
||||
damage in mob_damage. It could fix some exploits, even though mob_damage
|
||||
should never be invoked with negative damage anyway. [Skotlex]
|
||||
|
||||
@ -1,5 +1,11 @@
|
||||
Date Added
|
||||
|
||||
2006/10/31
|
||||
* Modified the player_cloak_check_type and monster_cloak_check_type
|
||||
settings. 1 makes it check for walls, 2 makes cloaking NOT end on normal
|
||||
attacks, and 4 makes cloaking NOT end when using skills. The default
|
||||
setting for players is still 1, but for mobs the default has been changed
|
||||
to 4 (skill.conf). [Skotlex]
|
||||
2006/10/25
|
||||
* Added exp-bonus settings exp_bonus_attacker and exp_bonus_max_attacker
|
||||
(exp.conf, default to 25 and 12) [Skotlex]
|
||||
|
||||
@ -144,14 +144,14 @@ skill_wall_check: yes
|
||||
// When cloaking, Whether the wall is checked or not. (Note 1)
|
||||
// Note: When the skill does not checks for walls, you will always be considered
|
||||
// as if you had a wall-next to you (you always get the wall-based speed).
|
||||
// When "cloaking lasts forever" is set, it means attacking or using skills
|
||||
// won't uncloak you, but being hit does.
|
||||
// Add the settings as required, being hit always uncloaks you.
|
||||
//
|
||||
// 0 = doesn't check for walls
|
||||
// 1 = it checks for walls
|
||||
// 2 = it doesn't checks for walls + your cloaking lasts forever
|
||||
// 3 = it checks for walls + your cloaking lasts forever
|
||||
// 1 = Check for walls
|
||||
// 2 = Cloaking is not cancelled when attacking.
|
||||
// 4 = Cloaking is not cancelled when using skills
|
||||
player_cloak_check_type: 1
|
||||
monster_cloak_check_type: 0
|
||||
monster_cloak_check_type: 4
|
||||
|
||||
// Can't place unlimited land skills at the same time (Note 4)
|
||||
land_skill_limit: 1
|
||||
|
||||
@ -1594,15 +1594,15 @@ void mob_damage(struct mob_data *md, struct block_list *src, int damage)
|
||||
{
|
||||
int char_id = 0, flag = 0;
|
||||
|
||||
if (damage > 0) //Store total damage...
|
||||
md->tdmg+=damage;
|
||||
|
||||
if(md->guardian_data && md->guardian_data->number < MAX_GUARDIANS) // guardian hp update [Valaris] (updated by [Skotlex])
|
||||
md->guardian_data->castle->guardian[md->guardian_data->number].hp = md->status.hp;
|
||||
|
||||
if (battle_config.show_mob_info&3)
|
||||
clif_charnameack (0, &md->bl);
|
||||
|
||||
if (damage > 0) //Store total damage...
|
||||
md->tdmg+=damage;
|
||||
|
||||
if (!src)
|
||||
return;
|
||||
|
||||
|
||||
@ -5094,21 +5094,24 @@ int pc_dead(struct map_session_data *sd,struct block_list *src)
|
||||
|
||||
if (sd->sc.count && sd->sc.data[SC_KAIZEL].timer != -1)
|
||||
{
|
||||
j = sd->sc.data[SC_KAIZEL].val1; //Kaizel Lv.
|
||||
pc_setstand(sd);
|
||||
status_change_clear(&sd->bl,0);
|
||||
clif_skill_nodamage(&sd->bl,&sd->bl,ALL_RESURRECTION,1,1);
|
||||
if(sd->special_state.restart_full_recover)
|
||||
status_percent_heal(&sd->bl, 100, 100);
|
||||
else
|
||||
status_percent_heal(&sd->bl, 10*sd->sc.data[SC_KAIZEL].val1, 0);
|
||||
status_percent_heal(&sd->bl, 10*j, 0);
|
||||
clif_resurrection(&sd->bl, 1);
|
||||
if(battle_config.pc_invincible_time)
|
||||
pc_setinvincibletimer(sd, battle_config.pc_invincible_time);
|
||||
sc_start(&sd->bl,SkillStatusChangeTable(PR_KYRIE),100,10,skill_get_time2(SL_KAIZEL,sd->sc.data[SC_KAIZEL].val1));
|
||||
status_change_end(&sd->bl,SC_KAIZEL,-1);
|
||||
sc_start(&sd->bl,SkillStatusChangeTable(PR_KYRIE),100,10,skill_get_time2(SL_KAIZEL,j));
|
||||
return 0;
|
||||
}
|
||||
if (sd->state.snovice_flag == 4)
|
||||
{
|
||||
pc_setstand(sd);
|
||||
status_change_clear(&sd->bl,0);
|
||||
clif_skill_nodamage(&sd->bl,&sd->bl,ALL_RESURRECTION,1,1);
|
||||
status_percent_heal(&sd->bl, 100, 100);
|
||||
clif_resurrection(&sd->bl, 1);
|
||||
|
||||
@ -4940,9 +4940,9 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
|
||||
break;
|
||||
|
||||
case NPC_INVISIBLE:
|
||||
//Have val4 passed as 2 is for "infinite cloak".
|
||||
//Have val4 passed as 6 is for "infinite cloak" (do not end on attack/skill use).
|
||||
clif_skill_nodamage(src,bl,skillid,skilllv,
|
||||
sc_start4(bl,type,100,skilllv,0,0,2,skill_get_time(skillid,skilllv)));
|
||||
sc_start4(bl,type,100,skilllv,0,0,6,skill_get_time(skillid,skilllv)));
|
||||
break;
|
||||
|
||||
case NPC_SIEGEMODE:
|
||||
|
||||
@ -1046,7 +1046,9 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, int
|
||||
case NJ_KIRIKAGE:
|
||||
break;
|
||||
default:
|
||||
return 0;
|
||||
//Non players can use all skills while hidden.
|
||||
if (!skill_num || src->type == BL_PC)
|
||||
return 0;
|
||||
}
|
||||
if (sc->option&OPTION_CHASEWALK && skill_num != ST_CHASEWALK)
|
||||
return 0;
|
||||
@ -5047,7 +5049,7 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
|
||||
if (map_flag_gvg(bl->m)) val4 *= 5;
|
||||
break;
|
||||
case SC_CLOAKING:
|
||||
if (!sd) //Monsters should be able to walk no penalties. [Skotlex]
|
||||
if (!sd) //Monsters should be able to walk with no penalties. [Skotlex]
|
||||
val1 = 10;
|
||||
val2 = tick>0?tick:60000; //SP consumption rate.
|
||||
val3 = 0;
|
||||
@ -5057,11 +5059,12 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
|
||||
val3+= 70+val1*3; //Speed adjustment without a wall.
|
||||
//With a wall, it is val3 +25.
|
||||
//val4&1 signals the presence of a wall.
|
||||
//val4&2 signals eternal cloaking (not cancelled on attack) [Skotlex]
|
||||
//val4&2 makes cloak not end on normal attacks [Skotlex]
|
||||
//val4&4 makes cloak not end on using skills
|
||||
if (bl->type == BL_PC) //Standard cloaking.
|
||||
val4 |= battle_config.pc_cloak_check_type&3;
|
||||
val4 |= battle_config.pc_cloak_check_type&7;
|
||||
else
|
||||
val4 |= battle_config.monster_cloak_check_type&3;
|
||||
val4 |= battle_config.monster_cloak_check_type&7;
|
||||
break;
|
||||
case SC_SIGHT: /* ƒTƒCƒg/ƒ‹ƒAƒt */
|
||||
case SC_RUWACH:
|
||||
|
||||
@ -970,7 +970,7 @@ int unit_skilluse_id2(struct block_list *src, int target_id, int skill_num, int
|
||||
ud->skilllv = skill_lv;
|
||||
|
||||
if(sc && sc->data[SC_CLOAKING].timer != -1 &&
|
||||
!(sc->data[SC_CLOAKING].val4&2) && skill_num != AS_CLOAKING)
|
||||
!(sc->data[SC_CLOAKING].val4&4) && skill_num != AS_CLOAKING)
|
||||
status_change_end(src,SC_CLOAKING,-1);
|
||||
|
||||
if(casttime > 0) {
|
||||
@ -1063,7 +1063,7 @@ int unit_skilluse_pos2( struct block_list *src, int skill_x, int skill_y, int sk
|
||||
ud->skilltarget = 0;
|
||||
|
||||
if (sc && sc->data[SC_CLOAKING].timer != -1 &&
|
||||
!(sc->data[SC_CLOAKING].val4&2))
|
||||
!(sc->data[SC_CLOAKING].val4&4))
|
||||
status_change_end(src,SC_CLOAKING,-1);
|
||||
|
||||
if(casttime > 0) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user