new PlayerText:TDArtifactIcon[MAX_PLAYERS][5];
TDArtifactIcon[playerid][i] = CreatePlayerTextDraw(playerid, 302.333312 + (SPACING*(i-2)), 181.274566, "LD_NONE:ship3");
PlayerTextDrawLetterSize(playerid, TDArtifactIcon[playerid][i], 0.000000, 0.000000);
PlayerTextDrawTextSize(playerid, TDArtifactIcon[playerid][i], 32.000003, 31.940734);
PlayerTextDrawAlignment(playerid, TDArtifactIcon[playerid][i], 1);
PlayerTextDrawColor(playerid, TDArtifactIcon[playerid][i], -1);
PlayerTextDrawSetShadow(playerid, TDArtifactIcon[playerid][i], 0);
PlayerTextDrawSetOutline(playerid, TDArtifactIcon[playerid][i], 0);
PlayerTextDrawFont(playerid, TDArtifactIcon[playerid][i], 4);
PlayerTextDrawSetSelectable(playerid, TDArtifactIcon[playerid][i], true);
public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
for(new i=0; i<5; i++)
{
if(playertextid == PlayerText:TDArtifactIcon[playerid][i])
{
if(Artifact[playerid][i] == 0) return 1;
ArtifactEnabled[playerid][i] ^= 1;
HideArtifacts(playerid);
ShowArtifacts(playerid);
SelectTextDraw(playerid, COLOR_GREY);
return 1;
}
}
return 0;
}
|
Both of you please check that you don't have other filterscripts or even your gamemode returning 1 in OnPlayerClickPlayerTextDraw. That would prevent the callback from being properly propagated to your current script.
|
public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
for(new i=0; i<5; i++)
{
if(playertextid == TDArtifactIcon[playerid][i])
{
if(Artifact[playerid][i] == 0) return 1;
ArtifactEnabled[playerid][i] ^= 1;
HideArtifacts(playerid);
ShowArtifacts(playerid);
SelectTextDraw(playerid, COLOR_GREY);
return 1;
}
}
return 0;
}
public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
printf("playertextid = %d", playeridtextid);
for(new i=0; i<5; i++)
{
printf("TDArtifactIcon[%d][%d] = %d", playerid, i, TDArtifactIcon[playerid][i]);
if(playertextid == TDArtifactIcon[playerid][i])
{
printf("TDArtifactIcon[playerid][%d] = playertextid", i);
if(Artifact[playerid][i] == 0) return 1;
ArtifactEnabled[playerid][i] ^= 1;
HideArtifacts(playerid);
ShowArtifacts(playerid);
SelectTextDraw(playerid, COLOR_GREY);
return 1;
}
}
return 0;
}
|
Debug
PHP код:
|
public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
printf("playertextid = %d", PlayerText:playeridtextid);
for(new i=0; i<5; i++)
{
printf("TDArtifactIcon[%d][%d] = %d", playerid, i, TDArtifactIcon[playerid][i]);
if(PlayerText:playertextid == PlayerText:TDArtifactIcon[playerid][i])
{
printf("TDArtifactIcon[playerid][%d] = playertextid", i);
if(Artifact[playerid][i] == 0) return 1;
ArtifactEnabled[playerid][i] ^= 1;
HideArtifacts(playerid);
ShowArtifacts(playerid);
SelectTextDraw(playerid, COLOR_GREY);
return 1;
}
}
return 0;
}
PlayerTextDrawTextSize(playerid, TDArtifactIcon[playerid][i], 32.000003, 31.940734);
|
Problem is you are not updating the textsize accordingly.
Код:
PlayerTextDrawTextSize(playerid, TDArtifactIcon[playerid][i], 32.000003, 31.940734); |
|
Both of you please check that you don't have other filterscripts or even your gamemode returning 1 in OnPlayerClickPlayerTextDraw. That would prevent the callback from being properly propagated to your current script.
|