An annoying warning. - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (
https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (
https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: An annoying warning. (
/showthread.php?tid=328610)
An annoying warning. -
Bogdan1992 - 25.03.2012
So, i have this afk command and works find it adds the 3DText but when i type again afk it doesn't remove the 3DText. Once i tried with Delete3DTextLabel(label); but it failed now with this new version it gaves me tag mismatch
I searched on wiki but still didn't find a solution to fix it.
pawn Код:
CMD:afk(playerid, params[]){
new mystring[70], Text3D:label;
GetPlayerName(playerid, pname, sizeof(pname));
if(PlayerInfo[playerid][pAfk] == -1){
format(mystring, sizeof(mystring), "*{DDDDDD}%s {00FF00}is now away from keyboard!",pname);
SendClientMessageToAll(COLOR_LIME, mystring);
TogglePlayerControllable(playerid, 0);
PlayerInfo[playerid][pAfk] = 1;
label = Create3DTextLabel("I'm away from my keyboard!", 0x00FF00FF, 30.0, 40.0, 50.0, 40.0, 0);
Attach3DTextLabelToPlayer(label, playerid, 0.0, 0.0, 0.7);
}else{
format(mystring, sizeof(mystring), "*{DDDDDD}%s {88FF00}is now back to his keyboard!",pname);
SendClientMessageToAll(0x88FF00FF, mystring);
TogglePlayerControllable(playerid, 1);
PlayerInfo[playerid][pAfk] = -1;
DeletePlayer3DTextLabel(playerid, label); //warning 213:tag mismatch
}
return 1;
}
Re: An annoying warning. - rjjj - 25.03.2012
It is happening because the variable which stores the 3D Text ID gets destroyed when the command finishes
.
Just make
label a global and array variable and use
Delete3DTextLabel to destroy the 3D Text created by
Create3DTextLabel :
pawn Код:
//Put in the top of your gamemode:
new Text3D:label[MAX_PLAYERS];
//And use this command:
CMD:afk(playerid, params[]){
new mystring[70];
GetPlayerName(playerid, pname, sizeof(pname));
if(PlayerInfo[playerid][pAfk] == -1){
format(mystring, sizeof(mystring), "*{DDDDDD}%s {00FF00}is now away from keyboard!",pname);
SendClientMessageToAll(COLOR_LIME, mystring);
TogglePlayerControllable(playerid, 0);
PlayerInfo[playerid][pAfk] = 1;
label[playerid] = Create3DTextLabel("I'm away from my keyboard!", 0x00FF00FF, 30.0, 40.0, 50.0, 40.0, 0);
Attach3DTextLabelToPlayer(label[playerid], playerid, 0.0, 0.0, 0.7);
}else{
format(mystring, sizeof(mystring), "*{DDDDDD}%s {88FF00}is now back to his keyboard!",pname);
SendClientMessageToAll(0x88FF00FF, mystring);
TogglePlayerControllable(playerid, 1);
PlayerInfo[playerid][pAfk] = -1;
Delete3DTextLabel(label[playerid]);
}
return 1;
}
I hope that i have helped
.
Re: An annoying warning. -
Bogdan1992 - 25.03.2012
Thanks