Abfragen, ob der Spieler gefreezt ist?

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
  • Heyho Experten, undzwar wollte ich wissen,
    wie man abfragen kann, ob der Spieler bereits gefreezt ist,
    weil bei mir kommt irgendwie immer ein Error? :pinch:



    if(TogglePlayerControllable(pID)== 0)return SendClientMessage(playerid,0x4C4EF2FF,string);


    Danke im Vorraus!:P

  • //Oben im Script:
    new bool:freeze_var[MAX_PLAYERS];


    //In deinem Freeze Befehl
    TogglePlayerControllable(playerid, 0);
    freeze_var[playerid] = true;


    //Da wo er entfreezt wird
    TogglePlayerControllable(playerid, 1);
    freeze_var[playerid] = false


    //Und die Abfrage
    if(freeze_var[playerid] == true) return SendClientMessage(playerid,-1,"Du bist gefreezt !");


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Also ich wollte das so haben, das wenn ein Admin eingibt, /freeze 13, und der Spieler bereits gefreezt ist,
    dass dann die SendClientMessage(playerid,ROT,"Der Spieler ist bereits gefreezt"); kommt, geht das nicht einfacher? :P

  • new bool:freezed[MAX_PLAYERS] = false;


    COMMAND:freeze(playerid,params[])
    {
    new pID;
    if(sscanf(params,"u",pID)) return 0;
    if(freezed[pID] == false) {
    TogglePlayerControllable(pID,0);
    freezed[pID] = true;
    }
    else
    {
    SendClientMessage(playerid,ROT,"Der Spieler ist bereits gefreezt");
    return 1;
    }
    return 1;
    }


    COMMAND:freeze(playerid,params[])
    {
    new pID;
    if(sscanf(params,"u",pID)) return 0;
    if(freezed[pID] == true) {
    TogglePlayerControllable(pID,1);
    freezed[pID] = false;
    }
    else
    {
    SendClientMessage(playerid,ROT,"Der Spieler ist nicht gefreezt");
    return 1;
    }
    return 1;
    }

  • Ist das nicht viel schwerer?


    Ich verstehe das mit dem Hooking auch nicht


    Naja, es ist schon schwerer als 1ne Variable zu erstellen, aber es ist schneller und funktioniert halt besser :)


    Aber natürlich ist es für Neulinge nichts...sry mein Fehler, aber er hat nach einer bessern Möglichkeit gefragt :P


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Benutz einfach einen Stock zum Freezen:

    new bool:pFreezed[MAX_PLAYERS];
    stock Freeze(playerid, bool:on = false) //(wichtig: hab es bei mir andersrum als bei TogglePlayerControllable, also zum freezen auf true!)
    {
    switch(on)
    {
    case false: TogglePlayerControllable(playerid, true), pFreezed[playerid] = false; //entfreeze
    case true: TogglePlayerControllable(playerid, false), pFreezed[playerid]= true; //freeze
    }
    }


    stock IsPlayerFreezed(playerid)
    {
    if(pFreezed[playerid] == true)
    return 1; //returnt 1 wenn freezed
    else
    return 0; //returnt 0 wenn nicht
    }