Explorar el Código

* Updated mmo.h, increased merc max count to 36.
* Fixed save crash related to non-guilded mercenaries.
* Removed job and level restriction on Mercenary ASPD potions.
* Added Monster Mercenaries using mobs original stats.


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

L0ne_W0lf hace 16 años
padre
commit
02e80513d3
Se han modificado 6 ficheros con 31 adiciones y 6 borrados
  1. 3 0
      Changelog-Trunk.txt
  2. 3 0
      db/Changelog.txt
  3. 8 5
      db/item_db.txt
  4. 8 0
      db/mercenary_db.txt
  5. 1 1
      src/common/mmo.h
  6. 8 0
      src/map/mercenary.c

+ 3 - 0
Changelog-Trunk.txt

@@ -3,6 +3,9 @@ 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.
 
+2008/09/05
+	* Rev. 13192 Updated mmo.h, increased merc max count to 36. [L0ne_W0lf]
+	* Fixed save crash related to non-guilded mercenaries.
 2008/09/01
 	* Removed hardcoded equip position names from getequipname (bugreport:2156)
 	- now it's the npc's responsibility to store and display the names

+ 3 - 0
db/Changelog.txt

@@ -40,6 +40,9 @@
 	2385 Recuvative_Armor		Should trigger HP/SP return with magical kills as well.
 
 =======================
+2008/09/05
+	* Rev. 13192 Removed job and level restriction on Mercenary ASPD potions. [L0ne_W0lf]
+	* Added Monster Mercenaries using mobs original stats.
 2008/09/03
 	* Fixed minor inconsistencies with mob_skill_db. (bugreport:2148) [L0ne_W0lf]
 2008/08/31

+ 8 - 5
db/item_db.txt

@@ -3586,8 +3586,8 @@
 12239,New_Year_Rice_Cake_2,New Year Rice Cake,0,20,,100,,,,,0xFFFFFFFF,7,2,,,,,,{ if(rand(1000)<100) sc_start SC_DPoison,10000,0; sc_start SC_Poison,50000,0; },{},{}
 12240,Old_Yellow_Box,Old Yellow Box,2,20,,200,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem groupranditem(IG_YellowBox),1; },{},{}
 12241,M_Center_Potion,Concentration Potion,2,800,,100,,,,,0xFFFFFFFF,7,2,,,,,,{ mercenary_sc_start SC_ASPDPOTION0,1800000,0; },{},{}
-12242,M_Awakening_Potion,Awakening Potion,2,1500,,150,,,,,0xFFF7FEEF,7,2,,,40,,,{ mercenary_sc_start SC_ASPDPOTION1,1800000,0; },{},{}
-12243,M_Berserk_Potion,Berserk Potion,2,3000,,200,,,,,0x01E646A6,7,2,,,85,,,{ mercenary_sc_start SC_ASPDPOTION2,1800000,0; },{},{}
+12242,M_Awakening_Potion,Awakening Potion,2,1500,,150,,,,,0xFFFFFFFF,7,2,,,0,,,{ mercenary_sc_start SC_ASPDPOTION1,1800000,0; },{},{}
+12243,M_Berserk_Potion,Berserk Potion,2,3000,,200,,,,,0xFFFFFFFF,7,2,,,0,,,{ mercenary_sc_start SC_ASPDPOTION2,1800000,0; },{},{}
 12244,Old_Gift_Box,Old Gift Box,2,20,,200,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem groupranditem(IG_OldGiftBox),1; },{},{}
 //St. Patrick's Day Event (2007)
 12245,Green_Ale_US,Green Ale,0,5000,,500,,,,,0xFFFFFFFF,7,2,,,,,,{ percentheal 100,0; },{},{}
@@ -3621,6 +3621,9 @@
 12273,Military_Rations_C,Military Rations C,0,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_INCFLEE,600000,33; },{},{}
 12274,Daehwandan,Daehwandan,0,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_INCMHPRATE,36000000,5; percentheal 10,0; },{},{}
 12275,Taecheongdan,Taecheongdan,0,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_INCMSPRATE,36000000,5; percentheal 0,10; },{},{}
+12276,Mimic_Summon_Scroll,Mimic Summon Scroll Level 1,2,2,,100,,,,,0xFFFFFFFF,7,2,,,,,,{ createmercenary 1191,1800000; },{},{}
+12277,Disguise_Summon_Scroll,Disguise Summon Scroll Level 1,2,2,,100,,,,,0xFFFFFFFF,7,2,,,,,,{ createmercenary 1506,1800000; },{},{}
+12278,Alice_Summon_Scroll,Alice Summon Scroll Level 1,2,2,,100,,,,,0xFFFFFFFF,7,2,,,,,,{ createmercenary 1275,1800000; },{},{}
 12279,Undead_Element_Scroll,Shadow Armor Scroll,2,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start4 SC_ARMOR_RESIST,300000,20,20,20,20; },{},{}
 12280,Holy_Element_Scroll,Holy Armor Scroll,2,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ specialeffect2 91; sc_start SC_BENEDICTIO,300000,1; },{},{}
 12281,Event_Treasure_Box,.Event Treasure Box,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
@@ -3636,9 +3639,9 @@
 //Net Cafe Premium
 12298,SP_Reduction_Potion,SP Reduction Potion,0,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_SPCOST_RATE,36000000,15; },{},{}
 12299,Status_Resist_Potion,Status Resistance Potion,0,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_COMMONSC_RESIST,36000000,10; },{},{}
-12300,Wild_Rose_Summoning_Book,Wild_Rose Summoning Book,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
-12301,Doppleganger_Summoning_Book,Doppleganger Summoning Book,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
-12302,Egnigem_Cenia_Summoning_Book,Egnigem Cenia Summoning Book,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
+12300,Wild_Rose_Summoning_Book,Wild_Rose Summoning Book,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ createmercenary 1965,1800000; },{},{}
+12301,Doppeleganger_Summoning_Book,Doppleganger Summoning Book,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ createmercenary 1966,1800000; },{},{}
+12302,Egnigem_Cenia_Summoning_Book,Egnigem Cenia Summoning Book,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ createmercenary 1967,1800000; },{},{}
 12303,Blessing_Of_Water,Blessing Of Water,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
 12304,Diary_Magic_Powder,Diary Magic Powder,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
 12305,Mini_Heart_Magic_Powder,Mini Heart Magic Powder,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}

+ 8 - 0
db/mercenary_db.txt

@@ -1,4 +1,12 @@
 //ID,Sprite_Name,Name,LV,HP,SP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Speed,aDelay,aMotion,dMotion
+// Monster Mercenaries
+1191,MIMIC,Mimic,51,6120,100,2,150,900,10,40,44,121,1,60,75,110,10,12,1,0,60,100,972,500,288
+1506,DISGUISE,Disguise,55,7543,100,2,279,546,18,29,0,72,45,35,48,65,10,12,1,6,82,147,516,768,384
+1275,ALICE,Alice,62,10000,100,2,550,700,5,5,64,64,42,85,100,130,10,12,1,7,60,200,502,2304,480
+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
+// 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
 6019,MER_ARCHER03,Nami,40,732,93,10,260,130,15,9,3,21,12,4,52,17,10,0,0,7,20,150,700,432,300

+ 1 - 1
src/common/mmo.h

@@ -107,7 +107,7 @@
 //Mercenary System
 #define MC_SKILLBASE 8201
 #define MAX_MERCSKILL 37
-#define MAX_MERCENARY_CLASS 30
+#define MAX_MERCENARY_CLASS 36
 
 enum item_types {
 	IT_HEALING = 0,

+ 8 - 0
src/map/mercenary.c

@@ -110,6 +110,8 @@ int mercenary_get_faith(struct mercenary_data *md)
 		return sd->status.spear_faith;
 	if( class_ >= 6037 && class_ <= 6046 )
 		return sd->status.sword_faith;
+	else
+		return 0;
 
 	return 0;
 }
@@ -130,6 +132,8 @@ int mercenary_set_faith(struct mercenary_data *md, int value)
 		faith = &sd->status.spear_faith;
 	else if( class_ >= 6037 && class_ <= 6046 )
 		faith = &sd->status.sword_faith;
+	else
+		return 0;
 
 	*faith += value;
 	*faith = cap_value(*faith, 0, SHRT_MAX);
@@ -154,6 +158,8 @@ int mercenary_get_calls(struct mercenary_data *md)
 		return sd->status.spear_calls;
 	if( class_ >= 6037 && class_ <= 6046 )
 		return sd->status.sword_calls;
+	else
+		return 0;
 
 	return 0;
 }
@@ -174,6 +180,8 @@ int mercenary_set_calls(struct mercenary_data *md, int value)
 		calls = &sd->status.spear_calls;
 	else if( class_ >= 6037 && class_ <= 6046 )
 		calls = &sd->status.sword_calls;
+	else
+		return 0;
 
 	*calls += value;
 	*calls = cap_value(*calls, 0, INT_MAX);