Converted statpoint.txt to YAML (#6010)
* Converts the Statpoint Database into YAML. * Includes CSV2YAML converter. * Added start_status_points to inter_athena.conf Co-authored-by: Lemongrass3110 <lemongrass@kstp.at> Co-authored-by: Aleos <aleos89@users.noreply.github.com>
This commit is contained in:
parent
5d26d86cc0
commit
f230b13ded
@ -12,6 +12,9 @@ inter_log_filename: log/inter.log
|
||||
// Level range for sharing within a party
|
||||
party_share_level: 15
|
||||
|
||||
// Amount of status points a new character will start with
|
||||
start_status_points: 48
|
||||
|
||||
// You can specify the codepage to use in your MySQL tables here.
|
||||
// (Note that this feature requires MySQL 4.1+)
|
||||
//default_codepage:
|
||||
|
@ -1,2 +0,0 @@
|
||||
//statpoint per lvl
|
||||
|
31
db/import-tmpl/statpoint.yml
Normal file
31
db/import-tmpl/statpoint.yml
Normal file
@ -0,0 +1,31 @@
|
||||
# This file is a part of rAthena.
|
||||
# Copyright(C) 2021 rAthena Development Team
|
||||
# https://rathena.org - https://github.com/rathena
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
###########################################################################
|
||||
# Statpoint Database
|
||||
###########################################################################
|
||||
#
|
||||
# Statpoint Settings
|
||||
#
|
||||
###########################################################################
|
||||
# - Level BaseLevel required.
|
||||
# Points Total status points given from BaseLevel 1 to 'Level'.
|
||||
###########################################################################
|
||||
|
||||
Header:
|
||||
Type: STATPOINT_DB
|
||||
Version: 1
|
@ -1,255 +0,0 @@
|
||||
48
|
||||
51
|
||||
54
|
||||
57
|
||||
60
|
||||
64
|
||||
68
|
||||
72
|
||||
76
|
||||
80
|
||||
85
|
||||
90
|
||||
95
|
||||
100
|
||||
105
|
||||
111
|
||||
117
|
||||
123
|
||||
129
|
||||
135
|
||||
142
|
||||
149
|
||||
156
|
||||
163
|
||||
170
|
||||
178
|
||||
186
|
||||
194
|
||||
202
|
||||
210
|
||||
219
|
||||
228
|
||||
237
|
||||
246
|
||||
255
|
||||
265
|
||||
275
|
||||
285
|
||||
295
|
||||
305
|
||||
316
|
||||
327
|
||||
338
|
||||
349
|
||||
360
|
||||
372
|
||||
384
|
||||
396
|
||||
408
|
||||
420
|
||||
433
|
||||
446
|
||||
459
|
||||
472
|
||||
485
|
||||
499
|
||||
513
|
||||
527
|
||||
541
|
||||
555
|
||||
570
|
||||
585
|
||||
600
|
||||
615
|
||||
630
|
||||
646
|
||||
662
|
||||
678
|
||||
694
|
||||
710
|
||||
727
|
||||
744
|
||||
761
|
||||
778
|
||||
795
|
||||
813
|
||||
831
|
||||
849
|
||||
867
|
||||
885
|
||||
904
|
||||
923
|
||||
942
|
||||
961
|
||||
980
|
||||
1000
|
||||
1020
|
||||
1040
|
||||
1060
|
||||
1080
|
||||
1101
|
||||
1122
|
||||
1143
|
||||
1164
|
||||
1185
|
||||
1207
|
||||
1229
|
||||
1251
|
||||
1273
|
||||
1295
|
||||
1318
|
||||
1341
|
||||
1364
|
||||
1387
|
||||
1410
|
||||
1434
|
||||
1458
|
||||
1482
|
||||
1506
|
||||
1530
|
||||
1555
|
||||
1580
|
||||
1605
|
||||
1630
|
||||
1655
|
||||
1681
|
||||
1707
|
||||
1733
|
||||
1759
|
||||
1785
|
||||
1812
|
||||
1839
|
||||
1866
|
||||
1893
|
||||
1920
|
||||
1948
|
||||
1976
|
||||
2004
|
||||
2032
|
||||
2060
|
||||
2089
|
||||
2118
|
||||
2147
|
||||
2176
|
||||
2205
|
||||
2235
|
||||
2265
|
||||
2295
|
||||
2325
|
||||
2355
|
||||
2386
|
||||
2417
|
||||
2448
|
||||
2479
|
||||
2510
|
||||
2542
|
||||
2574
|
||||
2606
|
||||
2638
|
||||
2670
|
||||
2703
|
||||
2736
|
||||
2769
|
||||
2802
|
||||
2835
|
||||
2869
|
||||
2903
|
||||
2937
|
||||
2971
|
||||
3005
|
||||
3040
|
||||
3075
|
||||
3110
|
||||
3145
|
||||
3180
|
||||
3216
|
||||
3252
|
||||
3288
|
||||
3324
|
||||
3360
|
||||
3397
|
||||
3434
|
||||
3471
|
||||
3508
|
||||
3545
|
||||
3583
|
||||
3621
|
||||
3659
|
||||
3697
|
||||
3735
|
||||
3774
|
||||
3813
|
||||
3852
|
||||
3891
|
||||
3930
|
||||
3970
|
||||
4010
|
||||
4050
|
||||
4090
|
||||
4130
|
||||
4171
|
||||
4212
|
||||
4253
|
||||
4294
|
||||
4335
|
||||
4377
|
||||
4419
|
||||
4461
|
||||
4503
|
||||
4545
|
||||
4588
|
||||
4631
|
||||
4674
|
||||
4717
|
||||
4760
|
||||
4804
|
||||
4848
|
||||
4892
|
||||
4936
|
||||
4980
|
||||
5025
|
||||
5070
|
||||
5115
|
||||
5160
|
||||
5205
|
||||
5251
|
||||
5297
|
||||
5343
|
||||
5389
|
||||
5435
|
||||
5482
|
||||
5529
|
||||
5576
|
||||
5623
|
||||
5670
|
||||
5718
|
||||
5766
|
||||
5814
|
||||
5862
|
||||
5910
|
||||
5959
|
||||
6008
|
||||
6057
|
||||
6106
|
||||
6155
|
||||
6205
|
||||
6255
|
||||
6305
|
||||
6355
|
||||
6405
|
||||
6456
|
||||
6507
|
||||
6558
|
||||
6609
|
||||
6660
|
||||
6712
|
||||
6764
|
||||
6816
|
||||
6868
|
||||
6920
|
||||
6973
|
||||
7026
|
||||
7079
|
||||
7132
|
||||
7185
|
543
db/pre-re/statpoint.yml
Normal file
543
db/pre-re/statpoint.yml
Normal file
@ -0,0 +1,543 @@
|
||||
# This file is a part of rAthena.
|
||||
# Copyright(C) 2021 rAthena Development Team
|
||||
# https://rathena.org - https://github.com/rathena
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
###########################################################################
|
||||
# Statpoint Database
|
||||
###########################################################################
|
||||
#
|
||||
# Statpoint Settings
|
||||
#
|
||||
###########################################################################
|
||||
# - Level BaseLevel required.
|
||||
# Points Total status points given from BaseLevel 1 to 'Level'.
|
||||
###########################################################################
|
||||
|
||||
Header:
|
||||
Type: STATPOINT_DB
|
||||
Version: 1
|
||||
|
||||
Body:
|
||||
- Level: 1
|
||||
Points: 48
|
||||
- Level: 2
|
||||
Points: 51
|
||||
- Level: 3
|
||||
Points: 54
|
||||
- Level: 4
|
||||
Points: 57
|
||||
- Level: 5
|
||||
Points: 60
|
||||
- Level: 6
|
||||
Points: 64
|
||||
- Level: 7
|
||||
Points: 68
|
||||
- Level: 8
|
||||
Points: 72
|
||||
- Level: 9
|
||||
Points: 76
|
||||
- Level: 10
|
||||
Points: 80
|
||||
- Level: 11
|
||||
Points: 85
|
||||
- Level: 12
|
||||
Points: 90
|
||||
- Level: 13
|
||||
Points: 95
|
||||
- Level: 14
|
||||
Points: 100
|
||||
- Level: 15
|
||||
Points: 105
|
||||
- Level: 16
|
||||
Points: 111
|
||||
- Level: 17
|
||||
Points: 117
|
||||
- Level: 18
|
||||
Points: 123
|
||||
- Level: 19
|
||||
Points: 129
|
||||
- Level: 20
|
||||
Points: 135
|
||||
- Level: 21
|
||||
Points: 142
|
||||
- Level: 22
|
||||
Points: 149
|
||||
- Level: 23
|
||||
Points: 156
|
||||
- Level: 24
|
||||
Points: 163
|
||||
- Level: 25
|
||||
Points: 170
|
||||
- Level: 26
|
||||
Points: 178
|
||||
- Level: 27
|
||||
Points: 186
|
||||
- Level: 28
|
||||
Points: 194
|
||||
- Level: 29
|
||||
Points: 202
|
||||
- Level: 30
|
||||
Points: 210
|
||||
- Level: 31
|
||||
Points: 219
|
||||
- Level: 32
|
||||
Points: 228
|
||||
- Level: 33
|
||||
Points: 237
|
||||
- Level: 34
|
||||
Points: 246
|
||||
- Level: 35
|
||||
Points: 255
|
||||
- Level: 36
|
||||
Points: 265
|
||||
- Level: 37
|
||||
Points: 275
|
||||
- Level: 38
|
||||
Points: 285
|
||||
- Level: 39
|
||||
Points: 295
|
||||
- Level: 40
|
||||
Points: 305
|
||||
- Level: 41
|
||||
Points: 316
|
||||
- Level: 42
|
||||
Points: 327
|
||||
- Level: 43
|
||||
Points: 338
|
||||
- Level: 44
|
||||
Points: 349
|
||||
- Level: 45
|
||||
Points: 360
|
||||
- Level: 46
|
||||
Points: 372
|
||||
- Level: 47
|
||||
Points: 384
|
||||
- Level: 48
|
||||
Points: 396
|
||||
- Level: 49
|
||||
Points: 408
|
||||
- Level: 50
|
||||
Points: 420
|
||||
- Level: 51
|
||||
Points: 433
|
||||
- Level: 52
|
||||
Points: 446
|
||||
- Level: 53
|
||||
Points: 459
|
||||
- Level: 54
|
||||
Points: 472
|
||||
- Level: 55
|
||||
Points: 485
|
||||
- Level: 56
|
||||
Points: 499
|
||||
- Level: 57
|
||||
Points: 513
|
||||
- Level: 58
|
||||
Points: 527
|
||||
- Level: 59
|
||||
Points: 541
|
||||
- Level: 60
|
||||
Points: 555
|
||||
- Level: 61
|
||||
Points: 570
|
||||
- Level: 62
|
||||
Points: 585
|
||||
- Level: 63
|
||||
Points: 600
|
||||
- Level: 64
|
||||
Points: 615
|
||||
- Level: 65
|
||||
Points: 630
|
||||
- Level: 66
|
||||
Points: 646
|
||||
- Level: 67
|
||||
Points: 662
|
||||
- Level: 68
|
||||
Points: 678
|
||||
- Level: 69
|
||||
Points: 694
|
||||
- Level: 70
|
||||
Points: 710
|
||||
- Level: 71
|
||||
Points: 727
|
||||
- Level: 72
|
||||
Points: 744
|
||||
- Level: 73
|
||||
Points: 761
|
||||
- Level: 74
|
||||
Points: 778
|
||||
- Level: 75
|
||||
Points: 795
|
||||
- Level: 76
|
||||
Points: 813
|
||||
- Level: 77
|
||||
Points: 831
|
||||
- Level: 78
|
||||
Points: 849
|
||||
- Level: 79
|
||||
Points: 867
|
||||
- Level: 80
|
||||
Points: 885
|
||||
- Level: 81
|
||||
Points: 904
|
||||
- Level: 82
|
||||
Points: 923
|
||||
- Level: 83
|
||||
Points: 942
|
||||
- Level: 84
|
||||
Points: 961
|
||||
- Level: 85
|
||||
Points: 980
|
||||
- Level: 86
|
||||
Points: 1000
|
||||
- Level: 87
|
||||
Points: 1020
|
||||
- Level: 88
|
||||
Points: 1040
|
||||
- Level: 89
|
||||
Points: 1060
|
||||
- Level: 90
|
||||
Points: 1080
|
||||
- Level: 91
|
||||
Points: 1101
|
||||
- Level: 92
|
||||
Points: 1122
|
||||
- Level: 93
|
||||
Points: 1143
|
||||
- Level: 94
|
||||
Points: 1164
|
||||
- Level: 95
|
||||
Points: 1185
|
||||
- Level: 96
|
||||
Points: 1207
|
||||
- Level: 97
|
||||
Points: 1229
|
||||
- Level: 98
|
||||
Points: 1251
|
||||
- Level: 99
|
||||
Points: 1273
|
||||
- Level: 100
|
||||
Points: 1295
|
||||
- Level: 101
|
||||
Points: 1318
|
||||
- Level: 102
|
||||
Points: 1341
|
||||
- Level: 103
|
||||
Points: 1364
|
||||
- Level: 104
|
||||
Points: 1387
|
||||
- Level: 105
|
||||
Points: 1410
|
||||
- Level: 106
|
||||
Points: 1434
|
||||
- Level: 107
|
||||
Points: 1458
|
||||
- Level: 108
|
||||
Points: 1482
|
||||
- Level: 109
|
||||
Points: 1506
|
||||
- Level: 110
|
||||
Points: 1530
|
||||
- Level: 111
|
||||
Points: 1555
|
||||
- Level: 112
|
||||
Points: 1580
|
||||
- Level: 113
|
||||
Points: 1605
|
||||
- Level: 114
|
||||
Points: 1630
|
||||
- Level: 115
|
||||
Points: 1655
|
||||
- Level: 116
|
||||
Points: 1681
|
||||
- Level: 117
|
||||
Points: 1707
|
||||
- Level: 118
|
||||
Points: 1733
|
||||
- Level: 119
|
||||
Points: 1759
|
||||
- Level: 120
|
||||
Points: 1785
|
||||
- Level: 121
|
||||
Points: 1812
|
||||
- Level: 122
|
||||
Points: 1839
|
||||
- Level: 123
|
||||
Points: 1866
|
||||
- Level: 124
|
||||
Points: 1893
|
||||
- Level: 125
|
||||
Points: 1920
|
||||
- Level: 126
|
||||
Points: 1948
|
||||
- Level: 127
|
||||
Points: 1976
|
||||
- Level: 128
|
||||
Points: 2004
|
||||
- Level: 129
|
||||
Points: 2032
|
||||
- Level: 130
|
||||
Points: 2060
|
||||
- Level: 131
|
||||
Points: 2089
|
||||
- Level: 132
|
||||
Points: 2118
|
||||
- Level: 133
|
||||
Points: 2147
|
||||
- Level: 134
|
||||
Points: 2176
|
||||
- Level: 135
|
||||
Points: 2205
|
||||
- Level: 136
|
||||
Points: 2235
|
||||
- Level: 137
|
||||
Points: 2265
|
||||
- Level: 138
|
||||
Points: 2295
|
||||
- Level: 139
|
||||
Points: 2325
|
||||
- Level: 140
|
||||
Points: 2355
|
||||
- Level: 141
|
||||
Points: 2386
|
||||
- Level: 142
|
||||
Points: 2417
|
||||
- Level: 143
|
||||
Points: 2448
|
||||
- Level: 144
|
||||
Points: 2479
|
||||
- Level: 145
|
||||
Points: 2510
|
||||
- Level: 146
|
||||
Points: 2542
|
||||
- Level: 147
|
||||
Points: 2574
|
||||
- Level: 148
|
||||
Points: 2606
|
||||
- Level: 149
|
||||
Points: 2638
|
||||
- Level: 150
|
||||
Points: 2670
|
||||
- Level: 151
|
||||
Points: 2703
|
||||
- Level: 152
|
||||
Points: 2736
|
||||
- Level: 153
|
||||
Points: 2769
|
||||
- Level: 154
|
||||
Points: 2802
|
||||
- Level: 155
|
||||
Points: 2835
|
||||
- Level: 156
|
||||
Points: 2869
|
||||
- Level: 157
|
||||
Points: 2903
|
||||
- Level: 158
|
||||
Points: 2937
|
||||
- Level: 159
|
||||
Points: 2971
|
||||
- Level: 160
|
||||
Points: 3005
|
||||
- Level: 161
|
||||
Points: 3040
|
||||
- Level: 162
|
||||
Points: 3075
|
||||
- Level: 163
|
||||
Points: 3110
|
||||
- Level: 164
|
||||
Points: 3145
|
||||
- Level: 165
|
||||
Points: 3180
|
||||
- Level: 166
|
||||
Points: 3216
|
||||
- Level: 167
|
||||
Points: 3252
|
||||
- Level: 168
|
||||
Points: 3288
|
||||
- Level: 169
|
||||
Points: 3324
|
||||
- Level: 170
|
||||
Points: 3360
|
||||
- Level: 171
|
||||
Points: 3397
|
||||
- Level: 172
|
||||
Points: 3434
|
||||
- Level: 173
|
||||
Points: 3471
|
||||
- Level: 174
|
||||
Points: 3508
|
||||
- Level: 175
|
||||
Points: 3545
|
||||
- Level: 176
|
||||
Points: 3583
|
||||
- Level: 177
|
||||
Points: 3621
|
||||
- Level: 178
|
||||
Points: 3659
|
||||
- Level: 179
|
||||
Points: 3697
|
||||
- Level: 180
|
||||
Points: 3735
|
||||
- Level: 181
|
||||
Points: 3774
|
||||
- Level: 182
|
||||
Points: 3813
|
||||
- Level: 183
|
||||
Points: 3852
|
||||
- Level: 184
|
||||
Points: 3891
|
||||
- Level: 185
|
||||
Points: 3930
|
||||
- Level: 186
|
||||
Points: 3970
|
||||
- Level: 187
|
||||
Points: 4010
|
||||
- Level: 188
|
||||
Points: 4050
|
||||
- Level: 189
|
||||
Points: 4090
|
||||
- Level: 190
|
||||
Points: 4130
|
||||
- Level: 191
|
||||
Points: 4171
|
||||
- Level: 192
|
||||
Points: 4212
|
||||
- Level: 193
|
||||
Points: 4253
|
||||
- Level: 194
|
||||
Points: 4294
|
||||
- Level: 195
|
||||
Points: 4335
|
||||
- Level: 196
|
||||
Points: 4377
|
||||
- Level: 197
|
||||
Points: 4419
|
||||
- Level: 198
|
||||
Points: 4461
|
||||
- Level: 199
|
||||
Points: 4503
|
||||
- Level: 200
|
||||
Points: 4545
|
||||
# - Level: 201
|
||||
# Points: 4588
|
||||
# - Level: 202
|
||||
# Points: 4631
|
||||
# - Level: 203
|
||||
# Points: 4674
|
||||
# - Level: 204
|
||||
# Points: 4717
|
||||
# - Level: 205
|
||||
# Points: 4760
|
||||
# - Level: 206
|
||||
# Points: 4804
|
||||
# - Level: 207
|
||||
# Points: 4848
|
||||
# - Level: 208
|
||||
# Points: 4892
|
||||
# - Level: 209
|
||||
# Points: 4936
|
||||
# - Level: 210
|
||||
# Points: 4980
|
||||
# - Level: 211
|
||||
# Points: 5025
|
||||
# - Level: 212
|
||||
# Points: 5070
|
||||
# - Level: 213
|
||||
# Points: 5115
|
||||
# - Level: 214
|
||||
# Points: 5160
|
||||
# - Level: 215
|
||||
# Points: 5205
|
||||
# - Level: 216
|
||||
# Points: 5251
|
||||
# - Level: 217
|
||||
# Points: 5297
|
||||
# - Level: 218
|
||||
# Points: 5343
|
||||
# - Level: 219
|
||||
# Points: 5389
|
||||
# - Level: 220
|
||||
# Points: 5435
|
||||
# - Level: 221
|
||||
# Points: 5482
|
||||
# - Level: 222
|
||||
# Points: 5529
|
||||
# - Level: 223
|
||||
# Points: 5576
|
||||
# - Level: 224
|
||||
# Points: 5623
|
||||
# - Level: 225
|
||||
# Points: 5670
|
||||
# - Level: 226
|
||||
# Points: 5718
|
||||
# - Level: 227
|
||||
# Points: 5766
|
||||
# - Level: 228
|
||||
# Points: 5814
|
||||
# - Level: 229
|
||||
# Points: 5862
|
||||
# - Level: 230
|
||||
# Points: 5910
|
||||
# - Level: 231
|
||||
# Points: 5959
|
||||
# - Level: 232
|
||||
# Points: 6008
|
||||
# - Level: 233
|
||||
# Points: 6057
|
||||
# - Level: 234
|
||||
# Points: 6106
|
||||
# - Level: 235
|
||||
# Points: 6155
|
||||
# - Level: 236
|
||||
# Points: 6205
|
||||
# - Level: 237
|
||||
# Points: 6255
|
||||
# - Level: 238
|
||||
# Points: 6305
|
||||
# - Level: 239
|
||||
# Points: 6355
|
||||
# - Level: 240
|
||||
# Points: 6405
|
||||
# - Level: 241
|
||||
# Points: 6456
|
||||
# - Level: 242
|
||||
# Points: 6507
|
||||
# - Level: 243
|
||||
# Points: 6558
|
||||
# - Level: 244
|
||||
# Points: 6609
|
||||
# - Level: 245
|
||||
# Points: 6660
|
||||
# - Level: 246
|
||||
# Points: 6712
|
||||
# - Level: 247
|
||||
# Points: 6764
|
||||
# - Level: 248
|
||||
# Points: 6816
|
||||
# - Level: 249
|
||||
# Points: 6868
|
||||
# - Level: 250
|
||||
# Points: 6920
|
||||
# - Level: 251
|
||||
# Points: 6973
|
||||
# - Level: 252
|
||||
# Points: 7026
|
||||
# - Level: 253
|
||||
# Points: 7079
|
||||
# - Level: 254
|
||||
# Points: 7132
|
||||
# - Level: 255
|
||||
# Points: 7185
|
@ -1,255 +0,0 @@
|
||||
48
|
||||
51
|
||||
54
|
||||
57
|
||||
60
|
||||
64
|
||||
68
|
||||
72
|
||||
76
|
||||
80
|
||||
85
|
||||
90
|
||||
95
|
||||
100
|
||||
105
|
||||
111
|
||||
117
|
||||
123
|
||||
129
|
||||
135
|
||||
142
|
||||
149
|
||||
156
|
||||
163
|
||||
170
|
||||
178
|
||||
186
|
||||
194
|
||||
202
|
||||
210
|
||||
219
|
||||
228
|
||||
237
|
||||
246
|
||||
255
|
||||
265
|
||||
275
|
||||
285
|
||||
295
|
||||
305
|
||||
316
|
||||
327
|
||||
338
|
||||
349
|
||||
360
|
||||
372
|
||||
384
|
||||
396
|
||||
408
|
||||
420
|
||||
433
|
||||
446
|
||||
459
|
||||
472
|
||||
485
|
||||
499
|
||||
513
|
||||
527
|
||||
541
|
||||
555
|
||||
570
|
||||
585
|
||||
600
|
||||
615
|
||||
630
|
||||
646
|
||||
662
|
||||
678
|
||||
694
|
||||
710
|
||||
727
|
||||
744
|
||||
761
|
||||
778
|
||||
795
|
||||
813
|
||||
831
|
||||
849
|
||||
867
|
||||
885
|
||||
904
|
||||
923
|
||||
942
|
||||
961
|
||||
980
|
||||
1000
|
||||
1020
|
||||
1040
|
||||
1060
|
||||
1080
|
||||
1101
|
||||
1122
|
||||
1143
|
||||
1164
|
||||
1185
|
||||
1207
|
||||
1229
|
||||
1251
|
||||
1273
|
||||
1295
|
||||
1318
|
||||
1341
|
||||
1364
|
||||
1387
|
||||
1410
|
||||
1433
|
||||
1456
|
||||
1479
|
||||
1502
|
||||
1525
|
||||
1549
|
||||
1573
|
||||
1597
|
||||
1621
|
||||
1645
|
||||
1669
|
||||
1693
|
||||
1717
|
||||
1741
|
||||
1765
|
||||
1790
|
||||
1815
|
||||
1840
|
||||
1865
|
||||
1890
|
||||
1915
|
||||
1940
|
||||
1965
|
||||
1990
|
||||
2015
|
||||
2041
|
||||
2067
|
||||
2093
|
||||
2119
|
||||
2145
|
||||
2171
|
||||
2197
|
||||
2223
|
||||
2249
|
||||
2275
|
||||
2302
|
||||
2329
|
||||
2356
|
||||
2383
|
||||
2410
|
||||
2437
|
||||
2464
|
||||
2491
|
||||
2518
|
||||
2545
|
||||
2573
|
||||
2601
|
||||
2629
|
||||
2657
|
||||
2685
|
||||
2713
|
||||
2741
|
||||
2770
|
||||
2799
|
||||
2828
|
||||
2857
|
||||
2886
|
||||
2915
|
||||
2944
|
||||
2974
|
||||
3004
|
||||
3034
|
||||
3064
|
||||
3094
|
||||
3124
|
||||
3154
|
||||
3185
|
||||
3216
|
||||
3247
|
||||
3278
|
||||
3295
|
||||
3325
|
||||
3355
|
||||
3385
|
||||
3415
|
||||
3446
|
||||
3477
|
||||
3508
|
||||
3539
|
||||
3570
|
||||
3601
|
||||
3632
|
||||
3663
|
||||
3694
|
||||
3725
|
||||
3757
|
||||
3789
|
||||
3821
|
||||
3853
|
||||
3885
|
||||
3917
|
||||
3949
|
||||
3981
|
||||
4013
|
||||
4045
|
||||
4078
|
||||
4111
|
||||
4114
|
||||
4177
|
||||
4210
|
||||
4243
|
||||
4276
|
||||
4309
|
||||
4342
|
||||
4375
|
||||
4409
|
||||
4443
|
||||
4477
|
||||
4511
|
||||
4545
|
||||
4579
|
||||
4613
|
||||
4647
|
||||
4681
|
||||
4715
|
||||
4750
|
||||
4785
|
||||
4820
|
||||
4855
|
||||
4890
|
||||
4925
|
||||
4960
|
||||
5030
|
||||
5065
|
||||
5100
|
||||
5136
|
||||
5172
|
||||
5208
|
||||
5244
|
||||
5280
|
||||
5316
|
||||
5352
|
||||
5388
|
||||
5424
|
||||
5460
|
||||
5497
|
||||
5537
|
||||
5571
|
||||
5608
|
||||
5645
|
||||
5682
|
||||
5719
|
||||
5793
|
||||
5830
|
||||
5868
|
||||
5906
|
||||
5944
|
||||
5982
|
||||
6020
|
||||
6058
|
543
db/re/statpoint.yml
Normal file
543
db/re/statpoint.yml
Normal file
@ -0,0 +1,543 @@
|
||||
# This file is a part of rAthena.
|
||||
# Copyright(C) 2021 rAthena Development Team
|
||||
# https://rathena.org - https://github.com/rathena
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
###########################################################################
|
||||
# Statpoint Database
|
||||
###########################################################################
|
||||
#
|
||||
# Statpoint Settings
|
||||
#
|
||||
###########################################################################
|
||||
# - Level BaseLevel required.
|
||||
# Points Total status points given from BaseLevel 1 to 'Level'.
|
||||
###########################################################################
|
||||
|
||||
Header:
|
||||
Type: STATPOINT_DB
|
||||
Version: 1
|
||||
|
||||
Body:
|
||||
- Level: 1
|
||||
Points: 48
|
||||
- Level: 2
|
||||
Points: 51
|
||||
- Level: 3
|
||||
Points: 54
|
||||
- Level: 4
|
||||
Points: 57
|
||||
- Level: 5
|
||||
Points: 60
|
||||
- Level: 6
|
||||
Points: 64
|
||||
- Level: 7
|
||||
Points: 68
|
||||
- Level: 8
|
||||
Points: 72
|
||||
- Level: 9
|
||||
Points: 76
|
||||
- Level: 10
|
||||
Points: 80
|
||||
- Level: 11
|
||||
Points: 85
|
||||
- Level: 12
|
||||
Points: 90
|
||||
- Level: 13
|
||||
Points: 95
|
||||
- Level: 14
|
||||
Points: 100
|
||||
- Level: 15
|
||||
Points: 105
|
||||
- Level: 16
|
||||
Points: 111
|
||||
- Level: 17
|
||||
Points: 117
|
||||
- Level: 18
|
||||
Points: 123
|
||||
- Level: 19
|
||||
Points: 129
|
||||
- Level: 20
|
||||
Points: 135
|
||||
- Level: 21
|
||||
Points: 142
|
||||
- Level: 22
|
||||
Points: 149
|
||||
- Level: 23
|
||||
Points: 156
|
||||
- Level: 24
|
||||
Points: 163
|
||||
- Level: 25
|
||||
Points: 170
|
||||
- Level: 26
|
||||
Points: 178
|
||||
- Level: 27
|
||||
Points: 186
|
||||
- Level: 28
|
||||
Points: 194
|
||||
- Level: 29
|
||||
Points: 202
|
||||
- Level: 30
|
||||
Points: 210
|
||||
- Level: 31
|
||||
Points: 219
|
||||
- Level: 32
|
||||
Points: 228
|
||||
- Level: 33
|
||||
Points: 237
|
||||
- Level: 34
|
||||
Points: 246
|
||||
- Level: 35
|
||||
Points: 255
|
||||
- Level: 36
|
||||
Points: 265
|
||||
- Level: 37
|
||||
Points: 275
|
||||
- Level: 38
|
||||
Points: 285
|
||||
- Level: 39
|
||||
Points: 295
|
||||
- Level: 40
|
||||
Points: 305
|
||||
- Level: 41
|
||||
Points: 316
|
||||
- Level: 42
|
||||
Points: 327
|
||||
- Level: 43
|
||||
Points: 338
|
||||
- Level: 44
|
||||
Points: 349
|
||||
- Level: 45
|
||||
Points: 360
|
||||
- Level: 46
|
||||
Points: 372
|
||||
- Level: 47
|
||||
Points: 384
|
||||
- Level: 48
|
||||
Points: 396
|
||||
- Level: 49
|
||||
Points: 408
|
||||
- Level: 50
|
||||
Points: 420
|
||||
- Level: 51
|
||||
Points: 433
|
||||
- Level: 52
|
||||
Points: 446
|
||||
- Level: 53
|
||||
Points: 459
|
||||
- Level: 54
|
||||
Points: 472
|
||||
- Level: 55
|
||||
Points: 485
|
||||
- Level: 56
|
||||
Points: 499
|
||||
- Level: 57
|
||||
Points: 513
|
||||
- Level: 58
|
||||
Points: 527
|
||||
- Level: 59
|
||||
Points: 541
|
||||
- Level: 60
|
||||
Points: 555
|
||||
- Level: 61
|
||||
Points: 570
|
||||
- Level: 62
|
||||
Points: 585
|
||||
- Level: 63
|
||||
Points: 600
|
||||
- Level: 64
|
||||
Points: 615
|
||||
- Level: 65
|
||||
Points: 630
|
||||
- Level: 66
|
||||
Points: 646
|
||||
- Level: 67
|
||||
Points: 662
|
||||
- Level: 68
|
||||
Points: 678
|
||||
- Level: 69
|
||||
Points: 694
|
||||
- Level: 70
|
||||
Points: 710
|
||||
- Level: 71
|
||||
Points: 727
|
||||
- Level: 72
|
||||
Points: 744
|
||||
- Level: 73
|
||||
Points: 761
|
||||
- Level: 74
|
||||
Points: 778
|
||||
- Level: 75
|
||||
Points: 795
|
||||
- Level: 76
|
||||
Points: 813
|
||||
- Level: 77
|
||||
Points: 831
|
||||
- Level: 78
|
||||
Points: 849
|
||||
- Level: 79
|
||||
Points: 867
|
||||
- Level: 80
|
||||
Points: 885
|
||||
- Level: 81
|
||||
Points: 904
|
||||
- Level: 82
|
||||
Points: 923
|
||||
- Level: 83
|
||||
Points: 942
|
||||
- Level: 84
|
||||
Points: 961
|
||||
- Level: 85
|
||||
Points: 980
|
||||
- Level: 86
|
||||
Points: 1000
|
||||
- Level: 87
|
||||
Points: 1020
|
||||
- Level: 88
|
||||
Points: 1040
|
||||
- Level: 89
|
||||
Points: 1060
|
||||
- Level: 90
|
||||
Points: 1080
|
||||
- Level: 91
|
||||
Points: 1101
|
||||
- Level: 92
|
||||
Points: 1122
|
||||
- Level: 93
|
||||
Points: 1143
|
||||
- Level: 94
|
||||
Points: 1164
|
||||
- Level: 95
|
||||
Points: 1185
|
||||
- Level: 96
|
||||
Points: 1207
|
||||
- Level: 97
|
||||
Points: 1229
|
||||
- Level: 98
|
||||
Points: 1251
|
||||
- Level: 99
|
||||
Points: 1273
|
||||
- Level: 100
|
||||
Points: 1295
|
||||
- Level: 101
|
||||
Points: 1318
|
||||
- Level: 102
|
||||
Points: 1341
|
||||
- Level: 103
|
||||
Points: 1364
|
||||
- Level: 104
|
||||
Points: 1387
|
||||
- Level: 105
|
||||
Points: 1410
|
||||
- Level: 106
|
||||
Points: 1433
|
||||
- Level: 107
|
||||
Points: 1456
|
||||
- Level: 108
|
||||
Points: 1479
|
||||
- Level: 109
|
||||
Points: 1502
|
||||
- Level: 110
|
||||
Points: 1525
|
||||
- Level: 111
|
||||
Points: 1549
|
||||
- Level: 112
|
||||
Points: 1573
|
||||
- Level: 113
|
||||
Points: 1597
|
||||
- Level: 114
|
||||
Points: 1621
|
||||
- Level: 115
|
||||
Points: 1645
|
||||
- Level: 116
|
||||
Points: 1669
|
||||
- Level: 117
|
||||
Points: 1693
|
||||
- Level: 118
|
||||
Points: 1717
|
||||
- Level: 119
|
||||
Points: 1741
|
||||
- Level: 120
|
||||
Points: 1765
|
||||
- Level: 121
|
||||
Points: 1790
|
||||
- Level: 122
|
||||
Points: 1815
|
||||
- Level: 123
|
||||
Points: 1840
|
||||
- Level: 124
|
||||
Points: 1865
|
||||
- Level: 125
|
||||
Points: 1890
|
||||
- Level: 126
|
||||
Points: 1915
|
||||
- Level: 127
|
||||
Points: 1940
|
||||
- Level: 128
|
||||
Points: 1965
|
||||
- Level: 129
|
||||
Points: 1990
|
||||
- Level: 130
|
||||
Points: 2015
|
||||
- Level: 131
|
||||
Points: 2041
|
||||
- Level: 132
|
||||
Points: 2067
|
||||
- Level: 133
|
||||
Points: 2093
|
||||
- Level: 134
|
||||
Points: 2119
|
||||
- Level: 135
|
||||
Points: 2145
|
||||
- Level: 136
|
||||
Points: 2171
|
||||
- Level: 137
|
||||
Points: 2197
|
||||
- Level: 138
|
||||
Points: 2223
|
||||
- Level: 139
|
||||
Points: 2249
|
||||
- Level: 140
|
||||
Points: 2275
|
||||
- Level: 141
|
||||
Points: 2302
|
||||
- Level: 142
|
||||
Points: 2329
|
||||
- Level: 143
|
||||
Points: 2356
|
||||
- Level: 144
|
||||
Points: 2383
|
||||
- Level: 145
|
||||
Points: 2410
|
||||
- Level: 146
|
||||
Points: 2437
|
||||
- Level: 147
|
||||
Points: 2464
|
||||
- Level: 148
|
||||
Points: 2491
|
||||
- Level: 149
|
||||
Points: 2518
|
||||
- Level: 150
|
||||
Points: 2545
|
||||
- Level: 151
|
||||
Points: 2573
|
||||
- Level: 152
|
||||
Points: 2601
|
||||
- Level: 153
|
||||
Points: 2629
|
||||
- Level: 154
|
||||
Points: 2657
|
||||
- Level: 155
|
||||
Points: 2685
|
||||
- Level: 156
|
||||
Points: 2713
|
||||
- Level: 157
|
||||
Points: 2741
|
||||
- Level: 158
|
||||
Points: 2770
|
||||
- Level: 159
|
||||
Points: 2799
|
||||
- Level: 160
|
||||
Points: 2828
|
||||
- Level: 161
|
||||
Points: 2857
|
||||
- Level: 162
|
||||
Points: 2886
|
||||
- Level: 163
|
||||
Points: 2915
|
||||
- Level: 164
|
||||
Points: 2944
|
||||
- Level: 165
|
||||
Points: 2974
|
||||
- Level: 166
|
||||
Points: 3004
|
||||
- Level: 167
|
||||
Points: 3034
|
||||
- Level: 168
|
||||
Points: 3064
|
||||
- Level: 169
|
||||
Points: 3094
|
||||
- Level: 170
|
||||
Points: 3124
|
||||
- Level: 171
|
||||
Points: 3154
|
||||
- Level: 172
|
||||
Points: 3185
|
||||
- Level: 173
|
||||
Points: 3216
|
||||
- Level: 174
|
||||
Points: 3247
|
||||
- Level: 175
|
||||
Points: 3278
|
||||
- Level: 176
|
||||
Points: 3295
|
||||
- Level: 177
|
||||
Points: 3325
|
||||
- Level: 178
|
||||
Points: 3355
|
||||
- Level: 179
|
||||
Points: 3385
|
||||
- Level: 180
|
||||
Points: 3415
|
||||
- Level: 181
|
||||
Points: 3446
|
||||
- Level: 182
|
||||
Points: 3477
|
||||
- Level: 183
|
||||
Points: 3508
|
||||
- Level: 184
|
||||
Points: 3539
|
||||
- Level: 185
|
||||
Points: 3570
|
||||
- Level: 186
|
||||
Points: 3601
|
||||
- Level: 187
|
||||
Points: 3632
|
||||
- Level: 188
|
||||
Points: 3663
|
||||
- Level: 189
|
||||
Points: 3694
|
||||
- Level: 190
|
||||
Points: 3725
|
||||
- Level: 191
|
||||
Points: 3757
|
||||
- Level: 192
|
||||
Points: 3789
|
||||
- Level: 193
|
||||
Points: 3821
|
||||
- Level: 194
|
||||
Points: 3853
|
||||
- Level: 195
|
||||
Points: 3885
|
||||
- Level: 196
|
||||
Points: 3917
|
||||
- Level: 197
|
||||
Points: 3949
|
||||
- Level: 198
|
||||
Points: 3981
|
||||
- Level: 199
|
||||
Points: 4013
|
||||
- Level: 200
|
||||
Points: 4045
|
||||
# - Level: 201
|
||||
# Points: 4078
|
||||
# - Level: 202
|
||||
# Points: 4111
|
||||
# - Level: 203
|
||||
# Points: 4114
|
||||
# - Level: 204
|
||||
# Points: 4177
|
||||
# - Level: 205
|
||||
# Points: 4210
|
||||
# - Level: 206
|
||||
# Points: 4243
|
||||
# - Level: 207
|
||||
# Points: 4276
|
||||
# - Level: 208
|
||||
# Points: 4309
|
||||
# - Level: 209
|
||||
# Points: 4342
|
||||
# - Level: 210
|
||||
# Points: 4375
|
||||
# - Level: 211
|
||||
# Points: 4409
|
||||
# - Level: 212
|
||||
# Points: 4443
|
||||
# - Level: 213
|
||||
# Points: 4477
|
||||
# - Level: 214
|
||||
# Points: 4511
|
||||
# - Level: 215
|
||||
# Points: 4545
|
||||
# - Level: 216
|
||||
# Points: 4579
|
||||
# - Level: 217
|
||||
# Points: 4613
|
||||
# - Level: 218
|
||||
# Points: 4647
|
||||
# - Level: 219
|
||||
# Points: 4681
|
||||
# - Level: 220
|
||||
# Points: 4715
|
||||
# - Level: 221
|
||||
# Points: 4750
|
||||
# - Level: 222
|
||||
# Points: 4785
|
||||
# - Level: 223
|
||||
# Points: 4820
|
||||
# - Level: 224
|
||||
# Points: 4855
|
||||
# - Level: 225
|
||||
# Points: 4890
|
||||
# - Level: 226
|
||||
# Points: 4925
|
||||
# - Level: 227
|
||||
# Points: 4960
|
||||
# - Level: 228
|
||||
# Points: 5030
|
||||
# - Level: 229
|
||||
# Points: 5065
|
||||
# - Level: 230
|
||||
# Points: 5100
|
||||
# - Level: 231
|
||||
# Points: 5136
|
||||
# - Level: 232
|
||||
# Points: 5172
|
||||
# - Level: 233
|
||||
# Points: 5208
|
||||
# - Level: 234
|
||||
# Points: 5244
|
||||
# - Level: 235
|
||||
# Points: 5280
|
||||
# - Level: 236
|
||||
# Points: 5316
|
||||
# - Level: 237
|
||||
# Points: 5352
|
||||
# - Level: 238
|
||||
# Points: 5388
|
||||
# - Level: 239
|
||||
# Points: 5424
|
||||
# - Level: 240
|
||||
# Points: 5460
|
||||
# - Level: 241
|
||||
# Points: 5497
|
||||
# - Level: 242
|
||||
# Points: 5537
|
||||
# - Level: 243
|
||||
# Points: 5571
|
||||
# - Level: 244
|
||||
# Points: 5608
|
||||
# - Level: 245
|
||||
# Points: 5645
|
||||
# - Level: 246
|
||||
# Points: 5682
|
||||
# - Level: 247
|
||||
# Points: 5719
|
||||
# - Level: 248
|
||||
# Points: 5793
|
||||
# - Level: 249
|
||||
# Points: 5830
|
||||
# - Level: 250
|
||||
# Points: 5868
|
||||
# - Level: 251
|
||||
# Points: 5906
|
||||
# - Level: 252
|
||||
# Points: 5944
|
||||
# - Level: 253
|
||||
# Points: 5982
|
||||
# - Level: 254
|
||||
# Points: 6020
|
||||
# - Level: 255
|
||||
# Points: 6058
|
39
db/statpoint.yml
Normal file
39
db/statpoint.yml
Normal file
@ -0,0 +1,39 @@
|
||||
# This file is a part of rAthena.
|
||||
# Copyright(C) 2021 rAthena Development Team
|
||||
# https://rathena.org - https://github.com/rathena
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
###########################################################################
|
||||
# Statpoint Database
|
||||
###########################################################################
|
||||
#
|
||||
# Statpoint Settings
|
||||
#
|
||||
###########################################################################
|
||||
# - Level BaseLevel required.
|
||||
# Points Total status points given from BaseLevel 1 to 'Level'.
|
||||
###########################################################################
|
||||
|
||||
Header:
|
||||
Type: STATPOINT_DB
|
||||
Version: 1
|
||||
|
||||
Footer:
|
||||
Imports:
|
||||
- Path: db/pre-re/statpoint.yml
|
||||
Mode: Prerenewal
|
||||
- Path: db/re/statpoint.yml
|
||||
Mode: Renewal
|
||||
- Path: db/import/statpoint.yml
|
10
doc/yaml/db/statpoint.yml
Normal file
10
doc/yaml/db/statpoint.yml
Normal file
@ -0,0 +1,10 @@
|
||||
###########################################################################
|
||||
# Statpoint Database
|
||||
###########################################################################
|
||||
#
|
||||
# Statpoint Settings
|
||||
#
|
||||
###########################################################################
|
||||
# - Level BaseLevel required.
|
||||
# Points Total status points given from BaseLevel 1 to 'Level'.
|
||||
###########################################################################
|
@ -1448,7 +1448,7 @@ int char_make_new_char( struct char_session_data* sd, char* name_, int str, int
|
||||
|
||||
status_points = 0;
|
||||
#else
|
||||
status_points = 48;
|
||||
status_points = charserv_config.start_status_points;
|
||||
#endif
|
||||
|
||||
// check the number of already existing chars in this account
|
||||
@ -2639,6 +2639,8 @@ void char_sql_config_read(const char* cfgName) {
|
||||
safestrncpy(schema_config.clan_alliance_table, w2, sizeof(schema_config.clan_alliance_table));
|
||||
else if(!strcmpi(w1,"achievement_table"))
|
||||
safestrncpy(schema_config.achievement_table, w2, sizeof(schema_config.achievement_table));
|
||||
else if(!strcmpi(w1, "start_status_points"))
|
||||
charserv_config.start_status_points = atoi(w2);
|
||||
//support the import command, just like any other config
|
||||
else if(!strcmpi(w1,"import"))
|
||||
char_sql_config_read(w2);
|
||||
@ -2770,6 +2772,8 @@ void char_set_defaults(){
|
||||
charserv_config.start_items_doram[1].pos = EQP_ARMOR;
|
||||
#endif
|
||||
|
||||
charserv_config.start_status_points = 48;
|
||||
|
||||
charserv_config.console = 0;
|
||||
charserv_config.max_connect_user = -1;
|
||||
charserv_config.gm_allow_group = -1;
|
||||
|
@ -173,6 +173,7 @@ struct CharServ_Config {
|
||||
struct point start_point[MAX_STARTPOINT], start_point_doram[MAX_STARTPOINT]; // Initial position the player will spawn on the server
|
||||
short start_point_count, start_point_count_doram; // Number of positions read
|
||||
struct startitem start_items[MAX_STARTITEM], start_items_doram[MAX_STARTITEM]; // Initial items the player with spawn with on the server
|
||||
uint32 start_status_points;
|
||||
int console;
|
||||
int max_connect_user;
|
||||
int gm_allow_group;
|
||||
|
@ -1552,7 +1552,7 @@ ACMD_FUNC(baselevelup)
|
||||
if ((unsigned int)level > pc_maxbaselv(sd) || (unsigned int)level > pc_maxbaselv(sd) - sd->status.base_level) // fix positive overflow
|
||||
level = pc_maxbaselv(sd) - sd->status.base_level;
|
||||
for (i = 0; i < level; i++)
|
||||
status_point += pc_gets_status_point(sd->status.base_level + i);
|
||||
status_point += statpoint_db.pc_gets_status_point(sd->status.base_level + i);
|
||||
|
||||
sd->status.status_point += status_point;
|
||||
sd->status.base_level += (unsigned int)level;
|
||||
@ -1573,7 +1573,7 @@ ACMD_FUNC(baselevelup)
|
||||
if ((unsigned int)level >= sd->status.base_level)
|
||||
level = sd->status.base_level-1;
|
||||
for (i = 0; i > -level; i--)
|
||||
status_point += pc_gets_status_point(sd->status.base_level + i - 1);
|
||||
status_point += statpoint_db.pc_gets_status_point(sd->status.base_level + i - 1);
|
||||
if (sd->status.status_point < status_point)
|
||||
pc_resetstate(sd);
|
||||
if (sd->status.status_point < status_point)
|
||||
|
@ -353,7 +353,7 @@
|
||||
<Copy SourceFiles="$(SolutionDir)db\import-tmpl\skill_nocast_db.txt" DestinationFolder="$(SolutionDir)db\import\" ContinueOnError="true" Condition="!Exists('$(SolutionDir)db\import\skill_nocast_db.txt')" />
|
||||
<Copy SourceFiles="$(SolutionDir)db\import-tmpl\skill_tree.txt" DestinationFolder="$(SolutionDir)db\import\" ContinueOnError="true" Condition="!Exists('$(SolutionDir)db\import\skill_tree.txt')" />
|
||||
<Copy SourceFiles="$(SolutionDir)db\import-tmpl\spellbook_db.yml" DestinationFolder="$(SolutionDir)db\import\" ContinueOnError="true" Condition="!Exists('$(SolutionDir)db\import\spellbook_db.yml')" />
|
||||
<Copy SourceFiles="$(SolutionDir)db\import-tmpl\statpoint.txt" DestinationFolder="$(SolutionDir)db\import\" ContinueOnError="true" Condition="!Exists('$(SolutionDir)db\import\statpoint.txt')" />
|
||||
<Copy SourceFiles="$(SolutionDir)db\import-tmpl\statpoint.yml" DestinationFolder="$(SolutionDir)db\import\" ContinueOnError="true" Condition="!Exists('$(SolutionDir)db\import\statpoint.yml')" />
|
||||
<Copy SourceFiles="$(SolutionDir)db\import-tmpl\status_disabled.txt" DestinationFolder="$(SolutionDir)db\import\" ContinueOnError="true" Condition="!Exists('$(SolutionDir)db\import\status_disabled.txt')" />
|
||||
</Target>
|
||||
</Project>
|
||||
|
@ -97,6 +97,8 @@ char log_db_pw[32] = "";
|
||||
char log_db_db[32] = "log";
|
||||
Sql* logmysql_handle;
|
||||
|
||||
uint32 start_status_points = 48;
|
||||
|
||||
// DBMap declaration
|
||||
static DBMap* id_db=NULL; /// int id -> struct block_list*
|
||||
static DBMap* pc_db=NULL; /// int id -> struct map_session_data*
|
||||
@ -4251,6 +4253,9 @@ int inter_config_read(const char *cfgName)
|
||||
if(strcmpi(w1,"log_db_db")==0)
|
||||
safestrncpy(log_db_db, w2, sizeof(log_db_db));
|
||||
else
|
||||
if(strcmpi(w1,"start_status_points")==0)
|
||||
start_status_points=atoi(w2);
|
||||
else
|
||||
if( mapreg_config_read(w1,w2) )
|
||||
continue;
|
||||
//support the import command, just like any other config
|
||||
|
@ -781,6 +781,8 @@ extern int16 save_settings;
|
||||
extern int night_flag; // 0=day, 1=night [Yor]
|
||||
extern int enable_spy; //Determines if @spy commands are active.
|
||||
|
||||
extern uint32 start_status_points;
|
||||
|
||||
// Agit Flags
|
||||
extern bool agit_flag;
|
||||
extern bool agit2_flag;
|
||||
|
153
src/map/pc.cpp
153
src/map/pc.cpp
@ -66,7 +66,7 @@ static inline bool pc_attendance_rewarded_today( struct map_session_data* sd );
|
||||
|
||||
#define PVP_CALCRANK_INTERVAL 1000 // PVP calculation interval
|
||||
|
||||
static unsigned int statp[MAX_LEVEL+1];
|
||||
PlayerStatPointDatabase statpoint_db;
|
||||
|
||||
// h-files are for declarations, not for implementations... [Shinomori]
|
||||
struct skill_tree_entry skill_tree[CLASS_COUNT][MAX_SKILL_TREE];
|
||||
@ -7181,7 +7181,7 @@ int pc_checkbaselevelup(struct map_session_data *sd) {
|
||||
if( ( !battle_config.multi_level_up || ( battle_config.multi_level_up_base > 0 && sd->status.base_level >= battle_config.multi_level_up_base ) ) && sd->status.base_exp > next-1 )
|
||||
sd->status.base_exp = next-1;
|
||||
|
||||
sd->status.status_point += pc_gets_status_point(sd->status.base_level++);
|
||||
sd->status.status_point += statpoint_db.pc_gets_status_point(sd->status.base_level++);
|
||||
|
||||
if( pc_is_maxbaselv(sd) ){
|
||||
sd->status.base_exp = u64min(sd->status.base_exp,MAX_LEVEL_BASE_EXP);
|
||||
@ -7595,14 +7595,25 @@ static int pc_setstat(struct map_session_data* sd, int type, int val)
|
||||
|
||||
return val;
|
||||
}
|
||||
/**
|
||||
* Gets the total number of status points at the provided level.
|
||||
* @param level: Player base level.
|
||||
* @return Total number of status points at specific base level.
|
||||
*/
|
||||
uint32 PlayerStatPointDatabase::get_table_point(uint16 level) {
|
||||
return this->statpoint_table[level];
|
||||
}
|
||||
|
||||
// Calculates the number of status points PC gets when leveling up (from level to level+1)
|
||||
int pc_gets_status_point(int level)
|
||||
{
|
||||
if (battle_config.use_statpoint_table) //Use values from "db/statpoint.txt"
|
||||
return (statp[level+1] - statp[level]);
|
||||
else //Default increase
|
||||
return ((level+15) / 5);
|
||||
/**
|
||||
* Calculates the number of status points PC gets when leveling up (from level to level+1)
|
||||
* @param level: Player base level.
|
||||
* @param table: Use table value or formula.
|
||||
* @return Status points at specific base level.
|
||||
*/
|
||||
uint32 PlayerStatPointDatabase::pc_gets_status_point(uint16 level) {
|
||||
if (this->statpoint_table[level+1] > this->statpoint_table[level])
|
||||
return (this->statpoint_table[level+1] - this->statpoint_table[level]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef RENEWAL_STAT
|
||||
@ -7971,25 +7982,14 @@ int pc_resetstate(struct map_session_data* sd)
|
||||
{
|
||||
nullpo_ret(sd);
|
||||
|
||||
if (battle_config.use_statpoint_table)
|
||||
{ // New statpoint table used here - Dexity
|
||||
if (sd->status.base_level > MAX_LEVEL)
|
||||
{ //statp[] goes out of bounds, can't reset!
|
||||
ShowError("pc_resetstate: Can't reset stats of %d:%d, the base level (%d) is greater than the max level supported (%d)\n",
|
||||
sd->status.account_id, sd->status.char_id, sd->status.base_level, MAX_LEVEL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
sd->status.status_point = statp[sd->status.base_level];
|
||||
if( sd->status.base_level > pc_maxbaselv( sd ) ){
|
||||
ShowError( "pc_resetstate: Capping the Level to %d to reset the stats of %d:%d, the base level (%d) is greater than the max level supported.\n",
|
||||
pc_maxbaselv( sd ), sd->status.account_id, sd->status.char_id, sd->status.base_level );
|
||||
sd->status.base_level = pc_maxbaselv( sd );
|
||||
clif_updatestatus( sd, SP_BASELEVEL );
|
||||
}
|
||||
else
|
||||
{
|
||||
sd->status.status_point = 48;
|
||||
|
||||
for( int i = 1; i < sd->status.base_level; i++ ){
|
||||
sd->status.status_point += pc_gets_status_point( i );
|
||||
}
|
||||
}
|
||||
sd->status.status_point = statpoint_db.get_table_point( sd->status.base_level );
|
||||
|
||||
if( ( sd->class_&JOBL_UPPER ) != 0 ){
|
||||
sd->status.status_point += battle_config.transcendent_status_points;
|
||||
@ -8962,7 +8962,7 @@ bool pc_setparam(struct map_session_data *sd,int64 type,int64 val_tmp)
|
||||
int i = 0;
|
||||
int stat=0;
|
||||
for (i = 0; i < (int)(val - sd->status.base_level); i++)
|
||||
stat += pc_gets_status_point(sd->status.base_level + i);
|
||||
stat += statpoint_db.pc_gets_status_point(sd->status.base_level + i);
|
||||
sd->status.status_point += stat;
|
||||
}
|
||||
sd->status.base_level = val;
|
||||
@ -12324,36 +12324,60 @@ static bool pc_readdb_job_noenter_map(char *str[], int columns, int current) {
|
||||
return true;
|
||||
}
|
||||
|
||||
static int pc_read_statsdb(const char *basedir, int last_s, bool silent){
|
||||
int i=1;
|
||||
char line[24000]; //FIXME this seem too big
|
||||
FILE *fp;
|
||||
|
||||
sprintf(line, "%s/statpoint.txt", basedir);
|
||||
fp=fopen(line,"r");
|
||||
if(fp == NULL){
|
||||
if(silent==0) ShowWarning("Can't read '" CL_WHITE "%s" CL_RESET "'... Generating DB.\n",line);
|
||||
return max(last_s,i);
|
||||
} else {
|
||||
int entries=0;
|
||||
while(fgets(line, sizeof(line), fp))
|
||||
{
|
||||
int stat;
|
||||
trim(line);
|
||||
if(line[0] == '\0' || (line[0]=='/' && line[1]=='/'))
|
||||
continue;
|
||||
if ((stat=strtoul(line,NULL,10))<0)
|
||||
stat=0;
|
||||
if (i > MAX_LEVEL)
|
||||
break;
|
||||
statp[i]=stat;
|
||||
i++;
|
||||
entries++;
|
||||
}
|
||||
fclose(fp);
|
||||
ShowStatus("Done reading '" CL_WHITE "%d" CL_RESET "' entries in '" CL_WHITE "%s/%s" CL_RESET "'.\n", entries, basedir,"statpoint.txt");
|
||||
const std::string PlayerStatPointDatabase::getDefaultLocation() {
|
||||
return std::string(db_path) + "/statpoint.yml";
|
||||
}
|
||||
|
||||
uint64 PlayerStatPointDatabase::parseBodyNode(const YAML::Node &node) {
|
||||
if (!this->nodesExist(node, { "Level", "Points" })) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint16 level;
|
||||
|
||||
if (!this->asUInt16(node, "Level", level))
|
||||
return 0;
|
||||
|
||||
uint32 point;
|
||||
|
||||
if (!this->asUInt32(node, "Points", point))
|
||||
return 0;
|
||||
|
||||
if (level == 0) {
|
||||
this->invalidWarning(node["Level"], "The minimum level is 1.\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (level > MAX_LEVEL) {
|
||||
this->invalidWarning(node["Level"], "Level %d exceeds maximum BaseLevel %d, skipping.\n", level, MAX_LEVEL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
this->statpoint_table[level] = point;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate the remaining parts of the db if necessary.
|
||||
*/
|
||||
void PlayerStatPointDatabase::loadingFinished() {
|
||||
if( battle_config.use_statpoint_table ){
|
||||
this->statpoint_table[1] = start_status_points;
|
||||
}
|
||||
|
||||
if( this->statpoint_table[1] != start_status_points ){
|
||||
ShowError( "Status points for Level 1 (=%d) do not match inter_athena.conf value (=%d).\n", this->statpoint_table[1], start_status_points );
|
||||
this->statpoint_table[1] = start_status_points;
|
||||
}
|
||||
|
||||
for (uint16 level = 2; level <= MAX_LEVEL; level++) {
|
||||
if (!battle_config.use_statpoint_table || util::umap_find(this->statpoint_table, level) == nullptr) {
|
||||
if (battle_config.use_statpoint_table)
|
||||
ShowError("Missing status points for Level %d\n", level);
|
||||
this->statpoint_table[level] = this->statpoint_table[level-1] + ((level-1+15) / 5);
|
||||
}
|
||||
}
|
||||
return max(last_s,i);
|
||||
}
|
||||
|
||||
/*==========================================
|
||||
@ -12366,7 +12390,7 @@ static int pc_read_statsdb(const char *basedir, int last_s, bool silent){
|
||||
* job_maxhpsp_db.txt - strtlvl,maxlvl,job,type,values/lvl (values=hp|sp)
|
||||
*------------------------------------------*/
|
||||
void pc_readdb(void) {
|
||||
int i, k, s = 1;
|
||||
int i, s = 1;
|
||||
const char* dbsubpath[] = {
|
||||
"",
|
||||
"/" DBIMPORT,
|
||||
@ -12380,8 +12404,8 @@ void pc_readdb(void) {
|
||||
penalty_db.load();
|
||||
#endif
|
||||
|
||||
// reset then read statspoint
|
||||
memset(statp,0,sizeof(statp));
|
||||
statpoint_db.clear();
|
||||
|
||||
for(i=0; i<ARRAYLENGTH(dbsubpath); i++){
|
||||
uint8 n1 = (uint8)(strlen(db_path)+strlen(dbsubpath[i])+1);
|
||||
uint8 n2 = (uint8)(strlen(db_path)+strlen(DBPATH)+strlen(dbsubpath[i])+1);
|
||||
@ -12397,7 +12421,6 @@ void pc_readdb(void) {
|
||||
safesnprintf(dbsubpath2,n1,"%s%s",db_path,dbsubpath[i]);
|
||||
}
|
||||
|
||||
s = pc_read_statsdb(dbsubpath2,s,i > 0);
|
||||
if (i == 0)
|
||||
#ifdef RENEWAL_ASPD // Paths are hardcoded here to specifically pick the correct database
|
||||
sv_readdb(dbsubpath1, "re/job_db1.txt",',',6+MAX_WEAPON_TYPE,6+MAX_WEAPON_TYPE,CLASS_COUNT,&pc_readdb_job1, false);
|
||||
@ -12422,14 +12445,8 @@ void pc_readdb(void) {
|
||||
sv_readdb(db_path, DBPATH"skill_tree.txt", ',', 3 + MAX_PC_SKILL_REQUIRE * 2, 5 + MAX_PC_SKILL_REQUIRE * 2, -1, &pc_readdb_skilltree, 0);
|
||||
sv_readdb(db_path, DBIMPORT"/skill_tree.txt", ',', 3 + MAX_PC_SKILL_REQUIRE * 2, 5 + MAX_PC_SKILL_REQUIRE * 2, -1, &pc_readdb_skilltree, 1);
|
||||
|
||||
// generate the remaining parts of the db if necessary
|
||||
k = battle_config.use_statpoint_table; //save setting
|
||||
battle_config.use_statpoint_table = 0; //temporarily disable to force pc_gets_status_point use default values
|
||||
statp[0] = 45; // seed value
|
||||
for (; s <= MAX_LEVEL; s++)
|
||||
statp[s] = statp[s-1] + pc_gets_status_point(s-1);
|
||||
battle_config.use_statpoint_table = k; //restore setting
|
||||
|
||||
statpoint_db.load();
|
||||
|
||||
//Checking if all class have their data
|
||||
for (i = 0; i < JOB_MAX; i++) {
|
||||
int idx;
|
||||
|
@ -1117,6 +1117,28 @@ public:
|
||||
|
||||
extern AttendanceDatabase attendance_db;
|
||||
|
||||
class PlayerStatPointDatabase : public YamlDatabase {
|
||||
private:
|
||||
std::unordered_map<uint16, uint32> statpoint_table;
|
||||
|
||||
public:
|
||||
PlayerStatPointDatabase() : YamlDatabase("STATPOINT_DB", 1) {
|
||||
|
||||
}
|
||||
|
||||
void clear(){
|
||||
statpoint_table.clear();
|
||||
}
|
||||
const std::string getDefaultLocation();
|
||||
uint64 parseBodyNode(const YAML::Node& node);
|
||||
void loadingFinished();
|
||||
|
||||
uint32 pc_gets_status_point(uint16 level);
|
||||
uint32 get_table_point(uint16 level);
|
||||
};
|
||||
|
||||
extern PlayerStatPointDatabase statpoint_db;
|
||||
|
||||
/// Enum of Summoner Power of
|
||||
enum e_summoner_power_type {
|
||||
SUMMONER_POWER_LAND = 0,
|
||||
@ -1261,7 +1283,6 @@ void pc_gainexp_disp(struct map_session_data *sd, t_exp base_exp, t_exp next_bas
|
||||
void pc_lostexp(struct map_session_data *sd, t_exp base_exp, t_exp job_exp);
|
||||
t_exp pc_nextbaseexp(struct map_session_data *sd);
|
||||
t_exp pc_nextjobexp(struct map_session_data *sd);
|
||||
int pc_gets_status_point(int);
|
||||
int pc_need_status_point(struct map_session_data *,int,int);
|
||||
int pc_maxparameterincrease(struct map_session_data*,int);
|
||||
bool pc_statusup(struct map_session_data*,int,int);
|
||||
|
@ -343,6 +343,17 @@ int do_init( int argc, char** argv ){
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!process("STATPOINT_DB", 1, { path_db_mode }, "statpoint", [](const std::string &path, const std::string &name_ext) -> bool {
|
||||
return pc_read_statsdb((path + name_ext).c_str());
|
||||
})) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!process("STATPOINT_DB", 1, { path_db_import }, "statpoint", [](const std::string &path, const std::string &name_ext) -> bool {
|
||||
return pc_read_statsdb((path + name_ext).c_str());
|
||||
})) {
|
||||
return 0;
|
||||
}
|
||||
// TODO: add implementations ;-)
|
||||
|
||||
return 0;
|
||||
@ -3666,3 +3677,35 @@ static bool skill_parse_row_createarrowdb(char* split[], int columns, int curren
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// Copied and adjusted from pc.cpp
|
||||
static bool pc_read_statsdb(const char* file) {
|
||||
FILE* fp = fopen( file, "r" );
|
||||
|
||||
if( fp == nullptr ){
|
||||
ShowError( "Can't read %s\n", file );
|
||||
return false;
|
||||
}
|
||||
|
||||
uint32 lines = 0, count = 0;
|
||||
char line[1024];
|
||||
|
||||
while (fgets(line, sizeof(line), fp)) {
|
||||
lines++;
|
||||
|
||||
trim(line);
|
||||
if (line[0] == '/' && line[1] == '/') // Ignore comments
|
||||
continue;
|
||||
|
||||
body << YAML::BeginMap;
|
||||
body << YAML::Key << "Level" << YAML::Value << (count+1);
|
||||
body << YAML::Key << "Points" << YAML::Value << static_cast<uint32>(strtoul(line, nullptr, 10));
|
||||
body << YAML::EndMap;
|
||||
|
||||
count++;
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
ShowStatus("Done reading '" CL_WHITE "%d" CL_RESET "' entries in '" CL_WHITE "%s" CL_RESET "'.\n", count, file);
|
||||
return true;
|
||||
}
|
||||
|
@ -423,5 +423,6 @@ static bool read_homunculus_expdb(const char* file);
|
||||
static bool mob_readdb_group(char* str[], int columns, int current);
|
||||
static bool mob_readdb_group_yaml(void);
|
||||
static bool skill_parse_row_createarrowdb(char* fields[], int columns, int current);
|
||||
static bool pc_read_statsdb(const char* file);
|
||||
|
||||
#endif /* CSV2YAML_HPP */
|
||||
|
Loading…
x
Reference in New Issue
Block a user