Доступ к архиву

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

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

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

Maxim_Shmakov

Изучающий
Регистрация
18 Сен 2011
Сообщения
540
Лучшие ответы
0
Репутация
118
Здравствуйте Ув. пользователи pawno-info!
Я делаю мод с new.pwn и изначально занялся системой домов, что бы не париться я вырезал её из RLS и слегка изменил!
Вот теперь выкладываю мануал для вас.

Итак начнем!

Ко всем forward добавим:
PHP:
forward LoadProperty();
forward OnPropUpdate();
forward OnPropTextdrawUpdate();
Ко всем new добавим:
PHP:
new pickups;//Пикап дома
new Text3D:HouseLabel[MAX_HOUSES];//3d текст домов
Ко всем define добавим:
PHP:
#define MAX_HOUSES 101 // 101 - общее количество домов на сервере его можно узнать в new HouseInfo
Так же добавим enum:

PHP:
enum hInfo
{
	Float:hEntrancex,
	Float:hEntrancey,
	Float:hEntrancez,
	Float:hExitx,
	Float:hExity,
	Float:hExitz,
	hOwner[MAX_PLAYER_NAME],
	hValue,
	hInt,
	hLock,
	hOwned,
	hTakings,
	hKlass,
	hPickup,
	hMIcon,
};

new HouseInfo[101][hInfo];//Количество домов
В public OnGameModeInit():
PHP:
LoadProperty();//Загрузка домов
И где нибудь в конце public OnGameModeInit() добавим:
PHP:
new PropertyString[128];
	for(new h = 0; h < sizeof(HouseInfo); h++)
	{
  	if(HouseInfo[h][hOwned] == 0)
	{
	        if(HouseInfo[h][hKlass] == 0)format(PropertyString, sizeof(PropertyString), "{fb1902}Дом продаётся\n{02fbf2}Цена: {fbec02}%d$\n{02fbf2}Класс: {fb020e}Nope\n{02fbf2}Номер дома: {0e02fb}%d\n{fb1902}/buyhouse",HouseInfo[h][hValue],h);
            else if(HouseInfo[h][hKlass] == 1)format(PropertyString, sizeof(PropertyString), "{fb1902}Дом продаётся\n{02fbf2}Цена: {fbec02}%d$\n{02fbf2}Класс: {fb020e}D\n{02fbf2}Номер дома: {0e02fb}%d\n{fb1902}/buyhouse",HouseInfo[h][hValue],h);
            else if(HouseInfo[h][hKlass] == 2)format(PropertyString, sizeof(PropertyString), "{fb1902}Дом продаётся\n{02fbf2}Цена: {fbec02}%d$\n{02fbf2}Класс: {fb020e}C\n{02fbf2}Номер дома: {0e02fb}%d\n{fb1902}/buyhouse",HouseInfo[h][hValue],h);
            else if(HouseInfo[h][hKlass] == 3)format(PropertyString, sizeof(PropertyString), "{fb1902}Дом продаётся\n{02fbf2}Цена: {fbec02}%d$\n{02fbf2}Класс: {fb020e}B\n{02fbf2}Номер дома: {0e02fb}%d\n{fb1902}/buyhouse",HouseInfo[h][hValue],h);
            else format(PropertyString, sizeof(PropertyString), "{fb1902}Дом продаётся\n{02fbf2}Цена: {fbec02}%d$\n{02fbf2}Класс: {fb020e}A\n{09b90e}Номер дома: {0e02fb}%d\n{fb1902}/buyhouse",HouseInfo[h][hValue],h);
            HouseLabel[h] = Create3DTextLabel(PropertyString ,0x00FF00AA,HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez],25, 0, 1);
	 		HouseInfo[h][hPickup] = CreatePickup(1273, 23, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez],-1);
			pickups++;
            HouseInfo[h][hMIcon] = CreateDynamicMapIcon(HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez], 31, COLOR_WHITE, 0, -1, -1, 400.0);
	}
	if(HouseInfo[h][hOwned] == 1)
	{
            if(HouseInfo[h][hKlass] == 0)format(PropertyString, sizeof(PropertyString), "{09b90e}Владелец: {fbf802}%s\n{09b90e}Класс: {fb020e}Nope\n{09b90e}Номер дома: {0e02fb}%d",HouseInfo[h][hOwner],h);
            else if(HouseInfo[h][hKlass] == 1)format(PropertyString, sizeof(PropertyString), "{09b90e}Владелец: {fbf802}%s\n{09b90e}Класс: {fb020e}D\n{09b90e}Номер дома: {0e02fb}%d",HouseInfo[h][hOwner],h);
            else if(HouseInfo[h][hKlass] == 2)format(PropertyString, sizeof(PropertyString), "{09b90e}Владелец: {fbf802}%s\n{09b90e}Класс: {fb020e}C\n{09b90e}Номер дома: {0e02fb}%d",HouseInfo[h][hOwner],h);
            else if(HouseInfo[h][hKlass] == 3)format(PropertyString, sizeof(PropertyString), "{09b90e}Владелец: {fbf802}%s\n{09b90e}Класс: {fb020e}B\n{09b90e}Номер дома: {0e02fb}%d",HouseInfo[h][hOwner],h);
            else format(PropertyString, sizeof(PropertyString), "{09b90e}Владелец: {fbf802}%s\n{09b90e}Класс: {fb020e}A\n{09b90e}Номер дома: {0e02fb}%d",HouseInfo[h][hOwner],h);
            HouseLabel[h] = Create3DTextLabel(PropertyString ,0x00FFFFAA,HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez],25, 0, 1);
			HouseInfo[h][hPickup] = CreatePickup(1272, 23, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez],-1);
			pickups++;
			HouseInfo[h][hMIcon] = CreateDynamicMapIcon(HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez], 32, COLOR_WHITE, 0, -1, -1, 400.0);
    }
	}
