summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt2
-rw-r--r--src/common/Makefile2
-rw-r--r--src/map/clif.c7
-rw-r--r--src/map/party.c13
-rw-r--r--src/map/pc.c2
-rw-r--r--src/map/skill.c8
6 files changed, 22 insertions, 12 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index ab0b9b5b3..ba8a2439c 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/11/17
+ * Corrected use of the party invitation reply packet, thanks to FlavioJS.
+ [Skotlex]
* Fixed potential hack by modifying packet of whispers. [Lance]
* Fixed potential crash in IRC processing message with '%' using *printf. [Lance]
* Fixed memory leaking caused by homun_data not freed when removed. [Lance]
diff --git a/src/common/Makefile b/src/common/Makefile
index a6af2a594..2c929b52b 100644
--- a/src/common/Makefile
+++ b/src/common/Makefile
@@ -26,7 +26,7 @@ clean:
HAVESVN = $(shell which svnversion)
ifeq ($(findstring /,$(HAVESVN)), /)
-svnversion.h: ../../Changelog-Trunk.txt
+svnversion.h:
@printf "#define SVNVERSION " > svnversion.h
@svnversion . >> svnversion.h
else
diff --git a/src/map/clif.c b/src/map/clif.c
index 9ef8c7b94..8acf784d5 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -5965,7 +5965,12 @@ int clif_party_invite(struct map_session_data *sd,struct map_session_data *tsd)
}
/*==========================================
- * パーティ勧誘結果
+ * Party invitation result. Flag values are:
+ * 0 -> char is already in a party
+ * 1 -> party invite was rejected
+ * 2 -> party invite was accepted
+ * 3 -> party is full
+ * 4 -> char of the same account already joined the party
*------------------------------------------
*/
int clif_party_inviteack(struct map_session_data *sd,char *nick,int flag)
diff --git a/src/map/party.c b/src/map/party.c
index ab86797f2..6c97bd464 100644
--- a/src/map/party.c
+++ b/src/map/party.c
@@ -277,14 +277,17 @@ int party_invite(struct map_session_data *sd,struct map_session_data *tsd)
for(i=0;i<MAX_PARTY;i++){
if(p->party.member[i].account_id == 0) //Room for a new member.
flag = 1;
- if(p->party.member[i].account_id==tsd->status.account_id &&
- p->party.member[i].char_id==tsd->status.char_id){
- clif_party_inviteack(sd,tsd->status.name,0);
+ /* By default Aegis BLOCKS more than one char from the same account on a party.
+ * But eA does support it... so this check is left commented.
+ if(p->party.member[i].account_id==tsd->status.account_id)
+ {
+ clif_party_inviteack(sd,tsd->status.name,4);
return 0;
}
+ */
}
if (!flag) { //Full party.
- clif_party_inviteack(sd,tsd->status.name,2);
+ clif_party_inviteack(sd,tsd->status.name,3);
return 0;
}
@@ -348,7 +351,7 @@ int party_member_added(int party_id,int account_id,int char_id, int flag)
sd2=map_id2sd(sd->party_invite_account);
if (sd2)
- clif_party_inviteack(sd2,sd->status.name,flag?2:0);
+ clif_party_inviteack(sd2,sd->status.name,flag?2:1);
return 0;
}
diff --git a/src/map/pc.c b/src/map/pc.c
index 9436444f2..e28c1859d 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -3222,8 +3222,8 @@ int pc_steal_item(struct map_session_data *sd,struct block_list *bl, int lv)
if(rand() % 10000 >= md->db->dropitem[i].p*rate/100)
return 0;
- malloc_set(&tmp_item,0,sizeof(tmp_item));
itemid = md->db->dropitem[i].nameid;
+ malloc_set(&tmp_item,0,sizeof(tmp_item));
tmp_item.nameid = itemid;
tmp_item.amount = 1;
tmp_item.identify = itemdb_isidentified(itemid);
diff --git a/src/map/skill.c b/src/map/skill.c
index 4b077fb1a..a85737c6c 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -8344,6 +8344,10 @@ int skill_check_condition (struct map_session_data *sd, int skill, int lv, int t
}
zeny = 0; //Zeny is reduced on skill_attack.
break;
+ case PF_HPCONVERSION:
+ if (status->sp == status->max_sp)
+ return 0; //Unusable when at full SP.
+ break;
case AM_CALLHOMUN: //Can't summon if a hom is already out
if (sd->status.hom_id && sd->hd && !sd->hd->homunculus.vaporize) {
clif_skill_fail(sd,skill,0,0);
@@ -8366,10 +8370,6 @@ int skill_check_condition (struct map_session_data *sd, int skill, int lv, int t
return 0;
}
break;
- case PF_HPCONVERSION:
- if (status->sp == status->max_sp)
- return 0; //Unusable when at full SP.
- break;
}
if(!(type&2)){