|
@@ -1322,37 +1322,40 @@ ACMD_FUNC(item2)
|
|
if (item_id > 500) {
|
|
if (item_id > 500) {
|
|
int loop, get_count, i;
|
|
int loop, get_count, i;
|
|
char flag = 0;
|
|
char flag = 0;
|
|
- loop = 1;
|
|
|
|
- get_count = number;
|
|
|
|
- if (item_data->type == IT_WEAPON || item_data->type == IT_ARMOR ||
|
|
|
|
- item_data->type == IT_PETEGG || item_data->type == IT_PETARMOR) {
|
|
|
|
|
|
+
|
|
|
|
+ //Check if it's stackable.
|
|
|
|
+ if(!itemdb_isstackable2(item_data)){
|
|
loop = number;
|
|
loop = number;
|
|
get_count = 1;
|
|
get_count = 1;
|
|
- if (item_data->type == IT_PETEGG) {
|
|
|
|
- identify = 1;
|
|
|
|
- refine = 0;
|
|
|
|
- }
|
|
|
|
- if (item_data->type == IT_PETARMOR)
|
|
|
|
- refine = 0;
|
|
|
|
- if (refine > MAX_REFINE)
|
|
|
|
- refine = MAX_REFINE;
|
|
|
|
- } else {
|
|
|
|
|
|
+ }else{
|
|
|
|
+ loop = 1;
|
|
|
|
+ get_count = number;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if( itemdb_isequip2(item_data ) ){
|
|
|
|
+ refine = cap_value( refine, 0, MAX_REFINE );
|
|
|
|
+ }else{
|
|
|
|
+ // All other items cannot be refined and are always identified
|
|
identify = 1;
|
|
identify = 1;
|
|
refine = attr = 0;
|
|
refine = attr = 0;
|
|
}
|
|
}
|
|
|
|
+
|
|
for (i = 0; i < loop; i++) {
|
|
for (i = 0; i < loop; i++) {
|
|
- memset(&item_tmp, 0, sizeof(item_tmp));
|
|
|
|
- item_tmp.nameid = item_id;
|
|
|
|
- item_tmp.identify = identify;
|
|
|
|
- item_tmp.refine = refine;
|
|
|
|
- item_tmp.attribute = attr;
|
|
|
|
- item_tmp.card[0] = c1;
|
|
|
|
- item_tmp.card[1] = c2;
|
|
|
|
- item_tmp.card[2] = c3;
|
|
|
|
- item_tmp.card[3] = c4;
|
|
|
|
- item_tmp.bound = bound;
|
|
|
|
- if ((flag = pc_additem(sd, &item_tmp, get_count, LOG_TYPE_COMMAND)))
|
|
|
|
- clif_additem(sd, 0, 0, flag);
|
|
|
|
|
|
+ // if not pet egg
|
|
|
|
+ if (!pet_create_egg(sd, item_id)) {
|
|
|
|
+ memset(&item_tmp, 0, sizeof(item_tmp));
|
|
|
|
+ item_tmp.nameid = item_id;
|
|
|
|
+ item_tmp.identify = identify;
|
|
|
|
+ item_tmp.refine = refine;
|
|
|
|
+ item_tmp.attribute = attr;
|
|
|
|
+ item_tmp.card[0] = c1;
|
|
|
|
+ item_tmp.card[1] = c2;
|
|
|
|
+ item_tmp.card[2] = c3;
|
|
|
|
+ item_tmp.card[3] = c4;
|
|
|
|
+ item_tmp.bound = bound;
|
|
|
|
+ if ((flag = pc_additem(sd, &item_tmp, get_count, LOG_TYPE_COMMAND)))
|
|
|
|
+ clif_additem(sd, 0, 0, flag);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
if (flag == 0)
|
|
if (flag == 0)
|