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

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

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

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

Мануал Система квартир MYSQL R5 | COPY AQUA RP

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

Батька

Компетентный
В начало мода, ко всем new​

PHP:
#define TABLE_PD      "pod"
#define TABLE_KV       "kvart"
#define MAX_POD 500
enum podIn
{
	id,
	Float:pdX,
	Float:pdY,
	Float:pdZ,
	Float:pdXX,
	Float:pdYY,
	Float:pdZZ,
	pdPick[3],
	pdVirt,
	pdNach,
	pdKon,
	Float:pdFa

}
new Text3D:pdLable[MAX_POD];
new pdInfo[MAX_POD][podIn];
new TOTALHOUSE;
#define MAX_KV 500
enum kInfo
{
	id,
	kOwner[32],
	Float:kX,
	Float:kY,
	Float:kZ,
	Float:kXX,
	Float:kYY,
	Float:kZZ,
	kVirtt,
	kInt,
	kVirt,
	Float:kFa,
	kPod,
	kCost,
	Float:kCarx,
	Float:kCary,
	Float:kCarz,
	Float:kCarfa,
	kHeal,
	kOplata,
	kLock
};
new Text3D:KvLable[MAX_KV];
new KvInfo[MAX_KV][kInfo];
Ко всем командам​

PHP:
CMD:buyflat(playerid, params[])
{
    if(PlayerLogged[playerid] == 0) return true;
    if(GetPlayerFlat(playerid)) return SendClientMessage(playerid,CGREY,"У вас есть квартира");
    if(GetPVarInt(playerid,"Flat") == 0) return SendClientMessage(playerid,CGREY,"Вы не в квартире");
    new i = GetPVarInt(playerid,"Flat");
	if(PlayerInfo[playerid][pCash] < KvInfo[i][kCost]) return SendClientMessage(playerid,CGREY,"Недостаточно средств");
	GiveMoney(playerid,-KvInfo[i][kCost]);
	strmid(KvInfo[i][kOwner], PlayerInfo[playerid][pSendername], 0, strlen(PlayerInfo[playerid][pSendername]), MAX_PLAYER_NAME);
	KvInfo[i][kOplata] = 12;
	Delete3DTextLabel(KvLable[i]);
	static const fmt_string1[] = "Квартира: %i\nВладелец: %s";
	new str1[sizeof(fmt_string1)+4+MAX_PLAYER_NAME];
	format(str1,sizeof(str1),fmt_string1,KvInfo[i][id],KvInfo[i][kOwner]);
 	KvLable[i] = Create3DTextLabel(str1,CAGREEN,KvInfo[i][kX], KvInfo[i][kY], KvInfo[i][kZ]+1,20.0,KvInfo[i][kVirtt],1);
	SetPVarInt(playerid,"PlayerFlat",i);
	format(query, sizeof(query), "UPDATE "TABLE_KV" SET name = '%s', oplata = '%i' WHERE id = '%d' LIMIT 1", KvInfo[i][kOwner],KvInfo[i][kOplata],i);
	mysql_query(query);
	return true;
}
CMD:fpanel(playerid, params[])
{
    if(PlayerLogged[playerid] == 0) return true;
    if(GetPlayerFlat(playerid))
    {
		new i = GetPVarInt(playerid,"PlayerFlat");
		new text[20],krek[20];
		if(KvInfo[i][kOplata] > 24) format(krek,sizeof(krek),"%i дней",KvInfo[i][kOplata]/24);
		else format(krek,sizeof(krek),"%i часов",KvInfo[i][kOplata]);
		switch(KvInfo[i][kLock])
		{
			case 0: format(text,sizeof(text),"{20BA09}Открыто");
			case 1: format(text,sizeof(text),"{F85A5A}Закрыто");
		}
        static const fmt_string1[] = "{FFFFFF}Номер квартиры:\t\t%i\nВладелец:\t\t\t%s\nГОС цена:\t\t\t$%i\n\nВходная дверь:\t\t%s{FFFFFF}\nКоличество аптечек:\t\t%i\n\nРазмер квартплаты:\t\t$50 в час\nОплачено на:\t\t\t%s";
		new str1[sizeof(fmt_string1)+5+MAX_PLAYER_NAME+20+10+5+20];
		format(str1, sizeof(str1), fmt_string1,KvInfo[i][id],KvInfo[i][kOwner],KvInfo[i][kCost],text,KvInfo[i][kHeal],krek);
		ShowPlayerDialog(playerid, 26, DIALOG_STYLE_MSGBOX, "Информация о квартире", str1, "Опции","Отмена");
    }
    else SendClientMessage(playerid,CGREY,"У Вас нет квартиры");
    return true;

}
В OnPlayerKeyStateChange​

