|
@@ -922,8 +922,11 @@ int pc_isequip(struct map_session_data *sd,int n)
|
|
*------------------------------------------*/
|
|
*------------------------------------------*/
|
|
bool pc_authok(struct map_session_data *sd, int login_id2, time_t expiration_time, int group_id, struct mmo_charstatus *st, bool changing_mapservers)
|
|
bool pc_authok(struct map_session_data *sd, int login_id2, time_t expiration_time, int group_id, struct mmo_charstatus *st, bool changing_mapservers)
|
|
{
|
|
{
|
|
- int i, j;
|
|
|
|
|
|
+ int i;
|
|
|
|
+#ifdef BOUND_ITEMS
|
|
|
|
+ int j;
|
|
int idxlist[MAX_INVENTORY];
|
|
int idxlist[MAX_INVENTORY];
|
|
|
|
+#endif
|
|
unsigned long tick = gettick();
|
|
unsigned long tick = gettick();
|
|
uint32 ip = session[sd->fd]->client_addr;
|
|
uint32 ip = session[sd->fd]->client_addr;
|
|
|
|
|
|
@@ -1100,11 +1103,13 @@ bool pc_authok(struct map_session_data *sd, int login_id2, time_t expiration_tim
|
|
**/
|
|
**/
|
|
pc_itemcd_do(sd,true);
|
|
pc_itemcd_do(sd,true);
|
|
|
|
|
|
|
|
+#ifdef BOUND_ITEMS
|
|
// Party bound item check
|
|
// Party bound item check
|
|
if(sd->status.party_id == 0 && (j = pc_bound_chk(sd,3,idxlist))) { // Party was deleted while character offline
|
|
if(sd->status.party_id == 0 && (j = pc_bound_chk(sd,3,idxlist))) { // Party was deleted while character offline
|
|
for(i=0;i<j;i++)
|
|
for(i=0;i<j;i++)
|
|
pc_delitem(sd,idxlist[i],sd->status.inventory[idxlist[i]].amount,0,1,LOG_TYPE_OTHER);
|
|
pc_delitem(sd,idxlist[i],sd->status.inventory[idxlist[i]].amount,0,1,LOG_TYPE_OTHER);
|
|
}
|
|
}
|
|
|
|
+#endif
|
|
|
|
|
|
// Request all registries (auth is considered completed whence they arrive)
|
|
// Request all registries (auth is considered completed whence they arrive)
|
|
intif_request_registry(sd,7);
|
|
intif_request_registry(sd,7);
|
|
@@ -4436,7 +4441,7 @@ int pc_cart_additem(struct map_session_data *sd,struct item *item_data,int amoun
|
|
return 1;
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
|
|
- if( !itemdb_cancartstore(item_data, pc_get_group_level(sd)) || ((item_data->bound == 2 || item_data->bound == 3) && !pc_can_give_bounded_items(sd)))
|
|
|
|
|
|
+ if( !itemdb_cancartstore(item_data, pc_get_group_level(sd)) || (item_data->bound > 1 && !pc_can_give_bounded_items(sd)))
|
|
{ // Check item trade restrictions [Skotlex]
|
|
{ // Check item trade restrictions [Skotlex]
|
|
clif_displaymessage (sd->fd, msg_txt(sd,264));
|
|
clif_displaymessage (sd->fd, msg_txt(sd,264));
|
|
return 1;
|
|
return 1;
|
|
@@ -4590,6 +4595,7 @@ int pc_getitemfromcart(struct map_session_data *sd,int idx,int amount)
|
|
* 1 Account Bound
|
|
* 1 Account Bound
|
|
* 2 Guild Bound
|
|
* 2 Guild Bound
|
|
* 3 Party Bound
|
|
* 3 Party Bound
|
|
|
|
+ * 4 Character Bound
|
|
*------------------------------------------*/
|
|
*------------------------------------------*/
|
|
int pc_bound_chk(TBL_PC *sd,int type,int *idxlist)
|
|
int pc_bound_chk(TBL_PC *sd,int type,int *idxlist)
|
|
{
|
|
{
|