В public OnGameModeExit():
PHP:
OnPropUpdate();//Сохранение домов
Идем в enum pInfo и добавляем туда:
PHP:
pHousecash,//Домашний счет
	pPhousekey,//Ключ от дома
	pLocal,
В public OnPlayerConnect(playerid):
PHP:
PlayerInfo[playerid][pPhousekey] = 255;
	PlayerInfo[playerid][pHousecash] = 0;
	PlayerInfo[playerid][pLocal] = 255;
В public OnPlayerRegister(playerid):
PHP:
iniSetInt(File,"House",PlayerInfo[playerid][pPhousekey]);
			iniSetInt(File,"Housecash",PlayerInfo[playerid][pHousecash]);
			iniSetInt(File,"Local",PlayerInfo[playerid][pLocal]);
В public OnPlayerUpdateRL(playerid):
PHP:
iniSetInt(File,"House",PlayerInfo[playerid][pPhousekey]);
			iniSetInt(File,"Housecash",PlayerInfo[playerid][pHousecash]);
			iniSetInt(File,"Local",PlayerInfo[playerid][pLocal]);
В public OnPlayerLogin:
PHP:
iniGetInt(File,"House",PlayerInfo[playerid][pPhousekey]);
		iniGetInt(File,"Housecash",PlayerInfo[playerid][pHousecash]);
		iniGetInt(File,"Local",PlayerInfo[playerid][pLocal]);
