summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt2
-rw-r--r--db/Changelog.txt4
-rw-r--r--db/item_db.txt22
-rw-r--r--db/mercenary_db.txt2
-rw-r--r--db/mercenary_skill_db.txt12
-rw-r--r--db/skill_cast_db.txt6
-rw-r--r--db/skill_castnodex_db.txt13
-rw-r--r--db/skill_db.txt6
-rw-r--r--db/skill_nocast_db.txt2
-rw-r--r--db/skill_require_db.txt3
-rw-r--r--src/common/mmo.h4
-rw-r--r--src/map/npc.c3
-rw-r--r--src/map/skill.c11
-rw-r--r--src/map/skill.h3
-rw-r--r--src/map/status.c3
15 files changed, 78 insertions, 18 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 03fc4b67e..78e9a882c 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -4,6 +4,8 @@ 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.
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.
2010/06/27
diff --git a/db/Changelog.txt b/db/Changelog.txt
index 3903c3de6..29a8da57d 100644
--- a/db/Changelog.txt
+++ b/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
diff --git a/db/item_db.txt b/db/item_db.txt
index b64f1155a..b49a5783e 100644
--- a/db/item_db.txt
+++ b/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,,,,,,{},{},{}
diff --git a/db/mercenary_db.txt b/db/mercenary_db.txt
index 23bd4970d..e9aacd4b2 100644
--- a/db/mercenary_db.txt
+++ b/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
diff --git a/db/mercenary_skill_db.txt b/db/mercenary_skill_db.txt
index e1b8a20c1..533fb5004 100644
--- a/db/mercenary_skill_db.txt
+++ b/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
diff --git a/db/skill_cast_db.txt b/db/skill_cast_db.txt
index 3ca91e109..df31fa116 100644
--- a/db/skill_cast_db.txt
+++ b/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 =======================
diff --git a/db/skill_castnodex_db.txt b/db/skill_castnodex_db.txt
index a9b989d70..f771bf382 100644
--- a/db/skill_castnodex_db.txt
+++ b/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
diff --git a/db/skill_db.txt b/db/skill_db.txt
index bbb9eb6c0..19f31c3a6 100644
--- a/db/skill_db.txt
+++ b/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,
diff --git a/db/skill_nocast_db.txt b/db/skill_nocast_db.txt
index 82dbdaffa..f52324d0e 100644
--- a/db/skill_nocast_db.txt
+++ b/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
diff --git a/db/skill_require_db.txt b/db/skill_require_db.txt
index 1a441f1a1..6a81951ff 100644
--- a/db/skill_require_db.txt
+++ b/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
diff --git a/src/common/mmo.h b/src/common/mmo.h
index 3f88fbf4d..3773b2acd 100644
--- a/src/common/mmo.h
+++ b/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,
diff --git a/src/map/npc.c b/src/map/npc.c
index aa9bfd228..fe3318c9b 100644
--- a/src/map/npc.c
+++ b/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);
}
diff --git a/src/map/skill.c b/src/map/skill.c
index 6b045c43e..5fd1fe54d 100644
--- a/src/map/skill.c
+++ b/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;
diff --git a/src/map/skill.h b/src/map/skill.h
index a74a0e644..04f2e8d28 100644
--- a/src/map/skill.h
+++ b/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.
diff --git a/src/map/status.c b/src/map/status.c
index 59b77afa7..aa639337e 100644
--- a/src/map/status.c
+++ b/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 );