Updated Item Group features (#2692)

* Added config to hide last chars of player's name `broadcast_hide_name` and its default value is 2.
* Fixed `getgroupitem` that should give unidentified item for equipment types.
* Added optional param for `getgroupitem` and `getrandgroupitem` to always give player identified item, ignores the `itemdb_isidentified`'s check.
* Thanks to @aleos89 @Lemongrass3110
This commit is contained in:
Cydh Ramdh
2018-01-02 12:55:52 +07:00
committed by GitHub
parent fb966a12e0
commit 32950ecead
8 changed files with 44 additions and 19 deletions

View File

@@ -19521,7 +19521,7 @@ void clif_parse_merge_item_cancel(int fd, struct map_session_data* sd) {
/**
* 07fd <size>.W <type>.B <itemid>.W <charname_len>.B <charname>.24B <source_len>.B <containerid>.W (ZC_BROADCASTING_SPECIAL_ITEM_OBTAIN)
* 07fd <size>.W <type>.B <itemid>.W <charname_len>.B <charname>.24B <source_len>.B <srcname>.24B (ZC_BROADCASTING_SPECIAL_ITEM_OBTAIN)
* type: ITEMOBTAIN_TYPE_BOXITEM & ITEMOBTAIN_TYPE_MONSTER_ITEM "[playername] ... [surcename] ... [itemname]" -> MsgStringTable[1629]
* type: ITEMOBTAIN_TYPE_BOXITEM & ITEMOBTAIN_TYPE_MONSTER_ITEM "[playername] ... [sourcename] ... [itemname]" -> MsgStringTable[1629]
* type: ITEMOBTAIN_TYPE_NPC "[playername] ... [itemname]" -> MsgStringTable[1870]
**/
void clif_broadcast_obtain_special_item(const char *char_name, unsigned short nameid, unsigned short container, enum BROADCASTING_SPECIAL_ITEM_OBTAIN type, const char *srcname) {
@@ -19539,7 +19539,15 @@ void clif_broadcast_obtain_special_item(const char *char_name, unsigned short na
WBUFB(buf, 4) = type;
WBUFW(buf, 5) = nameid;
WBUFB(buf, 7) = NAME_LENGTH;
safestrncpy(WBUFCP(buf, 8), char_name, NAME_LENGTH);
if (battle_config.broadcast_hide_name) {
std::string dispname = std::string(char_name);
int hide = min(battle_config.broadcast_hide_name, dispname.length() - 1);
dispname.replace(dispname.length() - hide, hide, hide, '*');
safestrncpy(WBUFCP(buf, 8), dispname.c_str(), NAME_LENGTH);
}
else
safestrncpy(WBUFCP(buf, 8), char_name, NAME_LENGTH);
switch (type) {
case ITEMOBTAIN_TYPE_BOXITEM: