MY - Freezsystem
Ein kleies Tool, welches ihr in euer Script einfügen könnt findet ihr hier.
Mit dem MY Freezsystem habt ihr nie wieder lästige Probleme mit TooglePlayerControable.
Es gibt Gründe und nur wenn ein Spiele alle Gründe auf 0 hat, kann er sich bewegen.
Am Anfange des Scriptes:
new freezplayer[MAX_PLAYERS][100];
/*---Liste der Gründe : Bitte hier die gründe und die ID eintragen! - Maxmimal 100 Gründe.
*/
stock freez(playerid, causeid)
{
freezplayer[playerid][causeid] = 1;
TogglePlayerControllable(playerid, false);
}
stock unfreez(playerid, causeid)
{
freezplayer[playerid][causeid] = 0;
new isotherfreezcause = 1;
for (new i = 0; i < 100; i++)
{
if (freezplayer[playerid][i] == 1)
{
isotherfreezcause = 2;
}
}
if (isotherfreezcause == 1)
{
TogglePlayerControllable(playerid, true);
}
return 1;
}
stock isplayerfrozen(playerid)
{
new isotherfreezcause = 1;
for (new i = 0; i < 100; i++)
{
if (freezplayer[playerid][i] == 1)
{
isotherfreezcause = 2;
}
}
if (isotherfreezcause == 1)
{
return 0;
} else {
return 1;
}
}
Später im Script kommt OnPlayerConnect, das müsst ihr folgendes eintragen:
public OnPlayerConnect(playerid)
{
for (new i; i < 100; i++)
{
freezplayer[playerid][i] = 0;
}
}
Edit:
Achso nochmal die Befehle rausgeschrieben:
freez(playerid, cause);
--> Freezt den Spieler auf Grunde der "cause" - id
unfreez(playerid, cause);
--> Unfreezt den Spieler auf Grunde der "cause" - id, wenn alle causegründe null sind, kann er sich wieder bewegen!
isplayerfrozen(playerid)
--> erklärt sich ja von selbst... ist der Spieler gefreez wird ein true zurückgegeben, wenn nciht ein false