PDA

Просмотр полной версии : [Вопрос] TextDraw



Bady
30.08.2015, 02:10
При конекте вызывается TextDraw, хотя я его не вызываю. При спавне он пропадает.
Хотелось бы узнать причину, с чем может быть связано это?
Так же при коннекте подгружается у меня лого( оно состоит из 7 TD), а при спавне 1 TD пропадает.

$continue$
30.08.2015, 03:12
Создание ТД в студию

Bady
30.08.2015, 03:59
Создание ТД в студию
всех? или который появляется и лого сервера?

Daniel_Cortez
30.08.2015, 04:25
Только тех, которые появляются. Ну и логотип тоже. И, на всякий случай, где вы их создаёте?

Bady
30.08.2015, 04:29
new Text:Box[4];
new Text:LogoServer[7];


public OnGameModeInit() :

LogoServer[0] = TextDrawCreate(505.666595, 1.244439, "I");
TextDrawLetterSize(LogoServer[0], 0.436666, 2.350812);
TextDrawAlignment(LogoServer[0], 1);
TextDrawColor(LogoServer[0], 290490111);
TextDrawSetShadow(LogoServer[0], 0);
TextDrawSetOutline(LogoServer[0], 1);
TextDrawBackgroundColor(LogoServer[0], 51);
TextDrawFont(LogoServer[0], 1);
TextDrawSetProportional(LogoServer[0], 1);

LogoServer[1] = TextDrawCreate(511.000122, 6.637041, "nternational");
TextDrawLetterSize(LogoServer[1], 0.194665, 1.662222);
TextDrawAlignment(LogoServer[1], 1);
TextDrawColor(LogoServer[1], -1);
TextDrawSetShadow(LogoServer[1], 0);
TextDrawSetOutline(LogoServer[1], 1);
TextDrawBackgroundColor(LogoServer[1], 51);
TextDrawFont(LogoServer[1], 2);
TextDrawSetProportional(LogoServer[1], 1);

LogoServer[2] = TextDrawCreate(575.999938, 2.903707, "L");
TextDrawLetterSize(LogoServer[2], 0.365332, 2.222220);
TextDrawAlignment(LogoServer[2], 1);
TextDrawColor(LogoServer[2], 290490111);
TextDrawSetShadow(LogoServer[2], 0);
TextDrawSetOutline(LogoServer[2], 1);
TextDrawBackgroundColor(LogoServer[2], 51);
TextDrawFont(LogoServer[2], 1);
TextDrawSetProportional(LogoServer[2], 1);

LogoServer[3] = TextDrawCreate(583.333068, 5.807404, "ife");
TextDrawLetterSize(LogoServer[3], 0.230665, 1.848888);
TextDrawAlignment(LogoServer[3], 1);
TextDrawColor(LogoServer[3], -1);
TextDrawSetShadow(LogoServer[3], 0);
TextDrawSetOutline(LogoServer[3], 1);
TextDrawBackgroundColor(LogoServer[3], 51);
TextDrawFont(LogoServer[3], 2);
TextDrawSetProportional(LogoServer[3], 1);

LogoServer[4] = TextDrawCreate(599.999938, 3.733365, "ld_pool:ball");
TextDrawLetterSize(LogoServer[4], -0.358999, 1.215405);
TextDrawTextSize(LogoServer[4], 20.000000, 22.814819);
TextDrawAlignment(LogoServer[4], 1);
TextDrawColor(LogoServer[4], 1081705215);
TextDrawSetShadow(LogoServer[4], 0);
TextDrawSetOutline(LogoServer[4], 0);
TextDrawFont(LogoServer[4], 4);

LogoServer[5] = TextDrawCreate(606.666748, 6.637035, "1");
TextDrawLetterSize(LogoServer[5], 0.449999, 1.600000);
TextDrawAlignment(LogoServer[5], 1);
TextDrawColor(LogoServer[5], -1);
TextDrawSetShadow(LogoServer[5], 0);
TextDrawSetOutline(LogoServer[5], 1);
TextDrawBackgroundColor(LogoServer[5], 51);
TextDrawFont(LogoServer[5], 1);
TextDrawSetProportional(LogoServer[5], 1);