PHP:
	if(newkeys & KEY_WALK)
	{
	    for(new i1; i1 <= TOTALKV;i1++)
	    {
	        if(IsPlayerInRangeOfPoint(playerid,1.0,KvInfo[i1][kX],KvInfo[i1][kY],KvInfo[i1][kZ]) && GetPlayerVirtualWorld(playerid) == KvInfo[i1][kPod])
	        {
	            if(!strcmp(KvInfo[i1][kOwner],"None",true))
	            {
	                SetPlayerPos(playerid,KvInfo[i1][kXX],KvInfo[i1][kYY],KvInfo[i1][kZZ]);
	                SetPlayerFacingAngle(playerid,KvInfo[i1][kFa]);
					SetPlayerInterior(playerid,KvInfo[i1][kInt]);
					SetPlayerVirtualWorld(playerid,KvInfo[i1][kVirt]);
					SendClientMessage(playerid,CWHITE,"Эта квартира продается, для покупки используйте {dcedf9}/buyflat");
					SetPVarInt(playerid,"Flat",KvInfo[i1][id]);
	            }
	            else
	            {
	                if(KvInfo[i1][kLock] == 1) return SendClientMessage(playerid,CGREY,"Дверь закрыта!");
	                SetPlayerPos(playerid,KvInfo[i1][kXX],KvInfo[i1][kYY],KvInfo[i1][kZZ]);
	                SetPlayerFacingAngle(playerid,KvInfo[i1][kFa]);
					SetPlayerInterior(playerid,KvInfo[i1][kInt]);
					SetPlayerVirtualWorld(playerid,KvInfo[i1][kVirt]);
					SetPVarInt(playerid,"Flat",KvInfo[i1][id]);
	            }
	        }
	        else if(IsPlayerInRangeOfPoint(playerid,2,KvInfo[i1][kXX],KvInfo[i1][kYY],KvInfo[i1][kZZ]) && GetPlayerVirtualWorld(playerid) == KvInfo[i1][kVirt])
	        {
    				SetPlayerPos(playerid,KvInfo[i1][kX],KvInfo[i1][kY],KvInfo[i1][kZ]);
					SetPlayerInterior(playerid,15);
					SetPlayerVirtualWorld(playerid,KvInfo[i1][kPod]);
					DeletePVar(playerid,"Flat");
	        }
	    }
	
	}
Вставляем где у вас PayDay​

PHP:
	for(new i = 1; i <= TOTALKV; i++)
	{
	 	if(!strcmp("None",KvInfo[i][kOwner],true)) continue;
	  	if(KvInfo[i][kOplata] > 0)
	   	{
            KvInfo[i][kOplata]--;
           	format(query, sizeof(query), "UPDATE "TABLE_KV" SET oplata = '%i' WHERE id = '%d' LIMIT 1", KvInfo[i][kOplata],i);
			mysql_query(query);
		}
		else
		{
            if(GetPlayerID(KvInfo[i][kOwner]) != INVALID_PLAYER_ID)
            {
                SendClientMessage(GetPlayerID(KvInfo[i][kOwner]),-1,"Ваша квартира была продана государтву за неуплату налогов");
				DeletePVar(GetPlayerID(KvInfo[i][kOwner]),"PlayerFlat");
            }
           	Delete3DTextLabel(KvLable[i]);
    		static const fmt_string1[] = "Квартира: %i\nСтоимость: $%i";
			new str1[sizeof(fmt_string1)+4+10];
			format(str1,sizeof(str1),fmt_string1,KvInfo[i][id],KvInfo[i][kCost]);
   			KvLable[i] = Create3DTextLabel(str1,0xDCEDF9FF,KvInfo[i][kX], KvInfo[i][kY], KvInfo[i][kZ]+1,20.0,KvInfo[i][kVirtt],1);
			strmid(KvInfo[i][kOwner],"None", 0, strlen("None"), MAX_PLAYER_NAME);
			format(query, sizeof(query), "UPDATE "TABLE_KV" SET name = '%s', oplata = '%i' WHERE id = '%d' LIMIT 1",KvInfo[i][kOwner], KvInfo[i][kOplata],i);
			mysql_query(query);
		}
	}

