Dima_Tushin
Компетентный
Здравствуйте пользователи Pawno-Info хочу поделиться с вами системой инвестиции v 0.2
Начнем.
к pInfo
переходим к диалогам
Загрузка аккаунта и можно добавить еще одну проверку на PayDay чтобы не перезаходить в игру и показать игроку что инвестиция закончена
ко всем переменным
OnGameModeInit
Если у вас есть переменная которая отвечает за чекпоинты не создовайте переменную
public OnPlayerEnterCheckpoint(playerid)
Вход/Выход из банка у меня стандарный банк как RLS модах
и в сохранении аккаунта не забудьте добавить переменные у каждого по разному сохранение у меня на MYSQL
Версия системы: 0.2v
Автор: Dima_Tushin
Система будет обновляться,улучшаться.
Информация об инвестиции была взята с wiki педии
Копирование на сторонних порталах без разрешения автора запрещено!
Начнем.
к pInfo
PHP:
pInvest,//Проверка на инвестирования
pInvestTime,//Таймер инвестирования
pInvestBank,//Сумма инвестирования
pInvestProcent,//Процент инвестирования
PHP:
case 68:
{
if(response)
{
switch(listitem)
{
case 0: ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_MSGBOX, "Информация о инвестиции", invest, "Готово", "");
case 1: ShowPlayerDialog(playerid, 69, DIALOG_STYLE_LIST, "Инвестировать", "[0] сутки\n[1] 7 дней\n[2] 14 дней\n[3] 21 день\n[4] 28 дней", "Далее", "Отмена");
case 2:
{
if(PlayerInfo[playerid][pInvest] == 0)
return SendClientMessage(playerid, COLOR_WHITE, "[Ошибка]: Вы не инвестировали деньги!");
if(gettime() <= PlayerInfo[playerid][pInvestTime])
{
format(string, sizeof(string), "Дата завершения депозита: %s", date("%dd.%mm.%yyyy %hh:%ii:%ss", PlayerInfo[playerid][pInvestTime]));
ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_MSGBOX, "Уведомление", string, "Готово", "");
return 1;
}
else
{
PlayerInfo[playerid][pMoney] += PlayerInfo[playerid][pInvestProcent]+PlayerInfo[playerid][pInvestBank];
static const banks[] = "Вы получили прибыль в размере: %d вирт. Общий заработок составил: %d";
static strings[sizeof(banks) + (-2 + 50)];
format(strings, sizeof(strings), banks, PlayerInfo[playerid][pInvestProcent], PlayerInfo[playerid][pInvestProcent]+PlayerInfo[playerid][pInvestBank]);
SendClientMessage(playerid, COLOR_WHITE, strings);
PlayerInfo[playerid][pInvest] = 0;
PlayerInfo[playerid][pInvestTime] = 0;
PlayerInfo[playerid][pInvestBank] = 0;
PlayerInfo[playerid][pInvestProcent] = 0;
SaveAccount(playerid);
}
}
}
}
}
case 69:
{
if(response)
{
switch(listitem)
{
case 0: ShowPlayerDialog(playerid, 70, DIALOG_STYLE_INPUT, "Инвестирование", "Введите сумму инвестирования", "Готово", "Назад");//сутки
case 1: ShowPlayerDialog(playerid, 71, DIALOG_STYLE_INPUT, "Инвестирование", "Введите сумму инвестирования", "Готово", "Назад");//7 дней
case 2: ShowPlayerDialog(playerid, 72, DIALOG_STYLE_INPUT, "Инвестирование", "Введите сумму инвестирования", "Готово", "Назад");//14 дней
case 3: ShowPlayerDialog(playerid, 73, DIALOG_STYLE_INPUT, "Инвестирование", "Введите сумму инвестирования", "Готово", "Назад");//21 дней
case 4: ShowPlayerDialog(playerid, 74, DIALOG_STYLE_INPUT, "Инвестирование", "Введите сумму инвестирования", "Готово", "Назад");//28 дней
}
}
else
{
ShowPlayerDialog(playerid, 68, DIALOG_STYLE_LIST, "Меню инвестиций", "[0] Информация о инвестициях\n[1] Инвестировать\n[2] Получить прибыль", "Далее", "Отмена");
}
}
case 70:
{
if(response)
{
if(!strlen(inputtext))
return ShowPlayerDialog(playerid, 70, DIALOG_STYLE_INPUT, "Инвестирование", "Введите сумму инвестирования", "Готово", "Отмена");
new money = strval(inputtext);
if(!(1 <= money <= 10000000))
{
SendClientMessage(playerid, COLOR_WHITE, "Инвестировать сумму можно от 1 вирт(а) до 1.000.000");
ShowPlayerDialog(playerid, 70, DIALOG_STYLE_INPUT, "Инвестирование", "Введите сумму инвестирования", "Готово", "Отмена");
return 1;
}
if(PlayerInfo[playerid][pMoney] < money)
{
SendClientMessage(playerid, COLOR_WHITE, "[Ошибка]: У вас недостаточно денег!");
ShowPlayerDialog(playerid, 70, DIALOG_STYLE_INPUT, "Инвестирование", "Введите сумму инвестирования", "Готово", "Отмена");
return 1;
}
if(!( 3 <= PlayerInfo[playerid][pLevel] <= 15))//Игровой лвл указывайте сами от мин до макс
return SendClientMessage(playerid, COLOR_WHITE, "Инвестировать можно с 3 lvl");
if(PlayerInfo[playerid][pInvest] == 1)
return SendClientMessage(playerid, COLOR_WHITE, "Вы уже инвестировали свои деньги!");
PlayerInfo[playerid][pMoney] -= money;//Вычитаем деньги которые инвестировали
PlayerInfo[playerid][pInvestBank] += money;//Прибовляем деньги к инвестированию
PlayerInfo[playerid][pInvest] = 1;//переменная для инвестирования
PlayerInfo[playerid][pInvestTime] = gettime()+86400;//Время инвестирования сутки в секундах
PlayerInfo[playerid][pInvestProcent] = (PlayerInfo[playerid][pInvestBank] / 100) * 5;//сумма / 100 * 5 процентов
static const invests[] = "Вы инвестировали %d вирт на срок 1 день под 5%";
static strings[sizeof(invests) + ( -2 + 50)];
format(strings, sizeof(strings), invests, money);
SendClientMessage(playerid, COLOR_BLUE, strings);
SaveAccount(playerid);
}
else
{
ShowPlayerDialog(playerid, 69, DIALOG_STYLE_LIST, "Инвестировать", "[0] сутки\n[1] 7 дней\n[2] 14 дней\n[3] 21 день\n[4] 28 дней", "Далее", "Отмена");
}
}
case 71:
{
if(response)
{
if(!strlen(inputtext))
return ShowPlayerDialog(playerid, 71, DIALOG_STYLE_INPUT, "Инвестирование", "Введите сумму инвестирования", "Готово", "Отмена");
new money = strval(inputtext);
if(!(1 <= money <= 10000000))
{
SendClientMessage(playerid, COLOR_WHITE, "Инвестировать сумму можно от 1 вирт(а) до 1.000.000");
ShowPlayerDialog(playerid, 71, DIALOG_STYLE_INPUT, "Инвестирование", "Введите сумму инвестирования", "Готово", "Отмена");
return 1;
}
if(PlayerInfo[playerid][pMoney] < money)
{
SendClientMessage(playerid, COLOR_WHITE, "[Ошибка]: У вас недостаточно денег!");
ShowPlayerDialog(playerid, 71, DIALOG_STYLE_INPUT, "Инвестирование", "Введите сумму инвестирования", "Готово", "Отмена");
return 1;
}
if(!( 3 <= PlayerInfo[playerid][pLevel] <= 15))//Игровой лвл указывайте сами от мин до макс
return SendClientMessage(playerid, COLOR_WHITE, "Инвестировать можно с 3 lvl");
if(PlayerInfo[playerid][pInvest] == 1)
return SendClientMessage(playerid, COLOR_WHITE, "Вы уже инвестировали свои деньги!");
PlayerInfo[playerid][pMoney] -= money;//Вычитаем деньги которые инвестировали
PlayerInfo[playerid][pInvestBank] += money;//Прибовляем деньги к инвестированию
PlayerInfo[playerid][pInvest] = 1;//переменная для инвестирования
PlayerInfo[playerid][pInvestTime] = gettime()+604800;//Время инвестирования 7 дней в секундах
PlayerInfo[playerid][pInvestProcent] = (PlayerInfo[playerid][pInvestBank] / 100) * 10;//сумма / 100 * 10 процентов
static const invests[] = "Вы инвестировали %d вирт на срок 7 дней под 10%";
static strings[sizeof(invests) + ( -2 + 50)];
format(strings, sizeof(strings), invests, money);
SendClientMessage(playerid, COLOR_BLUE, strings);
SaveAccount(playerid);
}
else
{
ShowPlayerDialog(playerid, 69, DIALOG_STYLE_LIST, "Инвестировать", "[0] сутки\n[1] 7 дней\n[2] 14 дней\n[3] 21 день\n[4] 28 дней", "Далее", "Отмена");
}
}
case 72:
{
if(response)
{
if(!strlen(inputtext))
return ShowPlayerDialog(playerid, 72, DIALOG_STYLE_INPUT, "Инвестирование", "Введите сумму инвестирования", "Готово", "Отмена");
new money = strval(inputtext);
if(!(1 <= money <= 10000000))
{
SendClientMessage(playerid, COLOR_WHITE, "Инвестировать сумму можно от 1 вирт(а) до 1.000.000");
ShowPlayerDialog(playerid, 72, DIALOG_STYLE_INPUT, "Инвестирование", "Введите сумму инвестирования", "Готово", "Отмена");
return 1;
}
if(PlayerInfo[playerid][pMoney] < money)
{
SendClientMessage(playerid, COLOR_WHITE, "[Ошибка]: У вас недостаточно денег!");
ShowPlayerDialog(playerid, 72, DIALOG_STYLE_INPUT, "Инвестирование", "Введите сумму инвестирования", "Готово", "Отмена");
return 1;
}
if(!( 3 <= PlayerInfo[playerid][pLevel] <= 15))//Игровой лвл указывайте сами от мин до макс
return SendClientMessage(playerid, COLOR_WHITE, "Инвестировать можно с 3 lvl");
if(PlayerInfo[playerid][pInvest] == 1)
return SendClientMessage(playerid, COLOR_WHITE, "Вы уже инвестировали свои деньги!");
PlayerInfo[playerid][pMoney] -= money;//Вычитаем деньги которые инвестировали
PlayerInfo[playerid][pInvestBank] += money;//Прибовляем деньги к инвестированию
PlayerInfo[playerid][pInvest] = 1;//переменная для инвестирования
PlayerInfo[playerid][pInvestTime] = gettime()+1209600;//Время инвестирования 14 дней в секундах
PlayerInfo[playerid][pInvestProcent] = (PlayerInfo[playerid][pInvestBank] / 100) * 12;//сумма / 100 * 12 процентов
static const invests[] = "Вы инвестировали %d вирт на срок 14 дней под 12%";
static strings[sizeof(invests) + ( -2 + 50)];
format(strings, sizeof(strings), invests, money);
SendClientMessage(playerid, COLOR_BLUE, strings);
SaveAccount(playerid);
}
else
{
ShowPlayerDialog(playerid, 69, DIALOG_STYLE_LIST, "Инвестировать", "[0] сутки\n[1] 7 дней\n[2] 14 дней\n[3] 21 день\n[4] 28 дней", "Далее", "Отмена");
}
}
case 73:
{
if(response)
{
if(!strlen(inputtext))
return ShowPlayerDialog(playerid, 73, DIALOG_STYLE_INPUT, "Инвестирование", "Введите сумму инвестирования", "Готово", "Отмена");
new money = strval(inputtext);
if(!(1 <= money <= 10000000))
{
SendClientMessage(playerid, COLOR_WHITE, "Инвестировать сумму можно от 1 вирт(а) до 1.000.000");
ShowPlayerDialog(playerid, 73, DIALOG_STYLE_INPUT, "Инвестирование", "Введите сумму инвестирования", "Готово", "Отмена");
return 1;
}
if(PlayerInfo[playerid][pMoney] < money)
{
SendClientMessage(playerid, COLOR_WHITE, "[Ошибка]: У вас недостаточно денег!");
ShowPlayerDialog(playerid, 73, DIALOG_STYLE_INPUT, "Инвестирование", "Введите сумму инвестирования", "Готово", "Отмена");
return 1;
}
if(!( 3 <= PlayerInfo[playerid][pLevel] <= 15))//Игровой лвл указывайте сами от мин до макс
return SendClientMessage(playerid, COLOR_WHITE, "Инвестировать можно с 3 lvl");
if(PlayerInfo[playerid][pInvest] == 1)
return SendClientMessage(playerid, COLOR_WHITE, "Вы уже инвестировали свои деньги!");
PlayerInfo[playerid][pMoney] -= money;//Вычитаем деньги которые инвестировали
PlayerInfo[playerid][pInvestBank] += money;//Прибовляем деньги к инвестированию
PlayerInfo[playerid][pInvest] = 1;//переменная для инвестирования
PlayerInfo[playerid][pInvestTime] = gettime()+1814400;//Время инвестирования 21 день в секундах
PlayerInfo[playerid][pInvestProcent] = (PlayerInfo[playerid][pInvestBank] / 100) * 15;//сумма / 100 * 15 процентов
static const invests[] = "Вы инвестировали %d вирт на срок 21 день под 15%";
static strings[sizeof(invests) + ( -2 + 50)];
format(strings, sizeof(strings), invests, money);
SendClientMessage(playerid, COLOR_BLUE, strings);
SaveAccount(playerid);
}
else
{
ShowPlayerDialog(playerid, 69, DIALOG_STYLE_LIST, "Инвестировать", "[0] сутки\n[1] 7 дней\n[2] 14 дней\n[3] 21 день\n[4] 28 дней", "Далее", "Отмена");
}
}
case 74:
{
if(response)
{
if(!strlen(inputtext))
return ShowPlayerDialog(playerid, 74, DIALOG_STYLE_INPUT, "Инвестирование", "Введите сумму инвестирования", "Готово", "Отмена");
new money = strval(inputtext);
if(!(1 <= money <= 10000000))
{
SendClientMessage(playerid, COLOR_WHITE, "Инвестировать сумму можно от 1 вирт(а) до 1.000.000");
ShowPlayerDialog(playerid, 74, DIALOG_STYLE_INPUT, "Инвестирование", "Введите сумму инвестирования", "Готово", "Отмена");
return 1;
}
if(PlayerInfo[playerid][pMoney] < money)
{
SendClientMessage(playerid, COLOR_WHITE, "[Ошибка]: У вас недостаточно денег!");
ShowPlayerDialog(playerid, 74, DIALOG_STYLE_INPUT, "Инвестирование", "Введите сумму инвестирования", "Готово", "Отмена");
return 1;
}
if(!(3 <= PlayerInfo[playerid][pLevel] <= 15))//Игровой лвл указывайте сами от мин до макс
return SendClientMessage(playerid, COLOR_WHITE, "Инвестировать можно с 3 lvl");
if(PlayerInfo[playerid][pInvest] == 1)
return SendClientMessage(playerid, COLOR_WHITE, "Вы уже инвестировали свои деньги!");
PlayerInfo[playerid][pMoney] -= money;//Вычитаем деньги которые инвестировали
PlayerInfo[playerid][pInvestBank] += money;//Прибовляем деньги к инвестированию
PlayerInfo[playerid][pInvest] = 1;//переменная для инвестирования
PlayerInfo[playerid][pInvestTime] = gettime()+2419200;//Время инвестирования 28 дней в секундах
PlayerInfo[playerid][pInvestProcent] = (PlayerInfo[playerid][pInvestBank] / 100) * 20;//сумма / 100 * 20 процентов
static const invests[] = "Вы инвестировали %d вирт на срок 28 дней под 20%";
static strings[sizeof(invests) + ( -2 + 50)];
format(strings, sizeof(strings), invests, money);
SendClientMessage(playerid, COLOR_BLUE, strings);
SaveAccount(playerid);
}
else
{
ShowPlayerDialog(playerid, 69, DIALOG_STYLE_LIST, "Инвестировать", "[0] сутки\n[1] 7 дней\n[2] 14 дней\n[3] 21 день\n[4] 28 дней", "Далее", "Отмена");
}
}
PHP:
if(PlayerInfo[playerid][pInvestTime] > 1 && PlayerInfo[playerid][pInvest] == 1)
{
if(gettime() >= PlayerInfo[playerid][pInvestTime])
{
SendClientMessage(playerid, COLOR_WHITE, "Ваша инвестирование завершено! Пройдите в банк для получения прибыли!");
}
}
PHP:
new invest[] =
"- Инвестиции (англ. Investment) — размещение капитала с целью получения прибыли\n"\
"- Инвестиции являются неотъемлемой частью современной экономики.\n"\
"- От кредитов инвестиции отличаются степенью риска для инвестора\n",
invest_1[] =
"- (кредитора) — кредит и проценты необходимо возвращать в оговорённые сроки независимо от прибыльности проекта,\n"\
"- инвестиции (инвестированный капитал) возвращаются и приносят доход только в прибыльных проектах.\n"\
"- Если проект убыточен — инвестиции могут быть утрачены полностью или частично\n\n"\
"- Информация о процентах, и срок депозита:\n"\
"- сутки: 5%, 7 дней: 10%, 14 дней: 12%, 21 день: 15%, 28 дней 20%";
PHP:
invest[sizeof(invest)-1] = '\n';
invest_1[sizeof(invest_1)-1] = '\0';
PHP:
new MerCP[MAX_PLAYERS];
PHP:
if(MerCP[playerid] == 3)
{
ShowPlayerDialog(playerid, 68, DIALOG_STYLE_LIST, "Меню инвестиций", "[0] Информация о инвестициях\n[1] Инвестировать\n[2] Получить прибыль", "Далее", "Отмена");
return 1;
}
PHP:
//пикап входа
SetPlayerCheckpoint(playerid, 2316.6206, -4.6812, 26.7422, 1.5);
MerCP[playerid] = 3;
//И потом в пикап выхода
DisablePlayerCheckpoint(playerid);
MerCP[playerid] = INVALID_PLAYER_ID;
PHP:
pInvest
pInvestTime
pInvestBank
pInvestProcent
Автор: Dima_Tushin
Система будет обновляться,улучшаться.
Информация об инвестиции была взята с wiki педии
Копирование на сторонних порталах без разрешения автора запрещено!
Последнее редактирование:
