Explorar o código

* Implemented three new mercenary skills.
* Added two new monster mercenaries.
- Added information for the three new mercenary skills.
- Added mercenary skills with cast times to castnodex.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14367 54d463be-8e91-2dee-dedb-b68131a5f0ec

L0ne_W0lf %!s(int64=15) %!d(string=hai) anos
pai
achega
d5dbf77b28

+ 2 - 0
Changelog-Trunk.txt

@@ -3,6 +3,8 @@ 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.
 
+2010/07/27
+	* Rev. 14367 Implemented three new mercenary skills. [L0ne_W0lf]
 2010/07/27
 	* Rev. 14365 Updated npc_randomattack, it now does 100*skillevel percent damage. [L0ne_W0lf]
 	* Added patch from Paradox to allow a skill to use a random element for damage. See skill DB for info.

+ 4 - 0
db/Changelog.txt

@@ -8,6 +8,10 @@
 	1475 Equestrian's Spear:	NEED INFO.
 	13005 Angelic Wing Dagger:	NEED INFO.
 =======================
+2010/07/30
+	* Rev. 14367 Added two new monster mercenaries. [L0ne_W0lf]
+	- Added information for the three new mercenary skills.
+	- Added mercenary skills with cast times to castnodex.
 2010/07/27
 	* Rev. 14365 Updated entry for npc_randomattack in the skill database, now uses the newly added -3 element. [L0ne_W0lf]
 2010/07/16

+ 11 - 11
db/item_db.txt

@@ -3027,15 +3027,15 @@
 6101,Attendance_Card,Attendance Card,3,0,,10,,,,,,,,,,,,,{},{},{}
 6102,Report_On_Splendide,Report On Splendide,3,0,,10,,,,,,,,,,,,,{},{},{}
 6103,Report_On_Manuk,Report On Manuk,3,0,,10,,,,,,,,,,,,,{},{},{}
-6104,Big_Cell,Big Cell,3,0,,10,,,,,,,,,,,,,{},{},{}
-6105,Morning_Dew,Morning Dew,3,0,,10,,,,,,,,,,,,,{},{},{}
-6106,Well_Ripened_Berry,Well Ripened Berry,3,0,,10,,,,,,,,,,,,,{},{},{}
-6107,Sunset_On_The_Rock,Sunset On The Rock,3,0,,10,,,,,,,,,,,,,{},{},{}
-6108,Apple_Pudding,Apple Pudding,3,0,,10,,,,,,,,,,,,,{},{},{}
-6109,Plant_Neutrient,Plant Neutrient,3,0,,10,,,,,,,,,,,,,{},{},{}
-6110,Vital_Flower,Vital Flower,3,0,,10,,,,,,,,,,,,,{},{},{}
-6111,Mystic_Stone,Mystic Stone,3,0,,10,,,,,,,,,,,,,{},{},{}
-6112,Fresh_Plant,Fresh Plant,3,0,,10,,,,,,,,,,,,,{},{},{}
+6104,Big_Cell,Big Cell,3,1000,,10,,,,,,,,,,,,,{},{},{}
+6105,Morning_Dew,Morning Dew,3,1000,,10,,,,,,,,,,,,,{},{},{}
+6106,Well_Ripened_Berry,Well Ripened Berry,3,1000,,10,,,,,,,,,,,,,{},{},{}
+6107,Sunset_On_The_Rock,Sunset On The Rock,3,1000,,10,,,,,,,,,,,,,{},{},{}
+6108,Apple_Pudding,Apple Pudding,3,1000,,10,,,,,,,,,,,,,{},{},{}
+6109,Plant_Neutrient,Plant Neutrient,3,1000,,10,,,,,,,,,,,,,{},{},{}
+6110,Vital_Flower,Vital Flower,3,1000,,10,,,,,,,,,,,,,{},{},{}
+6111,Mystic_Stone,Mystic Stone,3,1000,,10,,,,,,,,,,,,,{},{},{}
+6112,Fresh_Plant,Fresh Plant,3,1000,,10,,,,,,,,,,,,,{},{},{}
 6113,Vital_Flower_,Vital Flower,3,1000,,10,,,,,,,,,,,,,{},{},{}
 6114,Flame_Gemstone,Flame Gemstone,3,1000,,10,,,,,,,,,,,,,{},{},{}
 6115,Bun_,Bun,3,1000,,10,,,,,,,,,,,,,{},{},{}