В OnDialogResponse​

PHP:
		case 26:
		{
		    if(response)
			{
 				new i = GetPVarInt(playerid,"PlayerFlat");
				new text[20];
				switch(KvInfo[i][kLock])
				{
					case 0: format(text,sizeof(text),"{20BA09}Открыто");
					case 1: format(text,sizeof(text),"{F85A5A}Закрыто");
				}
   				static const fmt_str1[] = "{FFFFFF}Входная дверь:\t\t%s{FFFFFF}\nПомощь по содержанию квартиры";
				new str1[sizeof(fmt_str1)+20];
				format(str1,sizeof(str1),fmt_str1,text);
				ShowPlayerDialog(playerid, 27, DIALOG_STYLE_LIST, "Опции",str1, "Выбор","Назад");
			}
		    else return true;
		}
		case 27:
		{
		    switch(response)
		    {
		        case 1:
		        {
					switch(listitem)
					{
						case 0:
						{
		 					new i = GetPVarInt(playerid,"PlayerFlat");
							switch(KvInfo[i][kLock])
							{
							    case 0: KvInfo[i][kLock] = 1;
							    case 1: KvInfo[i][kLock] = 0;
							}
							new text[20];
							switch(KvInfo[i][kLock])
							{
								case 0: format(text,sizeof(text),"{20BA09}Открыто");
								case 1: format(text,sizeof(text),"{F85A5A}Закрыто");
							}
			   				static const fmt_str1[] = "{FFFFFF}Входная дверь:\t\t%s{FFFFFF}\nПомощь по содержанию квартиры";
							new str1[sizeof(fmt_str1)+20];
							format(str1,sizeof(str1),fmt_str1,text);
							ShowPlayerDialog(playerid, 27, DIALOG_STYLE_LIST, "Опции",str1, "Выбор","Назад");
						}
						case 1:
						{
						    new strcatka[500];
	    					strcat(strcatka,"{FFFFFF}Доступные команды:\n\n/sellflat - продать квартиру за 50% от стоимости государству\n/healme - использовать аптечку (доступно для всех)\n/house - найти подъезд на карте\n/park - установить место для парковки\n/fixcar - припарковать автомобиль подъезду");
                            strcat(strcatka,"\n\n\nПримечание:\n- Квартира изымается государством, если квартплата не была произведена вовремя.\n- Оплатить за квартиру можно в любом банкомате.\n- Аптечки можно купить в магазине 24/7.");
							ShowPlayerDialog(playerid, 28, DIALOG_STYLE_MSGBOX, "Помощь в содержании", strcatka, "Меню","Закрыть");
						}
					}
		        
		        }
		        case 2: cmd_fpanel(playerid,"");
		    }
		}
		case 28:
		{
		    switch(response)
			{
			    case 1:
				{
					new i = GetPVarInt(playerid,"PlayerFlat");
					new text[20];
					switch(KvInfo[i][kLock])
					{
						case 0: format(text,sizeof(text),"{20BA09}Открыто");
						case 1: format(text,sizeof(text),"{F85A5A}Закрыто");
					}
					static const fmt_str1[] = "{FFFFFF}Входная дверь:\t%s{FFFFFF}\nПомощь по содержанию квартиры";
					new str1[sizeof(fmt_str1)+20];
					format(str1,sizeof(str1),fmt_str1,text);
					ShowPlayerDialog(playerid, 27, DIALOG_STYLE_LIST, "Опции",str1, "Выбор","Назад");
				}
				default: return true;
			}
		}
