- Added -DMAPREGSQL to Makefile, commented out by default for now.

- Fixed AL_WARP displaying "Unknown Area" selections when you don't have all memo points used up.
- Fixed alive_count not being reset on skill unitsetting, which leads to some groups not being cleared once all their units expire.
- Optimized Kahii, will now only show the amount of HP healed. Moved to skill_counter additional effect so it may trigger even on miss.
- SKA no longer blocks skills.
- Modified the AM_TWILIGHT* skills to require 200 medicine bowls.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6435 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
skotlex 2006-05-01 21:14:27 +00:00
parent 9020476933
commit 41aa178964
6 changed files with 40 additions and 20 deletions

View File

@ -4,6 +4,13 @@ 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/05/01
* Fixed AL_WARP displaying "Unknown Area" selections when you don't have
all memo points used up. [Skotlex]
* Fixed alive_count not being reset on skill unitsetting, which leads to
some groups not being cleared once all their units expire. [Skotlex]
* Optimized Kaahi/Kahai, will now only show the amount of HP healed. Moved
to skill_counter additional effect so it may trigger even on miss. [Skotlex]
* SKA no longer blocks skills. [Skotlex]
* Optimized fake npc system. Added npc_checknear back to npc_buysellsel. [Lance]
2006/04/30

View File

@ -23,6 +23,7 @@ OPT += -ffast-math
# OPT += -fstack-protector
# OPT += -fomit-frame-pointer
OPT += -Wall -Wno-sign-compare
# OPT += -DMAPREGSQL
# OPT += -DCHRIF_OLDINFO
# OPT += -DPCRE_SUPPORT
# OPT += -DGCOLLECT

View File

@ -27,6 +27,7 @@
=========================
05/01
* Modified the AM_TWILIGHT* skills to require 200 medicine bowls. [Skotlex]
* Added effect of Speed Potion [Playtester]
* Removed Kraben Card drop from G_Kraben [Playtester]
* Fixed a typo in the Armeyer Dinze card thanks to theultramage [Playtester]

View File

@ -385,9 +385,9 @@
493,0,0,10,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //TK_MISSION##
494,0,0,460:360:260:160:60,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //SL_HIGH#一次?繹ハ?E業の?ー#
495,0,0,100,0,0,0,2,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //KN_ONEHAND#<23>?ンハンドクィクン#
496,0,0,200,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //AM_TWILIGHT1#ƒgƒ?ƒCƒ‰ƒCƒgƒtƒ@?[ƒ}ƒV?[1#
497,0,0,200,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //AM_TWILIGHT2#ƒgƒ?ƒCƒ‰ƒCƒgƒtƒ@?[ƒ}ƒV?[2#
498,0,0,200,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0//AM_TWILIGHT3#ƒgƒ?ƒCƒ‰ƒCƒgƒtƒ@?[ƒ}ƒV?[3#
496,0,0,200,0,0,0,99,0,0,none,7134,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //AM_TWILIGHT1#ƒgƒ?ƒCƒ‰ƒCƒgƒtƒ@?[ƒ}ƒV?[1#
497,0,0,200,0,0,0,99,0,0,none,7134,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //AM_TWILIGHT2#ƒgƒ?ƒCƒ‰ƒCƒgƒtƒ@?[ƒ}ƒV?[2#
498,0,0,200,0,0,0,99,0,0,none,7134,200,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0//AM_TWILIGHT3#ƒgƒ?ƒCƒ‰ƒCƒgƒtƒ@?[ƒ}ƒV?[3#
499,0,0,8,0,0,0,11,1,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //HT_POWER#ビ?[ストストレイピング#
//temp plugs
500,0,0,10,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_GLITTERING

View File

