Implemented 'Broadcast Obtain Special Item'

* Added flag &16 to add manually special item that will be broadcasted if: Dropped by monster -> player pick it up. Added items with this flag:
  * Gold_Key77 (7782)
  * Silver_Key77 (7783)
* Be used also to broadcast item in package/group with flag 'isAnnounced', replaced intif_broadcast().
* The message is using msgstringtable.txt on client side, make sure your translation is not messy.
* Credits:
  * fcba8a2161
  * 2761bb0af9

* Misc updates: Fixed job and class for items:
  * Sealed_Gloom_Under_Night_Gachapon (14696)
  * Sealed_General_Egnigem_Cenia_Scroll (14739)
  * Sealed_Vesper_Scroll (14740)
  * Midgard_Celebration_Lucky_Egg (14741)
  * Hero_Midgard_Egg (14753)
  * Safe_To_Smelting_Scroll (14758)
  * Limited_Edition_JOB_Battle_Manual (14765)
  * Rise_Midgard_Lucky_Egg (17494)
  * Lucky_Silvervine_Fruit_Box_III10 (17495)
  * Lucky_Silvervine_Fruit_Box_III110 (17496)
  * Epic_Heroes_Scroll (17519)
  * Majestic_Lucky_Egg (17526)

Signed-off-by: Cydh Ramdh <cydh@pservero.com>
This commit is contained in:
Cydh Ramdh
2015-08-12 00:43:04 +07:00
parent f37a0f5281
commit c0e4b06005
25 changed files with 368 additions and 121 deletions

View File

@@ -45,7 +45,7 @@ unsigned int party_share_level = 10;
// recv. packet list
int inter_recv_packet_length[] = {
-1,-1, 7,-1, -1,13,36, (2+4+4+4+1+NAME_LENGTH), 0, 0, 0, 0, 0, 0, 0, 0, // 3000-
-1,-1, 7,-1, -1,13,36, (2+4+4+4+1+NAME_LENGTH), 0,-1, 0, 0, 0, 0, 0, 0, // 3000-
6,-1, 0, 0, 0, 0, 0, 0, 10,-1, 0, 0, 0, 0, 0, 0, // 3010-
-1,10,-1,14, 14,19, 6,-1, 14,14, 6, 0, 0, 0, 0, 0, // 3020- Party
-1, 6,-1,-1, 55,19, 6,-1, 14,-1,-1,-1, 18,19,186,-1, // 3030-
@@ -908,6 +908,23 @@ int mapif_parse_broadcast(int fd)
return 0;
}
/**
* Parse received item broadcast and sends it to all connected map-serves
* ZI 3009 <cmd>.W <len>.W <nameid>.W <source>.W <type>.B <name>.24B <srcname>.24B
* IZ 3809 <cmd>.W <len>.W <nameid>.W <source>.W <type>.B <name>.24B <srcname>.24B
* @param fd
* @return
**/
int mapif_parse_broadcast_item(int fd) {
unsigned char buf[9 + NAME_LENGTH*2];
memcpy(WBUFP(buf, 0), RFIFOP(fd, 0), RFIFOW(fd,2));
WBUFW(buf, 0) = 0x3809;
chmapif_sendallwos(fd, buf, RFIFOW(fd,2));
return 0;
}
// Wisp/page request to send
int mapif_parse_WisRequest(int fd)
@@ -1154,6 +1171,7 @@ int inter_parse_frommap(int fd)
case 0x3006: mapif_parse_NameChangeRequest(fd); break;
case 0x3007: mapif_parse_accinfo(fd); break;
/* 0x3008 is used by the report stuff */
case 0x3009: mapif_parse_broadcast_item(fd); break;
default:
if( inter_party_parse_frommap(fd)
|| inter_guild_parse_frommap(fd)