Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 133 из 133 ПерваяПервая ... 33 83 123 131 132 133
Показано с 1,321 по 1,325 из 1325
  1. #1321
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,474
    Репутация:
    271 ±
    Цитата Сообщение от Outsider Посмотреть сообщение
    1. hook OnPlayerDamageDone(playerid, Float:amount, issuerid, weapon, bodypart) {
    2. if (playerid == INVALID_PLAYER_ID) return 1;
    3.  
    4. new character_death_state = GetCharacterDeathStage(playerid);
    5. new character_state_dead = GetCharacterDeathStage(playerid) == CHARACTER_DIED;
    6.  
    7. if (character_death_state == CHARACTER_INJURED) {
    8. character_death_state = CHARACTER_DIED;
    9. }
    10.  
    11. GetPlayerHealth(playerid, gHealth);
    12. if (gHealth <= STAGE_HEALTH_AMOUNT) {
    13. SetPlayerHealth(playerid, STAGE_HEALTH_AMOUNT);
    14.  
    15. if (!character_death_state) {
    16. character_death_state = CHARACTER_INJURED;
    17. }
    18. }
    19.  
    20. if (!character_state_dead) {
    21. gCharacter[playerid][e_cDeathStage] = character_death_state;
    22. SetCharacterDeathStage(playerid, character_death_state);
    23. }
    24.  
    25. return 1;
    26. }


    Не помощи ради пишу, интереса для. Как бы вы отрефакторили этот код? Мне в голову не приходит вообще ничего.
    можно избавиться от лишнего вызова GetCharacterDeathStage. т.к оно записано уже character_death_state
    Value your freedom or you will lose it, teaches history. "Don't bother us with politics," respond those who don't want to learn. (c) Richard Stallman

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

    Статус
    Оффлайн
    Регистрация
    06.03.2017
    Сообщений
    80
    Репутация:
    0 ±
    Цитата Сообщение от $continue$ Посмотреть сообщение
    можно избавиться от лишнего вызова GetCharacterDeathStage. т.к оно записано уже character_death_state
    Логично кстати. Я ещё подумал что gCharacter[playerid][e_cDeathStage] = character_death_state можно перенести в её логичную среду обитания - SetCharacterDeathStage. ))

    В остальном получается нормально написана функция.

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

    Статус
    Оффлайн
    Регистрация
    09.03.2018
    Сообщений
    254
    Репутация:
    24 ±
    Цитата Сообщение от Outsider Посмотреть сообщение
    Логично кстати. Я ещё подумал что gCharacter[playerid][e_cDeathStage] = character_death_state можно перенести в её логичную среду обитания - SetCharacterDeathStage. ))

    В остальном получается нормально написана функция.
    Действительно, выше ж тебе не писали об этом)

    Ну и, наверное, стоит character_state_dead сделать как булевую переменную и наименовать is_character_state_dead

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

    Статус
    Оффлайн
    Регистрация
    06.03.2017
    Сообщений
    80
    Репутация:
    0 ±
    Цитата Сообщение от execution Посмотреть сообщение
    Действительно, выше ж тебе не писали об этом)
    Кек. Только сейчас увидел, да, у меня до этого открылась сразу эта страница, без твоего поста, сорьки.

    Цитата Сообщение от execution Посмотреть сообщение
    Ну и, наверное, стоит character_state_dead сделать как булевую переменную и наименовать is_character_state_dead
    Не очень понимаю смысл булевых переменных в pawn вообще. Но переименовать переменную логично, ты прав.

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

    Статус
    Оффлайн
    Регистрация
    04.01.2015
    Адрес
    Гомель, Беларусь
    Сообщений
    531
    Репутация:
    152 ±
    Цитата Сообщение от Outsider Посмотреть сообщение
    Не очень понимаю смысл булевых переменных в pawn вообще. Но переименовать переменную логично, ты прав.
    Как минимум для удобства и читабельности кода. С переменной, хранящей лишь два значения, обращаться как с интом нет никакого смысла, потому что потом лишний раз внутри условий и проверок сам же будешь смотреть и перепроверять, какого она типа. Хотя это должно быть понятно по коду сразу.
    Последний раз редактировалось Nexius_Tailer; 24.11.2021 в 04:25.
    Не хотите постоянно проверять обновления моих скриптов?
    Подключите его последним, после всех остальных
    Nexius's Update Checker

 

 
Страница 133 из 133 ПерваяПервая ... 33 83 123 131 132 133

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

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

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

Ваши права

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