summaryrefslogtreecommitdiff
path: root/src/map/pc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/pc.c')
-rw-r--r--src/map/pc.c55
1 files changed, 46 insertions, 9 deletions
diff --git a/src/map/pc.c b/src/map/pc.c
index b2fb1e120..b755d1790 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -1,4 +1,4 @@
-// $Id: pc.c 101 2004-09-25 17:57:22Z Valaris $
+// $Id: pc.c 101 2004-11-23 14:33:00Z Celestia $
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -1434,10 +1434,40 @@ int pc_calcstatus(struct map_session_data* sd,int first)
sd->paramb[4] += skill;
if((skill=pc_checkskill(sd,BS_HILTBINDING))>0) { // Hilt binding gives +1 str +4 atk
- sd->paramb[4] ++;
+ sd->paramb[0] ++;
sd->base_atk += 4;
}
+ // Celest
+ if (sd->status.guild_id > 0) {
+ struct guild *g;
+ if ((g = guild_search(sd->status.guild_id)) && strcmp(sd->status.name,g->master)==0) {
+ if (guild_checkskill(g, GD_LEADERSHIP)>0)
+ ; //skillunitsetting
+ if (guild_checkskill(g, GD_GLORYWOUNDS)>0)
+ ; //skillunitsetting
+ if (guild_checkskill(g, GD_SOULCOLD)>0)
+ ; //skillunitsetting
+ if (guild_checkskill(g, GD_HAWKEYES)>0)
+ ; //skillunitsetting
+ }
+ if (sd->sc_count) {
+ if (sd->sc_data[SC_LEADERSHIP].timer != -1)
+ sd->paramb[0] += 2;
+ if (sd->sc_data[SC_GLORYWOUNDS].timer != -1)
+ sd->paramb[2] += 2;
+ if (sd->sc_data[SC_SOULCOLD].timer != -1)
+ sd->paramb[1] += 2;
+ if (sd->sc_data[SC_HAWKEYES].timer != -1)
+ sd->paramb[4] += 2;
+ if (sd->sc_data[SC_BATTLEORDERS].timer != -1) {
+ sd->paramb[0]+= 5;
+ sd->paramb[3]+= 5;
+ sd->paramb[4]+= 5;
+ }
+ }
+ }
+
// ステ?タス?化による基本パラメ?タ補正
if(sd->sc_count){
if(sd->sc_data[SC_CONCENTRATE].timer!=-1 && sd->sc_data[SC_QUAGMIRE].timer == -1){ // 集中力向上
@@ -6301,7 +6331,7 @@ int pc_equipitem(struct map_session_data *sd,int n,int pos)
// 二刀流?理
if ((pos==0x22) // 一?、?備要求箇所が二刀流武器かチェックする
&& (id->equip==2) // ? 手武器
- && (pc_checkskill(sd, AS_LEFT) > 0 || sd->status.class == 12) ) // 左手修?有
+ && (pc_checkskill(sd, AS_LEFT) > 0 || pc_calc_base_job2(sd->status.class) == 12) ) // 左手修?有
{
int tpos=0;
if(sd->equip_index[8] >= 0)
@@ -6745,9 +6775,13 @@ static int pc_spheal(struct map_session_data *sd)
a = natural_heal_diff_tick;
if(pc_issit(sd)) a += a;
- if (sd->sc_data[SC_MAGNIFICAT].timer!=-1) // マグニフィカ?ト
- a += a;
- if((skill = pc_checkskill(sd,HP_MEDITATIO)) > 0) //Increase natural SP regen with Meditatio [DracoRPG]
+ if (sd->sc_count) {
+ if (sd->sc_data[SC_MAGNIFICAT].timer!=-1) // マグニフィカ?ト
+ a += a;
+ if (sd->sc_data[SC_REGENERATION].timer != -1)
+ a *= sd->sc_data[SC_REGENERATION].val1;
+ }
+ if((skill = pc_checkskill(sd,HP_MEDITATIO)) > 0) //Increase natural SP regen with Meditatio [DracoRPG]
a += a*skill*3/100;
gc=guild_mapname2gc(sd->mapname); // Increased guild castle regen [Valaris]
@@ -6774,9 +6808,12 @@ static int pc_hpheal(struct map_session_data *sd)
a = natural_heal_diff_tick;
if(pc_issit(sd)) a += a;
- if( sd->sc_data[SC_MAGNIFICAT].timer!=-1 ) // Modified by RoVeRT
- a += a;
-
+ if (sd->sc_count) {
+ if( sd->sc_data[SC_MAGNIFICAT].timer!=-1 ) // Modified by RoVeRT
+ a += a;
+ if (sd->sc_data[SC_REGENERATION].timer != -1)
+ a *= sd->sc_data[SC_REGENERATION].val1;
+ }
gc=guild_mapname2gc(sd->mapname); // Increased guild castle regen [Valaris]
if(gc) {
struct guild *g;