@ -1016,14 +1016,6 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int
sc_start4(bl,SC_POISON,2*tsc->data[SC_SPLASHER].val1+10,
tsc->data[SC_SPLASHER].val1,0,0,0,
skill_get_time2(tsc->data[SC_SPLASHER].val2,tsc->data[SC_SPLASHER].val1));
if(tsc->data[SC_KAAHI].timer != -1) {
if (dstsd && dstsd->status.sp < 5*tsc->data[SC_KAAHI].val1)
; //Not enough SP to cast
else {
battle_heal(bl, bl, 200*tsc->data[SC_KAAHI].val1, -5*tsc->data[SC_KAAHI].val1, 1);
clif_skill_nodamage(NULL,bl,AL_HEAL,200*tsc->data[SC_KAAHI].val1,1);
}
}
}
}
break;
@ -1410,7 +1402,8 @@ int skill_counter_additional_effect (struct block_list* src, struct block_list *
int rate;
struct map_session_data *sd=NULL;
struct map_session_data *dstsd=NULL;
struct status_change *tsc;
nullpo_retr(0, src);
nullpo_retr(0, bl);
@ -1422,11 +1415,28 @@ int skill_counter_additional_effect (struct block_list* src, struct block_list *
}
if(skillid > 0 && skilllv <= 0) return 0; // don't forget auto attacks! - celest
tsc = status_get_sc(bl);
if (tsc && !tsc->count)
tsc = NULL;
BL_CAST(BL_PC, src, sd);
BL_CAST(BL_PC, bl, dstsd);
switch(skillid){
case 0: //Normal Attack - Nothing here yet.
case 0: //Normal Attack
if(tsc && tsc->data[SC_KAAHI].timer != -1) {
if (dstsd && dstsd->status.sp < tsc->data[SC_KAAHI].val3)
; //Not enough SP to cast
else {
int hp = status_get_max_hp(bl) - status_get_hp(bl);
if (hp > tsc->data[SC_KAAHI].val2)
hp = tsc->data[SC_KAAHI].val2;
if (hp) {
battle_heal(bl, bl, hp, -tsc->data[SC_KAAHI].val3, 1);
clif_skill_nodamage(NULL,bl,AL_HEAL,hp,1);
}
}
}
break;
case MO_EXTREMITYFIST: /* ˆ¢?C—…”e™€Œ? */
//ˆ¢?C—…ðŽg¤Æ5•ªŠÔŽ©R‰ñ•œµÈ¢æ¤ÉÈé
@ -6027,9 +6037,9 @@ int skill_castend_pos2( struct block_list *src, int x,int y,int skillid,int skil
case AL_WARP: /* ƒ??ƒvƒ|?ƒ^ƒ‹ */
if(sd) {
clif_skill_warppoint(sd,skillid,skilllv,mapindex_id2name(sd->status.save_point.map),
(skilllv>1)?mapindex_id2name(sd->status.memo_point[0].map):"",
(skilllv>2)?mapindex_id2name(sd->status.memo_point[1].map):"",
(skilllv>3)?mapindex_id2name(sd->status.memo_point[2].map):"");
(skilllv>1 && sd->status.memo_point[0].map)?mapindex_id2name(sd->status.memo_point[0].map):"",
(skilllv>2 && sd->status.memo_point[1].map)?mapindex_id2name(sd->status.memo_point[1].map):"",
(skilllv>3 && sd->status.memo_point[2].map)?mapindex_id2name(sd->status.memo_point[2].map):"");
}
break;

View File

@ -437,8 +437,7 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, int
(sc->data[SC_MARIONETTE2].timer != -1 && skill_num == CG_MARIONETTE) ||
sc->data[SC_SILENCE].timer != -1 ||
sc->data[SC_STEELBODY].timer != -1 ||
sc->data[SC_BERSERK].timer != -1 ||
sc->data[SC_SKA].timer != -1
sc->data[SC_BERSERK].timer != -1
))
return 0;
//Skill blocking.
@ -4430,7 +4429,10 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
val4 = gettick(); //Store time at which you started running.
calc_flag = 1;
break;
case SC_KAAHI:
val2 = 200*val1; //HP heal
val3 = 5*val1; //SP cost
break;
case SC_TRICKDEAD: /* Ž€‚ñ‚¾‚Ó‚è */
{
struct view_data *vd = status_get_viewdata(bl);
@ -4561,7 +4563,6 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
case SC_CLOSECONFINE:
case SC_SKILLRATE_UP:
case SC_KAIZEL:
case SC_KAAHI:
case SC_INTRAVISION:
case SC_BASILICA:
case SC_MAXOVERTHRUST: