* Added support for increased max statistics (parameters) for 3rd classes (regular and baby).
* Updated amounts of status points given at Base Level up for levels over 99. git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/renewal@14823 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
44a2936f02
commit
2e3209566f
@ -1,6 +1,8 @@
|
|||||||
Date Added
|
Date Added
|
||||||
|
|
||||||
2011/05/15
|
2011/05/15
|
||||||
|
* Added support for increased max statistics (parameters) for 3rd classes (regular and baby). [Gepard]
|
||||||
|
* Updated amounts of status points given at Base Level up for levels over 99. [Gepard]
|
||||||
* Fixes to Job Level stat bonuses table. [Gepard]
|
* Fixes to Job Level stat bonuses table. [Gepard]
|
||||||
- Added missing bonuses: Warlock's INT, Minstrel's INT & AGI, Genetic's VIT.
|
- Added missing bonuses: Warlock's INT, Minstrel's INT & AGI, Genetic's VIT.
|
||||||
- Official Royal Guard's bonuses.
|
- Official Royal Guard's bonuses.
|
||||||
|
@ -91,6 +91,12 @@ max_parameter: 99
|
|||||||
// Same as max_parameter, but for baby classes.
|
// Same as max_parameter, but for baby classes.
|
||||||
max_baby_parameter: 80
|
max_baby_parameter: 80
|
||||||
|
|
||||||
|
// Same as max_parameter, but for third classes.
|
||||||
|
max_third_parameter: 120
|
||||||
|
|
||||||
|
// Same as max_parameter, but for baby third classes.
|
||||||
|
max_baby_third_parameter: 108
|
||||||
|
|
||||||
// Max armor def/mdef
|
// Max armor def/mdef
|
||||||
// NOTE: does not affects skills and status effects like Mental Strength
|
// 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.
|
// If weapon_defense_type is non-zero, it won't apply to max def.
|
||||||
|
292
db/statpoint.txt
292
db/statpoint.txt
@ -103,153 +103,153 @@
|
|||||||
1364
|
1364
|
||||||
1387
|
1387
|
||||||
1410
|
1410
|
||||||
1434
|
1433
|
||||||
1458
|
1456
|
||||||
1482
|
1479
|
||||||
1506
|
1502
|
||||||
1530
|
1525
|
||||||
1555
|
1549
|
||||||
1580
|
1573
|
||||||
1605
|
1597
|
||||||
1630
|
1621
|
||||||
1655
|
1645
|
||||||
1681
|
1669
|
||||||
1707
|
1693
|
||||||
1733
|
1717
|
||||||
1759
|
1741
|
||||||
1785
|
1765
|
||||||
1812
|
1790
|
||||||
1839
|
1815
|
||||||
1866
|
1840
|
||||||
1893
|
1865
|
||||||
1920
|
1890
|
||||||
1948
|
1915
|
||||||
1976
|
1940
|
||||||
2004
|
1965
|
||||||
2032
|
1990
|
||||||
2060
|
2015
|
||||||
2089
|
2041
|
||||||
2118
|
2067
|
||||||
2147
|
2093
|
||||||
2176
|
2119
|
||||||
2205
|
2145
|
||||||
2235
|
2171
|
||||||
2265
|
2197
|
||||||
2295
|
2223
|
||||||
2325
|
2249
|
||||||
2355
|
2275
|
||||||
2386
|
2302
|
||||||
2417
|
2329
|
||||||
2448
|
2356
|
||||||
2479
|
2383
|
||||||
2510
|
2410
|
||||||
2542
|
2437
|
||||||
2574
|
2464
|
||||||
2606
|
2491
|
||||||
2638
|
2518
|
||||||
2670
|
2545
|
||||||
2703
|
2573
|
||||||
2736
|
2601
|
||||||
|
2629
|
||||||
|
2657
|
||||||
|
2685
|
||||||
|
2713
|
||||||
|
2743
|
||||||
2769
|
2769
|
||||||
2802
|
2797
|
||||||
2835
|
2825
|
||||||
2869
|
2854
|
||||||
2903
|
2883
|
||||||
2937
|
2912
|
||||||
2971
|
2941
|
||||||
3005
|
2970
|
||||||
3040
|
2999
|
||||||
3075
|
3028
|
||||||
3110
|
3057
|
||||||
|
3086
|
||||||
|
3115
|
||||||
3145
|
3145
|
||||||
3180
|
3175
|
||||||
3216
|
3205
|
||||||
3252
|
3235
|
||||||
3288
|
3265
|
||||||
3324
|
3295
|
||||||
3360
|
3325
|
||||||
3397
|
3355
|
||||||
3434
|
3385
|
||||||
3471
|
3415
|
||||||
|
3446
|
||||||
|
3477
|
||||||
3508
|
3508
|
||||||
3545
|
3539
|
||||||
3583
|
3570
|
||||||
3621
|
3601
|
||||||
3659
|
3632
|
||||||
3697
|
3663
|
||||||
3735
|
3694
|
||||||
3774
|
3725
|
||||||
3813
|
3757
|
||||||
3852
|
3789
|
||||||
3891
|
3821
|
||||||
3930
|
3853
|
||||||
3970
|
3885
|
||||||
4010
|
3917
|
||||||
4050
|
3949
|
||||||
4090
|
3981
|
||||||
4130
|
4013
|
||||||
4171
|
4045
|
||||||
4212
|
4078
|
||||||
4253
|
4111
|
||||||
4294
|
4114
|
||||||
4335
|
4177
|
||||||
4377
|
4210
|
||||||
4419
|
4243
|
||||||
4461
|
4276
|
||||||
4503
|
4309
|
||||||
|
4342
|
||||||
|
4375
|
||||||
|
4409
|
||||||
|
4443
|
||||||
|
4477
|
||||||
|
4511
|
||||||
4545
|
4545
|
||||||
4588
|
4579
|
||||||
4631
|
4613
|
||||||
4674
|
4647
|
||||||
4717
|
4681
|
||||||
4760
|
4715
|
||||||
4804
|
4750
|
||||||
4848
|
4785
|
||||||
4892
|
4820
|
||||||
4936
|
4855
|
||||||
4980
|
4890
|
||||||
5025
|
4925
|
||||||
5070
|
4960
|
||||||
5115
|
5030
|
||||||
5160
|
5065
|
||||||
5205
|
5100
|
||||||
5251
|
5136
|
||||||
5297
|
5172
|
||||||
5343
|
5208
|
||||||
5389
|
5244
|
||||||
5435
|
5280
|
||||||
5482
|
5316
|
||||||
5529
|
5352
|
||||||
5576
|
5388
|
||||||
5623
|
5424
|
||||||
5670
|
5460
|
||||||
5718
|
5497
|
||||||
5766
|
5537
|
||||||
5814
|
5571
|
||||||
5862
|
5608
|
||||||
5910
|
5645
|
||||||
5959
|
5682
|
||||||
6008
|
5719
|
||||||
6057
|
5793
|
||||||
6106
|
5830
|
||||||
6155
|
5868
|
||||||
6205
|
5906
|
||||||
6255
|
5944
|
||||||
6305
|
5982
|
||||||
6355
|
6020
|
||||||
6405
|
6058
|
||||||
6456
|
|
||||||
6507
|
|
||||||
6558
|
|
||||||
6609
|
|
||||||
6660
|
|
||||||
6712
|
|
||||||
6764
|
|
||||||
6816
|
|
||||||
6868
|
|
||||||
6920
|
|
||||||
6973
|
|
||||||
7026
|
|
||||||
7079
|
|
||||||
7132
|
|
||||||
7185
|
|
||||||
|
@ -3771,6 +3771,8 @@ static const struct _battle_data {
|
|||||||
{ "max_cart_weight", &battle_config.max_cart_weight, 8000, 100, 1000000, },
|
{ "max_cart_weight", &battle_config.max_cart_weight, 8000, 100, 1000000, },
|
||||||
{ "max_parameter", &battle_config.max_parameter, 99, 10, 10000, },
|
{ "max_parameter", &battle_config.max_parameter, 99, 10, 10000, },
|
||||||
{ "max_baby_parameter", &battle_config.max_baby_parameter, 80, 10, 10000, },
|
{ "max_baby_parameter", &battle_config.max_baby_parameter, 80, 10, 10000, },
|
||||||
|
{ "max_third_parameter", &battle_config.max_third_parameter, 120, 10, 10000, },
|
||||||
|
{ "max_baby_third_parameter", &battle_config.max_baby_third_parameter, 108, 10, 10000, },
|
||||||
{ "max_def", &battle_config.max_def, 99, 0, INT_MAX, },
|
{ "max_def", &battle_config.max_def, 99, 0, INT_MAX, },
|
||||||
{ "over_def_bonus", &battle_config.over_def_bonus, 0, 0, 1000, },
|
{ "over_def_bonus", &battle_config.over_def_bonus, 0, 0, 1000, },
|
||||||
{ "skill_log", &battle_config.skill_log, BL_NUL, BL_NUL, BL_ALL, },
|
{ "skill_log", &battle_config.skill_log, BL_NUL, BL_NUL, BL_ALL, },
|
||||||
|
@ -236,7 +236,7 @@ extern struct Battle_Config
|
|||||||
int max_hp;
|
int max_hp;
|
||||||
int max_sp;
|
int max_sp;
|
||||||
int max_lv, aura_lv;
|
int max_lv, aura_lv;
|
||||||
int max_parameter, max_baby_parameter;
|
int max_parameter, max_baby_parameter, max_third_parameter, max_baby_third_parameter;
|
||||||
int max_cart_weight;
|
int max_cart_weight;
|
||||||
int skill_log;
|
int skill_log;
|
||||||
int battle_log;
|
int battle_log;
|
||||||
|
38
src/map/pc.c
38
src/map/pc.c
@ -5040,11 +5040,16 @@ int pc_checkbaselevelup(struct map_session_data *sd)
|
|||||||
|
|
||||||
sd->status.base_level ++;
|
sd->status.base_level ++;
|
||||||
|
|
||||||
if (battle_config.use_statpoint_table)
|
//Give status points
|
||||||
|
if (battle_config.use_statpoint_table) //Use values from "db/statpoint.txt"
|
||||||
next = statp[sd->status.base_level] - statp[sd->status.base_level-1];
|
next = statp[sd->status.base_level] - statp[sd->status.base_level-1];
|
||||||
else //Estimated way.
|
else //Default increase
|
||||||
|
{
|
||||||
|
if (sd->status.base_level <= 100)
|
||||||
next = (sd->status.base_level+14) / 5;
|
next = (sd->status.base_level+14) / 5;
|
||||||
|
else
|
||||||
|
next = (sd->status.base_level+129) / 10;
|
||||||
|
}
|
||||||
sd->status.status_point += next;
|
sd->status.status_point += next;
|
||||||
|
|
||||||
} while ((next=pc_nextbaseexp(sd)) > 0 && sd->status.base_exp >= next);
|
} while ((next=pc_nextbaseexp(sd)) > 0 && sd->status.base_exp >= next);
|
||||||
@ -5365,7 +5370,15 @@ static int pc_setstat(struct map_session_data* sd, int type, int val)
|
|||||||
/// Returns the number of stat points needed to raise the specified stat by 1.
|
/// Returns the number of stat points needed to raise the specified stat by 1.
|
||||||
int pc_need_status_point(struct map_session_data* sd, int type)
|
int pc_need_status_point(struct map_session_data* sd, int type)
|
||||||
{
|
{
|
||||||
return ( 1 + (pc_getstat(sd,type) + 9) / 10 );
|
int stat = pc_getstat(sd, type);
|
||||||
|
|
||||||
|
if( stat >= pc_maxparameter(sd) )
|
||||||
|
return 0; // Official servers show '0' when max is reached
|
||||||
|
|
||||||
|
if( stat < 100 )
|
||||||
|
return ( 1 + (stat + 9) / 10 );
|
||||||
|
else
|
||||||
|
return ( 16 + 4*((stat - 100) / 5) );
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Raises a stat by 1.
|
/// Raises a stat by 1.
|
||||||
@ -6598,6 +6611,14 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper)
|
|||||||
clif_updatestatus(sd,SP_JOBEXP);
|
clif_updatestatus(sd,SP_JOBEXP);
|
||||||
clif_updatestatus(sd,SP_NEXTJOBEXP);
|
clif_updatestatus(sd,SP_NEXTJOBEXP);
|
||||||
|
|
||||||
|
//New job may have new max_parameter, so update stat points needed to raise a stat
|
||||||
|
clif_updatestatus(sd,SP_USTR);
|
||||||
|
clif_updatestatus(sd,SP_UAGI);
|
||||||
|
clif_updatestatus(sd,SP_UVIT);
|
||||||
|
clif_updatestatus(sd,SP_UINT);
|
||||||
|
clif_updatestatus(sd,SP_UDEX);
|
||||||
|
clif_updatestatus(sd,SP_ULUK);
|
||||||
|
|
||||||
for(i=0;i<EQI_MAX;i++) {
|
for(i=0;i<EQI_MAX;i++) {
|
||||||
if(sd->equip_index[i] >= 0)
|
if(sd->equip_index[i] >= 0)
|
||||||
if(!pc_isequip(sd,sd->equip_index[i]))
|
if(!pc_isequip(sd,sd->equip_index[i]))
|
||||||
@ -8307,9 +8328,12 @@ int pc_readdb(void)
|
|||||||
}
|
}
|
||||||
// generate the remaining parts of the db if necessary
|
// generate the remaining parts of the db if necessary
|
||||||
statp[0] = 45; // seed value
|
statp[0] = 45; // seed value
|
||||||
for (; i <= MAX_LEVEL; i++)
|
for (; i <= MAX_LEVEL; i++) {
|
||||||
statp[i] = statp[i-1] + (i-1+15)/5;
|
if(i <= 100)
|
||||||
|
statp[i] = statp[i-1] + (i+14)/5;
|
||||||
|
else
|
||||||
|
statp[i] = statp[i-1] + (i+129)/10;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -540,7 +540,7 @@ enum equip_index {
|
|||||||
#define pc_isinvisible(sd) ( (sd)->sc.option&OPTION_INVISIBLE )
|
#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_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_is90overweight(sd) ( (sd)->weight*10 >= (sd)->max_weight*9 )
|
||||||
#define pc_maxparameter(sd) ( (sd)->class_&JOBL_BABY ? battle_config.max_baby_parameter : battle_config.max_parameter )
|
#define pc_maxparameter(sd) ( ((sd)->class_&JOBL_3 ? ((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)) )
|
||||||
|
|
||||||
#define pc_stop_walking(sd, type) unit_stop_walking(&(sd)->bl, type)
|
#define pc_stop_walking(sd, type) unit_stop_walking(&(sd)->bl, type)
|
||||||
#define pc_stop_attack(sd) unit_stop_attack(&(sd)->bl)
|
#define pc_stop_attack(sd) unit_stop_attack(&(sd)->bl)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user