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

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

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

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

Создание меню бизнеса [new]

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

Hidden

Умник
Этот мануал добавит на ваш сервер чуточку оригинальности и удобства. :)
Меню бизнеса - меню, которое позволяет забыть о постоянном вводе неудобных команд. Благодаря нему вы сможете быстро произвести какие-либо действия с бизнесом.
Видеообзор:
!!!: Предназначено только для бизнесов со входом! На sбизнесы не распространяется! Если этот скрипт будет положительно оценен пользователями форума, то, опять же - по желанию пользователей, "расширю" функции скрипта и на sбизнесы.
1. Ко всем new в начале мода добавляем:
PHP:
new prodhouse[MAX_PLAYERS]; // Для продажи другому игроку
new prodmoney[MAX_PLAYERS]; // Для продажи другому игроку
new prodid[MAX_PLAYERS]; // Для продажи другому игроку
new Transferid[MAX_PLAYERS]; // Для продажи другому игроку
new Exto[MAX_PLAYERS]; // Для назначения совладельца
1.1 Ко всем #define в начале мода добавляем:​
PHP:
#define DIALOG_NONE 0
!!!: Замените цифру 0, если диалог с ID 0 уже задействован.
2. Обновляем public PrintBizInfo(playerid,targetid):
PHP:
public PrintBizInfo(playerid,targetid)
{
    if(IsPlayerConnected(playerid))
	{
		new coordsstring[256];
		new locktext[10];
		if(BizzInfo[targetid][bLocked] == 1) { locktext = "Закрыт"; } else { locktext = "Открыт"; }
		format(coordsstring, sizeof(coordsstring), "{FFFFFF}Название:{00FF00} %s\n{FFFFFF}Состояние:{00FF00} %s\n{FFFFFF}Стоимость входа:{00FF00} $%d\n{FFFFFF}Денег в бизнесе:{00FF00} $%d\n{FFFFFF}Продукция:{00FF00} %d/%d\n{FFFFFF}Цена за покупку продукции:{00FF00} $%d", BizzInfo[targetid][bMessage], locktext, BizzInfo[targetid][bEntranceCost],BizzInfo[targetid][bTill],BizzInfo[targetid][bProducts], BizzInfo[targetid][bMaxProducts], BizzInfo[targetid][bPriceProd]);
		ShowPlayerDialog(playerid, DIALOG_NONE, DIALOG_STYLE_MSGBOX, "Бизнес", coordsstring, "Готово", "");
	}
}
3. Создаём команду для вызова меню. В public OnPlayerCommandText(playerid, cmdtext[]) (Команда - /bmenu):
PHP:
if(strcmp(cmd, "/bmenu", true) == 0 || strcmp(cmd, "/bm", true) == 0)
	{
        if(PlayerInfo[playerid][pPbiskey] == 255) return SendClientMessage(playerid, COLOR_GREY, "• Информация: У вас нет бизнеса!");
		new bouse = PlayerInfo[playerid][pPbiskey];
		//new playername[MAX_PLAYER_NAME];
		GetPlayerName(playerid, playername, sizeof(playername));
	    if(PlayerInfo[playerid][pLocal] == bouse)
	    {
            new stringacc[50];
            format(stringacc,sizeof(stringacc),"Управление бизнесом {00FF00}%s",BizzInfo[bouse][bMessage]);
		  	new listitems[] = "{FFFFFF}- Открыть/закрыть бизнес\n- Информация о бизнесе\n- Установить цену входа\n- Вложить деньги в бизнес\n- Снять деньги с бизнеса\n- Продать бизнес государству\n- Продать бизнес другому игроку\n- Установить цену на покупку продукции\n- Назначить совладельца";
			ShowPlayerDialog(playerid, 25, DIALOG_STYLE_LIST, stringacc, listitems, "Выбрать", "Назад");
        }
  	    return 1;
	}
