Forráskód Böngészése

Merged ALL_PARTYFLEE from eAthena renewal branch.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16494 54d463be-8e91-2dee-dedb-b68131a5f0ec
xazax-hun 13 éve
szülő
commit
2851ac53f2

+ 1 - 0
db/const.txt

@@ -1216,6 +1216,7 @@ SC_ROCK_CRUSHER	506
 SC_ROCK_CRUSHER_ATK	507
 SC_INCMHP	529
 SC_INCMSP	530
+SC_PARTYFLEE	531
 
 e_gasp	0
 e_what	1

+ 1 - 1
db/pre-re/item_db.txt

@@ -4853,7 +4853,7 @@
 12308,Magic_Castle,Magic Magic Powder,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ setfont 8; },{},{}
 12309,Bulging_Head,JJangu Magic Powder,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ setfont 9; },{},{}
 12310,Spray_Of_Flowers,Spray Of Flowers,2,0,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_INCFLEE,600000,10; },{},{}
-12311,Large_Spray_Of_Flowers,Huge Spray Of Flowers,11,0,,100,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
+12311,Large_Spray_Of_Flowers,Huge Spray Of Flowers,11,0,,100,,,,,0xFFFFFFFF,7,2,,,,,,{ itemskill "ALL_PARTYFLEE",1; },{},{}
 12312,Thick_Manual50,Thick Battle Manual,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_EXPBOOST,3600000,50; },{},{}
 12313,Protection_Of_Angel,Guardian Angel,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
 12314,Noive_Box,Noive Box,2,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}

+ 2 - 0
db/pre-re/skill_cast_db.txt

@@ -1023,6 +1023,8 @@
 691,0,0,0,20000:40000:60000:80000:100000,0,0
 //-- ALL_CATCRY
 692,0,5000,0,0,0,0
+//-- ALL_PARTYFLEE
+693,0,0,0,0,0,300000,0
 
 //-- ALL_DREAM_SUMMERNIGHT
 695,0,12000,0,0,0,0

+ 1 - 1
db/pre-re/skill_db.txt

@@ -636,7 +636,7 @@
 690,0,6,4,0,0x3,-1,10,1,yes,0,0x2,0,magic,0,	CASH_INCAGI,Party Increase AGI
 691,0,6,4,0,0x3,-1,5,1,yes,0,0x2,0,magic,0,	CASH_ASSUMPTIO,Party Assumptio
 //692,0,0,0,0,0,0,9,0,no,0,0x2,0,none,0,		ALL_CATCRY,Cat Cry
-//693,0,0,0,0,0,0,9,0,no,0,0x2,0,none,0,		ALL_PARTYFLEE,Party Flee
+693,0,6,4,0,0x3,-1,1,1,yes,0,0x2,0,magic,0,	ALL_PARTYFLEE,Party Flee
 //694,0,0,0,0,0,0,9,0,no,0,0x2,0,none,0,		ALL_ANGEL_PROTECT,Angel's Protection
 //695,0,0,0,0,0,0,9,0,no,0,0x2,0,none,0,		ALL_DREAM_SUMMERNIGHT,Summer Night Dream
 //696,0,0,0,0,0,0,9,0,no,0,0x2,0,none,0,		NPC_CHANGEUNDEAD2,Change Undead

+ 1 - 1
db/re/item_db.txt

@@ -5354,7 +5354,7 @@
 12308,Magic_Castle,Magic Magic Powder,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ setfont 8; },{},{}
 12309,Bulging_Head,JJangu Magic Powder,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ setfont 9; },{},{}
 12310,Spray_Of_Flowers,Spray Of Flowers,2,0,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_INCFLEE,600000,10; },{},{}
-12311,Large_Spray_Of_Flowers,Huge Spray Of Flowers,11,0,,100,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
+12311,Large_Spray_Of_Flowers,Huge Spray Of Flowers,11,0,,100,,,,,0xFFFFFFFF,7,2,,,,,,{ itemskill "ALL_PARTYFLEE",1; },{},{}
 12312,Thick_Manual50,Thick Battle Manual,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_EXPBOOST,3600000,50; },{},{}
 12313,Protection_Of_Angel,Guardian Angel,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
 12314,Noive_Box,Noive Box,2,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}

+ 2 - 0
db/re/skill_cast_db.txt

@@ -1024,6 +1024,8 @@
 691,0,0,0,20000:40000:60000:80000:100000,0,0,0
 //-- ALL_CATCRY
 692,0,5000,0,0,0,0,0
+//-- ALL_PARTYFLEE
+693,0,0,0,0,0,300000,0
 
 //-- ALL_DREAM_SUMMERNIGHT
 695,0,12000,0,0,0,0,0

+ 1 - 1
db/re/skill_db.txt