case 35:
		{
		    switch(response)
		    {
				case 1:
				{
					switch(listitem)
					{
						case 0:
						{
							if(KvInfo[GetPVarInt(playerid,"PlayerFlat")][kOplata] > 1) return InfoOplFlat(playerid);
							SetPVarInt(playerid,"Skoka",50);
							ShowPlayerDialog(playerid,37,DIALOG_STYLE_MSGBOX,"Оплата квартиры","{FFFFFF}Стоимость платы за квартиру на 1 ч. составит: $50\nВы подтверждаете платеж?","Да","Нет");
						}
						case 1:
						{
							if(KvInfo[GetPVarInt(playerid,"PlayerFlat")][kOplata] > 12) return InfoOplFlat(playerid);
							SetPVarInt(playerid,"Skoka",600);
							ShowPlayerDialog(playerid,37,DIALOG_STYLE_MSGBOX,"Оплата квартиры","{FFFFFF}Стоимость платы за квартиру на 12 ч. составит: $600\nВы подтверждаете платеж?","Да","Нет");
						}
						case 2:
						{
							if(KvInfo[GetPVarInt(playerid,"PlayerFlat")][kOplata] > 24) return InfoOplFlat(playerid);
							SetPVarInt(playerid,"Skoka",1200);
							ShowPlayerDialog(playerid,37,DIALOG_STYLE_MSGBOX,"Оплата квартиры","{FFFFFF}Стоимость платы за квартиру на 24 ч. составит: $1200\nВы подтверждаете платеж?","Да","Нет");
						}
						case 3:
						{
						    if(KvInfo[GetPVarInt(playerid,"PlayerFlat")][kOplata]/24 > 7) return InfoOplFlat(playerid);
						    SetPVarInt(playerid,"Skoka",8400);
							ShowPlayerDialog(playerid,37,DIALOG_STYLE_MSGBOX,"Оплата квартиры","{FFFFFF}Стоимость платы за квартиру на 1 ч. составит: $8400\nВы подтверждаете платеж?","Да","Нет");
						}
						case 4:
						{
						    if(KvInfo[GetPVarInt(playerid,"PlayerFlat")][kOplata]/24 > 14) return InfoOplFlat(playerid);
						    SetPVarInt(playerid,"Skoka",16800);
							ShowPlayerDialog(playerid,37,DIALOG_STYLE_MSGBOX,"Оплата квартиры","{FFFFFF}Стоимость платы за квартиру на 1 ч. составит: $16800\nВы подтверждаете платеж?","Да","Нет");
						}
						case 5:
						{
						    if(KvInfo[GetPVarInt(playerid,"PlayerFlat")][kOplata]/24 > 30) return InfoOplFlat(playerid);
						    SetPVarInt(playerid,"Skoka",36000);
							ShowPlayerDialog(playerid,37,DIALOG_STYLE_MSGBOX,"Оплата квартиры","{FFFFFF}Стоимость платы за квартиру на 1 ч. составит: $36000\nВы подтверждаете платеж?","Да","Нет");
						}
					}
				}
				default: ShowPlayerDialog(playerid, 37, DIALOG_STYLE_LIST, "ATM", "{FFFFFF}Перевод денег игроку\nПополнить мобильный счет\nСнять с баланса бизнеса\nПополнить балас бизнеса\nОплатить дом\nОплатить квартиру","Выбор","Закрыть");
		    }
		}
		case 37:
		{
		    if(!response) return DeletePVar(playerid,"Skoka");
		    if(PlayerInfo[playerid][pCash] < GetPVarInt(playerid,"Skok")) return SendClientMessage(playerid,CGREY,"У вас недостаточно средств");
		    new text[5];
			if(GetPlayerFlat(playerid))
			{
			    HInfo[GetPVarInt(playerid,"PlayerHouse")][hOplata] += GetPVarInt(playerid,"Skok")/50;
			    GiveMoney(playerid,-GetPVarInt(playerid,"Skok"));
		            format(query, sizeof(query), "UPDATE "TABLE_KV" SET oplata = '%i' WHERE id = '%d' LIMIT 1",KvInfo[GetPVarInt(playerid,"PlayerHouse")][kOplata],GetPVarInt(playerid,"PlayerHouse"));
	            mysql_query(query);
			    if(GetPVarInt(playerid,"Skok")/50 < 24) format(text,sizeof(text),"часа");
			    else format(text,sizeof(text),"дня");
				static const fmt_str[] = "Вы внесли плату за квартиру на: %i %s. Стоимость: $%i";
				new string[sizeof(fmt_str)+10+10+5];
				format(string, sizeof(string), fmt_str, GetPVarInt(playerid,"Skok")/50,text,GetPVarInt(playerid,"Skok"));
				SendClientMessage(playerid,-1,string);
			}
		}