3.1. Также, создаём команду для продажи бизнеса государству. В public OnPlayerCommandText(playerid, cmdtext[]) добавляем:​
PHP:
if(strcmp(cmd, "/sellbiz", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
		{
			GetPlayerName(playerid, playername, sizeof(playername));
			if(PlayerInfo[playerid][pPbiskey] == 255) return SendClientMessage(playerid, COLOR_GREY, "• Информация: У вас нет бизнеса!");
			if(strcmp(playername, BizzInfo[PlayerInfo[playerid][pPbiskey]][bOwner], true) == 0)
			{
				new bouse = PlayerInfo[playerid][pPbiskey];
				if(PlayerInfo[playerid][pLocal] != bouse) return SendClientMessage(playerid, COLOR_GREY, "• Информация: Вы не в своем бизнесе!");
				SetPlayerPos(playerid,BizzInfo[bouse][bEntranceX],BizzInfo[bouse][bEntranceY],BizzInfo[bouse][bEntranceZ]);
				SetPlayerInterior(playerid, 0);
				SetPlayerVirtualWorld(playerid, 0);
				BizzInfo[bouse][bLocked] = 1;
				BizzInfo[bouse][bOwned] = 0;
				PlayerInfo[playerid][pInt] = 0;
				PlayerInfo[playerid][pLocal] = 255;
				GetPlayerName(playerid, sendername, sizeof(sendername));
				strmid(BizzInfo[bouse][bOwner], "The State", 0, strlen("The State"), 255);
				strmid(BizzInfo[bouse][bExtortion], "No-one", 0, strlen("No-one"), 255);
				GiveMoney(playerid,BizzInfo[bouse][bBuyPrice] / 2);
				PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
				format(string, sizeof(string), "~w~Congratulations~n~ You have sold your property for ~n~~g~$%d", BizzInfo[bouse][bBuyPrice] / 2);
				GameTextForPlayer(playerid, string, 10000, 3);
				PlayerInfo[playerid][pPbiskey] = 255;
				UpdateBizz(bouse);
				OnPropUpdate();
				OnPlayerUpdateSG(playerid);
				return 1;
			}
		}
		return 1;
	}
!!!: В /buybiz замените Update3DText (или подобное) и строчку выше на UpdateBizz(переменная бизнеса);
4. Теперь непосредственно диалоги. В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) добавляем:
PHP:
else if(dialogid == 25)
    {
        new bis = PlayerInfo[playerid][pPbiskey];
        if(response)
        {
        	if(listitem == 0)
        	{
        	    if(BizzInfo[bis][bLocked] == 1)
				{
					BizzInfo[bis][bLocked] = 0;
					GameTextForPlayer(playerid, "~g~Unlocked", 5000, 6);
					PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
					return 1;
				}
				if(BizzInfo[bis][bLocked] == 0)
				{
					BizzInfo[bis][bLocked] = 1;
					GameTextForPlayer(playerid, "~g~Locked", 5000, 6);
					PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
					return 1;
				}
			}
           	else if(listitem == 1)
        	{
        	    if(bis == 255)
			    {
				    SendClientMessage(playerid, COLOR_GREY, "• Информация: У вас нет бизнеса!");
				    return 1;
		    	}
				PrintBizInfo(playerid, bis);
        	}
        	else if(listitem == 2)
        	{
        		ShowPlayerDialog(playerid,26,DIALOG_STYLE_INPUT,"Стоимость входа","{FFFFFF}Введите желаемую {00FF00}стоимость входа{FFFFFF}:","Выбрать","Назад");
			}
			else if(listitem == 3)
            {
				format(string, sizeof(string), "• Информация: В вашем бизнесе лежит $%d.", BizzInfo[bis][bTill]);
				SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                ShowPlayerDialog(playerid,27,DIALOG_STYLE_INPUT,"Деньги в бизнесе","{FFFFFF}Введите {00FF00}сумму{FFFFFF}, которую хотите вложить в бизнес:","Выбрать","Назад");
            }
            else if(listitem == 4)
            {
                format(string, sizeof(string), "• Информация: В вашем бизнесе лежит $%d.", BizzInfo[bis][bTill]);
				SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                ShowPlayerDialog(playerid,28,DIALOG_STYLE_INPUT,"Деньги в бизнесе","{FFFFFF}Введите {00FF00}сумму{FFFFFF}, которую хотите забрать с бизнеса:","Выбрать","Назад");
            }
            else if(listitem == 5)
		    {
				OnPlayerCommandText(playerid, "/sellbiz");
			}
			else if(listitem == 6)
		    {
				format(string,sizeof(string), "{FFFFFF}Введите {00FF00}ID{FFFFFF} игрока, которому вы собираетесь продать бизнес:");
  				ShowPlayerDialog(playerid,29,DIALOG_STYLE_INPUT,"Агенство продажи имущества",string,"Далее","Назад");
			}
            else if(listitem == 7)
            {
                format(string, sizeof(string), "• Информация: В данный момент цена за покупку продуктов составляет $%d.", BizzInfo[bis][bPriceProd]);
				SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                ShowPlayerDialog(playerid,32,DIALOG_STYLE_INPUT,"Цена покупки продуктов","{FFFFFF}Введите {00FF00}цену{FFFFFF}, за которую вы хотите покупать продукты:","Выбрать","Назад");
            }
            else if(listitem == 8)
            {
                format(string, sizeof(string), "• Информация: В данный момент совладельцем является %s.", BizzInfo[bis][bExtortion]);
				SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                ShowPlayerDialog(playerid,33,DIALOG_STYLE_INPUT,"Назначение совладельца","{FFFFFF}Введите {00FF00}ID{FFFFFF} игрока, которого хотите назначить совладельцем:\n{FF0000}Введите значение '555', если хотите убрать совладельца.","Выбрать","Назад");
            }
        }
        else { return 1; }
    }
    else if(dialogid == 26)
    {
        if(response)
        {
           new bis = PlayerInfo[playerid][pPbiskey];
           if(strval(inputtext) < 1 || strval(inputtext) > 1000)
           {
              SendClientMessage(playerid, COLOR_GREY, "• Информация: Стоимость входа должна быть не меньше 1$ и не больше $1000.");
              ShowPlayerDialog(playerid,21,DIALOG_STYLE_INPUT,"Стоимость входа","{FFFFFF}Введите желаемую {00FF00}стоимость входа{FFFFFF}:","Выбрать","Назад");
              return 1;
           }
           BizzInfo[bis][bEntranceCost] = strval(inputtext);
           UpdateBizz(bis);
           format(string, sizeof(string), "• Информация: Стоимость входа изменена на $%d", BizzInfo[bis][bEntranceCost]);
           SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
           format(stringacc,sizeof(stringacc),"Управление бизнесом {00FF00}%s",BizzInfo[bis][bMessage]);
	  	   new listitems[] = "{FFFFFF}- Открыть/закрыть бизнес\n- Информация о бизнесе\n- Установить цену входа\n- Вложить деньги в бизнес\n- Снять деньги с бизнеса\n- Продать бизнес государству\n- Продать бизнес другому игроку\n- Установить цену на покупку продукции\n- Назначить совладельца";
		   ShowPlayerDialog(playerid, 25, DIALOG_STYLE_LIST, stringacc, listitems, "Выбрать", "Назад");
           return 1;
        }
        else
		{
		    new bis = PlayerInfo[playerid][pPbiskey];
		    format(stringacc,sizeof(stringacc),"Управление бизнесом {00FF00}%s",BizzInfo[bis][bMessage]);
 	        new listitems[] = "{FFFFFF}- Открыть/закрыть бизнес\n- Информация о бизнесе\n- Установить цену входа\n- Вложить деньги в бизнес\n- Снять деньги с бизнеса\n- Продать бизнес государству\n- Продать бизнес другому игроку\n- Установить цену на покупку продукции\n- Назначить совладельца";
			ShowPlayerDialog(playerid, 25, DIALOG_STYLE_LIST, stringacc, listitems, "Выбрать", "Назад");
		}
    }
    else if(dialogid == 27)
    {
        if(response)
        {
           new bis = PlayerInfo[playerid][pPbiskey];
           new cashdeposit = strval(inputtext);
           if(cashdeposit < 1 || cashdeposit > PlayerInfo[playerid][pCash])
           {
              SendClientMessage(playerid, COLOR_GREY, "• Информация: Вложить можно не меньше 1$ и не больше денег, которые у вас наличными!");
              ShowPlayerDialog(playerid,27,DIALOG_STYLE_INPUT,"Деньги в бизнесе","{FFFFFF}Введите {00FF00}сумму{FFFFFF}, которую хотите вложить в бизнес:","Выбрать","Назад");
              return 1;
           }
           BizzInfo[bis][bTill] += cashdeposit;
           GiveMoney(playerid, -cashdeposit);
           UpdateBizz(bis);
           format(string, sizeof(string), "• Информация: Вы вложили $%d в бизнес. Теперь в нём $%d.", cashdeposit, BizzInfo[bis][bTill]);
           SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
           format(stringacc,sizeof(stringacc),"Управление бизнесом {00FF00}%s",BizzInfo[bis][bMessage]);
	  	   new listitems[] = "{FFFFFF}- Открыть/закрыть бизнес\n- Информация о бизнесе\n- Установить цену входа\n- Вложить деньги в бизнес\n- Снять деньги с бизнеса\n- Продать бизнес государству\n- Продать бизнес другому игроку\n- Установить цену на покупку продукции\n- Назначить совладельца";
		   ShowPlayerDialog(playerid, 25, DIALOG_STYLE_LIST, stringacc, listitems, "Выбрать", "Назад");
           return 1;
        }
        else
		{
            new bis = PlayerInfo[playerid][pPbiskey];
            format(stringacc,sizeof(stringacc),"Управление бизнесом {00FF00}%s",BizzInfo[bis][bMessage]);
		    new listitems[] = "{FFFFFF}- Открыть/закрыть бизнес\n- Информация о бизнесе\n- Установить цену входа\n- Вложить деньги в бизнес\n- Снять деньги с бизнеса\n- Продать бизнес государству\n- Продать бизнес другому игроку\n- Установить цену на покупку продукции\n- Назначить совладельца";
			ShowPlayerDialog(playerid, 25, DIALOG_STYLE_LIST, stringacc, listitems, "Выбрать", "Назад");
		}
    }
    else if(dialogid == 28)
    {
        if(response)
        {
           new bis = PlayerInfo[playerid][pPbiskey];
           new cashdeposit = strval(inputtext);
           if(cashdeposit < 1 || cashdeposit > BizzInfo[bis][bTill])
           {
              SendClientMessage(playerid, COLOR_GREY, "• Информация: Снять можно не меньше 1$ и не больше денег, которые у вас в бизнесе!");
              ShowPlayerDialog(playerid, 28,DIALOG_STYLE_INPUT,"Деньги в бизнесе","{FFFFFF}Введите {00FF00}сумму{FFFFFF}, которую хотите забрать с бизнеса:","Выбрать","Назад");
              return 1;
           }
           BizzInfo[bis][bTill] -= cashdeposit;
		   GiveMoney(playerid, cashdeposit);
           UpdateBizz(bis);
           format(string, sizeof(string), "• Информация: Вы забрали $%d с бизнеса. Теперь в нём $%d.", cashdeposit, BizzInfo[bis][bTill]);
           SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
           format(stringacc,sizeof(stringacc),"Управление бизнесом {00FF00}%s",BizzInfo[bis][bMessage]);
	  	   new listitems[] = "{FFFFFF}- Открыть/закрыть бизнес\n- Информация о бизнесе\n- Установить цену входа\n- Вложить деньги в бизнес\n- Снять деньги с бизнеса\n- Продать бизнес государству\n- Продать бизнес другому игроку\n- Установить цену на покупку продукции\n- Назначить совладельца";
		   ShowPlayerDialog(playerid, 25, DIALOG_STYLE_LIST, stringacc, listitems, "Выбрать", "Назад");
           return 1;
        }
        else
		{
		    new bis = PlayerInfo[playerid][pPbiskey];
            format(stringacc,sizeof(stringacc),"Управление бизнесом {00FF00}%s",BizzInfo[bis][bMessage]);
		    new listitems[] = "{FFFFFF}- Открыть/закрыть бизнес\n- Информация о бизнесе\n- Установить цену входа\n- Вложить деньги в бизнес\n- Снять деньги с бизнеса\n- Продать бизнес государству\n- Продать бизнес другому игроку\n- Установить цену на покупку продукции\n- Назначить совладельца";
			ShowPlayerDialog(playerid, 25, DIALOG_STYLE_LIST, stringacc, listitems, "Выбрать", "Назад");
		}
    }
   	else if(dialogid == 29)
	{
        new giveplayer[MAX_PLAYER_NAME];
	    if(response)
	    {
	        if(!strlen(inputtext))
	        {
	        	format(string,sizeof(string), "{FFFFFF}Введите {00FF00}ID{FFFFFF} игрока, которому вы собираетесь продать бизнес:");
  				ShowPlayerDialog(playerid,29,DIALOG_STYLE_INPUT,"Агенство продажи имущества",string,"Далее","Назад");
	            return 1;
	        }
	        Transferid[playerid] = ReturnUser(inputtext);
	        if(PlayerInfo[Transferid[playerid]][pPbiskey] != 255)
	        {
				SendClientMessage(playerid, COLOR_GREY, "• Информация: У игрока уже есть бизнес.");
	        	format(string,sizeof(string), "{FFFFFF}Введите {00FF00}ID{FFFFFF} игрока, которому вы собираетесь продать бизнес:");
  				ShowPlayerDialog(playerid,29,DIALOG_STYLE_INPUT,"Агенство продажи имущества",string,"Далее","Назад");
	            return 1;
	        }
	        if(GetDistanceBetweenPlayers(playerid,Transferid[playerid]) > 10)
	        {
                SendClientMessage(playerid, COLOR_GREY, "• Информация: Вы слишком далеко от этого игрока.");
                format(string,sizeof(string), "{FFFFFF}Введите {00FF00}ID{FFFFFF} игрока, которому вы собираетесь продать бизнес:");
  				ShowPlayerDialog(playerid,29,DIALOG_STYLE_INPUT,"Агенство продажи имущества",string,"Далее","Назад");
                return 1;
	        }
	        if(IsPlayerConnected(Transferid[playerid]))
	        {
	            GetPlayerName(Transferid[playerid], giveplayer, sizeof(giveplayer));
	            format(string,sizeof(string), "{FFFFFF}*Покупатель:{00FF00} %s\n{FFFFFF}Введите сумму продажи:", giveplayer);
                ShowPlayerDialog(playerid,30,DIALOG_STYLE_INPUT,"Агенство продажи имущества",string,"Далее","Назад");
	        }
	        else
	        {
				SendClientMessage(playerid, COLOR_GREY, "• Информация: Игрок не найден.");
	        	format(string,sizeof(string), "{FFFFFF}Введите {00FF00}ID{FFFFFF} игрока, которому вы собираетесь продать бизнес:");
  				ShowPlayerDialog(playerid,29,DIALOG_STYLE_INPUT,"Агенство продажи имущества",string,"Далее","Назад");
  				prodhouse[playerid] = -1;
				return 1;
	        }
	    }
	    else
	    {
	        new bis = PlayerInfo[playerid][pPbiskey];
            format(stringacc,sizeof(stringacc),"Управление бизнесом {00FF00}%s",BizzInfo[bis][bMessage]);
	    	new listitems[] = "{FFFFFF}- Открыть/закрыть бизнес\n- Информация о бизнесе\n- Установить цену входа\n- Вложить деньги в бизнес\n- Снять деньги с бизнеса\n- Продать бизнес государству\n- Продать бизнес другому игроку\n- Установить цену на покупку продукции";
		    ShowPlayerDialog(playerid, 25, DIALOG_STYLE_LIST, stringacc, listitems, "Выбрать", "Назад");
            prodhouse[playerid] = -1;
	        prodmoney[playerid] = -1;
		}
	}
	else if(dialogid == 30)
	{
        new giveplayer[MAX_PLAYER_NAME];
	    if(response)
	    {
            GetPlayerName(Transferid[playerid], giveplayer, sizeof(giveplayer));
            new sendername[MAX_PLAYER_NAME];
            GetPlayerName(playerid, sendername, sizeof(sendername));
	        if(!strlen(inputtext))
	        {
	        	format(string,sizeof(string), "{FFFFFF}*Покупатель:{00FF00} %s\n{FFFFFF}Введите сумму продажи:", giveplayer);
  				ShowPlayerDialog(playerid,26,DIALOG_STYLE_INPUT,"Агенство продажи имущества",string,"Далее","Назад");
	            return 1;
	        }
	        new moneys;
	        moneys = strval(inputtext);
	        if(moneys < 0 || moneys > 30000000)
	        {
                SendClientMessage(playerid, COLOR_GREY, "• Информация: Не меньше $0 и не больше $30.000.000.");
                format(string,sizeof(string), "{FFFFFF}*Покупатель:{00FF00} %s\n{FFFFFF}Введите сумму продажи:", giveplayer);
  				ShowPlayerDialog(playerid,30,DIALOG_STYLE_INPUT,"Агенство продажи имущества",string,"Далее","Назад");
   	            return 1;
	        }
            if(PlayerInfo[Transferid[playerid]][pCash] < moneys)
            {
                SendClientMessage(playerid, COLOR_GREY, "• Информация: У игрока нет столько денег.");
                format(string,sizeof(string), "{FFFFFF}*Покупатель:{00FF00} %s\n{FFFFFF}Введите сумму продажи:", giveplayer);
  				ShowPlayerDialog(playerid,30,DIALOG_STYLE_INPUT,"Агенство продажи имущества",string,"Далее","Назад");
                return 1;
            }
			if(IsPlayerConnected(Transferid[playerid]))
	        {
                prodmoney[Transferid[playerid]] = moneys;
                prodid[Transferid[playerid]] = playerid;
				prodhouse[Transferid[playerid]] = PlayerInfo[playerid][pPbiskey];
                SendClientMessage(playerid, COLOR_LIGHTBLUE, "• Информация: Вы предложили покупателю продать свой бизнес. Ждите ответа.");
                format(string, sizeof(string), "{00FF00}%s{FFFFFF} предлагает купить его бизнес за {00FF00}$%d",sendername,moneys);
                ShowPlayerDialog(Transferid[playerid], 31, DIALOG_STYLE_MSGBOX, "Агенство продажи имущества", string, "Купить", "Отмена");
                return 1;
	        }
	    }
	    else
	    {
	        new bis = PlayerInfo[playerid][pPbiskey];
            format(stringacc,sizeof(stringacc),"Управление бизнесом {00FF00}%s",BizzInfo[bis][bMessage]);
	    	new listitems[] = "{FFFFFF}- Открыть/закрыть бизнес\n- Информация о бизнесе\n- Установить цену входа\n- Вложить деньги в бизнес\n- Снять деньги с бизнеса\n- Продать бизнес государству\n- Продать бизнес другому игроку\n- Установить цену на покупку продукции";
		    ShowPlayerDialog(playerid, 25, DIALOG_STYLE_LIST, stringacc, listitems, "Выбрать", "Назад");
            prodhouse[playerid] = -1;
	        prodmoney[playerid] = -1;
		}
	}
    else if(dialogid == 31)
    {
        if(response)
        {
            new bis = prodhouse[playerid];
            new moneyy = prodmoney[playerid];
            new ididpl = prodid[playerid];
            new sendername[MAX_PLAYER_NAME];
            GetPlayerName(playerid, sendername, sizeof(sendername));
            strmid(BizzInfo[bis][bOwner], sendername, 0, strlen(sendername), 255);
            GiveMoney(ididpl, moneyy);
            GiveMoney(playerid, -moneyy);
            PlayerInfo[playerid][pPbiskey] = bis;
            PlayerInfo[ididpl][pPbiskey] = 255;
            PlayerInfo[playerid][pLocal] = bis;
            SendClientMessage(ididpl, COLOR_LIGHTBLUE, "• Информация: Вы успешно продали свой бизнес.");
            SendClientMessage(playerid, COLOR_LIGHTBLUE, "• Информация: Вы успешно приобрели новый бизнес.");
            UpdateBizz(bis);
            prodhouse[playerid] = -1;
	        prodmoney[playerid] = -1;
	        prodid[playerid] = -1;
	        OnPlayerUpdateSG(playerid);
	        OnPlayerUpdateSG(ididpl);
	    }
	    else
	    {
            new ididpl = prodid[playerid];
            SendClientMessage(ididpl, COLOR_LIGHTBLUE, "• Информация: Покупатель отказался от покупки бизнеса.");
            SendClientMessage(playerid, COLOR_LIGHTBLUE, "• Информация: Вы отказались от покупки бизнеса.");
            prodhouse[playerid] = -1;
	        prodmoney[playerid] = -1;
	        prodid[playerid] = -1;
	        OnPlayerUpdateSG(playerid);
	        OnPlayerUpdateSG(ididpl);
            return 1;
		}
    }
    else if(dialogid == 32)
    {
        if(response)
        {
           new bis = PlayerInfo[playerid][pPbiskey];
           if(strval(inputtext) < 500 || strval(inputtext) > 1000)
           {
              SendClientMessage(playerid, COLOR_GREY, "• Информация: Цена покупки продукции должна быть не меньше 500$ и не больше $1000.");
              ShowPlayerDialog(playerid,32,DIALOG_STYLE_INPUT,"Цена покупки продуктов","{FFFFFF}Введите {00FF00}цену{FFFFFF}, за которую вы хотите покупать продукты:","Выбрать","Назад");
              return 1;
           }
           BizzInfo[bis][bPriceProd] = strval(inputtext);
           UpdateBizz(bis);
           format(string, sizeof(string), "• Информация: Цена покупки продуктов изменена на $%d", BizzInfo[bis][bPriceProd]);
           SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
           format(stringacc,sizeof(stringacc),"Управление бизнесом {00FF00}%s",BizzInfo[bis][bMessage]);
	  	   new listitems[] = "{FFFFFF}- Открыть/закрыть бизнес\n- Информация о бизнесе\n- Установить цену входа\n- Вложить деньги в бизнес\n- Снять деньги с бизнеса\n- Продать бизнес государству\n- Продать бизнес другому игроку\n- Установить цену на покупку продукции\n- Назначить совладельца";
		   ShowPlayerDialog(playerid, 25, DIALOG_STYLE_LIST, stringacc, listitems, "Выбрать", "Назад");
           return 1;
        }
        else
		{
		    new bis = PlayerInfo[playerid][pPbiskey];
            format(stringacc,sizeof(stringacc),"Управление бизнесом {00FF00}%s",BizzInfo[bis][bMessage]);
		    new listitems[] = "{FFFFFF}- Открыть/закрыть бизнес\n- Информация о бизнесе\n- Установить цену входа\n- Вложить деньги в бизнес\n- Снять деньги с бизнеса\n- Продать бизнес государству\n- Продать бизнес другому игроку\n- Установить цену на покупку продукции\n- Назначить совладельца";
		    ShowPlayerDialog(playerid, 25, DIALOG_STYLE_LIST, stringacc, listitems, "Выбрать", "Назад");
		}
    }
	else if(dialogid == 33)
	{
	    if(response)
	    {
	        if(!strlen(inputtext))
	        {
	        	ShowPlayerDialog(playerid,33,DIALOG_STYLE_INPUT,"Назначение совладельца","{FFFFFF}Введите {00FF00}ID{FFFFFF} игрока, которого хотите назначить совладельцем:\n{FF0000}Введите значение '555', если хотите убрать совладельца.","Выбрать","Назад");
	            return 1;
	        }
	        new giveplayer[MAX_PLAYER_NAME];
	        new sendername[MAX_PLAYER_NAME];
            GetPlayerName(playerid, sendername, sizeof(sendername));
	        new bis = PlayerInfo[playerid][pPbiskey];
	        new moneys;
	        moneys = strval(inputtext);
	        if(moneys == 555)
	        {
                format(string, sizeof(string), "No-one");
				strmid(BizzInfo[bis][bExtortion], string, 0, sizeof(string), 255);
			    SendClientMessage(playerid, COLOR_WHITE, "• Информация: У вашего бизнеса больше нет совладельца!");
			    UpdateBizz(bis);
			    return 1;
	        }
	        Exto[playerid] = ReturnUser(inputtext);
	        if(IsPlayerConnected(Exto[playerid]))
	        {
	            GetPlayerName(Exto[playerid], giveplayer, sizeof(giveplayer));
			    format(string, sizeof(string), "• Информация: Вы сделали %s совладельцем своего бизнеса!",giveplayer);
			    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
			    format(string, sizeof(string), "• Информация: %s сделал вас совладельцем его бизнеса!",sendername);
			    SendClientMessage(Exto[playerid], COLOR_LIGHTBLUE, string);
			    format(string, sizeof(string), "%s",giveplayer);
	            strmid(BizzInfo[bis][bExtortion], string, 0, sizeof(string), 255);
                format(stringacc,sizeof(stringacc),"Управление бизнесом {00FF00}%s",BizzInfo[bis][bMessage]);
	  	        new listitems[] = "{FFFFFF}- Открыть/закрыть бизнес\n- Информация о бизнесе\n- Установить цену входа\n- Вложить деньги в бизнес\n- Снять деньги с бизнеса\n- Продать бизнес государству\n- Продать бизнес другому игроку\n- Установить цену на покупку продукции\n- Назначить совладельца";
		        ShowPlayerDialog(playerid, 25, DIALOG_STYLE_LIST, stringacc, listitems, "Выбрать", "Назад");
	            OnPropUpdate();
	            UpdateBizz(bis);
	            return 1;
	        }
	        else
	        {
				SendClientMessage(playerid, COLOR_GREY, "• Информация: Игрок не найден.");
	        	ShowPlayerDialog(playerid,33,DIALOG_STYLE_INPUT,"Назначение совладельца","{FFFFFF}Введите {00FF00}ID{FFFFFF} игрока, которого хотите назначить совладельцем:\n{FF0000}Введите значение '555', если хотите убрать совладельца.","Выбрать","Назад");
				return 1;
	        }
	    }
	    else
	    {
	        new bis = PlayerInfo[playerid][pPbiskey];
            format(stringacc,sizeof(stringacc),"Управление бизнесом {00FF00}%s",BizzInfo[bis][bMessage]);
	    	new listitems[] = "{FFFFFF}- Открыть/закрыть бизнес\n- Информация о бизнесе\n- Установить цену входа\n- Вложить деньги в бизнес\n- Снять деньги с бизнеса\n- Продать бизнес государству\n- Продать бизнес другому игроку\n- Установить цену на покупку продукции";
		    ShowPlayerDialog(playerid, 25, DIALOG_STYLE_LIST, stringacc, listitems, "Выбрать", "Назад");
            Exto[playerid] = -1;
		}
	}
5.1. В начало public OnDialogResponse:
PHP:
new stringacc[60];
5. Создаём 3D информацию о бизнесе. В public OnGameModeInit() добаляем:
PHP:
for(new h = 0; h < sizeof(BizzInfo); h++)
	{
        new text[600];
		if(BizzInfo[h][bOwned] == 0)
		{
			AddStaticPickup(1272, 2, BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ]);
			pickups++;
			format(text,sizeof(text),"{00B366}* Бизнес продается *{FFFFFF}\nНазвание: {FF9900}%s{FFFFFF}\nЦена: {FF9900}$%d{FFFFFF}\nЧтобы купить предприятие, введите /buybiz.",BizzInfo[h][bMessage],BizzInfo[h][bBuyPrice]);
			BizzInfo[h][bLabel] = Create3DTextLabel(text,0xFFA500FF,BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ],20.0,0,1);
		}
		if(BizzInfo[h][bOwned] == 1)
		{
			AddStaticPickup(1318, 2, BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ]);
			pickups++;
			format(text,sizeof(text),"{00B366}* Частный бизнес *\n{FFFFFF}Название: {FF9900}%s{FFFFFF}\nВладелец: {FF9900}%s{FFFFFF}\nСовладелец: {FF9900}%s{FFFFFF}\nСтоимость входа: {FF9900}$%d{FFFFFF}\nПродукты: {FF9900}%d/%d{FFFFFF}\nЦена за покупку продуктов: {FF9900}$%d",BizzInfo[h][bMessage],BizzInfo[h][bOwner],BizzInfo[h][bExtortion],BizzInfo[h][bEntranceCost],BizzInfo[h][bProducts],BizzInfo[h][bMaxProducts],BizzInfo[h][bPriceProd]);
			BizzInfo[h][bLabel] = Create3DTextLabel(text,0xFFA500FF,BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ],20.0,0,1);
		}
		CreateDynamicMapIcon(BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ],36,0);
	}
