summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-06-12 21:34:38 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-06-12 21:34:38 +0000
commit00e418c45bb0a96117a4b6b83a8fe5a6f5b2c868 (patch)
tree5a39e94964fb6dd9fa0bcf7f56baf65b30b6d348
parent3c9a4b95c3612e0925baf1b116460e0c07cd6d2f (diff)
downloadhercules-00e418c45bb0a96117a4b6b83a8fe5a6f5b2c868.tar.gz
hercules-00e418c45bb0a96117a4b6b83a8fe5a6f5b2c868.tar.bz2
hercules-00e418c45bb0a96117a4b6b83a8fe5a6f5b2c868.tar.xz
hercules-00e418c45bb0a96117a4b6b83a8fe5a6f5b2c868.zip
- @heal no longer displays a healing animation. Fixes the client believing you couldn't be healed more than 32K.
- Now you can use any skills (except encore/dancing ones) while under Longing for Freeding. - Now you can use any skills while under Marionette Control. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7111 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r--Changelog-Trunk.txt5
-rw-r--r--src/map/atcommand.c8
-rw-r--r--src/map/status.c9
3 files changed, 17 insertions, 5 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index b027b78f9..455b97e6f 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -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.
2006/06/12
+ * @heal no longer displays a healing animation. Fixes the client believing
+ you couldn't be healed more than 32K. [Skotlex]
+ * Now you can use any skills (except encore/dancing ones) while under
+ Longing for Freeding. [Skotlex]
+ * Now you can use any skills while under Marionette Control. [Skotlex]
* Fixed npc_checknear's distance check returning the opposite of what it
should (false when the range is correct and viceversa) [Skotlex]
* Added a warning on item loading when an item is of equippable type but
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index 168f6cb62..9ac4af66b 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -2488,7 +2488,7 @@ int atcommand_heal(
sscanf(message, "%d %d", &hp, &sp);
if (hp == 0 && sp == 0) {
- if (!status_heal(&sd->bl, sd->battle_status.max_hp, sd->battle_status.max_sp, 2))
+ if (!status_percent_heal(&sd->bl, 100, 100))
clif_displaymessage(fd, msg_table[157]); // HP and SP are already with the good value.
else
clif_displaymessage(fd, msg_table[17]); // HP, SP recovered.
@@ -2496,7 +2496,7 @@ int atcommand_heal(
}
if(hp > 0 && sp >= 0) {
- if(!status_heal(&sd->bl, hp, sp, 2))
+ if(!status_heal(&sd->bl, hp, sp, 0))
clif_displaymessage(fd, msg_table[157]); // HP and SP are already with the good value.
else
clif_displaymessage(fd, msg_table[17]); // HP, SP recovered.
@@ -2513,7 +2513,7 @@ int atcommand_heal(
//Opposing signs.
if (hp) {
if (hp > 0)
- status_heal(&sd->bl, hp, 0, 2);
+ status_heal(&sd->bl, hp, 0, 0);
else {
status_damage(NULL, &sd->bl, -hp, 0, 0, 0);
clif_damage(&sd->bl,&sd->bl, gettick(), 0, 0, -hp, 0 , 4, 0);
@@ -2522,7 +2522,7 @@ int atcommand_heal(
if (sp) {
if (sp > 0)
- status_heal(&sd->bl, 0, sp, 2);
+ status_heal(&sd->bl, 0, sp, 0);
else
status_damage(NULL, &sd->bl, 0, -sp, 0, 0);
}
diff --git a/src/map/status.c b/src/map/status.c
index e1e35dcac..9dd77e727 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -870,7 +870,7 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, int
(src->type != BL_PC || ((TBL_PC*)src)->skillitem != skill_num)
) { //Skills blocked through status changes...
if (!flag && ( //Blocked only from using the skill (stuff like autospell may still go through
- (sc->data[SC_MARIONETTE].timer != -1 && skill_num != CG_MARIONETTE) ||
+// (sc->data[SC_MARIONETTE].timer != -1 && skill_num != CG_MARIONETTE) ||
(sc->data[SC_MARIONETTE2].timer != -1 && skill_num == CG_MARIONETTE) ||
sc->data[SC_SILENCE].timer != -1 ||
sc->data[SC_STEELBODY].timer != -1 ||
@@ -888,6 +888,13 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, int
if (flag!=2 && sc->data[SC_DANCING].timer != -1)
{
+ if(sc->data[SC_LONGING].timer != -1)
+ { //Allow everything except dancing/re-dancing. [Skotlex]
+ if (skill_num == BD_ENCORE ||
+ skill_get_inf2(skill_num)&(INF2_SONG_DANCE|INF2_ENSEMBLE_SKILL)
+ )
+ return 0;
+ } else
if (skill_num != BD_ADAPTATION && skill_num != CG_LONGINGFREEDOM
&& skill_num != BA_MUSICALSTRIKE && skill_num != DC_THROWARROW)
return 0;