summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt2
-rw-r--r--src/map/script.c4
-rw-r--r--src/map/status.c9
3 files changed, 7 insertions, 8 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 8c40815ca..6dea4ec57 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -4,6 +4,8 @@ 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/10/09
+ * Should have fixed being petrified not reducing your defense and
+ increaseing your mdef. [Skotlex]
* Fixed SC_NOCHAT printing the "skills are now available" message twice on
natural expiration. [Skotlex]
2006/10/08
diff --git a/src/map/script.c b/src/map/script.c
index 58c72d3bf..707e87b16 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -2737,9 +2737,9 @@ void run_script_main(struct script_state *st)
if(bk_st) {
ShowWarning("Unable to restore stack! Double continuation!\n");
//Report BOTH scripts to see if that can help somehow.
- ShowDebug("Previous script (lost):");
+ ShowDebug("Previous script (lost):\n");
report_src(bk_st);
- ShowDebug("Current script:");
+ ShowDebug("Current script:\n");
report_src(st);
}
} else {
diff --git a/src/map/status.c b/src/map/status.c
index d0c8310e8..7a3d2c4eb 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -113,7 +113,7 @@ void initChangeTables(void) {
StatusSkillChangeTable[SC_DPOISON] = NPC_POISON;
//These are the status-change flags for the common ailments.
- StatusChangeFlagTable[SC_STONE] = SCB_DEF_ELE;
+ StatusChangeFlagTable[SC_STONE] = SCB_DEF_ELE|SCB_DEF|SCB_MDEF;
StatusChangeFlagTable[SC_FREEZE] = SCB_DEF_ELE|SCB_DEF|SCB_MDEF;
// StatusChangeFlagTable[SC_STUN] = SCB_NONE;
// StatusChangeFlagTable[SC_SLEEP] = SCB_NONE;
@@ -5007,6 +5007,7 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
val3 = tick/1000; //Petrified HP-damage iterations.
if(val3 < 1) val3 = 1;
tick = 5000; //Petrifying time.
+ calc_flag = 0; //Actual status changes take effect on petrified state.
break;
case SC_DPOISON:
@@ -5439,10 +5440,6 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
val4 = gettick(); //Store time at which you started running.
break;
case SC_KAAHI:
- if(flag&4) {
- val4 = -1;
- break;
- }
val2 = 200*val1; //HP heal
val3 = 5*val1; //SP cost
val4 = -1; //Kaahi Timer.
@@ -6480,7 +6477,7 @@ int status_change_timer(int tid, unsigned int tick, int id, int data)
sc->opt1 = OPT1_STONE;
clif_changeoption(bl);
sc->data[type].timer=add_timer(1000+tick,status_change_timer, bl->id, data );
- status_calc_bl(bl, SCB_DEF_ELE);
+ status_calc_bl(bl, StatusChangeFlagTable[type]);
return 0;
}
if((--sc->data[type].val3) > 0) {