Dima_Tushin
Компетентный
бизнесы для new.pwn
Ко всем new
ко всем public
Добавим в Response
покупка бизнесы
в ongamemodeinit
команда для покупки
Создадим publics: CustomPickups()
и добавим это если вы встали на чекпоинт входа бизнеса
вот и загрузка и сохранение
в ongamemodeinit
вот и все если что-то не дописал пишите добавлю!
---------- Post added at 15:14 ---------- Previous post was at 15:06 ----------
ко всем командам Статистика бизнеса
Ко всем new
PHP:
new TotalBizz = 0;
PHP:
publics: PrintBizInfo(playerid,targetid)
{
if(IsPlayerConnected(playerid))
{
for(new h = 0; h <= TotalBizz; h++)
{
if(BizzInfo[targetid][bMafia] == 6) { mafiatext = "Yakuza"; }
else if(BizzInfo[targetid][bMafia] == 14) { mafiatext = "RM"; }
else if(BizzInfo[targetid][bMafia] == 5) { mafiatext = "LCN"; }
else if(BizzInfo[targetid][bMafia] == 0) { mafiatext = "Нет"; }
new elektrich = BizzInfo[targetid][bBuyPrice] / 1000;
new text1[20],text2[20];
if(BizzInfo[targetid][bLocked]) { text1 = "Закрыт"; } else { text1 = "Открыт"; }
if(PlayerInfo[playerid][pBizLic]) { text2 = "Есть"; } else { text2 = "Отсутсвует"; }
new bizinfo[1000];
format(bizinfo,sizeof(string), "======================[ %s ]======================\nПод контролем: %s\nВсего заработано: %d вирт\tВ этом часу заработано: %d вирт\nПродуктов: %d/100000\nЦена за товар: %d вирт\nЦена входа: %d вирт\nСостояние: %s\nБаланс банка для оплаты энергии: %d вирт\nНалог за электроэнергию: %d вирт\nЛицензия: %s",
BizzInfo[targetid][bMessage],mafiatext,BizzInfo[targetid][bTill],BizzInfo[targetid][b2Till],BizzInfo[targetid][bProducts],BizzInfo[targetid][bPrice],BizzInfo[targetid][bEntranceCost],text1,BizzInfo[targetid][bTill],elektrich,text2);
SPD(playerid,10349,DIALOG_STYLE_MSGBOX, "Cостояние бизнеса",bizinfo, "$", "$");
}
}
return 1;
}
PHP:
case 9898://Вход в Бизнес
{
if(response)
{
for(new i = 0; i <= TotalBizz; i++)
{
if (PlayerToPoint(3, playerid,BizzInfo[i][bEntranceX], BizzInfo[i][bEntranceY], BizzInfo[i][bEntranceZ]))
{
if(PlayerInfo[playerid][pCash] < BizzInfo[i][bEntranceCost])
{
SendClientMessage(playerid, COLOR_GRAD1, "У вас нет столько денег");
return true;
}
PlayerInfo[playerid][pCash] -=BizzInfo[i][bEntranceCost];
BizzInfo[i][b2Till] += BizzInfo[i][bEntranceCost];
SetPlayerInterior(playerid,BizzInfo[i][bInterior]);
SetPlayerPosAC(playerid,BizzInfo[i][bExitX],BizzInfo[i][bExitY],BizzInfo[i][bExitZ]);
PlayerInfo[playerid][pInt] = BizzInfo[i][bInterior];
SetPlayerVirtualWorld(playerid,0);
OnPlayerUpdateRL(playerid);
enterbiz[playerid] = 1;
return true;
}
}
}
else
{
return true;
}
}
PHP:
case 9828:
{
if(response)
{
new Float:oldposx, Float:oldposy, Float:oldposz;
GetPlayerName(playerid, playername, sizeof(playername));
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
if(PlayerInfo[playerid][pPBiskey] != 255) return SendClientMessage(playerid, COLOR_WHITE, "У вас уже есть бизнес, введите /sellbiz чтобы его продать.");
if(PlayerInfo[playerid][pAvtomas] != 255) return SendClientMessage(playerid, COLOR_WHITE, "У вас уже есть автомастерская!");
for(new b = 0; b <= TotalBizz; b++)
{
if(PlayerToPoint(2.0, playerid, BizzInfo[b][bEntranceX], BizzInfo[b][bEntranceY], BizzInfo[b][bEntranceZ]) && BizzInfo[b][bOwned] == 0)
{
if(PlayerInfo[playerid][pBank] > BizzInfo[b][bBuyPrice])
{
PlayerInfo[playerid][pPBiskey] = b;
BizzInfo[b][bOwned] = 1;
BizzInfo[b][bLocked] = 0;
BizzInfo[b][bPrice] = 0;
BizzInfo[b][bTill] = 0;
BizzInfo[b][b2Till] = 0;
PlayerInfo[playerid][pJob] = 0;
BizzInfo[b][bProducts] = 0;
BizzInfo[b][bEntranceCost] = 0;
GetPlayerName(playerid, sendername, sizeof(sendername));
strmid(BizzInfo[b][bOwner], sendername, 0, strlen(sendername), 255);
PlayerInfo[playerid][pBank] -= BizzInfo[b][bBuyPrice];
SetPlayerInterior(playerid, BizzInfo[b][bInterior]);
PlayerInfo[playerid][pInt] = BizzInfo[b][bInterior];
SetPlayerPosAC(playerid,BizzInfo[b][bExitX],BizzInfo[b][bExitY],BizzInfo[b][bExitZ]);
SetPlayerVirtualWorld(playerid, 0);
PlayerInfo[playerid][pInt] = BizzInfo[b][bInterior];
PlayerInfo[playerid][pLocal] = b+99;
SendClientMessage(playerid, COLOR_GREEN, "Бизнес приобретён");
SendClientMessage(playerid, COLOR_WHITE, "Помощь по бизнесу: /mm - Команды сервера - Бизнес");
OnPlayerUpdateRL(playerid);
format(string,sizeof(string), "INSERT INTO `bizz` (bOwned, bLocked, bPrice, bTill, b2Till, bProducts, bEntranceCost, bOwner) VALUES (%d,%d,%d,%d,%d,%d,%d,%s)", 1,0,0,0,0,0,0,Name(playerid));
mysql_query(MYSQL, string);
SaveBizz();
return true;
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "На Вашем счету в банке нет столько денег!");
return true;
}
}
}
}
else
{
return true;
}
}
PHP:
for(new h = 0; h < TotalBizz; h++)
{
if(BizzInfo[h][bOwned] == 0)
{
AddStaticPickup(19132, 23, BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ]);
pickups++;
format(string,sizeof(string),"%s\nПродаётся\nЦена: %d", BizzInfo[h][bMessage], BizzInfo[h][bBuyPrice]);
BizzInfo[h][bLocked] = 1;
BizzInfo[h][bLabel] = Create3DTextLabel(string, 0xEAC700AA,BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ],20.0,0,1);
}
if(BizzInfo[h][bOwned] == 1)
{
AddStaticPickup(19132, 23, BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ]);
pickups++;
format(string,sizeof(string), "%s\nВладелец:\n %s", BizzInfo[h][bMessage], BizzInfo[h][bOwner]);
BizzInfo[h][bLabel] = Create3DTextLabel(string,0x00D900AA,BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ],20.0,0,1);
}
}
PHP:
else if(strcmp(cmd, "/buybiz", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new playername[MAX_PLAYER_NAME];
new Float:oldposx, Float:oldposy, Float:oldposz;
GetPlayerName(playerid, playername, sizeof(playername));
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
if(PlayerInfo[playerid][pPBiskey] != 255) return SendClientMessage(playerid, COLOR_WHITE, "У вас уже есть бизнес");
for(new bizz = 0; bizz <= TotalBizz; bizz++)
{
if(PlayerToPoint(2.0, playerid, BizzInfo[bizz][bEntranceX], BizzInfo[bizz][bEntranceY], BizzInfo[bizz][bEntranceZ]) && BizzInfo[bizz][bOwned] == 0)
{
format(string,sizeof(string), "У вас могут забрать бизнес если:\n 1.Он стоит в закрытом состоянии 12 или более часов.\n 2.Продукции менее 10 процентов, 12 или более часов.\n 3.На выделеном счету задолженность на оплату электроэнергии.\n\nПри продаже бизнеса государством, вам нечего не вернется!\nВы согласны с этими условиями?");
SPD(playerid,9828,DIALOG_STYLE_MSGBOX, "Предуприждение", string, "Согласен", "Отмена");
return true;
}
return 1;
}
}
return 1;
}
и добавим это если вы встали на чекпоинт входа бизнеса
PHP:
//*****************************Вход для Бизнесов******************//
for(new b = 0; b <= TotalBizz; b++)
{
if (PlayerToPoint(3, i,BizzInfo[b][bEntranceX], BizzInfo[b][bEntranceY], BizzInfo[b][bEntranceZ]))
{
if(BizzInfo[b][bOwned] == 0)
{
SetPlayerInterior(i,BizzInfo[b][bInterior]);
SetPlayerPosAC(i,BizzInfo[b][bExitX],BizzInfo[b][bExitY],BizzInfo[b][bExitZ]);
PlayerInfo[i][pInt] = BizzInfo[b][bInterior];
SetPlayerVirtualWorld(i,0);
}
if(b == 0 || b == 1 || b == 2|| b == 3 ||b == 4 || b == 5 || b == 6)
{
if(enterbiz[i] == 0)
{
if(BizzInfo[b][bLocked] == 1) return SendClientMessage(i, COLOR_GRAD1, "Бизнес закрыт");
format(enters,sizeof(enters), "Цена входа %d вирт\nВы хотите войти?",BizzInfo[b][bEntranceCost]);
SPD(i,9898,DIALOG_STYLE_MSGBOX, "Вход", enters, "Да", "Отмена");
return true;
}
else
{
SetPlayerInterior(i,BizzInfo[b][bInterior]);
SetPlayerPosAC(i,BizzInfo[b][bExitX],BizzInfo[b][bExitY],BizzInfo[b][bExitZ]);
PlayerInfo[i][pInt] = BizzInfo[b][bInterior];
SetPlayerVirtualWorld(i,0);
}
if(PlayerInfo[i][pPBiskey] == b)
{
if(BizzInfo[b][bLocked] == 1) return SendClientMessage(i, COLOR_GRAD1, "Бизнес закрыт");
SetPlayerInterior(i,BizzInfo[b][bInterior]);
SetPlayerPosAC(i,BizzInfo[b][bExitX],BizzInfo[b][bExitY],BizzInfo[b][bExitZ]);
PlayerInfo[i][pInt] = BizzInfo[b][bInterior];
SetPlayerVirtualWorld(i, 0);
return true;
}
}
else
{
SetPlayerInterior(i,BizzInfo[b][bInterior]);
SetPlayerPosAC(i,BizzInfo[b][bExitX],BizzInfo[b][bExitY],BizzInfo[b][bExitZ]);
PlayerInfo[i][pInt] = BizzInfo[b][bInterior];
SetPlayerVirtualWorld(i,0);
}
}
}
PHP:
//****************************Загрузка Бизнеса********************************//
publics: LoadBizz()
{
new dests[128];
for(new i = 0; i <= TotalBizz; i++)
{
new Cache:BiZzZ = mysql_query(MYSQL, "SELECT * FROM `bizz` ORDER BY `bizz`.`bID` ASC");
BizzInfo[i][bID] = cache_get_row_int(0, 0, MYSQL);
BizzInfo[i][bOwned] = cache_get_row_int(0, 1, MYSQL);
BizzInfo[i][bOwner] = cache_get_row(0, 2, dests);
BizzInfo[i][bMessage] = cache_get_row(0, 3, dests);
BizzInfo[i][bEntranceX] = cache_get_row_float(0, 4, MYSQL);
BizzInfo[i][bEntranceY] = cache_get_row_float(0, 5, MYSQL);
BizzInfo[i][bEntranceZ] = cache_get_row_float(0, 6, MYSQL);
BizzInfo[i][bExitX] = cache_get_row_float(0, 7, MYSQL);
BizzInfo[i][bExitY] = cache_get_row_float(0, 8, MYSQL);
BizzInfo[i][bExitZ] = cache_get_row_float(0, 9, MYSQL);
BizzInfo[i][bBuyPrice] = cache_get_row_int(0, 10, MYSQL);
BizzInfo[i][bEntranceCost] = cache_get_row_int(0, 11, MYSQL);
BizzInfo[i][bTill] = cache_get_row_int(0, 12, MYSQL);
BizzInfo[i][bLocked] = cache_get_row_int(0, 13, MYSQL);
BizzInfo[i][bInterior] = cache_get_row_int(0, 14, MYSQL);
BizzInfo[i][bProducts] = cache_get_row_int(0, 15, MYSQL);
BizzInfo[i][b2Till] = cache_get_row_int(0, 16, MYSQL);
BizzInfo[i][bPrice] = cache_get_row_int(0, 17, MYSQL);
BizzInfo[i][bBarX] = cache_get_row_float(0, 18, MYSQL);
BizzInfo[i][bBarY] = cache_get_row_float(0, 19, MYSQL);
BizzInfo[i][bBarZ] = cache_get_row_float(0, 20, MYSQL);
BizzInfo[i][bMafia] = cache_get_row_int(0, 21, MYSQL);
cache_delete(BiZzZ, MYSQL);
}
TotalBizz++;
printf("Бизнесов загружено: %d",TotalBizz);
return 1;
}
publics: SaveBizz()
{
new dests[100];
for(new i = 0; i <= TotalBizz; i++)
{
new Cache:SB = mysql_query(MYSQL,"UPDATE `bizz` SET");
BizzInfo[i][bID] = cache_get_row_int(0, 0, MYSQL);
BizzInfo[i][bOwned] = cache_get_row_int(0, 1, MYSQL);
BizzInfo[i][bOwner] = cache_get_row(0, 2, dests);
BizzInfo[i][bMessage] = cache_get_row(0, 3, dests);
BizzInfo[i][bEntranceX] = cache_get_row_float(0, 4, MYSQL);
BizzInfo[i][bEntranceY] = cache_get_row_float(0, 5, MYSQL);
BizzInfo[i][bEntranceZ] = cache_get_row_float(0, 6, MYSQL);
BizzInfo[i][bExitX] = cache_get_row_float(0, 7, MYSQL);
BizzInfo[i][bExitY] = cache_get_row_float(0, 8, MYSQL);
BizzInfo[i][bExitZ] = cache_get_row_float(0, 9, MYSQL);
BizzInfo[i][bBuyPrice] = cache_get_row_int(0, 10, MYSQL);
BizzInfo[i][bEntranceCost] = cache_get_row_int(0, 11, MYSQL);
BizzInfo[i][bTill] = cache_get_row_int(0, 12, MYSQL);
BizzInfo[i][bLocked] = cache_get_row_int(0, 13, MYSQL);
BizzInfo[i][bInterior] = cache_get_row_int(0, 14, MYSQL);
BizzInfo[i][bProducts] = cache_get_row_int(0, 15, MYSQL);
BizzInfo[i][b2Till] = cache_get_row_int(0, 16, MYSQL);
BizzInfo[i][bPrice] = cache_get_row_int(0, 17, MYSQL);
BizzInfo[i][bBarX] = cache_get_row_float(0, 18, MYSQL);
BizzInfo[i][bBarY] = cache_get_row_float(0, 19, MYSQL);
BizzInfo[i][bBarZ] = cache_get_row_float(0, 20, MYSQL);
BizzInfo[i][bMafia] = cache_get_row_int(0, 21, MYSQL);
cache_delete(SB, MYSQL);
}
return 1;
}
PHP:
SetTimer("CustomPickups",1000,1);
---------- Post added at 15:14 ---------- Previous post was at 15:06 ----------
ко всем командам Статистика бизнеса
PHP:
else if(strcmp(cmd, "/bizstats", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new bouse = PlayerInfo[playerid][pPBiskey];
if(bouse == 255) return SendClientMessage(playerid, COLOR_GREY, "У вас нет бизнеса");
if(bouse >= 100)
{
PrintSBizInfo(playerid, bouse-100);
}
else
{
PrintBizInfo(playerid, bouse);
}
}
return true;
}
