Fixed skill point bug... i hope. ^^;
git-svn-id: https://svn.code.sf.net/p/rathena/svn/athena@252 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
de26722b16
commit
da269444db
@ -1,6 +1,9 @@
|
|||||||
Date Added
|
Date Added
|
||||||
|
|
||||||
11/18
|
11/18
|
||||||
|
* *Hopefully* fixed the skill tree problem where you have to use 49 skill
|
||||||
|
points first before 2nd job skills will show... please report any bugs found
|
||||||
|
with it, thank you. [celest]
|
||||||
* Added flag to pc_unequipitem (thanks to DracoRPG for suggestion) [celest]
|
* Added flag to pc_unequipitem (thanks to DracoRPG for suggestion) [celest]
|
||||||
* Skill updates [celest]
|
* Skill updates [celest]
|
||||||
- Updated Cloaking (thanks to orn), Endure
|
- Updated Cloaking (thanks to orn), Endure
|
||||||
|
@ -15,8 +15,8 @@ Assigned: N/A
|
|||||||
Progess: 0%
|
Progess: 0%
|
||||||
|
|
||||||
Problem: Pre skill requirements for new skills are wrong it makes you use 49 skills points before you can get the newer skills.
|
Problem: Pre skill requirements for new skills are wrong it makes you use 49 skills points before you can get the newer skills.
|
||||||
Assigned: N/A
|
Assigned: Celest
|
||||||
Progess: 0%
|
Progess: ~90% (Notes: not sure if it causes problems, need more testing =p)
|
||||||
|
|
||||||
Problem: Monster hp view only shows but does not go down with a hit.
|
Problem: Monster hp view only shows but does not go down with a hit.
|
||||||
Assigned: N/A
|
Assigned: N/A
|
||||||
|
@ -311,7 +311,9 @@ struct map_session_data {
|
|||||||
|
|
||||||
int last_skillid,last_skilllv; // Added by RoVeRT
|
int last_skillid,last_skilllv; // Added by RoVeRT
|
||||||
short sg_count;
|
short sg_count;
|
||||||
|
|
||||||
|
unsigned char change_level; // [celest]
|
||||||
|
|
||||||
#ifndef TXT_ONLY
|
#ifndef TXT_ONLY
|
||||||
int mail_counter; // mail counter for mail system [Valaris]
|
int mail_counter; // mail counter for mail system [Valaris]
|
||||||
#endif
|
#endif
|
||||||
|
23
src/map/pc.c
23
src/map/pc.c
@ -707,6 +707,8 @@ int pc_authok(int id, int login_id2, time_t connect_until_time, struct mmo_chars
|
|||||||
|
|
||||||
sd->doridori_counter = 0;
|
sd->doridori_counter = 0;
|
||||||
|
|
||||||
|
sd->change_level = pc_readglobalreg(sd,"jobchange_level");
|
||||||
|
|
||||||
#ifndef TXT_ONLY // mail system [Valaris]
|
#ifndef TXT_ONLY // mail system [Valaris]
|
||||||
if(battle_config.mail_system)
|
if(battle_config.mail_system)
|
||||||
sd->mail_counter = 0;
|
sd->mail_counter = 0;
|
||||||
@ -913,7 +915,8 @@ int pc_calc_skilltree(struct map_session_data *sd)
|
|||||||
if(skill_point < 9)
|
if(skill_point < 9)
|
||||||
c = 0;
|
c = 0;
|
||||||
//else if((sd->status.skill_point >= sd->status.job_level && skill_point < 58) && ((c > 6 && c < 23) || (c > 4007 && c < 4023) || (c > 4029 && c < 4045))) {
|
//else if((sd->status.skill_point >= sd->status.job_level && skill_point < 58) && ((c > 6 && c < 23) || (c > 4007 && c < 4023) || (c > 4029 && c < 4045))) {
|
||||||
else if ((sd->status.skill_point >= sd->status.job_level && skill_point < 58) && (c > 6 && c < 23)) {
|
//else if ((sd->status.skill_point >= sd->status.job_level && skill_point < 58) && (c > 6 && c < 23)) {
|
||||||
|
else if ((sd->status.skill_point >= sd->status.job_level && skill_point < sd->change_level+8) && (c > 6 && c < 23)) {
|
||||||
switch(c) {
|
switch(c) {
|
||||||
case 7:
|
case 7:
|
||||||
case 14:
|
case 14:
|
||||||
@ -5602,12 +5605,12 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper)
|
|||||||
int i;
|
int i;
|
||||||
int b_class = 0;
|
int b_class = 0;
|
||||||
//転生や養子の場合の元の職業を算出する
|
//転生や養子の場合の元の職業を算出する
|
||||||
//struct pc_base_job s_class = pc_calc_base_job(sd->status.class);
|
struct pc_base_job s_class = pc_calc_base_job(sd->status.class);
|
||||||
|
|
||||||
nullpo_retr(0, sd);
|
nullpo_retr(0, sd);
|
||||||
|
|
||||||
if (upper < 0 || upper > 2) //現在転生かどうかを判断する
|
if (upper < 0 || upper > 2) //現在転生かどうかを判断する
|
||||||
upper = pc_calc_upper (sd->status.class);
|
upper = s_class.upper;
|
||||||
|
|
||||||
b_class = job; //通常職ならjobそのまんま
|
b_class = job; //通常職ならjobそのまんま
|
||||||
if (job < 23) {
|
if (job < 23) {
|
||||||
@ -5615,7 +5618,7 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper)
|
|||||||
b_class += 4001;
|
b_class += 4001;
|
||||||
else if (upper == 2) //養子に結婚はないけどどうせ次で蹴られるからいいや
|
else if (upper == 2) //養子に結婚はないけどどうせ次で蹴られるからいいや
|
||||||
b_class += 4023;
|
b_class += 4023;
|
||||||
} else if (job == 23) {
|
} else if (job == 23) {
|
||||||
if (upper == 1) //転生にスパノビは存在しないのでお断り
|
if (upper == 1) //転生にスパノビは存在しないのでお断り
|
||||||
return 1;
|
return 1;
|
||||||
else if (upper == 2)
|
else if (upper == 2)
|
||||||
@ -5625,10 +5628,20 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper)
|
|||||||
} else if ((job >= 69 && job < 4001) || (job > 4045))
|
} else if ((job >= 69 && job < 4001) || (job > 4045))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
job = pc_calc_base_job2 (b_class); // check base class [celest]
|
||||||
|
|
||||||
if((sd->status.sex == 0 && job == 19) || (sd->status.sex == 1 && job == 20) ||
|
if((sd->status.sex == 0 && job == 19) || (sd->status.sex == 1 && job == 20) ||
|
||||||
(sd->status.sex == 0 && job == 4020) || (sd->status.sex == 1 && job == 4021) ||
|
// not needed [celest]
|
||||||
|
//(sd->status.sex == 0 && job == 4020) || (sd->status.sex == 1 && job == 4021) ||
|
||||||
job == 22 || sd->status.class == b_class) //♀はバードになれない、♂はダンサーになれない、結婚衣裳もお断り
|
job == 22 || sd->status.class == b_class) //♀はバードになれない、♂はダンサーになれない、結婚衣裳もお断り
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
// check if we are changing from 1st to 2nd job
|
||||||
|
if (s_class.job > 0 && s_class.job < 7 && job >= 7 && job <= 21)
|
||||||
|
sd->change_level = sd->status.job_level;
|
||||||
|
else
|
||||||
|
sd->change_level = 0;
|
||||||
|
pc_setglobalreg (sd, "jobchange_level", sd->change_level);
|
||||||
|
|
||||||
sd->status.class = sd->view_class = b_class;
|
sd->status.class = sd->view_class = b_class;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user