В этом же паблике находим:
if(PlayerInfo[playerid][pReg] == 0)
{
И после этого вставляем:
PHP:
PlayerInfo[playerid][pLocal] = 255;
Далее создадим stock'и and public'и где нибудь в конце мода:
PHP:
stock BuyHouse()
{
if(logs == 1)
{
printr("BuyHouse");
}
for(new h = 0; h < sizeof(HouseInfo); h++)
	{
      new PropertyString[128];
	  if(HouseInfo[h][hOwned] == 0)
		{
		Delete3DTextLabel(HouseLabel[h]);
		if(HouseInfo[h][hKlass] == 0)format(PropertyString, sizeof(PropertyString), "{fb1902}Дом продаётся\n{02fbf2}Цена: {fbec02}%d$\n{02fbf2}Класс: {fb020e}Nope\n{02fbf2}Номер дома: {0e02fb}%d\n{fb1902}/buyhouse",HouseInfo[h][hValue],h);
        else if(HouseInfo[h][hKlass] == 1)format(PropertyString, sizeof(PropertyString), "{fb1902}Дом продаётся\n{02fbf2}Цена: {fbec02}%d$\n{02fbf2}Класс: {fb020e}D\n{02fbf2}Номер дома: {0e02fb}%d\n{fb1902}/buyhouse",HouseInfo[h][hValue],h);
        else if(HouseInfo[h][hKlass] == 2)format(PropertyString, sizeof(PropertyString), "{fb1902}Дом продаётся\n{02fbf2}Цена: {fbec02}%d$\n{02fbf2}Класс: {fb020e}C\n{02fbf2}Номер дома: {0e02fb}%d\n{fb1902}/buyhouse",HouseInfo[h][hValue],h);
        else if(HouseInfo[h][hKlass] == 3)format(PropertyString, sizeof(PropertyString), "{fb1902}Дом продаётся\n{02fbf2}Цена: {fbec02}%d$\n{02fbf2}Класс: {fb020e}B\n{02fbf2}Номер дома: {0e02fb}%d\n{fb1902}/buyhouse",HouseInfo[h][hValue],h);
        else format(PropertyString, sizeof(PropertyString), "{fb1902}Дом продаётся\n{02fbf2}Цена: {fbec02}%d$\n{02fbf2}Класс: {fb020e}A\n{09b90e}Номер дома: {0e02fb}%d\n{fb1902}/buyhouse",HouseInfo[h][hValue],h);
        HouseLabel[h] = Create3DTextLabel(PropertyString ,0x00FF00AA,HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez],25, 0, 1);
		DestroyDynamicMapIcon(HouseInfo[h][hMIcon]);
		DestroyPickup(HouseInfo[h][hPickup]);
   		AddStaticPickup(1273, 21, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]);
		pickups++;
		HouseInfo[h][hMIcon] = CreateDynamicMapIcon(HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez], 31, COLOR_WHITE, 0, -1, -1, 400.0);
		}
	  if(HouseInfo[h][hOwned] == 1)
		{
		    Delete3DTextLabel(HouseLabel[h]);
            if(HouseInfo[h][hKlass] == 0)format(PropertyString, sizeof(PropertyString), "{09b90e}Владелец: {fbf802}%s\n{09b90e}Класс: {fb020e}Nope\n{09b90e}Номер дома: {0e02fb}%d",HouseInfo[h][hOwner],h);
            else if(HouseInfo[h][hKlass] == 1)format(PropertyString, sizeof(PropertyString), "{09b90e}Владелец: {fbf802}%s\n{09b90e}Класс: {fb020e}D\n{09b90e}Номер дома: {0e02fb}%d",HouseInfo[h][hOwner],h);
            else if(HouseInfo[h][hKlass] == 2)format(PropertyString, sizeof(PropertyString), "{09b90e}Владелец: {fbf802}%s\n{09b90e}Класс: {fb020e}C\n{09b90e}Номер дома: {0e02fb}%d",HouseInfo[h][hOwner],h);
            else if(HouseInfo[h][hKlass] == 3)format(PropertyString, sizeof(PropertyString), "{09b90e}Владелец: {fbf802}%s\n{09b90e}Класс: {fb020e}B\n{09b90e}Номер дома: {0e02fb}%d",HouseInfo[h][hOwner],h);
            else format(PropertyString, sizeof(PropertyString), "{09b90e}Владелец: {fbf802}%s\n{09b90e}Класс: {fb020e}A\n{09b90e}Номер дома: {0e02fb}%d",HouseInfo[h][hOwner],h);
            HouseLabel[h] = Create3DTextLabel(PropertyString ,0x00FFFFAA,HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez],25, 0, 1);
			DestroyDynamicMapIcon(HouseInfo[h][hMIcon]);
			DestroyPickup(HouseInfo[h][hPickup]);
  			AddStaticPickup(1272, 21, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]);
			pickups++;
			HouseInfo[h][hMIcon] = CreateDynamicMapIcon(HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez], 32, COLOR_WHITE, 0, -1, -1, 400.0);
 		}
	}
