Перейти к содержанию
Авторизация  
Lil__Jonson

Проблема с выводом инфы в TextDraw

Рекомендуемые сообщения

Lil__Jonson

День добрый.Создаю текстдрав что бы было Score в виде TextDraw
Получается у меня показывает текст score а кол-во. не выводит

               

new score;  
score = GetPlayerScore(playerid);
format( string, sizeof string, "Score:~r~ %d", score );
PlayerTextDrawShow(playerid,dscore);

 

cr-mp-001.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16Shadows

PlayerTextDrawSetString забыли.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Lil__Jonson
11 часов назад, 16Shadows сказал:

PlayerTextDrawSetString забыли.

Сделал. теперь вообще не выводит TextDraw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16Shadows

Вы первым аргументом должны передать id игрока, вторым - id текстдрава, третьим - передать свою отформатированную строку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Lil__Jonson
4 часа назад, 16Shadows сказал:

Вы первым аргументом должны передать id игрока, вторым - id текстдрава, третьим - передать свою отформатированную строку.

Можно пример ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Reyn
51 минуту назад, Lil__Jonson сказал:

Можно пример ?

(playerid, PlayerText:text, string[])

 

   new tdstring[32], Float:vHealth;
    GetVehicleHealth(GetPlayerVehicleID(playerid), vHealth);
 
    format(tdstring, sizeof(tdstring), "Vehicle Health: %0f", vHealth);
 
    PlayerTextDrawSetString(playerid, pVehicleHealthTD[playerid], tdstring);
Изменено пользователем Reyn

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Lil__Jonson
28 минут назад, Reyn сказал:

(playerid, PlayerText:text, string[])

 


   new tdstring[32], Float:vHealth;
    GetVehicleHealth(GetPlayerVehicleID(playerid), vHealth);
 
    format(tdstring, sizeof(tdstring), "Vehicle Health: %0f", vHealth);
 
    PlayerTextDrawSetString(playerid, pVehicleHealthTD[playerid], tdstring);



Непонял.


Вот у меня сейчас вообще текстдрав не отоброжается.

 

new score;  
score = GetPlayerScore(playerid);
format( string, sizeof string, "Score:~r~ %d", score );
PlayerTextDrawSetString(playerid, dscore[playerid], string); 


ЧТо тут не так

Изменено пользователем Lil__Jonson

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Reyn
28 минут назад, Lil__Jonson сказал:



Непонял.


Вот у меня сейчас вообще текстдрав не отоброжается.

 


new score;  
score = GetPlayerScore(playerid);
format( string, sizeof string, "Score:~r~ %d", score );
PlayerTextDrawSetString(playerid, dscore[playerid], string); 


ЧТо тут не так

format( string, sizeof string, "Score:~r~ %d", score ); Почему пробел перед стрингом и после score? string, sizeof(score)
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Lil__Jonson
7 минут назад, Reyn сказал:

format( string, sizeof string, "Score:~r~ %d", score ); Почему пробел перед стрингом и после score? string, sizeof(score)


Нечего не изменилось. Все равно не отоброжает текстдрав

МОжно с тоой как нибудь связаться? Скайп, ВК?

cr-mp-006.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Reyn
new score[32];  
score = GetPlayerScore(playerid);
format(score, sizeof(score), "Score:~r~ %d", score);
PlayerTextDrawSetString(playerid, dscore[playerid], score); 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Lil__Jonson
13 минут назад, Reyn сказал:

new score[32];  
score = GetPlayerScore(playerid);
format(score, sizeof(score), "Score:~r~ %d", score);
PlayerTextDrawSetString(playerid, dscore[playerid], score); 

error 033 array must be indexed (variable "score")

На вот эту строку

score = GetPlayerScore(playerid);

 

Изменено пользователем Lil__Jonson

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Lil__Jonson

Ошибку исправил. Но текстдрав по прежнему не показывается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Lil__Jonson

Если создаем текстдрав вот так вот

PlayerTextDrawSetString(playerid, dscore[playerid], score); 

То отображения текстдрава нет вообще.

Если делаем так 

PlayerTextDrawShow(playerid, dscore[playerid], score); 

То он создается. но пишет ток Score а кол-во очков не выводит

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Lil__Jonson

Мне интересно почему текстдрав не выводит..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16Shadows
new score[32];  
format(score, sizeof(score), "Score:~r~ %d", GetPlayerScore(playerid));
PlayerTextDrawSetString(playerid, dscore[playerid], score);

По идее, такой код должен выполнятся. Если верить документации, PlayerTextDrawSetString не требует повторного отображения (PlayerTextDrawShow), чтобы изменения отобразились. Если у Вас не работает такой код, попробуйте в чат вывести строку score и посмотреть, что она содержит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Lil__Jonson

В общем вот текстдрав 

new Text:dscore[MAX_PLAYERS]; 

 

OnPlayerConnect

 

DriftScore(playerid);

Сам TextDraw

 

DriftScore(playerid)
{
	dscore[playerid] = TextDrawCreate(498.506835, 80.833366, "Score:~r~");
	TextDrawLetterSize(dscore[playerid], 0.361916, 1.693333);
	TextDrawAlignment(dscore[playerid], 1);
	TextDrawColor(dscore[playerid], 0xffffffff);
	TextDrawSetShadow(dscore[playerid], 0);
	TextDrawSetOutline(dscore[playerid], 1);
	TextDrawBackgroundColor(dscore[playerid], 0x000000ff);
	TextDrawFont(dscore[playerid], 2);
	TextDrawSetProportional(dscore[playerid], 1);
}

И Сама функция

 

new score[32];  
format(score, sizeof(score), "Score:~r~ %d", GetPlayerScore(playerid));
PlayerTextDrawSetString(playerid, dscore[playerid], score);


Почему не отоброжается TextDraw Score: и кол-во очков

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16Shadows

Вы неправильно работаете с TextDraw'ами. Они подразделяются на глобальные и для каждого игрока. В вашем контенксте Вам нужен второй тип. При обновлении Вы пытаетесь использовать функции для второго типа, что правильно для Вашей идеи. Но создаёте Вы его как первый тип. Полагаю, Вы пользуетесь каким-то редактором для TextDraw'ов. Там быть кнопка для смены типа. Либо можно вручную заменить функции на им соответствующие.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Lil__Jonson
1 час назад, 16Shadows сказал:

Вы неправильно работаете с TextDraw'ами. Они подразделяются на глобальные и для каждого игрока. В вашем контенксте Вам нужен второй тип. При обновлении Вы пытаетесь использовать функции для второго типа, что правильно для Вашей идеи. Но создаёте Вы его как первый тип. Полагаю, Вы пользуетесь каким-то редактором для TextDraw'ов. Там быть кнопка для смены типа. Либо можно вручную заменить функции на им соответствующие.

ВОт смотри, сейчас создаем TextDraw вот так:

 

new PlayerText:dscore;

 

DriftScore(playerid)
{
	dscore = CreatePlayerTextDraw(playerid,498.506835, 80.833366, "Score:~r~");
	PlayerTextDrawLetterSize(playerid,dscore, 0.361916, 1.693333);
	PlayerTextDrawAlignment(playerid,dscore, 1);
	PlayerTextDrawColor(playerid,dscore, 0xffffffff);
	PlayerTextDrawSetShadow(playerid,dscore, 0);
	PlayerTextDrawSetOutline(playerid,dscore, 1);
	PlayerTextDrawBackgroundColor(playerid,dscore, 0x000000ff);
	PlayerTextDrawFont(playerid,dscore, 2);
	PlayerTextDrawSetProportional(playerid,dscore, 1);
}
new score[32];  
format(score, sizeof(score), "Score:~r~ %d", GetPlayerScore(playerid));
PlayerTextDrawSetString(playerid, dscore, score);

Так же, нет отображение TextDraw`a

Если мы создаем вот так вот

 

new score[32];  
new scores = GetPlayerScore(playerid);
PlayerTextDrawSetString(playerid, dscore, "Score:~r~ %d", scores);
PlayerTextDrawShow(playerid, dscore, score); 

TextDraw Создается. в виде Score: %d

Что не так делаю?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16Shadows

Во втором случае Вы не форматируете строку, а передаёте функции PlayerTextDrawSetString строку "Score: %d" и лишний аргумент, который даже не обрабатывается. Вам нужно её форматировать. Как я уже говорил, выведите отформатированную строку куда-то ещё, чтобы проверить, корректно ли она форматируется. И попробуйте добавить PlayerTextDrawShow в первый вариант.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
none

Добрый вечер  все еще Актуально?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Lil__Jonson
21 час назад, Aleksandr_Pavlov сказал:

Добрый вечер  все еще Актуально?

ДА

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Lil__Jonson
В 9/24/2019 в 2:55 PM, 16Shadows сказал:

Во втором случае Вы не форматируете строку, а передаёте функции PlayerTextDrawSetString строку "Score: %d" и лишний аргумент, который даже не обрабатывается. Вам нужно её форматировать. Как я уже говорил, выведите отформатированную строку куда-то ещё, чтобы проверить, корректно ли она форматируется. И попробуйте добавить PlayerTextDrawShow в первый вариант.


Вопрос решен. Тебе Спасибо!!!! Тема закрыта

Правильное решение
 

new score[32];  
format(score, sizeof(score), "Score:~r~ %d", GetPlayerScore(playerid));
PlayerTextDrawSetString(playerid, dscore, score);
PlayerTextDrawShow(playerid, dscore); 

 

Изменено пользователем Lil__Jonson

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.