- Trick Dead makes you stop walking now.

- Falcon Assault only does 1 hit now.
- Soul Burn is not affected by Lex Aeterna, not affected by target's cards.
- Freeze and Stone take preference over Benedictio
- Opt1 inducing SCs fail if the target has already another Opt1
- Fixed areamonster when the passed class is negative
- Removed the clear screen when launching the server.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5156 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
skotlex 2006-02-01 19:14:28 +00:00
parent 697d29d7d4
commit 1d94ae4856
7 changed files with 28 additions and 18 deletions

View File

@ -5,6 +5,13 @@ IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. EV
GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS
2006/02/01 2006/02/01
* Trick Dead makes you stop walking now. [Skotlex]
* Soul Burn is not affected by Lex Aeterna, not affected by target's cards
neither. [Skotlex]
* Freeze and Stone take preference over Benedictio. [Skotlex]
* Sleep/Stun/Petrify/Freeze block each other out. [Skotlex]
* Fixed areamonster when the passed class is negative. [Skotlex]
* Removed the clear screen when launching the server. [Skotlex]
* Integrated the status change variables into a single structure for easier * Integrated the status change variables into a single structure for easier
management. [Skotlex] management. [Skotlex]
* Break fall should no longer trigger when inflicted by freeze/stone/etc * Break fall should no longer trigger when inflicted by freeze/stone/etc

View File

@ -27,6 +27,8 @@
========================= =========================
02/01
* Falcon Assault only does one hit now. [Skotlex]
01/31 01/31
* Changed Lady Tany's skills a bit and removed the CANWALK from her mode [MasterOfMuppets] * Changed Lady Tany's skills a bit and removed the CANWALK from her mode [MasterOfMuppets]
* Changed Vesper's mode to boss [MasterOfMuppets] * Changed Vesper's mode to boss [MasterOfMuppets]

View File

@ -397,7 +397,7 @@
378,0,6,4,5,1,5,1,no,0,1024,0,weapon,0 //ASC_EDP#Deadly Poison Enchantment# 378,0,6,4,5,1,5,1,no,0,1024,0,weapon,0 //ASC_EDP#Deadly Poison Enchantment#
379,5,6,1,-1,0,10,1,yes,0,0,0,weapon,0 //ASC_BREAKER#Soul Destroyer# 379,5,6,1,-1,0,10,1,yes,0,0,0,weapon,0 //ASC_BREAKER#Soul Destroyer#
380,0,6,4,0,1,10,1,no,0,0,0,weapon,0 //SN_SIGHT#Falcon Eyes# 380,0,6,4,0,1,10,1,no,0,0,0,weapon,0 //SN_SIGHT#Falcon Eyes#
381,5,8,1,0,0,5,1:2:3:4:5,yes,0,0,0,misc,0 //SN_FALCONASSAULT#Falcon Assault# 381,5,8,1,0,0,5,1,yes,0,0,0,misc,0 //SN_FALCONASSAULT#Falcon Assault#
382,4,8,1,-1,0,5,1,yes,0,0,0,weapon,0 //SN_SHARPSHOOTING#Focused Arrow Strike# 382,4,8,1,-1,0,5,1,yes,0,0,0,weapon,0 //SN_SHARPSHOOTING#Focused Arrow Strike#
383,0,6,4,0,1,10,1,yes,0,0,0,weapon,0 //SN_WINDWALK#Wind Walker# 383,0,6,4,0,1,10,1,yes,0,0,0,weapon,0 //SN_WINDWALK#Wind Walker#
384,0,0,4,0,1,10,1,yes,0,0,0,weapon,0 //WS_MELTDOWN#Shattering Strike# 384,0,0,4,0,1,10,1,yes,0,0,0,weapon,0 //WS_MELTDOWN#Shattering Strike#

View File