return 1;
}
public LoadProperty()
{
if(logs == 1)
{
printr("LoadProperty");
}
new arrCoords[25][64];
new strFromFile2[256];
new File: file = fopen("logs/property.cfg", io_read);
if (file)
	{
		new idx;
		while (idx < sizeof(HouseInfo))
		{
			fread(file, strFromFile2);
			split(strFromFile2, arrCoords, ',');
			HouseInfo[idx][hEntrancex] = floatstr(arrCoords[0]);
			HouseInfo[idx][hEntrancey] = floatstr(arrCoords[1]);
			HouseInfo[idx][hEntrancez] = floatstr(arrCoords[2]);
			HouseInfo[idx][hExitx] = floatstr(arrCoords[3]);
			HouseInfo[idx][hExity] = floatstr(arrCoords[4]);
			HouseInfo[idx][hExitz] = floatstr(arrCoords[5]);
			strmid(HouseInfo[idx][hOwner], arrCoords[6], 0, strlen(arrCoords[6]), 255);
			HouseInfo[idx][hValue] = strval(arrCoords[7]);
			HouseInfo[idx][hInt] = strval(arrCoords[8]);
			HouseInfo[idx][hLock] = strval(arrCoords[9]);
			HouseInfo[idx][hOwned] = strval(arrCoords[10]);
			HouseInfo[idx][hTakings] = strval(arrCoords[11]);
			HouseInfo[idx][hKlass] = strval(arrCoords[12]);
			HouseInfo[idx][hMIcon] = strval(arrCoords[13]);
			idx++;
		}
		fclose(file);
	}
return 1;
}
public OnPropUpdate()
{
if(logs == 1)
{
printr("OnPropUpdate");
}
new idx;
new File: file2;
while (idx < sizeof(HouseInfo))
	{
		new coordsstring[256];
        format(coordsstring, sizeof(coordsstring), "%f,%f,%f,%f,%f,%f,%s,%d,%d,%d,%d,%d,%d,%d\n",
		HouseInfo[idx][hEntrancex],
		HouseInfo[idx][hEntrancey],
		HouseInfo[idx][hEntrancez],
		HouseInfo[idx][hExitx],
		HouseInfo[idx][hExity],
		HouseInfo[idx][hExitz],
		HouseInfo[idx][hOwner],
		HouseInfo[idx][hValue],
		HouseInfo[idx][hInt],
		HouseInfo[idx][hLock],
		HouseInfo[idx][hOwned],
		HouseInfo[idx][hTakings],
		HouseInfo[idx][hKlass],
		HouseInfo[idx][hMIcon]);
		if(idx == 0)
		{
			file2 = fopen("logs/property.cfg", io_write);
		}
		else
		{
			file2 = fopen("logs/property.cfg", io_append);
		}
		fwrite(file2, coordsstring);
		idx++;
		fclose(file2);
	}
return 1;
}

Далее добавим команды!
В public OnPlayerCommandText(playerid, cmdtext[]):