@@ -4498,8 +4498,8 @@
 12326,J_Firecracker,Large Firecracker,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
 12327,Charm_Of_Luck,Charm Of Luck,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
 12328,Charm_Of_Happiness,Charm Of Happiness,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_INCLUK,3600000,20; },{},{}
-12329,Recall_MaleGM,Summon Male GameMaster Scroll,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
-12330,Recall_FemaleGM,Summon Female GameMaster Scroll,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
+12329,Recall_MaleGM,Summon Male GameMaster Scroll,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ mercenary_create 2000,1800000; },{},{}
+12330,Recall_FemaleGM,Summon Female GameMaster Scroll,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ mercenary_create 2001,1800000; },{},{}
 12331,Ginseng,Ginseng,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ percentheal 6,0; },{},{}
 12332,Fruit_Juice,Fruit Juice,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ percentheal 0,6; },{},{}
 12333,Ansila,Ancilla,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}

+ 2 - 0
db/mercenary_db.txt

@@ -6,6 +6,8 @@
 1965,M_WILD_ROSE,Wild Rose,38,2980,130,2,315,360,0,15,65,85,15,35,65,80,10,12,0,2,24,100,964,864,288
 1966,M_DOPPELGANGER,Doppelganger,72,249000,200,2,1340,1590,60,35,88,90,30,35,125,65,10,12,1,6,67,100,480,480,288
 1967,M_YGNIZEM,Egnigem Cenia,58,11200,320,2,823,1212,35,8,60,35,52,18,79,20,10,12,1,7,43,145,576,432,288
+2000,M_GAMEMASTER,[GM] Game Master,50,7000,250,2,100,50,6,17,1,109,1,60,215,111,10,0,0,7,20,150,450,432,300
+2001,F_GAMEMASTER,[GM] Game Master,50,7000,250,2,100,50,6,17,1,109,1,60,215,111,10,0,0,7,20,150,450,432,300
 // Normal Mercenaries
 6017,MER_ARCHER01,Mina,20,256,200,10,170,85,7,5,1,16,5,1,28,8,10,0,0,7,20,150,700,432,300
 6018,MER_ARCHER02,Dororu,30,457,70,10,228,114,11,7,1,18,8,1,40,11,10,0,0,7,20,150,700,432,300

+ 12 - 0
db/mercenary_skill_db.txt

@@ -116,3 +116,15 @@
 // Monster Mercenaries
 // Wild Rose
 1965,8201,5	//MS_BASH
+// M_GAMEMASTER
+2000,8226,1	//MER_REGAIN
+2000,8227,1	//MER_TENDER
+2000,8238,5	//MER_KYRIE
+2000,8239,5	//MER_BLESSING
+2000,8240,5	//MER_INCAGI
+// F_GAMEMASTER
+2001,8226,1	//MER_REGAIN
+2001,8227,1	//MER_TENDER
+2001,8238,5	//MER_KYRIE
+2001,8239,5	//MER_BLESSING
+2001,8240,5	//MER_INCAGI

+ 6 - 0
db/skill_cast_db.txt

@@ -1109,6 +1109,12 @@
 8235,3000,0,0,0,0
 //-- MER_LEXDIVINA
 8236,0,3000,0,30000:35000:40000:45000:50000:60000:60000:60000:60000:60000,0
+//-- MER_KYRIE
+8238,2000,2000,0,120000,0
+//-- MER_BLESSING
+8239,0,0,0,60000:80000:100000:120000:140000:160000:180000:200000:220000:240000,0
+//-- MER_INCAGI
+8240,1000,1000,0,60000:80000:100000:120000:140000:160000:180000:200000:220000:240000,0
 //==========================================
 
 //===== Guild Skills =======================

