- Регистрация
- 1 Фев 2014
- Сообщения
- 1,364
- Лучшие ответы
- 4
- Репутация
- 158
Всем привет. Сегодня мне понадобилась система выбрасывания денег,которой в паблике я не нашёл (без багов).
Поэтому я решил её сделать себе и Вам.
Что используется здесь для создания этой системы?:
- SSCANF
- ZCMD/DC_CMD
Ну что-же,приступим.
В начало мода:
Ко всем командам:
Система без сохранения.
Если есть какие-то ошибки то пишите. Возможно что то забыл вставить.
Вот такой вот лёгкий урок) Если хотите какую-либо систему то пишите мне и я постараюсь её сделать в паблик.
Поэтому я решил её сделать себе и Вам.
Что используется здесь для создания этой системы?:
- SSCANF
- ZCMD/DC_CMD
Ну что-же,приступим.
В начало мода:
PHP:
#define MAX_CASE 50 // Лимит на кейсы.
enum caseInfo
{
Float:csX,
Float:csY,
Float:csZ,
csMoney,
csObject
}
new CaseInfo[MAX_CASE][caseInfo];
new TOTALCASE;
PHP:
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;
}
Если есть какие-то ошибки то пишите. Возможно что то забыл вставить.
Вот такой вот лёгкий урок) Если хотите какую-либо систему то пишите мне и я постараюсь её сделать в паблик.