PHP:
if(strcmp(cmd, "/setpos", true) == 0)
    {
        if(!strlen(tmp) && PlayerInfo[playerid][pAdmin] == 6)
         {
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "{ff0033} » Введите: {FFFFFF}/setpos [Номер дома] [Цена]");
            new house = strval(tmp);
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp)) return    SendClientMessage(playerid, COLOR_WHITE, "{ff0033} » Введите: {FFFFFF}/setpos [Номер дома] [Цена]");
            new money;
            money = strval(tmp);
            if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "{ff0033} » Введите: {FFFFFF}/setpos [Номер дома] [Цена]");
            HouseInfo[house][hValue] = money;
            new Float: lwx, Float:lwy, Float:lwz;
            GetPlayerPos(playerid, lwx, lwy, lwz);
            HouseInfo[house][hEntrancex] = lwx;
            HouseInfo[house][hEntrancey]= lwy;
            HouseInfo[house][hEntrancez] = lwz;
            SendClientMessage(playerid, COLOR_WHITE, " » Дом успешно поставлен!");
            BuyHouse();
        }
        return 1;
}
    if(strcmp(cmd, "/edit", true) == 0)
		{
	    	if(PlayerInfo[playerid][pAdmin] >= 6)
			{
				if(PlayerInfo[playerid][pMuted] == 1) { SendClientMessage(playerid, TEAM_CYAN_COLOR, "У Вас бан чата!"); return 1; }
				ShowPlayerDialog(playerid, 3725, DIALOG_STYLE_LIST, "Выберите действие", "Продать все дома\nРаспределить все дома по классам\n Распределить по интеръерам", "Ок", "Закрыть");
				return 1;
				}
            return 1;
}
    if(strcmp(cmd, "/hmenu", true) == 0 || strcmp(cmd, "/hm", true) == 0)
	{
			new bouse = PlayerInfo[playerid][pPhousekey];
			GetPlayerName(playerid, playername, sizeof(playername));
			if (bouse != 255 && strcmp(playername, HouseInfo[PlayerInfo[playerid][pPhousekey]][hOwner], true) == 0)
			{
   				if (PlayerToPoint(10, playerid,HouseInfo[bouse][hExitx], HouseInfo[bouse][hExity], HouseInfo[bouse][hExitz]))
				{
					format(string, sizeof(string), "- Открыть / Закрыть дом\n- Продать дом\n- На счету дома: %d вирт", HouseInfo[bouse][hTakings]);
       				ShowPlayerDialog(playerid, 5300, DIALOG_STYLE_LIST, "Информация о доме", string, "Выбрать", "Отмена");
			    	return 1;
			    }
			    else
			    {
			        SendClientMessage(playerid, COLOR_GREY, "Вы не у себя дома!");
			        return 1;
			    }
			}
			else
			{
			    SendClientMessage(playerid, COLOR_GREY, "Вы не владелец дома!");
			    return 1;
			}
 }
    if(strcmp(cmd, "/buyhouse", true) == 0)
	    {
 	        new Float:oldposx, Float:oldposy, Float:oldposz;
			GetPlayerName(playerid, playername, sizeof(playername));
			GetPlayerPos(playerid, oldposx, oldposy, oldposz);
			for(new h = 0; h < sizeof(HouseInfo); h++)
			{
				if(PlayerToPoint(2.0, playerid, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]) && HouseInfo[h][hOwned] == 0)
				{
					if(PlayerInfo[playerid][pPhousekey] != 255 && strcmp(playername, HouseInfo[PlayerInfo[playerid][pPhousekey]][hOwner], true) == 0)
					{
						SendClientMessage(playerid, COLOR_LIGHTGREEN, "У вас уже есть дом");
						SendClientMessage(playerid, COLOR_WHITE, "(/hmenu - Продать дом)");
						return 1;
					}
					if(PlayerInfo[playerid][pCash] < HouseInfo[h][hValue]) return	SendClientMessage(playerid, COLOR_WHITE, "У вас нет столько денег на руках!");
					PlayerInfo[playerid][pPhousekey] = h;
					HouseInfo[h][hOwned] = 1;
					HouseInfo[h][hTakings] =100;
					GetPlayerName(playerid, sendername, sizeof(sendername));
                    strmid(HouseInfo[h][hOwner], sendername, 0, strlen(sendername), 255);
					PlayerInfo[playerid][pCash] -= HouseInfo[h][hValue];
					SetPlayerInterior(playerid,HouseInfo[h][hInt]);
					SetPlayerPos(playerid,HouseInfo[h][hExitx],HouseInfo[h][hExity],HouseInfo[h][hExitz]);
					PlayerInfo[playerid][pInt] = HouseInfo[h][hInt];
					PlayerInfo[playerid][pLocal] = h;
					SetPlayerVirtualWorld(playerid,h+50);
					SendClientMessage(playerid, COLOR_LIGHTGREEN, ":::: Ваш чек ::::");
					format(string, sizeof(string), "- Вы приобрели дом за %d вирт", HouseInfo[h][hValue]);
					SendClientMessage(playerid, COLOR_WHITE, string);
					format(string, sizeof(string), "- У Вас осталось: %d вирт", PlayerInfo[playerid][pCash]);
					SendClientMessage(playerid, COLOR_WHITE, string);
					SendClientMessage(playerid, COLOR_WHITE, "- Меню дома: /hmenu");
					SendClientMessage(playerid, COLOR_WHITE, "- Не забудьте пополнить Домашний счёт");
					SendClientMessage(playerid, COLOR_LIGHTGREEN, ":::: Ваш чек ::::");
					OnPropUpdate();
					BuyHouse();
					OnPlayerUpdateRL(playerid);
					return 1;
					}
 		 		}
            return 1;
        }
    if(strcmp(cmd, "/enter", true) == 0)
		{
		for(new i = 0; i < sizeof(HouseInfo); i++)
			{
	    	if (PlayerToPoint(1, playerid,HouseInfo[i][hEntrancex], HouseInfo[i][hEntrancey], HouseInfo[i][hEntrancez]))
			{
			if(PlayerInfo[playerid][pPhousekey] == i || HouseInfo[i][hLock] == 0)
			{
						SetPlayerInterior(playerid,HouseInfo[i][hInt]);
						SetPlayerVirtualWorld(playerid,i+50);
						SetPlayerPos(playerid,HouseInfo[i][hExitx],HouseInfo[i][hExity],HouseInfo[i][hExitz]);
						PlayerInfo[playerid][pInt] = HouseInfo[i][hInt];
						PlayerInfo[playerid][pLocal] = i;
					}
					else
					{
     					GameTextForPlayer(playerid, "~r~Locked", 5000, 1);
					}
				}
        	}
        return 1;
}
В public OnPlayerKeyStateChange:
PHP:
if(newkeys == 1024)//Alt
	{
	for(new i = 0; i < sizeof(HouseInfo); i++)
            {
                if (PlayerToPoint(3, playerid,HouseInfo[i][hExitx], HouseInfo[i][hExity], HouseInfo[i][hExitz]))
                {
                     if (GetPlayerVirtualWorld(playerid) == i+50)
                    {
                        ShowPlayerDialog(playerid,70,DIALOG_STYLE_MSGBOX,"Выход из дома","Хотите выйти из дома?", "Да", "Нет");
                   }
                }
         }
    }
