Skip to content

Commit

Permalink
Introducing 5 new/official mapflags.
Browse files Browse the repository at this point in the history
They're:
- weapon_damage_rate
- magic_damage_rate
- misc_damage_rate
- long_damage_rate
- short_damage_rate
Dropped 15 battle settings that became pointless with this upgrade.
Updated battleground zone damage reductions, skill damage from -30% to -20% and weapon damage from -40% to -30%.
Special Thanks to Muad_Dib.

Signed-off-by: shennetsind <ind@henn.et>
  • Loading branch information
shennetsind committed Apr 3, 2013
1 parent 57dff2d commit e702cc0
Show file tree
Hide file tree
Showing 11 changed files with 215 additions and 142 deletions.
15 changes: 0 additions & 15 deletions conf/battle/battleground.conf
Expand Up @@ -9,21 +9,6 @@
// assume unit types (1: Pc, 2: Mob, 4: Pet, 8: Homun)
//--------------------------------------------------------------

// Melee damage adjustments (non skills) for Battleground maps (Note 2)
bg_short_attack_damage_rate: 80

// Ranged damage adjustments (non skills) for Battleground maps (Note 2)
bg_long_attack_damage_rate: 80

// Weapon skills damage adjustments for Battleground maps (Note 2)
bg_weapon_attack_damage_rate: 60

// Magic skills damage adjustments for Battleground maps (Note 2)
bg_magic_attack_damage_rate: 60

// Misc skills damage adjustments for Battleground maps (Note 2)
bg_misc_attack_damage_rate: 60

// Flee penalty on BG grounds.
// NOTE: It's %, not absolute, so 20 is -20% of your total flee
bg_flee_penalty: 20
Expand Down
15 changes: 0 additions & 15 deletions conf/battle/guild.conf
Expand Up @@ -23,21 +23,6 @@ guild_skill_relog_delay: yes
// Damage adjustments for WOE battles against defending Guild monsters (Note 2)
castle_defense_rate: 100

// Melee damage adjustments (non skills) for WoE battles (Guild Vs Guild) (Note 2)
gvg_short_attack_damage_rate: 80

// Ranged damage adjustments (non skills) for WoE battles (Guild Vs Guild) (Note 2)
gvg_long_attack_damage_rate: 80

// Weapon skills damage adjustments for WoE battles (Guild Vs Guild) (Note 2)
gvg_weapon_attack_damage_rate: 60

// Magic skills damage adjustments for WoE battles (Guild Vs Guild) (Note 2)
gvg_magic_attack_damage_rate: 60

// Misc skills damage adjustments for WoE battles (Guild Vs Guild) (Note 2)
gvg_misc_attack_damage_rate: 60

// Flee penalty on gvg grounds. Official value is 20 (Note 2)
// NOTE: It's %, not absolute, so 20 is -20% of your total flee
gvg_flee_penalty: 20
Expand Down
10 changes: 1 addition & 9 deletions conf/battle/misc.conf
Expand Up @@ -16,7 +16,7 @@
// Note: If pk_mode is set to 2 instead of 1 (yes), players will receive a
// manner penalty of 5 each time they kill another player (see manner_system
// config to adjust how this will affect players)
pk_mode: 0
pk_mode: 1

This comment has been minimized.

Copy link
@shennetsind

shennetsind Apr 3, 2013

Author Member

whops leftover from when I was debugging. reverted this line in 15c8150


// Manner/karma system configuration. Specifies how does negative manner
// (red no chat bubble) affects players (add as needed):
Expand All @@ -35,14 +35,6 @@ 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

// Display skill usage in console? (for debug only) (default: off) (Note 3)
skill_log: off

