Jump to content

NimbleStorm

Members
  • Posts

    4
  • Joined

  • Last visited

Profile Information

  • Gender
    Male
  • Location
    Toronto, Ontario
  • Server
    LegacyRO, EvolveRO, CelestiaRO

Recent Profile Visitors

613 profile views

NimbleStorm's Achievements

Poporing

Poporing (4/15)

  • Dedicated
  • First Post
  • Reacting Well
  • Week One Done
  • One Month Later

Recent Badges

1

Reputation

  1. Hello, If you're running the latest rAthena: In /conf/battle/player.conf You may adjust the following to alter the time factor of regen for HP/SP: // The time interval for HP to restore naturally. (in milliseconds) natural_healhp_interval: 6000 // The time interval for SP to restore naturally. (in milliseconds) natural_healsp_interval: 8000 An alternative but not recommended method source-side: In /src/map/pc.cpp: Replace: //Character regen. Flag is used to know which types of regen can take place. //&1: HP regen //&2: SP regen void pc_regen (map_session_data *sd, t_tick diff_tick) { int hp = 0, sp = 0; if (sd->hp_regen.value) { sd->hp_regen.tick += diff_tick; while (sd->hp_regen.tick >= sd->hp_regen.rate) { hp += sd->hp_regen.value; sd->hp_regen.tick -= sd->hp_regen.rate; } } if (sd->sp_regen.value) { sd->sp_regen.tick += diff_tick; while (sd->sp_regen.tick >= sd->sp_regen.rate) { sp += sd->sp_regen.value; sd->sp_regen.tick -= sd->sp_regen.rate; } } if (sd->percent_hp_regen.value) { sd->percent_hp_regen.tick += diff_tick; while (sd->percent_hp_regen.tick >= sd->percent_hp_regen.rate) { hp += sd->status.max_hp * sd->percent_hp_regen.value / 100; sd->percent_hp_regen.tick -= sd->percent_hp_regen.rate; } } if (sd->percent_sp_regen.value) { sd->percent_sp_regen.tick += diff_tick; while (sd->percent_sp_regen.tick >= sd->percent_sp_regen.rate) { sp += sd->status.max_sp * sd->percent_sp_regen.value / 100; sd->percent_sp_regen.tick -= sd->percent_sp_regen.rate; } } if (hp > 0 || sp > 0) status_heal(&sd->bl, hp, sp, 0); } With: void pc_regen (map_session_data *sd, t_tick diff_tick) { int hp = 0, sp = 0; int regen_rate_modifier = 1; // Normal rate // Check if the player is sitting to apply a rate modifier [NimbleStorm] if (pc_issit(sd)) { regen_rate_modifier = 2; // Increase tick rate by a factor of 2, adjust as needed [NimbleStorm] } if (sd->hp_regen.value) { sd->hp_regen.tick += diff_tick * regen_rate_modifier; // Apply modified rate while (sd->hp_regen.tick >= sd->hp_regen.rate) { hp += sd->hp_regen.value; sd->hp_regen.tick -= sd->hp_regen.rate; } } if (sd->sp_regen.value) { sd->sp_regen.tick += diff_tick * regen_rate_modifier; // Apply modified rate while (sd->sp_regen.tick >= sd->sp_regen.rate) { sp += sd->sp_regen.value; sd->sp_regen.tick -= sd->sp_regen.rate; } } if (sd->percent_hp_regen.value) { sd->percent_hp_regen.tick += diff_tick * regen_rate_modifier; // Apply modified rate while (sd->percent_hp_regen.tick >= sd->percent_hp_regen.rate) { hp += sd->status.max_hp * sd->percent_hp_regen.value / 100; sd->percent_hp_regen.tick -= sd->percent_hp_regen.rate; } } if (sd->percent_sp_regen.value) { sd->percent_sp_regen.tick += diff_tick * regen_rate_modifier; // Apply modified rate while (sd->percent_sp_regen.tick >= sd->percent_sp_regen.rate) { sp += sd->status.max_sp * sd->percent_sp_regen.value / 100; sd->percent_sp_regen.tick -= sd->percent_sp_regen.rate; } } if (hp > 0 || sp > 0) status_heal(&sd->bl, hp, sp, 0); } Good luck. You can do it.
  2. Hi Tero, This quick & easy source mod came in quite handy along with the provided script! Thank you for your contribution. Kind regards, NimbleStorm.
  3. @Functor usually responds promptly on Skype within a day or so at max.
×
×
  • Create New...