LogoServer[6] = TextDrawCreate(542.000061, 19.911128, "roleplay");
TextDrawLetterSize(LogoServer[6], 0.226333, 0.990222);
TextDrawAlignment(LogoServer[6], 1);
TextDrawColor(LogoServer[6], -1);
TextDrawSetShadow(LogoServer[6], 0);
TextDrawSetOutline(LogoServer[6], 1);
TextDrawBackgroundColor(LogoServer[6], 51);
TextDrawFont(LogoServer[6], 2);
TextDrawSetProportional(LogoServer[6], 1);

Box[0] = TextDrawCreate(623.500000, 348.875000, "usebox");
TextDrawLetterSize(Box[0], 0.000000, 6.488886);
TextDrawTextSize(Box[0], 445.500000, 0.000000);
TextDrawUseBox(Box[0], true);
TextDrawBoxColor(Box[0], -236);

Box[1] = TextDrawCreate(498.050048, 352.506378, "usebox");
TextDrawLetterSize(Box[1], 0.000000, 3.802774);
TextDrawTextSize(Box[1], 449.250030, 0.000000);
TextDrawUseBox(Box[1], true);
TextDrawBoxColor(Box[1], 102);

Box[2] = TextDrawCreate(619.850219, 392.706390, "usebox");
TextDrawLetterSize(Box[2], 0.000000, 1.317774);
TextDrawTextSize(Box[2], 449.250030, 0.000000);
TextDrawUseBox(Box[2], true);
TextDrawBoxColor(Box[2], 102);

Box[3] = TextDrawCreate(619.649780, 352.281280, "usebox");
TextDrawLetterSize(Box[3], 0.000000, 3.807775);
TextDrawTextSize(Box[3], 497.299713, 0.000000);
TextDrawUseBox(Box[3], true);
TextDrawBoxColor(Box[3], 102);

public OnPlayerConnect(playerid) :

for(new A; A < sizeof(LogoServer); A++) TextDrawShowForPlayer(playerid,LogoServer[A]);

Daniel_Cortez
30.08.2015, 05:28
Тип PlayerText создан для таких текстдравов, которые могут быть разными для каждого игрока, т.е. иметь разный текст, цвет, размер, etc.
Вы же просто плодите через PlayerText одинаковые копии текстдравов лого. Зачем?

Bady
30.08.2015, 05:45
Тип PlayerText создан для таких текстдравов, которые могут быть разными для каждого игрока, т.е. иметь разный текст, цвет, размер, etc.
Вы же просто плодите через PlayerText одинаковые копии текстдравов лого. Зачем?
Кхмм, не подумал, Поправил код.
Проблема осталась, вместо LogoServer[0], подгружается сторонний TextDraw (Уже другой, но на LogoServer[0] координаты)
Не могу понять в чем дело.

$continue$
30.08.2015, 06:32
Попробуйте так:


new Text: text_draw_server_logotip[7] = { Text:INVALID_TEXT_DRAW, ... };



for(new f = 0; f < sizeof(text_draw_server_logotip); f++)
{
TextDrawShowForPlayer(playerid, text_draw_server_logotip[f]);
}



text_draw_server_logotip[0] = TextDrawCreate(505.666595, 1.244439, "I");
TextDrawLetterSize(text_draw_server_logotip[0], 0.436666, 2.350812);
TextDrawAlignment(text_draw_server_logotip[0], 1);
TextDrawColor(text_draw_server_logotip[0], 290490111);
TextDrawSetShadow(text_draw_server_logotip[0], 0);
TextDrawSetOutline(text_draw_server_logotip[0], 1);
TextDrawBackgroundColor(text_draw_server_logotip[0], 51);
TextDrawFont(text_draw_server_logotip[0], 1);
TextDrawSetProportional(text_draw_server_logotip[0], 1);