Expand Down
58 changes: 55 additions & 3 deletions db/pre-re/map_zone_db.conf
Expand Up @@ -51,6 +51,32 @@ zones: (
Greed_Scroll: true
}
},
{
/* PK Mode zone is only used when server is on pk_mode (battle.conf),
it applies to all pvp maps that don't have their own zone */
name: "PK Mode" /* changing this name requires MAP_ZONE_PK_NAME to also be changed in src/map/map.h file */

disabled_skills: {

}

disabled_items: {

}

/* PK Mode Damage Reductions */
/* - weapon_damage_rate -40% */
/* - magic_damage_rate -40% */
/* - misc_damage_rate -40% */
/* - long_damage_rate -30% */
/* - short_damage_rate -20% */
mapflags: (
"weapon_damage_rate 60",
"magic_damage_rate 60",
"misc_damage_rate 60",
"long_damage_rate 70",
"short_damage_rate 80" )
},
{
/* GvG zone is applied to all maps with a pvp mapflag */
name: "GvG" /* changing this name requires MAP_ZONE_GVG_NAME to also be changed in src/map/map.h file */
Expand Down Expand Up @@ -82,7 +108,20 @@ zones: (
}
/* 5 second duration increase on GvG */
/* knockback disabled */
mapflags: ( "invincible_time_inc 5000", "noknockback" )
/* GvG Mode Damage Reductions */
/* - weapon_damage_rate -40% */
/* - magic_damage_rate -40% */
/* - misc_damage_rate -40% */
/* - long_damage_rate -20% */
/* - short_damage_rate -20% */
mapflags: ( "invincible_time_inc 5000",
"noknockback",
"weapon_damage_rate 60",
"magic_damage_rate 60",
"misc_damage_rate 60",
"long_damage_rate 80",
"short_damage_rate 80" )

},
{
/* Battlegrounds zone is applied to all maps with a battlegrounds mapflag */
Expand Down Expand Up @@ -126,9 +165,22 @@ zones: (
disabled_items: {
Assumptio_5_Scroll: true
Pty_Assumptio_Scroll: true
}
}

/* knockback disabled */
mapflags: ( "noknockback" )
/* Battlegrounds Damage Reductions */
/* - weapon_damage_rate -30% */
/* - magic_damage_rate -30% */
/* - misc_damage_rate -30% */
/* - long_damage_rate -25% */
/* - short_damage_rate -25% */
mapflags: ( "noknockback",
"weapon_damage_rate 70",
"magic_damage_rate 70",
"misc_damage_rate 70",
"long_damage_rate 75",
"short_damage_rate 75" )

},
{
name: "Aldebaran Turbo Track"
Expand Down
58 changes: 55 additions & 3 deletions db/re/map_zone_db.conf
Expand Up @@ -51,6 +51,32 @@ zones: (
Greed_Scroll: true
}
},
{
/* PK Mode zone is only used when server is on pk_mode (battle.conf),
it applies to all pvp maps that don't have their own zone */
name: "PK Mode" /* changing this name requires MAP_ZONE_PK_NAME to also be changed in src/map/map.h file */

disabled_skills: {

}

disabled_items: {

}

/* PK Mode Damage Reductions */
/* - weapon_damage_rate -40% */
/* - magic_damage_rate -40% */
/* - misc_damage_rate -40% */
/* - long_damage_rate -30% */
/* - short_damage_rate -20% */
mapflags: (
"weapon_damage_rate 60",
"magic_damage_rate 60",
"misc_damage_rate 60",
"long_damage_rate 70",
"short_damage_rate 80" )
},
{
/* GvG zone is applied to all maps with a pvp mapflag */
name: "GvG" /* changing this name requires MAP_ZONE_GVG_NAME to also be changed in src/map/map.h file */
Expand Down Expand Up @@ -82,7 +108,20 @@ zones: (
}
/* 5 second duration increase on GvG */
/* knockback disabled */
mapflags: ( "invincible_time_inc 5000", "noknockback" )
/* GvG Mode Damage Reductions */
/* - weapon_damage_rate -40% */
/* - magic_damage_rate -40% */
/* - misc_damage_rate -40% */
/* - long_damage_rate -20% */
/* - short_damage_rate -20% */
mapflags: ( "invincible_time_inc 5000",
"noknockback",
"weapon_damage_rate 60",
"magic_damage_rate 60",
"misc_damage_rate 60",
"long_damage_rate 80",
"short_damage_rate 80" )

},
{
/* Battlegrounds zone is applied to all maps with a battlegrounds mapflag */
Expand Down Expand Up @@ -126,9 +165,22 @@ zones: (
disabled_items: {
Assumptio_5_Scroll: true
Pty_Assumptio_Scroll: true
}
}

/* knockback disabled */
mapflags: ( "noknockback" )
/* Battlegrounds Damage Reductions */
/* - weapon_damage_rate -30% */
/* - magic_damage_rate -30% */
/* - misc_damage_rate -30% */
/* - long_damage_rate -25% */
/* - short_damage_rate -25% */
mapflags: ( "noknockback",
"weapon_damage_rate 70",
"magic_damage_rate 70",
"misc_damage_rate 70",
"long_damage_rate 75",
"short_damage_rate 75" )

},
{
name: "Aldebaran Turbo Track"
Expand Down
101 changes: 28 additions & 73 deletions src/map/battle.c
Expand Up @@ -1199,23 +1199,31 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,struct Damag
if (hd) hom_addspiritball(hd, 10);
}
}

