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

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

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

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

Мануал Авто донат по кодам

Статус
В этой теме нельзя размещать новые ответы.

Muvik

Начинающий
Регистрация
5 Окт 2016
Сообщения
33
Лучшие ответы
0
Репутация
9
Авто донат по кодам.
Систему делаю на MXINI

Заходи в мод, идём к public "OnGameModeInit()"
PHP:
new DonateFile = ini_openFile("DonateCodes.ini"); // Пытаемся обнаружить файл DonateCodes.ini
	if(DonateFile < 0)
	{ // Не обнаружено
		print("\nБаза данных с Donate кодами не обнаружена!");
		DonateFile = ini_createFile("DonateCodes.ini"); // создаем файл
		print("База данных с Donate кодами создана!\n");
	}
	else print("\nБаза данных с Donate кодами обнаружена!\n");
	ini_closeFile(DonateFile); // Закрываем файл
Потом создаём команды такие как:

PHP:
if(strcmp(cmdtext, "/donate", true) == 0)
	{
	    new string1[256],plname[MAX_PLAYER_NAME];
		GetPlayerName(playerid,plname,sizeof(plname));
		format(string1,sizeof(string1),"{00FFFF}>>{ffffff}Меню {00FFFF}>>{ffffff}Доната",plname);
		ShowPlayerDialog(playerid,100,DIALOG_STYLE_LIST,string1,"Донат-Баланс\nПлатные услуги\nАктивировать Код","Выбор","Отмена");
		return 1;
	}
PHP:
if (strcmp("/setdonatecode", cmdtext, true, 10) == 0)
	{
	    if(IsPlayerAdmin(playerid))
		{
	    	if(!RegCode) ShowPlayerDialog(playerid,104,DIALOG_STYLE_INPUT,"Создание Кода","{FFFFFF}Введите {FF0000}Код {FFFFFF}который будет использоваться при активации","Далее","Отмена");
			else SendClientMessage(playerid,-1,"{FF0000}[Ошибка] {FFFFFF}Кто-то уже активировал этот Код.");
		}
		return 1;
	}
PHP:
new bool:RegCode = false;
new RegCodes[32];
Далее идём в enum pInfo

PHP:
pRub,
PHP:
if(strcmp(cmd, "/givedonate", true) == 0)
    {
		if(PlayerInfo[playerid][pAdmin] < 12) return 1;
        new string1[128],sendern[MAX_PLAYER_NAME],targetplayer[MAX_PLAYER_NAME],giveplayerid,value;
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
                SendClientMessage(playerid, COLOR_GREEN, "{ff0000}[Правка] {ffffff}/givedonate [ID игрока] [количество денег]");
                return 1;
        }
        giveplayerid = strval(tmp);

        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
                SendClientMessage(playerid, COLOR_GREEN, "{ff0000}[Правка] {ffffff}/givedonate [ID игрока] [количество денег]");
                return 1;
        }
        value = strval(tmp);
		if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, COLOR_RED, "{ff0000}[Ошибка] {ffffff}Игрок не найден");
        GetPlayerName(giveplayerid, targetplayer, sizeof(targetplayer));
        GetPlayerName(playerid, sendern, sizeof(sendern));
        if(value < 1) return SendClientMessage(playerid, COLOR_RED,"{ff0000}[Правка] {ffffff}Неверное колличество доната");
        format(string1,sizeof(string1),"Администратор %s Пополнил вам Донат-Баланс на %i рублей",sendern,value);
        SendClientMessage(giveplayerid,COLOR_GREEN,string1);
        format(string1,sizeof(string1),"Вы пополнили Донат-Баланс на %i рублей игроку %s",value,targetplayer);
        SendClientMessage(playerid,COLOR_GREEN,string1);
		PlayerInfo[giveplayerid][pRub] += value;
		format(string1,sizeof(string1),"players/%s.ini",targetplayer);
		new iniFile = ini_openFile(string1);
        ini_setInteger(iniFile,"Rub",PlayerInfo[playerid][pRub]);
        return 1;
    }
Следующий шаг:
Идём к public "OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])"

