فهرست منبع

Updated restrictions for Call partner and Emergency Recall abit

git-svn-id: https://svn.code.sf.net/p/rathena/svn/athena@339 54d463be-8e91-2dee-dedb-b68131a5f0ec
(no author) 20 سال پیش
والد
کامیت
8c36a195bf
3فایلهای تغییر یافته به همراه9 افزوده شده و 5 حذف شده
  1. 2 0
      Changelog.txt
  2. 2 0
      conf-tmpl/mapflag/jail.txt
  3. 5 5
      src/map/skill.c

+ 2 - 0
Changelog.txt

@@ -12,6 +12,8 @@ Date	Added
           - Corrected Assassin Cross' dual wield
           - Changed player_cloak_check_type to yes by default and edited description
             since it's already fully implemented.
+          - Added a bit more restrictions to Call Partner and Emergency Recall and
+            updated mapflag for sec_pri.gat
 
 11/22
 	* (TXT)Stripped some code off read_gm_accounts() and made with it addGM() [MC Cameri]

+ 2 - 0
conf-tmpl/mapflag/jail.txt

@@ -29,6 +29,8 @@ sec_pri.gat	mapflag	nosave	SavePoint
 // No Teleport ===========================
 sec_pri.gat	mapflag	noteleport
 
+// No Warp ===============================
+sec_pri.gat	mapflag	nowarp
 
 // Bloody Jail ===========================
 //Uncomment following maps to let your prisoners fight with other prisoners

+ 5 - 5
src/map/skill.c

@@ -4237,14 +4237,14 @@ int skill_castend_nodamage_id( struct block_list *src, struct block_list *bl,int
 
 	case WE_CALLPARTNER:			/* ‚ ‚È‚½‚É?‚¢‚½‚¢ */
 		if(sd && dstsd){
-			if(map[sd->bl.m].flag.nomemo){
-				clif_skill_teleportmessage(sd,1);
-				return 0;
-			}
 			if((dstsd = pc_get_partner(sd)) == NULL){
 				clif_skill_fail(sd,skillid,0,0);
 				return 0;
 			}
+			if(map[sd->bl.m].flag.nomemo || map[sd->bl.m].flag.nowarpto || map[dstsd->bl.m].flag.nowarp){
+				clif_skill_teleportmessage(sd,1);
+				return 0;
+			}			
 			skill_unitsetting(src,skillid,skilllv,sd->bl.x,sd->bl.y,0);
 		}
 		break;
@@ -4450,7 +4450,7 @@ int skill_castend_nodamage_id( struct block_list *src, struct block_list *bl,int
 				for(i = 0; i < g->max_member; i++, j++) {
 					if (j>8) j=0;
 					if ((dstsd = g->member[i].sd) != NULL && sd != dstsd &&
-						!map[sd->bl.m].flag.nowarpto && !map[sd->bl.m].flag.nowarp) {
+						!map[sd->bl.m].flag.nowarpto && !map[dstsd->bl.m].flag.nowarp) {
 						clif_skill_nodamage(src,bl,skillid,skilllv,1);
 						pc_setpos(dstsd, sd->mapname, sd->bl.x+dx[j], sd->bl.y+dy[j], 2);
 					}