Freezsystem mit Gründe

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • 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 ;)

    Einmal editiert, zuletzt von MiniYoda ()