Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 3 из 5 ПерваяПервая 1 2 3 4 5 ПоследняяПоследняя
Показано с 21 по 30 из 42

Тема: LLSDM

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от m1n1vv Посмотреть сообщение
    Конечно в GiveDamage. Так уже есть bodypart.
    GiveDamage можно вызывать ложно, насколько помнится. И чтоб более-менее отследить ложное срабатывание, всё равно потребуется использовать OnPlayerWeaponShot, проверяя факт выстрела.

    Цитата Сообщение от m1n1vv Посмотреть сообщение
    Еще WeaponShot вызывается до нанесения урона и с этим могут возникнуть проблемы.
    Какие? Ты же в любом случае будешь блокировать серверный урон и делать свой. Это наоборот сыграет тебе на руку.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Сообщений
    541
    Репутация:
    78 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Какие? Ты же в любом случае будешь блокировать серверный урон и делать свой. Это наоборот сыграет тебе на руку.
    Так сначала я ставлю здоровье, а только потом наносится урон. Getpllayerhealth будет определять, не то что я установил, а что было нанесено после.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от m1n1vv Посмотреть сообщение
    Так сначала я ставлю здоровье, а только потом наносится урон. Getpllayerhealth будет определять, не то что я установил, а что было нанесено после.
    Возвращая 0 в OnPlayerWeaponShot, сервер не будет отсылать пакеты с уроном тому, в кого выстрелили. Так что сработает только SetPlayerHealth.
    И у TakeDamage схожий принцип работы, если мне память не изменяет.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Сообщений
    541
    Репутация:
    78 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Возвращая 0 в OnPlayerWeaponShot, сервер не будет отсылать пакеты с уроном тому, в кого выстрелили. Так что сработает только SetPlayerHealth.
    И у TakeDamage схожий принцип работы, если мне память не изменяет.
    А точно. Но с bodypart большая возня будет.

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

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

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Сообщений
    541
    Репутация:
    78 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Можно сделать определение части тела по координатам довольно легко. Где-то даже видел готовый скрипт на этот счёт.
    Другое дело, что если тебе хватит тех частей тела, которые выдаёт OnPlayerTakeDamage, то особого смысла в OnPlayerWeaponShot и правда нет (хотя с системой серверного урона античит на оружие и фейковые вызовы будет особенно важным, так что OnPlayerWeaponShot в любом случае придётся задействовать).
    Просто с OnPlayerWeaponShot можно сделать, например, попадание по внутренним органам, если заморочиться с координатами. Ну и всё в таком духе. В общем, можно более продуманную систему урона реализовать.
    Я сделал определение частей тела для анимации стоя. И придется делать так для каждой...
    С органами возникнут проблемы. Почему-то когда стреляю в торс игрока вблизи, оно определяет как торс, а издалека уже другие части тела.

    Вопрос не по моду. Как научить gh desktop менять кодировку на юфт?

  7. #27
    Аватар для m1n1vv
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Сообщений
    541
    Репутация:
    78 ±
    Было:
    PHP код:
    const
        
    MAX_AIR_OBJECTS 4,
        
    Float:SPAWN_DISTANCE_AREA 1500.0,
        
    Float:AIR_DISTANCE 4500.0,
        
    Float:AIR_FLIGHT 400.0,
        
    Float:AIR_SPEED 200.0
    Сделал:
    PHP код:
    static enum
    {
        
    MAX_AIR_OBJECTS 4,
        
    Float:SPAWN_DISTANCE_AREA 1500.0,
        
    Float:AIR_DISTANCE 4500.0,
        
    Float:AIR_FLIGHT 400.0,
        
    Float:AIR_SPEED 200.0

    Спавнюсь с белым экран с выходом за карту. В чем дело?
    Последний раз редактировалось m1n1vv; 15.08.2019 в 18:03.

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

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от m1n1vv Посмотреть сообщение
    Было:
    PHP код:
    const
        
    MAX_AIR_OBJECTS 4,
        
    Float:SPAWN_DISTANCE_AREA 1500.0,
        
    Float:AIR_DISTANCE 4500.0,
        
    Float:AIR_FLIGHT 400.0,
        
    Float:AIR_SPEED 200.0
    Сделал:
    PHP код:
    static enum
    {
        
    MAX_AIR_OBJECTS 4,
        
    Float:SPAWN_DISTANCE_AREA 1500.0,
        
    Float:AIR_DISTANCE 4500.0,
        
    Float:AIR_FLIGHT 400.0,
        
    Float:AIR_SPEED 200.0

    Спавнюсь с белым экран с выходом за карту. static enum понимает вещественные значения?
    Да, понимает, как и в обычном enum (более того, в компиляторе за обработку enum и static enum отвечает один и тот же код).

    Пробовал найти что-то странное на пустом скрипте, безрезультатно. Дело явно не в static enum.
    1. #include <a_samp>
    2.  
    3. static enum
    4. {
    5. MAX_AIR_OBJECTS = 4,
    6. Float:SPAWN_DISTANCE_AREA = 1500.0,
    7. Float:AIR_DISTANCE = 4500.0,
    8. Float:AIR_FLIGHT = 400.0,
    9. Float:AIR_SPEED = 200.0
    10. };
    11.  
    12. main()
    13. {
    14. printf("MAX_AIR_OBJECTS: %d", MAX_AIR_OBJECTS);
    15. printf("SPAWN_DISTANCE_AREA: %.1f", SPAWN_DISTANCE_AREA);
    16. printf("AIR_DISTANCE: %.1f", AIR_DISTANCE);
    17. printf("AIR_FLIGHT: %.1f", AIR_FLIGHT);
    18. printf("AIR_SPEED: %.1f", AIR_SPEED);
    19. }

    Код:
    MAX_AIR_OBJECTS: 4
    SPAWN_DISTANCE_AREA: 1500.0
    AIR_DISTANCE: 4500.0
    AIR_FLIGHT: 400.0
    AIR_SPEED: 200.0
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  9. #29
    Аватар для m1n1vv
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Сообщений
    541
    Репутация:
    78 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Да, понимает, как и в обычном enum (более того, в компиляторе за обработку enum и static enum отвечает один и тот же код).

    Пробовал найти что-то странное на пустом скрипте, безрезультатно. Дело явно не в static enum.
    1. #include <a_samp>
    2.  
    3. static enum
    4. {
    5. MAX_AIR_OBJECTS = 4,
    6. Float:SPAWN_DISTANCE_AREA = 1500.0,
    7. Float:AIR_DISTANCE = 4500.0,
    8. Float:AIR_FLIGHT = 400.0,
    9. Float:AIR_SPEED = 200.0
    10. };
    11.  
    12. main()
    13. {
    14. printf("MAX_AIR_OBJECTS: %d", MAX_AIR_OBJECTS);
    15. printf("SPAWN_DISTANCE_AREA: %.1f", SPAWN_DISTANCE_AREA);
    16. printf("AIR_DISTANCE: %.1f", AIR_DISTANCE);
    17. printf("AIR_FLIGHT: %.1f", AIR_FLIGHT);
    18. printf("AIR_SPEED: %.1f", AIR_SPEED);
    19. }

    Код:
    MAX_AIR_OBJECTS: 4
    SPAWN_DISTANCE_AREA: 1500.0
    AIR_DISTANCE: 4500.0
    AIR_FLIGHT: 400.0
    AIR_SPEED: 200.0
    Сейчас столкнулся с еще одной ситуацией. Если все константы с инклуда билбордов взять в static enum, то один из типов перестанет создаваться. Можешь сам проверить

    Вот функция, которая создает позицию:
    PHP код:
    stock GetDirectionOfAircraft(&Float:angle, &Float:x, &Float:y, &Float:fpoint_x, &Float:fpoint_yFloat:fault 0.0)
    {
        new
            
    Float:distance AIR_DISTANCE;

        
    angle floatrandom(360);
        
    distance * -floatsin(angledegrees);
        
    distance floatcos(angledegrees);

        
    distance *= 2.0;
        
    angle += fault floatrandom(90) - 60.0;
        
    fpoint_x distance * -floatsin(angledegrees);
        
    fpoint_y distance floatcos(angledegrees);

        return 
    1;


    PHP код:
    #define floatrandom(%0) \
        
    (float(random(%0))+float(random(1000))/1000
    Последний раз редактировалось m1n1vv; 15.08.2019 в 18:54.

  10. Пользователь сказал cпасибо:
    Outsider (15.08.2019)
  11. #30
    Аватар для m1n1vv
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Сообщений
    541
    Репутация:
    78 ±
    Сейчас из enum переместил вещественную константу в const, и второй тип билбордов стал создаваться. Видимо оно очень высоко или очень низко создавало.
    Последний раз редактировалось m1n1vv; 15.08.2019 в 20:54.

 

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

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

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

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

Ваши права

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