Код:
В начало мода: #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; }