- Moved the mapflag skill restrictions from skill_checkcondition to skillnotok, this makes auto-spells not work in maps where they aren't allowed.

- Added TK_HIGHJUMP to skillnotok, the skill is blocked in noteleport maps (with the exception of gvg ones)


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6281 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
skotlex 2006-04-25 20:36:26 +00:00
parent b2b2a79c47
commit 6fff5230e5
2 changed files with 37 additions and 33 deletions

View File

@ -3,6 +3,11 @@ Date Added
AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2006/04/25
* Moved the mapflag skill restrictions from skill_checkcondition to
skillnotok, this makes auto-spells not work in maps where they aren't
allowed. [Skotlex]
* Added TK_HIGHJUMP to skillnotok, the skill is blocked in noteleport maps
(with the exception of gvg ones) [Skotlex]
* Modified and simplified the random item group format. It now is
<GroupID>,<ItemID>,<Rate>, where Rate normally is 1, greater numbers is the
equivalent of adding the line multiple times. Also has support for import

View File

@ -835,7 +835,33 @@ int skillnotok(int skillid, struct map_session_data *sd)
switch (skillid) {
case AL_WARP:
if(map[sd->bl.m].flag.nowarp) {
clif_skill_teleportmessage(sd,0);
return 1;
}
return 0;
break;
case AL_TELEPORT:
if(map[sd->bl.m].flag.noteleport) {
clif_skill_teleportmessage(sd,0);
return 1;
}
return 0;
case TK_HIGHJUMP:
if(map[sd->bl.m].flag.noteleport && !map_flag_gvg(sd->bl.m))
{ //Can't be used on noteleport maps, except for gvg maps [Skotlex]
clif_skill_fail(sd,skillid,0,0);
return 1;
}
break;
case WE_CALLPARTNER:
case WE_CALLPARENT:
case WE_CALLBABY:
if (map[sd->bl.m].flag.nomemo) {
clif_skill_teleportmessage(sd,1);
return 1;
}
break;
case MC_VENDING:
case MC_IDENTIFY:
return 0; // always allowed
@ -845,9 +871,8 @@ int skillnotok(int skillid, struct map_session_data *sd)
clif_skill_fail(sd,skillid,0,0);
return 1;
}
default:
return (map[sd->bl.m].flag.noskill);
}
return (map[sd->bl.m].flag.noskill);
}
/* スキルユニットの配置?﨣<><EFA8A3>ヤす */
@ -6462,32 +6487,16 @@ struct skill_unit_group *skill_unitsetting( struct block_list *src, int skillid,
count=1; // Leave this at 1 [Valaris]
break;
case WE_CALLPARTNER:
if (!sd)
return NULL;
if (map[src->m].flag.nomemo) {
clif_skill_teleportmessage(sd,1);
return NULL;
}
val1 = sd->status.partner_id;
if (sd ) val1 = sd->status.partner_id;
break;
case WE_CALLPARENT:
if (!sd)
return NULL;
if (map[src->m].flag.nomemo) {
clif_skill_teleportmessage(sd,1);
return NULL;
if (sd) {
val1 = sd->status.father;
val2 = sd->status.mother;
}
val1 = sd->status.father;
val2 = sd->status.mother;
break;
case WE_CALLBABY:
if (!sd)
return NULL;
if (map[src->m].flag.nomemo) {
clif_skill_teleportmessage(sd,1);
return NULL;
}
val1 = sd->status.child;
if (sd) val1 = sd->status.child;
break;
}
@ -7717,21 +7726,11 @@ int skill_check_condition(struct map_session_data *sd,int skill, int lv, int typ
case AL_WARP:
if(!(type&2)) //Delete the item when the portal has been selected (type&2). [Skotlex]
delitem_flag = 0;
if(map[sd->bl.m].flag.nowarp) {
clif_skill_teleportmessage(sd,0);
return 0;
}
if(!battle_config.duel_allow_teleport && sd->duel_group) { // duel restriction [LuzZza]
clif_displaymessage(sd->fd, "Duel: Can't use warp in duel.");
return 0;
}
break;
case AL_TELEPORT:
if(map[sd->bl.m].flag.noteleport) {
clif_skill_teleportmessage(sd,0);
return 0;
}
break;
case MO_CALLSPIRITS: /* ?功 */
if(sd->spiritball >= lv) {
clif_skill_fail(sd,skill,0,0);