PHP:
	if(dialogid == 100)
	{
	    if(response)
	    {
	        switch(listitem)
			{
			    case 0:
			    {
			        new string1[128];
			        format(string1,sizeof(string1),"{FFFFFF}На вашем балансе: {FFFF00}%i {FFFFFF}рублей",PlayerInfo[playerid][pRub]);
			        ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX,"Баланс",string1,"OK","");
			    }
				case 1: ShowPlayerDialog(playerid,101,DIALOG_STYLE_LIST,"{00FFFF}>>{ffffff}Услуги","{FFFFFF}Свои услуги.\nСвои услуги.\nСвои услуги.","Выбор","Назад"); // Вводить сюда свои услуги
				case 2: ShowPlayerDialog(playerid,102,DIALOG_STYLE_INPUT,"{00FFFF}>>{ffffff}Активация Кода","Введите выданный Вам код в окно снизу:","Ввод","Назад");
				case 3: SendClientMessage(playerid,-1,"Измените код, чтобы написать свои условия");
			}
	    }
	}
Далее услуги:

PHP:
	if(dialogid == 101)
	{
	    if(response)
		{
			switch(listitem)
			{
			    case 0: ShowPlayerDialog(playerid,103,DIALOG_STYLE_LIST,"{00FFFF}>>{ffffff}Административные права","1 уровень: {FF0000}50{ffffff} Рублей\n2 уровень:{FF0000}100{ffffff} Рублей\n3 уровень:{FF0000}150{ffffff} Рублей\n4 уровень:{FF0000}230{ffffff} Рублей\n5 уровень:{FF0000}325{ffffff} Рублей\n6 уровень:{FF0000}415{ffffff} Рублей\n7 уровень:{FF0000}525{ffffff} Рублей\n8 уровень:{FF0000}650{ffffff} Рублей\n9 уровень:{FF0000}735{ffffff} Рублей\n10 уровень:{FF0000}850{ffffff} Рублей","Купить","Отмена");
            }
	}
  }
Далее активация кода:

PHP:
	if(dialogid == 102)
	{
	    if(response)
			{
				if(strlen(inputtext) > 0)
				{
				    new DonCod = ini_openFile("DonateCodes.ini"),Rub;
					ini_getInteger(DonCod,inputtext,Rub);
					if(Rub <= 0) ShowPlayerDialog(playerid,2,DIALOG_STYLE_MSGBOX,"{00FFFF}>>{ffffff}Активация","{ffffff}Такого {FF0000}Кода {ffffff}не существует.\nЕсли вдруг он не работает, напишите об этом {FF0000}Администрации {FFFFFF}Сервера.","OK","");
					else
					{
					    new string[256];
					    format(string,sizeof(string),"{00FFFF}>>{ffffff}Активация прошла успешно! На Ваш счет зачисленно +%i Рублей!",Rub);
					    ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX,"{FFFFFF}Активация {FF0000}Кода {ffffff}Прошла Успешно!",string,"OK","");
						PlayerInfo[playerid][pRub] += Rub;
						ini_removeKey(DonCod,inputtext);
					}
					ini_closeFile(DonCod);
				}
	   		}
	}
И делаем саму покупку админки:

