PDA

Просмотр полной версии : [Вопрос] Продукты в бизнес



GoJIoBoJIoMkA
10.08.2018, 16:46
Здравствуйте многоуважаемые скриптеры данного портала!
У меня вот какая проблема, купил бизнес и поехал устраиваться развозчиком продуктов, что бы привести в него продукты, сажусь в машину развозчика, загорается красный чекпоинт на месте загрузки продуктов, подъезжаю все норм, и тут вылазит окно "Выберите количество продуктов, от 100 до 1000", я загружаю продукты и тут вылазит окно, мол выберите номер бизнеса куда хотите доставить продукт, ввожу номер биза, а мне говорит что владелец бизнеса продуктов не заказывал, прикиньте информация!
Хотя после покупки биза, я в первую очередь сделал заказ на продукты, и в том окне где нужно выбрать номер биза, видно какое количество продуктов я заказывал, значит заказ прошел!!!
Предоставляю вашему вниманию коды по этому делу!

publics: LoadProd(playerid)
{
format(string,144,"{f0f0f0}[Продуктов: %d/1000]\n{5DD174}Бизнес: Не выбран", GetPVarInt(playerid,"count_prod"));
UpdateDynamic3DTextLabelText(gPlayerProdText[playerid][0],0xFFFFFF20,string);

if(GetPVarInt(playerid,"count_prod") >= GetPVarInt(playerid,"count_prod2"))
{
SendClientMessage(playerid,-1,""#good"Продукты загружены, выберите бизнес куда вы хотите загрузить продукты.");
string="{919191}[номер] - {A8413A}[имя бизнеса] - {5364A3}[цена за один продукт] - {5364A3}[к-во требуемых продуктов]\n\n";
for(new i=1; i!=20; i++)
{
format(string,2400,"%s{919191}%d. "WHITE"- {A8413A}\" %s \" "WHITE"- {5364A3}'%d' "WHITE"- {5364A3}'%d'\n",string,i,BizInfo[i][bName],BizInfo[i][bProdOrderPrice],BizInfo[i][bProdOrder]);
}
strcat(string,"\n\n"WHITE"Используйте {"#cGREEN"}номер "WHITE"бизнеса в поле ниже\n{A8413A}0 "WHITE"для выхода из меню");
ShowPlayerDialog(playerid,1113,DIALOG_STYLE_INPUT,""SERVER"Бизнес",string,"Выбрать","Далее ->");
SetPVarInt(playerid,"prod_next",GetPVarInt(playerid,"prod_next")+20);
DeletePVar(playerid,"count_prod2");
}
else
{
SetTimerEx("LoadProd",150,0,"i",playerid);
SetPVarInt(playerid,"count_prod", GetPVarInt(playerid,"count_prod") + 50);
}
return 1;
}



gPlayerProdCP[playerid] = CreateDynamicCP(BizInfo[biz][EnterBiz][0],BizInfo[biz][EnterBiz][1],BizInfo[biz][EnterBiz][2],2.5,-1,-1,playerid,100.0);
SendClientMessage(playerid, -1, ""#information"Продать продукты бизнесу можно не по {FF0000}чекпоинту, {FFFFFF}а через команду. [/sellprod]");
//
SetPVarInt(playerid,"prod_id", biz + 1);
DeletePVar(playerid,"prod_next");
return 1;
}
case 1114:
{
if(!response) return ShowPlayerDialog(playerid,1114,DIALOG_STYLE_INPUT,""SERVER"Продукты",""WHITE"Используйте количество продуктов которое вы хотите закупить {"#cGRAY"}(от 100 до 1000)","Ввод","");
if(strval(inputtext) < 100 || strval(inputtext) > 1000) return ShowPlayerDialog(playerid,1114,DIALOG_STYLE_INPUT,""SERVER"Продукты",""WHITE"Используйте количество продуктов которое вы хотите закупить {"#cGRAY"}(от 100 до 1000)","Ввод","");

SendClientMessage(playerid,-1,""#good"Вы купили продукты, сейчас они загрузятся в Вашу машину");

SetTimerEx("LoadProd",0,0,"i",playerid);
SetPVarInt(playerid,"count_prod2", strval(inputtext));
return 1;
}

DeimoS
10.08.2018, 21:26
Покажи код заказа продуктов

GoJIoBoJIoMkA
12.08.2018, 14:14
Покажи код заказа продуктов

При заказе продуктов вылазит окно "Заказ продуктов" от 100 до 10000 я заказываю максимум, следом вылазит второе окно, тоже "Заказ продуктов", я опять же пишу 10000 и это окно появляется по новой, короче говоря оно не принимает максимальный заказ как первое окно, пропишу в нем 9999, и только после этого появляется окно о записи цен, сколько я заплачу за единицу продукта!
По моему что то не так со 1111 кейсом, мне интересно, почему окно заказа продуктов вылазит 2 раза!

case dBusiness:
{
if(!response) return 1;
new bizid = PlayerInfo[playerid][pBusiness];
if(bizid == -1) return 1;
switch(listitem)
{
case 0: ShowBusinessInformation(playerid,bizid);
case 1:
{
if(!BizInfo[bizid][bLock]) return BizInfo[bizid][bLock] = 1,SendClientMessage(playerid, COLOR_REDD, "Вы закрыли свой бизнес."), UpdateBusinessData(bizid, "bLock",BizInfo[bizid][bLock]);
if(BizInfo[bizid][bLock]) return BizInfo[bizid][bLock] = 0,SendClientMessage(playerid, COLOR_GREEN, "Вы открыли свой бизнес."), UpdateBusinessData(bizid, "bLock",BizInfo[bizid][bLock]);
}
case 2: SellBusiness(playerid);
case 3: SPD(playerid,71,2,""SERVER"Изменение цен",""WHITE"Цена за вход в бизнес\nТовар №1\nТовар №2\nТовар №3\nТовар №4\nТовар №5\nТовар №6\nТовар №7\nТовар №8\nТовар №9","Далее","Отмена");
case 4: SetPlayerCheckpoint(playerid,BizInfo[bizid][EnterBiz][0],BizInfo[bizid][EnterBiz][1],BizInfo[bizid][EnterBiz][2],8.0), SetPVarInt(playerid, "gps_pic", 1);
case 5: SPD(playerid,dBusinessBank,DIALOG_STYLE_LIST,""SERVER"Бизнес",""WHITE"1. Посмотреть сумму в кассе\n2. Положить деньги в кассу\n3. Снять деньги с кассы","Далее","Назад");
case 6: SPD(playerid,5232,DIALOG_STYLE_MSGBOX,""SERVER"Реклама бизнеса","\n\n"WHITE"Стоимость рекламы: "SERVER"50.000$"WHITE"\n- Посылать рекламу можно раз в 5 минут.\n- Рекламный текст вводится Вашими руками.\n- Рекламу люди видят только один раз!\n\nВы действительно хотите рекламировать свой бизнес?", "Принять", "Отмена");
case 7: ShowPlayerDialog(playerid,1110,DIALOG_STYLE_INPUT,""SERVER"Заказ продуктов", ""WHITE"Используйте количество продуктов которое вы хотите заказать\nЗаказывать можно от "SERVER"100"WHITE" до "SERVER"10000"WHITE" продуктов", "Далее", "Отмена");
}
return 1;
}
case 1110:
{
if(!response) return SPD(playerid,dBusiness,DIALOG_STYLE_LIST,""SERVER"Управление бизнесом","1. Статистика бизнеса\n2. Открыть / закрыть бизнес\n3. Продать бизнес\n4. Установка цен\n5. Поставить маркер у входа в бизнес\n6. Касса\n7. Заказать рекламу бизнеса\n"WHITE"8. Заказ продуктов","Далее","Отмена");

new put = strval(inputtext);
new bizid = PlayerInfo[playerid][pBusiness];

if(put < 100 || put > 10000) return ShowPlayerDialog(playerid,1110,DIALOG_STYLE_INPUT,""SERVER"Заказ продуктов", ""WHITE"Используйте количество продуктов которое вы хотите заказать\nЗаказывать можно от "SERVER"100"WHITE" до "SERVER"10000"WHITE" продуктов", "Далее", "Отмена");
if(BizInfo[bizid][bProd]+put >= BizInfo[bizid][bProdMax]) return ShowPlayerDialog(playerid,1110,DIALOG_STYLE_INPUT,""SERVER"Заказ продуктов", ""WHITE"Используйте количество продуктов которое вы хотите заказать\nЗаказывать можно от "SERVER"100"WHITE" до "SERVER"10000"WHITE" продуктов\n"SERVER"Заказать можно не более максимального склада!", "Далее", "Отмена");

BizInfo[bizid][bProdOrder] = put;
SaveBusiness(bizid);

ShowPlayerDialog(playerid,1111,DIALOG_STYLE_INPUT,""SERVER"Заказ продуктов", ""WHITE"Используйте цену за 1 продукт\nВ разумных пределах экономики {afafaf}(до 50$)", "Далее", "");
return 1;
}
case 1111:
{
new put = strval(inputtext);
new bizid = PlayerInfo[playerid][pBusiness];
if(!response) return ShowPlayerDialog(playerid,1111,DIALOG_STYLE_INPUT,""SERVER"Заказ продуктов", ""WHITE"Используйте цену за 1 продукт\nВ разумных пределах экономики {afafaf}(до 50$)", "Далее", "");
if(put < 1 || put > 50) return ShowPlayerDialog(playerid,1111,DIALOG_STYLE_INPUT,""SERVER"Заказ продуктов", ""WHITE"Используйте цену за 1 продукт\nВ разумных пределах экономики {afafaf}(до 50$)", "Далее", "Отмена");
if(BizInfo[bizid][bProd]+put >= BizInfo[bizid][bProdMax]) return ShowPlayerDialog(playerid,1111,DIALOG_STYLE_INPUT,""SERVER"Заказ продуктов", ""WHITE"Используйте цену за 1 продукт\nВ разумных пределах экономики {afafaf}(до 50$)\n"SERVER"Заказать можно не более максимального склада!", "Далее", "");
BizInfo[bizid][bProdOrderPrice] = put;
SaveBusiness(bizid);
format(string, 128, ""#good"Вы заказали %d продуктов за %d$ на каждый",BizInfo[bizid][bProdOrder],BizInfo[bizid][bProdOrderPrice]);
SendClientMessage(playerid,-1,string);
SendClientMessage(playerid,-1,""#information"Ожидайте пока вам доставят продукты");
SendClientMessage(playerid,-1,""#information"Также вы можете устроиться развозчиком сырья, и доставить сами {afafaf}(/gps > Важные места > Мэрия ЛС/СФ/ЛВ)");
return 1;
}

GoJIoBoJIoMkA
13.08.2018, 17:23
Подниму разок!

DeimoS
14.08.2018, 10:48
Покажи весь код системы, а не эти огрызки. Где код с сообщением о том, что бизнес ничего не заказывал? Где всё остальное?

GoJIoBoJIoMkA
14.08.2018, 13:58
Ошибку исправил, теперь всё норм!
Но в связи с этим обнаружил другую ошибку, при загрузке продуктов нужно выбрать номер бизнеса из списка, который заказал продукты, прикол в том что выбираю номер биза 10, а метка на карте появляется на бизнесе номер 9, и так далее, выберу 20, метка стоит на 19, выберу 55, метка ставиться на 54 ну вы поняли о чем я, и соответственно продукты разгружаются на том бизе, где стоит метка, а не на том, который я выбрал из списка!
Вот паблик и кейс, в котором есть список этих бизов, как сделать так, что бы метка появлялась на том номере, который я выбрал?


publics: LoadProd(playerid)
{
format(string,144,"{f0f0f0}[Продуктов: %d/1000]\n{5DD174}Бизнес: Не выбран", GetPVarInt(playerid,"count_prod"));
UpdateDynamic3DTextLabelText(gPlayerProdText[playerid][0],0xFFFFFF20,string);

if(GetPVarInt(playerid,"count_prod") >= GetPVarInt(playerid,"count_prod2"))
{
SendClientMessage(playerid,-1,""#good"Продукты загружены, выберите бизнес куда вы хотите загрузить продукты.");
string="{919191}[номер] - {A8413A}[имя бизнеса] - {5364A3}[цена за один продукт] - {5364A3}[к-во требуемых продуктов]\n\n";
for(new i=1; i!=20; i++)
{
format(string,2400,"%s{919191}%d. "WHITE"- {A8413A}\" %s \" "WHITE"- {5364A3}'%d' "WHITE"- {5364A3}'%d'\n",string,i,BizInfo[i][bName],BizInfo[i][bProdOrderPrice],BizInfo[i][bProdOrder]);
}
strcat(string,"\n\n"WHITE"Используйте {"#cGREEN"}номер "WHITE"бизнеса в поле ниже\n{A8413A}0 "WHITE"для выхода из меню");
ShowPlayerDialog(playerid,1113,DIALOG_STYLE_INPUT,""SERVER"Бизнес",string,"Выбрать","Далее ->");
SetPVarInt(playerid,"prod_next",GetPVarInt(playerid,"prod_next")+20);
DeletePVar(playerid,"count_prod2");
}
else
{
SetTimerEx("LoadProd",150,0,"i",playerid);
SetPVarInt(playerid,"count_prod", GetPVarInt(playerid,"count_prod") + 50);
}
return 1;
}


case 1113:
{
if(!response)
{
string="{919191}[номер] - {A8413A}[имя бизнеса] - {5364A3}[цена] - {5364A3}[к-во требуемых продуктов]\n\n";
new prod_next = GetPVarInt(playerid,"prod_next");
for(new i=prod_next+1; i!=prod_next+20; i++)
{
if(i >= BIZES) break;
format(string,2400,"%s{919191}%d. "WHITE"- {A8413A}\" %s \" "WHITE"- {5364A3}'%d' "WHITE"- {5364A3}'%d'\n",string,i,BizInfo[i][bName],BizInfo[i][bProdOrderPrice],BizInfo[i][bProdOrder]);
}
strcat(string,"\n\n"WHITE"Используйте {"#cGREEN"}номер "WHITE"бизнеса в поле ниже\n{A8413A}0 "WHITE"для выхода из меню");
ShowPlayerDialog(playerid,1113,DIALOG_STYLE_INPUT,""SERVER"Бизнес",string,"Выбрать","Далее ->");
if(prod_next+20 < BIZES) SetPVarInt(playerid,"prod_next",prod_next+20);
return 1;
}
new biz = strval(inputtext)-1;
if(biz < 0 || biz >= BIZES) return 1;

if(!BizInfo[biz][bProdOrder])
{
SendClientMessage(playerid, -1, ""#net"Владелец бизнеса не заказывал продукты");
DeletePVar(playerid,"prod_next");
SetTimerEx("LoadProd",0,0,"i",playerid);
return 1;
}

format(string, 255, "Вы выбрали бизнес: %s - Цена за 1 продукт: %d $ - Количество требуемых продуктов: %d шт.", BizInfo[biz][bName],BizInfo[biz][bProdOrderPrice],BizInfo[biz][bProdOrder]);
SendClientMessage(playerid,-1,string);
//
format(string,144,"{f0f0f0}[Продуктов: %d/1000]\n{5DD174}Бизнес: %s", GetPVarInt(playerid,"count_prod"),BizInfo[biz][bName]);
UpdateDynamic3DTextLabelText(gPlayerProdText[playerid][0],0xFFFFFF20,string);
//
SendClientMessage(playerid,-1,""#information"Бизнес отмечен на карте {"#cRED"}красной"WHITE" меткой.");
SetPlayerGPS(playerid,80,BizInfo[biz][EnterBiz][0],BizInfo[biz][EnterBiz][1],BizInfo[biz][EnterBiz][2],Streamer_GetIntData(STREAMER_TYPE_MAP_ICON, BizInfo[biz][bMapIcon], E_STREAMER_TYPE),-1,MAPICON_GLOBAL_CHECKPOINT);
//
gPlayerProdText[playerid][1]=CreateDynamic3DTextLabel("{f0f0f0}Место для разгрузки\n{5DD174}продуктов для бизнеса", 0xFFFFFF20, BizInfo[biz][EnterBiz][0],BizInfo[biz][EnterBiz][1],BizInfo[biz][EnterBiz][2]+1.0, 5.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, playerid);
gPlayerProdCP[playerid] = CreateDynamicCP(BizInfo[biz][EnterBiz][0],BizInfo[biz][EnterBiz][1],BizInfo[biz][EnterBiz][2],2.5,-1,-1,playerid,100.0);
SendClientMessage(playerid, -1, ""#information"Продать продукты бизнесу можно не по {FF0000}чекпоинту, {FFFFFF}а через команду. [/sellprod]");
//
SetPVarInt(playerid,"prod_id", biz + 1);
DeletePVar(playerid,"prod_next");
return 1;
}

StevenH
15.08.2018, 02:02
В конце 1113 кейса:
SetPVarInt(playerid,"prod_id", biz + 1);
Исправь на:
SetPVarInt(playerid,"prod_id", biz + 2);

Потому что переменная biz равна:
new biz = strval(inputtext)-1;
Не понятно для чего -1, но раз такая система, то для корректного отображения надо strval(inputtext)+1 (а у тебя -1). Не рекомендую тут ничего менять, т.к. может что то поломаться, лучше вверху пвар prod_id biz+1 замени на biz + 2

Shayba
20.08.2018, 15:21
Вот это
new biz = strval(inputtext)-1; ЗАмени на это!
new biz = strval(inputtext);

GoJIoBoJIoMkA
22.08.2018, 12:30
Спасибо всем кто помогал мне решить эту проблему!
Вариант Shaybы помог, проблема решина, тема закрыта!