text_draw_server_logotip[1] = TextDrawCreate(511.000122, 6.637041, "nternational");
TextDrawLetterSize(text_draw_server_logotip[1], 0.194665, 1.662222);
TextDrawAlignment(text_draw_server_logotip[1], 1);
TextDrawColor(text_draw_server_logotip[1], -1);
TextDrawSetShadow(text_draw_server_logotip[1], 0);
TextDrawSetOutline(text_draw_server_logotip[1], 1);
TextDrawBackgroundColor(text_draw_server_logotip[1], 51);
TextDrawFont(text_draw_server_logotip[1], 2);
TextDrawSetProportional(text_draw_server_logotip[1], 1);

text_draw_server_logotip[2] = TextDrawCreate(575.999938, 2.903707, "L");
TextDrawLetterSize(text_draw_server_logotip[2], 0.365332, 2.222220);
TextDrawAlignment(text_draw_server_logotip[2], 1);
TextDrawColor(text_draw_server_logotip[2], 290490111);
TextDrawSetShadow(text_draw_server_logotip[2], 0);
TextDrawSetOutline(text_draw_server_logotip[2], 1);
TextDrawBackgroundColor(text_draw_server_logotip[2], 51);
TextDrawFont(text_draw_server_logotip[2], 1);
TextDrawSetProportional(text_draw_server_logotip[2], 1);

text_draw_server_logotip[3] = TextDrawCreate(583.333068, 5.807404, "ife");
TextDrawLetterSize(text_draw_server_logotip[3], 0.230665, 1.848888);
TextDrawAlignment(text_draw_server_logotip[3], 1);
TextDrawColor(text_draw_server_logotip[3], -1);
TextDrawSetShadow(text_draw_server_logotip[3], 0);
TextDrawSetOutline(text_draw_server_logotip[3], 1);
TextDrawBackgroundColor(text_draw_server_logotip[3], 51);
TextDrawFont(text_draw_server_logotip[3], 2);
TextDrawSetProportional(text_draw_server_logotip[3], 1);

text_draw_server_logotip[4] = TextDrawCreate(599.999938, 3.733365, "ld_pool:ball");
TextDrawLetterSize(text_draw_server_logotip[4], -0.358999, 1.215405);
TextDrawTextSize(text_draw_server_logotip[4], 20.000000, 22.814819);
TextDrawAlignment(text_draw_server_logotip[4], 1);
TextDrawColor(text_draw_server_logotip[4], 1081705215);
TextDrawSetShadow(text_draw_server_logotip[4], 0);
TextDrawSetOutline(text_draw_server_logotip[4], 0);
TextDrawFont(text_draw_server_logotip[4], 4);

text_draw_server_logotip[5] = TextDrawCreate(606.666748, 6.637035, "1");
TextDrawLetterSize(text_draw_server_logotip[5], 0.449999, 1.600000);
TextDrawAlignment(text_draw_server_logotip[5], 1);
TextDrawColor(text_draw_server_logotip[5], -1);
TextDrawSetShadow(text_draw_server_logotip[5], 0);
TextDrawSetOutline(text_draw_server_logotip[5], 1);
TextDrawBackgroundColor(text_draw_server_logotip[5], 51);
TextDrawFont(text_draw_server_logotip[5], 1);
TextDrawSetProportional(text_draw_server_logotip[5], 1);

text_draw_server_logotip[6] = TextDrawCreate(542.000061, 19.911128, "roleplay");
TextDrawLetterSize(text_draw_server_logotip[6], 0.226333, 0.990222);
TextDrawAlignment(text_draw_server_logotip[6], 1);
TextDrawColor(text_draw_server_logotip[6], -1);
TextDrawSetShadow(text_draw_server_logotip[6], 0);
TextDrawSetOutline(text_draw_server_logotip[6], 1);
TextDrawBackgroundColor(text_draw_server_logotip[6], 51);
TextDrawFont(text_draw_server_logotip[6], 2);
TextDrawSetProportional(text_draw_server_logotip[6], 1);

В документации написано, что нужно так инициализировать TextDraw'ы.
http://i.imgur.com/JffooI5.png
Link (http://wiki.sa-mp.com/wiki/TextDraw#Variable_Declaration)

Daniel_Cortez
30.08.2015, 06:43
Попробуйте так:


new Text: text_draw_server_logotip[7] = Text:INVALID_TEXT_DRAW;




new arr[4] = 1;
for (new i = 0; i < sizeof(arr); ++i)
printf("%d", arr[i]);



1
0
0
0

Fail.






for(new f = sizeof(text_draw_server_logotip); f != -1; f--)
{
TextDrawShowForPlayer(playerid, text_draw_server_logotip[f]);
}


И словим выход за пределы массива. Да и вообще, в чём профит создания текстдравов в обратном порядке?

Bady
30.08.2015, 13:50
new arr[4] = 1;
for (new i = 0; i < sizeof(arr); ++i)
printf("%d", arr[i]);



1
0
0
0

Fail.



И словим выход за пределы массива. Да и вообще, в чём профит создания текстдравов в обратном порядке?
Мужики, что делать то?

$continue$
30.08.2015, 15:24
Обновил пост.

Bady
30.08.2015, 16:13
Обновил пост.
Та даже проблема!
http://cs627130.vk.me/v627130592/1b96b/B_2pbs2CAS8.jpg

$continue$
30.08.2015, 16:24
Та даже проблема!
http://cs627130.vk.me/v627130592/1b96b/B_2pbs2CAS8.jpg

Дак в чем проблема? ТД - даты заежает на логотип, поиграйте с координатами.

Bady
30.08.2015, 16:27
Дак в чем проблема? ТД - даты заежает на логотип, поиграйте с координатами.
Дело в том что координаты даты указаны верно! После того как добавил box[0-3] стал при коннекте появляться box[0].
Потом у меня Logo было на PlayerText, я переделал под Text, и бокс перестал появляться. Но теперь дата залазит на координаты, и цвет и координаты от ServerLogo[0].

$continue$
30.08.2015, 16:30
Дело в том что координаты даты указаны верно! После того как добавил box[0-3] стал при коннекте появляться box[0].
Потом у меня Logo было на PlayerText, я переделал под Text, и бокс перестал появляться. Но теперь дата залазит на координаты, и цвет и координаты от ServerLogo[0].

Инициализацию переменной box - покажите.

Bady
30.08.2015, 17:01
Инициализацию переменной box - покажите.

stock ShowSpeedomert(playerid)
{
for(new i;i<sizeof(Box);i++) TextDrawShowForPlayer(playerid, Box[i]);
//И тут еще все TextDraw спидометра
}


Удалил дату и время, они все ровно мне не нужны были, как раз хотел удалять, стало все нормально!
Последний вопрос, для Лого нужно TextDrawHideForPlayer в onplayerdisconect ?

Daniel_Cortez
30.08.2015, 17:14
stock ShowSpeedomert(playerid)
{
for(new i;i<sizeof(Box);i++) TextDrawShowForPlayer(playerid, Box[i]);
//И тут еще все TextDraw спидометра
}
Для кода есть тег [php]. Пора бы это уже запомнить, не вчера же здесь зарегистрировались.


Последний вопрос, для Лого нужно TextDrawHideForPlayer в onplayerdisconect ?
Если учесть, что в SA:MP дофигище багов и куй их не исправит, если они не крашат сервер, то... да, перестраховаться никогда не будет лишним.

Bady
30.08.2015, 17:15
Для кода есть тег [php]. Пора бы это уже запомнить, не вчера же здесь зарегистрировались.


Если учесть, что в SA:MP дофигище багов и куй их не исправит, если они не крашат сервер, то... да, перестраховаться никогда не будет лишним.
Хорошо, спасибо, закройте тему!