- Some cleanup in skill.c, moved the icewall flag check to skill_notok.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5360 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
1d786d8491
commit
caa533d23c
@ -751,6 +751,12 @@ int skillnotok(int skillid, struct map_session_data *sd)
|
||||
case MC_VENDING:
|
||||
case MC_IDENTIFY:
|
||||
return 0; // always allowed
|
||||
case WZ_ICEWALL:
|
||||
// noicewall flag [Valaris]
|
||||
if (map[sd->bl.m].flag.noicewall) {
|
||||
clif_skill_fail(sd,sd->skillid,0,0);
|
||||
return 1;
|
||||
}
|
||||
default:
|
||||
return (map[sd->bl.m].flag.noskill);
|
||||
}
|
||||
@ -1540,9 +1546,6 @@ int skill_attack( int attack_type, struct block_list* src, struct block_list *ds
|
||||
if (bl->type == BL_PC)
|
||||
tsd = (struct map_session_data *)bl;
|
||||
|
||||
//Shouldn't be needed, skillnotok's return value is highly unlikely to have changed after you started casting. [Skotlex]
|
||||
// if(dsrc->type == BL_PC && skillnotok(skillid, (struct map_session_data *)dsrc))
|
||||
// return 0; // [MouseJstr]
|
||||
// Is this check really needed? FrostNova won't hurt you if you step right where the caster is?
|
||||
if(skillid == WZ_FROSTNOVA && dsrc->x == bl->x && dsrc->y == bl->y) //Žg—pƒXƒLƒ‹‚ªƒtƒ?ƒXƒgƒmƒ”ƒ@‚Å?Adsrc‚Æbl‚ª“¯‚¶?ê?Š‚È‚ç‰½‚à‚µ‚È‚¢
|
||||
return 0;
|
||||
@ -3058,9 +3061,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
|
||||
|
||||
if (skillid > 0 && skillid < MAX_SKILL)
|
||||
type = SkillStatusChangeTable[skillid];
|
||||
//Shouldn't be needed, skillnotok's return value is highly unlikely to have changed after you started casting. [Skotlex]
|
||||
// if (sd && skillnotok(skillid, sd)) // [MouseJstr]
|
||||
// return 0;
|
||||
|
||||
//Check for undead skills that convert a no-damage skill into a damage one. [Skotlex]
|
||||
switch (skillid) {
|
||||
@ -5863,17 +5863,13 @@ int skill_castend_pos2( struct block_list *src, int x,int y,int skillid,int skil
|
||||
if (sc && !sc->count)
|
||||
sc = NULL; //Unneeded.
|
||||
|
||||
if( skillid != WZ_METEOR &&
|
||||
if(skillid != WZ_METEOR &&
|
||||
skillid != AM_CANNIBALIZE &&
|
||||
skillid != AM_SPHEREMINE &&
|
||||
skillid != CR_CULTIVATION &&
|
||||
skillid != AC_SHOWER)
|
||||
clif_skill_poseffect(src,skillid,skilllv,x,y,tick);
|
||||
|
||||
//Shouldn't be needed, skillnotok's return value is highly unlikely to have changed after you started casting. [Skotlex]
|
||||
// if (sd && skillnotok(skillid, sd)) // [MouseJstr]
|
||||
// return 0;
|
||||
|
||||
switch(skillid)
|
||||
{
|
||||
case PR_BENEDICTIO: /* ?¹??~•Ÿ */
|
||||
@ -6152,10 +6148,6 @@ int skill_castend_map( struct map_session_data *sd,int skill_num, const char *ma
|
||||
if( sd->bl.prev == NULL || pc_isdead(sd) )
|
||||
return 0;
|
||||
|
||||
//Shouldn't be needed, skillnotok's return value is highly unlikely to have changed after you started casting. [Skotlex]
|
||||
// if(skillnotok(skill_num, sd))
|
||||
// return 0;
|
||||
|
||||
if(sd->sc.opt1 || sd->sc.option&OPTION_HIDE ) {
|
||||
skill_failed(sd);
|
||||
return 0;
|
||||
@ -8432,11 +8424,10 @@ int skill_use_id (struct map_session_data *sd, int target_id, int skill_num, int
|
||||
|
||||
if(skillnotok(skill_num, sd)) // [MouseJstr]
|
||||
return 0;
|
||||
if (tsd && (skill_num == ALL_RESURRECTION || skill_num == PR_REDEMPTIO) && !pc_isdead(tsd))
|
||||
return 0;
|
||||
|
||||
|
||||
if(skill_get_inf2(skill_num)&INF2_NO_TARGET_SELF && sd->bl.id == target_id)
|
||||
return 0;
|
||||
|
||||
if(!status_check_skilluse(&sd->bl, bl, skill_num, 0))
|
||||
{
|
||||
if(skill_num == PR_LEXAETERNA) //Eh.. assuming skill failed due to opponent frozen/stone-cursed. [Skotlex]
|
||||
@ -8657,18 +8648,12 @@ int skill_use_pos (struct map_session_data *sd, int skill_x, int skill_y, int sk
|
||||
|
||||
nullpo_retr(0, sd);
|
||||
|
||||
if (pc_isdead(sd))
|
||||
return 0;
|
||||
if (skill_lv <= 0)
|
||||
return 0;
|
||||
if (sd->skilltimer != -1) //Normally not needed since clif.c checks for it, but at/char/script commands don't! [Skotlex]
|
||||
return 0;
|
||||
if (skillnotok(skill_num, sd)) // [MouseJstr]
|
||||
return 0;
|
||||
if (skill_num == WZ_ICEWALL && map[sd->bl.m].flag.noicewall && !map[sd->bl.m].flag.pvp && !map[sd->bl.m].flag.gvg) { // noicewall flag [Valaris]
|
||||
clif_skill_fail(sd,sd->skillid,0,0);
|
||||
return 0;
|
||||
}
|
||||
if (map_getcell(sd->bl.m, skill_x, skill_y, CELL_CHKNOPASS))
|
||||
{ //prevent casting ground targeted spells on non-walkable areas. [Skotlex]
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user