6. Создаём мгновенное обновление 3D информации о бизнесе. В конце мода:
PHP:
stock UpdateBizz(idx)
{
		new text[600];
		if(BizzInfo[idx][bOwned] == 0)
		{
			format(text,sizeof(text),"{00B366}* Бизнес продается *{FFFFFF}\nНазвание: {FF9900}%s{FFFFFF}\nЦена: {FF9900}$%d{FFFFFF}\nЧтобы купить предприятие, введите /buybiz.",BizzInfo[idx][bMessage],BizzInfo[idx][bBuyPrice]);
			Update3DTextLabelText(BizzInfo[idx][bLabel], 0xFFA500FF, text);
		}
		if(BizzInfo[idx][bOwned] == 1)
		{
			format(text,sizeof(text),"{00B366}* Частный бизнес *\n{FFFFFF}Название: {FF9900}%s{FFFFFF}\nВладелец: {FF9900}%s{FFFFFF}\nСовладелец: {FF9900}%s{FFFFFF}\nСтоимость входа: {FF9900}$%d{FFFFFF}\nПродукты: {FF9900}%d/%d{FFFFFF}\nЦена за покупку продуктов: {FF9900}$%d",BizzInfo[idx][bMessage],BizzInfo[idx][bOwner],BizzInfo[idx][bExtortion],BizzInfo[idx][bEntranceCost],BizzInfo[idx][bProducts],BizzInfo[idx][bMaxProducts],BizzInfo[idx][bPriceProd]);
			Update3DTextLabelText(BizzInfo[idx][bLabel], 0xFFA500FF, text);
        }
}

Автор: Ilya Slayter [#hellwood]
YouTube channel:

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