IstSpielerInReallife = Falsch?

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,
    Habe eine Frage.
    Undzwar habe ich ein Befehl gemacht:
    if(strcmp("/test2",cmdtext,true,6)==0)
    {
    if(IstSpielerInReallife[playerid] == 1)
    {
    SendClientMessage(playerid,COLOR_BLUE,"war eh nur ein test...");
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist nicht im Reallife Gamemode! (/menu)");
    }
    return 1;
    }


    Aber wenn ich Reallife beitrete, mache ich /test2 und da steht "Du bist nicht im Freeroam Gamemode" Hää?
    Das ist mein anderer Test Befehl:
    if (strcmp("/test", cmdtext, true, 5) == 0)
    {
    if(IstSpielerInFreeroam[playerid] == 1)
    {
    SendClientMessage(playerid,COLOR_BLUE,"war nur ein test...");
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist gerade nicht in der Freeroam Welt!");
    }
    return 1;
    }


    Ich habe alles eingestellt, auch mit IstSpielerInReallife[playerid] = 1;
    Kann mir jemand helfen?


    Reallife stocks:
    stock RLAccount(playerid,key[])
    {
    new RSpielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(RSpielerdatei,sizeof(RSpielerdatei),"/RAccounts/%s.txt",name);
    if(!strcmp(key,dini_Get(RSpielerdatei,"Passwort"),true))
    {
    RSpielerLaden(playerid);
    SendClientMessage(playerid,COLOR_PINK,"Du hast dich erfolgreich auf Media Reallife eingeloggt.");
    IstSpielerInReallife[playerid] = 1;
    SetPlayerArmour(playerid,0);
    SetPlayerHealth(playerid,100);
    SetPlayerVirtualWorld(playerid,0);
    TogglePlayerControllable(playerid,1);
    RSpielerSpeichern(playerid);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Gib bitte erneut dein Reallife Passwort ein.");
    return 1;
    }
    }


    stock RRAccount(playerid,key[])
    {
    new RSpielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(RSpielerdatei,sizeof(RSpielerdatei),"/RAccounts/%s.txt",name);
    dini_Create(RSpielerdatei);
    dini_Set(RSpielerdatei,"Passwort",key);
    SetPlayerScore(playerid,1);
    SendClientMessage(playerid,COLOR_PINK,"Du hast dich erfolgreich auf Media Reallife registriert.");
    IstSpielerInReallife[playerid] = 1;
    //Hier kommt setplayerpos etc....
    SetPlayerArmour(playerid,0);
    SetPlayerHealth(playerid,100);
    SetPlayerVirtualWorld(playerid,0);
    TogglePlayerControllable(playerid,1);

    }


    danke

  • Das liegt daran, dass du nur die ersten 5 chars prüfst.


    if (strcmp("/test", cmdtext, true, 5) == 0)
    zu:
    if(strcmp("/test", cmdtext, true) == 0)


    Wenn du Befehler mit Parametern machen willst, empfehle ich dir dcmd, ocmd, oder sonstige.
    dcmd: http://forum.sa-mp.com/showthread.php?t=48239
    ocmd: [ INCLUDE ] ocmd 2.1.1 [ Update 3.11.2013 ]



    @ElliotH: Das wird einen Fehler geben, da ==0 bereits da steht. ! ist das gleiche wie ==0.