Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 127 из 133 ПерваяПервая ... 27 77 117 125 126 127 128 129 ... ПоследняяПоследняя
Показано с 1,261 по 1,270 из 1325
  1. #1261
    Аватар для execution
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.03.2018
    Сообщений
    255
    Репутация:
    24 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Steve_Stage в чате написал, что не понял твоего ответа, поэтому дополню:.
    Что за чат?

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

    Статус
    Оффлайн
    Регистрация
    05.10.2019
    Адрес
    Планета Земля
    Сообщений
    318
    Репутация:
    7 ±
    Цитата Сообщение от execution Посмотреть сообщение
    Что за чат?
    на главной странице форума...

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

    Статус
    Оффлайн
    Регистрация
    05.10.2019
    Адрес
    Планета Земля
    Сообщений
    318
    Репутация:
    7 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Steve_Stage в чате написал, что не понял твоего ответа, поэтому дополню:

    В OnPlayerWeaponShot проверяешь, равен ли hittype типу "BULLET_HIT_TYPE_VEHICLE" и если равен - ID автомобиля, в который выстрелил игрок, будет записан в hitid. Собственно, далее через SetVehicleHealth изменяешь здоровье и наносишь повреждения через функции управления частями автомобиля.
    Я все правильно сделал?

    1. public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
    2. {
    3. switch(hittype)
    4. {
    5. case BULLET_HIT_TYPE_VEHICLE:
    6. {
    7. if(!IsValidVehicle(hitid)) return false;
    8. new
    9. Float:vhp;
    10. GetVehicleHealth(hitid, vhp);
    11. if(vhp <= 0.0) return false;
    12. SetVehicleHealth(hitid, vhp-5);
    13. return true;
    14. }
    15. }
    16. return true;
    17. }
    Последний раз редактировалось SteveStage; 06.01.2020 в 20:49.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Steve_Stage Посмотреть сообщение
    Я все правильно сделал?

    1. public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
    2. {
    3. switch(hittype)
    4. {
    5. case BULLET_HIT_TYPE_VEHICLE:
    6. {
    7. if(!IsValidVehicle(hitid)) return false;
    8. new
    9. Float:vhp;
    10. GetVehicleHealth(hitid, vhp);
    11. SetVehicleHealth(hitid, vhp-5);
    12. return true;
    13. }
    14. }
    15. return true;
    16. }
    Ну если всё работает, то правильно :)
    Разве что не забывай соблюдать "типизацию".
    SetVehicleHealth(hitid, vhp-5.0);
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    05.10.2019
    Адрес
    Планета Земля
    Сообщений
    318
    Репутация:
    7 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Ну если всё работает, то правильно :)
    Разве что не забывай соблюдать "типизацию".
    Точно, потом это число 5 превращается при раскрытии в float(5)!

    Проверил, только вот урон от кулака по авто не проходит, мб есть какой нибудь паблик для отслеживания ударов руками и ногами(на авто)?

    Может быть так?

    1. public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart)
    2. {
    3. if(IsValidVehicle(damagedid))
    4. {
    5. new
    6. Float:vhp;
    7. GetVehicleHealth(damagedid, vhp);
    8. if(vhp <= 0.0) return false;
    9. SetVehicleHealth(damagedid, vhp-4.0);
    10. return true;
    11. }
    12. return true;
    13. }


    UPD: Последний вариант не дал результата
    Последний раз редактировалось SteveStage; 06.01.2020 в 20:55.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Steve_Stage Посмотреть сообщение
    Точно, потом это число 5 превращается при раскрытии в float(5)!

    Проверил, только вот урон от кулака по авто не проходит, мб есть какой нибудь паблик для отслеживания ударов руками и ногами(на авто)?

    Может быть так?

    1. public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart)
    2. {
    3. if(IsValidVehicle(damagedid))
    4. {
    5. new
    6. Float:vhp;
    7. GetVehicleHealth(damagedid, vhp);
    8. if(vhp <= 0.0) return false;
    9. SetVehicleHealth(damagedid, vhp-4.0);
    10. return true;
    11. }
    12. return true;
    13. }


    UPD: Последний вариант не дал результата
    Разве что OnUnoccupiedVehicleUpdate + GetPlayerCameraTargetVehicle + проверка нажатия кнопки. Стандартного коллбэка, вызывающегося при ударе автомобиля, нет, если я правильно всё помню.

    А вообще простой запрос в гугл, по типу: "vehicle damage fist site:forum.sa-mp.com", выводит на готовое решение:
    https://forum.sa-mp.com/showthread.php?t=271903
    Правда, оно ещё в 2011 году было опубликовано и сейчас, вероятнее всего, всё можно сделать гораздо лучше (не смотрел код), но за основу уже есть что взять. Может в других темах будет более актуальный вариант реализации.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    09.03.2018
    Сообщений
    255
    Репутация:
    24 ±
    Что делать, если прикрепляю динамический 3д текст к авто, то он прикрепляет к середине, а не к указанным координатам? Если же, я не прикрепляю - то всё нормально.

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

    Статус
    Оффлайн
    Регистрация
    22.04.2016
    Адрес
    Украина
    Сообщений
    157
    Репутация:
    35 ±
    Цитата Сообщение от execution Посмотреть сообщение
    Что делать, если прикрепляю динамический 3д текст к авто, то он прикрепляет к середине, а не к указанным координатам? Если же, я не прикрепляю - то всё нормально.
    Покажи код. Скорее всего с координатами намудрил.

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

    Статус
    Оффлайн
    Регистрация
    09.03.2018
    Сообщений
    255
    Репутация:
    24 ±
    Цитата Сообщение от Pa4enka Посмотреть сообщение
    Покажи код. Скорее всего с координатами намудрил.
    Вряд ли с координатами, ибо если б с ними что-то не так было, то не прикрепляя - имело так-же кривое положение.

    1. new
    2. vehicleid = GetPlayerVehicleID(playerid),
    3. Float:vpos_x,
    4. Float:vpos_y,
    5. Float:vpos_z;
    6.  
    7. GetVehicleBootPos(vehicleid, vpos_x, vpos_y, vpos_z))
    8.  
    9. vMarketText[vehicleid] = CreateDynamic3DTextLabel(
    10. params,
    11. VEHICLE_MARKET_TEXT_COLOR,
    12. vpos_x, vpos_y, vpos_z,
    13. MAX_VEHICLE_MARKET_DRAWDISTANCE,
    14. .attachedvehicle = vehicleid
    15. );


    1. stock GetVehicleBootPos(vehicleid, &Float:x, &Float:y, &Float:z)
    2. {
    3. new
    4. Float:angle,
    5. Float:distance;
    6.  
    7. if (0 == GetVehicleZAngle(vehicleid, angle))
    8. return _:(x = y = z = 0.0);
    9.  
    10. GetVehicleModel(vehicleid),
    11. VEHICLE_MODEL_INFO_SIZE,
    12. x, distance, z
    13. );
    14.  
    15. distance = floatadd(floatdiv(distance, 2.0), 0.1);
    16.  
    17. GetVehiclePos(vehicleid, x, y, z);
    18.  
    19. x = floatadd(x, floatmul(distance, floatsin(floatadd(-angle, 180.0),
    20. degrees)));
    21. y = floatadd(y, floatmul(distance, floatcos(floatadd(-angle, 180.0),
    22. degrees)));
    23.  
    24. return 1;
    25. }

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

    Статус
    Оффлайн
    Регистрация
    22.04.2016
    Адрес
    Украина
    Сообщений
    157
    Репутация:
    35 ±
    Цитата Сообщение от execution Посмотреть сообщение
    Вряд ли с координатами, ибо если б с ними что-то не так было, то не прикрепляя - имело так-же кривое положение.

    1. new
    2. vehicleid = GetPlayerVehicleID(playerid),
    3. Float:vpos_x,
    4. Float:vpos_y,
    5. Float:vpos_z;
    6.  
    7. GetVehicleBootPos(vehicleid, vpos_x, vpos_y, vpos_z))
    8.  
    9. vMarketText[vehicleid] = CreateDynamic3DTextLabel(
    10. params,
    11. VEHICLE_MARKET_TEXT_COLOR,
    12. vpos_x, vpos_y, vpos_z,
    13. MAX_VEHICLE_MARKET_DRAWDISTANCE,
    14. .attachedvehicle = vehicleid
    15. );


    1. stock GetVehicleBootPos(vehicleid, &Float:x, &Float:y, &Float:z)
    2. {
    3. new
    4. Float:angle,
    5. Float:distance;
    6.  
    7. if (0 == GetVehicleZAngle(vehicleid, angle))
    8. return _:(x = y = z = 0.0);
    9.  
    10. GetVehicleModel(vehicleid),
    11. VEHICLE_MODEL_INFO_SIZE,
    12. x, distance, z
    13. );
    14.  
    15. distance = floatadd(floatdiv(distance, 2.0), 0.1);
    16.  
    17. GetVehiclePos(vehicleid, x, y, z);
    18.  
    19. x = floatadd(x, floatmul(distance, floatsin(floatadd(-angle, 180.0),
    20. degrees)));
    21. y = floatadd(y, floatmul(distance, floatcos(floatadd(-angle, 180.0),
    22. degrees)));
    23.  
    24. return 1;
    25. }
    Он в любом случае приаттачит её к центру модели машины, где бы ты ее изначально не создал. Не знаю с чем это связано, но я тоже сталкивался с этим. Можно попробовать с помощью Streamer_SetFloatData установить координаты смещение(offset) на координаты багажника. Да и вообще поиграться с ими.

 

 
Страница 127 из 133 ПерваяПервая ... 27 77 117 125 126 127 128 129 ... ПоследняяПоследняя

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

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

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

Ваши права

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