People are able to dupe money on all script-sets at banks while dropping a money bag and using the bank the same time.
The issue on that is that they use macro software so that stuff happens in milliseconds and it's impossible to prevent.
So I decided to release my own patch.
It basically forbids people to drop money bags near a bank.
Go to module_scripts.py and look for (eq, ":event_type", client_event_drop_money_bag),
Make sure it looks like this:
If you do that, the bug is fixed. If you use this scripts to fix the bug include me in your credits.
The issue on that is that they use macro software so that stuff happens in milliseconds and it's impossible to prevent.
So I decided to release my own patch.
It basically forbids people to drop money bags near a bank.
Go to module_scripts.py and look for (eq, ":event_type", client_event_drop_money_bag),
Make sure it looks like this:
Code:
(else_try), # client requesting to drop a money bag
(eq, ":event_type", client_event_drop_money_bag),
(try_begin),
(neq, "$g_game_type", "mt_no_money"),
(store_script_param, ":gold_amount", 3),
(try_begin), # for positive amounts, drop a money bag
(gt, ":gold_amount", 0),
(player_get_agent_id, ":player_agent_id", ":sender_player_id"),
(agent_get_position, pos20, ":player_agent_id"),
(position_set_z, pos20, 0),
(assign, ":too_near", 0),
(try_for_prop_instances, ":cur_bank", "spr_pw_item_chest_invisible"),
(prop_instance_get_position, pos21, ":cur_bank"),
(position_set_z, pos21, 0),
(get_distance_between_positions_in_meters, ":cur_distance", pos20, pos21),
(try_begin),
(le, ":cur_distance", 8),
(assign, ":too_near", 1),
(try_end),
(try_end),
(try_begin),
(eq, ":too_near", 1),
(str_store_string, s58, "@You are too near of a bank!"),
(multiplayer_send_string_to_player, ":sender_player_id", server_event_local_chat, s58),
(else_try),
(call_script, "script_cf_drop_money_bag_item", ":sender_player_id", ":gold_amount"),
(try_end),
(else_try), # for negative amounts, check the admin has permission then spawn them the absolute money amount
(lt, ":gold_amount", 0),
(player_is_admin, ":sender_player_id"),
(player_slot_eq, ":sender_player_id", slot_player_admin_no_gold, 0),
(val_mul, ":gold_amount", -1),
(call_script, "script_player_adjust_gold", ":sender_player_id", ":gold_amount", 1),
(assign, reg0, ":gold_amount"),
(str_store_string, s3, "str_log_admin_cheat_money"),
(str_store_player_username, s0, ":sender_player_id"),
(player_get_unique_id, reg0, ":sender_player_id"),
(server_add_message_to_log, "str_log_admin_target_self"),
(try_end),
(try_end),
(else_try), # requesting a spawn point or switching spectator status
If you do that, the bug is fixed. If you use this scripts to fix the bug include me in your credits.