Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 40

Тема: key_pickupfix.inc

  1. #11
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    4,585
    Репутация:
    1698 ±
    Гораздо более лаконичнее смотрелась бы реализация собственного обработчика пикапов, в котором уже были бы функции, позволяющие создавать пикап с указанием конкретной клавиши и прочими настройками, чем пытаться подогнать все пикапы под одну кнопку и выполнять лишние действия для пикапов без кнопки.

    И кто учил составлять такие условия?
    PHP код:
    if(gettime() - _key_pickupfix_playerPickupData[playerid][_key_pickupfix_pickupTimestamp] <= 1
    Почему нельзя просто сравнить gettime и значение переменной? Для чего там вычисления лишние?
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    10.04.2014
    Сообщений
    52
    Репутация:
    11 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Гораздо более лаконичнее смотрелась бы реализация собственного обработчика пикапов, в котором уже были бы функции, позволяющие создавать пикап с указанием конкретной клавиши и прочими настройками, чем пытаться подогнать все пикапы под одну кнопку и выполнять лишние действия для пикапов без кнопки.

    И кто учил составлять такие условия?
    PHP код:
    if(gettime() - _key_pickupfix_playerPickupData[playerid][_key_pickupfix_pickupTimestamp] <= 1
    Почему нельзя просто сравнить gettime и значение переменной? Для чего там вычисления лишние?
    1) Ты имеешь ввиду функцию создания пикапа с перехватом, которая будет закреплять за пикапом информацию, используется ли клавиша в данном пикапе и если да - то какая? А если же клавиша не будет использоваться - тогда сам фикс повторного подбора теряет смысл, нет? В таком случае придётся применять ещё какой-то вариант (те же динамические зоны) к пикапам, которые не используют клавишу. Или я ошибаюсь?

    2) Немного не понял тебя (объясни: что ты имел ввиду?). Данное условие проверяет нажатие клавиши в течении 1-ой секунды.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    4,585
    Репутация:
    1698 ±
    Цитата Сообщение от Twixyck Посмотреть сообщение
    1) Ты имеешь ввиду функцию создания пикапа с перехватом, которая будет закреплять за пикапом информацию, используется ли клавиша в данном пикапе и если да - то какая? А если же клавиша не будет использоваться - тогда сам фикс повторного подбора теряет смысл, нет? В таком случае придётся применять ещё какой-то вариант (те же динамические зоны) к пикапам, которые не используют клавишу. Или я ошибаюсь?
    Я имею ввиду добавление необязательного параметра для функции создания пикапа, который будет хранить в себе ID клавиши, которую нужно нажать для подбора пикапа.
    Соответственно, при обработке пикапа, если никакая клавиша не закреплена за пикапом, то сразу пропускаем код обработки пикапов на кнопку и переходим к обработке обычных пикапов, тем самым пропуская кучу лишних действий, которые у тебя сейчас прописаны в том же OnPlayerPickUpPickup.
    Ну а про то, что на выходе получаем возможность закрепления конкретного пикапа за конкретной кнопкой, а не общей для всех, думаю, и так понятно.

    Цитата Сообщение от Twixyck Посмотреть сообщение
    2) Немного не понял тебя (объясни: что ты имел ввиду?). Данное условие проверяет нажатие клавиши в течении 1-ой секунды.
    В твоём условии сначала произойдёт получение значений gettime и переменной, потом произойдёт вычитание и только потом произойдёт сравнение с единицей.

    Хотя можно просто сделать так:
    PHP код:
    if(gettime() < _key_pickupfix_playerPickupData[playerid][_key_pickupfix_pickupTimestamp]) 
    И на выходе получим тот же результат, только, при этом, мы просто получим значения gettime/переменной, а после сразу сравним их, чем уменьшим количество лишних инструкций.
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

  4. #14
    Аватар для Twixyck
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.04.2014
    Сообщений
    52
    Репутация:
    11 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Я имею ввиду добавление необязательного параметра для функции создания пикапа, который будет хранить в себе ID клавиши, которую нужно нажать для подбора пикапа.
    Соответственно, при обработке пикапа, если никакая клавиша не закреплена за пикапом, то сразу пропускаем код обработки пикапов на кнопку и переходим к обработке обычных пикапов, тем самым пропуская кучу лишних действий, которые у тебя сейчас прописаны в том же OnPlayerPickUpPickup.
    Ну а про то, что на выходе получаем возможность закрепления конкретного пикапа за конкретной кнопкой, а не общей для всех, думаю, и так понятно.



    В твоём условии сначала произойдёт получение значений gettime и переменной, потом произойдёт вычитание и только потом произойдёт сравнение с единицей.

    Хотя можно просто сделать так:
    PHP код:
    if(gettime() < _key_pickupfix_playerPickupData[playerid][_key_pickupfix_pickupTimestamp]) 
    И на выходе получим тот же результат, только, при этом, мы просто получим значения gettime/переменной, а после сразу сравним их, чем уменьшим количество лишних инструкций.
    1) Хорошо, попробую реализовать в ближайшее время.
    2) Поставил твоё условие - перестало работать. В твоём условии идёт проверка на то, меньше ли gettime() чем время в переменной, а в моём условии идёт проверка на то, что промежуток между двумя этими значениями меньше или равен 1.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    4,585
    Репутация:
    1698 ±
    Цитата Сообщение от Twixyck Посмотреть сообщение
    Поставил твоё условие - перестало работать. В твоём условии идёт проверка на то, меньше ли gettime() чем время в переменной, а в моём условии идёт проверка на то, что промежуток между двумя этими значениями меньше или равен 1.
    Ну так а при каком условии промежуток будет меньше или равен 1? Если значение одного из членов условия больше другого, не?
    PHP код:
    12-11 // 12 больше 11 на 1, что совпадает с условием 
    15-11 // 15 больше 11 на 4, что совпадает с условием
    21-11 // 15 больше 11 на 10, что совпадает с условием
    10-11 // 11 меньше 11 на 1, что НЕ совпадает с условием 
    В первых трех случаях второй член меньше первого и если первый член меньше второго, условие не сработает.
    А танцы с вычислением нужны были бы только в том случае, если тебе нужно было бы выполнять код только для конкретного диапазона значений.

    Раз не работает, замени "<" на ">" и должно всё заработать. Я не вчитывался особо в твой код и не смотрел какой из членов условия должен быть больше для работы кода.
    Последний раз редактировалось DeimoS; 16.04.2018 в 13:52.
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

  6. #16
    Аватар для Twixyck
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.04.2014
    Сообщений
    52
    Репутация:
    11 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Ну так а при каком условии промежуток будет меньше или равен 1? Если значение одного из членов условия больше другого, не?
    PHP код:
    12-11 // 12 больше 11 на 1, что совпадает с условием 
    15-11 // 15 больше 11 на 4, что совпадает с условием
    21-11 // 15 больше 11 на 10, что совпадает с условием
    10-11 // 11 меньше 11 на 1, что НЕ совпадает с условием 
    В первых трех случаях второй член меньше первого и если первый член меньше второго, условие не сработает.
    А танцы с вычислением нужны были бы только в том случае, если тебе нужно было бы выполнять код только для конкретного диапазона значений.

    Раз не работает, замени "<" на ">" и должно всё заработать. Я не вчитывался особо в твой код и не смотрел какой из членов условия должен быть больше для работы кода.
    В том то и дело, что диапазон должен быть от 0 секунд до 1 секунды. В твоём случае код будет выполняться таким образом, что даже если я встану на пикап и нажму указанную кнопку спустя 5-10 секунд - код пикапа сработает.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    4,585
    Репутация:
    1698 ±
    Цитата Сообщение от Twixyck Посмотреть сообщение
    В том то и дело, что диапазон должен быть от 0 секунд до 1 секунды. В твоём случае код будет выполняться таким образом, что даже если я встану на пикап и нажму указанную кнопку спустя 5-10 секунд - код пикапа сработает.
    Эмм, я тебя огорчу, но твоё условие работает для диапазона: "от ∞ до 1". Оно включит в себя все отрицательные значения. Соответственно, оно сработает только в том случае, если в переменной _key_pickupfix_pickupTimestamp значение будет больше, чем значение "gettime". Хотя если тебе так хочется включить в условие единицу, то "больше или равно".
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

  8. #18
    Аватар для Twixyck
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.04.2014
    Сообщений
    52
    Репутация:
    11 ±
    UPD v1.2: Теперь, по умолчанию, не все пикапы срабатывают на кнопку. Для создания пикапов по кнопке существует 2 функции:
    key_CreatePickup - для статических пикапов и key_CreateDynamicPickup - для динамических пикапов соответственно (см. более подробную информацию в представленной таблице на первой странице).
    Последний раз редактировалось Twixyck; 19.04.2018 в 14:16.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    4,585
    Репутация:
    1698 ±
    При выборе цветов советую думать ещё и о тёмной стороне теме форума, а не только о светлой :)

      Открыть/закрыть
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

  10. #20
    Аватар для Twixyck
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.04.2014
    Сообщений
    52
    Репутация:
    11 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    При выборе цветов советую думать ещё и о тёмной стороне теме форума, а не только о светлой :)

      Открыть/закрыть
    Учту. Сегодня займусь этим :)

 

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

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

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

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

Ваши права

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