From b81bf258fc28b910d1b5cdf5feefeffc3e12a5c4 Mon Sep 17 00:00:00 2001 From: skotlex Date: Fri, 21 Jul 2006 17:11:50 +0000 Subject: - Now when the char-txt server does not finds a requested party, it will clear out said party id of all characters (will help prevent massive spamming/overhead when for some reason the party file needs to be deleted). - Combo skills (inf = self, inf2 = no target self) no longer check range if you use them while your attack-timer is still active. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7806 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/char/char.c | 14 ++++++++++++++ src/char/char.h | 1 + src/char/int_party.c | 4 +++- 3 files changed, 18 insertions(+), 1 deletion(-) (limited to 'src/char') diff --git a/src/char/char.c b/src/char/char.c index 2c9f5e321..a062f761f 100644 --- a/src/char/char.c +++ b/src/char/char.c @@ -1749,6 +1749,20 @@ int char_family(int cid1, int cid2, int cid3) { return 1; //cid2/cid3 parents. cid1 child. return 0; } + +//Clears the given party id from all characters. +//Since sometimes the party format changes and parties must be wiped, this +//method is required to prevent stress during the "party not found!" stages. +void char_clearparty(int party_id) +{ + int i; + for(i = 0; i < char_num; i++) + { + if (char_dat[i].status.party_id == party_id) + char_dat[i].status.party_id = 0; + } +} + //------------------------------------------------------------ // E-mail check: return 0 (not correct) or 1 (valid). by [Yor] //------------------------------------------------------------ diff --git a/src/char/char.h b/src/char/char.h index 780e8ba6e..feb5c1243 100644 --- a/src/char/char.h +++ b/src/char/char.h @@ -34,6 +34,7 @@ int mapif_send(int fd,unsigned char *buf, unsigned int len); int char_married(int pl1,int pl2); int char_child(int parent_id, int child_id); int char_family(int cid1, int cid2, int cid3); +void char_clearparty(int party_id); int char_log(char *fmt, ...); diff --git a/src/char/int_party.c b/src/char/int_party.c index e7d2044a5..e26e659f6 100644 --- a/src/char/int_party.c +++ b/src/char/int_party.c @@ -529,8 +529,10 @@ int mapif_parse_PartyInfo(int fd, int party_id) { p = idb_get(party_db, party_id); if (p != NULL) mapif_party_info(fd, &p->party); - else + else { mapif_party_noinfo(fd, party_id); + char_clearparty(party_id); + } return 0; } -- cgit v1.2.3-60-g2f50