Hidden
Умник
Этот мануал добавит на ваш сервер чуточку оригинальности и удобства. 
Меню бизнеса - меню, которое позволяет забыть о постоянном вводе неудобных команд. Благодаря нему вы сможете быстро произвести какие-либо действия с бизнесом.
Видеообзор:
!!!: Предназначено только для бизнесов со входом! На sбизнесы не распространяется! Если этот скрипт будет положительно оценен пользователями форума, то, опять же - по желанию пользователей, "расширю" функции скрипта и на sбизнесы.
1. Ко всем new в начале мода добавляем:
!!!: Замените цифру 0, если диалог с ID 0 уже задействован.
2. Обновляем public PrintBizInfo(playerid,targetid):
3. Создаём команду для вызова меню. В public OnPlayerCommandText(playerid, cmdtext[]) (Команда - /bmenu):
!!!: В /buybiz замените Update3DText (или подобное) и строчку выше на UpdateBizz(переменная бизнеса);
4. Теперь непосредственно диалоги. В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) добавляем:
6. Создаём мгновенное обновление 3D информации о бизнесе. В конце мода:
Меню бизнеса - меню, которое позволяет забыть о постоянном вводе неудобных команд. Благодаря нему вы сможете быстро произвести какие-либо действия с бизнесом.
Видеообзор:
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
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, "Готово", "");
}
}
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;
}
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:
5. Создаём 3D информацию о бизнесе. В public OnGameModeInit() добаляем:
PHP:
new stringacc[60];
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);
}
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:
Спасибо за внимание.
YouTube channel:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Спасибо за внимание.
