diff options
author | Andrei Karas <akaras@inbox.ru> | 2018-03-08 00:13:58 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2018-03-08 00:13:58 +0300 |
commit | c3262df069c597bd3c56e167cadc077c077d0096 (patch) | |
tree | a9e1cee57703634384b543bd0bf6531e364391ce | |
parent | 60bc3c265d6633a6f8e98160184d97d362c89a96 (diff) | |
download | evol-hercules-c3262df069c597bd3c56e167cadc077c077d0096.tar.gz evol-hercules-c3262df069c597bd3c56e167cadc077c077d0096.tar.bz2 evol-hercules-c3262df069c597bd3c56e167cadc077c077d0096.tar.xz evol-hercules-c3262df069c597bd3c56e167cadc077c077d0096.zip |
Add support for identified attribute in item_db.conf.s20180313
This attribute set on dropped equipment by mobs.
Default value true.
-rw-r--r-- | src/emap/data/itemd.c | 1 | ||||
-rw-r--r-- | src/emap/init.c | 2 | ||||
-rw-r--r-- | src/emap/itemdb.c | 24 | ||||
-rw-r--r-- | src/emap/itemdb.h | 4 | ||||
-rw-r--r-- | src/emap/struct/itemdext.h | 1 |
5 files changed, 32 insertions, 0 deletions
diff --git a/src/emap/data/itemd.c b/src/emap/data/itemd.c index 146557e..a97903c 100644 --- a/src/emap/data/itemd.c +++ b/src/emap/data/itemd.c @@ -49,6 +49,7 @@ struct ItemdExt *itemd_create(void) return NULL; data->floorLifeTime = battle->bc->flooritem_lifetime; data->allowPickup = true; + data->identified = true; data->requiredStr = 0; data->requiredAgi = 0; data->requiredVit = 0; diff --git a/src/emap/init.c b/src/emap/init.c index ecd0de9..fefbc6c 100644 --- a/src/emap/init.c +++ b/src/emap/init.c @@ -347,6 +347,8 @@ HPExport void plugin_init (void) clif->pWalkToXY = eclif_parse_WalkToXY; clif->pNpcStringInput = eclif_parse_NpcStringInput; pc->jobchange = epc_jobchange; + itemdb->isidentified = eitemdb_isidentified; + itemdb->isidentified2 = eitemdb_isidentified2; langScriptId = script->add_str("Lang"); mountScriptId = script->add_str("mount"); diff --git a/src/emap/itemdb.c b/src/emap/itemdb.c index eefb4b1..d9ff7d8 100644 --- a/src/emap/itemdb.c +++ b/src/emap/itemdb.c @@ -12,6 +12,7 @@ #include "common/db.h" #include "common/memmgr.h" #include "common/mmo.h" +#include "common/nullpo.h" #include "common/socket.h" #include "common/strlib.h" #include "map/itemdb.h" @@ -93,6 +94,8 @@ void eitemdb_readdb_additional_fields_pre(int *itemid, data->requiredSkill = i32; if (libconfig->setting_lookup_bool(it, "Charm", &i32) && i32 >= 0) data->charmItem = i32 ? true : false; + if (libconfig->setting_lookup_bool(it, "Identified", &i32) && i32 >= 0) + data->identified = i32 ? true : false; if ((t = libconfig->setting_get_member(it, "MaxFloorOffset"))) { if (config_setting_is_aggregate(t)) @@ -213,3 +216,24 @@ void edestroy_item_data_pre(struct item_data **selfPtr, VECTOR_CLEAR(data->allowedCards); VECTOR_CLEAR(data->allowedAmmo); } + +int eitemdb_isidentified(int nameid) +{ + struct item_data *item = itemdb->exists(nameid); + nullpo_ret(item); + + struct ItemdExt *data = itemd_get(item); + if (!data) + return 0; + return data->identified; +} + +int eitemdb_isidentified2(struct item_data *item) +{ + nullpo_ret(item); + + struct ItemdExt *data = itemd_get(item); + if (!data) + return 0; + return data->identified; +} diff --git a/src/emap/itemdb.h b/src/emap/itemdb.h index 02fbb45..ce6279a 100644 --- a/src/emap/itemdb.h +++ b/src/emap/itemdb.h @@ -12,4 +12,8 @@ void eitemdb_readdb_additional_fields_pre(int *itemid, void edestroy_item_data_pre(struct item_data **selfPtr, int *free_selfPtr); +int eitemdb_isidentified(int nameid); + +int eitemdb_isidentified2(struct item_data *item); + #endif // EVOL_MAP_ITEMDB diff --git a/src/emap/struct/itemdext.h b/src/emap/struct/itemdext.h index 65f0729..ccc4773 100644 --- a/src/emap/struct/itemdext.h +++ b/src/emap/struct/itemdext.h @@ -48,6 +48,7 @@ struct ItemdExt int16_t subY; bool allowPickup; bool charmItem; + bool identified; }; #endif // EVOL_MAP_ITEMDEXT |