В диалог банкомата добавляем это​

PHP:
     			    if(GetPlayerFlat(playerid))
     			    {
     			        ShowPlayerDialog(playerid, 36, DIALOG_STYLE_LIST, "На сколкьо хотите оплатить?","{FFFFFF}1 час\n12 часов\nСутки\nНеделя\n2 Недели\nМесяц(25% комиссия)" , "Выбор","Назад");
					}
					else SendClientMessage(playerid,CGREY,"Вы не владеете квартирой");

В конец мода​

PHP:
stock InfoOplFlat(playerid)
{
	if(KvInfo[GetPVarInt(playerid,"PlayerFlat")][kOplata] > 24)
	{
		static const fmt_string1[] = "За квартиру уже оплачено на %i дн. вперед";
		new str1[sizeof(fmt_string1)+10];
		format(str1, sizeof(str1), fmt_string1,KvInfo[GetPVarInt(playerid,"PlayerFlat")][kOplata]/24);
		SendClientMessage(playerid,-1,str1);
	}
	else
	{
		static const fmt_string1[] = "За квартиру уже оплачено на %i ч. вперед";
		new str1[sizeof(fmt_string1)+10];
		format(str1, sizeof(str1), fmt_string1,KvInfo[GetPVarInt(playerid,"PlayerFlat")][kOplata]);
		SendClientMessage(playerid,-1,str1);
	}
	return true;
}
stock LoadKv()
{
	new time = GetTickCount();
	mysql_query("SELECT * FROM `"TABLE_KV"`");
	mysql_store_result();
	if(mysql_num_rows() > 0)
	{
		for(new idx = 1; idx <= mysql_num_rows(); idx++)
		{
			mysql_fetch_row(query);
			sscanf(query, "p<|>is[32]iffffffiifiiffffiii",
			KvInfo[idx][id],
			KvInfo[idx][kOwner],
			KvInfo[idx][kVirtt],
			KvInfo[idx][kX],
			KvInfo[idx][kY],
			KvInfo[idx][kZ],
			KvInfo[idx][kXX],
			KvInfo[idx][kYY],
			KvInfo[idx][kZZ],
			KvInfo[idx][kInt],
			KvInfo[idx][kVirt],
			KvInfo[idx][kFa],
			KvInfo[idx][kPod],
			KvInfo[idx][kCost],
			KvInfo[idx][kCarx],
			KvInfo[idx][kCary],
			KvInfo[idx][kCarz],
			KvInfo[idx][kCarfa],
			KvInfo[idx][kHeal],
			KvInfo[idx][kOplata],
			KvInfo[idx][kLock]);
			TOTALKV++;
			if(!strcmp(KvInfo[idx][kOwner],"None",true))
			{
				    static const fmt_string1[] = "Квартира: %i\nСтоимость: $%i";
					new str1[sizeof(fmt_string1)+4+10];
					format(str1,sizeof(str1),fmt_string1,KvInfo[idx][id],KvInfo[idx][kCost]);
				    KvLable[idx] = Create3DTextLabel(str1,0xDCEDF9FF,KvInfo[idx][kX], KvInfo[idx][kY], KvInfo[idx][kZ]+1,20.0,KvInfo[idx][kVirtt],1);
			}
			else
			{
	   				static const fmt_string1[] = "Квартира: %i\nВладелец: %s";
					new str1[sizeof(fmt_string1)+4+MAX_PLAYER_NAME];
					format(str1,sizeof(str1),fmt_string1,KvInfo[idx][id],KvInfo[idx][kOwner]);
				    KvLable[idx] = Create3DTextLabel(str1,CAGREEN,KvInfo[idx][kX], KvInfo[idx][kY], KvInfo[idx][kZ]+1,20.0,KvInfo[idx][kVirtt],1);
			}
		}
	}
	mysql_free_result();
	printf(" [LOAD]: Успешная загрузка 'LoadKZ' - загружено %d за %d м.с", TOTALKV,GetTickCount() - time);

}
stock LoadPd()
{
	new time = GetTickCount();
	mysql_query("SELECT * FROM `"TABLE_PD"`");
	mysql_store_result();
	if(mysql_num_rows() > 0)
	{
		for(new idx = 1; idx <= mysql_num_rows(); idx++)
		{
			mysql_fetch_row(query);
			sscanf(query, "p<|>iffffffiiif",
			pdInfo[idx][id],
			pdInfo[idx][pdX],
			pdInfo[idx][pdY],
			pdInfo[idx][pdZ],
			pdInfo[idx][pdXX],
			pdInfo[idx][pdYY],
			pdInfo[idx][pdZZ],
			pdInfo[idx][pdVirt],
			pdInfo[idx][pdNach],
			pdInfo[idx][pdKon],
			pdInfo[idx][pdFa]);
			TOTALPD++;
			pdInfo[idx][pdPick][0] = CreatePickup(1318, 23, pdInfo[idx][pdX],pdInfo[idx][pdY],pdInfo[idx][pdZ]+0.35,0);
			pdInfo[idx][pdPick][1] = CreatePickup(1318, 23, 2214.3845,-1150.5531,1025.7969,pdInfo[idx][pdVirt]);
			pdInfo[idx][pdPick][2] = CreatePickup(1239, 23, 2217.3813,-1146.4050,1025.7969,pdInfo[idx][pdVirt]);
			static const fmt_string1[] = "Подъезд: %i\nКвартиры %i-%i";
			new str1[sizeof(fmt_string1)+5+5+5];
			format(str1,sizeof(str1),fmt_string1,pdInfo[idx][id],pdInfo[idx][pdNach],pdInfo[idx][pdKon]);
 			pdLable[idx] = Create3DTextLabel(str1,0xDCEDF9FF,pdInfo[idx][pdX], pdInfo[idx][pdY], pdInfo[idx][pdZ]+1,20.0,0,1);
		}
	}
	mysql_free_result();
	printf(" [LOAD]: Успешная загрузка 'LoadKZ' - загружено %d за %d м.с", TOTALKV,GetTickCount() - time);
}
stock GetPlayerFlat(playerid)
{
	new house = 0;
	for(new i = 1; i <= TOTALKV;i++)
	{
		if(strcmp(PlayerInfo[playerid][pSendername], KvInfo[i][kOwner], true) == 0) house++, SetPVarInt(playerid, "PlayerFlat", i);
	}
	return house;
}
В OnGameModeInit​

