Zeit im Server wie im SinglePlayer

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,weiß einer wie man die Zeit auf einem Server so vergehen lassen kann wie im SinglePlayer? Also dass eine Sekunde eine Minute und eine Minute eine Stunde im Server sind.
    Danke im Voraus.

  • ja n max_players textdraw machen und halt n timer setzen^^

  • VIEL EINFACHER!!! Ist im lvdm sogar drin:
    // Bei OnPlayerSpawn
    TogglePlayerClock(playerid,1);


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

  • Ist das so nicht der Fall?
    Ansonsten musst du wirklich mit Timern und Textdraw arbeiten.


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

  • //Edit:


    So,... ich hab jetzt eine Uhr zusammengestellt, die auch funktioniert.
    Sie funktioniert nach den AM/PM Prinzip und nicht nach dem 24 Stunden Prinzip.
    Hier der Code:
    // oben im Script:
    new minute;
    new hour;
    new DayTime;
    new Text:Textdraw0;// :
    new Text:Textdraw1;// minutes
    new Text:Textdraw2;// am
    new Text:Textdraw3;// pm
    new Text:Textdraw4;// hours
    new h[2];
    forward Clock(playerid);
    // unter OnGameModeInit:
    SetTimer("Clock",1000,1);// 1sec = 1min
    //Der GameMode startet um 5:10pm (17:00)
    DayTime=17;
    hour=5;
    minute=10;
    //Clock
    // TextDraw of the ":"
    Textdraw0=TextDrawCreate(571.000000,21.000000,":");
    TextDrawAlignment(Textdraw0,0);//:
    TextDrawBackgroundColor(Textdraw0,0x000000ff);
    TextDrawFont(Textdraw0,3);//:
    TextDrawLetterSize(Textdraw0,0.699999,2.499999);
    TextDrawColor(Textdraw0,0xffffffcc);
    TextDrawSetOutline(Textdraw0,1);
    TextDrawSetProportional(Textdraw0,1);
    TextDrawSetShadow(Textdraw0,1);
    // TextDraw of the "minutes"
    Textdraw1=TextDrawCreate(583.000000,21.000000,"theMin");
    TextDrawAlignment(Textdraw1,0);
    TextDrawBackgroundColor(Textdraw1,0x000000ff);
    TextDrawFont(Textdraw1,3);
    TextDrawLetterSize(Textdraw1,0.599999,2.499999);
    TextDrawColor(Textdraw1,0xffffffcc);
    TextDrawSetOutline(Textdraw1,1);
    TextDrawSetProportional(Textdraw1,1);
    TextDrawSetShadow(Textdraw1,1);
    // TextDraw of "am"
    Textdraw2=TextDrawCreate(611.000000,31.000000,"AM");
    TextDrawAlignment(Textdraw2,0);
    TextDrawBackgroundColor(Textdraw2,0x000000ff);
    TextDrawFont(Textdraw2,3);
    TextDrawLetterSize(Textdraw2,0.499999,1.300001);
    TextDrawColor(Textdraw2,0xffffffcc);
    TextDrawSetOutline(Textdraw2,1);
    TextDrawSetProportional(Textdraw2,1);
    TextDrawSetShadow(Textdraw2,1);
    // TextDraw of "pm"
    Textdraw3=TextDrawCreate(611.000000,31.000000,"PM");
    TextDrawAlignment(Textdraw3,0);
    TextDrawBackgroundColor(Textdraw3,0x000000ff);
    TextDrawFont(Textdraw3,3);
    TextDrawLetterSize(Textdraw3,0.499999,1.300001);
    extDrawColor(Textdraw3,0xffffffcc);
    TextDrawSetOutline(Textdraw3,1);
    TextDrawSetProportional(Textdraw3,1);
    TextDrawSetShadow(Textdraw3,1);
    //TextDraw of the "hours"
    Textdraw4=TextDrawCreate(546.000000,21.000000,"h");
    TextDrawAlignment(Textdraw4,0);
    TextDrawBackgroundColor(Textdraw4,0x000000ff);
    TextDrawFont(Textdraw4,3);
    TextDrawLetterSize(Textdraw4,0.599999,2.499999);
    TextDrawColor(Textdraw4,0xffffffcc);
    TextDrawSetOutline(Textdraw4,1);
    TextDrawSetProportional(Textdraw4,1);
    TextDrawSetShadow(Textdraw4,1);
    // unter OnPlayerConnect:
    if(hour>=1&&hour<=9)
    {
    format(h,sizeof(h),"_%d",hour);
    TextDrawSetString(Textdraw4,h);
    TextDrawShowForAll(Textdraw4);
    hour++;
    }
    else if(hour==10||hour==11)
    {
    format(h,sizeof(h),"%d",hour);
    TextDrawSetString(Textdraw4,h);
    TextDrawShowForAll(Textdraw4);
    hour++;
    }
    else if(hour==12)
    {
    format(h,sizeof(h),"%d",hour);
    TextDrawSetString(Textdraw4,h);
    TextDrawShowForAll(Textdraw4);
    hour=1;
    }
    if(DayTime>=0&&DayTime<=11)
    {
    TextDrawShowForAll(Textdraw2);
    DayTime++;
    }
    else if(DayTime>=12&&DayTime<=22)
    {
    TextDrawShowForAll(Textdraw3);
    DayTime++;
    }
    else if(DayTime==23)
    {
    TextDrawShowForAll(Textdraw3);
    DayTime=0;
    }
    // irgendwo mitten in Script
    public Clock(playerid)
    {
    TextDrawShowForAll(Textdraw0);
    new theMin[2];
    if(minute==0)
    {
    format(theMin,sizeof(theMin),"0%d",minute);
    TextDrawSetString(Textdraw1,theMin);
    minute++;
    if(hour>=1&&hour<=9)
    {
    format(h,sizeof(h),"_%d",hour);
    TextDrawSetString(Textdraw4,h);
    hour++;
    }
    else if(hour==10||hour==11)
    {
    format(h,sizeof(h),"%d",hour);
    TextDrawSetString(Textdraw4,h);
    hour++;
    }
    else if(hour==12)
    {
    format(h,sizeof(h),"%d",hour);
    TextDrawSetString(Textdraw4,h);
    hour=1;
    }
    TextDrawShowForAll(Textdraw4);
    if(DayTime>=0&&DayTime<=11)
    {
    TextDrawHideForAll(Textdraw3);
    TextDrawShowForAll(Textdraw2);
    DayTime++;
    }
    else if(DayTime>=12&&DayTime<=22)
    {
    TextDrawHideForAll(Textdraw2);
    TextDrawShowForAll(Textdraw3);
    DayTime++;
    }
    else if(DayTime==23){DayTime=0;}
    SetPlayerTime(playerid,DayTime,0);
    return 0;
    }
    else if(minute>=1&&minute<10)
    {
    SetPlayerTime(playerid,DayTime,minute);
    format(theMin,sizeof(theMin),"0%d",minute);
    TextDrawSetString(Textdraw1,theMin);
    minute++;
    }
    else if(minute>=10&&minute<59)
    {
    SetPlayerTime(playerid,DayTime,minute);
    format(theMin,sizeof(theMin),"%d",minute);
    TextDrawSetString(Textdraw1,theMin);
    minute++;
    }
    else if(minute==59)
    {
    SetPlayerTime(playerid,DayTime,minute);
    format(theMin,sizeof(theMin),"%d",minute);
    TextDrawSetString(Textdraw1,theMin);
    minute=0;
    }
    TextDrawShowForAll(Textdraw1);
    return 1;
    }

    Einmal editiert, zuletzt von DuffMan ()

  • Hier die ist viel einfacher :thumbup:

    /*
    ~~~~~~~~~~~~~~~~~~~~
    Clock by [UBC]2Esae.
    © 2009
    ~~~~~~~~~~~~~~~~~~~~
    */
    #include "a_samp"
    #include "time"


    new Text:Textdraw1;
    new Text:Textdraw2;
    forward Clock(playerid);
    forward ChatLog(string[]);


    //==============================================================================
    public OnFilterScriptInit()
    {
    Textdraw1 = TextDrawCreate(469.000000,5.000000, " ");
    Textdraw2 = TextDrawCreate(551.000000,23.000000," ");
    TextDrawAlignment(Textdraw1,0);
    TextDrawAlignment(Textdraw2,0);
    SetTimer("Clock", 1000, 1);
    return 1;
    }


    //==============================================================================
    public OnPlayerConnect(playerid)
    {
    TextDrawShowForPlayer(playerid, Textdraw1);
    TextDrawShowForPlayer(playerid, Textdraw2);
    return 1;
    }

    //==============================================================================
    public Clock(playerid)
    {
    new string[256];
    new string2[256];
    new Jahr, month, Tag;
    new Stunde, Minute, Sekunde;
    getdate(Jahr, month, Tag);
    gettime(Stunde,Minute,Sekunde);
    new Monat[20];
    getdate(Jahr, month, Tag);
    if(month == 1) { Monat = "Januar"; }
    else if(month == 2) { Monat = "Februar"; }
    else if(month == 3) { Monat = "Maerz"; }
    else if(month == 4) { Monat = "April"; }
    else if(month == 5) { Monat = "Mai"; }
    else if(month == 6) { Monat = "Juni"; }
    else if(month == 7) { Monat = "Juli"; }
    else if(month == 8) { Monat = "August"; }
    else if(month == 9) { Monat = "September"; }
    else if(month == 10) { Monat = "Oktober"; }
    else if(month == 11) { Monat = "November"; }
    else if(month == 12) { Monat = "Dezember"; }
    format(string, sizeof(string), "%d %s, %d", Tag, Monat, Jahr);
    TextDrawSetString(Text:Textdraw1, string);
    format(string2, sizeof(string2), "%d:%d:%d", Stunde, Minute, Sekunde);
    TextDrawSetString(Text:Textdraw2, string2);
    }

    //==============================================================================
    public OnPlayerText(playerid, text[])
    {
    new playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername, sizeof(playername));
    new chat[256], Sekunde, Minute, Stunde;
    gettime(Stunde,Minute,Sekunde);
    format(chat, sizeof(chat), "\n[%d:%d:%d]%s: %s", Stunde, Minute, Sekunde, playername, text);
    ChatLog(chat);
    return 1;
    }

    //==============================================================================
    public ChatLog(string[])
    {
    new entry[256];
    format(entry, sizeof(entry), "%s",string);
    new File:hFile;
    hFile = fopen("Chat.log", io_append);
    fwrite(hFile, entry);
    fwrite(hFile, "\n");
    fclose(hFile);
    }

  • Wow :thumbup: . Sogar mit Datum und das alles mit der reellen Zeit.
    Nur wollte ich für meinen Server eine Uhr, bei der eine Minute in einer Sekunde vergeht und die nach dem AM/PM Prinzip funktioniert.
    Trotzdem, nice clock. :thumbup:

  • Ich habe die Funktion auch schon ausprobiert.
    Pro:
    - Es ist sehr einfach. ;)
    Kontra:
    - Alle haben eine unterschiedliche Zeit, die sich auch für einen Spieler, der z.B. Stirbt, verändert.
    - Die Uhr funktioiert auch nicht nach dem AM/PM Prinzip.