Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 4 из 6 ПерваяПервая ... 2 3 4 5 6 ПоследняяПоследняя
Показано с 31 по 40 из 55
  1. #31
    Аватар для Desulaid
    лесоруб продакшен

    Статус
    Оффлайн
    Регистрация
    15.03.2015
    Адрес
    Slobodskoy
    Сообщений
    667
    Репутация:
    236 ±
    Цитата Сообщение от Sp1ke Посмотреть сообщение
    Ты сможешь удержать в голове 150 названий и помнить как выглядит интерьер, но не можешь запомнить ID?
    Удерживать-то в голове зачем? Зачем тыкать себе палки в колеса? Допустим, если структурировать диалог, то можно предположить, что будет что-то вроде:
    1. Интерьеры квартир
      1. Дом CJ на Groove Street
      2. ...

    2. Интерьеры общепита
    3. ...


    И можно сделать все это опционально. Допустим, если ввести /inter 4, то телепортируешься в четвертый интерьер, а если ввел просто /inter, то выпадает диалог со списком. Можно использовать меню для пролистывания интерьеров этой категории.

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

    Статус
    Оффлайн
    Регистрация
    15.11.2015
    Сообщений
    29
    Репутация:
    0 ±
    Цитата Сообщение от Redsan Посмотреть сообщение
    В моде RakNet RP она была.
    Не знаю, где вы видели подобную команду, но я её делал сам. Да и многих интерьеров не найдёте в командах других. т.к. там в основном те, которые есть в интернете.

    - - - Добавлено - - -

    Цитата Сообщение от Anton Styazhkin Посмотреть сообщение
    Удерживать-то в голове зачем? Зачем тыкать себе палки в колеса? Допустим, если структурировать диалог, то можно предположить, что будет что-то вроде:
    1. Интерьеры квартир
      1. Дом CJ на Groove Street
      2. ...

    2. Интерьеры общепита
    3. ...
    На счет вот этого, всё равно сложно будет разобраться, т.к.многие интерьеры придётся смотреть.

    И можно сделать все это опционально. Допустим, если ввести /inter 4, то телепортируешься в четвертый интерьер, а если ввел просто /inter, то выпадает диалог со списком. Можно использовать меню для пролистывания интерьеров этой категории.
    Вот эта идея понравилась очень. Как время будет, сделаю таким образом.

  3. #33
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Добавление багов в алгоритм как-то слабо пересекается с логикой.
    О каких багах идёт речь? То, что в случае ввода текста в переменную запишется нуль - это, по меркам SA-MP, скорее фича, чем баг. У команды есть описание и если ты его не придерживаешься - это исключительно твои проблемы, за которые ты "расплатишься" отправкой в интерьер под ID 0.
    Да и, как сказал ранее, что мешает сдвинуть все ID на +1 и освободить нулевой ID? Тогда, при вводе текста и соответствующем условии в switch (default), ничего не произойдёт и игрока оповестят, что он ввёл неверный ID.
    Если ты не понял, я не обсуждаю подобные "новые подходы" во всём программировании в целом. Я говорю конкретно об этом случае и обо всех остальных случаях в SA-MP.

    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Вообще-то это и есть то, что делает sscanf2: проверяет синтаксис параметров и считывает их.
    И это является основной задачей функции? Давай тогда и с помощью MySQL переводить Unix время в обычный формат, узнавать это самое время и делать ещё кучу вещей, которые поддерживает MySQL. Она ведь это может


    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Не совсем понял, о чём ты.
    О том, что я не говорю конкретно об оптимизации скорости. Основная цель - использование функций по их предназначению.
    Вот ты говоришь, что в данном случае не так страшно использовать sscanf. Окей, все тебя слушают и продолжают извлекать sscanf'ом всего лишь 1 единственный параметр. В подобной команде это, возможно, и не страшно, но находится десяток умников, которые такие команды биндят на кнопку. И вот тут, при особо частом вызове, разница уже почувствуется (не говоря уже о том, что люди и в других местах, а не только в командах, начнут извлекать из массива с данными эти же самые данные).

    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Да, потому что ты преподносишь порочные практики так, как будто это обычное дело, не поясняя перед этим, к чему они могут привести.
    Ни к чему страшному они привести не могут, в который раз повторяю. Да и я не статью пишу, где многократно продумываю все возможные исходы, а просто даю человеку совет (замечание). Дойдёт до этого время - опишу принципы работы sscanf и объясню в каких случаях её лучше использовать. Но пока нужно другими статьями заниматься.

    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    И мы же вроде уже разобрались по поводу того случая с MAX_PLAYERS(+1), нет?
    MAX_PLAYER_NAME*
    И я о 4-х символах, которые нужны для серверных нужд, а не для нуль-символа. И о том, что при коннекте к серверу их можно не учитывать, объявляя массивы.


    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Т.е. ты предлагаешь другим то, в чём сам не до конца разбираешься?
    "Новые техники" я для того и взял в кавычки, что в них нет ничего нового. Вытекающий "баг" известен всем, кто писал команды на стандартном командном процессоре. Это не что-то новое и будоражащее умы SA-MP сообщества, а заезженная тема.

    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Ну если добавление неоднозначных ситуаций в алгоритм прокатило, то... почему бы и нет?!
    И опять, как мне кажется, ты путаешь написание обычной команды в SA-MP и написание чего-то более серьёзного.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  4. #34
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    О каких багах идёт речь? То, что в случае ввода текста в переменную запишется нуль - это, по меркам SA-MP, скорее фича, чем баг. У команды есть описание и если ты его не придерживаешься - это исключительно твои проблемы, за которые ты "расплатишься" отправкой в интерьер под ID 0.
    Ну так давай вообще никакой ввод не будем проверять? Оставим везде неожиданное поведение, мультиплеер же и без того забагован до невозможности. Зато выиграем несколько микросекунд и это будет очень логично.


    Цитата Сообщение от DeimoS Посмотреть сообщение
    Да и, как сказал ранее, что мешает сдвинуть все ID на +1 и освободить нулевой ID? Тогда, при вводе текста и соответствующем условии в switch (default), ничего не произойдёт и игрока оповестят, что он ввёл неверный ID.
    Если ты не понял, я не обсуждаю подобные "новые подходы" во всём программировании в целом. Я говорю конкретно об этом случае и обо всех остальных случаях в SA-MP.
    Хорошо, допустим. Если исключить ту неоднозначную ситуацию при нуле, то это уже совсем другое дело: логика не нарушится, разницы между подходами со sscanf2 и strval практически не останется и утверждения об удобстве того или иного подхода будут не иначе как субъективны.


    Цитата Сообщение от DeimoS Посмотреть сообщение
    И это является основной задачей функции? Давай тогда и с помощью MySQL переводить Unix время в обычный формат, узнавать это самое время и делать ещё кучу вещей, которые поддерживает MySQL. Она ведь это может
    Я чего-то не знаю про sscanf2? Ведь даже согласно словам Y_Less'а, основным предназначением плагина является проверка и считывание значений из строк.


    Цитата Сообщение от DeimoS Посмотреть сообщение
    О том, что я не говорю конкретно об оптимизации скорости. Основная цель - использование функций по их предназначению.
    С каких пор использование sscanf2 в командах стало "не по назначению"?


    Цитата Сообщение от DeimoS Посмотреть сообщение
    Вот ты говоришь, что в данном случае не так страшно использовать sscanf. Окей, все тебя слушают и продолжают извлекать sscanf'ом всего лишь 1 единственный параметр. В подобной команде это, возможно, и не страшно, но находится десяток умников, которые такие команды биндят на кнопку. И вот тут, при особо частом вызове, разница уже почувствуется (не говоря уже о том, что люди и в других местах, а не только в командах, начнут извлекать из массива с данными эти же самые данные).
    Разница будет не такой уж и большой на самом деле.
      Открыть/закрыть

    http://pro-pawn.ru/showthread.php?12585
    PHP код:
    #include <a_samp>
    #include "../include/sscanf2.inc"

    const PROFILER_ITERATIONS_MAJOR 100_000;
    const 
    PROFILER_ITERATIONS_MINOR 100;

    new const 
    code_snippets_names[][] =
    {
        {
    "strval (\"42\")"},
        {
    "sscanf2 (\"42\")"},
        {
    "strval (\"\")"},
        {
    "sscanf2 (\"\")"},
        {
    "strval (\"qwe\")"},
        {
    "sscanf2 (\"qwe\")"}
    };

    #define Prerequisites();\
        
    new x;

    #define CodeSnippet0();\
        
    strval("42");
    #define CodeSnippet1();\
        
    sscanf("42""d"x);
    #define CodeSnippet2();\
        
    strval("");
    #define CodeSnippet3();\
        
    sscanf("""d"x);
    #define CodeSnippet4();\
        
    strval("qwe");
    #define CodeSnippet5();\
        
    sscanf("qwe""d"x); 
    Код:
    Тестирование: 6 отрывков кода.
    Режим: интерпретируемый, 100000x100 итераций.
    strval ("42"): 1507
    sscanf2 ("42"): 2166
    strval (""): 960
    sscanf2 (""): 1367
    strval ("qwe"): 952
    sscanf2 ("qwe"): 1850
    Наибольшую разницу можно наблюдать при вводе строки вместо числа, но самая "нагруженная" ситуация возникает именно при правильном вводе числа.

    А теперь представим ситуацию с флудом.
    В SA-MP 0.3z R2 добавили в server.cfg переменную ackslimit, которая по умолчанию равняется 1000. Если кол-во сообщений от клиента к серверу за секунду превышает этот лимит, сервер разрывает связь с игроком.
    Ок. Чтобы не превысить этот лимит, игрок стоит на месте и делает лишь по 800 вызовов команды в секунду.
    В тесте использовалось 10 000 000 итераций, а значит для sscanf2 один вызов занимает 2166 / 10000000 ~= 0,0002166 с (~200 мкс), для strval - 0,0001507 с (~150 мкс).
    При частоте в 800 команд в секунду при использовании sscanf2 сервер теряет 0,0002166 * 800 = 0,17328 с, со strval - 0,12056 c.
    Если же взять 10 таких атакующих, то сервер окажется перегружен в обоих случаях. И это ещё без учёта того факта, что на сервере железо может оказаться куда слабже, чем используемое мной, особенно, когда на одной машине держится сразу несколько серверов SA-MP - тогда и одного атакующего может хватить, чтобы превысить определённый порог нагрузки, при котором хостинг просто отрубит процесс сервера. Время на приём команды сервером и её обработку командным процессором тоже не учитывалось (а если вместо командного процессора по старинке использовать strcmp, так это вообще беда: атакующий может просто "нащупать" одну из самых последних команд в OPCT и начать флудить ей, вызвав большое количество "ложных" вызовов strcmp).

    Как бы то ни было, на OnPlayerCommandText можно поставить фильтр, который будет запоминать время последнего вызова команды каждым игроком и при достижении определённого кол-ва команд за промежуток времени отфильтровывать их.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  5. #35
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Ну так давай вообще никакой ввод не будем проверять? Оставим везде неожиданное поведение, мультиплеер же и без того забагован до невозможности. Зато выиграем несколько микросекунд и это будет очень логично.
    Не переходи в крайности. Я уже несколько раз сказал, что основная цель этого мероприятия - воцарение мира, спокойствия и логики.

    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Хорошо, допустим. Если исключить ту неоднозначную ситуацию при нуле, то это уже совсем другое дело: логика не нарушится, разницы между подходами со sscanf2 и strval практически не останется и утверждения об удобстве того или иного подхода будут не иначе как субъективны.


    Я чего-то не знаю про sscanf2? Ведь даже согласно словам Y_Less'а, основным предназначением плагина является проверка и считывание значений из строк.


    С каких пор использование sscanf2 в командах стало "не по назначению"?
    Ну если ты считаешь нормальным вызывать функцию по обработки строки ради того, чтоб узнать, записано ли в неё число или нет... Тогда вопросов нет. Но, как по мне, подобный подход равносилен
    PHP код:
    format(stringsizeof(string)), "%s"string); 
    А если уж для тебя является аргументом лишь скорость обработки, то можно сделать подобный код
    PHP код:
    #define CodeSnippet0();\
        
    sscanf(string"i"lol);

    #define CodeSnippet1();\
        
    switch(string[0])\
        {\
            case 
    '0'..'9'lol strval(string);\
        } 
    Если написать в команду, например, "121s" (представим, что просто опечатался), strval спокойно извлечёт "121", в отличии от sscanf.
    И скорость обработки такой строки в обоих случаях будет, примерно, одинаковая (практически всегда в пользу второго варианта).
    Так же и с "чистым" числом (то бишь, если указать просто "121").
    А вот если первым символом указать букву, тут обычное условие прилично вырывается вперёд. Для красоты можно условие спрятать в соответствующий макрос или функцию, роль которого будет одна: определить, ввёл ли игрок число в качестве параметра команды или текст.

    Хотя я, как уже говорилось ранее, являюсь противником sscanf (конкретно в подобной ситуации) чисто из-за того, что идёт "насилование" плагина ради всего одного параметра. Задачи стоит выполнять функциями, которые предназначены конкретно под эту задачу, а не функциями, в которых предусмотрена определённая реакция на определённое условие, но которые логичнее использовать в других обстоятельствах (и, в случае с sscanf - это обработка строк с целью разбивки тех на несколько частей (как основная функция)).


    Ну а по поводу бинда соглашусь, погорячился (хоть и сам, перед тем ответом, прогонял оба варианта через твой профайлер, не особо вдумался в разницу результатов)


    Я не говорю, что использование sscanf в подобных случаях - смертельно плохо. Но есть реализации, при которых и обработка будет быстрее (хоть разница и мала), и код логичнее будет смотреться.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  6. #36
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Ну если ты считаешь нормальным вызывать функцию по обработки строки ради того, чтоб узнать, записано ли в неё число или нет...
    Где я хоть раз сказал, что sscanf2 нужен только для проверки ввода? Покажи.


    Цитата Сообщение от DeimoS Посмотреть сообщение
    PHP код:
    #define CodeSnippet0();\
        
    sscanf(string"i"lol);

    #define CodeSnippet1();\
        
    switch(string[0])\
        {\
            case 
    '0'..'9'lol strval(string);\
        } 
    Нагромождение switch поверх strval может дать преимущество только в статических тестах. В реальных же условиях ошибки ввода могут совершаться не так часто, чтобы лишняя проверка стоила того.


    Цитата Сообщение от DeimoS Посмотреть сообщение
    Если написать в команду, например, "121s" (представим, что просто опечатался), strval спокойно извлечёт "121", в отличии от sscanf.
    Спорный вариант в плане логики, число-то неправильное. Зависит от чьёго-либо конкретного мнения.


    Цитата Сообщение от DeimoS Посмотреть сообщение
    Я не говорю, что использование sscanf в подобных случаях - смертельно плохо. Но есть реализации, при которых и обработка будет быстрее (хоть разница и мала), и код логичнее будет смотреться.
    Опять же, субъективное мнение. Сколько не утверждай, что strval выглядит "логичнее", найдётся кто-то (и не только я один), кому удобнее будет использовать то, что он использует обычно - sscanf2 - если только нет крайней необходимости выбрать что-то другое. Либо всё то же самое, только наоборот.
    Если в обоих подходах нет значительных минусов, то каждый из них будет по-своему логичен.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  7. #37
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Нагромождение switch поверх strval может дать преимущество только в статических тестах. В реальных же условиях ошибки ввода могут совершаться не так часто, чтобы лишняя проверка стоила того.
    Лишняя проверка? Это практически та же самая проверка, что и в sscanf, только реализованная иначе и без "лишних" действий.

    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Спорный вариант в плане логики, число-то неправильное. Зависит от чьёго-либо конкретного мнения.
    Если ставить целью написать ИДЕАЛЬНО работающий (чтоб прямо так, как задумано и чтоб ни шагу в "иную сторону" нельзя было ступить), то да, такой подход неверный. Но если ставить целью написать просто рабочую систему, которая, при этом будет удобна конечному "потребителю" (я говорю про случайные опечатки, которые sscanf не одобрит), то почему бы и нет? Игрок ведь не будет смотреть как у тебя реализован код. Ему лишь бы работало. А если работает не хуже и, при этом, без лишних действий, то почему бы и нет?

    Ну а про субъективность говорить довольно странно. С таким подходом можно и транслит в именах переменных оправдывать (да и вообще всё): на производительность это никак не влияет, а то, что читаемость теряется - так это не для всех.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  8. #38
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Лишняя проверка? Это практически та же самая проверка, что и в sscanf, только реализованная иначе и без "лишних" действий.
    Да, лишняя, потому что в strval она тоже есть, если не брать тот факт, что strval просто возвращает 0 при ошибке.
    Но с твоих же слов, ситуации с неправильным вводом и неправильным числом (больше верхней границы, ноль или отрицательное) можно подвести под вывод одного и того же сообщения об ошибке.
    И именно поэтому преимущество будет только в статических тестах за счёт отсечки вызова нативной функции, если на входе каждый раз подавать неправильный ввод.
    При правильном же вводе (например, то же "42") та проверка будет только замедлять алгоритм и разница со sscanf2 сократится.


    Цитата Сообщение от DeimoS Посмотреть сообщение
    Ну а про субъективность говорить довольно странно. С таким подходом можно и транслит в именах переменных оправдывать (да и вообще всё): на производительность это никак не влияет, а то, что читаемость теряется - так это не для всех.
    Так что, будем признавать неправильными любые альтернативные понятия об удобстве и логике, не совпадающие с твоими?
    Раз так, то вряд ли есть смысл продолжать сию дискуссию, если ты не способен принять допустимость существования иной точки зрения.

    P.S.: Использование транслита на самом деле может быть оправдано, когда только начинаешь учить программирование, но не знаешь английский в достаточной мере. Например, меня (и уверен, многих других тоже) учили в школе программировать на Pascal с переменными и функциями, названными на транслите. Хоть я и не стал бы советовать это, как хорошую практику, поскольку мир не ограничен только этой страной, а международным языком традиционно считается английский. Впрочем, это лишь моё субъективное мнение, которое кто-то может посчитать глупым.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  9. #39
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Да, лишняя, потому что в strval она тоже есть, если не брать тот факт, что strval просто возвращает 0 при ошибке.
    Хмм, действительно. ¯\_(ツ)_/¯
    С подобной проверкой и sscanf вырвется вперёд. Но я всё равно считаю, что использование sscanf в данной ситуации немного странно (хоть и не отрицаю, что вариант работает. Этого я никогда не отрицал). Всё зависит от конкретной ситуации и конкретных целей. И в данном случае, как я уже говорил, sscanf, как по мне, тут не к месту.

    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Но с твоих же слов, ситуации с неправильным вводом и неправильным числом (больше верхней границы, ноль или отрицательное) можно подвести под вывод одного и того же сообщения об ошибке.
    И именно поэтому преимущество будет только в статических тестах за счёт отсечки вызова нативной функции, если на входе каждый раз подавать неправильный ввод.
    При правильном же вводе (например, то же "42") та проверка будет только замедлять алгоритм и разница со sscanf2 сократится.
    Да, дошло. Проверка явно лишняя

    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Так что, будем признавать неправильными любые альтернативные понятия об удобстве и логике, не совпадающие с твоими?
    Я не прошу всех признавать их неправильными. Я лишь выразил свою точку зрения по поводу правильности подобного использования. Даже если бы ты тоже согласился с моей точкой зрения, число людей, продолжающих использовать sscanf подобным образом, никак бы не сократилось. То бишь, я пишу всё это без явной надежды всех и каждого переубедить.

    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Раз так, то вряд ли есть смысл продолжать сию дискуссию, если ты не способен принять допустимость существования иной точки зрения.
    Я твою точку зрения понимаю и принимаю. Но не в случае этой и подобных этой команде (будь там, например, ID игрока, которые никак не "сдвинуть", тогда да, sscanf имеет смысл, ибо та же проверка на символы, но со стороны Pawn, будет в разы дольше. Только больше имеет смысл с его указателем "u"). Сдвинув ID телепортов, ты не приведёшь к какой-либо логической ошибке и не заставишь что-либо работать неправильно. Ты просто заставишь людей вводить не с 0 по 149, а с 1 по 150 (как сейчас, собственно, и сделано). И ничего, при этом, не потеряешь, кроме выигрыша в пару наносекунд (хоть и пара наносекунд, но лишними не будут, если учесть каким "трудом" они достались). Я не совсем пойму почему ты не можешь мыслить более свободно и считаешь подобный шаг чем-то смертельным (до sscanf люди, поди, вообще умирали). Я не прошу людей отказаться от sscanf вообще. Я советую им отказаться именно в этой ситуации, как и, например, в ситуации, когда в качестве единственного параметра является строка ("sscanf(params, "s[...], params)") и всё. Я прошу людей понимать смысл кода, который они пишут и делать его гибким, а не монотонно одинаковым лишь потому, что где-то без sscanf никак. Вот и всё, что я предлагаю.
    Засим и закончим
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  10. #40
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Я не совсем пойму почему ты не можешь мыслить более свободно и считаешь подобный шаг чем-то смертельным (до sscanf люди, поди, вообще умирали).
    Да ты просто донор сарказма.
    Я умею свободно мыслить и не считаю твой подход "смертельным" (по крайней мере, пока он не вмешивается в логику самого алгоритма). Если сдвинуть ID на 1, то логика не будет затронута спецификой подхода, да и сложность использования не сильно отличается, так что способ вполне допустимый.
    Но я всё же обычно использую sscanf2 для обработки параметров в командах - так почему бы не использовать его и в этой? Тем более, что в сравнении со strval разница в скорости выполнения незначительная.
    Да, для меня логичней и удобней пользоваться тем, чем я пользуюсь всегда, если нет большой разницы в производительности и ситуация не критична к последней. В этом и состоит моя точка зрения.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  11. Пользователь сказал cпасибо:
    Danny_Marcelo (14.07.2016)
 

 
Страница 4 из 6 ПерваяПервая ... 2 3 4 5 6 ПоследняяПоследняя

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

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

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

Ваши права

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