PHP:
	LoadKv();
	LoadPd();
В OnPlayerPickUpPickup​

PHP:
for(new i = 1; i <= TOTALPD; i++)
	{
	    if(pickupid == pdInfo[i][pdPick][0])
		{
		    SetPlayerPos(playerid,2217.1704,-1150.3203,1025.7969);
		    SetPlayerFacingAngle(playerid,268.4353);
		    SetPlayerInterior(playerid,15);
		    SetPlayerVirtualWorld(playerid,pdInfo[i][pdVirt]);
		}
		else if(pickupid == pdInfo[i][pdPick][1])
		{
  			SetPlayerPos(playerid,pdInfo[i][pdXX],pdInfo[i][pdYY],pdInfo[i][pdZZ]);
		    SetPlayerFacingAngle(playerid,pdInfo[i][pdFa]);
		    SetPlayerInterior(playerid,0);
		    SetPlayerVirtualWorld(playerid,0);
		}
		else if(pickupid == pdInfo[i][pdPick][2])
		{
 			static const fmt_str[] = "Подъезд №%i";
			new string[sizeof(fmt_str)+5];
			format(string, sizeof(string), fmt_str,i);
			new srrt[700];
			for(new i1 = 1; i1 <= TOTALKV;i1++)
			{
			    if(KvInfo[i1][kPod] == i)
			    {
			            if(!strcmp(KvInfo[i1][kOwner],"None",true))
			            {
  							static const fmt_string1[] = "{FFFFFF}Квартира №%i\t\t Продаётся - $%i\n";
							new str[sizeof(fmt_string1)+2+40+10];
							format(str, sizeof(str), fmt_string1,KvInfo[i1][id],KvInfo[i1][kCost]);
       						strcat(srrt, str);
			            }
			            else
			            {
	    					static const fmt_string1[] = "{FFFFFF}Квартира №%i\t\t Владелец - %s\n";
							new str[sizeof(fmt_string1)+2+40+10];
							format(str, sizeof(str), fmt_string1,KvInfo[i1][id],KvInfo[i1][kOwner]);
       						strcat(srrt, str);
			            }
			    }
			}
		    ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX,string,srrt,"Ок","");
		}
	
	}
Команды для создания квартир и подъездов
Инструкция по созданию:
1. Встаём там куда игрок будет ВЫХОДИТЬ из подъезда и пишем /cpod
2. Далее идем на место где будет сам подъезд пишем /cpod1
3. Потом просто пишем /ppp
​

PHP:
CMD:cpod(playerid,params[])
{
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    format(coor, sizeof(coor),"%f, %f, %f", x, y, z);
    SendClientMessage(playerid, -1, "Координаты созданы. Установите выходные координаты: /cpod1");
    return true;
}

CMD:ppp(playerid)
{
	TOTALPD++;
	TOTALKV++;
	pdInfo[TOTALPD][id] = TOTALPD;
	pdInfo[TOTALPD][pdNach] = TOTALKV;
	pdInfo[TOTALPD][pdKon] = TOTALKV+12;
	SendClientMessage(playerid,-1,"1");
	new kek = 0;
	new krek = TOTALKV;
	TOTALKV += 12;
	for(new i = krek; i <= TOTALKV; i++)
	{
		switch(random(3))
		{
			case 0:
			{
			    KvInfo[i][kXX] = 2283.2683;
			    KvInfo[i][kYY] = -1137.6683;
			    KvInfo[i][kZZ] = 1050.8984;
			    KvInfo[i][kFa] = 357.6659;
			    KvInfo[i][kInt] = 11;
			    KvInfo[i][kCost] = 110000;
			}
			case 1:
			{
   				KvInfo[i][kXX] = 2215.3562;
			    KvInfo[i][kYY] = -1076.0864;
			    KvInfo[i][kZZ] = 1050.4844;
			    KvInfo[i][kFa] = 89.4577;
			    KvInfo[i][kInt] = 1;
			    KvInfo[i][kCost] = 125000;

			}
			case 2,3:
			{
				KvInfo[i][kXX] = 2233.5273;
			    KvInfo[i][kYY] = -1111.0854;
			    KvInfo[i][kZZ] = 1050.8828;
			    KvInfo[i][kFa] = 0.4547;
			    KvInfo[i][kInt] = 5;
			    KvInfo[i][kCost] = 75000;

			}

		}
  		KvInfo[i][id] = i;
  		KvInfo[i][kX] = HotelNum[kek][0];
		KvInfo[i][kY] = HotelNum[kek][1];
		KvInfo[i][kZ] = HotelNum[kek][2];
		KvInfo[i][kVirtt] = TOTALPD;
  		KvInfo[i][kVirt] = i;
  		SendClientMessage(playerid,-1,"+");
    	KvInfo[i][kPod] = TOTALPD;
    	kek++;
	    static const fmt_string1[] = "Квартира: %i\nСтоимость: $%i";
		new str1[sizeof(fmt_string1)+4+10];
		format(str1,sizeof(str1),fmt_string1,KvInfo[i][id],KvInfo[i][kCost]);
		strmid(KvInfo[i][kOwner], "None", 0, strlen("None"), MAX_PLAYER_NAME);
 		KvLable[i] = Create3DTextLabel(str1,0xDCEDF9FF,KvInfo[i][kX], KvInfo[i][kY], KvInfo[i][kZ]+1,20.0,KvInfo[i][kVirtt],1);
		format(query, sizeof(query), "INSERT INTO `"TABLE_KV"` (`id`,`name`,`kvirt`,`x`,`y`,`z`,`xx`,`yy`,`zz`,`int`,`virt`,`kfa`,`pod`,`cost`,`carx`,`cary`,`carz`,`carfa`) VALUES ('%d', 'None', '%d', '%f', '%f', '%f','%f', '%f', '%f', '%d', '%d', '%f','%d', '%d',0, 0, 0, 0)",
		i,KvInfo[i][kVirtt],KvInfo[i][kX],KvInfo[i][kY],KvInfo[i][kZ],KvInfo[i][kXX],KvInfo[i][kYY],KvInfo[i][kZZ],KvInfo[i][kInt],KvInfo[i][kVirt],KvInfo[i][kFa],KvInfo[i][kPod],
		KvInfo[i][kCost]);
		mysql_query(query);

	}
	return true;
}
CMD:cpod1(playerid,params[])
{
	new Float:x, Float:y, Float:z, Float:fa;
	GetPlayerPos(playerid, x, y, z);
	GetPlayerFacingAngle(playerid, fa);
	sscanf(coor,"p<,>fff",pdInfo[TOTALPD][pdX],pdInfo[TOTALPD][pdY],pdInfo[TOTALPD][pdZ]);
	SendClientMessage(playerid,-1,"2");
	pdInfo[TOTALPD][pdXX] = x;
	pdInfo[TOTALPD][pdYY] = y;
	pdInfo[TOTALPD][pdZZ] = z;
    pdInfo[TOTALPD][pdFa] = fa;
	pdInfo[TOTALPD][pdVirt] = TOTALPD;
	pdInfo[TOTALPD][pdPick][0] = CreatePickup(1318, 23, pdInfo[TOTALPD][pdX],pdInfo[TOTALPD][pdY],pdInfo[TOTALPD][pdZ]+0.35,0);
	pdInfo[TOTALPD][pdPick][1] = CreatePickup(1318, 23, 2214.3845,-1150.5531,1025.7969,pdInfo[TOTALPD][pdVirt]);
	pdInfo[TOTALPD][pdPick][2] = CreatePickup(1239, 23, 2217.3813,-1146.4050,1025.7969,pdInfo[TOTALPD][pdVirt]);
	static const fmt_string1[] = "Подъезд: %i\nКвартиры %i-%i";
	new str1[sizeof(fmt_string1)+5+5+5];
	format(str1,sizeof(str1),fmt_string1,pdInfo[TOTALPD][id],pdInfo[TOTALPD][pdNach],pdInfo[TOTALPD][pdKon]);
	pdLable[TOTALPD] = Create3DTextLabel(str1,0xDCEDF9FF,pdInfo[TOTALPD][pdX], pdInfo[TOTALPD][pdY], pdInfo[TOTALPD][pdZ]+1,20.0,0,1);
	format(query, sizeof(query), "INSERT INTO `"TABLE_PD"` (`id`,`x`,`y`,`z`,`xx`,`yy`,`zz`,`virt`,`nach`,`kon`,`fa`) VALUES ('%d', '%f', '%f', '%f','%f', '%f', '%f', '%d', '%d', '%d', '%f')",
	TOTALPD,pdInfo[TOTALPD][pdX],pdInfo[TOTALPD][pdY],pdInfo[TOTALPD][pdZ],pdInfo[TOTALPD][pdXX],pdInfo[TOTALPD][pdYY],pdInfo[TOTALPD][pdZZ],
	pdInfo[TOTALPD][pdVirt],pdInfo[TOTALPD][pdNach],pdInfo[TOTALPD][pdKon],pdInfo[TOTALPD][pdFa]);
	mysql_query(query);
	return SendClientMessage(playerid,-1,"/ppp");
}
База данных​

