Browse Source

- Corrected the element of hunter traps.
- Deadly Poison now also reduces def2 by 25%
- Changed skill_setmapcell to use skill splash rather than range.
- Cleaned up a bit skill_moonlit, now it knocks back the correct amount of cells.
- Fixed @mi displaying always 0 instead of the mob's class.


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

skotlex 19 years ago
parent
commit
5407f6eed1
6 changed files with 21 additions and 16 deletions
  1. 5 0
      Changelog-Trunk.txt
  2. 1 1
      db/Changelog.txt
  3. 2 2
      db/skill_db.txt
  4. 5 5
      src/map/atcommand.c
  5. 5 7
      src/map/skill.c
  6. 3 1
      src/map/status.c

+ 5 - 0
Changelog-Trunk.txt

@@ -4,6 +4,11 @@ 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.
 
 2006/06/26
+	* Corrected the element of hunter traps. [Skotlex]
+	* Deadly Poison now also reduces def2 by 25% [Skotlex]
+	* Cleaned up a bit skill_moonlit, Moonlit Petals should work correctly now.
+	  [Skotlex]
+	* Fixed @mi displaying always 0 instead of the mob's class. [Skotlex]
 	* Rough implementation of Ground Drift according to description and jA
 	  info. [Skotlex]
 	* Implemented Tatami Gaeshi using skill description and jA implementation

+ 1 - 1
db/Changelog.txt

@@ -1,7 +1,7 @@
 ========================= Items that need fixing/implementing
 
 	2116 Angelic Guard:	Reduce 5% damage from Demon Monsters. (Not Fish :/ )
-	2417 Freyr's Shoes:	Increase value of Red, Orange, Yellow and White Potion by 20%.
+	2417 Freyr's Shoes:	Increase heal value of Red, Orange, Yellow and White Potion by 20%.
 				If the owner is equipped with the armor set, it adds Agi+ 3, MHP/MSP + 5%.
 	2418 Vidar's Boots:	Adds VIT +5, Increase HP/SP Recovery speed by 10% if the owner is equipped with the armor set.
 	2515 Eagle Wing:	Increase Movement Speed if the owner is equipped with Wing Staff at the same time.

+ 2 - 2
db/skill_db.txt

@@ -141,8 +141,8 @@
 119,3,6,2,0,3,2,5,1,no,0,128,0,misc,0	//HT_SANDMAN#Sandman#
 120,3,6,2,0,3,1,5,1,no,0,128,0,misc,0	//HT_FLASHER#Flasher#
 121,3,6,2,1,2,1,5,1,no,0,128,0,misc,0	//HT_FREEZINGTRAP#Freezing Trap#
-122,3,6,2,3,2,1,5,1,no,0,128,0,misc,0	//HT_BLASTMINE#Blast Mine#
-123,3,6,2,2,2,2,5,1,no,0,128,0,misc,0	//HT_CLAYMORETRAP#Claymore Trap#
+122,3,6,2,4,2,1,5,1,no,0,128,0,misc,0	//HT_BLASTMINE#Blast Mine#
+123,3,6,2,3,2,2,5,1,no,0,128,0,misc,0	//HT_CLAYMORETRAP#Claymore Trap#
 124,2,6,32,0,1,0,1,1,no,0,0,0,misc,0	//HT_REMOVETRAP#Remove Trap#
 125,3,6,2,0,1,0,1,1,no,0,0,0,misc,0	//HT_TALKIEBOX#Talkie Box#
 126,0,0,0,0,0,0,10,0,no,0,0,0,weapon,0	//HT_BEASTBANE#Beast Bane#

+ 5 - 5
src/map/atcommand.c

@@ -9329,7 +9329,7 @@ int atcommand_mobinfo(
 	char atcmd_output2[200];
 	struct item_data *item_data;
 	struct mob_db *mob, *mob_array[MAX_SEARCH];
-	int mob_id, count;
+	int count;
 	int i, j, k;
 
 	memset(atcmd_output, '\0', sizeof(atcmd_output));
@@ -9341,9 +9341,9 @@ int atcommand_mobinfo(
 	}
 
 	// If monster identifier/name argument is a name
-	if ((mob_id = mobdb_checkid(atoi(message))))
+	if ((i = mobdb_checkid(atoi(message))))
 	{
-		mob_array[0] = mob_db(mob_id);
+		mob_array[0] = mob_db(i);
 		count = 1;
 	} else
 		count = mobdb_searchname_array(mob_array, MAX_SEARCH, message);
@@ -9363,9 +9363,9 @@ int atcommand_mobinfo(
 
 		// stats
 		if (mob->mexp)
-			sprintf(atcmd_output, "MVP Monster: '%s'/'%s'/'%s' (%d)", mob->name, mob->jname, mob->sprite, mob_id);
+			sprintf(atcmd_output, "MVP Monster: '%s'/'%s'/'%s' (%d)", mob->name, mob->jname, mob->sprite, mob->vd.class_);
 		else
-			sprintf(atcmd_output, "Monster: '%s'/'%s'/'%s' (%d)", mob->name, mob->jname, mob->sprite, mob_id);
+			sprintf(atcmd_output, "Monster: '%s'/'%s'/'%s' (%d)", mob->name, mob->jname, mob->sprite, mob->vd.class_);
 		clif_displaymessage(fd, atcmd_output);
 		sprintf(atcmd_output, " Level:%d  HP:%d  SP:%d  Base EXP:%d  Job EXP:%d", mob->lv, mob->status.max_hp, mob->status.max_sp, mob->base_exp, mob->job_exp);
 		clif_displaymessage(fd, atcmd_output);

+ 5 - 7
src/map/skill.c

@@ -7233,16 +7233,14 @@ static int skill_moonlit_sub(struct block_list *bl, va_list ap) {
  */
 static void skill_moonlit (struct block_list* src, struct block_list* partner, int skilllv)
 {
-	int range = skill_get_range2(src, CG_MOONLIT, skilllv);
+	int range = skill_get_splash(CG_MOONLIT, skilllv);
 	int blowcount = range+1, time = skill_get_time(CG_MOONLIT,skilllv);
 	
 	map_foreachinrange(skill_moonlit_sub,src,
-		skill_get_splash(CG_MOONLIT, skilllv),
-		BL_CHAR,src,partner,blowcount);
+		range, BL_CHAR,src,partner,blowcount);
 	if(partner)
 		map_foreachinrange(skill_moonlit_sub,partner,
-			skill_get_splash(CG_MOONLIT, skilllv),
-			BL_CHAR,src,partner,blowcount);
+			range, BL_CHAR,src,partner,blowcount);
 		
 	sc_start4(src,SC_DANCING,100,CG_MOONLIT,0,0,partner?partner->id:BCT_SELF,time+1000);
 	sc_start4(src,SkillStatusChangeTable(CG_MOONLIT),100,skilllv,0,0,0,time);
@@ -8744,12 +8742,12 @@ void skill_unitsetmapcell (struct skill_unit *src, int skill_num, int skill_lv,
 }
 
 /*==========================================
- * Sets a map cell around the caster, according to the skill's range.
+ * Sets a map cell around the caster, according to the skill's splash range.
  *------------------------------------------
  */
 void skill_setmapcell (struct block_list *src, int skill_num, int skill_lv, int flag)
 {
-	int i,x,y,range = skill_get_range2(src, skill_num, skill_lv);
+	int i,x,y,range = skill_get_splash(skill_num, skill_lv);
 	int size = range*2+1;
 
 	for (i=0;i<size*size;i++) {

+ 3 - 1
src/map/status.c

@@ -116,7 +116,7 @@ void initChangeTables(void) {
 //	StatusChangeFlagTable[SC_CONFUSION] = SCB_NONE;
 	StatusChangeFlagTable[SC_BLIND] =     SCB_HIT|SCB_FLEE;
 //	StatusChangeFlagTable[SC_BLEEDING] =  SCB_NONE;
-//	StatusChangeFlagTable[SC_DPOISON] =   SCB_NONE;
+	StatusChangeFlagTable[SC_DPOISON] =   SCB_DEF2;
 
 	//The icons for the common ailments
 //	StatusIconChangeTable[SC_STONE] =     SI_BLANK;
@@ -3156,6 +3156,8 @@ static signed short status_calc_def2(struct block_list *bl, struct status_change
 		def2 -= def2 * sc->data[SC_CONCENTRATION].val4/100;
 	if(sc->data[SC_POISON].timer!=-1)
 		def2 -= def2 * 25/100;
+	if(sc->data[SC_DPOISON].timer!=-1)
+		def2 -= def2 * 25/100;
 	if(sc->data[SC_SKE].timer!=-1)
 		def2 -= def2 * 50/100;
 	if(sc->data[SC_PROVOKE].timer!=-1)