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.
|