Browse Source

=General
*Added CANNONBALL and THROWWEAPON item types as ammo types.
-IT_THROWWEAPON will be removed soon as all ammo equiptable
-items should be fully treated as ammo type in rAthena and
-not as a item type.


=Jobs
*Added a config to set max stat limit for baby 3rd's. Default is 108.

*Kagerou/Oboro stat limit is now set to whatever the limit is set to for 3rd jobs.
-Which is the default 120.

*Added item job masks for Gangsi, Death Knight, Dark Collector, and Kagerou/Oboro.
-Note: Backwards compatibility was added to allow Kagerou/Oboro to use all the equips
-the Ninja job can use to prevent needing to edit a chunk of the item database.
-The job also has its own exclusive mask which will be used on their exclusive equips soon.

*Kagerou/Oboro jobs can now duel weld daggers.

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

technote24 13 years ago
parent
commit
9003fa4eca
6 changed files with 24 additions and 6 deletions
  1. 4 1
      conf/battle/player.conf
  2. 2 1
      src/map/battle.c
  3. 2 0
      src/map/battle.h
  4. 10 1
      src/map/itemdb.c
  5. 2 1
      src/map/pc.c
  6. 4 2
      src/map/pc.h

+ 4 - 1
conf/battle/player.conf

@@ -82,7 +82,10 @@ max_third_parameter: 120
 // Same as max_parameter, but for baby classes.
 max_baby_parameter: 80
 
-// Max armor def/mdef 
+// Same as max_parameter, but for baby 3rd's.
+max_baby_third_parameter: 108
+
+// Max armor def/mdef
 // NOTE: This setting have no effect if server is run on Renewal Mode (REMODE) 
 // NOTE: does not affects skills and status effects like Mental Strength
 // If weapon_defense_type is non-zero, it won't apply to max def.

+ 2 - 1
src/map/battle.c

@@ -5017,7 +5017,8 @@ static const struct _battle_data {
 	/**
 	 * rAthena
 	 **/
-	{ "max_third_parameter",                &battle_config.max_third_parameter,             20,     0,      INT_MAX,        },
+	{ "max_third_parameter",                &battle_config.max_third_parameter,             120,    10,     10000,          },
+	{ "max_baby_third_parameter",           &battle_config.max_baby_third_parameter,        108,    10,     10000,          },
 	{ "atcommand_max_stat_bypass",          &battle_config.atcommand_max_stat_bypass,       0,      0,      100,            },          
 	{ "skill_amotion_leniency",             &battle_config.skill_amotion_leniency,          90,     0,      100				},
 };

+ 2 - 0
src/map/battle.h

@@ -467,8 +467,10 @@ extern struct Battle_Config
 	int bg_magic_damage_rate;
 	int bg_misc_damage_rate;
 	int bg_flee_penalty;
+
 	// rAthena
 	int max_third_parameter;
+	int max_baby_third_parameter;
 	int atcommand_max_stat_bypass;
 } battle_config;
 

+ 10 - 1
src/map/itemdb.c

@@ -259,7 +259,16 @@ static void itemdb_jobid2mapid(unsigned int *bclass, unsigned int jobmask)
 	if (jobmask & 1<<JOB_GUNSLINGER)
 		bclass[0] |= 1<<MAPID_GUNSLINGER;
 	if (jobmask & 1<<JOB_NINJA)
-		bclass[0] |= 1<<MAPID_NINJA;
+		{bclass[0] |= 1<<MAPID_NINJA;
+		bclass[1] |= 1<<MAPID_NINJA;}//Kagerou/Oboro jobs can equip Ninja equips. [Rytech]
+	if (jobmask & 1<<26) //Bongun/Munak
+		bclass[0] |= 1<<MAPID_GANGSI;
+	if (jobmask & 1<<27) //Death Knight
+		bclass[1] |= 1<<MAPID_GANGSI;
+	if (jobmask & 1<<28) //Dark Collector
+		bclass[2] |= 1<<MAPID_GANGSI;
+	if (jobmask & 1<<29) //Kagerou / Oboro
+		bclass[1] |= 1<<MAPID_NINJA;
 }
 
 static void create_dummy_data(void)

+ 2 - 1
src/map/pc.c

@@ -594,7 +594,8 @@ int pc_equippoint(struct map_session_data *sd,int n)
 	if(sd->inventory_data[n]->look == W_DAGGER	||
 		sd->inventory_data[n]->look == W_1HSWORD ||
 		sd->inventory_data[n]->look == W_1HAXE) {
-		if(ep == EQP_HAND_R && (pc_checkskill(sd,AS_LEFT) > 0 || (sd->class_&MAPID_UPPERMASK) == MAPID_ASSASSIN))
+		if(ep == EQP_HAND_R && (pc_checkskill(sd,AS_LEFT) > 0 || (sd->class_&MAPID_UPPERMASK) == MAPID_ASSASSIN || 
+			(sd->class_&MAPID_UPPERMASK) == MAPID_KAGEROUOBORO))//Kagerou and Oboro can dual wield daggers. [Rytech]
 			return EQP_ARMS;
 	}
 	return ep;

+ 4 - 2
src/map/pc.h

@@ -521,7 +521,9 @@ enum ammo_type {
 	A_SHELL,    //4
 	A_GRENADE,  //5
 	A_SHURIKEN, //6
-	A_KUNAI     //7
+	A_KUNAI,     //7
+	A_CANNONBALL,	//8
+	A_THROWWEAPON	//9
 };
 
 //Equip position constants
@@ -614,7 +616,7 @@ enum e_pc_permission {
 #define pc_isinvisible(sd)    ( (sd)->sc.option&OPTION_INVISIBLE )
 #define pc_is50overweight(sd) ( (sd)->weight*100 >= (sd)->max_weight*battle_config.natural_heal_weight_rate )
 #define pc_is90overweight(sd) ( (sd)->weight*10 >= (sd)->max_weight*9 )
-#define pc_maxparameter(sd)   ( (sd)->class_&JOBL_THIRD ? battle_config.max_third_parameter : (sd)->class_&JOBL_BABY ? battle_config.max_baby_parameter : battle_config.max_parameter )
+#define pc_maxparameter(sd)   ( ((((sd)->class_&MAPID_UPPERMASK) == MAPID_KAGEROUOBORO) || (sd)->class_&JOBL_THIRD ? ((sd)->class_&JOBL_BABY ? battle_config.max_baby_third_parameter : battle_config.max_third_parameter) : ((sd)->class_&JOBL_BABY ? battle_config.max_baby_parameter : battle_config.max_parameter)) )
 /** 
  * Ranger
  **/