@@ -636,7 +636,7 @@
 690,0,6,4,0,0x3,-1,10,1,yes,0,0x2,0,magic,0,	CASH_INCAGI,Party Increase AGI
 691,0,6,4,0,0x3,-1,5,1,yes,0,0x2,0,magic,0,	CASH_ASSUMPTIO,Party Assumptio
 //692,0,0,0,0,0,0,9,0,no,0,0x2,0,none,0,		ALL_CATCRY,Cat Cry
-//693,0,0,0,0,0,0,9,0,no,0,0x2,0,none,0,		ALL_PARTYFLEE,Party Flee
+693,0,6,4,0,0x3,-1,1,1,yes,0,0x2,0,magic,0,	ALL_PARTYFLEE,Party Flee
 //694,0,0,0,0,0,0,9,0,no,0,0x2,0,none,0,		ALL_ANGEL_PROTECT,Angel's Protection
 //695,0,0,0,0,0,0,9,0,no,0,0x2,0,none,0,		ALL_DREAM_SUMMERNIGHT,Summer Night Dream
 //696,0,0,0,0,0,0,9,0,no,0,0x2,0,none,0,		NPC_CHANGEUNDEAD2,Change Undead

+ 14 - 0
src/map/skill.c

@@ -7245,6 +7245,19 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 				skill_castend_nodamage_id);
 		}
 		break;
+	case ALL_PARTYFLEE:
+		if( sd  && !(flag&1) )
+		{
+			if( !sd->status.party_id ) 
+			{
+				clif_skill_fail(sd,skillid,USESKILL_FAIL_LEVEL,0);
+				break;
+			}
+			party_foreachsamemap(skill_area_sub, sd, skill_get_splash(skillid, skilllv), src, skillid, skilllv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id);
+		}
+		else 
+			clif_skill_nodamage(src,bl,skillid,skilllv,sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
+		break;
 	case NPC_TALK:
 	case ALL_WEWISH:
 		clif_skill_nodamage(src,bl,skillid,skilllv,1);
@@ -7577,6 +7590,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 				case SC_STEALTHFIELD_MASTER: case SC_STEALTHFIELD:
 				case SC_LEADERSHIP:		case SC_GLORYWOUNDS:	case SC_SOULCOLD:
 				case SC_HAWKEYES:		case SC_GUILDAURA:	case SC_PUSH_CART:
+				case SC_PARTYFLEE:
 					continue;
 				case SC_ASSUMPTIO:
 					if( bl->type == BL_MOB )

+ 3 - 1
src/map/status.c

@@ -464,7 +464,7 @@ void initChangeTables(void) {
 	set_sc( CASH_INCAGI          , SC_INCREASEAGI     , SI_INCREASEAGI     , SCB_AGI|SCB_SPEED );
 	set_sc( CASH_ASSUMPTIO       , SC_ASSUMPTIO       , SI_ASSUMPTIO       , SCB_DEF|SCB_DEF2|SCB_MDEF|SCB_MDEF2 );
 
-	//set_sc( ALL_PARTYFLEE        , SC_INCFLEE         , SI_PARTYFLEE       , SCB_NONE );
+	set_sc( ALL_PARTYFLEE        , SC_PARTYFLEE       , SI_PARTYFLEE       , SCB_NONE );
 	set_sc( ALL_ODINS_POWER      , SC_ODINS_POWER     , SI_ODINS_POWER     , SCB_MATK|SCB_BATK|SCB_MDEF|SCB_DEF );
 
 	set_sc( CR_SHRINK            , SC_SHRINK          , SI_SHRINK          , SCB_NONE );
@@ -4577,6 +4577,8 @@ static signed short status_calc_flee(struct block_list *bl, struct status_change
 		flee -= sc->data[SC_GATLINGFEVER]->val4;
 	if(sc->data[SC_SPEED])
 		flee += 10 + sc->data[SC_SPEED]->val1 * 10;
+	if(sc->data[SC_PARTYFLEE])
+		flee += sc->data[SC_PARTYFLEE]->val1 * 10;
 	if(sc->data[SC_MERC_FLEEUP])
 		flee += sc->data[SC_MERC_FLEEUP]->val2;
 	if(sc->data[SC_FEAR])

+ 3 - 2
src/map/status.h

@@ -619,7 +619,8 @@ typedef enum sc_type {
 	SC_ERASER_CUTTER,
 	/* Max HP & SP */
 	SC_INCMHP,
-	SC_INCMSP,	
+	SC_INCMSP,
+	SC_PARTYFLEE, // 531
 	SC_MAX, //Automatically updated max, used in for's to check we are within bounds.
 } sc_type;
 
@@ -939,7 +940,7 @@ enum si_type {
 //	SI_REUSE_LIMIT_F = 310,
 	SI_INVINCIBLE = 311,
 	SI_CASH_PLUSONLYJOBEXP = 312,
-//	SI_PARTYFLEE = 313,
+	SI_PARTYFLEE = 313,
 //	SI_ANGEL_PROTECT = 314,
 	SI_ENDURE_MDEF = 315,
 	SI_ENCHANTBLADE = 316,