Wetter Befehl

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
  • Hab mal kurz nen Wetter Befehl, nur ein kurzer Versuch. Wenn ich Wetterid 0 eingebe, wechselt das Wetter. Wenn ich Wetterid 1-unendlich eingebe, kommt die Meldung:
    ocmd:wetter(playerid,params[])
    {
    if(!IstSpielerEinAdmin(playerid,3000)) return 1;
    new wetterid = strval(params);
    if(sscanf(params,"u",wetterid)) return SendClientMessage(playerid,Gelb,"Benutzung: /wetter [WetterID]");
    if(wetterid <0) return SendClientMessage(playerid,Gelb,"Wetterid muss zwischen 0 und 45 sein!");
    if(wetterid >45) return SendClientMessage(playerid,Gelb,"Wetterid muss zwischen 0 und 45 sein!");
    SetWeather(wetterid);
    return 1;
    }
    Dasif(wetterid <0 ....);
    hab ich doppelt, wenn ich es so schreibe
    if(wetterid <0 || >45) ....
    kommen diese Errors:
    C:\Dokumente und Einstellungen\Surfer\Eigene Dateien\Script GTA\Samp 0.3e Aktuelles Script\gamemodes\Version0.4.1.pwn(1861) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\Surfer\Eigene Dateien\Script GTA\Samp 0.3e Aktuelles Script\gamemodes\Version0.4.1.pwn(1861) : warning 215: expression has no effect
    C:\Dokumente und Einstellungen\Surfer\Eigene Dateien\Script GTA\Samp 0.3e Aktuelles Script\gamemodes\Version0.4.1.pwn(1861) : error 001: expected token: ";", but found ")"
    C:\Dokumente und Einstellungen\Surfer\Eigene Dateien\Script GTA\Samp 0.3e Aktuelles Script\gamemodes\Version0.4.1.pwn(1861) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\Surfer\Eigene Dateien\Script GTA\Samp 0.3e Aktuelles Script\gamemodes\Version0.4.1.pwn(1861) : fatal error 107: too many error messages on one line
    Im wesentlichen geht es mir nur um den Fehler mit ||

    Greetz

  • Ich habs so gemacht:


    if(strcmp(cmd, "/wetter", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pAdmin] < 5)
    {
    SendClientMessage(playerid, COLOR_GRAD1, "** Du bist nicht befugt, diesen Befehl zu benutzen!");
    return 1;
    }

    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_WHITE, "Benutzung: /wetter[weatherid]");
    return 1;
    }
    new weather;
    weather= strval(tmp);
    if(weather< 0||weather> 45) { SendClientMessage(playerid, COLOR_GREY, " Benutze die Wetter ID0 - 45!"); return 1; }
    SetWeather(weather);
    format(string, sizeof(string), "[ADMIN] %shat das Wetter auf ID %d gestellt.", sendername,weather);
    ABroadCast(COLOR_LIGHTRED,string, 5);
    format(string, sizeof(string), "Wetter wurd auf %d umgestellt",weather);
    SendClientMessageToAll(COLOR_NICERED,string);
    DefaultWeather = weather;
    new y, m, d;
    new h,mi,s;
    getdate(y,m,d);
    gettime(h,mi,s);
    format(string,sizeof(string), "(%d/%d/%d)[%d:%d:%d] %s hat das Wetter auf %d eingestellt",d,m,y,h,mi,s,sendername,weather);
    AdminLog(string);
    }
    return 1;
    }

    Mit freundlichen Grüßen



  • ocmd:wetter(playerid,params[]) {
    if(!IstSpielerEinAdmin(playerid,3000)) return 1;
    new wetterid; //strval ist eig nicht nötig, da du eh sscanf verwendest
    if(sscanf(params,"d",wetterid)) return SendClientMessage(playerid,Gelb,"Benutzung: /wetter [WetterID]"); //u Parameter ist für Spieler
    if(wetterid <0 || wetterid >45) return SendClientMessage(playerid,Gelb,"Wetterid muss zwischen 0 und 45 sein!");
    SetWeather(wetterid);
    return 1;
    }


    so sollte der Befehl ohne Probleme funktionieren. Aber ich würde nur Wetterid 0 - 20 nehmen, da die darüberliegenen meist Fehlerhaft sind (vorallem im dunkeln)