Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 2 из 3 ПерваяПервая 1 2 3 ПоследняяПоследняя
Показано с 11 по 20 из 23
  1. #11
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Geebrox Посмотреть сообщение
    Признаюсь что не дружу с английским (учу), и упрекать в этом как то странно, если хочу поставлю вообще StartEngine, название функции не играет ни малейшую роль при выполнение кода;
    Я просто оставлю это здесь (пункт 4)

    Цитата Сообщение от Geebrox Посмотреть сообщение
    Пожалуйста, прочитайте вики, все функции, которых я использовал возвращают 1 при успешном выполнение и 0 при не удаче;
    Тебе говорят о том, что код должен соответствовать какому-то одному стилю, а не являться кашей. Если начал возвращать какие-то числа - возвращай исключительно числа. Если функции - функции. От того, что ты сократишь свой код на 1 строку, читаемости не прибавится. А смысл уже приходится додумывать.



    Цитата Сообщение от Geebrox Посмотреть сообщение
    PHP код:
     new Float:health
        if (!
    GetVehicleHealth(vehicleidhealth)) { 
            return 
    0
        } 
    Это равносилен моей проверки, я думаю ничем не отличается, кроме того, что может быть лишний вызов GetVehicleHealth
    Твоя проверка не проверяет, существует ли транспорт под указанным ID, а в GetVehicleHealth такая проверка вшита изначально. То бишь, если я создам всего 1 автомобиль на сервере, но укажу ID 100, твоя проверка пропустит этот ID, хоть такого авто и не будет существовать.



    Цитата Сообщение от Geebrox Посмотреть сообщение
    P.S. Мое мнение о вашем посте: Выглядит так как будто хотели "понтанутся" указывая на незначительные почти не заметные различие кода, это лично мое мнение и изменять я его не собираюсь (можете на это не обращать внимание)
    Тогда этот форум точно не для твоих работ, увы.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  2. #12
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от Geebrox Посмотреть сообщение
    Признаюсь что не дружу с английским (учу), и упрекать в этом как то странно, если хочу поставлю вообще StartEngine, название функции не играет ни малейшую роль при выполнение кода;
    Это был ответ на "Реализация хорошая", если бы не это, я бы прошёл мимо.

    Цитата Сообщение от Geebrox Посмотреть сообщение
    Пожалуйста, прочитайте вики, все функции, которых я использовал возвращают 1 при успешном выполнение и 0 при не удаче;
    Я знаю что функции возвращают, суть в том, что SendClientMessage вернёт 0 при отключенном игроке, а SetVehicleParamsEx вернёт 0 при отсутствующем транспорте, это принципиальная разница.

    Цитата Сообщение от Geebrox Посмотреть сообщение
    Не вижу разных стилей, если не видите смысла это не значит, что использование этого метода запрещена. Равносилен обычной проверки, так что опять упрекаете не в нужном месте;
    Опять же, это ответ на "Реализация хорошая". А разные стили заключаются в разных отступах для разных строк (параметры в GetVehicleParamsEx выровнены по началу функции, а в SetVehicleParamsEx дополнительно смещены на 1 таб, например).

    Цитата Сообщение от Geebrox Посмотреть сообщение
    Код никак не скомкан все ясно и понятно;
    Группы кода принято разделять пустой строкой, чтобы было проще понять логику его работы. Код нужно писать так, чтобы он был понятен и легко читаем для всех, а не только для тебя.

    Цитата Сообщение от Geebrox Посмотреть сообщение
    Как и в вашем коде может быть лишний вызов GetVehicleHealth

    PHP код:
     new Float:health
        if (!
    GetVehicleHealth(vehicleidhealth)) { 
            return 
    0
        } 
    Это равносилен моей проверки, я думаю ничем не отличается, кроме лишнего вызова GetVehicleHealth
    Вызов GetVehicleHealth не может быть лишним, ибо значение health используется для вычисление процента. Суть в том, что у тебя проверка random(100) > percent стоит после GetVehicleParamsEx, поэтому GetVehicleParamsEx будет вызываться всегда, даже когда этого не нужно (в случае когда случайное значение будет <= percent). Думаю, что это как-раз таки связано с твоим желанием запихнуть условие туда, куда не следовало - в return.

  3. #13
    Аватар для Geebrox
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.08.2015
    Адрес
    Ташкент
    Сообщений
    375
    Репутация:
    97 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Это был ответ на "Реализация хорошая", если бы не это, я бы прошёл мимо.
    Опять таки, как название функций определяет уровень реализации? Как вообще связаны эти 2 вещи?

    Цитата Сообщение от ziggi Посмотреть сообщение
    Я знаю что функции возвращают, суть в том, что SendClientMessage вернёт 0 при отключенном игроке, а SetVehicleParamsEx вернёт 0 при отсутствующем транспорте, это принципиальная разница.
    Суть в том, что эта функция (OnVehicleEngineStarts) возвращает 1 при удачном выполнение кода и 0 при не удаче

    Цитата Сообщение от ziggi Посмотреть сообщение
    Опять же, это ответ на "Реализация хорошая". А разные стили заключаются в разных отступах для разных строк (параметры в GetVehicleParamsEx выровнены по началу функции, а в SetVehicleParamsEx дополнительно смещены на 1 таб, например).
    Этот таб не просто так стоит, подумайте головой, это указывает на то, что SetVehicleParamsEx стоит в теле другой функции

    Цитата Сообщение от ziggi Посмотреть сообщение
    Группы кода принято разделять пустой строкой, чтобы было проще понять логику его работы. Код нужно писать так, чтобы он был понятен и легко читаем для всех, а не только для тебя.
    Нигде не читал такие правила

    Цитата Сообщение от ziggi Посмотреть сообщение
    Вызов GetVehicleHealth не может быть лишним, ибо значение health используется для вычисление процента. Суть в том, что у тебя проверка random(100) > percent стоит после GetVehicleParamsEx, поэтому GetVehicleParamsEx будет вызываться всегда, даже когда этого не нужно (в случае когда случайное значение будет <= percent). Думаю, что это как-раз таки связано с твоим желанием запихнуть условие туда, куда не следовало - в return.
    Я запихнул его туда куда надо, GetVehicleHealth тоже вызывается ВСЕГДА в отличии от моего кода и могут быть лишние вызовы если это авто не валидный (INVALID_VEHICLE_ID)
    Респект:
    @DeimoS
    @ziggi
    @Daniel_Cortez

  4. #14
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Geebrox Посмотреть сообщение
    Я запихнул его туда куда надо, GetVehicleHealth тоже вызывается ВСЕГДА в отличии от моего кода и могут быть лишние вызовы если это авто не валидный (INVALID_VEHICLE_ID)
    Уходя, просто советую ознакомиться с тем, какие значения возврващает GetPlayerVehicleID, прежде чем говорить о том, о чём ты пытаешься говорить.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  5. #15
    Аватар для Geebrox
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.08.2015
    Адрес
    Ташкент
    Сообщений
    375
    Репутация:
    97 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Уходя, просто советую ознакомиться с тем, какие значения возврващает GetPlayerVehicleID, прежде чем говорить о том, о чём ты пытаешься говорить.
    не вопрос, изменил на !vehicleid
    Респект:
    @DeimoS
    @ziggi
    @Daniel_Cortez

  6. #16
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Geebrox Посмотреть сообщение
    не вопрос, изменил на !vehicleid
    -_-
    Попробуй уже вслушаться в слова Ziggi. Он тебе всё по делу говорит

    Цитата Сообщение от DeimoS Посмотреть сообщение
    если я создам всего 1 автомобиль на сервере, но укажу ID 100, твоя проверка пропустит этот ID, хоть такого авто и не будет существовать.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  7. #17
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от Geebrox Посмотреть сообщение
    P.S. Мое мнение о вашем посте: Выглядит так как будто хотели "понтанутся" указывая на незначительные почти не заметные различие кода
    Я просто пытаюсь помочь людям писать хороший код. Истина кроется в мелочах. Да и не особо это можно назвать мелочами, для меня это довольно серьёзные ошибки (некоторые из мной перечисленных).

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

    Цитата Сообщение от Geebrox Посмотреть сообщение
    Опять таки, как название функций определяет уровень реализации? Как вообще связаны эти 2 вещи?
    Реализация - это всё, в том числе название.

    Цитата Сообщение от Geebrox Посмотреть сообщение
    Суть в том, что эта функция (OnVehicleEngineStarts) возвращает 1 при удачном выполнение кода и 0 при не удаче
    Что такое "удачное выполнение кода"?
    - Вызов OnVehicleEngineStarts при отключенном игроке и нужных рандомах вернёт 1 но заведёт транспорт
    - Вызов OnVehicleEngineStarts при отсутствующем транспорте и нужных рандомах вернёт 0 всегда
    - Вызов OnVehicleEngineStarts при отсутствующем транспорте и нужных рандомах вернёт 1 если игрок подключен

    Цитата Сообщение от Geebrox Посмотреть сообщение
    Этот таб не просто так стоит, подумайте головой, это указывает на то, что SetVehicleParamsEx стоит в теле другой функции
    Походу придётся пальцем тыкать:


    Цитата Сообщение от Geebrox Посмотреть сообщение
    Нигде не читал такие правила
    Зря. Существует множество литературы, рекомендую ознакомиться с книгой "Совершенный код" от Макконнелла.

    Цитата Сообщение от Geebrox Посмотреть сообщение
    Я запихнул его туда куда надо, GetVehicleHealth тоже вызывается ВСЕГДА в отличии от моего кода и могут быть лишние вызовы если это авто не валидный (INVALID_VEHICLE_ID)
    GetVehicleHealth вернёт 0 при не валидном транспорте, твоя функция вернёт 0 при vehicleid == INVALID_VEHICLE_ID, если я вызову твою функцию с vehicleid равным 2001 (или с любым не существующим транспортом), то твоя "валидация" пропустит это значение, а моя нет. И это сделано как-раз для того, чтобы не использовать дополнительный вызов функции для валидации.

    P.S. Честно говоря, я не понимаю почему ты воспринимаешь мои слова "в штыки", совершенно обычные замечания по коду, с целью улучшить его качество и чему-нибудь научить. Говоря "мне лучше знать как надо писать" - ты ничему не научишься, а будешь всегда плюхаться на одном месте.

    P.P.S. Ушёл, утром буду.
    Последний раз редактировалось ziggi; 12.11.2016 в 02:30.

  8. Пользователь сказал cпасибо:
    Daniel_Cortez (12.11.2016)
  9. #18
    Аватар для Geebrox
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.08.2015
    Адрес
    Ташкент
    Сообщений
    375
    Репутация:
    97 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Я просто пытаюсь помочь людям писать хороший код. Истина кроется в мелочах. Да и не особо это можно назвать мелочами, для меня это довольно серьёзные ошибки (некоторые из мной перечисленных).



    Никто не способен взять и изменить своё мнение :). Мнение меняется в результате каких-либо обстоятельств. Мне не удалось тебя убедить, поэтому твоё мнение не изменилось.
    Да не удалось убедить и ничего не поделать

    Цитата Сообщение от ziggi Посмотреть сообщение
    Реализация - это всё, в том числе название.
    Да может быть, но тому есть причина и я о нем уже говорил выше

    Цитата Сообщение от ziggi Посмотреть сообщение
    Что такое "удачное выполнение кода"?
    - Вызов OnVehicleEngineStarts при отключенном игроке и нужных рандомах вернёт 1 но заведёт транспорт
    - Вызов OnVehicleEngineStarts при отсутствующем транспорте и нужных рандомах вернёт 0 всегда
    - Вызов OnVehicleEngineStarts при отсутствующем транспорте и нужных рандомах вернёт 1 если игрок подключен
    Я говорю в общем случае, если 0 то произошла ошибка в самой функций, а если 1 то функция дошла до финиша без ошибок, это логика этой функций

    Цитата Сообщение от ziggi Посмотреть сообщение
    Походу придётся пальцем тыкать:
    Не заметил, когда копировал все было по другому, но я говорил что изменял некоторые части прямо на самом форуме, а тут 4 пробела и таб это разные отступы, в моем редакторе код выглядит по другому

    Цитата Сообщение от ziggi Посмотреть сообщение
    Зря. Существует множество литературы, рекомендую ознакомиться с книгой "Совершенный код" от Макконнелла.
    Гляну

    Цитата Сообщение от ziggi Посмотреть сообщение
    GetVehicleHealth вернёт 0 при не валидном транспорте, твоя функция вернёт 0 при vehicleid == INVALID_VEHICLE_ID, если я вызову твою функцию с vehicleid равным 2001 (или с любым не существующим транспортом), то твоя "валидация" пропустит это значение, а моя нет. И это сделано как-раз для того, чтобы не использовать дополнительный вызов функции для валидации.
    GetPlayerVehicleID - возвращает 0 при отсутствие тс на сервере, этого достаточно для проверки, а иные не правильно переданные идентификаторы это уже проблемы скриптера, и да я думаю опытный скриптер сначала сам проверит на валидность тс, перед тем как использовать эту функцию

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

    Цитата Сообщение от DeimoS Посмотреть сообщение
    -_-
    Попробуй уже вслушаться в слова Ziggi. Он тебе всё по делу говорит
    твой ответ находится чуть выше
    Респект:
    @DeimoS
    @ziggi
    @Daniel_Cortez

  10. #19
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Давно таких кадров на pro-pawn не заглядывало...

    Цитата Сообщение от Geebrox Посмотреть сообщение
    в моем редакторе код выглядит по другому
    Если твой редактор - Pawno, то ничего удивительного. Он любит табы превращать в пробелы

    Цитата Сообщение от Geebrox Посмотреть сообщение
    GetPlayerVehicleID - возвращает 0 при отсутствие тс на сервере, этого достаточно для проверки, а иные не правильно переданные идентификаторы это уже проблемы скриптера, и да я думаю опытный скриптер сначала сам проверит на валидность тс, перед тем как использовать эту функцию
    А что тебе мешает переделать код так, как посоветовал Ziggi, избавившись от лишней проверки на валидность? От того, что ты добавил явную "проверку" на валидность (хоть она таковой и не считается), проверка из GetVehicleHealth не исчезнет и сервер опять проверит указанный ID авто, только уже внутри функции.

    Твой код сейчас - полная каша. Начиная от странных переносов текста в сообщениях и заканчивая вот этим
    PHP код:
    new g_en_lightsg_en_alarmg_en_doors
    g_en_bonnetg_en_bootg_en_objective;
    GetVehicleParamsEx(vehicleidg_en_lightsg_en_lights
    g_en_alarmg_en_doorsg_en_bonnetg_en_bootg_en_objective); 
    И твоя упёртость сейчас совершенно ничем необоснованна. Если ты пишешь код так, как нравится тебе, то и оставляй его при себе. А мы уж как-нибудь сами напишем всё, что нам понадобится. Ну а если хочешь стать частью этого комьюнити - будь добр, придерживайся общепринятых правил
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  11. 2 пользователя(ей) сказали cпасибо:
    Daniel_Cortez (13.11.2016) ziggi (12.11.2016)
  12. #20
    Аватар для Geebrox
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.08.2015
    Адрес
    Ташкент
    Сообщений
    375
    Репутация:
    97 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Давно таких кадров на pro-pawn не заглядывало...



    Если твой редактор - Pawno, то ничего удивительного. Он любит табы превращать в пробелы
    Нет, к сожалению не угадал. Пользуюсь st3, а пробелы ставил сам на форуме, я уже говорил что редактировал код прямо на форуме, сколько еще повторять?

    Цитата Сообщение от DeimoS Посмотреть сообщение
    А что тебе мешает переделать код так, как посоветовал Ziggi
    Не буду редактировать, совет от Ziggi стоит в комментариях. Пусть другие увидят мои ошибки и будут учиться на них.

    P.S. Следующий раз буду пользоваться советами Ziggi конечно. За то немного поспорили, а спор это всегда хорошо, многие берут новые информации от спора. Я с самого начала понимал, что не прав, но немного захотелось поспорить так сказать
    Последний раз редактировалось Geebrox; 12.11.2016 в 21:57.

 

 
Страница 2 из 3 ПерваяПервая 1 2 3 ПоследняяПоследняя

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

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

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

Ваши права

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