summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshennetsind <shennetsind@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-08-14 08:05:57 +0000
committershennetsind <shennetsind@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-08-14 08:05:57 +0000
commit46e3a8ecf6c3582876e195a62add9a5ccf3dd62c (patch)
treeef326fa4e4ca883f56e52902989324e67f91446c
parent941f5e48a3847e968e57f1f3b0a56cd2ed097682 (diff)
downloadhercules-46e3a8ecf6c3582876e195a62add9a5ccf3dd62c.tar.gz
hercules-46e3a8ecf6c3582876e195a62add9a5ccf3dd62c.tar.bz2
hercules-46e3a8ecf6c3582876e195a62add9a5ccf3dd62c.tar.xz
hercules-46e3a8ecf6c3582876e195a62add9a5ccf3dd62c.zip
Added equipment max-level support as per manager Kenpachi request (required for upcoming renewal items).
- in renewal mode item_db's elv field now supports a optional elvmax separated by a colon, example: - 65:70 in the elv field means the item can only be worn by characters whose level is within 65~70 base level range. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16632 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r--src/map/itemdb.c4
-rw-r--r--src/map/itemdb.h3
-rw-r--r--src/map/pc.c9
3 files changed, 15 insertions, 1 deletions
diff --git a/src/map/itemdb.c b/src/map/itemdb.c
index 7c28641fc..3f9af41c0 100644
--- a/src/map/itemdb.c
+++ b/src/map/itemdb.c
@@ -1039,7 +1039,11 @@ static bool itemdb_parse_dbrow(char** str, const char* source, int line, int scr
}
id->wlv = cap_value(atoi(str[15]), REFINE_TYPE_ARMOR, REFINE_TYPE_MAX);
+#ifdef RENEWAL
+ itemdb_re_split_atoi(str[16],&id->elv,&id->elvmax);
+#else
id->elv = atoi(str[16]);
+#endif
id->flag.no_refine = atoi(str[17]) ? 0 : 1; //FIXME: verify this
id->look = atoi(str[18]);
diff --git a/src/map/itemdb.h b/src/map/itemdb.h
index d39966285..4d4b62818 100644
--- a/src/map/itemdb.h
+++ b/src/map/itemdb.h
@@ -105,7 +105,8 @@ struct item_data {
int wlv;
int view_id;
#ifdef RENEWAL
- int matk;//[RRInd] -- used in RE for matk
+ int matk;
+ int elvmax;/* maximum level for this item */
#endif
int delay;
diff --git a/src/map/pc.c b/src/map/pc.c
index 7683166b6..d1b4e752f 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -849,6 +849,10 @@ int pc_isequip(struct map_session_data *sd,int n)
return 0;
if(item->elv && sd->status.base_level < (unsigned int)item->elv)
return 0;
+#ifdef RENEWAL
+ if(item->elvmax && sd->status.base_level > (unsigned int)item->elvmax)
+ return 0;
+#endif
if(item->sex != 2 && sd->status.sex != item->sex)
return 0;
if(!map_flag_vs(sd->bl.m) && ((item->flag.no_equip&1) || !pc_isAllowedCardOn(sd,item->slot,n,1)))
@@ -4067,6 +4071,11 @@ int pc_isUseitem(struct map_session_data *sd,int n)
//Required level check
if(item->elv && sd->status.base_level < (unsigned int)item->elv)
return 0;
+
+#ifdef RENEWAL
+ if(item->elvmax && sd->status.base_level > (unsigned int)item->elvmax)
+ return 0;
+#endif
//Not equipable by class. [Skotlex]
if (!(