summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog.txt7
-rw-r--r--src/map/map.h1
-rw-r--r--src/map/party.c2
-rw-r--r--src/map/pc.c7
4 files changed, 15 insertions, 2 deletions
diff --git a/Changelog.txt b/Changelog.txt
index bbfea93ec..aba6f5a0b 100644
--- a/Changelog.txt
+++ b/Changelog.txt
@@ -1,7 +1,10 @@
Date Added
12/22
- * Fixed a bug in resnametable from local directories [MouseJstr]
- * Fixed a bug in grfio_read causing memory corruptions [MouseJstr]
+ * Changed how party exp is passed out to eliminate players
+ current in a chat window or those who havn't moved or attacked
+ in 2 minutes [MouseJstr]
+ * Fixed a bug in resnametable from local directories,
+ by fixing a bug in grfio_read causing memory corruptions [MouseJstr]
* Rearranged how guild messages, gm messages, and party messages
are moved back and forth between the inter server and the
map server.. eliminating unneeded round trips to eliminate
diff --git a/src/map/map.h b/src/map/map.h
index 79926903c..1c9565341 100644
--- a/src/map/map.h
+++ b/src/map/map.h
@@ -185,6 +185,7 @@ struct map_session_data {
char *npc_stackbuf;
char npc_str[256];
unsigned int chatID;
+ unsigned long idletime;
struct{
char name[24];
diff --git a/src/map/party.c b/src/map/party.c
index 075209f7e..9443608fb 100644
--- a/src/map/party.c
+++ b/src/map/party.c
@@ -591,6 +591,8 @@ int party_exp_share(struct party *p,int map,int base_exp,int job_exp,int zeny)
return 0;
for(i=0;i<MAX_PARTY;i++)
if((sd=p->member[i].sd)!=NULL && sd->bl.m==map && session[sd->fd] != NULL) {
+ if (/* pc_issit(sd) || */ (sd->chatID != NULL) || (sd->idletime < (time(0) - 120)))
+ continue;
#ifdef TWILIGHT
pc_gainexp(sd,base_exp,job_exp);
#else
diff --git a/src/map/pc.c b/src/map/pc.c
index 4e429f378..ee883d736 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -4311,6 +4311,7 @@ int pc_walktoxy(struct map_session_data *sd,int x,int y)
sd->to_x=x;
sd->to_y=y;
+ sd->idletime = time(0);
if(sd->walktimer != -1 && sd->state.change_walk_target==0){
// 現在?いている最中の目的地?更なのでマス目の中心に?た暫ノ
@@ -4643,6 +4644,9 @@ int pc_attack_timer(int tid,unsigned int tick,int id,int data)
sd=map_id2sd(id);
if(sd == NULL)
return 0;
+
+ sd->idletime = time(0);
+
if(sd->attacktimer != tid){
if(battle_config.error_log)
printf("pc_attack_timer %d != %d\n",sd->attacktimer,tid);
@@ -4755,11 +4759,14 @@ int pc_attack(struct map_session_data *sd,int target_id,int type)
struct block_list *bl;
int d;
+
nullpo_retr(0, sd);
bl=map_id2bl(target_id);
if(bl==NULL)
return 1;
+
+ sd->idletime = time(0);
if(bl->type==BL_NPC) { // monster npcs [Valaris]
//npc_click(sd,RFIFOL(sd->fd,2));