Parcourir la source

- Fixed the auto-direction code which makes self-skills with ground units become a ground spell using the wrong function for said check. In short: fixed GrandCross and similar skills.
- FogWall will now also affect the caster.
- Some cleanup of map.h.


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

skotlex il y a 19 ans
Parent
commit
db1cf2de9a
4 fichiers modifiés avec 5 ajouts et 9 suppressions
  1. 3 0
      Changelog-Trunk.txt
  2. 1 3
      src/map/map.h
  3. 0 3
      src/map/party.c
  4. 1 3
      src/map/skill.c

+ 3 - 0
Changelog-Trunk.txt

@@ -3,6 +3,9 @@ Date	Added
 AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
+2006/07/06
+	* Fixed GrandCross and similar skills. [Skotlex]
+	* FogWall will now also affect the caster. [Skotlex]
 2006/07/05
 	* Updated NJ_KAENSIN by Saycyber21 [Vicious]
 	* Updated  @refine to take account of MAX_REFINE, thanks to Omega... GM

+ 1 - 3
src/map/map.h

@@ -474,10 +474,8 @@ struct party_member_data {
 struct party_data {
 	struct party party;
 	struct party_member_data data[MAX_PARTY];
-	unsigned char count; //Online count of members.
 	unsigned char itemc; //For item distribution.
 	struct {
-		unsigned family : 1; //Is this party a family?
 		unsigned monk : 1; //There's at least one monk in party?
 		unsigned sg : 1;	//There's at least one Star Gladiator in party?
 		unsigned snovice :1; //There's a Super Novice
@@ -861,7 +859,7 @@ struct spawn_data {
 	unsigned int delay1,delay2; //Min delay before respawning after spawn/death
 	struct {
 		unsigned size :2; //Holds if mob has to be tiny/large
-		unsigned ai :1;	//Holds if mob is special ai.
+		unsigned ai :2;	//Holds if mob is special ai.
 	} state;
 	char name[NAME_LENGTH],eventname[50]; //Name/event
 };

+ 0 - 3
src/map/party.c

@@ -203,7 +203,6 @@ int party_recv_info(struct party *sp)
 	if (!p->party.party_id) //party just received.
 		party_check_member(sp);
 	memcpy(&p->party,sp,sizeof(struct party));
-	p->count = 0;
 	memset(&p->state, 0, sizeof(p->state));
 	memset(&p->data, 0, sizeof(p->data));
 	for(i=0;i<MAX_PARTY;i++){
@@ -214,7 +213,6 @@ int party_recv_info(struct party *sp)
 			&& sd->status.char_id == p->party.member[i].char_id
 			&& !sd->state.waitingdisconnect)
 			p->data[i].sd = sd;
-		p->count++;
 	}
 	party_check_state(p);
 	for(i=0;i<MAX_PARTY;i++){
@@ -389,7 +387,6 @@ int party_member_leaved(int party_id,int account_id,int char_id)
 				clif_party_leaved(p,sd,account_id,p->party.member[i].name,0x00);
 				memset(&p->party.member[i], 0, sizeof(p->party.member[0]));
 				memset(&p->data[i], 0, sizeof(p->data[0]));
-				p->count--;
 				break;
 			}
 	}

+ 1 - 3
src/map/skill.c

@@ -3173,7 +3173,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 		case NJ_BAKUENRYU: //Doesn't works on the default because it is enemy-targetted.
 			return skill_castend_pos2(src,bl->x,bl->y,skillid,skilllv,tick,0);
 		default:
-			if (src == bl && skill_get_unit_flag(skillid)) //Skill is actually ground placed.
+			if (src == bl && skill_get_unit_id(skillid,0)) //Skill is actually ground placed.
 				return skill_castend_pos2(src,bl->x,bl->y,skillid,skilllv,tick,0);
 	}
 
@@ -6634,8 +6634,6 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, unsigned
 		}
 		break;
 	case UNT_FOGWALL:
-		if (sg->src_id==bl->id)
-			return 0;
 		if (sc && sc->data[type].timer==-1)
 		{
 			sc_start4(bl, type, 100, sg->skill_lv, sg->val1, sg->val2, sg->group_id, sg->limit);