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

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

    PlayerTextDrawSetString

    Здравствуйте, появилась такая проблема, создаю текстдрав по стандарту он пустой(" "), потом в 1-секундном таймере формат, где присваивается значение от GetPlayerScore(playerid), и потом это значение присваиваю текстдраву, но проблема в том, что когда начали тестировать(2 игрока), у 1 показывает, а у второго нет. В чём может быть проблема?

    PHP код:
    new PlayerText:dlscore[MAX_PLAYERS][6];

    disconnect:

        for(new 
    06l++)
            
    PlayerTextDrawHide(playerid,dlscore[playerid][l]);

    spawn:
            for(new 
    06l++)
                
    PlayerTextDrawShow(playerid,dlscore[playerid][l]);

    connect:
            
            
    dlscore[playerid][0] = CreatePlayerTextDraw(playerid,487.101013102.000022"=");//5
        
    PlayerTextDrawLetterSize(playerid,dlscore[playerid][0], 4.8634690.608331);
        
    PlayerTextDrawAlignment(playerid,dlscore[playerid][0], 1);
        
    PlayerTextDrawColor(playerid,dlscore[playerid][0], 16711935);
        
    PlayerTextDrawSetShadow(playerid,dlscore[playerid][0], 0);
        
    PlayerTextDrawSetOutline(playerid,dlscore[playerid][0], 0);
        
    PlayerTextDrawBackgroundColor(playerid,dlscore[playerid][0], 51);
        
    PlayerTextDrawFont(playerid,dlscore[playerid][0], 2);
        
    PlayerTextDrawSetProportional(playerid,dlscore[playerid][0], 1);

        
    dlscore[playerid][1] = CreatePlayerTextDraw(playerid,487.101013120.749992"=");//5
        
    PlayerTextDrawLetterSize(playerid,dlscore[playerid][1], 4.8634690.608331);
        
    PlayerTextDrawAlignment(playerid,dlscore[playerid][1], 1);
        
    PlayerTextDrawColor(playerid,dlscore[playerid][1], 16711935);
        
    PlayerTextDrawSetShadow(playerid,dlscore[playerid][1], 0);
        
    PlayerTextDrawSetOutline(playerid,dlscore[playerid][1], 1);
        
    PlayerTextDrawBackgroundColor(playerid,dlscore[playerid][1], 51);
        
    PlayerTextDrawFont(playerid,dlscore[playerid][1], 2);
        
    PlayerTextDrawSetProportional(playerid,dlscore[playerid][1], 1);

        
    dlscore[playerid][2] = CreatePlayerTextDraw(playerid,497.101013106.166671"LD_SPAC:white");
        
    PlayerTextDrawLetterSize(playerid,dlscore[playerid][2], 0.0000000.000000);
        
    PlayerTextDrawTextSize(playerid,dlscore[playerid][2], 111.50805616.333328);
        
    PlayerTextDrawAlignment(playerid,dlscore[playerid][2], 1);
        
    PlayerTextDrawColor(playerid,dlscore[playerid][2], -2147483393);
        
    PlayerTextDrawSetShadow(playerid,dlscore[playerid][2], 0);
        
    PlayerTextDrawSetOutline(playerid,dlscore[playerid][2], 0);
        
    PlayerTextDrawBackgroundColor(playerid,dlscore[playerid][2], -1378294017);
        
    PlayerTextDrawFont(playerid,dlscore[playerid][2], 4);

    //этот текстдрав который не обновляется
        
    dlscore[playerid][3] = CreatePlayerTextDraw(playerid,499.443725106.750007"");//этот текстдрав который не обновляется
        
    PlayerTextDrawLetterSize(playerid,dlscore[playerid][3], 0.2073041.471662);
        
    PlayerTextDrawAlignment(playerid,dlscore[playerid][3], 1);
        
    PlayerTextDrawColor(playerid,dlscore[playerid][3], -1);
        
    PlayerTextDrawSetShadow(playerid,dlscore[playerid][3], 0);
        
    PlayerTextDrawSetOutline(playerid,dlscore[playerid][3], 1);
        
    PlayerTextDrawBackgroundColor(playerid,dlscore[playerid][3], 255);
        
    PlayerTextDrawFont(playerid,dlscore[playerid][3], 2);
        
    PlayerTextDrawSetProportional(playerid,dlscore[playerid][3], 1);

        
    dlscore[playerid][4] = CreatePlayerTextDraw(playerid,497.622272278.250030"");
        
    PlayerTextDrawLetterSize(playerid,dlscore[playerid][4], 0.2705561.564999);
        
    PlayerTextDrawAlignment(playerid,dlscore[playerid][4], 1);
        
    PlayerTextDrawColor(playerid,dlscore[playerid][4], -1);
        
    PlayerTextDrawSetShadow(playerid,dlscore[playerid][4], 0);
        
    PlayerTextDrawSetOutline(playerid,dlscore[playerid][4], 1);
        
    PlayerTextDrawBackgroundColor(playerid,dlscore[playerid][4], 51);
        
    PlayerTextDrawFont(playerid,dlscore[playerid][4], 2);
        
    PlayerTextDrawSetProportional(playerid,dlscore[playerid][4], 1);

        
    dlscore[playerid][5] = CreatePlayerTextDraw(playerid,497.811131296.916656"");
        
    PlayerTextDrawLetterSize(playerid,dlscore[playerid][5], 0.2630591.529999);
        
    PlayerTextDrawAlignment(playerid,dlscore[playerid][5], 1);
        
    PlayerTextDrawColor(playerid,dlscore[playerid][5], -1);
        
    PlayerTextDrawSetShadow(playerid,dlscore[playerid][5], 0);
        
    PlayerTextDrawSetOutline(playerid,dlscore[playerid][5], 1);
        
    PlayerTextDrawBackgroundColor(playerid,dlscore[playerid][5], 51);
        
    PlayerTextDrawFont(playerid,dlscore[playerid][5], 2);
        
    PlayerTextDrawSetProportional(playerid,dlscore[playerid][5], 1);

    В Таймер:

            new 
    hex[36];
            
    format(hex,sizeof(hex),".:SCR: %d / LVL: %d:.",GetPlayerScore(playerid),GetPVarInt(playerid,"Kills_Lvl"));
                    
    PlayerTextDrawSetString(playerid,dlscore[playerid][3], hex); 

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

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

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    25.12.2016
    Сообщений
    31
    Репутация:
    0 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Покажи запуск таймера
    PHP код:
    new
        
    MainProcessorTimer;

    MainProcessorTimer SetTimer("ModProcessor"1000true); //в ongamemodeinit 

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    А в самом паблике ModProcessor у тебя цикл или ты просто объявил его так?
    PHP код:
    forward ModProcessor(playerid);
    public 
    ModProcessor(playerid
    Если второй вариант, то естественно ничего работать не будет. Либо делай цикл, либо запускай индивидуальные таймеры для каждого игрока
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    25.12.2016
    Сообщений
    31
    Репутация:
    0 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    А в самом паблике ModProcessor у тебя цикл или ты просто объявил его так?
    PHP код:
    forward ModProcessor(playerid);
    public 
    ModProcessor(playerid
    Если второй вариант, то естественно ничего работать не будет. Либо делай цикл, либо запускай индивидуальные таймеры для каждого игрока
    PHP код:
    for(new playerid GetPlayerPoolSize(); playerid >= 0playerid--)
    {
            if((!
    IsPlayerConnected(playerid)) || (GetPVarInt(playerid,"IsPlayerSpawned") != 1))return true;
       
    остальной код

    Таймер то как раз и работает, все остальное в нём обновляется и отзывается, но обновление данного текстдрава только для 1 игрока

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

    Статус
    Оффлайн
    Регистрация
    13.06.2016
    Адрес
    Одесса, Украина
    Сообщений
    281
    Репутация:
    51 ±
    Цитата Сообщение от _MegaMix_ Посмотреть сообщение
    PHP код:
    for(new playerid GetPlayerPoolSize(); playerid >= 0playerid--)
    {
            if((!
    IsPlayerConnected(playerid)) || (GetPVarInt(playerid,"IsPlayerSpawned") != 1))return true;
       
    остальной код

    Таймер то как раз и работает, все остальное в нём обновляется и отзывается, но обновление данного текстдрава только для 1 игрока
    Ты проверь, может сам текстрав не показывает просто? Обновлятся - он может обновляется, но игрок его просто не видит. Цикл где ты показываешь текстдрав игроку покажи

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

    Статус
    Оффлайн
    Регистрация
    25.12.2016
    Сообщений
    31
    Репутация:
    0 ±
    Цитата Сообщение от qwezert Посмотреть сообщение
    Ты проверь, может сам текстрав не показывает просто? Обновлятся - он может обновляется, но игрок его просто не видит. Цикл где ты показываешь текстдрав игроку покажи
    Он у меня показывается 1 раз - в спавне

    PHP код:
    spawn
            for(new 
    06l++) 
                
    PlayerTextDrawShow(playerid,dlscore[playerid][l]); 

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

    Статус
    Оффлайн
    Регистрация
    04.01.2015
    Адрес
    Гомель, Беларусь
    Сообщений
    547
    Репутация:
    158 ±
    После обновления строки попробуй заново показывать игроку текстдрав
    Не хотите постоянно проверять обновления моих скриптов?
    Подключите его последним, после всех остальных
    Nexius's Update Checker

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

    Статус
    Оффлайн
    Регистрация
    25.12.2016
    Сообщений
    31
    Репутация:
    0 ±
    Цитата Сообщение от Nexius_Tailer Посмотреть сообщение
    После обновления строки попробуй заново показывать игроку текстдрав
    Сейчас вообще ни у кого нет(((

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

    Статус
    Оффлайн
    Регистрация
    13.06.2016
    Адрес
    Одесса, Украина
    Сообщений
    281
    Репутация:
    51 ±
    Я вот только сейчас обратил внимание. А зачем такая конструкция - dlscore[playerid][0] ?
    CreatePlayerTextDraw создает текстдрав и так для каждого игрока. Это у тебя получилась инвалидная коляска а не костыль.
    Должно быть так
    PHP код:
    dlscore[0] = CreatePlayerTextDraw(playerid,487.101013102.000022"=");//5
        
    PlayerTextDrawLetterSize(playerid,dlscore[0], 4.8634690.608331);
        
    PlayerTextDrawAlignment(playerid,dlscore[0], 1); 
        .....
    for(new 
    06l++) 
                
    PlayerTextDrawShow(playerid,dlscore[l]); 
    Отредактируй, проблема может быть решена таким способом.

 

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

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

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

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

Ваши права

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