Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Мануал Система промокодов

WOODY GRIFFINS

Дебютант
Доброго времени суток.
Сегодня я попытаюсь Вам показать, как можно сделать систему промокодов для ютуберов.

Итак, начнем.
PINFO - меняйте на свое.
pLVL - на свое
pDonateMoney - на свое
pPayDayHad - на свое
pCash - на свое
#define Ok "Ок"
#define Cancel "Отмена"

Сперва нам нужно создать переменные в enum pInfo
PHP:
    pPromoUse,
    promonumber,
    promonumber2,
    promonumber3,
    promonumber4,
    promonumber5,
    promonumber6,
    promonumber7,
    promonumber8,
Далее нужно в OnPlayerConnect добавить
PHP:
    PINFO[playerid][promonumber] = 0;
    PINFO[playerid][promonumber2] = 0;
    PINFO[playerid][promonumber3] = 0;
    PINFO[playerid][promonumber4] = 0;
    PINFO[playerid][promonumber5] = 0;
    PINFO[playerid][promonumber6] = 0;
    PINFO[playerid][promonumber7] = 0;
    PINFO[playerid][promonumber8] = 0;
    PINFO[playerid][pPromoUse] = 0;
Далее, нам нужно добавить в загрузку аккаунта(onplayerlogin) следующий код:
PHP:
        ini_getInteger(File,"promonumber",PINFO[playerid][promonumber]);
        ini_getInteger(File,"promonumber2",PINFO[playerid][promonumber2]);
        ini_getInteger(File,"promonumber3",PINFO[playerid][promonumber3]);
        ini_getInteger(File,"promonumber4",PINFO[playerid][promonumber4]);
        ini_getInteger(File,"promonumber5",PINFO[playerid][promonumber5]);
        ini_getInteger(File,"promonumber6",PINFO[playerid][promonumber6]);
        ini_getInteger(File,"promonumber7",PINFO[playerid][promonumber7]);
        ini_getInteger(File,"promonumber8",PINFO[playerid][promonumber8]);
        ini_getInteger(File,"pPromoUse",PINFO[playerid][pPromoUse]);
Идем в создание аккаунтаl(onplayerregister):
PHP:
        ini_setInteger(File,"promonumber",PINFO[playerid][promonumber]);
        ini_setInteger(File,"promonumber2",PINFO[playerid][promonumber2]);
        ini_setInteger(File,"promonumber3",PINFO[playerid][promonumber3]);
        ini_setInteger(File,"promonumber4",PINFO[playerid][promonumber4]);
        ini_setInteger(File,"promonumber5",PINFO[playerid][promonumber5]);
        ini_setInteger(File,"promonumber6",PINFO[playerid][promonumber6]);
        ini_setInteger(File,"promonumber7",PINFO[playerid][promonumber7]);
        ini_setInteger(File,"promonumber8",PINFO[playerid][promonumber8]);
        ini_setInteger(File,"pPromoUse",PINFO[playerid][pPromoUse]);
И в сохранение аккаунта:
PHP:
        ini_setInteger(File,"promonumber",PINFO[playerid][promonumber]);
        ini_setInteger(File,"promonumber2",PINFO[playerid][promonumber2]);
        ini_setInteger(File,"promonumber3",PINFO[playerid][promonumber3]);
        ini_setInteger(File,"promonumber4",PINFO[playerid][promonumber4]);
        ini_setInteger(File,"promonumber5",PINFO[playerid][promonumber5]);
        ini_setInteger(File,"promonumber6",PINFO[playerid][promonumber6]);
        ini_setInteger(File,"promonumber7",PINFO[playerid][promonumber7]);
        ini_setInteger(File,"promonumber8",PINFO[playerid][promonumber8]);
        ini_setInteger(File,"pPromoUse",PINFO[playerid][pPromoUse]);
