Implemented the permission "TRADE_UNCONDITIONAL" (#8182)
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
This commit is contained in:
parent
dd663c7eb4
commit
42bd87d9b7
@ -240,6 +240,7 @@ Body:
|
|||||||
bypass_stat_onclone: true
|
bypass_stat_onclone: true
|
||||||
bypass_max_stat: true
|
bypass_max_stat: true
|
||||||
macro_register: true
|
macro_register: true
|
||||||
|
trade_unconditional: true
|
||||||
#all_permission: true
|
#all_permission: true
|
||||||
|
|
||||||
Footer:
|
Footer:
|
||||||
|
@ -125,6 +125,12 @@ item delay, etc).
|
|||||||
|
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
|
*trade_unconditional
|
||||||
|
|
||||||
|
Allows player to ignore the trade conditions of items (drop, trade, sell, cart, storage/gstorage, mail and auction).
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
======================
|
======================
|
||||||
| 3. Command-related |
|
| 3. Command-related |
|
||||||
======================
|
======================
|
||||||
|
@ -1258,7 +1258,7 @@ bool pc_can_sell_item(map_session_data *sd, struct item *item, enum npc_subtype
|
|||||||
*/
|
*/
|
||||||
bool pc_can_give_items(map_session_data *sd)
|
bool pc_can_give_items(map_session_data *sd)
|
||||||
{
|
{
|
||||||
return pc_has_permission(sd, PC_PERM_TRADE);
|
return (pc_has_permission(sd, PC_PERM_TRADE) || pc_has_permission(sd, PC_PERM_TRADE_UNCONDITIONAL));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1266,7 +1266,7 @@ bool pc_can_give_items(map_session_data *sd)
|
|||||||
*/
|
*/
|
||||||
bool pc_can_give_bounded_items(map_session_data *sd)
|
bool pc_can_give_bounded_items(map_session_data *sd)
|
||||||
{
|
{
|
||||||
return pc_has_permission(sd, PC_PERM_TRADE_BOUNDED);
|
return (pc_has_permission(sd, PC_PERM_TRADE_BOUNDED) || pc_has_permission(sd, PC_PERM_TRADE_UNCONDITIONAL));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -11156,9 +11156,15 @@ void pc_setmadogear(map_session_data *sd, bool flag, e_mado_type type)
|
|||||||
*------------------------------------------*/
|
*------------------------------------------*/
|
||||||
bool pc_candrop(map_session_data *sd, struct item *item)
|
bool pc_candrop(map_session_data *sd, struct item *item)
|
||||||
{
|
{
|
||||||
if( item && ((item->expire_time || (item->bound && !pc_can_give_bounded_items(sd))) || (itemdb_ishatched_egg(item))) )
|
if (sd->sc.cant.drop)
|
||||||
return false;
|
return false;
|
||||||
if( !pc_can_give_items(sd) || sd->sc.cant.drop) //check if this GM level can drop items
|
if( item && itemdb_ishatched_egg(item) )
|
||||||
|
return false;
|
||||||
|
if (pc_has_permission(sd, PC_PERM_TRADE_UNCONDITIONAL)) // no restriction
|
||||||
|
return true;
|
||||||
|
if( !pc_can_give_items(sd) )
|
||||||
|
return false;
|
||||||
|
if( item && (item->expire_time || (item->bound && !pc_can_give_bounded_items(sd))) )
|
||||||
return false;
|
return false;
|
||||||
return (itemdb_isdropable(item, pc_get_group_level(sd)));
|
return (itemdb_isdropable(item, pc_get_group_level(sd)));
|
||||||
}
|
}
|
||||||
|
@ -50,6 +50,7 @@ enum e_pc_permission : uint32 {
|
|||||||
PC_PERM_ATTENDANCE,
|
PC_PERM_ATTENDANCE,
|
||||||
PC_PERM_MACRO_DETECT,
|
PC_PERM_MACRO_DETECT,
|
||||||
PC_PERM_MACRO_REGISTER,
|
PC_PERM_MACRO_REGISTER,
|
||||||
|
PC_PERM_TRADE_UNCONDITIONAL,
|
||||||
//.. add other here
|
//.. add other here
|
||||||
PC_PERM_MAX,
|
PC_PERM_MAX,
|
||||||
};
|
};
|
||||||
@ -88,6 +89,7 @@ static const struct s_pcg_permission_name {
|
|||||||
{ "attendance",PC_PERM_ATTENDANCE },
|
{ "attendance",PC_PERM_ATTENDANCE },
|
||||||
{ "macro_detect",PC_PERM_MACRO_DETECT },
|
{ "macro_detect",PC_PERM_MACRO_DETECT },
|
||||||
{ "macro_register",PC_PERM_MACRO_REGISTER },
|
{ "macro_register",PC_PERM_MACRO_REGISTER },
|
||||||
|
{ "trade_unconditional",PC_PERM_TRADE_UNCONDITIONAL },
|
||||||
};
|
};
|
||||||
|
|
||||||
struct s_player_group{
|
struct s_player_group{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user