• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Почему путаются прилавки на рынке?

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

Shayba

Специалист
Здравствуй легендарный портал PAWNO-INFO а так же его жители и гости!
Давно не работал в сфере pawn и по этому я здесь. Вырезал я рынок (базар) с одного мода, и пикапы и лавки и 3Д текст, и т.д
Но сама проблема кроется в том, что когда я встаю на место продавца первой лавки и выставляю товар на продажу, товар перемещается на вторую лавку, и 3Д текст второй лавки говорит о том, буд то я торгую за лавкой номер "2"
Если я встаю за лавку номер 2 и выставляю товар на продажу, товар перемещается за лавку номер "3" и 3Д текст опять говорит буд то я торгую за третьей лавкой. И так каждая лавка перемещает товар на соседнюю числом выше. В базе данных нет ни чего, что связано с этим рынком.
Координаты для товара записаны правильно, место продавца тоже записано правильно, по какой причине товар может ползать по лавкам подскажите пожалуйста?!

Это координаты место продавца каждой лавки.
PHP:
static const stock posMarket[9][markInfo] = {
    {1303.8132,-1864.3981,13.5469},
    {1303.8153,-1869.7775,13.5469},
    {1303.7678,-1875.1301,13.5525},
    {1301.0409,-1879.2333,13.5525},
    {1296.5671,-1879.2952,13.5469},
    {1292.2970,-1879.2520,13.5469},
    {1288.7307,-1875.3301,13.5469},
    {1288.7162,-1870.0292,13.5469},
    {1288.7256,-1864.6061,13.5469}
};
Вот кейс, который отвечает за товар на лавках, тут же записываются координаты для товара.