@ -157,7 +157,8 @@ const char* get_svn_revision(void)
static void display_title(void) static void display_title(void)
{ {
ClearScreen(); // clear screen and go up/left (0, 0 position in text) //The clearscreeen is usually more of an annoyance than anything else... [Skotlex]
// ClearScreen(); // clear screen and go up/left (0, 0 position in text)
ShowMessage(""CL_WTBL" (=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=)"CL_CLL""CL_NORMAL"\n"); // white writing (37) on blue background (44), \033[K clean until end of file ShowMessage(""CL_WTBL" (=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=)"CL_CLL""CL_NORMAL"\n"); // white writing (37) on blue background (44), \033[K clean until end of file
ShowMessage(""CL_XXBL" ("CL_BT_YELLOW" (c)2005 eAthena Development Team presents "CL_XXBL")"CL_CLL""CL_NORMAL"\n"); // yellow writing (33) ShowMessage(""CL_XXBL" ("CL_BT_YELLOW" (c)2005 eAthena Development Team presents "CL_XXBL")"CL_CLL""CL_NORMAL"\n"); // yellow writing (33)
ShowMessage(""CL_XXBL" ("CL_BOLD" ______ __ __ "CL_XXBL")"CL_CLL""CL_NORMAL"\n"); // 1: bold char, 0: normal char ShowMessage(""CL_XXBL" ("CL_BOLD" ______ __ __ "CL_XXBL")"CL_CLL""CL_NORMAL"\n"); // 1: bold char, 0: normal char

View File

@ -620,7 +620,7 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,int damage,i
return 0; return 0;
//Now damage increasing effects //Now damage increasing effects
if(sc->data[SC_AETERNA].timer!=-1 && skill_num != PA_PRESSURE){ if(sc->data[SC_AETERNA].timer!=-1 && skill_num != PA_PRESSURE && skill_num != PF_SOULBURN){
damage<<=1; damage<<=1;
if (skill_num != ASC_BREAKER || flag & BF_MAGIC) //Only end it on the second attack of breaker. [Skotlex] if (skill_num != ASC_BREAKER || flag & BF_MAGIC) //Only end it on the second attack of breaker. [Skotlex]
status_change_end( bl,SC_AETERNA,-1 ); status_change_end( bl,SC_AETERNA,-1 );
@ -2655,7 +2655,8 @@ struct Damage battle_calc_magic_attack(
MATK_RATE(cardfix); MATK_RATE(cardfix);
} }
if (tsd && skill_num != HW_GRAVITATION) { //Card fixes always apply on the target side. [Skotlex] if (tsd && skill_num != HW_GRAVITATION && skill_num != PF_SOULBURN)
{ //Card fixes always apply on the target side. [Skotlex]
short s_race2=status_get_race2(src); short s_race2=status_get_race2(src);
short s_class= status_get_class(src); short s_class= status_get_class(src);
short cardfix=100; short cardfix=100;

View File

@ -287,7 +287,7 @@ int mob_once_spawn_area(struct map_session_data *sd,char *mapname,
max=(y1-y0+1)*(x1-x0+1)*3; max=(y1-y0+1)*(x1-x0+1)*3;
if(max>1000)max=1000; if(max>1000)max=1000;
if(m<0 || amount<=0 || mob_db(class_) == mob_dummy) // A summon is stopped if a value is unusual if (m < 0 || amount <= 0 || (class_ >= 0 && class_ <= 1000) || class_ > MAX_MOB_DB + 2*MAX_MOB_DB) // 値が異常なら召喚を止める
return 0; return 0;
for(i=0;i<amount;i++){ for(i=0;i<amount;i++){

View File

@ -3326,12 +3326,12 @@ int status_get_element(struct block_list *bl)
nullpo_retr(20, bl); nullpo_retr(20, bl);
if(sc && sc->count) { if(sc && sc->count) {
if( sc->data[SC_BENEDICTIO].timer!=-1 ) // 聖体降福
return 26;
if( sc->data[SC_FREEZE].timer!=-1 ) // 凍結 if( sc->data[SC_FREEZE].timer!=-1 ) // 凍結
return 21; return 21;
if( sc->data[SC_STONE].timer!=-1 && sc->data[SC_STONE].val2==0) if( sc->data[SC_STONE].timer!=-1 && sc->data[SC_STONE].val2==0)
return 22; return 22;
if( sc->data[SC_BENEDICTIO].timer!=-1 ) // <20>¹Ì<E28098>~•Ÿ
return 26;
} }
if(bl->type==BL_MOB) // 10の位Lv*2、の位属性 if(bl->type==BL_MOB) // 10の位Lv*2、の位属性
return ((struct mob_data *)bl)->def_ele; return ((struct mob_data *)bl)->def_ele;
@ -3689,6 +3689,15 @@ int status_change_start(struct block_list *bl,int type,int val1,int val2,int val
} }
} }
if (sc->opt1)
switch (type) {
case SC_STONE:
case SC_FREEZE:
case SC_SLEEP:
case SC_STAN:
return 0; //Cannot override other opt1 status changes. [Skotlex]
}
if((type==SC_FREEZE || type==SC_STONE) && undead_flag && !(flag&1)) if((type==SC_FREEZE || type==SC_STONE) && undead_flag && !(flag&1))
//I've been informed that undead chars are inmune to stone curse too. [Skotlex] //I've been informed that undead chars are inmune to stone curse too. [Skotlex]
return 0; return 0;
@ -3732,7 +3741,7 @@ int status_change_start(struct block_list *bl,int type,int val1,int val2,int val
} }
if(type==SC_FREEZE || type==SC_STAN || type==SC_SLEEP || type==SC_STOP || type == SC_CONFUSION || if(type==SC_FREEZE || type==SC_STAN || type==SC_SLEEP || type==SC_STOP || type == SC_CONFUSION ||
type==SC_CLOSECONFINE || type==SC_CLOSECONFINE2) type==SC_CLOSECONFINE || type==SC_CLOSECONFINE2 || type ==SC_TRICKDEAD)
battle_stopwalking(bl,1); battle_stopwalking(bl,1);
// クアグマイア/私を忘れないで中は無効なスキル // クアグマイア/私を忘れないで中は無効なスキル
@ -4628,16 +4637,6 @@ int status_change_start(struct block_list *bl,int type,int val1,int val2,int val
battle_stopattack(bl); /* 攻?停止 */ battle_stopattack(bl); /* 攻?停止 */
skill_stop_dancing(bl); /* 演奏/ダンスの中? */ skill_stop_dancing(bl); /* 演奏/ダンスの中? */
{ /* 同時に掛からないステ?タス異常を解除 */
int i;
for(i = SC_STONE; i <= SC_SLEEP; i++){
if(sc->data[i].timer != -1){
(sc->count)--;
delete_timer(sc->data[i].timer, status_change_timer);
sc->data[i].timer = -1;
}
}
}
if(type == SC_STONE) if(type == SC_STONE)
sc->opt1 = OPT1_STONEWAIT; sc->opt1 = OPT1_STONEWAIT;
else else