- Fixed a duplicate warp name in Rachel
- Fixed Venom Splasher not being Poison elemental - Cleaned up #blv - Fixed the skill tree not always updating when using @allskill - Probably fixed the target-change on melee attack setting not working. - Moved the deletion of the invincible timer when using skills so that it is not deleted for skills such as Ashura (when just selecting a target) git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9791 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
f652311f37
commit
d2574dfd69
@ -4,6 +4,11 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
|
|||||||
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
|
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
|
||||||
|
|
||||||
2007/02/05
|
2007/02/05
|
||||||
|
* Fixed the skill tree not always updating when using @allskill
|
||||||
|
* Probably fixed the target-change on melee attack setting not working.
|
||||||
|
* Moved the deletion of the invincible timer when using skills so that it
|
||||||
|
is not deleted for skills such as Ashura (when just selecting a target)
|
||||||
|
[Skotlex]
|
||||||
* Continuing the checking of script buildin functions and stop the script
|
* Continuing the checking of script buildin functions and stop the script
|
||||||
execution when an attached player is required but not found.
|
execution when an attached player is required but not found.
|
||||||
This task will be referenced as Ticket #41 from now on. [FlavioJS]
|
This task will be referenced as Ticket #41 from now on. [FlavioJS]
|
||||||
|
@ -20,6 +20,8 @@
|
|||||||
|
|
||||||
========================
|
========================
|
||||||
|
|
||||||
|
02/05
|
||||||
|
* Fixed Venom Splasher not being Poison elemental
|
||||||
02/02
|
02/02
|
||||||
* Completed Amon Ra's spell list. Note that they probably need a delay
|
* Completed Amon Ra's spell list. Note that they probably need a delay
|
||||||
added because of the way eA differs from Aegis on the skillused condition.
|
added because of the way eA differs from Aegis on the skillused condition.
|
||||||
|
@ -164,7 +164,7 @@
|
|||||||
138,1,6,16,5,1,0,10,1,no,0,1024,0,weapon,0 //AS_ENCHANTPOISON#Enchant Poison#
|
138,1,6,16,5,1,0,10,1,no,0,1024,0,weapon,0 //AS_ENCHANTPOISON#Enchant Poison#
|
||||||
139,0,6,4,0,0,0,10,1,no,0,0,0,weapon,0 //AS_POISONREACT#Poison React#
|
139,0,6,4,0,0,0,10,1,no,0,0,0,weapon,0 //AS_POISONREACT#Poison React#
|
||||||
140,2,6,2,5,1,0,10,1,no,0,0,0,weapon,0 //AS_VENOMDUST#Venom Dust#
|
140,2,6,2,5,1,0,10,1,no,0,0,0,weapon,0 //AS_VENOMDUST#Venom Dust#
|
||||||
141,1,6,1,-1,1,2,10,1,yes,0,0,0,weapon,0 //AS_SPLASHER#Venom Splasher#
|
141,1,6,1,5,1,2,10,1,yes,0,0,0,weapon,0 //AS_SPLASHER#Venom Splasher#
|
||||||
142,0,6,4,0,1,0,1,1,no,0,1,0,none,0 //NV_FIRSTAID#First Aid#
|
142,0,6,4,0,1,0,1,1,no,0,1,0,none,0 //NV_FIRSTAID#First Aid#
|
||||||
143,0,6,4,0,1,0,1,1,no,0,1,0,none,0 //NV_TRICKDEAD#Act Dead#
|
143,0,6,4,0,1,0,1,1,no,0,1,0,none,0 //NV_TRICKDEAD#Act Dead#
|
||||||
144,0,0,0,0,0,0,1,0,no,0,1,0,none,0 //SM_MOVINGRECOVERY#Moving HP-Recovery#
|
144,0,0,0,0,0,0,1,0,no,0,1,0,none,0 //SM_MOVINGRECOVERY#Moving HP-Recovery#
|
||||||
|
@ -56,7 +56,7 @@ ra_temsky.gat,99,135,0 warp rasky002 1,1,ra_temsky.gat,99,112
|
|||||||
ra_temsky.gat,112,143,0 warp rasky003 1,1,ra_temsky.gat,141,139
|
ra_temsky.gat,112,143,0 warp rasky003 1,1,ra_temsky.gat,141,139
|
||||||
ra_temsky.gat,137,139,0 warp rasky004 1,1,ra_temsky.gat,108,143
|
ra_temsky.gat,137,139,0 warp rasky004 1,1,ra_temsky.gat,108,143
|
||||||
ra_temsky.gat,87,143,0 warp rasky005 1,1,ra_temsky.gat,58,139
|
ra_temsky.gat,87,143,0 warp rasky005 1,1,ra_temsky.gat,58,139
|
||||||
ra_temsky.gat,62,139,0 warp rasky004 1,1,ra_temsky.gat,91,143
|
ra_temsky.gat,62,139,0 warp rasky006 1,1,ra_temsky.gat,91,143
|
||||||
|
|
||||||
//Rachel Temple
|
//Rachel Temple
|
||||||
ra_temple.gat,119,21,0 warp rachel002 1,1,rachel.gat,149,244
|
ra_temple.gat,119,21,0 warp rachel002 1,1,rachel.gat,149,244
|
||||||
@ -124,4 +124,4 @@ ra_in01.gat,313,374,0 warp ra_in014 2,2,ra_in01.gat,358,373
|
|||||||
ra_in01.gat,354,373,0 warp ra_in014a 2,2,ra_in01.gat,308,374
|
ra_in01.gat,354,373,0 warp ra_in014a 2,2,ra_in01.gat,308,374
|
||||||
|
|
||||||
//Entrance to the Temple
|
//Entrance to the Temple
|
||||||
rachel.gat,149,249,0 warp rachel001 1,1,ra_temple.gat,119,28
|
rachel.gat,149,249,0 warp rachel001 1,1,ra_temple.gat,119,28
|
||||||
|
@ -1298,64 +1298,63 @@ int charcommand_baselevel(
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((pl_sd = map_nick2sd(player)) != NULL) {
|
if ((pl_sd = map_nick2sd(player)) == NULL) {
|
||||||
if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can change base level only lower or same gm level
|
|
||||||
|
|
||||||
if (level > 0) {
|
|
||||||
if (pl_sd->status.base_level == pc_maxbaselv(sd)) { // check for max level by Valaris
|
|
||||||
clif_displaymessage(fd, msg_table[91]); // Character's base level can't go any higher.
|
|
||||||
return 0;
|
|
||||||
} // End Addition
|
|
||||||
if ((unsigned int)level > pc_maxbaselv(pl_sd) ||
|
|
||||||
pl_sd->status.base_level > pc_maxbaselv(pl_sd) -level)
|
|
||||||
level = pc_maxbaselv(pl_sd) - pl_sd->status.base_level;
|
|
||||||
for (i = 1; i <= level; i++)
|
|
||||||
status_point += (pl_sd->status.base_level + i + 14) / 5;
|
|
||||||
if (pl_sd->status.status_point > USHRT_MAX - status_point)
|
|
||||||
pl_sd->status.status_point = USHRT_MAX;
|
|
||||||
else
|
|
||||||
pl_sd->status.status_point += status_point;
|
|
||||||
pl_sd->status.base_level += (unsigned int)level;
|
|
||||||
clif_updatestatus(pl_sd, SP_BASELEVEL);
|
|
||||||
clif_updatestatus(pl_sd, SP_NEXTBASEEXP);
|
|
||||||
clif_updatestatus(pl_sd, SP_STATUSPOINT);
|
|
||||||
status_calc_pc(pl_sd, 0);
|
|
||||||
status_percent_heal(&pl_sd->bl, 100, 100);
|
|
||||||
clif_misceffect(&pl_sd->bl, 0);
|
|
||||||
clif_displaymessage(fd, msg_table[65]); // Character's base level raised.
|
|
||||||
} else {
|
|
||||||
if (pl_sd->status.base_level == 1) {
|
|
||||||
clif_displaymessage(fd, msg_table[193]); // Character's base level can't go any lower.
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
level *= -1;
|
|
||||||
if ((unsigned int)level >= pl_sd->status.base_level)
|
|
||||||
level = pl_sd->status.base_level -1;
|
|
||||||
if (pl_sd->status.status_point > 0) {
|
|
||||||
for (i = 0; i > -level; i--)
|
|
||||||
status_point += (pl_sd->status.base_level +i + 14) / 5;
|
|
||||||
if (pl_sd->status.status_point < status_point)
|
|
||||||
pc_resetstate(pl_sd);
|
|
||||||
if (pl_sd->status.status_point < status_point)
|
|
||||||
pl_sd->status.status_point = 0;
|
|
||||||
else
|
|
||||||
pl_sd->status.status_point -= status_point;
|
|
||||||
clif_updatestatus(pl_sd, SP_STATUSPOINT);
|
|
||||||
} // to add: remove status points from stats
|
|
||||||
pl_sd->status.base_level -= (unsigned int)level;
|
|
||||||
clif_updatestatus(pl_sd, SP_BASELEVEL);
|
|
||||||
clif_updatestatus(pl_sd, SP_NEXTBASEEXP);
|
|
||||||
status_calc_pc(pl_sd, 0);
|
|
||||||
clif_displaymessage(fd, msg_table[66]); // Character's base level lowered.
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
clif_displaymessage(fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
clif_displaymessage(fd, msg_table[3]); // Character not found.
|
clif_displaymessage(fd, msg_table[3]); // Character not found.
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can change base level only lower or same gm level
|
||||||
|
clif_displaymessage(fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (level > 0) {
|
||||||
|
if (pl_sd->status.base_level == pc_maxbaselv(pl_sd)) { // check for max level by Valaris
|
||||||
|
clif_displaymessage(fd, msg_table[91]); // Character's base level can't go any higher.
|
||||||
|
return 0;
|
||||||
|
} // End Addition
|
||||||
|
if ((unsigned int)level > pc_maxbaselv(pl_sd) ||
|
||||||
|
pl_sd->status.base_level > pc_maxbaselv(pl_sd) -level)
|
||||||
|
level = pc_maxbaselv(pl_sd) - pl_sd->status.base_level;
|
||||||
|
for (i = 1; i <= level; i++)
|
||||||
|
status_point += (pl_sd->status.base_level + i + 14) / 5;
|
||||||
|
|
||||||
|
if (pl_sd->status.status_point > USHRT_MAX - status_point)
|
||||||
|
pl_sd->status.status_point = USHRT_MAX;
|
||||||
|
else
|
||||||
|
pl_sd->status.status_point += status_point;
|
||||||
|
pl_sd->status.base_level += (unsigned int)level;
|
||||||
|
clif_updatestatus(pl_sd, SP_BASELEVEL);
|
||||||
|
clif_updatestatus(pl_sd, SP_NEXTBASEEXP);
|
||||||
|
clif_updatestatus(pl_sd, SP_STATUSPOINT);
|
||||||
|
status_calc_pc(pl_sd, 0);
|
||||||
|
status_percent_heal(&pl_sd->bl, 100, 100);
|
||||||
|
clif_misceffect(&pl_sd->bl, 0);
|
||||||
|
clif_displaymessage(fd, msg_table[65]); // Character's base level raised.
|
||||||
|
} else {
|
||||||
|
if (pl_sd->status.base_level == 1) {
|
||||||
|
clif_displaymessage(fd, msg_table[193]); // Character's base level can't go any lower.
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
level *= -1;
|
||||||
|
if ((unsigned int)level >= pl_sd->status.base_level)
|
||||||
|
level = pl_sd->status.base_level -1;
|
||||||
|
if (pl_sd->status.status_point > 0) {
|
||||||
|
for (i = 0; i > -level; i--)
|
||||||
|
status_point += (pl_sd->status.base_level +i + 14) / 5;
|
||||||
|
if (pl_sd->status.status_point < status_point)
|
||||||
|
pc_resetstate(pl_sd);
|
||||||
|
if (pl_sd->status.status_point < status_point)
|
||||||
|
pl_sd->status.status_point = 0;
|
||||||
|
else
|
||||||
|
pl_sd->status.status_point -= status_point;
|
||||||
|
clif_updatestatus(pl_sd, SP_STATUSPOINT);
|
||||||
|
} // to add: remove status points from stats
|
||||||
|
pl_sd->status.base_level -= (unsigned int)level;
|
||||||
|
clif_updatestatus(pl_sd, SP_BASELEVEL);
|
||||||
|
clif_updatestatus(pl_sd, SP_NEXTBASEEXP);
|
||||||
|
status_calc_pc(pl_sd, 0);
|
||||||
|
clif_displaymessage(fd, msg_table[66]); // Character's base level lowered.
|
||||||
|
}
|
||||||
|
|
||||||
return 0; //<2F>³<EFBFBD>í<EFBFBD>I—¹
|
return 0; //<2F>³<EFBFBD>í<EFBFBD>I—¹
|
||||||
}
|
}
|
||||||
|
@ -9702,8 +9702,6 @@ void clif_parse_UseSkillToId(int fd, struct map_session_data *sd) {
|
|||||||
if(sd->sc.option&(OPTION_WEDDING|OPTION_XMAS))
|
if(sd->sc.option&(OPTION_WEDDING|OPTION_XMAS))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
pc_delinvincibletimer(sd);
|
|
||||||
|
|
||||||
if(target_id<0 && -target_id == sd->bl.id) // for disguises [Valaris]
|
if(target_id<0 && -target_id == sd->bl.id) // for disguises [Valaris]
|
||||||
target_id = sd->bl.id;
|
target_id = sd->bl.id;
|
||||||
|
|
||||||
@ -9755,6 +9753,8 @@ void clif_parse_UseSkillToId(int fd, struct map_session_data *sd) {
|
|||||||
skilllv = tmp;
|
skilllv = tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pc_delinvincibletimer(sd);
|
||||||
|
|
||||||
if (skilllv)
|
if (skilllv)
|
||||||
unit_skilluse_id(&sd->bl, target_id, skillnum, skilllv);
|
unit_skilluse_id(&sd->bl, target_id, skillnum, skilllv);
|
||||||
|
|
||||||
|
@ -725,13 +725,13 @@ static int mob_can_changetarget(struct mob_data* md, struct block_list* target,
|
|||||||
{
|
{
|
||||||
if (md->state.provoke_flag == target->id)
|
if (md->state.provoke_flag == target->id)
|
||||||
return 1;
|
return 1;
|
||||||
else if (!battle_config.mob_ai&0x4)
|
else if (!(battle_config.mob_ai&0x4))
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (md->state.skillstate) {
|
switch (md->state.skillstate) {
|
||||||
case MSS_BERSERK:
|
case MSS_BERSERK:
|
||||||
if (!mode&MD_CHANGETARGET_MELEE)
|
if (!(mode&MD_CHANGETARGET_MELEE))
|
||||||
return 0;
|
return 0;
|
||||||
return (battle_config.mob_ai&0x4 || check_distance_bl(&md->bl, target, 3));
|
return (battle_config.mob_ai&0x4 || check_distance_bl(&md->bl, target, 3));
|
||||||
case MSS_RUSH:
|
case MSS_RUSH:
|
||||||
|
@ -4558,6 +4558,9 @@ int pc_allskillup(struct map_session_data *sd)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
status_calc_pc(sd,0);
|
status_calc_pc(sd,0);
|
||||||
|
//Required because if you could level up all skills previously,
|
||||||
|
//the update will not be sent as only the lv variable changes.
|
||||||
|
clif_skillinfoblock(sd);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user