diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 03d6be9c91..c1a2de2ae0 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 62b8ccb4ae..51452cc9ea 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 9cecbf8582..6f3cfb95a4 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 d606d54af0..839dccd315 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 0ece5b09eb..601c49c188 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++; }