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

Как использовать числа больше максимального значения?

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

RoninTadamasa

Умник
Всем привет.

Делаю систему на снятие денежных средств.

Делаю следующую проверку.


PHP:
case 1508:{//При снятии денег с баланса предприятия
            if(response){
                if(IsNumber(inputtext) && strlen(inputtext) != 0 && strval(inputtext) != 0){
                    if(strval(inputtext) < business_info[player_business[playerid][GetPVarInt(playerid, "SelectPlayerBusiness")]][bMoney]){
                        new string[256], qwery[256];
                        business_info[player_business[playerid][GetPVarInt(playerid, "SelectPlayerBusiness")]][bMoney] = business_info[player_business[playerid][GetPVarInt(playerid, "SelectPlayerBusiness")]][bMoney] - strval(inputtext);
                        player_info[playerid][pMoney] = player_info[playerid][pMoney] + strval(inputtext);
                        ResetMoney(playerid);
                        format(qwery, sizeof(qwery), "UPDATE `business` SET `money` = '%d' WHERE `id` = '%d'", business_info[player_business[playerid][GetPVarInt(playerid, "SelectPlayerBusiness")]][bMoney], business_info[player_business[playerid][GetPVarInt(playerid, "SelectPlayerBusiness")]][bID]);
                        mysql_query(dbHandel, qwery, false);
                        format(string, sizeof(string), ""COLOR_ORANGE"[Система] "COLOR_MOCCASIN"Вы успешно сняли денежные средства с баланса предприятия, суммой: "COLOR_GREEN"%d$", strval(inputtext));
                        return SendClientMessage(playerid, -1, string);
                    }
                    else{
                        new string[256];
                        format(string, sizeof(string), ""COLOR_WHITE"Вы собираетесь снять денежные средства с баланса предприятия:\n\n");
                        format(string, sizeof(string), "%s\t"COLOR_WHITE"1. Название предприятия: "COLOR_ORANGE"%s\n", string, business_info[player_business[playerid][GetPVarInt(playerid, "SelectPlayerBusiness")]][bName]);
                        format(string, sizeof(string), "%s\t"COLOR_WHITE"2. Баланс предприятия: "COLOR_GREEN"%d$\n", string, business_info[player_business[playerid][GetPVarInt(playerid, "SelectPlayerBusiness")]][bMoney]);
                        strcat(string, "\n"COLOR_WHITE"Для снятия денежных средств, введите сумму в поле ниже");
                        ShowPlayerDialog(playerid, 1508, DIALOG_STYLE_INPUT, !""COLOR_ORANGE"Снятие денежных средств", string, !"Далее", !"Назад");
                        return SendClientMessage(playerid, -1, !""COLOR_ORANGE"[Система] "COLOR_MOCCASIN"Вы ввели некорректную сумму, введите ещё раз.");
                    }
                }
                else{
                    new string[256];
                    format(string, sizeof(string), ""COLOR_WHITE"Вы собираетесь снять денежные средства с баланса предприятия:\n\n");
                    format(string, sizeof(string), "%s\t"COLOR_WHITE"1. Название предприятия: "COLOR_ORANGE"%s\n", string, business_info[player_business[playerid][GetPVarInt(playerid, "SelectPlayerBusiness")]][bName]);
                    format(string, sizeof(string), "%s\t"COLOR_WHITE"2. Баланс предприятия: "COLOR_GREEN"%d$\n", string, business_info[player_business[playerid][GetPVarInt(playerid, "SelectPlayerBusiness")]][bMoney]);
                    strcat(string, "\n"COLOR_WHITE"Для снятия денежных средств, введите сумму в поле ниже");
                    ShowPlayerDialog(playerid, 1508, DIALOG_STYLE_INPUT, !""COLOR_ORANGE"Снятие денежных средств", string, !"Далее", !"Назад");
                    return SendClientMessage(playerid, -1, ""COLOR_ORANGE"[Система] "COLOR_MOCCASIN"Вы ввели некорректную сумму, введите ещё раз.");
                }
            }
            else{
                new string[450];
                strcat(string, ""COLOR_WHITE"1. Снять деньги с баланса предприятия\n");
                strcat(string, ""COLOR_WHITE"2. Внести деньги на баланс предприятия\n");
                strcat(string, ""COLOR_WHITE"3. Выставить предприятие на продажу\n");
                strcat(string, ""COLOR_WHITE"4. Снять предприятие с продажи\n");
                strcat(string, ""COLOR_WHITE"5. Продать предприятие игроку\n");
                strcat(string, ""COLOR_WHITE"6. Продать предприятие государству\n");
                strcat(string, ""COLOR_WHITE"7. Изменить название предприятия\n");
                return ShowPlayerDialog(playerid, 1503, DIALOG_STYLE_LIST, !""COLOR_ORANGE"Управление предприятием", string, !"Далее", !"Назад");
            }
        }
Все вроде работает, без каких либо замечаний, НО, если вводить слишком большие числа, то условие каким-то образом выполняется...
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!


Есть ли в данной проверке ошибки? Или придется, дополнительное условие делать на максимальное введенное число?

Примерно я понимаю, почему это работает именно так, так как мы выходим за массив переменной денег бизнеса, но почему не работает условие, что если введенное число больше чем число в переменной, то возвращать false.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу