AFK Modus Frage

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
  • Hey Leute ich möchte gerne einen AFK Modus in mein Script einbauen.
    Aber ich möchte das nicht mit SendClientMessageToAll(playerid,...,...);
    machen sondern will ich das da steht das der und der Spieler in den AFK Modus gegangen ist und dann auch wieder einen /back befehl wo steht das der Spieler wieder aus dem Afk Modus zurück ist.
    Wie mach ich das?
    THX schonmal im vorraus.
    MFG
    -----
    Mario

  • In deinen AFK Befehl


    new string[64],pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pName,sizeof(pName));
    format(string,sizeof(string),"Spieler %s ist AFK gegangen",pName);
    SendClientMessageToAll(color,string);

  • so? Ist aber mit SendClientMessageToAll sonst gehts ned das Alle es Sehen^^ im Enum bei dir dann pAFK rein und die Abfrage bearbeiten
    ocmd:afk(playerid, params[])
    {
    if(SpielerInfo[playerid][pAFK]== 0)
    {
    new afk[128], pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(afk, sizeof(afk), "%s ist Abwesend.", pname); // hier kommt der Text z.B. Alpa ist AFK gegangen!
    SendClientMessageToAll(0xFFFF00AA, afk);//hier ist das der Text an alle Spieler gesendet wird und auch in welcher Farbe (das ist die Farbe Gelb)
    TogglePlayerControllable(playerid, 0);//hier wird gemacht das der Spieler nix machen kann ausser schreiben!
    SpielerInfo[playerid][pAFK] = 1;//hier wird der Spieler in als 1 gesetzt!
    }
    else
    {
    SendClientMessage(playerid,cRot,"Du bist Abwesend! um dich wieder Anwesend zu Melden Tippe: /back");
    }
    return 1;
    }
    ocmd:back(playerid, params[])
    {
    if(SpielerInfo[playerid][pAFK]== 1)
    {
    new afk[128], pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(afk, sizeof(afk), "%s ist wieder Anwesend.", pname);// hier kommt der Text z.B. Alpa ist wieder da!
    SendClientMessageToAll(0x33AA33AA, afk);//hier ist das der Text an alle Spieler gesendet wird und auch in welcher Farbe (das ist die Farbe Grün)
    TogglePlayerControllable(playerid, 1);//hier kann der Spieler sich wieder bewegen!
    SpielerInfo[playerid][pAFK] = 0;//und hier wird der spieler auf 0 gesetzt damit man aus der afk raus ist!
    }
    else
    {
    SendClientMessage(playerid,cGelb,"Du bist bereits wieder Anwesend");
    }
    return 1;
    }

  • Ja genau, ich würde aber beim Back Befehl folgende Abfrage


    if(SpielerInfo[playerid][pAFK]<= 1)
    in
    if(SpielerInfo[playerid][pAFK] == 1)
    umbenennen, da du sonst unbegrenzt "back kommen" kannst.


    Ich habe diese Fehler:


    Spoiler anzeigen
    C:\Users\Mario2\Desktop\GTA SA SERVER\0.3e 1\gamemodes\selfmad3.pwn(333) : error 017: undefined symbol "SpielerInfo"
    C:\Users\Mario2\Desktop\GTA SA SERVER\0.3e 1\gamemodes\selfmad3.pwn(333) : warning 215: expression has no effect
    C:\Users\Mario2\Desktop\GTA SA SERVER\0.3e 1\gamemodes\selfmad3.pwn(333) : error 001: expected token: ";", but found "]"
    C:\Users\Mario2\Desktop\GTA SA SERVER\0.3e 1\gamemodes\selfmad3.pwn(333) : error 029: invalid expression, assumed zero
    C:\Users\Mario2\Desktop\GTA SA SERVER\0.3e 1\gamemodes\selfmad3.pwn(333) : fatal error 107: too many error messages on one line

    Spoiler anzeigen
    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase

    Spoiler anzeigen
    4 Errors.

    Die Zeile:
    if(SpielerInfo[playerid][pAFK] == 1)