+ 13 - 0
db/skill_castnodex_db.txt

@@ -39,3 +39,16 @@
 10011,3	//GD_REGENERATION
 10012,6	//GD_RESTORE
 10013,7	//GD_EMERGENCYCALL
+
+// Mercenary Skills
+8214,7	//MA_CHARGEARROW
+8215,7	//MA_SHARPSHOOTING
+8217,7	//ML_BRANDISHSPEAR
+8218,7	//ML_SPIRALPIERCE
+8221,7	//ML_DEVOTION
+8222,7	//MER_MAGNIFICAT
+8225,7	//MER_CRASH
+8234,7	//MER_DECAGI
+8235,7	//MER_SCAPEGOAT
+8238,7	//MER_KYRIE
+8240,7	//MER_INCAGI

+ 3 - 3
db/skill_db.txt

@@ -993,9 +993,9 @@
 8235,0,6,4,0,0x1,0,1,1,yes,0,0,0,none,0,	MER_SCAPEGOAT,Scapegoat
 8236,5,6,1,0,0x1,0,10,0,yes,0,0,0,magic,0,	MER_LEXDIVINA,Lex_Divina
 8237,9,6,1,0,0x1,0,1,1,yes,0,0,0,magic,0,	MER_ESTIMATION,Sense
-//8238,0,0,0,0,0,0,9,0,no,0,0,0,none,0,		MER_KYRIE,Kyrie Eleison
-//8239,0,0,0,0,0,0,9,0,no,0,0,0,none,0,		MER_BLESSING,Blessing
-//8240,0,0,0,0,0,0,9,0,no,0,0,0,none,0,		MER_INCAGI,Increase Agility
+8238,9,6,16,0,0x1,0,10,1,yes,0,0,0,magic,0,	MER_KYRIE,Kyrie Eleison
+8239,9,6,16,0,0x1,0,10,1,yes,0,0,0,magic,0,	MER_BLESSING,Blessing
+8240,9,6,16,0,0x1,0,10,1,yes,0,0,0,magic,0,	MER_INCAGI,Increase Agility
 
 // Summons skills. 
 //8416,0,0,0,0,0,0,9,0,no,0,0,0,none,0		EL_AQUAPLAY,

+ 2 - 0
db/skill_nocast_db.txt

@@ -26,10 +26,12 @@
 27,4	//AL_WARP
 87,4	//WZ_ICEWALL
 150,4	//TF_BACKSLIDING
+290,4	//SA_ABRACADABRA
 361,4	//HP_ASSUMPTIO
 362,4	//HP_BASILICA
 395,4	//CG_MOONLIT
 491,4	//CR_CULTIVATION
+530,4	//NJ_KIRIKAGE
 691,4	//CASH_ASSUMPTIO
 
 //BATTLEGROUND

+ 3 - 0
db/skill_require_db.txt

@@ -510,3 +510,6 @@
 8235,0,0,10,100,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	//MER_SCAPEGOAT
 8236,0,0,20:20:20:20:20:18:16:14:12: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	//MER_LEXDIVINA
 8237,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	//MER_ESTIMATION
+8238,0,0,20:20:20:25:25:25:30:30:30:35,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	//MER_KYRIE
+8239,0,0,28:32:36:40:44:48:52:56:60:64,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	//MER_BLESSING
+8240,15,0,18:21:24:27:30:33:36:39:42:45,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	//MER_INCAGI

+ 2 - 2
src/common/mmo.h

@@ -155,8 +155,8 @@
 
 //Mercenary System
 #define MC_SKILLBASE 8201