if (battle_config.pk_mode && sd && bl->type == BL_PC && damage && map[bl->m].flag.pvp)
{
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 * battle_config.pk_short_damage_rate / 100;
if (flag & BF_LONG)
damage = damage * battle_config.pk_long_damage_rate / 100;
}
if(!damage) damage = 1;
/* no data claims these settings affect anything other than players */
if( damage && sd && bl->type == BL_PC ) {
switch( skill_id ) {
//case PA_PRESSURE: /* pressure also belongs to this list but it doesn't reach this area -- so dont worry about it */
case HW_GRAVITATION:
case NJ_ZENYNAGE:
case KO_MUCHANAGE:
break;
default:
if (flag & BF_SKILL) { //Skills get a different reduction than non-skills. [Skotlex]
if (flag&BF_WEAPON)
damage = damage * map[bl->m].weapon_damage_rate / 100;
if (flag&BF_MAGIC)
damage = damage * map[bl->m].magic_damage_rate / 100;
if (flag&BF_MISC)
damage = damage * map[bl->m].misc_damage_rate / 100;
} else { //Normal attacks get reductions based on range.
if (flag & BF_SHORT)
damage = damage * map[bl->m].short_damage_rate / 100;
if (flag & BF_LONG)
damage = damage * map[bl->m].long_damage_rate / 100;
}
if(!damage) damage = 1;
break;
}
}

if(battle_config.skill_min_damage && damage > 0 && damage < div_)
Expand Down Expand Up @@ -1267,35 +1275,10 @@ int battle_calc_bg_damage(struct block_list *src, struct block_list *bl, int dam
if( bl->type == BL_MOB ) {
struct mob_data* md = BL_CAST(BL_MOB, bl);

if( map[bl->m].flag.battleground && (md->class_ == MOBID_BLUE_CRYST || md->class_ == MOBID_PINK_CRYST) && flag&BF_SKILL )
if( flag&BF_SKILL && (md->class_ == MOBID_BLUE_CRYST || md->class_ == MOBID_PINK_CRYST) )
return 0; // Crystal cannot receive skill damage on battlegrounds
}

switch( skill_id ) {
case PA_PRESSURE:
case HW_GRAVITATION:
case NJ_ZENYNAGE:
case KO_MUCHANAGE:
break;
default:
if( flag&BF_SKILL ) { //Skills get a different reduction than non-skills. [Skotlex]
if( flag&BF_WEAPON )
damage = damage * battle_config.bg_weapon_damage_rate / 100;
if( flag&BF_MAGIC )
damage = damage * battle_config.bg_magic_damage_rate / 100;
if( flag&BF_MISC )
damage = damage * battle_config.bg_misc_damage_rate / 100;
} else { //Normal attacks get reductions based on range.
if( flag&BF_SHORT )
damage = damage * battle_config.bg_short_damage_rate / 100;
if( flag&BF_LONG )
damage = damage * battle_config.bg_long_damage_rate / 100;
}

if( !damage )
damage = 1;
}

return damage;
}

Expand Down Expand Up @@ -1335,7 +1318,6 @@ int battle_calc_gvg_damage(struct block_list *src,struct block_list *bl,int dama
}

