23.03.2015, 02:16
The textdraw and progressbar doesn't destroy after i leave the area
Код:
forward MineTimer(playerid);
public MineTimer(playerid)
{
new string[124];
new Count2;
for(new i = 0; i < MAX_PLAYERS; i++)
if(IsPlayerConnected(i))
{
if(IsPlayerInRangeOfPoint(i, 2.0, MinePos[playerid][0], MinePos[playerid][1], MinePos[playerid][2]))
{
if(GetPlayerState(i) != PLAYER_STATE_WASTED)
{
CreateExplosion(MinePos[i][0], MinePos[i][1], MinePos[i][2], 7, 30.0);
SendClientMessage(i,COLOR_INDIANRED,"You got blown away by a land mine.");
DestroyObject(MineObject);
DeletePlayer3DTextLabel(i,MineLabel[i]);
MinePlaced[i] = 0;
KillTimer(MineTimerUpdate[i]);
}
}
else if(IsPlayerInRangeOfPoint(i, 2.0, MinePos[playerid][0], MinePos[playerid][1], MinePos[playerid][2]) && GetPlayerState(i) == PLAYER_STATE_DRIVER)
{
if(GetPlayerState(i) != PLAYER_STATE_WASTED)
{
CreateExplosion(MinePos[i][0], MinePos[i][1], MinePos[i][2], 7, 30.0);
SendClientMessage(i,COLOR_INDIANRED,"Your vehicle touched a land mine.");
DestroyObject(MineObject);
DeletePlayer3DTextLabel(i,MineLabel[i]);
MinePlaced[i] = 0;
KillTimer(MineTimerUpdate[i]);
}
}
else if(IsPlayerInRangeOfPoint(i, 10.0, MinePos[playerid][0], MinePos[playerid][1], MinePos[playerid][2]))
{
Count2++;
format(string,sizeof(string),"!DANGER ZONE!\nWatch your steps");
UpdatePlayer3DTextLabelText(i,MineLabel[i], COLOR_RED,string);
MineBar[i] = CreatePlayerTextDraw(i, 134.871246, 302.916717, "usebox");
PlayerTextDrawLetterSize(i, MineBar[i], 0.000000, 1.639824);
PlayerTextDrawTextSize(i, MineBar[i], 39.698383, 0.000000);
PlayerTextDrawAlignment(i, MineBar[i], 1);
PlayerTextDrawColor(i, MineBar[i], 0);
PlayerTextDrawUseBox(i, MineBar[i], true);
PlayerTextDrawBoxColor(i, MineBar[i], -570405291);
PlayerTextDrawSetShadow(i, MineBar[i], 0);
PlayerTextDrawSetOutline(i, MineBar[i], 0);
PlayerTextDrawFont(i, MineBar[i], 0);
PlayerTextDrawShow(i, MineBar[i]);
MineBar2[i] = CreatePlayerProgressBar(i, 45.000000, 305.000000, 88.000000, 12.000000, -16447233, 10.000000, BAR_DIRECTION_RIGHT);
ShowPlayerProgressBar(i,MineBar2[i]);
SetPlayerProgressBarValue(i, MineBar2[i], Count2);
}
else if(!IsPlayerInRangeOfPoint(i, 10.0, MinePos[playerid][0], MinePos[playerid][1], MinePos[playerid][2]))
{
format(string,sizeof(string),"MINE HERE");
UpdatePlayer3DTextLabelText(i,MineLabel[i], COLOR_INDIANRED, string);
PlayerTextDrawDestroy(i,MineBar[i]);
DestroyPlayerProgressBar(i,MineBar2[i]);
}
}
return 1;
}
Код:
CMD:placemine(playerid,params[])
{
new Float:MineX,Float:MineY,Float:MineZ;
new Mine[128],sec;
new TMine[128];
if(MinePlaced[playerid] == 1 || TimeBombPlaced[playerid] == 1)
return SendClientMessage(playerid,COLOR_INDIANRED,"You have already place a mine or bomb somewhere.");
if(GetPlayerState(playerid) == PLAYER_STATE_WASTED)
return SendClientMessage(playerid,COLOR_INDIANRED,"You dead bruh.");
if(sscanf(params,"s[128]",Mine,TMine))
return SendClientMessage(playerid,COLOR_PAPAYAWHIP,"USAGE: /placemine [Mine]/[TMine]");
else if(!strcmp(Mine, "Mine", true))
{
GetPlayerPos(playerid,MineX,MineY,MineZ);
MineObject = CreateObject(1252,MineX,MineY,MineZ-1,0.0, 0.0, 96.0);
MinePos[playerid][0] = MineX;
MinePos[playerid][1] = MineY;
MinePos[playerid][2] = MineZ;
SendClientMessage(playerid,COLOR_PURPLE,"You have placed a mine.");
MinePlaced[playerid] = 1;
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
MineLabel[i] = CreatePlayer3DTextLabel(i,"MINE HERE",COLOR_INDIANRED, MineX, MineY, MineZ,20.0);
MineTimerUpdate[i] = SetTimerEx("MineTimer", 1000, true,"i",i);
}
}
}