PHP:
CREATE TABLE IF NOT EXISTS `kvart` (
  `id` int(11) NOT NULL,
  `name` varchar(32) CHARACTER SET utf8 NOT NULL DEFAULT 'None',
  `kvirt` int(11) NOT NULL,
  `x` float NOT NULL,
  `y` float NOT NULL,
  `z` float NOT NULL,
  `xx` float NOT NULL,
  `yy` float NOT NULL,
  `zz` float NOT NULL,
  `int` int(11) NOT NULL,
  `virt` int(11) NOT NULL,
  `kfa` float NOT NULL,
  `pod` int(11) NOT NULL,
  `cost` int(11) NOT NULL,  
  `carx` float NOT NULL,
  `cary` float NOT NULL,
  `carz` float NOT NULL,
  `carfa` float NOT NULL
) ENGINE=MyISAM AUTO_INCREMENT=130 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

CREATE TABLE IF NOT EXISTS `pod` (
  `id` int(11) NOT NULL,
  `x` float NOT NULL,
  `y` float NOT NULL,
  `z` float NOT NULL,
  `xx` float NOT NULL,
  `yy` float NOT NULL,
  `zz` float NOT NULL,
  `virt` int(11) NOT NULL,
  `noch` int(11) NOT NULL,
  `kon` int(11) NOT NULL,
  `fa` float NOT NULL
) ENGINE=MyISAM AUTO_INCREMENT=130 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу