* Corrected Investigate's damage calculation

* Generate the remaining entries of the stat point DB if the number of entries in db/statuspoints.txt is less than MAX_LEVEL, or statuspoints.txt was not found
* Try to spawn the player at a default map ("prontera.gat") when logging in if the save point map was not found

git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1107 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
celest 2005-02-15 03:12:29 +00:00
parent b4f99f38ef
commit d68621fd8c
3 changed files with 39 additions and 18 deletions

View File

@ -1,5 +1,13 @@
Date Added Date Added
02/15
* Corrected Investigate's damage calculation, thanks to matthias [celest]
* Generate the remaining entries of the stat point DB if the number of
entries in db/statuspoints.txt is less than MAX_LEVEL, or statuspoints.txt
was not found [celest]
* Try to spawn the player at a default map ("prontera.gat") when logging in if
the save point map was not found [celest]
02/13 02/13
* added an @autoloot switch that Upa-kun has forgotten [Shinomori] * added an @autoloot switch that Upa-kun has forgotten [Shinomori]
* changed pet_skillattack_timer and corrected the poison spore attack * changed pet_skillattack_timer and corrected the poison spore attack

View File

@ -864,7 +864,7 @@ static struct Damage battle_calc_pet_weapon_attack(
break; break;
case MO_INVESTIGATE: // ”­ ™¤ case MO_INVESTIGATE: // ”­ ™¤
if(def1 < 1000000) if(def1 < 1000000)
damage = damage*(100+ 75*skill_lv)/100 * (def1 + def2)/100; damage = damage*(100+ 75*skill_lv)/100 * (def1 + def2)/50;
hitrate = 1000000; hitrate = 1000000;
s_ele = 0; s_ele = 0;
break; break;
@ -1366,7 +1366,7 @@ static struct Damage battle_calc_mob_weapon_attack(
break; break;
case MO_INVESTIGATE: // ”­ ™¤ case MO_INVESTIGATE: // ”­ ™¤
if(def1 < 1000000) if(def1 < 1000000)
damage = damage*(100+ 75*skill_lv)/100 * (def1 + def2)/100; damage = damage*(100+ 75*skill_lv)/100 * (def1 + def2)/50;
hitrate = 1000000; hitrate = 1000000;
s_ele = 0; s_ele = 0;
break; break;
@ -2173,8 +2173,8 @@ static struct Damage battle_calc_pc_weapon_attack(
break; break;
case MO_INVESTIGATE: // ”­ ™¤ case MO_INVESTIGATE: // ”­ ™¤
if(def1 < 1000000) { if(def1 < 1000000) {
damage = damage*(100+ 75*skill_lv)/100 * (def1 + def2)/100; damage = damage*(100+ 75*skill_lv)/100 * (def1 + def2)/50;
damage2 = damage2*(100+ 75*skill_lv)/100 * (def1 + def2)/100; damage2 = damage2*(100+ 75*skill_lv)/100 * (def1 + def2)/50;
} }
hitrate = 1000000; hitrate = 1000000;
s_ele = 0; s_ele = 0;

View File

@ -766,6 +766,12 @@ int pc_authok(int id, int login_id2, time_t connect_until_time, struct mmo_chars
sprintf(buf, "Last_point_map %s not found\n", sd->status.last_point.map); sprintf(buf, "Last_point_map %s not found\n", sd->status.last_point.map);
ShowError (buf); ShowError (buf);
} }
// try warping to a default map instead
if (pc_setpos(sd, "prontera.gat", 273, 354, 0) != 0) {
// if we fail again
clif_authfail_fd(sd->fd, 0);
return 1;
}
} }
// pet // pet
@ -6861,22 +6867,29 @@ int pc_readdb(void)
// スキルツリ? // スキルツリ?
memset(statp,0,sizeof(statp)); memset(statp,0,sizeof(statp));
fp=fopen("db/statpoint.txt","r");
if(fp==NULL){
printf("can't read db/statpoint.txt\n");
return 1;
}
i=0; i=0;
while(fgets(line, sizeof(line)-1, fp)){ j=45; // base points
if(line[0]=='/' && line[1]=='/') fp=fopen("db/statpoint.txt","r");
continue; if(fp == NULL){
if ((j=atoi(line))<0) sprintf(tmp_output,"Can't read '"CL_WHITE"%s"CL_RESET"'... Generating DB.\n","db/statpoint.txt");
j=0; //return 1;
statp[i]=j; } else {
i++; while(fgets(line, sizeof(line)-1, fp)){
if(line[0]=='/' && line[1]=='/')
continue;
if ((j=atoi(line))<0)
j=0;
statp[i]=j;
i++;
}
fclose(fp);
sprintf(tmp_output,"Done reading '"CL_WHITE"%s"CL_RESET"'.\n","db/statpoint.txt");
}
// generate the remaining parts of the db if necessary
for (; i < MAX_LEVEL; i++) {
j += (i+15)/5;
statp[i] = j;
} }
fclose(fp);
sprintf(tmp_output,"Done reading '"CL_WHITE"%s"CL_RESET"'.\n","db/statpoint.txt");
ShowStatus(tmp_output); ShowStatus(tmp_output);
return 0; return 0;