Код:
        case 61: {
            if(!response) {
                DeletePVar(playerid, "market_numset");
                DeletePVar(playerid, "market_priceitem");
                DeletePVar(playerid, "market_inv_slot");
                return DeletePVar(playerid, "market_inv_isaccessory");
            }
            new len=strlen(inputtext);
            if(!len)
                return SPD(playerid, 61, DIALOG_STYLE_INPUT,"Продажа",""CWHITE"Введите количество товара для выставления:","Готово","Отмена");
            new val=strval(inputtext);
            for(new i = len - 1; i != -1; i --) {
                switch(inputtext[i]) {
                    case '0'..'9': continue;
                    default: return SPD(playerid, 61, DIALOG_STYLE_INPUT,"Продажа",""CWHITE"Введите количество товара для выставления:","Готово","Отмена");
                }
            }
            if(inv_info[playerid][i_clickID] == -1)
                return 1;

            new invslot=GetPVarInt(playerid, "market_inv_slot");

            if(inv_info[playerid][i_type][invslot] == 2 ||
                inv_info[playerid][i_type][invslot] == 3) return SCM(playerid, COLOR_LIGHTGREY,"Эту вещь нельзя выставить на продажу");

            new nummarket=GetPVarInt(playerid, "market_numset");
            
            if(invslot == -1) return 1;
            new freenum=-1;
            for(new i=0; i<5; i++) {
                if(modelitem[nummarket][i] != -1)
                    continue;
                freenum=i;
                break;
            }

            if(freenum == -1)
                return SCM(playerid,COLOR_LIGHTGREY,"Вы не можете выставить на продажу более 5 товаров");

            if(val < 1 || val > inv_info[playerid][i_count][invslot]) {
                SPD(playerid, 61, DIALOG_STYLE_INPUT,"Продажа",""CWHITE"Введите количество товара для выставления:","Готово","Отмена");
                return SCM(playerid,COLOR_LIGHTGREY,"Введено некорректное количество");
            }

            new model;

            if(GetPVarInt(playerid, "market_inv_isaccessory"))
                model=inv_info[playerid][in_amodel][invslot];
            else model=item_data[inv_info[playerid][i_type][invslot]][itemmodel];

            close_inventory(playerid);
            SetPVarInt(playerid, "count_prod", val);
            new Float:posmX,Float:posmY,Float:posmZ,Float:posmA;
            switch(nummarket) {
                case 0: {
                    posmX=1303.0787;
                    posmY=-1864.4194;
                    posmZ=13.4995;
                    posmA=-90;
                }
                case 1: {
                    posmX=1303.0624;
                    posmY=-1869.9698;
                    posmZ=13.4995;
                    posmA=-90;
                }
                case 2: {
                    posmX=1303.0087;
                    posmY=-1875.3330;
                    posmZ=13.4995;
                    posmA=-90;
                }
                case 3: {
                    posmX=1300.9015;
                    posmY=-1878.4351;
                    posmZ=13.4995;
                    posmA=180;
                }
                case 4: {
                    posmX=1296.5482;
                    posmY=-1878.4812;
                    posmZ=13.4995;
                    posmA=90;
                }
                case 5: {
                    posmX=1292.1379;
                    posmY=-1878.4751;
                    posmZ=13.4995;
                    posmA=180;
                }
                case 6: {
                    posmX=1289.5500;
                    posmY=-1875.2720;
                    posmZ=13.4995;
                    posmA=90;
                }
                case 7: {
                    posmX=1289.5513;
                    posmY=-1869.8712;
                    posmZ=13.4995;
                    posmA=90;
                }
                case 8: {
                    posmX=1289.5612;
                    posmY=-1864.4884;
                    posmZ=13.4995;
                    posmA=90;
                }
            }
            install_market_obj[playerid][freenum] = CreateObject(model, posmX,posmY,posmZ,0, 0, posmA);
            Streamer_Update(playerid);
            SetPVarInt(playerid, "market_IsEditing", 1);
            SetPVarInt(playerid, "market_NumProd", freenum);
            EditObject(playerid, install_market_obj[playerid][freenum]);
            SCM(playerid, -1, "Установите выбранный товар на прилавке и нажмите иконку "CBLUE"\"Сохранить\"");
            SCM(playerid, -1, "Подсказка: Вы можете двигать камеру, зажимая "CYELLOW"ПРОБЕЛ");
        }

        case 147: {
            if(!response) {
                DeletePVar(playerid, "market_numset");
                DeletePVar(playerid, "market_inv_slot");
                DeletePVar(playerid, "market_inv_isskin");
                return DeletePVar(playerid, "market_inv_isaccessory");
            }
            new len=strlen(inputtext);
            if(!len)
                return SPD(playerid,147,DIALOG_STYLE_INPUT,"Продажа",""CWHITE"Вы хотите выставить товар на продажу.\nВведите цену для этого товара в поле ниже:","Готово","Отмена");
            new val=strval(inputtext);
            for(new i = len - 1; i != -1; i --) {
                switch(inputtext[i]) {
                    case '0'..'9': continue;
                    default: return SPD(playerid,147,DIALOG_STYLE_INPUT,"Продажа",""CWHITE"Вы хотите выставить товар на продажу.\nВведите цену для этого товара в поле ниже:","Готово","Отмена");
                }
            }
            if(val < 100 || val > 500000) {
                SPD(playerid,147,DIALOG_STYLE_INPUT,"Продажа",""CWHITE"Вы хотите выставить товар на продажу.\nВведите цену для этого товара в поле ниже:","Готово","Отмена");
                return SCM(playerid,COLOR_LIGHTGREY,"Укажите цену от 100$ до 500000$");
            }
            if(inv_info[playerid][i_clickID] == -1)
                return 1;

            new invslot=GetPVarInt(playerid, "market_inv_slot");

            if(inv_info[playerid][i_type][invslot] == 2 ||
                inv_info[playerid][i_type][invslot] == 3) return SCM(playerid, COLOR_LIGHTGREY,"Эту вещь нельзя выставить на продажу");

            new nummarket=GetPVarInt(playerid, "market_numset");
            
            if(invslot == -1) return 1;
            new freenum=-1;
            for(new i=0; i<5; i++) {
                if(modelitem[nummarket][i] != -1)
                    continue;
                freenum=i;
                break;
            }
            new countskins;
            for(new i=0; i<5; i++) {
                if(!item_is_Skin[nummarket][i])
                    continue;
                countskins++;
            }

            if(countskins >= 3) return SCM(playerid,COLOR_LIGHTGREY,"Вы не можете выставлять на продажу более 3 скинов");

            if(freenum == -1)
                return SCM(playerid,COLOR_LIGHTGREY,"Вы не можете выставить на продажу более 5 товаров");

            SetPVarInt(playerid, "market_priceitem", val);

            if(inv_info[playerid][i_count][invslot] > 1)
                return SPD(playerid, 61, DIALOG_STYLE_INPUT,"Продажа",""CWHITE"Введите количество товара для выставления:","Готово","Отмена");

            new model;

            if(GetPVarInt(playerid, "market_inv_isskin")) {
                switch(random(2)) {
                    case 0: model=2399;
                    case 1: model=2390;
                }
                SetPVarInt(playerid, "market_inv_skinobj", model);
            }
            else if(GetPVarInt(playerid, "market_inv_isaccessory"))
                model=inv_info[playerid][in_amodel][invslot];
            else model=item_data[inv_info[playerid][i_type][invslot]][itemmodel];

            close_inventory(playerid);
            SetPVarInt(playerid, "count_prod", 1);

            new Float:posmX,Float:posmY,Float:posmZ,Float:posmA;
            switch(nummarket) {
                case 0: {
                    posmX=1303.0787;
                    posmY=-1864.4194;
                    posmZ=13.4995;
                    posmA=-90;
                }
                case 1: {
                    posmX=1303.0624;
                    posmY=-1869.9698;
                    posmZ=13.4995;
                    posmA=-90;
                }
                case 2: {
                    posmX=1303.0087;
                    posmY=-1875.3330;
                    posmZ=13.4995;
                    posmA=-90;
                }
                case 3: {
                    posmX=1300.9015;
                    posmY=-1878.4351;
                    posmZ=13.4995;
                    posmA=180;
                }
                case 4: {
                    posmX=1296.5482;
                    posmY=-1878.4812;
                    posmZ=13.4995;
                    posmA=90;
                }
                case 5: {
                    posmX=1292.1379;
                    posmY=-1878.4751;
                    posmZ=13.4995;
                    posmA=180;
                }
                case 6: {
                    posmX=1289.5500;
                    posmY=-1875.2720;
                    posmZ=13.4995;
                    posmA=90;
                }
                case 7: {
                    posmX=1289.5513;
                    posmY=-1869.8712;
                    posmZ=13.4995;
                    posmA=90;
                }
                case 8: {
                    posmX=1289.5612;
                    posmY=-1864.4884;
                    posmZ=13.4995;
                    posmA=90;
                }
            }

            install_market_obj[playerid][freenum] = CreateObject(model, posmX,posmY,posmZ,0, 0, posmA);
            Streamer_Update(playerid);
            SetPVarInt(playerid, "market_IsEditing", 1);
            SetPVarInt(playerid, "market_NumProd", freenum);
            EditObject(playerid, install_market_obj[playerid][freenum]);
            SCM(playerid, -1, "Установите выбранный товар на прилавке и нажмите иконку "CBLUE"\"Сохранить\"");
            SCM(playerid, -1, "Подсказка: Вы можете двигать камеру, зажимая "CYELLOW"ПРОБЕЛ");
        }

Если еще что то нужно будет показать, пожалуйста говорите.
За помощь отдельное спасибо!
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу