* Merged pc_statpointdb into pc_readdb, changed statp's string array to short, and fixed the db not giving status points if character level is above 255
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1094 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
1b2a05dd0b
commit
bb8cf3412b
@ -1,6 +1,9 @@
|
|||||||
Date Added
|
Date Added
|
||||||
|
|
||||||
02/12
|
02/12
|
||||||
|
* Merged Dexity's pc_statpointdb into pc_readdb, changed statp's string
|
||||||
|
array to short (less memory), and fixed the db not giving status points if
|
||||||
|
character level is above 255 [celest]
|
||||||
* fixing and optimizing sharp shooting
|
* fixing and optimizing sharp shooting
|
||||||
have implemented two different versions, just have a look and
|
have implemented two different versions, just have a look and
|
||||||
decide which to use, description is in the code [Shinomori]
|
decide which to use, description is in the code [Shinomori]
|
||||||
|
58
src/map/pc.c
58
src/map/pc.c
@ -45,7 +45,7 @@
|
|||||||
#define PVP_CALCRANK_INTERVAL 1000 // PVP<56>‡ˆÊŒvŽZ‚ÌŠÔŠu
|
#define PVP_CALCRANK_INTERVAL 1000 // PVP<56>‡ˆÊŒvŽZ‚ÌŠÔŠu
|
||||||
|
|
||||||
static int exp_table[14][MAX_LEVEL];
|
static int exp_table[14][MAX_LEVEL];
|
||||||
static char statp[255][7];
|
static short statp[MAX_LEVEL];
|
||||||
|
|
||||||
// h-files are for declarations, not for implementations... [Shinomori]
|
// h-files are for declarations, not for implementations... [Shinomori]
|
||||||
struct skill_tree_entry skill_tree[3][25][MAX_SKILL_TREE];
|
struct skill_tree_entry skill_tree[3][25][MAX_SKILL_TREE];
|
||||||
@ -4310,11 +4310,14 @@ int pc_resetstate(struct map_session_data* sd)
|
|||||||
{
|
{
|
||||||
#define sumsp(a) ((a)*((a-2)/10+2) - 5*((a-2)/10)*((a-2)/10) - 6*((a-2)/10) -2)
|
#define sumsp(a) ((a)*((a-2)/10+2) - 5*((a-2)/10)*((a-2)/10) - 6*((a-2)/10) -2)
|
||||||
// int add=0; // Removed by Dexity
|
// int add=0; // Removed by Dexity
|
||||||
|
int lv;
|
||||||
|
|
||||||
nullpo_retr(0, sd);
|
nullpo_retr(0, sd);
|
||||||
|
// allow it to just read the last entry [celest]
|
||||||
|
lv = sd->status.base_level < MAX_LEVEL ? sd->status.base_level : MAX_LEVEL - 1;
|
||||||
|
|
||||||
// New statpoint table used here - Dexity
|
// New statpoint table used here - Dexity
|
||||||
sd->status.status_point = atoi (statp[sd->status.base_level - 1]);
|
sd->status.status_point = statp[lv];
|
||||||
if(sd->status.class_ >= 4001 && sd->status.class_ <= 4024)
|
if(sd->status.class_ >= 4001 && sd->status.class_ <= 4024)
|
||||||
sd->status.status_point+=52; // extra 52+48=100 stat points
|
sd->status.status_point+=52; // extra 52+48=100 stat points
|
||||||
// End addition
|
// End addition
|
||||||
@ -6917,45 +6920,27 @@ int pc_readdb(void)
|
|||||||
sprintf(tmp_output,"Done reading '"CL_WHITE"%s"CL_RESET"'.\n","db/attr_fix.txt");
|
sprintf(tmp_output,"Done reading '"CL_WHITE"%s"CL_RESET"'.\n","db/attr_fix.txt");
|
||||||
ShowStatus(tmp_output);
|
ShowStatus(tmp_output);
|
||||||
|
|
||||||
return 0;
|
// ƒXƒLƒ‹ƒcƒŠ?
|
||||||
}
|
memset(statp,0,sizeof(statp));
|
||||||
|
fp=fopen("db/statpoint.txt","r");
|
||||||
static void pc_statpointdb(void)
|
if(fp==NULL){
|
||||||
{
|
|
||||||
char * buf_stat;
|
|
||||||
int i=0,j=0,k=0,l=0, end = 0;
|
|
||||||
|
|
||||||
FILE *stp;
|
|
||||||
|
|
||||||
stp=fopen("db/statpoint.txt","r");
|
|
||||||
|
|
||||||
if(stp==NULL){
|
|
||||||
printf("can't read db/statpoint.txt\n");
|
printf("can't read db/statpoint.txt\n");
|
||||||
return;
|
return 1;
|
||||||
}
|
}
|
||||||
|
i=0;
|
||||||
fseek(stp, 0, SEEK_END);
|
while(fgets(line, sizeof(line)-1, fp)){
|
||||||
end = ftell(stp);
|
if(line[0]=='/' && line[1]=='/')
|
||||||
rewind(stp);
|
continue;
|
||||||
|
if ((j=atoi(line))<0)
|
||||||
buf_stat = (char *) aMallocA (end + 1);
|
j=0;
|
||||||
l = fread(buf_stat,1,end,stp);
|
statp[i]=j;
|
||||||
fclose(stp);
|
i++;
|
||||||
|
}
|
||||||
|
fclose(fp);
|
||||||
sprintf(tmp_output,"Done reading '"CL_WHITE"%s"CL_RESET"'.\n","db/statpoint.txt");
|
sprintf(tmp_output,"Done reading '"CL_WHITE"%s"CL_RESET"'.\n","db/statpoint.txt");
|
||||||
ShowStatus(tmp_output);
|
ShowStatus(tmp_output);
|
||||||
// printf("read db/statpoint.txt done (size=%d)\n",l);
|
|
||||||
|
|
||||||
for(i=0;i<255;i++) {
|
return 0;
|
||||||
j=0;
|
|
||||||
while (*(buf_stat+k)!='\n') {
|
|
||||||
statp[i][j]=*(buf_stat+k);
|
|
||||||
j++;k++;
|
|
||||||
}
|
|
||||||
statp[i][j+1]='\0';
|
|
||||||
k++;
|
|
||||||
}
|
|
||||||
|
|
||||||
aFree(buf_stat);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*==========================================
|
/*==========================================
|
||||||
@ -6964,7 +6949,6 @@ static void pc_statpointdb(void)
|
|||||||
*/
|
*/
|
||||||
int do_init_pc(void) {
|
int do_init_pc(void) {
|
||||||
pc_readdb();
|
pc_readdb();
|
||||||
pc_statpointdb();
|
|
||||||
|
|
||||||
// gm_account_db = numdb_init();
|
// gm_account_db = numdb_init();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user