Nikit[A]
Ученик
Мод Reliant/Empire RP, есть система бизнесов, при покупке помещения для бизнеса в /bmenu есть "Выбрать продаваемый товар", с типом товара зависит маппинг в помещении бизнеса. Всего 6 типов товаров, и короче когда ставишь какой-либо объекты появляются, но после релога сервера или игрока - при заходе в бизнес объектов нет. Помогите пожалуйста.
И собственно сами объекты.
Код:
case dBMENU_PROD_1:
{
new id = Players[playerid][pBusiness], id_cell = GetPVarInt(playerid,"Select_Prod");
if(!response) return BMenu(playerid),DeletePVar(playerid,"Select_Prod");
switch(listitem)
{
case 0:
{
new str[106];
if(GetProdID(id,id_cell) != -1) format(str,sizeof(str),""CLSERV"%s:"W"\n1. %s товар\n2. Заказать товар (на складе %d штук)",tvInfo[id_cell][tName_Rus],(Business[id][bProducts][GetProdID(id,id_cell)]) ? ("Перестать продавать") : ("Начать продавать"),Business[id][bProducts_cell][GetProdID(id,id_cell)]);
else format(str,sizeof(str),""CLSERV"%s:"W"\n1. Начать продавать товар",tvInfo[id_cell][tName_Rus]);
ShowPlayerDialog(playerid,dBMENU_PROD_1,DIALOG_STYLE_LIST,"{"#W_CC"}Меню бизнеса:"W" товар",str,"Далее","Закрыть");
}
case 1:
{
for (new i = 0; i < 2 ; i++)
{
if(Business[id][bProducts][i] == id_cell)
{
Business[id][bProducts_cell][GetProdID(id,id_cell)] = 0;
Business[id][bProducts][GetProdID(id,id_cell)] = 0;
SendClientMessage(playerid,-1,""CLSERV"Товар снят с лавок вашего бизнеса предприятия!");
UpdateBiz(id,0);
UpdateBiz(id,1);
Save_Business(id);
return BMenu(playerid),DeletePVar(playerid,"Select_Prod");
}
}
new current;
for (new i = 0; i < 2 ; i++)
{
if(Business[id][bProducts][i] != 0) current++;
if(Business[id][bProducts][i] == 5 && current != 0) return SendClientMessage(playerid,-1,""CLSERV"Нельзя продавать другие товары, если Вы продаете оружие!"),BMenu(playerid),DeletePVar(playerid,"Select_Prod");
}
if(current > 0 && Business[id][bBizType] == 0) return SendClientMessage(playerid,-1,""CLSERV"Вы не можете продать два вида товара в магазине, улучшите свой бизнес до универмага!"),BMenu(playerid),DeletePVar(playerid,"Select_Prod");
if(current > 1) return SendClientMessage(playerid,-1,""CLSERV"Нельзя иметь больше 2 видов товара!");
for (new i = 0; i < 2 ; i++)
{
if(Business[id][bProducts][i] != 0) continue;
Business[id][bProducts][i] = id_cell;
SendClientMessage(playerid,-1,""CLSERV"Товар выставлен на продажу в ваше бизнес предприятие!");
UpdateBiz(id,0);
UpdateBiz(id,1);
BMenu(playerid),DeletePVar(playerid,"Select_Prod");
Save_Business(id);
break;
}
return 1;
}
case 2:
{
new str[156];
format(str,sizeof(str),""W"Сейчас на складе %d штук \"%s\"\n"cOR"Стоимость 1 штук товара составляет 8$\n"CLSERV"- Введите количество товара, которое хотите купить:",Business[id][bProducts_cell][GetProdID(id,id_cell)],tvInfo[id_cell][tName_Rus]);
ShowPlayerDialog(playerid,dBMENU_PROD_2,DIALOG_STYLE_INPUT,"{"#W_CC"}Меню бизнеса:"W" покупка товара",str,"Купить","Закрыть");
}
}
}
Код:
stock UpdateBiz(i,params)
{
switch(params)
{
case 0:
{
foreach(new playerid : Player)
{
if(!IsPlayerInRangeOfPoint(playerid,1.0,Business[i][bPosEx][0],Business[i][bPosEx][1],Business[i][bPosEx][2]) && Business[i][bID] != GetPlayerVirtualWorld(playerid)) continue;
HidePlayerBObjects(playerid);
ShowPlayerBObjects(playerid,i);
}
}
case 1:
{
Delete3DTextLabel(Business[i][bProdShop][0]);
Delete3DTextLabel(Business[i][bProdShop][1]);
for (new id = 0; id < 2 ; id++)
{
switch(Business[i][bProducts][id])
{
case 1: Business[i][bProdShop][id] = Create3DTextLabel("Продукты\n{"#W_CC"}Нажмите Alt",0xFFFFFFFF,222.4726,-110.4689,1007.6758,5.0,i);
case 2: Business[i][bProdShop][id] = Create3DTextLabel("Напитки\n{"#W_CC"}Нажмите Alt",0xFFFFFFFF,223.9310,-105.9483,1007.7930,5.0,i);
case 3: Business[i][bProdShop][id] = Create3DTextLabel("Одежда\n{"#W_CC"}Нажмите Alt",0xFFFFFFFF,238.8325,-101.8562,1007.7930,5.0,i);
case 4: Business[i][bProdShop][id] = Create3DTextLabel("Электротехника\n{"#W_CC"}Нажмите Alt",0xFFFFFFFF,230.1801,-105.7671,1007.7930,5.0,i);
case 5: Business[i][bProdShop][id] = Create3DTextLabel("Оружие\n{"#W_CC"}Нажмите Alt",0xFFFFFFFF,234.0840,-111.8773,1007.6680,5.0,i);
}
}
}
case 2:
{
DestroyActor(Business[i][bWActor][0]);
Delete3DTextLabel(Business[i][bWActor3D][0]);
if(Business[i][bWorker][0] != -1)
{
Business[i][bWActor][0] = CreateActor(bWorkers[Business[i][bWorker][0]][wModel], 227.7390,-111.9663,1007.6758+0.8,356.5920);
SetActorVirtualWorld(Business[i][bWActor][0],i);
Business[i][bWActor3D][0] = Create3DTextLabel(bWorkers[Business[i][bWorker][0]][wName],0x4582A1FF,227.7390,-111.9663,1007.6758+1.2,5.0,i);
}
return 1;
}
case 3:
{
DestroyActor(Business[i][bWActor][1]);
Delete3DTextLabel(Business[i][bWActor3D][1]);
if(Business[i][bWorker][1] != -1)
{
Business[i][bWActor][1] = CreateActor(bWorkers[Business[i][bWorker][1]][wModel], 225.9214,-113.5084,1007.6680+0.8,3.0271);
SetActorVirtualWorld(Business[i][bWActor][1],i);
Business[i][bWActor3D][1] = Create3DTextLabel(bWorkers[Business[i][bWorker][1]][wName],0x4582A1FF,225.9214,-113.5084,1007.6680+1.2,5.0,i);
}
}
}
return 1;
}
Код:
stock HidePlayerBObjects(playerid)
{
for (new i = 0; i < 41 ; i++) DestroyPlayerObject(playerid, bObjects[playerid][i]);
return 1;
}
Код:
stock ShowPlayerBObjects(playerid, bid)
{
for (new i = 0; i < 2 ; i++)
{
if(Business[bid][bProducts][i] == 4)
{
//Электроника
bObjects[playerid][0] = CreatePlayerObject(playerid,2376, 231.91360, -106.85510, 1006.74609, 0.00000, 0.00000, 90.00000);
bObjects[playerid][1] = CreatePlayerObject(playerid,19894, 231.37263, -105.45903, 1007.07568, 0.00000, 0.00000, 84.00000);
bObjects[playerid][2] = CreatePlayerObject(playerid,18873, 230.93230, -105.07660, 1007.05627, 0.00000, 0.00000, -90.00000);
bObjects[playerid][3] = CreatePlayerObject(playerid,19893, 231.34419, -104.97830, 1007.05548, 0.00000, 0.00000, -52.00000);
bObjects[playerid][4] = CreatePlayerObject(playerid,19623, 231.46809, -105.86120, 1007.13049, 0.00000, 0.00000, -47.00000);
bObjects[playerid][5] = CreatePlayerObject(playerid,18872, 231.09720, -106.80920, 1007.05627, 0.00000, 0.00000, -127.00000);
bObjects[playerid][6] = CreatePlayerObject(playerid,18871, 230.99373, -105.93531, 1007.05627, 0.00000, 0.00000, -84.00000);
bObjects[playerid][7] = CreatePlayerObject(playerid,18870, 230.97610, -104.42690, 1007.05627, 0.00000, 0.00000, -84.00000);
bObjects[playerid][8] = CreatePlayerObject(playerid,18871, 231.41710, -106.44910, 1007.05627, 0.00000, 0.00000, -120.00000);
}
if(Business[bid][bProducts][i] == 1)
{
//Продукты
bObjects[playerid][9] = CreatePlayerObject(playerid,2543, 225.19180, -107.13990, 1006.53339, 0.00000, 0.00000, 180.00000);
bObjects[playerid][10] = CreatePlayerObject(playerid,2543, 222.30339, -112.82976, 1006.41339, 0.00000, 0.00000, 144.00000);
bObjects[playerid][11] = CreatePlayerObject(playerid,2542, 222.24661, -108.20031, 1006.71338, 0.00000, 0.00000, 0.00000);
bObjects[playerid][12] = CreatePlayerObject(playerid,2536, 221.41493, -111.54364, 1006.51343, 0.00000, 0.00000, 90.00000);
bObjects[playerid][13] = CreatePlayerObject(playerid,2539, 221.41289, -110.54832, 1006.51343, 0.00000, 0.00000, 90.00000);
bObjects[playerid][14] = CreatePlayerObject(playerid,2538, 221.40559, -109.56510, 1006.51343, 0.00000, 0.00000, 90.00000);
}
if(Business[bid][bProducts][i] == 2)
{
//Напитки
bObjects[playerid][15] = CreatePlayerObject(playerid,2541, 222.24197, -106.83212, 1006.64941, 0.00000, 0.00000, 164.00000);
bObjects[playerid][16] = CreatePlayerObject(playerid,2533, 223.85796, -107.09406, 1006.79340, 0.00000, 0.00000, 180.00000);
bObjects[playerid][17] = CreatePlayerObject(playerid,16151, 225.16682, -101.29755, 1007.07239, 0.00000, 0.00000, 90.00000);
bObjects[playerid][18] = CreatePlayerObject(playerid,2543, 225.19180, -107.13990, 1006.53339, 0.00000, 0.00000, 180.00000);
}
if(Business[bid][bProducts][i] == 3)
{
//Одежда
bObjects[playerid][19] = CreatePlayerObject(playerid,2733, 233.11011, -98.75700, 1008.99847, 0.00000, 0.00000, 0.00000);
bObjects[playerid][20] = CreatePlayerObject(playerid,2732, 234.37010, -98.75700, 1008.99847, 0.00000, 0.00000, 0.00000);
bObjects[playerid][21] = CreatePlayerObject(playerid,2734, 234.37010, -98.75700, 1007.67047, 0.00000, 0.00000, 0.00000);
bObjects[playerid][22] = CreatePlayerObject(playerid,2735, 233.11011, -98.75700, 1007.67047, 0.00000, 0.00000, 0.00000);
bObjects[playerid][23] = CreatePlayerObject(playerid,2395, 239.58571, -106.87881, 1006.79242, 0.00000, 0.00000, 180.00000);
bObjects[playerid][24] = CreatePlayerObject(playerid,2375, 239.85330, -106.29226, 1006.62299, 0.00000, 0.00000, 90.00000);
bObjects[playerid][25] = CreatePlayerObject(playerid,2397, 239.24319, -106.71401, 1008.73920, 0.00000, 0.00000, 180.00000);
bObjects[playerid][26] = CreatePlayerObject(playerid,2397, 238.46092, -106.71352, 1008.73920, 0.00000, 0.00000, 180.00000);
bObjects[playerid][27] = CreatePlayerObject(playerid,2390, 237.64120, -106.66810, 1008.73920, 0.00000, 0.00000, 180.00000);
bObjects[playerid][28] = CreatePlayerObject(playerid,2390, 236.78087, -106.67375, 1008.73920, 0.00000, 0.00000, 180.00000);
bObjects[playerid][29] = CreatePlayerObject(playerid,2391, 239.30612, -106.64150, 1007.41919, 0.00000, 0.00000, 180.00000);
bObjects[playerid][30] = CreatePlayerObject(playerid,2391, 238.45891, -106.63689, 1007.41919, 0.00000, 0.00000, 180.00000);
bObjects[playerid][31] = CreatePlayerObject(playerid,2389, 237.55939, -106.67049, 1007.41919, 0.00000, 0.00000, 180.00000);
bObjects[playerid][32] = CreatePlayerObject(playerid,2389, 236.80045, -106.71571, 1007.41919, 0.00000, 0.00000, 180.00000);
bObjects[playerid][33] = CreatePlayerObject(playerid,2387, 236.86697, -104.38444, 1006.79272, 0.00000, 0.00000, 0.00000);
}
if(Business[bid][bProducts][i] == 5)
{
//Оружейка
bObjects[playerid][34] = CreatePlayerObject(playerid,18109, 235.53922, -116.73988, 1008.48907, 0.00000, 0.00000, 0.00000);
bObjects[playerid][35] = CreatePlayerObject(playerid,2358, 234.53931, -115.71610, 1006.93958, 0.00000, 0.00000, 180.00000);
bObjects[playerid][36] = CreatePlayerObject(playerid,2358, 233.77704, -115.72794, 1006.93958, 0.00000, 0.00000, 180.00000);
bObjects[playerid][37] = CreatePlayerObject(playerid,2358, 232.93611, -115.73226, 1006.93958, 0.00000, 0.00000, 180.00000);
bObjects[playerid][38] = CreatePlayerObject(playerid,2358, 235.93130, -113.66280, 1006.74762, 0.00000, 0.00000, 215.00000);
bObjects[playerid][39] = CreatePlayerObject(playerid,2358, 235.92070, -112.99805, 1006.74762, 0.00000, 0.00000, 215.00000);
bObjects[playerid][40] = CreatePlayerObject(playerid,2358, 235.90094, -112.28952, 1006.74762, 0.00000, 0.00000, 215.00000);
}
}
return 1;
}
