- Now you can't raise levels on an acquired skill when that skill is currently an acquired skill.
- Fixed pc_damage_sp not properly substracting SP. git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5537 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
8309da5f58
commit
ffea309d01
@ -5,6 +5,7 @@ IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. EV
|
|||||||
GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS
|
GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS
|
||||||
|
|
||||||
2006/03/09
|
2006/03/09
|
||||||
|
* Fixed pc_damage_sp not properly substracting SP. [Skotlex]
|
||||||
* Made Magic Crasher a BF_WEAPON attack. [Skotlex]
|
* Made Magic Crasher a BF_WEAPON attack. [Skotlex]
|
||||||
* Made skill_unit_range a per-level setting. meteor and Lov now have their
|
* Made skill_unit_range a per-level setting. meteor and Lov now have their
|
||||||
unit range for bosses adjusted in the skill_unit_db rather than
|
unit range for bosses adjusted in the skill_unit_db rather than
|
||||||
|
29
src/map/pc.c
29
src/map/pc.c
@ -4910,14 +4910,16 @@ int pc_skillup(struct map_session_data *sd,int skill_num)
|
|||||||
{
|
{
|
||||||
nullpo_retr(0, sd);
|
nullpo_retr(0, sd);
|
||||||
|
|
||||||
if( skill_num>=10000 ){
|
if( skill_num>=GD_SKILLBASE){
|
||||||
guild_skillup(sd,skill_num,0);
|
guild_skillup(sd,skill_num,0);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
if (skill_num < 0 || skill_num >= MAX_SKILL)
|
||||||
if( sd->status.skill_point>0 &&
|
return 0;
|
||||||
sd->status.skill[skill_num].id!=0 &&
|
|
||||||
//sd->status.skill[skill_num].lv < skill_get_max(skill_num) ) - celest
|
if(sd->status.skill_point>0 &&
|
||||||
|
sd->status.skill[skill_num].id &&
|
||||||
|
sd->status.skill[skill_num].flag==0 && //Don't allow raising while you have granted skills. [Skotlex]
|
||||||
sd->status.skill[skill_num].lv < skill_tree_get_max(skill_num, sd->status.class_) )
|
sd->status.skill[skill_num].lv < skill_tree_get_max(skill_num, sd->status.class_) )
|
||||||
{
|
{
|
||||||
sd->status.skill[skill_num].lv++;
|
sd->status.skill[skill_num].lv++;
|
||||||
@ -5197,6 +5199,7 @@ static int pc_respawn(int tid,unsigned int tick,int id,int data)
|
|||||||
/*==========================================
|
/*==========================================
|
||||||
* Damages a player's SP, returns remaining SP. [Skotlex]
|
* Damages a player's SP, returns remaining SP. [Skotlex]
|
||||||
* damage is absolute damage, rate is % damage (100 = 100%)
|
* damage is absolute damage, rate is % damage (100 = 100%)
|
||||||
|
* if rate is positive, it is % of current sp, if negative, it is % of max
|
||||||
* Returns remaining SP, or -1 if the player did not have enough SP to substract from.
|
* Returns remaining SP, or -1 if the player did not have enough SP to substract from.
|
||||||
*------------------------------------------
|
*------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -5205,20 +5208,20 @@ int pc_damage_sp(struct map_session_data *sd, int damage, int rate)
|
|||||||
if (!sd->status.sp)
|
if (!sd->status.sp)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (rate)
|
if (rate > 0)
|
||||||
damage += (rate*(sd->status.sp-damage)/sd->status.max_sp)/100;
|
damage += (rate*sd->status.sp)/100;
|
||||||
|
else if (rate < 0)
|
||||||
|
damage -= (rate*sd->status.max_sp)/100;
|
||||||
|
|
||||||
|
|
||||||
if (sd->status.sp >= damage){
|
if (sd->status.sp >= damage){
|
||||||
sd->status.sp -= damage;
|
sd->status.sp -= damage;
|
||||||
clif_updatestatus(sd,SP_SP);
|
clif_updatestatus(sd,SP_SP);
|
||||||
return sd->status.sp;
|
return sd->status.sp;
|
||||||
}
|
}
|
||||||
if (sd->status.sp) {
|
sd->status.sp = 0;
|
||||||
sd->status.sp = 0;
|
clif_updatestatus(sd,SP_SP);
|
||||||
clif_updatestatus(sd,SP_SP);
|
return -1;
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
/*==========================================
|
/*==========================================
|
||||||
* pc‚Ƀ_ƒ<EFBFBD>?ƒW‚ð?‚¦‚é
|
* pc‚Ƀ_ƒ<EFBFBD>?ƒW‚ð?‚¦‚é
|
||||||
|
Loading…
x
Reference in New Issue
Block a user