/** * Attempt to add an item in guild storage from cart, then refresh it * @param sd : player * @param index : index of item in cart * @param amount : number of item to transfer */ void storage_guild_storageaddfromcart(struct map_session_data* sd, int index, int amount) { struct s_storage *stor; nullpo_retv(sd); nullpo_retv(stor = guild2storage2(sd->status.guild_id)); if( !stor->status || stor->amount > MAX_GUILD_STORAGE ) return; if( index < 0 || index >= MAX_CART ) return; if( sd->cart.u.items_cart[index].nameid == 0 ) return; if( amount < 1 || amount > sd->cart.u.items_cart[index].amount ) return; if(storage_guild_additem(sd,stor,&sd->cart.u.items_cart[index],amount)) pc_cart_delitem(sd,index,amount,0,LOG_TYPE_GSTORAGE); else { clif_storageitemremoved(sd,index,0); clif_dropitem(sd,index,0); } }
/** * Attempt to add an item in guild storage from inventory, then refresh it * @param sd : player * @param amount : number of item to delete */ void storage_guild_storageadd(struct map_session_data* sd, int index, int amount) { struct s_storage *stor; nullpo_retv(sd); nullpo_retv(stor = guild2storage2(sd->status.guild_id)); if( !stor->status || stor->amount > MAX_GUILD_STORAGE ) return; if( index < 0 || index >= MAX_INVENTORY ) return; if( sd->inventory.u.items_inventory[index].nameid == 0 ) return; if( amount < 1 || amount > sd->inventory.u.items_inventory[index].amount ) return; if( stor->lock ) { storage_guild_storageclose(sd); return; } if(storage_guild_additem(sd,stor,&sd->inventory.u.items_inventory[index],amount)) pc_delitem(sd,index,amount,0,4,LOG_TYPE_GSTORAGE); else { clif_storageitemremoved(sd,index,0); clif_dropitem(sd,index,0); } }
/*========================================== * ギルド倉庫へカートから入れる *------------------------------------------ */ void storage_guild_storageaddfromcart(struct map_session_data *sd, int idx, int amount) { struct guild_storage *stor; nullpo_retv(sd); if((stor = (struct guild_storage *)numdb_search(guild_storage_db,sd->status.guild_id)) == NULL) return; if(!stor->storage_status) return; if(idx < 0 || idx >= MAX_CART) return; if(itemdb_isguildstorageable(sd->status.cart[idx].nameid) == 0) return; if(amount < 1 || amount > sd->status.cart[idx].amount) return; if(storage_guild_additem(sd, stor, &sd->status.cart[idx], amount) == 0) pc_cart_delitem(sd, idx, amount, 0); return; }