if(newkeys == 1024)//Alt
	{
	for(new i = 0; i < sizeof(HouseInfo); i++)
            {
                if (PlayerToPoint(1, playerid,HouseInfo[i][hEntrancex], HouseInfo[i][hEntrancey], HouseInfo[i][hEntrancez]))
                {
                OnPlayerCommandText(playerid, "/enter");
                }
            }
       }

Далее добавим несколько диалогов!
В public OnDialogResponse:

PHP:
if(dialogid == 70)
    {
        if(response)
        {
          for(new i = 0; i < sizeof(HouseInfo); i++)
            {
            	if (PlayerToPoint(3, playerid,HouseInfo[i][hExitx], HouseInfo[i][hExity], HouseInfo[i][hExitz]))
                {
                     if (GetPlayerVirtualWorld(playerid) == i+50)
                    {
					    SetPlayerInterior(playerid,0);
                        SetPlayerVirtualWorld(playerid,0);
                        SetPlayerPos(playerid,HouseInfo[i][hEntrancex],HouseInfo[i][hEntrancey],HouseInfo[i][hEntrancez]);
                        PlayerInfo[playerid][pInt] = 0;
                        PlayerInfo[playerid][pLocal] = 255;
						return 1;
	  			}
  				}
  		}
       		}
		  else
		  {
		  return 1;
		  }
   	}
    if(dialogid == 3725)
    {
	if(response)
		{
			if(listitem == 0)
			{
			for(new h = 0; h < sizeof(HouseInfo); h++)
			{
		if(HouseInfo[h][hOwned] == 1)
		{
		HouseInfo[h][hOwned] = 0;
		SendClientMessage(playerid, COLOR_GRAD1, "Все дома проданы");
		strmid(HouseInfo[h][hOwner], "The State", 0, strlen("The State"), 255);
		BuyHouse();
		}
		}
            return 1;
		}
	        else if(listitem == 1)
	{
	for(new h = 0; h < sizeof(HouseInfo); h++)
	{
	if(HouseInfo[h][hValue] <= 300000)
	{
	HouseInfo[h][hKlass] = 0;
	}
	if(HouseInfo[h][hValue] >= 500000)
	{
	HouseInfo[h][hKlass] = 1;
	}
	if(HouseInfo[h][hValue] >= 2000000)
	{
	HouseInfo[h][hKlass] = 2;
	}
	if(HouseInfo[h][hValue] >= 3000000)
	{
	HouseInfo[h][hKlass] = 3;
	}
	if(HouseInfo[h][hValue] > 5000000)
	{
	HouseInfo[h][hKlass] = 4;
	}
	SendClientMessage(playerid, COLOR_GRAD1, "По классам дома распределены");
	}
	}
	        else if(listitem == 2)
	{
	for(new h = 0; h < sizeof(HouseInfo); h++)
	{
	new cens = HouseInfo[h][hKlass];
	if(cens == 0 )//Бомж стиль
	{
	HouseInfo[h][hInt] = 10;
	HouseInfo[h][hExitx] = 2262.83;
	HouseInfo[h][hExity]= -1137.71;
	HouseInfo[h][hExitz] =1050.63;
	}
	if(cens == 1 )
	{
	HouseInfo[h][hInt] = 5;
	HouseInfo[h][hExitx] = 2233.6919;
	HouseInfo[h][hExity]= -1112.8107;
	HouseInfo[h][hExitz] =1050.8828;
	}
	if(cens == 2 )
	{
	HouseInfo[h][hInt] = 10;
	HouseInfo[h][hExitx] = 2260.76;
	HouseInfo[h][hExity]= -1210.45;
	HouseInfo[h][hExitz] =1049.02;
	}
	if(cens == 3 )
	{
	HouseInfo[h][hInt] = 3;
	HouseInfo[h][hExitx] = 235.508994;
	HouseInfo[h][hExity]= 1189.169897;
	HouseInfo[h][hExitz] = 1080.339966;
	}
	if(cens == 4 )
	{
	HouseInfo[h][hInt] = 12;
	HouseInfo[h][hExitx] = 2324.33;
	HouseInfo[h][hExity]= -1144.79;
	HouseInfo[h][hExitz] =1050.71;
	}
	SendClientMessage(playerid, COLOR_GRAD1, "По интеръерам дома распределены");
	}
 	}
}
    return 1;
}
    if(dialogid == 5300)
    {
        new house = PlayerInfo[playerid][pPhousekey];
        if(response)
        {
        	if(listitem == 0)
        	{
        	    if(HouseInfo[house][hLock] == 1)
				{
					HouseInfo[house][hLock] = 0;
					GameTextForPlayer(playerid, "~g~Unlocked", 5000, 6);
					PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
					return 1;
				}
				if(HouseInfo[house][hLock] == 0)
				{
					HouseInfo[house][hLock] = 1;
					GameTextForPlayer(playerid, "~r~Locked", 5000, 6);
					PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
					return 1;
				}
			}
        	else if(listitem == 1)
        		{
        		ShowPlayerDialog(playerid,5032,DIALOG_STYLE_MSGBOX,"Продажа имущества","Внимание! Вы собираетесь продать Квартиру\n\nПродать Квартиру?","Да","Нет");
        		}
            else
		{
		return 1;
		}
    }
    }
    if(dialogid == 5032)
    {
        new sendername[MAX_PLAYER_NAME];
        new house = PlayerInfo[playerid][pPhousekey];
        if(response)
        {
        	for(new h = 0; h < sizeof(HouseInfo); h++)
			{
				HouseInfo[house][hLock] = 1;
				HouseInfo[house][hOwned] = 0;
				GetPlayerName(playerid, sendername, sizeof(sendername));
				strmid(HouseInfo[house][hOwner], "The State", 0, strlen("The State"), 255);
				PlayerInfo[playerid][pCash] +=HouseInfo[house][hValue];
				//PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
				SendClientMessage(playerid, COLOR_LIGHTGREEN, ":::: Ваш чек :::: ");
				format(string, sizeof(string), "- Квартира продана за %d вирт", HouseInfo[house][hValue]);
 				SendClientMessage(playerid, COLOR_WHITE, string);
 				format(string, sizeof(string), "- Выручка: %d", PlayerInfo[playerid][pCash]);
 				SendClientMessage(playerid, COLOR_WHITE, string);
 				SendClientMessage(playerid, COLOR_LIGHTGREEN, ":::: Ваш чек:::: ");
				PlayerInfo[playerid][pPhousekey] = 255;
				SetPlayerInterior(playerid,0);
				SetPlayerVirtualWorld(playerid, 0);
				SetPlayerPos(playerid,HouseInfo[house][hEntrancex],HouseInfo[house][hEntrancey],HouseInfo[house][hEntrancez]);
    			//CreateDynamicMapIcon(HouseInfo[h][hEntrancex],HouseInfo[h][hEntrancey],HouseInfo[h][hEntrancez],31,0);
				PlayerInfo[playerid][pInt] = 0;
				BuyHouse();
				OnPropUpdate();
				OnPlayerUpdateRL(playerid);
 				return 1;
				}
			}
		else
   {
   return 1;
   }
}

Вот и все! если что то не так пишите, я исправю!
Сюда вырезал уже из своего new.pwn (возможно что то мог пропустить) если что говорите!
Возможно вы уже заметили, я вырезал без аптечек, материалов, системы домашнего авто.
Не забудьте добавить файл property.cfg в \scriptfiles\logs
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу