Ver código fonte

- Added 5 config settings to adjust damage in pk-mode servers (misc.conf)
- Corrected LoV's effect range for levels 11+ to range 8.


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

skotlex 19 anos atrás
pai
commit
d16d7e47b4
6 arquivos alterados com 41 adições e 9 exclusões
  1. 2 0
      Changelog-Trunk.txt
  2. 8 0
      conf-tmpl/battle/misc.conf
  3. 1 0
      db/Changelog.txt
  4. 1 1
      db/skill_unit_db.txt
  5. 24 8
      src/map/battle.c
  6. 5 0
      src/map/battle.h

+ 2 - 0
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.
 
 2006/05/18
+	* Added 5 config settings to adjust damage in pk-mode servers (misc.conf)
+	  [Skotlex]
 	* Fixed mob_max_skilllvl being capped to 11! [Skotlex]
 	* Rewrote/cleaned up several functions in storage.c [Skotlex]
 	* Optimized pc_additem comparisons to account for items with more than four

+ 8 - 0
conf-tmpl/battle/misc.conf

@@ -45,6 +45,14 @@ pk_min_level: 55
 // players to let them attack each other. 0 disables said limit.
 pk_level_range: 0
 
+// For PK servers. Damage adjustment settings, these follow the same logic
+// as their WoE counterparts (see guild.conf)  
+pk_short_attack_damage_rate: 80
+pk_long_attack_damage_rate: 70
+pk_weapon_attack_damage_rate: 60
+pk_magic_attack_damage_rate: 60
+pk_misc_attack_damage_rate: 60
+
 // Allow muting of players?
 muting_players: yes
 

+ 1 - 0
db/Changelog.txt

@@ -27,6 +27,7 @@
 
 =========================
 05/18
+	* Corrected LoV's effect range for levels 11+ to range 8. [Skotlex]
 	* Added new items 2006-04-25 ... 2006-05-16. Thanks to Landarma [Lupus]
 05/16
 	* More Aegis X.2 drop updates [Playtester]

+ 1 - 1
db/skill_unit_db.txt

@@ -31,7 +31,7 @@
  79,0x84,    , -1, 1,3000,enemy, 0x008	//PR_MAGNUS#マグヌスエクソシズム
  80,0x87,0x88,  0, 1,2000,enemy, 0x002	//WZ_FIREPILLAR#ファイアーピラー
  83,0x86,    ,  0, 3,1000,enemy, 0x000	//WZ_METEOR#メテオストーム
- 85,0x86,    ,  0,6:6:6:6:6:6:6:6:6:6:25,1250,enemy, 0x008	//WZ_VERMILION#ロードオブヴァーミリオン
+ 85,0x86,    ,  0,6:6:6:6:6:6:6:6:6:6:8,1250,enemy, 0x008	//WZ_VERMILION#ロードオブヴァーミリオン
  87,0x8d,    , -1, 0,  -1,all,   0x000	//WZ_ICEWALL#アイスウォール
  88,0x86,    ,  0, 2,1000,enemy, 0x000	//WZ_FROSTNOVA#フロストノヴァ
  89,0x86,    ,  0, 5, 450,enemy, 0x008	//WZ_STORMGUST#ストームガスト

+ 24 - 8
src/map/battle.c

@@ -557,17 +557,21 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,int damage,i
 		}
 	}
 	
-	if (battle_config.pk_mode && bl->type == BL_PC && damage > 0) {
-		if (flag & BF_WEAPON) {
+	if (battle_config.pk_mode && sd && damage > 0)
+  	{
+		if (flag & BF_SKILL) { //Skills get a different reduction than non-skills. [Skotlex]
+			if (flag&BF_WEAPON)
+				damage = damage * battle_config.pk_weapon_damage_rate/100;
+			if (flag&BF_MAGIC)
+				damage = damage * battle_config.pk_magic_damage_rate/100;
+			if (flag&BF_MISC)
+				damage = damage * battle_config.pk_misc_damage_rate/100;
+		} else { //Normal attacks get reductions based on range.
 			if (flag & BF_SHORT)
-				damage = damage * 80/100;
+				damage = damage * battle_config.pk_short_damage_rate/100;
 			if (flag & BF_LONG)
-				damage = damage * 70/100;
+				damage = damage * battle_config.pk_long_damage_rate/100;
 		}
-		if (flag & BF_MAGIC)
-			damage = damage * 60/100;
-		if(flag & BF_MISC)
-			damage = damage * 60/100;
 		if(damage < 1) damage  = 1;
 	}
 
@@ -3718,6 +3722,11 @@ static const struct battle_data_short {
 	{ "gvg_magic_attack_damage_rate",      &battle_config.gvg_magic_damage_rate	},
 	{ "gvg_misc_attack_damage_rate",       &battle_config.gvg_misc_damage_rate		},
 	{ "gvg_flee_penalty",                  &battle_config.gvg_flee_penalty			},
+	{ "pk_short_attack_damage_rate",      &battle_config.pk_short_damage_rate	},
+	{ "pk_long_attack_damage_rate",       &battle_config.pk_long_damage_rate		},
+	{ "pk_weapon_attack_damage_rate",     &battle_config.pk_weapon_damage_rate	},
+	{ "pk_magic_attack_damage_rate",      &battle_config.pk_magic_damage_rate	},
+	{ "pk_misc_attack_damage_rate",       &battle_config.pk_misc_damage_rate		},
 	{ "mob_changetarget_byskill",          &battle_config.mob_changetarget_byskill},
 	{ "attack_direction_change",           &battle_config.attack_direction_change },
 	{ "land_skill_limit",                  &battle_config.land_skill_limit		},
@@ -4116,6 +4125,13 @@ void battle_set_defaults() {
 	battle_config.gvg_misc_damage_rate = 60;
 	battle_config.gvg_flee_penalty = 20;
 	battle_config.gvg_eliminate_time = 7000;
+
+	battle_config.pk_short_damage_rate = 80;
+	battle_config.pk_long_damage_rate = 70;
+	battle_config.pk_weapon_damage_rate = 60;
+	battle_config.pk_magic_damage_rate = 60;
+	battle_config.pk_misc_damage_rate = 60;
+
 	battle_config.mob_changetarget_byskill = 0;
 	battle_config.attack_direction_change = BL_ALL;
 	battle_config.land_skill_limit = BL_ALL;

+ 5 - 0
src/map/battle.h

@@ -251,6 +251,11 @@ extern struct Battle_Config {
 	unsigned short gvg_misc_damage_rate;
 	unsigned short gvg_flee_penalty;
 	int gvg_eliminate_time;
+	unsigned short pk_short_damage_rate;
+	unsigned short pk_long_damage_rate;
+	unsigned short pk_weapon_damage_rate;
+	unsigned short pk_magic_damage_rate;
+	unsigned short pk_misc_damage_rate;
 	unsigned short mob_changetarget_byskill;
 	unsigned short attack_direction_change;
 	unsigned short land_skill_limit;