diff options
-rw-r--r-- | Changelog-Trunk.txt | 2 | ||||
-rw-r--r-- | db/Changelog.txt | 4 | ||||
-rw-r--r-- | db/item_db.txt | 22 | ||||
-rw-r--r-- | db/mercenary_db.txt | 2 | ||||
-rw-r--r-- | db/mercenary_skill_db.txt | 12 | ||||
-rw-r--r-- | db/skill_cast_db.txt | 6 | ||||
-rw-r--r-- | db/skill_castnodex_db.txt | 13 | ||||
-rw-r--r-- | db/skill_db.txt | 6 | ||||
-rw-r--r-- | db/skill_nocast_db.txt | 2 | ||||
-rw-r--r-- | db/skill_require_db.txt | 3 | ||||
-rw-r--r-- | src/common/mmo.h | 4 | ||||
-rw-r--r-- | src/map/npc.c | 3 | ||||
-rw-r--r-- | src/map/skill.c | 11 | ||||
-rw-r--r-- | src/map/skill.h | 3 | ||||
-rw-r--r-- | src/map/status.c | 3 |
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 ); |