Итак, переменные готовы. Нам нужно теперь разобраться с диалогами.
в OnDialogResponse:
PHP:
		case : 6536
		{
			if(!response) return true;
			if(response)
			{
				if(strfind(inputtext, "code", true) != -1) // "code " менять на свой промокод. Пример: "#pawno"
				{
					PINFO[playerid][promonumber] = 1;
					SendClientMessage(playerid, 0x99FF00FF, "Поздравляем. Вы активировали промокод!");
					SendClientMessage(playerid, -1, "На 4 уровне вы получите: 5000 доната, 2 млн.вирт, 3 очка опыта.");
				}
				if(strfind(inputtext, "code", true) != -1)
				{
					PINFO[playerid][promonumber2] = 1;
					SendClientMessage(playerid, 0x99FF00FF, "Поздравляем. Вы активировали промокод!");
					SendClientMessage(playerid, -1, "На 4 уровне вы получите: 5000 доната, 2 млн.вирт, 3 очка опыта.");
		        }
 				if(strfind(inputtext, "code", true) != -1)
				{
					PINFO[playerid][promonumber3] = 1;
					SendClientMessage(playerid, 0x99FF00FF, "Поздравляем. Вы активировали промокод!");
					SendClientMessage(playerid, -1, "На 4 уровне вы получите: 5000 доната, 2 млн.вирт, 3 очка опыта.");
		        }
 				if(strfind(inputtext, "code", true) != -1)
				{
					PINFO[playerid][promonumber4] = 1;
					SendClientMessage(playerid, 0x99FF00FF, "Поздравляем. Вы активировали промокод!");
					SendClientMessage(playerid, -1, "На 4 уровне вы получите: 5000 доната, 2 млн.вирт, 3 очка опыта.");
		        }
 				if(strfind(inputtext, "code", true) != -1)
				{
					PINFO[playerid][promonumber5] = 1;
					SendClientMessage(playerid, 0x99FF00FF, "Поздравляем. Вы активировали промокод!");
					SendClientMessage(playerid, -1, "На 4 уровне вы получите: 5000 доната, 2 млн.вирт, 3 очка опыта.");
		        }
 				if(strfind(inputtext, "code", true) != -1)
				{
					PINFO[playerid][promonumber6] = 1;
					SendClientMessage(playerid, 0x99FF00FF, "Поздравляем. Вы активировали промокод!");
					SendClientMessage(playerid, -1, "На 4 уровне вы получите: 5000 доната, 2 млн.вирт, 3 очка опыта.");
		        }
 				if(strfind(inputtext, "code", true) != -1)
				{
					PINFO[playerid][promonumber7] = 1;
					SendClientMessage(playerid, 0x99FF00FF, "Поздравляем. Вы активировали промокод!");
					SendClientMessage(playerid, -1, "На 4 уровне вы получите: 5000 доната, 2 млн.вирт, 3 очка опыта.");
		        }
 				if(strfind(inputtext, "code", true) != -1)
				{
					PINFO[playerid][promonumber8] = 1;
					SendClientMessage(playerid, 0x99FF00FF, "Поздравляем. Вы активировали промокод!");
					SendClientMessage(playerid, -1, "На 4 уровне вы получите: 5000 доната, 2 млн.вирт, 3 очка опыта.");
		        }
		    }
		}
в Public OnPlayerCommandText:
PHP:
	else if (strcmp(cmd, "/promocode", true) == 0)
	{
	    if(PINFO[playerid][pPromoUse] == 1) return SCM(playerid,COLOR_GREY,"Вы уже активировали промокод и получили приз.");
	    if(PINFO[playerid][pPayDayHad] < 5) return SendClientMessage(playerid, COLOR_GREY, "Чтобы активировать промокод, необходимо отыграть 5 часов.");
		if(PINFO[playerid][promonumber] == 1)  return SendClientMessage(playerid, COLOR_GREY, "Вы уже активировали промокод!");
		if(PINFO[playerid][promonumber2] == 1) return SendClientMessage(playerid, COLOR_GREY, "Вы уже активировали промокод!");
		if(PINFO[playerid][promonumber3] == 1) return SendClientMessage(playerid, COLOR_GREY, "Вы уже активировали промокод!");
		if(PINFO[playerid][promonumber4] == 1) return SendClientMessage(playerid, COLOR_GREY, "Вы уже активировали промокод!");
		if(PINFO[playerid][promonumber5] == 1) return SendClientMessage(playerid, COLOR_GREY, "Вы уже активировали промокод!");
		if(PINFO[playerid][promonumber6] == 1) return SendClientMessage(playerid, COLOR_GREY, "Вы уже активировали промокод!");
		if(PINFO[playerid][promonumber7] == 1) return SendClientMessage(playerid, COLOR_GREY, "Вы уже активировали промокод!");
		if(PINFO[playerid][promonumber8] == 1) return SendClientMessage(playerid, COLOR_GREY, "Вы уже активировали промокод!");
		SPD(playerid,6536,DIALOG_STYLE_INPUT, "{30C3F0}Промокод","Введите промокод в стрчоку ниже",Ok,Cancel);
		return true;
	}
Команда для ввода промокода есть, диалог есть, сохранение информации есть.
Теперь нам нужно выдать бонус. Для этого переходим в stock PayDay( выдача зарплаты )
PHP:
				if(PINFO[i][pPromoUse] == 0 && PINFO[playerid][pLVL] == 4 PINFO[playerid][pExp] == 1) // проверка на лвл, опыт, использование промокода ране
				{
					if(PINFO[i][promonumber] == 1 || PINFO[i][promonumber2] == 1 || PINFO[i][promonumber3] == 1
					|| PINFO[i][promonumber4] == 1 || PINFO[i][promonumber5] == 1 || PINFO[i][promonumber6] == 1
					|| PINFO[i][promonumber7] == 1 || PINFO[i][promonumber8] == 1) //  промокодв
					{
					    PINFO[i][pDonateMoney] += 5000;
					    PINFO[i][pCash] += 2000000;
					    PINFO[i][pPayDayHad] += 3;
					    PINFO[i][pPromoUse] = 1; // призы
					    PINFO[i][promonumber] = 0; // обнуление промокодов игроку
					    PINFO[i][promonumber2] = 0;
					    PINFO[i][promonumber3] = 0;
					    PINFO[i][promonumber4] = 0;
					    PINFO[i][promonumber5] = 0;
					    PINFO[i][promonumber6] = 0;
					    PINFO[i][promonumber7] = 0;
					    PINFO[i][promonumber8] = 0;
						SCM(i, TEAM_GROVE_COLOR,"Поздравялем. Вы получили 2 млн вирт, 5000 доната и 3 очка опыта за промокод!");
						return true;
					}
				}
			}
Вот и все....
Теперь у вас все должно работать : )
 
Сверху Снизу