BUILDIN_FUNC(getguildstorageitem){ struct script_data *data; struct item_data * item_data; struct item item_tmp; int x, amount; TBL_PC * sd; struct guild_storage *gstor; data= script_getdata(st,2); amount = script_getnum(st,3); sd = ((script_hasdata(st,4)) ? map_nick2sd(script_getstr(st,4)) : script_rid2sd(st)); if(sd->guild == NULL) return -1; //player have no guild gstor = guild2storage(sd->guild->guild_id); item_data = script_data2nameid(st,data); if(item_data != NULL && sd != NULL){ if(amount <= 0 || (!itemdb_isstackable2(item_data) && amount > 10) || (itemdb_isstackable2(item_data) && amount > MAX_AMOUNT)) amount = 1; memset(&item_tmp,0,sizeof(item_tmp)); item_tmp.nameid = item_data->nameid; item_tmp.identify = 1; if(!itemdb_isstackable2(item_data) && amount > 1){ for(x = 0; x < amount; x++) guild_storage_additem(sd,gstor,&item_tmp,amount); }else { guild_storage_additem(sd,gstor,&item_tmp,amount); } storage_guild_storageclose(sd); gstorage->lock = 0; log_pick_pc(sd, LOG_TYPE_NPC, amount, &item_tmp); } return 0; }