-#define MAX_MERCSKILL 37
-#define MAX_MERCENARY_CLASS 36
+#define MAX_MERCSKILL 40
+#define MAX_MERCENARY_CLASS 38
 
 enum item_types {
 	IT_HEALING = 0,

+ 3 - 0
src/map/npc.c

@@ -149,6 +149,9 @@ int npc_enable_sub(struct block_list *bl, va_list ap)
 
 		if( npc_ontouch_event(sd,nd) > 0 && npc_ontouch2_event(sd,nd) > 0 )
 		{ // failed to run OnTouch event, so just click the npc
+			if (sd->npc_id != 0)
+				return 0;
+
 			pc_stop_walking(sd,1);
 			npc_click(sd,nd);
 		}

+ 9 - 2
src/map/skill.c

@@ -340,7 +340,9 @@ int can_copy (struct map_session_data *sd, int skillid, struct block_list* bl)
 	}
 
 	//Added so plagarize can't copy agi/bless if you're undead since it damages you
-	if ((skillid == AL_INCAGI || skillid == AL_BLESSING || skillid == CASH_BLESSING || skillid == CASH_INCAGI))
+	if ((skillid == AL_INCAGI || skillid == AL_BLESSING || 
+		skillid == CASH_BLESSING || skillid == CASH_INCAGI || 
+		skillid == MER_INCAGI || skillid == MER_BLESSING))
 		return 0;
 
 	return 1;
@@ -1708,7 +1710,9 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds
 
 	damage = dmg.damage + dmg.damage2;
 
-	if( (skillid == AL_INCAGI || skillid == AL_BLESSING || skillid == CASH_BLESSING || skillid == CASH_INCAGI) && tsd->sc.data[SC_CHANGEUNDEAD] )
+	if( (skillid == AL_INCAGI || skillid == AL_BLESSING || 
+		skillid == CASH_BLESSING || skillid == CASH_INCAGI ||
+		skillid == MER_INCAGI || skillid == MER_BLESSING) && tsd->sc.data[SC_CHANGEUNDEAD] )
 		damage = 1;
 
 	if( damage > 0 && dmg.flag&BF_WEAPON && src != bl && ( src == dsrc || ( dsrc->type == BL_SKILL && ( skillid == SG_SUN_WARM || skillid == SG_MOON_WARM || skillid == SG_STAR_WARM ) ) )
@@ -3613,6 +3617,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 		break;
 
 	case PR_KYRIE:
+	case MER_KYRIE:	
 		clif_skill_nodamage(bl,bl,skillid,skilllv,
 			sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
 		break;
@@ -3630,6 +3635,8 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 
 	case AL_INCAGI:
 	case AL_BLESSING:
+	case MER_INCAGI:
+	case MER_BLESSING:
 		if (dstsd != NULL && tsc->data[SC_CHANGEUNDEAD]) {
 			skill_attack(BF_MISC,src,src,bl,skillid,skilllv,tick,flag);
 			break;

+ 3 - 0
src/map/skill.h

@@ -1060,6 +1060,9 @@ enum e_skill {
 	MER_SCAPEGOAT,
 	MER_LEXDIVINA,
 	MER_ESTIMATION,
+	MER_KYRIE,
+	MER_BLESSING,
+	MER_INCAGI,
 };
 
 /// The client view ids for land skills.

+ 3 - 0
src/map/status.c

@@ -434,6 +434,9 @@ void initChangeTables(void)
 	add_sc( ML_SPIRALPIERCE      , SC_STOP            );
 	set_sc( MER_QUICKEN          , SC_MERC_QUICKEN    , SI_BLANK           , SCB_ASPD );
 	add_sc( ML_DEVOTION          , SC_DEVOTION        );
+	set_sc( MER_KYRIE            , SC_KYRIE           , SI_KYRIE           , SCB_NONE );
+	set_sc( MER_BLESSING         , SC_BLESSING        , SI_BLESSING        , SCB_STR|SCB_INT|SCB_DEX );
+	set_sc( MER_INCAGI           , SC_INCREASEAGI     , SI_INCREASEAGI     , SCB_AGI|SCB_SPEED );
 
 	set_sc( GD_LEADERSHIP        , SC_GUILDAURA       , SI_BLANK           , SCB_STR|SCB_AGI|SCB_VIT|SCB_DEX );
 	set_sc( GD_BATTLEORDER       , SC_BATTLEORDERS    , SI_BLANK           , SCB_STR|SCB_INT|SCB_DEX );