Suche Settime-Command !!

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
  • Hi Leute,


    ich suche einen Settime Command für Admins, mit dem ich beispielsweise die Tageszeit auf dem Server mit /settime 21 auf 21 Uhr und somit Nachts stellen.


    Hat sowas viell. noch jemand von euch i-wo herumschwirren ?? :)




    Danke schonmal im Vorraus !!




    Gruß
    Colin

  • hier haste eins =)


    dcmd_settime(playerid,params[])
    {
    if(!strlen(params)) return SendClientMessage(playerid, farbe, "USAGE: /settime [zeit]");
    new zeit = strval(params);
    if(zeit > 24) return SendClientMessage(playerid, farbe, "ERROR: ungültige Uhrzeit");
    SetWorldTime(zeit);
    return 1;
    }


    und bei OnPlayerCommandText noch das hier dcmd(settime,7,cmdtext);

    Einmal editiert, zuletzt von Flo_White ()

  • if(zeit > 24) return SendClientMessage(playerid, farbe, "ERROR: ungültige Uhrzeit");
    Und noch abfragen ob es über 0 ist, sonst kann man -1 eingeben und es crasht.
    if(zeit > 24 || zeit < 0) return SendClientMessage(playerid, farbe, "ERROR: ungültige Uhrzeit");

  • new tmp[128], cmd[128], idx;
    cmd = strtok(cmdtext, idx);
    if (strcmp("/settime", cmdtext, true, 8) == 0)
    {
    tmp = strtok(cmdtext, idx);
    new zeit = strval(tmp);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_YELLOW, "USAGE: /settime [zeit]");
    if(zeit > 24 || zeit < 0) return SendClientMessage(playerid, farbe, "ERROR: ungültige Uhrzeit");
    SetWorldTime(zeit);
    return 1;
    }


    strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }


    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }

  • if(strcmp(cmdtext, "/settime", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) {
    SendClientMessage(playerid, COLOR_WHITE,"Benutze: /settime [Uhrzeit]");
    return 1;
    }
    new Time = strval(tmp);
    if(Time < 0 || Time > 24) { SendClientMessage(playerid, COLOR_GREY, " Wähle eine Nummer zwischen 0 und 24 !"); return 1; }
    format(string, sizeof(string), "* Du hast die Zeit auf %d gesetzt.", Time);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    SetWorldTime(Time);

    }
    return 1;
    }

  • ganz unten strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }


    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }


    unter OnPlayerCommandText


    new tmp[128], cmd[128], idx;
    cmd = strtok(cmdtext, idx);
    if (strcmp("/settime", cmdtext, true, 8) == 0)
    {
    tmp = strtok(cmdtext, idx);
    new zeit = strval(tmp);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_YELLOW, "USAGE: /settime [zeit]");
    if(zeit > 24 || zeit < 0) return SendClientMessage(playerid, farbe, "ERROR: ungültige Uhrzeit");
    SetWorldTime(zeit);
    return 1;
    }

  • Ok, also ich hatte massig Errors, habe sie aber jetzt auf 3 heruntergestuft :)


    C:\Program Files\GTA San Andreas\Server\filterscripts\Zadmin.pwn(1685) : error 047: array sizes do not match, or destination array is too small
    C:\Program Files\GTA San Andreas\Server\filterscripts\Zadmin.pwn(1848) : error 021: symbol already defined: "strtok"
    C:\Program Files\GTA San Andreas\Server\filterscripts\Zadmin.pwn(1863) : error 047: array sizes do not match, or destination array is too small
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    3 Errors.



    Folgendermaßen sieht des bei mir aus:


    if (strcmp("/settime", cmdtext, true, 8) == 0)
    {
    new tmp[128];
    tmp = strtok(cmdtext, idx); /////////Zeile: 1685
    new zeit = strval(tmp);
    if(!strlen(tmp)) return SendClientMessage(playerid, yellow, "USAGE: /settime [zeit]");
    if(zeit > 24) return SendClientMessage(playerid, yellow, "ERROR: Invalid hour");
    SetWorldTime(zeit);
    return 1;
    }
    //dcmd(settime,7,cmdtext);
    return 0;
    }


    strtok(const string[], &index)
    { //////////Zeile 1848
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }


    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result; ///////// Zeile 1863
    }



    Wer weiß Hilfe ?? :rolleyes:





    Gruß
    Colin

  • ich gehe mal davon aus, dass du Nachrichten selber senden kannst :)



    Erweist sich gerade bissl als schwierig, kannst du mir sagen wie ich da rein bekomm, dass bei den Playern dann angezeigt wird, dass die Zeit von einem Admin auf ** Uhr gestellt wurde ??


    if(strcmp(cmdtext,"/settime",true,8)==0) {
    if(strlen(cmdtext[9])) {
    new zeit=strval(cmdtext[9]);
    if(GetPlayerLevel(playerid) < 1) return SendClientMessage(playerid, red, "Dein Level ist für diesen Command nicht hoch genug !!");
    if(zeit>=0 && zeit<=23) {
    SetWorldTime(zeit);}}
    return 1;



    Gruß
    Colin

  • if(strcmp(cmdtext,"/settime",true,8)==0) {
    if(strlen(cmdtext[9])) {
    new zeit=strval(cmdtext[9]);
    if(GetPlayerLevel(playerid) < 1) return SendClientMessage(playerid, red, "Dein Level ist für diesen Command nicht hoch genug !!");
    if(zeit>=0 && zeit<=23) {
    new name[MAX_PLAYER_NAME], s[80];
    GetPlayerName(playerid,name,sizeof(name));
    format(s,sizeof(s),"%s hat die Uhr auf %d gestellt",name,zeit);
    SendClientMessageToAll(FARBE,s);
    SetWorldTime(zeit);}}
    return 1;