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

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

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

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

Мануал Основа Бизнесов [new.pwn][MysQL]

-WorcOut-

«I'am WorcOut» ♫
Добрый день вот решил написал простенькую систему на Mysql - основа система бизнесов !!!
Начнём !
[HR][/HR]
Нам потребуются include​
[1] #include a_samp
[2] #include a_mysql моя версия R39-2
[3] #include streamer
[HR][/HR]
Далее в
PHP:
#define publics:%0(%1)     forward %0(%1); \
                        	public %0(%1)
[HR][/HR]
После в pInfo добавим
PHP:
pCash,//Скок денег у игрока
pBizzWorc // Бизнесы
[HR][/HR]
После создам
enum, после которого идёт имя перечисления и в фигурных скобках объявляются его элементы - поля:
PHP:
enum bInfo
{
 	bID, // id бизнеса
 	bOwner[64], // владелиц бизнеса
 	bOwned, // 0 нету бизнеса , 1 есть
 	bNameBizz, // название бизнеса
 	bName[MAX_PLAYER_NAME],
 	bCash, // Цена бизнеса
Float:	bEnterX, // Координаты расположения по X
Float:	bEnterY, // Координаты расположения по Y
Float:	bEnterZ, // Координаты расположения по Z
 	bPick, // Пикам бизнеса
 	bMap // Иконка бизнеса
}
new BussinesInfo[5][bInfo]; // Количества Бизнес , в моём случий 5 проверка
Таким образом мы перечислили набор констант, значения которых будут определены автоматически.

[HR][/HR]
В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
PHP:
case 1:
		{
		    if(!response) return false;
			for(new b = 0; b < sizeof(BussinesInfo); b++)
			{
				if(IsPlayerInRangeOfPoint(playerid, 2.0, BussinesInfo[b][bEnterX], BussinesInfo[b][bEnterY], BussinesInfo[b][bEnterZ]))
		   	 	{
		            if(PlayerInfo[playerid][pBizzWorc] != 255) return SendClientMessage(playerid, 0xAFAFAFAA,"Сначала продайте свой бизнес!");
		            if(PlayerInfo[playerid][pCash] <= BussinesInfo[b][bCash])
		            {
		                SendClientMessage(playerid, 0xAFAFAFAA,"У вас нехватает средств на покупку этого бизнеса!");
		                return true;
		            }
		            PlayerInfo[playerid][pCash] -= BussinesInfo[b][bCash];
		            BussinesInfo[b][bOwned] = 1;
		            PlayerInfo[playerid][pBizzWorc] = b;
		            strmid(BussinesInfo[b][bOwner], GN(playerid), 0, strlen(GN(playerid)), 64);
		            SendClientMessage(playerid, 0xFFFFFFFF, "Вы успешно приобрели бизнес!");
		            SendClientMessage(playerid, 0xFFFFFFFF, "{00FF00}Помощь: Для управления бизнесом используйте команду /bizz");
		            SaveBizzInfo(b);
		    	}
		    }
		}
[HR][/HR]
В public OnPlayerPickUpDynamicPickup(playerid, pickupid)
Создаём 2 переменные
Целый (не имеет названия) - целые числа
PHP:
new str[360]; // format
new namesbizz[32]; // name bizz
PHP:
for(new b = 0; b < sizeof(BussinesInfo); b++)
	{
 		if(pickupid == BussinesInfo[b][bPick])
   		{
     		if(BussinesInfo[b][bOwned] == 0)
       		{
         		switch(BussinesInfo[b][bNameBizz])
           		{
             		case 0: namesbizz = "{0BDA51}24/7{FFFFFF}";
             		case 1: namesbizz = "{0BDA51}Ларёк{FFFFFF}";
             		case 2: namesbizz = "{0BDA51}Автостанция{FFFFFF}";
             		case 3: namesbizz = "{0BDA51}Лодояная{FFFFFF}";
	            }
	            format(str, sizeof(str), "{FFFFFF}Название бизнеса:\t\t{0080FF}%s{FFFFFF}\
				\nСтоимость:\t\t\t{00FF00}%i",namesbizz, BussinesInfo[b][bCash]);
	          	ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "Покупка бизнеса", str, "Купить", "Отмена");
	        }
	        else
	        {
         		switch(BussinesInfo[b][bNameBizz])
           		{
             		case 0: namesbizz = "{0BDA51}24/7{FFFFFF}";
             		case 1: namesbizz = "{0BDA51}Ларёк{FFFFFF}";
             		case 2: namesbizz = "{0BDA51}Автостанция{FFFFFF}";
             		case 3: namesbizz = "{0BDA51}Лодояная{FFFFFF}";
	            }
	            format(str, sizeof(str), "{FFFFFF}Название бизнеса:\t\t{0080FF}%s{FFFFFF}\
				\nСтоимость:\t\t\t{00FF00}%i{FFFFFF}\
				\nВладелец:\t\t\t%s",namesbizz, BussinesInfo[b][bCash], BussinesInfo[b][bOwner]);
	            ShowPlayerDialog(playerid, 3, DIALOG_STYLE_MSGBOX, "Информация о бизнесе", str, "Купить", "Отмена");
	        }
	    }
	}
Почему switch ?
Главное преимущество switch перед if - эффективность: если в конструкции switch указано несколько диапазонов, принадлежность к одному из них определяется быстрее, чем в if.
[HR][/HR]
В сохранения Аккаунта добавляем
PHP:
format(query, sizeof(query), "%s `BizzKey` = '%d'", query, PlayerInfo[playerid][pBizzWorc]);
[HR][/HR]
В загрузку Аккаунта
PHP:
cache_get_field_content(0, "BizzKey", maximum), PlayerInfo[playerid][pBizzWorc] = strval(maximum);
[HR][/HR]
Далее делаем загрузку BD
PHP:
publics: LoadBizzInfo()
{
	new temp[64], i=0;
	static rows, fields;
	cache_get_data(rows, fields);
	if(rows)
	{
		for(new he = 0;he < rows; he++)
		{
		    cache_get_row(he, 0, temp), BussinesInfo[he][bID] = strval(temp);
		    cache_get_row(he, 1, temp), BussinesInfo[he][bOwned] = strval(temp);
		    cache_get_row(he, 2, temp), strmid(BussinesInfo[he][bOwner], temp, 0, strlen(temp), 64);
		    cache_get_row(he, 3, temp), BussinesInfo[he][bNameBizz] = strval(temp);
		    cache_get_row(he, 4, temp), strmid(BussinesInfo[he][bName], temp, 0, strlen(temp), 128);
		    cache_get_row(he, 5, temp), BussinesInfo[he][bCash] = strval(temp);
		    cache_get_row(he, 6, temp), BussinesInfo[he][bEnterX] = floatstr(temp);
		    cache_get_row(he, 7, temp), BussinesInfo[he][bEnterY] = floatstr(temp);
		    cache_get_row(he, 8, temp), BussinesInfo[he][bEnterZ] = floatstr(temp);
		    i++;
			UpdateBizzInfo(he);
		}
	}
	printf("%i",i);
	return true;
}
[HR][/HR]
В сохранения Аккаунта
PHP:
stock SaveBizzInfo(id)
{
	new update[500];
	format(update, sizeof(update), "UPDATE `bussines` SET `Owned` = '%i' `Owner` = '%s' WHERE `id` = '%i'",
	BussinesInfo[id][bOwned],
	BussinesInfo[id][bOwner], id);
	mysql_query(update, -1, 0, MysqlConnect);
}
[HR][/HR]
Добавим Updat иконки и пикапа
PHP:
stock UpdateBizzInfo(id)
{
	BussinesInfo[id][bPick] = CreateDynamicPickup(19132, 2, BussinesInfo[id][bEnterX], BussinesInfo[id][bEnterY], BussinesInfo[id][bEnterZ], -1);
	BussinesInfo[id][bMap] = CreateDynamicMapIcon(BussinesInfo[id][bEnterX], BussinesInfo[id][bEnterY], BussinesInfo[id][bEnterZ], 52, 0xFFFFFFAA, 0, -1, -1);
	return true;
}
И
PHP:
stock GN(playerid) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); return name; }
[HR][/HR]
В загрузку аккаунта добавим
PHP:
mysql_function_query(MysqlConnect,"SELECT * FROM `buzz`",true,"LoadBizzInfo","");
BD Кому надо
Если нужен FS пишите в лс снизу есть данные
 
Сверху Снизу