Код:
В начало мода:
#define MAX_CASE 50 // Лимит на кейсы.

enum caseInfo
{
    Float:csX,
    Float:csY,
    Float:csZ,
    csMoney,
    csObject
}
new CaseInfo[MAX_CASE][caseInfo];
new TOTALCASE;

Ко всем командам:
CMD:putmoney(playerid, params[])
{
    if(gPlayerLogged[playerid] == 0) return true; // Проверка на авторизацию. (Может быть другая)
    if(PlayerInfo[playerid][pLevel] < 3) return SendClientMessage(playerid, -1, "Выкладывать деньги можно с 3-ого уровня."); // Можете убрать проверку на то,с какого уровня выкидывать деньги. (PlayerInfo[playerid][pLeve] меняем под себя)
    if(GetPVarInt(playerid, "PlayerCase") == 0) return SendClientMessage(playerid, -1, "У Вас нет чемодана для денег!"); // Проверка на чемодан. (Сделайте покупку в магазине или уберите проверку).
    if(TOTALCASE >= MAX_CASE) return SendClientMessage(playerid, -1, "Превышен лимит выбрасываемых кейсов."); // Проверка на лимт кейсов.
    if(GetPVarInt(playerid,"AntiFlood") > gettime()) return SendClientMessage(playerid, -1, "Нельзя так часто выкидывать деньги!"); // Антифлуд
    if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "Взять деньги находясь в машине - нельзя."); // Проверка на нахождение игрока в машине
    if(sscanf(params, "d", params[0])) return SendClientMessage(playerid, -1, "Используйте: /putmoney [сумма]");
    if(params[0] < 1 || params[0] > PlayerInfo[playerid][pMoney]) return SendClientMessage(playerid, -1,"У Вас недостаточно денег на руках."); // Проверка на деньги (PlayerInfo[playerid][pMoney] меняйте под себя).
    new i = TOTALCASE,string[128];
    TOTALCASE++;
    GetPlayerPos(playerid, CaseInfo[i][csX], CaseInfo[i][csY], CaseInfo[i][csZ]); // УЗнаём позицию
    CaseInfo[i][csObject] = CreateDynamicObject(1210, CaseInfo[i][csX], CaseInfo[i][csY]+1.0, CaseInfo[i][csZ]-0.87, 0.0, 0.0, 0.0, -1, -1, -1, 300.0), RemovePlayerAttachedObject(playerid, 4); // Создаём кейс
    RemovePlayerAttachedObject(playerid, 5); // Удаляем кейс из рук
    PlayerInfo[playerid][pMoney] -= params[0], CaseInfo[i][csMoney] = params[0]; // Снимаем деньги (PlayerInfo[playerid][pMoney] меняйте под себя)
    if(CaseInfo[i][csMoney] >= 100000) format(string, sizeof(string), "[A] Игрок %s[%d] только что положил чемодан с %d$", Player[playerid][pName], playerid, CaseInfo[i][csMoney]), ABroadCast(0xAAAAAAFF, string, 1); // Если игрок выкинул чемодан с боле чем 100.000$ то оповещаем администрацию. (ABroadCast у вас может быть другой).
    SetPVarInt(playerid,"AntiFlood",gettime() + 30), DeletePVar(playerid, "PlayerCase"); // Создаём антифлуд + удаляем значение что у нас есть чемодан.
    format(string,sizeof(string),"Вы положили чемодан с %d$", params[0]),SendClientMessage(playerid, -1, string);
    return true;
}

CMD:pickmoney(playerid, params[])
{
    if(gPlayerLogged[playerid] == 0) return true; // Проверка на авторизацию. (Может быть другая)
    if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "Положить деньги находясь в машине - нельзя."); // Проверка на нахождение игрока в машине
    new cas,string[128]; // Создаём переменные
    for(new i = 0; i <= TOTALCASE; i++) // Создаём цикл
    {
        if(IsPlayerInRangeOfPoint(playerid, 3.0, CaseInfo[i][csX], CaseInfo[i][csY], CaseInfo[i][csZ])) // Создаём проверку на нахождение рядом с кейсом
        { // Если кейсов рядом,то продолжаем.
            cas++,TOTALCASE--,SetPlayerAttachedObject(playerid, 5, 1210, 5, 0.272000,0.073000,-0.045000, 0.000000,-83.099998,0.000000),SetPVarInt(playerid, "PlayerCase", 1), DestroyDynamicObject(CaseInfo[i][csObject]); // Функции)
            format(string,sizeof(string),"Вы подобрали чемодан с %d$", CaseInfo[i][csMoney]),SendClientMessage(playerid, -1, string);
            if(CaseInfo[i][csMoney] >= 100000) format(string, sizeof(string), "[A] Игрок %s[%d] только что подобрал чемодан с %d$", PlayerInfo[playerid][pName], playerid, CaseInfo[i][csMoney]), ABroadCast(0xAAAAAAFF, string, 1); // Если игрок поднял чемодан с более чем 100.000$ то оповещаем администрацию. (Вместо ABroadCast может быть SendAdminMessage и т.д),а также вместо PlayerInfo[playerid][pName] ставим своё.
            PlayerInfo[playerid][pMoney] += CaseInfo[i][csMoney]; // ПРибавляем кол-во денег с кейса. PlayerInfo[playerid][pMoney] меняем под себя.
            CaseInfo[i][csX] = 0.0, CaseInfo[i][csY] = 0.0, CaseInfo[i][csZ] = 0.0; // Убираем найденный кейс.
            break;
        } // Если кейса рядом нет,то ничего не делаем
    }
    if(cas == 0) SendClientMessage(playerid, -1, "Рядом с вами нет чемодана!");
    return true;
}