瀏覽代碼

- Modified pc_dead so that the src is passed on to the master when it is a pet or homunculus.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12150 54d463be-8e91-2dee-dedb-b68131a5f0ec
skotlex 17 年之前
父節點
當前提交
220fb381a2
共有 2 個文件被更改,包括 24 次插入15 次删除
  1. 3 0
      Changelog-Trunk.txt
  2. 21 15
      src/map/pc.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.
 
+2008/01/29
+	* Modified pc_dead so that the src is passed on to the master when it is a
+	  pet or homunculus. [Skotlex]
 2008/01/26
 	* Small update to the dgbhelpplug plugin: [FlavioJS]
 	- fixed only half of wide character strings being printed

+ 21 - 15
src/map/pc.c

@@ -4976,7 +4976,15 @@ int pc_dead(struct map_session_data *sd,struct block_list *src)
 			mob_script_callback(md, &sd->bl, CALLBACK_KILL);
 	}
 	break;
-	case BL_PC:
+	case BL_PET: //Pass on to master...
+		src = &((TBL_PET*)src)->msd->bl;
+	break;
+	case BL_HOM:
+		src = &((TBL_HOM*)src)->master->bl;
+	break;
+	}
+
+	if (src && src->type == BL_PC)
 	{
 		struct map_session_data *ssd = (struct map_session_data *)src;
 		pc_setglobalreg(ssd, "killedrid", sd->bl.id);
@@ -4986,33 +4994,31 @@ int pc_dead(struct map_session_data *sd,struct block_list *src)
 			ssd->status.manner -= 5;
 			if(ssd->status.manner < 0)
 				sc_start(src,SC_NOCHAT,100,0,0);
-
-		// PK/Karma system code (not enabled yet) [celest]
-		// originally from Kade Online, so i don't know if any of these is correct ^^;
-		// note: karma is measured REVERSE, so more karma = more 'evil' / less honourable,
-		// karma going down = more 'good' / more honourable.
-		// The Karma System way...
-		/*
+#if 0
+			// PK/Karma system code (not enabled yet) [celest]
+			// originally from Kade Online, so i don't know if any of these is correct ^^;
+			// note: karma is measured REVERSE, so more karma = more 'evil' / less honourable,
+			// karma going down = more 'good' / more honourable.
+			// The Karma System way...
+		
 			if (sd->status.karma > ssd->status.karma) {	// If player killed was more evil
 				sd->status.karma--;
 				ssd->status.karma--;
 			}
 			else if (sd->status.karma < ssd->status.karma)	// If player killed was more good
 				ssd->status.karma++;
-		*/
+	
 
-		// or the PK System way...
-		/*
+			// or the PK System way...
+	
 			if (sd->status.karma > 0)	// player killed is dishonourable?
 				ssd->status.karma--; // honour points earned
 			sd->status.karma++;	// honour points lost
-		*/
+		
 			// To-do: Receive exp on certain occasions
+#endif
 		}
 	}
-	break;
-	}
-
 
 	// PK/Karma system code (not enabled yet) [celest]
 	/*