switch (skill_id) {
//Skills with no damage reduction.
case PA_PRESSURE:
case HW_GRAVITATION:
case NJ_ZENYNAGE:
Expand All @@ -1347,21 +1329,9 @@ int battle_calc_gvg_damage(struct block_list *src,struct block_list *bl,int dama
damage -= damage * (md->guardian_data->castle->defense/100) * battle_config.castle_defense_rate/100;
}
*/
if (flag & BF_SKILL) { //Skills get a different reduction than non-skills. [Skotlex]
if (flag&BF_WEAPON)
damage = damage * battle_config.gvg_weapon_damage_rate / 100;
if (flag&BF_MAGIC)
damage = damage * battle_config.gvg_magic_damage_rate / 100;
if (flag&BF_MISC)
damage = damage * battle_config.gvg_misc_damage_rate / 100;
} else { //Normal attacks get reductions based on range.
if (flag & BF_SHORT)
damage = damage * battle_config.gvg_short_damage_rate / 100;
if (flag & BF_LONG)
damage = damage * battle_config.gvg_long_damage_rate / 100;
}
if(!damage) damage = 1;
break;
}

return damage;
}

Expand Down Expand Up @@ -5665,17 +5635,7 @@ static const struct _battle_data {
{ "player_cloak_check_type", &battle_config.pc_cloak_check_type, 1, 0, 1|2|4, },
{ "monster_cloak_check_type", &battle_config.monster_cloak_check_type, 4, 0, 1|2|4, },
{ "sense_type", &battle_config.estimation_type, 1|2, 0, 1|2, },
{ "gvg_short_attack_damage_rate", &battle_config.gvg_short_damage_rate, 80, 0, INT_MAX, },
{ "gvg_long_attack_damage_rate", &battle_config.gvg_long_damage_rate, 80, 0, INT_MAX, },
{ "gvg_weapon_attack_damage_rate", &battle_config.gvg_weapon_damage_rate, 60, 0, INT_MAX, },
{ "gvg_magic_attack_damage_rate", &battle_config.gvg_magic_damage_rate, 60, 0, INT_MAX, },
{ "gvg_misc_attack_damage_rate", &battle_config.gvg_misc_damage_rate, 60, 0, INT_MAX, },
{ "gvg_flee_penalty", &battle_config.gvg_flee_penalty, 20, 0, INT_MAX, },
{ "pk_short_attack_damage_rate", &battle_config.pk_short_damage_rate, 80, 0, INT_MAX, },
{ "pk_long_attack_damage_rate", &battle_config.pk_long_damage_rate, 70, 0, INT_MAX, },
{ "pk_weapon_attack_damage_rate", &battle_config.pk_weapon_damage_rate, 60, 0, INT_MAX, },
{ "pk_magic_attack_damage_rate", &battle_config.pk_magic_damage_rate, 60, 0, INT_MAX, },
{ "pk_misc_attack_damage_rate", &battle_config.pk_misc_damage_rate, 60, 0, INT_MAX, },
{ "mob_changetarget_byskill", &battle_config.mob_changetarget_byskill, 0, 0, 1, },
{ "attack_direction_change", &battle_config.attack_direction_change, BL_ALL, BL_NUL, BL_ALL, },
{ "land_skill_limit", &battle_config.land_skill_limit, BL_ALL, BL_NUL, BL_ALL, },
Expand Down Expand Up @@ -5867,11 +5827,6 @@ static const struct _battle_data {
{ "client_limit_unit_lv", &battle_config.client_limit_unit_lv, 0, 0, BL_ALL, },
// BattleGround Settings
{ "bg_update_interval", &battle_config.bg_update_interval, 1000, 100, INT_MAX, },
{ "bg_short_attack_damage_rate", &battle_config.bg_short_damage_rate, 80, 0, INT_MAX, },
{ "bg_long_attack_damage_rate", &battle_config.bg_long_damage_rate, 80, 0, INT_MAX, },
{ "bg_weapon_attack_damage_rate", &battle_config.bg_weapon_damage_rate, 60, 0, INT_MAX, },
{ "bg_magic_attack_damage_rate", &battle_config.bg_magic_damage_rate, 60, 0, INT_MAX, },
{ "bg_misc_attack_damage_rate", &battle_config.bg_misc_damage_rate, 60, 0, INT_MAX, },
{ "bg_flee_penalty", &battle_config.bg_flee_penalty, 20, 0, INT_MAX, },
/**
* rAthena
Expand Down

1 comment on commit e702cc0

@shennetsind
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i typed the wrong value in the message log, (the commit is fine):
weapon damage from -40% to -30%.
its 35% not 30%.

Please sign in to comment.