Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 2 из 2 ПерваяПервая 1 2
Показано с 11 по 12 из 12
  1. #11
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2590 ±
    Цитата Сообщение от Steve_Stage Посмотреть сообщение
    Спасибо, Даниэль, но я сделал чуть попроще и понятнее для меня. Спасибо за разжевывание смысла этого стока и этого макроса!
    Вместо того, чтобы говорить "я сделал по другому" лучше распишите, что и как вы сделали (т.е. к какому коду в итоге пришли). Вообще лучше всегда так делать. Вполне возможно, что вы что-то сделали неправильно - тогда другие смогут указать на вашу ошибку.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  2. #12
    Аватар для SteveStage
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.10.2019
    Адрес
    Планета Земля
    Сообщений
    318
    Репутация:
    7 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Вместо того, чтобы говорить "я сделал по другому" лучше распишите, что и как вы сделали (т.е. к какому коду в итоге пришли). Вообще лучше всегда так делать. Вполне возможно, что вы что-то сделали неправильно - тогда другие смогут указать на вашу ошибку.
    Вот как-то так

    1. stock LogicWord(number, name_orig[], const name1[], const name2[], const name3[], size, maxlength = sizeof(name_orig))
    2. {
    3. if((number % 100) >= 1) // Если число при делении с остатком на 100 больше или равно единице (тоесть оно больше ста)
    4. number %= 10; // Мы делим его на 10, чтобы в дальнейшем работать с ним, как с числом, которое меньше ста
    5. if(number % 10 == 1 && number != 11) // Если число при делении на 10 с остатком равно единице (один, двадцать один и т.п.) и не является 11 (исключение)
    6. strmid(name_orig, name1, 0, size+1, maxlength); // Основное слово приравнивается к вариации name1[]
    7. if(number % 10 >= 2 && number % 10 <= 4 && number <= 12 && number >= 14) // Если при делении с остатком на 10 число в диапазоне от 2 до 4 (включительно)
    8. // и не является в диапазоне от 12 до 14 (включительно)
    9. strmid(name_orig, name2, 0, size+1, maxlength); // Основное слово - вариация name2[]
    10. if(number % 10 >= 5 && number % 10 <= 9 || number >= 11 && number <= 20 || number % 10 == 0) // Если число при делении с остатком на 10 от 5 до 9
    11. // включительно или в диапазоне от 11 до 20 или при делении с остатком на 10 равно нулю
    12. strmid(name_orig, name3, 0, size+1, maxlength); // Основное слово - вариация name3[]
    13. return true;
    14. }
    Последний раз редактировалось SteveStage; 01.12.2019 в 02:04.

 

 
Страница 2 из 2 ПерваяПервая 1 2

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •