PDA

Просмотр полной версии : [Вопрос] Проблема с текстдравами.



Быдлокодер
12.04.2016, 17:52
Создаю текстдрав вот так:

TDEditor_PTD[playerid][0] = CreatePlayerTextDraw(playerid, 115.625000, 135.166687, "box");
PlayerTextDrawLetterSize(playerid, TDEditor_PTD[playerid][0], 0.000000, -5.727942);
PlayerTextDrawTextSize(playerid, TDEditor_PTD[playerid][0], 486.000000, 0.000000);
PlayerTextDrawAlignment(playerid, TDEditor_PTD[playerid][0], 1);
PlayerTextDrawColor(playerid, TDEditor_PTD[playerid][0], -1);
PlayerTextDrawUseBox(playerid, TDEditor_PTD[playerid][0], 1);
PlayerTextDrawBoxColor(playerid, TDEditor_PTD[playerid][0], 153);
PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][0], 0);
PlayerTextDrawSetOutline(playerid, TDEditor_PTD[playerid][0], 0);
PlayerTextDrawBackgroundColor(playerid, TDEditor_PTD[playerid][0], 255);
PlayerTextDrawFont(playerid, TDEditor_PTD[playerid][0], 2);
PlayerTextDrawSetProportional(playerid, TDEditor_PTD[playerid][0], 1);
PlayerTextDrawSetShadow(playerid, TDEditor_PTD[playerid][0], 0);
Компилятор выдаёт ошибки:

C:\Documents and Settings\Admin-PC\Ìîè äîêóìåíòû\Downloads\mod\gamemodes\roleplay.pwn(11535) : warning 215: expression has no effect
C:\Documents and Settings\Admin-PC\Ìîè äîêóìåíòû\Downloads\mod\gamemodes\roleplay.pwn(11535) : error 001: expected token: ";", but found "["
C:\Documents and Settings\Admin-PC\Ìîè äîêóìåíòû\Downloads\mod\gamemodes\roleplay.pwn(11535) : error 029: invalid expression, assumed zero
C:\Documents and Settings\Admin-PC\Ìîè äîêóìåíòû\Downloads\mod\gamemodes\roleplay.pwn(11535) : warning 215: expression has no effect
C:\Documents and Settings\Admin-PC\Ìîè äîêóìåíòû\Downloads\mod\gamemodes\roleplay.pwn(11535) : error 001: expected token: ";", but found "]"
C:\Documents and Settings\Admin-PC\Ìîè äîêóìåíòû\Downloads\mod\gamemodes\roleplay.pwn(11535) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.


В чём может быть проблема ?

Nash_Brigers
12.04.2016, 18:19
Как объявил переменную текстдрава? Скорее всего неправильно.

new PlayerText:TDEditor_PTD[MAX_PLAYERS][2];
p.s. у меня без ошибок компилит.

Быдлокодер
12.04.2016, 18:40
теперь почему-то ругается на второй аргумент:


PlayerTextDrawShow(playerid, PlayerText:TDEditor_PTD[28]);

Kurbanoff
12.04.2016, 18:55
теперь почему-то ругается на второй аргумент:


PlayerTextDrawShow(playerid, PlayerText:TDEditor_PTD[28]);

Вот сам подумай..
Мы создали переменную с максимальной ячейкой 2
И в ней может быть только 2 ячейки


TDEditor_PTD[0]
//и
TDEditor_PTD[1]

P.S Я не профессионал, если я ответил не правильно, то извините .

Nash_Brigers
12.04.2016, 19:00
теперь почему-то ругается на второй аргумент:


PlayerTextDrawShow(playerid, PlayerText:TDEditor_PTD[28]);
По-внимательнее..

PlayerTextDrawShow(playerid, TDEditor_PTD[playerid][28]);

Быдлокодер
12.04.2016, 21:47
Чтобы новую тему не создавать, напишу тут.
Помогите мне разобраться с пабликом OnPlayerClickTextDraw.
Вот сам Паблик:

public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
if (clickedid == Text:INVALID_TEXT_DRAW)
{
if (!Dialog_Opened(playerid) && PlayerData[playerid][pDisplayStats] > 0)
{
if (PlayerData[playerid][pDisplayStats] == 2) {
for (new i = 50; i < 58; i ++) PlayerTextDrawHide(playerid, PlayerData[playerid][pTextdraws][i]);
}
else for (new i = 40; i < 50; i ++) {
PlayerTextDrawHide(playerid, PlayerData[playerid][pTextdraws][i]);
}
if (clickedid == Text:TDEditor_PTD[playerid][8])
{
SendErrorMessage(playerid,"test");
}
CancelSelectTextDraw(playerid);
PlayerData[playerid][pDisplayStats] = false;

}
}
if (clickedid == Text:TDEditor_PTD[playerid][8])
{
SendErrorMessage(playerid, "TestMenu");
}
return 1;
}

Вот так я делаю:


if (clickedid == Text:TDEditor_PTD[playerid][8])
{
SendErrorMessage(playerid, "TestMenu");
}
Код не работает (не реагирует), в чём может быть проблема? просто с текстдравами ещё не приходилось всёрьез работать.

Nash_Brigers
13.04.2016, 08:53
Чтобы новую тему не создавать, напишу тут.
Помогите мне разобраться с пабликом OnPlayerClickTextDraw.
Вот так я делаю:


if (clickedid == Text:TDEditor_PTD[playerid][8])
{
SendErrorMessage(playerid, "TestMenu");
}
Код не работает (не реагирует), в чём может быть проблема? просто с текстдравами ещё не приходилось всёрьез работать.
Паблик OnPlayerClickTextDraw для глобальных текстдравов (для тех которые просто TextDraw, без [playerid]), а OnPlayerClickPlayerTextDraw - для тех, которые PlayerTextDraw (тех, что с [playerid]). Дальше:

public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
if (playertextid == TDEditor_PTD[playerid][8])
{
SendErrorMessage(playerid, "TestMenu");
}
return 1;
}