Beiträge von [NWO]Nero


    Mit den Toren gebe ich dir durchaus Recht, Anfangs hatte ich '/tor' benutzt und habe mir ständig die Front
    vom Auto beim eingeben kaputt gemacht, weil ich nicht komplett stehen geblieben bin, was einfach nervig ist.
    Dabei sind dabei Tasten anstatt CMD's vollkommen sinnig, ebenso ist es beim einschalten des Motors und des Lichts eines Fahrzeuges.


    Beim Ausrüsten ist es eine Sache der Empfindung des Scripters. Ich finde zum Beispiel, dass Tasten
    hierbei unnötig bezüglich der bequemheit der Spieler, aber dennoch nicht sinnfrei sind.
    Man kann es aber immernoch so ändern, dass es über Tasten aufgerufen werden kann.



    Es hatte aber auch einen Grund, dass ich den Thread den Titel "Nennt mir bitte unerlässliche Befehle!" gegeben habe.. :P

    • /equip - Ausrüstung für alle Fraks
    • /tor - Tore öffnen (alle Fraks um Befehle zu sparen)

    /equip - Das habe ich mir auch schonmal gedacht, dann habe ich es aber so gemacht, dass man sich mit '/waffen' über 'OnPlayerModelSelection' immer ein eigenes "Waffenpack" zusammenstellen kann.
    /tor - Hatte ich Anfangs, doch über eine Taste (zb.: "z") ist das OnFoot & InVehicle wirklich schneller und bequemer.. :D



    Danke für die schnelle antwort! :love:

    Befehle ih bah!
    Wenn möglich vermeiden.
    Am besten Tasten benutzen, noch besser -> Eine Taste benutzen.
    Denk an andere Spiele .. wie benutzt du objekte in vielen Spielen ? Richtig, mit 'E'.
    Also wäre es logisch auch in SAMP Tasten zu benutzen um Menus zu öffnen in denen man dann via Maus was einstellen kann ohne CMDs zu benutzen die sich eh keiner merken kann.


    MfG .K'


    Ist halt nur blöd wenn man zb. den /s(chreien)-Befehl hat und jedesmal dafür in einem Menü rein muss.



    Man muss sich ja eigentlich nicht alle Befehle merken, nur die wichtigsten.
    Mit /cmdhelp kann man ja alle Befehle auflisten lassen.

    Hallo Leute,


    ich frage mich momentan welche Befehle es für RL-Server gibt, die eigentlich unerlässlich sind.


    Also Befehle wie:
    - /gov,
    - /news,
    - /goto,
    - /gethere,
    - /f,
    - /a,
    - /s,
    - /heal,
    - /armour,
    - /members,
    - /bank,
    - /giverang,
    - /makeleader,
    - /makeadmin,
    - /kick,
    - /ban
    usw.



    Mir fallen derzeit keine ein, daher frage ich euch.
    Es wäre nett wenn ihr mir Befehle nennt (Zweck der jeweiligen Befehle wäre nützlich).


    Egal ob Adminbefehl, Fraktionsbefehl oder allgemeine Befehle!



    Vielen dank vorab für eure Hilfe




    Gruß
    AlphaGen!

    Hallo Leute,


    ich habe ein kleines Problem mit einem 3DTextLabel in einem Timer.
    Und zwar funktioniert eigentlich alles wie es gewünscht ist, außer dass scheinbar
    unendlich viele 3DTextLabel erstellt werden und das Spiel dadurch nach einiger Zeit laggt.


    Daher lasse die 3DTextLabel immer im Timer zerstören und direkt danach wieder erstellen,
    das Problem was dabei allerdings entsteht, ist dass man das auch InGame sieht.
    Die 3DTextLabel "Blinken" quasi auf und das stört ziehmlich.


    Nun frage ich mich ob es nicht eine andere möglichkeit gibt um zu verhindern, dass unendlich viele 3DTextLabel erstellt werden.


    Falls es von nöten ist, hier die Zeilen:
    forward SpielerUpdate(i); public SpielerUpdate(i)
    {
    new playerid=i;
    for(new op = 0; op < MAX_PLAYERS; op++)
    if(IsPlayerConnected(playerid))
    {
    if(undercover[playerid] == 1)
    {
    new string[128];
    if(SpielerInfo[op][pAdmin] <= 1)
    {
    ShowPlayerNameTagForPlayer(op, playerid, 0);
    format(string, sizeof(string), "Agent: %d\nFBI",SpielerInfo[playerid][pAgentID]);
    DeletePlayer3DTextLabel(playerid,agentid);
    agentid = CreatePlayer3DTextLabel(op,string,GRAU,0,0,0,30.0,playerid,INVALID_VEHICLE_ID);
    }
    else if(SpielerInfo[op][pAdmin] >= 2)
    {
    ShowPlayerNameTagForPlayer(op, playerid, 1);
    format(string, sizeof(string), "UNDERCOVER\n\nAgent der\nFBI");
    DeletePlayer3DTextLabel(playerid,agentid);
    agentid = CreatePlayer3DTextLabel(op,string,GRAU,0,0,0,30.0,playerid,INVALID_VEHICLE_ID);
    }
    }
    else if(undercover[playerid] == 0)
    {
    ShowPlayerNameTagForPlayer(op, playerid, 1);
    DeletePlayer3DTextLabel(playerid,agentid);
    }
    }
    return 1;
    }


    Es wäre extrem nett, wenn mir jemand bei diesem Problem helfen würde.




    Gruß
    AlphaGen!

    Hallo Leute,


    ich habe ein Problem mit meinem Undercover-Abschnitt in meinem SpielerUpdate-Timer.
    Und zwar sollen Admins einen anderen 3D-Text an einem Undercover-Agenten sehen als normale Spieler.


    Beispiel:
    Ein FBI-Agent ist Undercover (Anstatt des Namen sehen normale Spieler die Agent-ID über den Kopf des Agenten, siehe 'string') und macht seine Arbeit.
    Nun joint ein normaler Spieler auf den Server und der Timer "SpielerUpdate" sorgt dafür, dass er den Namen des FBI-Agenten nicht sehen kann, sondern das was im string steht.
    Als nächstes joint ein Admin, Level 2 (oder höher) auf den Server und der Timer "SpielerUpdate" sorgt dafür, dass er den Namen und den string des FBI-Agenten sieht.


    Momentan sehen normale Spieler bei einem Undercover-Agenten nichts (keinen Namen, keinen 3D-Text-Label) und
    Admins ab Adminlevel 2 sehen an einem Undercover-Agenten alles, Namen und beide 3D-Text-Label.
    Zudem Laggt der Server sobald man einen Undercover-Agenten, bzw. seinen String sieht.


    Ich versuche so wenig Timer wie es nur geht zu nutzen und wenn möglich alles in einem Timer zu packen.


    Die Zeilen:

    new undercover[MAX_PLAYERS], Text3D:agentid;



    public OnGameModeInit()
    {
    for(new i; i < MAX_PLAYERS; i ++)
    {
    SetTimerEx("SpielerUpdate", 1009, 1, "i", i);
    }
    return 1;
    }



    forward SpielerUpdate(i); public SpielerUpdate(i)
    {
    new playerid=i, State = GetPlayerState(playerid);
    //Anfang-----------------------------------------------------------------------------------------------------------------------------------------------Anfang
    for(new op = 0; op < MAX_PLAYERS; op++) //Die Schleife um den Namen des Agenten für andere Auszublenden.
    if(IsPlayerConnected(playerid)) //Wenn der Spieler auf den Server joint, egal ob er schon eingeloggt ist oder nicht.
    {
    if(undercover[playerid] == 1) //Wenn der Agent Undercover ist.
    {
    new string[128];
    if(SpielerInfo[op][pAdmin] <= 1) //Abfrage für normale Spieler.
    {
    ShowPlayerNameTagForPlayer(op, playerid, 0); //Blendet den Namen des Agenten für Normale Spieler aus.
    format(string, sizeof(string), "Agent: %d\nFBI",SpielerInfo[playerid][pAgentID]); //Gibt die Agent-ID des Agenten wieder.
    agentid = Create3DTextLabel(string, GRAU, 30.0, 40.0, 50.0, 30.0, 0); //Erstellt einen 3D-Text-Label den NUR normale Spieler sehen (Admins ab Adminlevel 2 also nicht.).
    Attach3DTextLabelToPlayer(agentid, playerid, 0.0, 0.0, 0.0); //Klatscht den 3D-Text-Laben an den Agenten.
    }
    else if(SpielerInfo[op][pAdmin] >= 2) //Abfrage für Admins ab Level 2.
    {
    ShowPlayerNameTagForPlayer(op, playerid, 1); //Blendet den Namen des Agenten für Admins ab Adminlevel 2 ein.
    format(string, sizeof(string), "UNDERCOVER\n\nAgent des\nFBI's"); //Informiert den Admin, dass der Spieler ein Undercover-Agent ist.
    agentid = Create3DTextLabel(string, GRAU, 30.0, 40.0, 50.0, 30.0, 0); //Erstellt einen 3D-Text-Label den NUR Admins ab Adminlevel 2 sehen.
    Attach3DTextLabelToPlayer(agentid, playerid, 0.0, 0.0, -0.5); //Klatscht den 3D-Text-Laben an den Agenten.
    }
    }
    else if(undercover[playerid] == 0) //Wenn der Agent nicht Undercover ist.
    {
    ShowPlayerNameTagForPlayer(op, playerid, 1); //Blendet den Namen des Agenten für jeden ein.
    Delete3DTextLabel(agentid); //Löscht den 3D-Text-Label.
    }
    }
    //Ende-----------------------------------------------------------------------------------------------------------------------------------------------Ende
    if(IsPlayerConnected(playerid) && GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    if(State == PLAYER_STATE_DRIVER)
    {
    new vehicleid = GetPlayerVehicleID(playerid), string[32]; format(string,sizeof(string),"%s" ,VehiclesName[GetVehicleModel(vehicleid)-400]); TextDrawSetString(TachoCarName[playerid], string); TextDrawShowForPlayer(playerid, TachoCarName[playerid]);
    new Float:health; GetVehicleHealth(GetPlayerVehicleID(playerid), health);
    new vMototStatus[4]; format(vMototStatus,sizeof(vMototStatus),".");
    if(motor[vehicleid] == 0) { TextDrawSetString(TachoMotorStatusAus[playerid], vMototStatus); TextDrawShowForPlayer(playerid, TachoMotorStatusAus[playerid]); TextDrawHideForPlayer(playerid, TachoMotorStatusAn[playerid]); }
    else if(motor[vehicleid] == 1) { TextDrawSetString(TachoMotorStatusAn[playerid], vMototStatus); TextDrawShowForPlayer(playerid, TachoMotorStatusAn[playerid]); TextDrawHideForPlayer(playerid, TachoMotorStatusAus[playerid]); }
    if(health == 1000) { new vZustand[13]; format(vZustand,sizeof(vZustand),"Zustand: %0.f",health/10); TextDrawSetString(TachoZustand[playerid], vZustand); TextDrawShowForPlayer(playerid, TachoZustand[playerid]); }
    else { new vZustand[14]; format(vZustand,sizeof(vZustand),"Zustand: %0.f",health/10); TextDrawSetString(TachoZustand[playerid], vZustand); TextDrawShowForPlayer(playerid, TachoZustand[playerid]); }
    new Float:Speed; GetVehicleSpeed(vehicleid, Speed);
    if(Speed < 10) { new Sspeed[11]; format(Sspeed,sizeof(Sspeed),"Geschw.: %0.f",Speed); TextDrawSetString(TachoKMH[playerid], Sspeed); TextDrawShowForPlayer(playerid, TachoKMH[playerid]); }
    else if(Speed < 100) { new Sspeed[12]; format(Sspeed,sizeof(Sspeed),"Geschw.: %0.f",Speed); TextDrawSetString(TachoKMH[playerid], Sspeed); TextDrawShowForPlayer(playerid, TachoKMH[playerid]); }
    else if(Speed < 1000) { new Sspeed[13]; format(Sspeed,sizeof(Sspeed),"Geschw.: %0.f",Speed); TextDrawSetString(TachoKMH[playerid], Sspeed); TextDrawShowForPlayer(playerid, TachoKMH[playerid]); }
    new vZP[2]; format(vZP,sizeof(vZP),"%%"); TextDrawSetString(TachoZustandProzent[playerid], vZP); TextDrawShowForPlayer(playerid, TachoZustandProzent[playerid]);
    new SsKMH[4]; format(SsKMH,sizeof(SsKMH),"mph"); TextDrawSetString(TachoKMHKMH[playerid], SsKMH); TextDrawShowForPlayer(playerid, TachoKMHKMH[playerid]);
    }
    else
    {
    TextDrawHideForPlayer(playerid,TachoKMH[playerid]); TextDrawHideForPlayer(playerid,TachoKMHKMH[playerid]); TextDrawHideForPlayer(playerid,TachoCarName[playerid]); TextDrawHideForPlayer(playerid,TachoZustand[playerid]); TextDrawHideForPlayer(playerid,TachoZustandProzent[playerid]);
    }
    new hour, minute, second, clockstr[15], Year, Month, Day, datestr[15]; gettime(hour,minute,second); getdate(Year, Month, Day);
    if(minute<10 && second<10)format(clockstr,sizeof clockstr,"%d:0%d:0%d",hour,minute,second);
    else if(minute<10)format(clockstr,sizeof clockstr,"%d:0%d:%d",hour,minute,second);
    else if(second<10)format(clockstr,sizeof clockstr,"%d:%d:0%d",hour,minute,second);
    else format(clockstr,sizeof clockstr,"%d:%d:%d",hour,minute,second); TextDrawSetString(ServerUhr,clockstr); SetWorldTime(hour);
    if(Month<10)format(datestr,sizeof datestr,"%d.0%d.%d",Day,Month,Year); else format(datestr,sizeof datestr,"%d.%d.%d",Day,Month,Year); TextDrawSetString(ServerDatum,datestr);
    TextDrawShowForPlayer(playerid,ServerUhr);
    TextDrawShowForPlayer(playerid,ServerDatum);
    if(PlayerCuffed[playerid] != 0) { if(PlayerCuffedTime[playerid] != 0) { PlayerCuffedTime[playerid] -= 1; } else { PlayerCuffed[playerid] = 0; } }
    if(tazerzeit[playerid] != 0) { if(TazerzeitCheck[playerid] != 0) { TazerzeitCheck[playerid] -= 1; } else { tazerzeit[playerid] = 0; } }
    }
    return 1;
    }


    Es wäre echt nett, wenn mir jemand helfen könnte!




    Gruß
    AlphaGen!


    Mhmm... jetzt tut sich irgendwie garnicht mehr..
    Wenn ich '/makeleader' eingebe, passiert überhaupt nichts.

    Damals kam immer Stargate / Stargate Atlantis auf RTL2, das habe ich immer sehr gern geguckt.
    Stargate Universe ging zwar auch noch, viel mehr hätte ich mir aber fortsetzungen von Stargate Atlantis gewünscht.


    Ansonsten:
    How i meet ur Mother,
    Two and a half men,
    Supernatural,
    Dr House,

    Scrubs,
    Monk (Auch wenns langsam langweilig wird),
    The Big Bang Theorie,
    Broken Girls,
    Malcom Mittendrin,
    Reaper - Ein Teuflischer Job,
    Spartacus,
    Fringe,
    Falling Skies,
    Game of thrones..


    Diese ganzen CSI Sendungen, oder wie sie auch heißen, sind nicht so mein Ding.

    Hallo Leute,


    ich habe ein kleines Problem, und zwar habe ich in meinen Befehlen einen kleinen Feher.
    Zum Beispiel mein '/makeleader'-Befehl.
    Es funktioniert alles, bis auf das, die Namen nicht richtig wiedergegeben werden.


    Beispiel:
    Admin Peter_Lustig (ID:0) will den Spieler Lars (ID:1) mit '/makeleader 1 6" zum leader der Fraktion 6 machen.
    Alles funktioniert eigentlich, bis auf dass Admin Peter_Lustig folgende Nachrichten bekommt:
    "[06:33:09] Du hast Peter_Lustig zum Leader der Fraktion 'Gummibärenbande' gemacht!" <- Spielernachricht
    "[06:33:09] Peter_Lustig hat Peter_Lustig zum Leader der Fraktion 'Gummibärenbande' gemacht!"
    <- Adminnachricht
    Und Spieler Lars bekommt folgende Nachricht:
    "[06:33:09] Peter_Lusitg hat dich zum Leader der Fraktion 'Gummibärenbande' gemacht!" <- Spielernachricht


    Nun heißt es, dass der Admin sich lt. Chat selbst zum Leader der Gummibärenbande gemacht hat, was aber lt. Scriptzeile (Zeile 25, string1) nicht stimmt.


    dcmd_makeleader(playerid,params[]) //Adminbefehl
    {
    new pID, fID, string[128], string1[128], string2[128], frakname[64], aname[MAX_PLAYER_NAME], name[MAX_PLAYER_NAME]; GetPlayerName(playerid,aname,sizeof(aname)); GetPlayerName(pID,name,sizeof(name));
    if(SpielerInfo[playerid][pPerso] != 1) return 1;
    if(SpielerInfo[playerid][pAdmin] < 4) return 1;
    if(sscanf(params,"ud",pID,fID)) return SendClientMessage(playerid,GRAU,"Verwendung: /makeleader [ID] [Fraktions-ID] | Gebe '/frakids' für die Fraktions-ID's ein!");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,ROT,"Dieser Spieler wurde nicht gefunden!");
    if(SpielerInfo[pID][pFraktion] == fID && SpielerInfo[pID][pLeader] == 1) return SendClientMessage(playerid,ROT,"Der Spieler ist bereits Leader dieser Fraktion!");
    if(fID < 1 || fID > 11) return SendClientMessage(playerid,ROT,"Ungültige Angabe!");
    switch(fID)
    {
    case 1:(frakname=frakname1);
    case 2:(frakname=frakname2);
    case 3:(frakname=frakname3);
    case 4:(frakname=frakname4);
    case 5:(frakname=frakname5);
    case 6:(frakname=frakname6);
    case 7:(frakname=frakname7);
    case 8:(frakname=frakname8);
    case 9:(frakname=frakname9);
    case 10:(frakname=frakname10);
    case 11:(frakname=frakname11);
    }
    SpielerInfo[pID][pFraktion] = fID; SpielerInfo[pID][pLeader] = 1; SpielerInfo[pID][pFrakRang] = 1;
    format(string,sizeof(string),"Du hast %s zum Leader der Fraktion '%s' gemacht!",name,frakname); format(string1,sizeof(string1),"%s hat %s zum Leader der Fraktion '%s' gemacht!",aname,name,frakname); format(string2,sizeof(string2),"%s hat dich zum Leader der Fraktion '%s' gemacht!",aname,frakname);
    SendClientMessage(playerid,GELB,string); SendAdminMessage(PINK,string1); SendClientMessage(pID,GELB,string2);
    return SavePlayer(pID);
    }



    Scheinbar hat es was mit "pID" zutun, eine Lösung habe ich bisher aber noch nicht gefunden.


    Wäre nett wenn mir da jemand helfen würde.




    Gruß
    AlphaGen

    Fragst du alle Einträge mit einem "&&" ab oder sind immernoch Keys da welche Du mit "==" abfragst?
    Wenn ja, alle "==" zu "&&" und nochmal testen ;)

    Ich lasse momentan nur motor und licht über Tasten an- und ausschalten (Licht: 'Numped 2', Motor: '2').


    Ich habe
    if(newkeys == (KEY_LOOK_BEHIND))
    if(newkeys == (KEY_ANALOG_DOWN))


    in
    if(newkeys && (KEY_LOOK_BEHIND))
    if(newkeys && (KEY_ANALOG_DOWN))
    geändert.

    Versuch mal folgendes:
    if(newkeys == (KEY_ANALOG_DOWN))
    Zu
    if(newkeys && (KEY_ANALOG_DOWN))


    Laut Wiki sollen die Keys nur mit "&&" abgefragt werden.
    Probiers mal ;)


    Hab ich gemacht, nun ist es ein komplettes Chaos.. ^^
    Nun kann ich mit jeder Taste die GTA kennt (Leertaste,ATL,STRG,H,W,S usw.) den Motor und das Licht gleichzeigit starten.. ^^

    Hallo Leute,


    ich habe ein kleines Problem, und zwar lasse ich den Motor und das Licht eines Fahrzeuges per Tasten an- und ausschalten.
    Das ganze funktioniert so auch eigentlich, jedoch wenn ich eine andere Taste gedrückt halte (zb. 'W' wenn ich gerade fahre)
    und dann das Licht anschalten will, passiert rein garnicht. - Ich muss zuerst 'W' los lassen, um das Licht anzuschalten.


    Hier mal der ausschnitt vom Code:
    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    new vehicleid = GetPlayerVehicleID(playerid), PlayerSeat = GetPlayerState(playerid);
    new engine,lights,alarm,doors,bonnet,boot,objective;
    if(IsPlayerInAnyVehicle(playerid) && PlayerSeat == PLAYER_STATE_DRIVER)
    {
    if(newkeys == (KEY_ANALOG_DOWN))
    {
    if(licht[vehicleid] == 0)
    {
    licht[vehicleid] = 1;
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vehicleid,engine,VEHICLE_PARAMS_ON,alarm,doors,bonnet,boot,objective);
    }
    else if(licht[vehicleid] == 1)
    {
    licht[vehicleid] = 0;
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vehicleid,engine,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective);
    }
    }
    }
    return 1;
    }


    Wäre nett, wenn mir jemand helfen würde!




    Gruß
    AlphaGen!

    Hallo Leute,


    ich habe ein kleines Problem mit meinen Textdraws, und zwar habe ich einen Textdraw für einen schwarzen Hintergrund
    beim Login/Register gemacht und dazu ein paar weite Textdraws die über den Hintergrund-Textdraw angezeigt werden sollen.


    Die Textdraws werden zwar alle erstellt, aber der Hintergrund-Textdraw verdeckt einen Teil davon.


    So sieht das ganze Momentan aus: Klick Mich!
    So soll es aber aussehen (Der Rote Text wurde nachträglich mit Paint geschrieben): Klick Mich!



    Ich weiß nicht was ich falsch gemacht habe, hoffentlich kann es mir jemand zeigen!




    Gruß
    AlphaGen!

    Hallo Leute,


    wie man von der Überschrift schon erahnen kann, habe ich ein Problem mit "iPLEOMAX's TextDraw Editor".


    Und zwar ist es so, dass wenn ich InGame einen Befehl bezüglich des Editors eingebe, erscheint folgender Text:
    "iTD: (Error) samp-server.exe is not running in this computer! Make sure the server is at localhost, not remote.
    "


    Nun weiß ich nicht, was das genau zu bedeuten hat.
    Ich habe mir den Editor runtergeladen, den 0.3e Client installiert, den Server aus dem Ordner gestartet, auf den Server connectet und die Befehle ausprobiert eingegeben.




    Würde mich freuen, wenn mir da jemand helfen könnte.


    Gruß
    AplhaGen

    Mit OnPlayerClickPlayer, dann ein Listendialog öffnen lassen, wo der "Wantedkatalog" drin steht.


    Aber ich glaube nicht das diese Art der Wantedvergabe effektiv ist, mit '/su [ID] [Anzahl der Wanteds] [Wantedgrund/Strafttat]'
    würde das ganze schneller gehen, besonders wenn mehrere Wantedgründe/Straftaten aufeinmal vorliegen.

    Hier mal meine Zeilen, damit Funktioniert es bei mir. Bei mir läuft sogut wie alles über nur einen Timer ^^


    public OnGameModeInit()
    {
    ServerUhr = TextDrawCreate(554.000000, 30.000000,"XX:XX");
    TextDrawBackgroundColor(ServerUhr, 255);
    TextDrawFont(ServerUhr,2);
    TextDrawLetterSize(ServerUhr,0.390000, 1.300000);
    TextDrawColor(ServerUhr,-1); TextDrawSetOutline(ServerUhr,1);
    TextDrawSetProportional(ServerUhr,1);
    return 1;
    }


    public OnGameModeInit()
    {
    for(new i; i < MAX_PLAYERS; i ++)
    {
    SetTimerEx("SpielerUpdate", 1009, 1, "i", i);
    }
    return 1;
    }
    forward SpielerUpdate(i); public SpielerUpdate(i)
    {
    new playerid=i, hour, minute, second, clockstr[15]; gettime(hour,minute,second);
    if(minute<10 && second<10)format(clockstr,sizeof clockstr,"%d:0%d:0%d",hour,minute,second);
    else if(minute<10)format(clockstr,sizeof clockstr,"%d:0%d:%d",hour,minute,second);
    else if(second<10)format(clockstr,sizeof clockstr,"%d:%d:0%d",hour,minute,second);
    else format(clockstr,sizeof clockstr,"%d:%d:%d",hour,minute,second); TextDrawSetString(ServerUhr,clockstr); SetWorldTime(hour);
    TextDrawShowForPlayer(playerid,ServerUhr);
    return 1;
    }