Problem beim AFK Filterscript

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
  • Hallo


    ich wollt mich mal an nem AFk Filterscript versuchen
    Es soll den User beim Befehl /afk in einen "AFK Raum" porten, dieser is in diesem Raum dann gefreezed und gemutet.
    Wenn er dann wieder /afk macht soll er wieder an seine alte Position geportet werden


    Das hab ich bis jetzt mit den Errors unten:


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/afk", cmdtext, true) == 0)
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    if (Isafk[playerid] == 1) return SendClientMessage (playerid, 0xFF0000FF, "Du bist bereits AFK!");
    return 1;
    }
    else
    if (Isafk[playerid] == 0)
    {
    SendClientMessage (playerid, 0xFF0000FF, "Du bist nun AFK!");
    SendClientMessage (playerid, 0xFF0000FF, "Benutze /afk um den AFK Modus zu verlassen!");
    Isafk[playerid] = 1;

    SetPlayerPos(playerid, 1953.4106,-2183.4663,13.5865);
    SetCameraBehindPlayer(playerid);
    TogglePlayerControllable(playerid, 0);
    mute[playerid] = 1;
    return 1;
    }
    else
    {
    Isafk[playerid] = 0;
    SendClientMessage (playerid, 0xFF0000FF, "Du bist nicht mehr AFK!");
    SetPlayerPos(playerid, x,y,z); //Zeile 106
    SetCameraBehindPlayer(playerid);
    TogglePlayerControllable(playerid, 1);
    mute[playerid] = 0;
    return 1;
    }
    return 0; //Zeile 112
    }


  • public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/afk", cmdtext, true) == 0)
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,Float:x,Float:y,Float:z);
    if (Isafk[playerid] == 1) return SendClientMessage (playerid, 0xFF0000FF, "Du bist bereits AFK!");
    return 1;
    }
    else
    if (Isafk[playerid] == 0)
    {
    SendClientMessage (playerid, 0xFF0000FF, "Du bist nun AFK!");
    SendClientMessage (playerid, 0xFF0000FF, "Benutze /afk um den AFK Modus zu verlassen!");
    Isafk[playerid] = 1;


    SetPlayerPos(playerid, 1953.4106,-2183.4663,13.5865);
    SetCameraBehindPlayer(playerid);
    TogglePlayerControllable(playerid, 0);
    mute[playerid] = 1;
    return 1;
    }
    else
    {
    Isafk[playerid] = 0;
    SendClientMessage (playerid, 0xFF0000FF, "Du bist nicht mehr AFK!");
    SetPlayerPos(playerid, x,y,z); //Zeile 106
    SetCameraBehindPlayer(playerid);
    TogglePlayerControllable(playerid, 1);
    mute[playerid] = 0;
    return 1;
    }
    return 0;
    }

    [align=center] [size=18][color=#000000][font='Courier New, Courier, mono']GTA-Reallife:[b]
    [size=12]Coming Soon
    Only for SA:MP

  • Verstehst du überhuapt, was du das geschrieben hast? Lern bitte erstmal die Struktur von if und überdenke das nochmal. Bfx hat ein schönes Tut dazu geschrieben, wird dir helfen!
    Denn schon auf Zeile 9 hast du einen Fehler und beendest den /afk Befehl.

  • Entschuldigung das ich ein Anfänger im scripten bin
    Ich weiß das man sowas nich von heute auf morgen lernt
    Deswegen wende ich mich auch hier ans Forum damit ich eben Hilfe bekomm und das ich das leichter lerne


    Ich hab mir das Tuturial von BFX gesucht und werds damit nochmal überarbeiten


    Wenigstens haste mir den Tipp gegeben das der Fehler in Zeile 9 is >.>


  • if (strcmp("/afk", cmdtext, true) == 0)
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    if (Isafk[playerid] == 1) return SendClientMessage (playerid, 0xFF0000FF, "Du bist bereits AFK!");
    if (Isafk[playerid] == 0)
    {
    SendClientMessage (playerid, 0xFF0000FF, "Du bist nun AFK!");
    SendClientMessage (playerid, 0xFF0000FF, "Benutze /afk um den AFK Modus zu verlassen!");
    Isafk[playerid] = 1;
    SetPlayerPos(playerid, 1953.4106,-2183.4663,13.5865);
    SetCameraBehindPlayer(playerid);
    TogglePlayerControllable(playerid, 0);
    }
    if(Isafk[playerid] == 1)
    {
    Isafk[playerid] = 0;
    SendClientMessage (playerid, 0xFF0000FF, "Du bist nicht mehr AFK!");
    SetPlayerPos(playerid, x,y,z);
    SetCameraBehindPlayer(playerid);
    TogglePlayerControllable(playerid, 1);
    }
    return 1;
    }


    OnPlayerText:

    public OnPlayerText(playerid, text[])
    {
    if(Isafk[playerid] == 1)
    {
    SendClientMessage(playerid,0xFF0000FF,"Während du AFK bist kannst du nich schreiben!");
    return 0;
    }
    return 1;
    }

  • Hö. Wieso fragst du, ob er AFK ist und sagst ihm, dass er bereits AFK ist, wenn du später ihn ins AFK setzen willst. Soweit kommt er gar nicht.
    [b]Falls [/b]AFK tu das [b]ansonnsten [/b]tu das
    Das musst du nur noch in PAWN umwandeln. Learning by doing ;)

  • Damit versteh ich das ganze Klammern setzen irgendwie besser
    Ein weiterer schritt in meinem Scripter werdegang :D
    Ich werd jetzt auch nochmal die Tutorials durch pauken damit ich das Klammern setzen endlich beherrsche