Procházet zdrojové kódy

* Fixed npc class HIDDEN_WARP_NPC (139) being sent to the client, causing client crashes in poring war. It's a server-side "sprite" only.
- Updated Aegis NPC ID constants from current npcidentity.lub (569~603).
- Reintroduced HIDDEN_WARP_NPC script constant, which was removed by accident (since r14679).

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

ai4rei před 13 roky
rodič
revize
f204e8aa09
4 změnil soubory, kde provedl 50 přidání a 6 odebrání
  1. 4 0
      Changelog-Trunk.txt
  2. 36 0
      db/const.txt
  3. 1 1
      src/map/npc.c
  4. 9 5
      src/map/npc.h

+ 4 - 0
Changelog-Trunk.txt

@@ -1,5 +1,9 @@
 Date	Added
 
+2011/11/12
+	* Fixed npc class HIDDEN_WARP_NPC (139) being sent to the client, causing client crashes in poring war. It's a server-side "sprite" only. [Ai4rei]
+	- Updated Aegis NPC ID constants from current npcidentity.lub (569~603).
+	- Reintroduced HIDDEN_WARP_NPC script constant, which was removed by accident (since r14679).
 2011/11/03
 	* Organized items in VS2010 projects into groups like in other projects (follow up to r14562). [Ai4rei]
 2011/10/28

+ 36 - 0
db/const.txt

@@ -1505,6 +1505,7 @@ HIDDEN_NPC	111
 2_F_MAGICMASTER	123
 4_F_TELEPORTER	124
 4_M_TELEPORTER	125
+HIDDEN_WARP_NPC	139
 4_M_MUT2	401
 4_M_SCIENCE	402
 4_F_VALKYRIE2	403
@@ -1673,6 +1674,41 @@ MOB_TOMB	565
 4_MYSTCASE	566
 4_M_SIT_NOVICE	567
 4_OCTOPUS_LEG	568
+4_F_NURSE	569
+4_MAL_SOLDIER	570
+4_MAL_CAPTAIN	571
+4_MAL_BUDIDAI	572
+4_M_MAYOR	573
+4_M_BARYO_OLD	574
+4_F_BARYO_OLD	575
+4_F_BARYO_GIRL	576
+4_M_BARYO_BOY	577
+4_M_BARYO_MAN	578
+4_F_BARYO_WOMAN	579
+4_BARYO_CHIEF	580
+4_MAL_KAFRA	581
+4_M_MALAYA	582
+4_F_MALAYA	583
+4_F_PATIENT	584
+4_M_PATIENT	585
+4_F_KR_TIGER	586
+4_M_KR_BOY	587
+4_M_KAGE_OLD	588
+4_WHIKEBAIN	589
+4_EREND	590
+4_RAWREL	591
+4_ARMAIA	592
+4_KAVAC	593
+4_YGNIZEM	594
+4_EREMES	595
+4_MAGALETA	596
+4_KATRINN	597
+4_SHECIL	598
+4_SEYREN	599
+4_HARWORD	600
+4_F_JP_CYNTHIA	601
+4_M_JP_GUSTON	602
+4_M_JP_BERKUT	603
 //Free	Ids
 8_F_GIRL	700
 4_F_GODEMOM	701

+ 1 - 1
src/map/npc.c

@@ -96,7 +96,7 @@ static struct script_event_s
 
 struct view_data* npc_get_viewdata(int class_)
 {	//Returns the viewdata for normal npc classes.
-	if (class_ == INVISIBLE_CLASS)
+	if( class_ == HIDDEN_WARP_CLASS || class_ == INVISIBLE_CLASS )
 		return &npc_viewdb[0];
 	if (npcdb_checkid(class_) || class_ == WARP_CLASS)
 		return &npc_viewdb[class_];

+ 9 - 5
src/map/npc.h

@@ -69,15 +69,19 @@ struct npc_data {
 
 #define START_NPC_NUM 110000000
 
-#define WARP_CLASS 45
-#define WARP_DEBUG_CLASS 722
-#define FLAG_CLASS 722
-#define INVISIBLE_CLASS 32767
+enum actor_classes
+{
+	WARP_CLASS = 45,
+	HIDDEN_WARP_CLASS = 139,  // server-side only, never sent to client
+	WARP_DEBUG_CLASS = 722,
+	FLAG_CLASS = 722,
+	INVISIBLE_CLASS = 32767,
+};
 
 #define MAX_NPC_CLASS 1000
 //Checks if a given id is a valid npc id. [Skotlex]
 //Since new npcs are added all the time, the max valid value is the one before the first mob (Scorpion = 1001)
-#define npcdb_checkid(id) ( ( (id) >= 46 && (id) <= 125) || (id) == 139 || ( (id) > 400 && (id) < MAX_NPC_CLASS ) || (id) == INVISIBLE_CLASS )
+#define npcdb_checkid(id) ( ( (id) >= 46 && (id) <= 125) || (id) == HIDDEN_WARP_CLASS || ( (id) > 400 && (id) < MAX_NPC_CLASS ) || (id) == INVISIBLE_CLASS )
 
 #ifdef PCRE_SUPPORT
 void npc_chat_finalize(struct npc_data* nd);