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

    Статус
    Оффлайн
    Регистрация
    01.01.2019
    Сообщений
    86
    Репутация:
    0 ±

    Подсчет ячеек

    Здравствуйте, правильно ли я сделал тут всё или что-то нужно редактировать?
    1. CMD:slap(playerid, params[])
    2. {
    3. if(User[playerid][pAdmin] < 3 || dostup[playerid] == 0) return 1;
    4. if(sscanf(params, "u",params[0])) return SCM(playerid, -1, !"Введите: /slap [id]");
    5. new Float:shealth;
    6. new Float:slx, Float:sly, Float:slz;
    7. if(!IsPlayerConnected(params[0])) return true;
    8. GetPlayerHealth(params[0], shealth);
    9. SetPlayerHealthAC(params[0], shealth-5);
    10. GetPlayerPos(params[0], slx, sly, slz);
    11. SetPlayerPos(params[0], slx, sly, slz+5);
    12. PlayerPlaySound(params[0], 1130, slx, sly, slz+5);
    13. static const fmt_str[] = "Админ: %s дал поджопник %s";
    14. static a_slap[sizeof fmt_str + ( MAX_PLAYER_NAME*2 - 4 )];
    15. format(a_slap, sizeof a_slap, fmt_str, Name(playerid),Name(params[0]));
    16. ABroadCast(COLOR_LIGHTRED,a_slap,1);
    17. SCM(params[0],COLOR_LIGHTRED,a_slap);
    18. return 1;
    19. }

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

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Сообщений
    541
    Репутация:
    78 ±
    PHP код:
    CMD:slap(playeridparams[])
    {
        if (
    User[playerid][pAdmin] < || dostup[playerid] == 0)
            return 
    1;

        if (
    isnull(params))
            return 
    SCM(playerid, -1, !"Введите: /slap [id]");

        static const
            
    fmt_str[] = "Админ: %s дал поджопник %s";

        static
            
    id,
            
    Float:shealth,
            
    Float:slxFloat:slyFloat:slz,
            
    a_slap[sizeof fmt_str MAX_PLAYER_NAME*2*2];

        
    id strval(params);

        if (!
    IsPlayerConnected(id))
            return 
    true;

        
    GetPlayerHealth(idshealth);
        
    SetPlayerHealthAC(idshealth-5);

        
    GetPlayerPos(idslxslyslz);
        
    SetPlayerPos(idslxslyslz+5);

        
    PlayerPlaySound(id1130slxslyslz+5);
        
        
    format(a_slapsizeof a_slapfmt_strName(playerid), Name(id));

        
    ABroadCast(COLOR_LIGHTREDa_slap1);
        
    SCM(idCOLOR_LIGHTREDa_slap);
        
        return 
    1;

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

    Еще можно так:

    PHP код:
    new
        
    a_slap[18] = !"Админ: ";

    strcat(a_slapName(playerid));
    strcat(a_slap, !" дал поджопник ");
    strcat(a_slapName(id)); 

  3. Пользователь сказал cпасибо:
    DmitriyVasilev (07.02.2019)
  4. #3
    Аватар для UnO
    Пользователь

    Статус
    Оффлайн
    Регистрация
    20.01.2018
    Сообщений
    52
    Репутация:
    7 ±
    Цитата Сообщение от m1n1vv Посмотреть сообщение
    Еще можно так:

    PHP код:
    new
        
    a_slap[18] = !"Админ: ";

    strcat(a_slapName(playerid));
    strcat(a_slap, !" дал поджопник ");
    strcat(a_slapName(id)); 
    Это, по-моему, уже совсем извращения в стиле аптимизаторов3000

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

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Сообщений
    541
    Репутация:
    78 ±
    Цитата Сообщение от UnO Посмотреть сообщение
    Это, по-моему, уже совсем извращения в стиле аптимизаторов3000
    Все ради скорости и экономии памяти

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

    Статус
    Оффлайн
    Регистрация
    20.01.2018
    Сообщений
    52
    Репутация:
    7 ±
    Цитата Сообщение от m1n1vv Посмотреть сообщение
    Все ради скорости и экономии памяти
    Ага, но стоит всё-таки не выходить за рамки разумного. Читабельность от этого сильно страдает, имхо

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

    Статус
    Оффлайн
    Регистрация
    26.01.2019
    Сообщений
    41
    Репутация:
    6 ±
    Цитата Сообщение от UnO Посмотреть сообщение
    Ага, но стоит всё-таки не выходить за рамки разумного. Читабельность от этого сильно страдает, имхо
    Не так уж и сильно. Из того блока кода понятно, что строка конкатенируются с двумя именами между которыми строка.

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

    Статус
    Оффлайн
    Регистрация
    20.01.2018
    Сообщений
    52
    Репутация:
    7 ±
    Смысл в том, что ощутимой разницы между форматом и этим способом на практике нет, но читабельность хуже; так зачем себе палки в колёса вставлять?

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

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Сообщений
    541
    Репутация:
    78 ±
    Цитата Сообщение от UnO Посмотреть сообщение
    Смысл в том, что ощутимой разницы между форматом и этим способом на практике нет, но читабельность хуже; так зачем себе палки в колёса вставлять?
    1 format = 7 strcat
    Перебор, это когда с strcat используешь valstr

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

    Статус
    Оффлайн
    Регистрация
    01.01.2019
    Сообщений
    86
    Репутация:
    0 ±
    а я вот не пойму, чем например тот же isnull и вот эти strtok сделают что-то лучше.

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

    Статус
    Оффлайн
    Регистрация
    26.01.2019
    Сообщений
    41
    Репутация:
    6 ±
    Цитата Сообщение от DmitriyVasilev Посмотреть сообщение
    а я вот не пойму, чем например тот же isnull и вот эти strtok сделают что-то лучше.
    Зачем вызывать целую функцию sscanf, если можно просто проверить значение в ячейке через isnull. Где вы увидели функцию strtok?

 

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

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

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

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

Ваши права

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