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

    Статус
    Оффлайн
    Регистрация
    10.04.2014
    Сообщений
    74
    Репутация:
    17 ±

    Как правильно подсчитать размер трёх разных строк и "склеить" их в одну?

    Доброго времени суток, уважаемые пользователи/модераторы.
    Мне немного сложно описать суть вопроса, но я постараюсь.
    Читал урок от Daniel_Cortez по поводу подсчёта размера строки, и, вроде бы всё и гладко, но возникли вопросы/проблемы.

    Команда:

    PHP код:
    CMD:getpos(playeridparams[])
    {
        if(!
    IsPlayerAuthorized(playerid)) return SendClientMessage(playerid, -1"Вы не авторизованны!");
        
        static const
            
    coords_msg[] = "[Ваши координаты] X: %f, Y: %f, Z: %f\n",
            
    facing_angle_msg[] = "[Угол поворота]: %f\n",
            
    interior_msg[] = "[Интерьер]: %d\n",
            
    virtual_world_msg[] = "[Виртуальный мир]: %d";
            
        new 
    all_msg[sizeof(coords_msg) + sizeof(facing_angle_msg) + sizeof(interior_msg) + sizeof(virtual_world_msg)];
        new 
    Float:pos_xFloat:pos_yFloat:pos_zFloat:anglerot;
        
        
    GetPlayerPos(playeridpos_xpos_ypos_z);
        
    GetPlayerFacingAngle(playeridanglerot);
        
        new
            
    interior GetPlayerInterior(playerid),
            
    virtual_world GetPlayerVirtualWorld(playerid);

        
    //format(all_msg, sizeof(all_msg), "%s%s%s%s", coords_msg, facing_angle_msg, interior_msg, virtual_world_msg);
        //SendClientMessage(playerid, -1, all_msg);
            // Вот и суть вопроса: как сделать правильное форматирование + склеивание подобных строк?
        
    return 1;

    Как видите, у меня есть 4 разных строки с разными параметрами. Массив all_msg с подсчётом так же имеется (хоть я и уверен, что подсчёт провёл не очень правильно).
    Как вывести все эти строки вместе? (Учитывая то, что там ещё и параметры, которые должны заполняться значениями)

    Или же можно было подсчитать размер максимальной строки (к примеру 1-ой) и выводить их отдельно?

    P.S Очень прошу не бомбить. Лучше объясните доходчиво. Заранее благодарю вас за помощь :)

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

    Статус
    Оффлайн
    Регистрация
    10.04.2014
    Сообщений
    74
    Репутация:
    17 ±
    Данная проблема решена. Closed.

    Решение:

    PHP код:
    CMD:getpos(playeridparams[])  
    {  
        if(!
    IsPlayerAuthorized(playerid)) return SendClientMessage(playerid, -1"Вы не авторизованны!");   

        static const
            
    fmt_str[] = "[Ваши координаты] X: %f, Y: %f, Z: %f\n\
                              [Угол поворота]: %f\n\
                              [Интерьер]: %d\n\
                              [Виртуальный мир]: %d"
    ;
              
        new 
    string[sizeof(fmt_str) - 12 3*2];  

        new 
    Float:pos_xFloat:pos_yFloat:pos_zFloat:anglerot;  
          
        
    GetPlayerPos(playeridpos_xpos_ypos_z);  
        
    GetPlayerFacingAngle(playeridanglerot);  
          
        new  
            
    interior GetPlayerInterior(playerid),  
            
    virtual_world GetPlayerVirtualWorld(playerid);  

        
    format(stringsizeof(string), fmt_strcoords_msgfacing_angle_msginterior_msgvirtual_world_msg);  
     
        return  
    SendClientMessage(playerid, -1string);   

    Последний раз редактировалось DeimoS; 27.12.2016 в 15:46.

 

 

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

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

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

Ваши права

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