PHP:
	if(dialogid == 103)
	{
	    if(response)
	    {
	        switch(listitem)
	        {
				case 0:
				{
				    if(PlayerInfo[playerid][pRub] < 50) return SendClientMessage(playerid,COLOR_RED,"{FFFFFF}У вас недостаточно денег на {ff0000}Донат-Балансе.");
				    PlayerInfo[playerid][pAdmin] = 1,SendClientMessage(playerid,COLOR_GREEN,"{FFFFFF}Вы приобрели 1 уровень администратора"),PlayerInfo[playerid][pRub] -= 50; //Цены свои
				}
				case 1:
				{
				    if(PlayerInfo[playerid][pRub] < 100) return SendClientMessage(playerid,COLOR_RED,"{FFFFFF}У вас недостаточно денег на {ff0000}Донат-Балансе.");
				    PlayerInfo[playerid][pAdmin] = 2,SendClientMessage(playerid,COLOR_GREEN,"{FFFFFF}Вы приобрели 2 уровень администратора"),PlayerInfo[playerid][pRub] -= 100; //Цены свои
				}
				case 2:
				{
				    if(PlayerInfo[playerid][pRub] < 150) return SendClientMessage(playerid,COLOR_RED,"{FFFFFF}У вас недостаточно денег на {ff0000}Донат-Балансе.");
				    PlayerInfo[playerid][pAdmin] = 3,SendClientMessage(playerid,COLOR_GREEN,"{FFFFFF}Вы приобрели 3 уровень администратора"),PlayerInfo[playerid][pRub] -= 150; //Цены свои
				}
				case 3:
				{
				    if(PlayerInfo[playerid][pRub] < 230) return SendClientMessage(playerid,COLOR_RED,"{FFFFFF}У вас недостаточно денег на {ff0000}Донат-Балансе.");
				    PlayerInfo[playerid][pAdmin] = 4,SendClientMessage(playerid,COLOR_GREEN,"{FFFFFF}Вы приобрели 4 уровень администратора"),PlayerInfo[playerid][pRub] -= 230; //Цены свои
				}
				case 4:
				{
				    if(PlayerInfo[playerid][pRub] < 325) return SendClientMessage(playerid,COLOR_RED,"{FFFFFF}У вас недостаточно денег на {ff0000}Донат-Балансе.");
				    PlayerInfo[playerid][pAdmin] = 5,SendClientMessage(playerid,COLOR_GREEN,"{FFFFFF}Вы приобрели 5 уровень администратора"),PlayerInfo[playerid][pRub] -= 325; //Цены свои
				}
				case 5:
				{
				    if(PlayerInfo[playerid][pRub] < 415) return SendClientMessage(playerid,COLOR_RED,"{FFFFFF}У вас недостаточно денег на {ff0000}Донат-Балансе.");
				    PlayerInfo[playerid][pAdmin] = 6,SendClientMessage(playerid,COLOR_GREEN,"{FFFFFF}Вы приобрели 6 уровень администратора"),PlayerInfo[playerid][pRub] -= 415; //Цены свои
				}
				case 6:
				{
				    if(PlayerInfo[playerid][pRub] < 525) return SendClientMessage(playerid,COLOR_RED,"{FFFFFF}У вас недостаточно денег на {ff0000}Донат-Балансе.");
				    PlayerInfo[playerid][pAdmin] = 7,SendClientMessage(playerid,COLOR_GREEN,"{FFFFFF}Вы приобрели 7 уровень администратора"),PlayerInfo[playerid][pRub] -= 525; //Цены свои
				}
				case 7:
				{
				    if(PlayerInfo[playerid][pRub] < 650) return SendClientMessage(playerid,COLOR_RED,"{FFFFFF}У вас недостаточно денег на {ff0000}Донат-Балансе.");
				    PlayerInfo[playerid][pAdmin] = 8,SendClientMessage(playerid,COLOR_GREEN,"{FFFFFF}Вы приобрели 8 уровень администратора"),PlayerInfo[playerid][pRub] -= 650; //Цены свои
				}
				case 8:
				{
				    if(PlayerInfo[playerid][pRub] < 735) return SendClientMessage(playerid,COLOR_RED,"{FFFFFF}У вас недостаточно денег на {ff0000}Донат-Балансе.");
				    PlayerInfo[playerid][pAdmin] = 9,SendClientMessage(playerid,COLOR_GREEN,"{FFFFFF}Вы приобрели 9 уровень администратора"),PlayerInfo[playerid][pRub] -= 735; //Цены свои
				}
				case 9:
				{
				    if(PlayerInfo[playerid][pRub] < 850) return SendClientMessage(playerid,COLOR_RED,"{FFFFFF}У вас недостаточно денег на {ff0000}Донат-Балансе.");
				    PlayerInfo[playerid][pAdmin] = 10,SendClientMessage(playerid,COLOR_GREEN,"{FFFFFF}Вы приобрели 10 уровень администратора"),PlayerInfo[playerid][pRub] -= 850; //Цены свои
				}
	        }
	    }
	}
И делаем создание кода:
PHP:
	if(dialogid == 104)
	{
	    if(response)
		{
            if(strlen(inputtext) > 0)
			{
                RegCode = true;
                format(RegCodes,sizeof(RegCodes),"%s",inputtext);
                ShowPlayerDialog(playerid,105,DIALOG_STYLE_INPUT,"Создание Кода","Введите количество Руб:","Регистрация","Отмена");
            }
	}
 }
PHP:
	if(dialogid == 105)
	{
	    if(response)
		{
            if(strlen(inputtext))
			{
                RegCode = false;
                new iniFile = ini_openFile("DonateCodes.ini");
                ini_setInteger(iniFile,RegCodes,strval(inputtext));
                ini_closeFile(iniFile);
                SendClientMessage(playerid,-1,"{FFFFFF}Вы успешно создали данный {FF0000}Код.");
            }
	}
 }
Не забудьте создать Текстовый документ и название DonateCodes.ini
Надеюсь я заслужил на +
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу