Explorar o código

* Tidied up battle_check_target abit
* Updated traps to affect allies as well in GvG
* Updated cast and delay time for Soul Breaker

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

(no author) %!s(int64=20) %!d(string=hai) anos
pai
achega
d80d9b8074
Modificáronse 4 ficheiros con 16 adicións e 6 borrados
  1. 2 0
      SVN-Changelog.txt
  2. 1 0
      db/Changelog.txt
  3. 1 1
      db/skill_cast_db.txt
  4. 12 5
      src/map/battle.c

+ 2 - 0
SVN-Changelog.txt

@@ -1,6 +1,8 @@
 Date	Added
 
 02/11
+        * Tidied up battle_check_target abit [celest]
+        * Updated traps to affect allies as well in GvG [celest]
         * Check if login server is online before setting character to online (in SQL),
           thanks to Alex14 [celest]
         * Synchronise storage as well when saving character to cut down on item

+ 1 - 0
db/Changelog.txt

@@ -6,6 +6,7 @@
 	Skill databases == celest working on them i believe.
 
 02/11
+        * Updated Soul Breaker cast and delay time, thanks to matthias [celest]
         * Updated Chain Crush to require level 2 Tiger Fist, thanks to matthias for
           pointing it out [celest]
 

+ 1 - 1
db/skill_cast_db.txt

@@ -239,7 +239,7 @@
 //375,0,10000:10000:10000:10000:15000,0,0	//PF_SOULBURN#ソウルバーン#
 
 378,0,2000,20000:30000:40000:50000:60000,20000:30000:40000:50000:60000	//ASC_EDP#エンチャントデッドリーポイズン#
-379,0,1000:1200:1400:1600:1800:2000:2200:2400:2600:2800,0,0	//ASC_BREAKER
+379,1000,2000:2200:2400:2600:2800:3000:3200:3400:3600:3800,0,0	//ASC_BREAKER
 380,0,0,30000,0 //SN_SIGHT#トゥルーサイト# 
 381,1000,1200,0,0,0	//SN_FALCONASSAULT
 382,2000,500,0,0	//SN_SHARPSHOOTING

+ 12 - 5
src/map/battle.c

@@ -3682,15 +3682,22 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f
 
 				// スキルユニットの場合、親を求める
 	if( src->type==BL_SKILL) {
-		int inf2 = skill_get_inf2(((struct skill_unit *)src)->group->skill_id);
-		if( (ss=map_id2bl( ((struct skill_unit *)src)->group->src_id))==NULL )
+		struct skill_unit *su = (struct skill_unit *)src;
+		int skillid, inf2;
+
+		nullpo_retr (-1, su);
+		nullpo_retr (-1, su->group);
+		skillid = su->group->skill_id;
+		inf2 = skill_get_inf2(skillid);
+		if( (ss=map_id2bl( su->group->src_id))==NULL )
 			return -1;
 		if(ss->prev == NULL)
 			return -1;
 		if(inf2&0x80 &&
-                   (map[src->m].flag.pvp || pc_iskiller((struct map_session_data *)src, (struct map_session_data *)target)) &&  // [MouseJstr]
-                   !(target->type == BL_PC && pc_isinvisible((struct map_session_data *)target)))
-			return 0;
+			(map[src->m].flag.pvp ||
+			(skillid >= 115 && skillid <= 125 && map[src->m].flag.gvg)) &&
+			!(target->type == BL_PC && pc_isinvisible((struct map_session_data *)target)))
+				return 0;
 		if(ss == target) {
 			if(inf2&0x100)
 				return 0;