Forráskód Böngészése

- Fixed compilation error.
- idletime will now be updated on attack-request, not on sit/standup
- Party members sitting will no longer be considered idle.
- hide_gvg_damage will now send 1 instead of -1 as damage.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6517 54d463be-8e91-2dee-dedb-b68131a5f0ec

skotlex 19 éve
szülő
commit
aae1ae1832
5 módosított fájl, 14 hozzáadás és 10 törlés
  1. 4 0
      Changelog-Trunk.txt
  2. 1 1
      conf-tmpl/battle/party.conf
  3. 7 7
      src/map/clif.c
  4. 1 1
      src/map/map.h
  5. 1 1
      src/map/party.c

+ 4 - 0
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

+ 1 - 1
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
 

+ 7 - 7
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

+ 1 - 1
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

+ 1 - 1
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++;
 		}