summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt4
-rw-r--r--conf-tmpl/battle/party.conf2
-rw-r--r--src/map/clif.c14
-rw-r--r--src/map/map.h2
-rw-r--r--src/map/party.c2
5 files changed, 14 insertions, 10 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 03d6be9c9..c1a2de2ae 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -4,6 +4,10 @@ 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/05/08
+ * hide_gvg_damage will now send 1 instead of -1 as damage. [Skotlex]
+ * idletime will now be updated on attack-request, not on sit/standup
+ [Skotlex]
+ * Party members sitting will no longer be considered idle. [Skotlex]
* Removed SP_DISGUISE from the bonus list (onequip/onunequip should be used
with the disguise/undisguise script commands instead). [Skotlex]
* Moved Sharp Shooting display to the block with Auto-Counter (since that's
diff --git a/conf-tmpl/battle/party.conf b/conf-tmpl/battle/party.conf
index 62b8ccb4a..51452cc9e 100644
--- a/conf-tmpl/battle/party.conf
+++ b/conf-tmpl/battle/party.conf
@@ -42,7 +42,7 @@ party_item_share_type: 0
// Is exp sharing disabled for idle members in the party?
// Set to no, or the amount of seconds (NOT milliseconds) that need to pass before considering
// a character idle.
-// Characters sitting/in a chat are always considered idle.
+// Characters in a chat are always considered idle.
// A character's idle status is reset upon item use/skill use/attack (auto attack counts too)/movement.
idle_no_share: no
diff --git a/src/map/clif.c b/src/map/clif.c
index 9cecbf858..6f3cfb95a 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -3872,8 +3872,8 @@ int clif_damage(struct block_list *src,struct block_list *dst,unsigned int tick,
WBUFL(buf,14)=sdelay;
WBUFL(buf,18)=ddelay;
if (battle_config.hide_woe_damage && map_flag_gvg(src->m)) {
- WBUFW(buf,22)=-1;
- WBUFW(buf,27)=-1;
+ WBUFW(buf,22)=1;
+ WBUFW(buf,27)=1;
} else {
WBUFW(buf,22)=(damage > SHRT_MAX)?SHRT_MAX:damage;
WBUFW(buf,27)=damage2;
@@ -4392,7 +4392,7 @@ int clif_skill_damage(struct block_list *src,struct block_list *dst,
WBUFL(buf,16)=sdelay;
WBUFL(buf,20)=ddelay;
if (battle_config.hide_woe_damage && map_flag_gvg(src->m)) {
- WBUFW(buf,24)=-1;
+ WBUFW(buf,24)=1;
} else {
WBUFW(buf,24)=damage;
}
@@ -4423,7 +4423,7 @@ int clif_skill_damage(struct block_list *src,struct block_list *dst,
WBUFL(buf,16)=sdelay;
WBUFL(buf,20)=ddelay;
if (battle_config.hide_woe_damage && map_flag_gvg(src->m)) {
- WBUFL(buf,24)=-1;
+ WBUFL(buf,24)=1;
} else {
WBUFL(buf,24)=damage;
}
@@ -4483,7 +4483,7 @@ int clif_skill_damage2(struct block_list *src,struct block_list *dst,
WBUFW(buf,24)=dst->x;
WBUFW(buf,26)=dst->y;
if (battle_config.hide_woe_damage && map_flag_gvg(src->m)) {
- WBUFW(buf,28)=-1;
+ WBUFW(buf,28)=1;
} else {
WBUFW(buf,28)=damage;
}
@@ -8723,8 +8723,6 @@ void clif_parse_ActionRequest(int fd, struct map_session_data *sd) {
target_id = RFIFOL(fd,packet_db[sd->packet_ver][RFIFOW(fd,0)].pos[0]);
action_type = RFIFOB(fd,packet_db[sd->packet_ver][RFIFOW(fd,0)].pos[1]);
- //Regardless of what they have to do, they have just requested an action, no longer idle. [Skotlex]
- sd->idletime = last_tick;
if(target_id<0) // for disguises [Valaris]
target_id-=(target_id*2);
@@ -8747,6 +8745,8 @@ void clif_parse_ActionRequest(int fd, struct map_session_data *sd) {
}
if (sd->invincible_timer != -1)
pc_delinvincibletimer(sd);
+
+ sd->idletime = last_tick;
unit_attack(&sd->bl, target_id, action_type != 0);
break;
case 0x02: // sitdown
diff --git a/src/map/map.h b/src/map/map.h
index d606d54af..839dccd31 100644
--- a/src/map/map.h
+++ b/src/map/map.h
@@ -1131,7 +1131,7 @@ enum {
SP_DELAYRATE,SP_HP_DRAIN_RATE_RACE,SP_SP_DRAIN_RATE_RACE, // 1083-1085
SP_RESTART_FULL_RECOVER=2000,SP_NO_CASTCANCEL,SP_NO_SIZEFIX,SP_NO_MAGIC_DAMAGE,SP_NO_WEAPON_DAMAGE,SP_NO_GEMSTONE, // 2000-2005
- SP_NO_CASTCANCEL2,SP_FREE,SP_UNBREAKABLE_WEAPON,SP_UNBREAKABLE_ARMOR, SP_UNBREAKABLE_HELM, // 2006-2010
+ SP_NO_CASTCANCEL2,SP_FREE1,SP_UNBREAKABLE_WEAPON,SP_UNBREAKABLE_ARMOR, SP_UNBREAKABLE_HELM, // 2006-2010
SP_UNBREAKABLE_SHIELD, SP_LONG_ATK_RATE, // 2011-2012
SP_CRIT_ATK_RATE, SP_CRITICAL_ADDRACE, SP_NO_REGEN, SP_ADDEFF_WHENHIT, SP_AUTOSPELL_WHENHIT, // 2013-2017
diff --git a/src/map/party.c b/src/map/party.c
index 0ece5b09e..601c49c18 100644
--- a/src/map/party.c
+++ b/src/map/party.c
@@ -664,7 +664,7 @@ int party_exp_share(struct party *p,int map,unsigned int base_exp,unsigned int j
for (i = c = 0; i < MAX_PARTY; i++)
if ((sd[c] = p->member[i].sd)!=NULL && sd[c]->bl.m == map && !pc_isdead(sd[c])) {
- if (battle_config.idle_no_share && (pc_issit(sd[c]) || sd[c]->chatID || (sd[c]->idletime < (last_tick - battle_config.idle_no_share))))
+ if (battle_config.idle_no_share && (sd[c]->chatID || (sd[c]->idletime < (last_tick - battle_config.idle_no_share))))
continue;
c++;
}